diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/ProductFlow.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/ProductFlow.qll index bc511d6f340a..e64f22858217 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/ProductFlow.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/ProductFlow.qll @@ -507,13 +507,13 @@ module ProductFlow { private predicate pathSuccPlus(TNodePair n1, TNodePair n2) = fastTC(pathSucc/2)(n1, n2) private predicate localPathStep1(Flow1::PathNode pred, Flow1::PathNode succ) { - Flow1::PathGraph::edges(pred, succ) and + Flow1::PathGraph::edges(pred, succ, _, _) and pragma[only_bind_out](pred.getNode().getEnclosingCallable()) = pragma[only_bind_out](succ.getNode().getEnclosingCallable()) } private predicate localPathStep2(Flow2::PathNode pred, Flow2::PathNode succ) { - Flow2::PathGraph::edges(pred, succ) and + Flow2::PathGraph::edges(pred, succ, _, _) and pragma[only_bind_out](pred.getNode().getEnclosingCallable()) = pragma[only_bind_out](succ.getNode().getEnclosingCallable()) } @@ -530,7 +530,7 @@ module ProductFlow { TJump() private predicate intoImpl1(Flow1::PathNode pred1, Flow1::PathNode succ1, DataFlowCall call) { - Flow1::PathGraph::edges(pred1, succ1) and + Flow1::PathGraph::edges(pred1, succ1, _, _) and pred1.getNode().(ArgumentNode).getCall() = call and succ1.getNode() instanceof ParameterNode } @@ -543,7 +543,7 @@ module ProductFlow { } private predicate outImpl1(Flow1::PathNode pred1, Flow1::PathNode succ1, DataFlowCall call) { - Flow1::PathGraph::edges(pred1, succ1) and + Flow1::PathGraph::edges(pred1, succ1, _, _) and exists(ReturnKindExt returnKind | succ1.getNode() = returnKind.getAnOutNode(call) and pred1.getNode().(ReturnNodeExt).getKind() = returnKind @@ -558,7 +558,7 @@ module ProductFlow { } private predicate intoImpl2(Flow2::PathNode pred2, Flow2::PathNode succ2, DataFlowCall call) { - Flow2::PathGraph::edges(pred2, succ2) and + Flow2::PathGraph::edges(pred2, succ2, _, _) and pred2.getNode().(ArgumentNode).getCall() = call and succ2.getNode() instanceof ParameterNode } @@ -571,7 +571,7 @@ module ProductFlow { } private predicate outImpl2(Flow2::PathNode pred2, Flow2::PathNode succ2, DataFlowCall call) { - Flow2::PathGraph::edges(pred2, succ2) and + Flow2::PathGraph::edges(pred2, succ2, _, _) and exists(ReturnKindExt returnKind | succ2.getNode() = returnKind.getAnOutNode(call) and pred2.getNode().(ReturnNodeExt).getKind() = returnKind @@ -590,7 +590,7 @@ module ProductFlow { Declaration predDecl, Declaration succDecl, Flow1::PathNode pred1, Flow1::PathNode succ1, TKind kind ) { - Flow1::PathGraph::edges(pred1, succ1) and + Flow1::PathGraph::edges(pred1, succ1, _, _) and predDecl != succDecl and pred1.getNode().getEnclosingCallable() = predDecl and succ1.getNode().getEnclosingCallable() = succDecl and @@ -610,7 +610,7 @@ module ProductFlow { Declaration predDecl, Declaration succDecl, Flow2::PathNode pred2, Flow2::PathNode succ2, TKind kind ) { - Flow2::PathGraph::edges(pred2, succ2) and + Flow2::PathGraph::edges(pred2, succ2, _, _) and predDecl != succDecl and pred2.getNode().getEnclosingCallable() = predDecl and succ2.getNode().getEnclosingCallable() = succDecl and diff --git a/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-078/WordexpTainted.expected b/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-078/WordexpTainted.expected index 20bab064242a..f35b2230f15d 100644 --- a/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-078/WordexpTainted.expected +++ b/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-078/WordexpTainted.expected @@ -1,5 +1,5 @@ edges -| test.cpp:22:27:22:30 | **argv | test.cpp:29:13:29:20 | *filePath | +| test.cpp:22:27:22:30 | **argv | test.cpp:29:13:29:20 | *filePath | provenance | | nodes | test.cpp:22:27:22:30 | **argv | semmle.label | **argv | | test.cpp:29:13:29:20 | *filePath | semmle.label | *filePath | diff --git a/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-190/AllocMultiplicationOverflow/AllocMultiplicationOverflow.expected b/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-190/AllocMultiplicationOverflow/AllocMultiplicationOverflow.expected index fe7246092b67..94d399f6195e 100644 --- a/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-190/AllocMultiplicationOverflow/AllocMultiplicationOverflow.expected +++ b/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-190/AllocMultiplicationOverflow/AllocMultiplicationOverflow.expected @@ -1,7 +1,7 @@ edges -| test.cpp:22:17:22:21 | ... * ... | test.cpp:23:33:23:37 | size1 | -| test.cpp:37:24:37:27 | size | test.cpp:37:46:37:49 | size | -| test.cpp:45:36:45:40 | ... * ... | test.cpp:37:24:37:27 | size | +| test.cpp:22:17:22:21 | ... * ... | test.cpp:23:33:23:37 | size1 | provenance | | +| test.cpp:37:24:37:27 | size | test.cpp:37:46:37:49 | size | provenance | | +| test.cpp:45:36:45:40 | ... * ... | test.cpp:37:24:37:27 | size | provenance | | nodes | test.cpp:13:33:13:37 | ... * ... | semmle.label | ... * ... | | test.cpp:15:31:15:35 | ... * ... | semmle.label | ... * ... | diff --git a/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-193/array-access/ArrayAccessProductFlow.expected b/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-193/array-access/ArrayAccessProductFlow.expected index eab5aabce635..bb062dac2181 100644 --- a/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-193/array-access/ArrayAccessProductFlow.expected +++ b/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-193/array-access/ArrayAccessProductFlow.expected @@ -1,43 +1,43 @@ edges -| test.cpp:4:17:4:22 | call to malloc | test.cpp:6:9:6:11 | arr | -| test.cpp:4:17:4:22 | call to malloc | test.cpp:10:9:10:11 | arr | -| test.cpp:19:9:19:16 | *mk_array [p] | test.cpp:28:19:28:26 | call to mk_array [p] | -| test.cpp:19:9:19:16 | *mk_array [p] | test.cpp:50:18:50:25 | call to mk_array [p] | -| test.cpp:21:5:21:7 | *arr [post update] [p] | test.cpp:22:5:22:7 | *arr [p] | -| test.cpp:21:5:21:24 | ... = ... | test.cpp:21:5:21:7 | *arr [post update] [p] | -| test.cpp:21:13:21:18 | call to malloc | test.cpp:21:5:21:24 | ... = ... | -| test.cpp:22:5:22:7 | *arr [p] | test.cpp:19:9:19:16 | *mk_array [p] | -| test.cpp:28:19:28:26 | call to mk_array [p] | test.cpp:31:9:31:11 | *arr [p] | -| test.cpp:28:19:28:26 | call to mk_array [p] | test.cpp:35:9:35:11 | *arr [p] | -| test.cpp:31:9:31:11 | *arr [p] | test.cpp:31:13:31:13 | p | -| test.cpp:35:9:35:11 | *arr [p] | test.cpp:35:13:35:13 | p | -| test.cpp:39:27:39:29 | arr [p] | test.cpp:41:9:41:11 | *arr [p] | -| test.cpp:39:27:39:29 | arr [p] | test.cpp:45:9:45:11 | *arr [p] | -| test.cpp:41:9:41:11 | *arr [p] | test.cpp:41:13:41:13 | p | -| test.cpp:45:9:45:11 | *arr [p] | test.cpp:45:13:45:13 | p | -| test.cpp:50:18:50:25 | call to mk_array [p] | test.cpp:39:27:39:29 | arr [p] | -| test.cpp:55:5:55:7 | *arr [post update] [p] | test.cpp:56:5:56:7 | *arr [p] | -| test.cpp:55:5:55:24 | ... = ... | test.cpp:55:5:55:7 | *arr [post update] [p] | -| test.cpp:55:13:55:18 | call to malloc | test.cpp:55:5:55:24 | ... = ... | -| test.cpp:56:5:56:7 | *arr [p] | test.cpp:59:9:59:11 | *arr [p] | -| test.cpp:56:5:56:7 | *arr [p] | test.cpp:63:9:63:11 | *arr [p] | -| test.cpp:59:9:59:11 | *arr [p] | test.cpp:59:13:59:13 | p | -| test.cpp:63:9:63:11 | *arr [p] | test.cpp:63:13:63:13 | p | -| test.cpp:67:10:67:19 | **mk_array_p [p] | test.cpp:76:20:76:29 | *call to mk_array_p [p] | -| test.cpp:67:10:67:19 | **mk_array_p [p] | test.cpp:98:18:98:27 | *call to mk_array_p [p] | -| test.cpp:69:5:69:7 | *arr [post update] [p] | test.cpp:70:5:70:7 | *arr [p] | -| test.cpp:69:5:69:25 | ... = ... | test.cpp:69:5:69:7 | *arr [post update] [p] | -| test.cpp:69:14:69:19 | call to malloc | test.cpp:69:5:69:25 | ... = ... | -| test.cpp:70:5:70:7 | *arr [p] | test.cpp:67:10:67:19 | **mk_array_p [p] | -| test.cpp:76:20:76:29 | *call to mk_array_p [p] | test.cpp:79:9:79:11 | *arr [p] | -| test.cpp:76:20:76:29 | *call to mk_array_p [p] | test.cpp:83:9:83:11 | *arr [p] | -| test.cpp:79:9:79:11 | *arr [p] | test.cpp:79:14:79:14 | p | -| test.cpp:83:9:83:11 | *arr [p] | test.cpp:83:14:83:14 | p | -| test.cpp:87:28:87:30 | *arr [p] | test.cpp:89:9:89:11 | *arr [p] | -| test.cpp:87:28:87:30 | *arr [p] | test.cpp:93:9:93:11 | *arr [p] | -| test.cpp:89:9:89:11 | *arr [p] | test.cpp:89:14:89:14 | p | -| test.cpp:93:9:93:11 | *arr [p] | test.cpp:93:14:93:14 | p | -| test.cpp:98:18:98:27 | *call to mk_array_p [p] | test.cpp:87:28:87:30 | *arr [p] | +| test.cpp:4:17:4:22 | call to malloc | test.cpp:6:9:6:11 | arr | provenance | | +| test.cpp:4:17:4:22 | call to malloc | test.cpp:10:9:10:11 | arr | provenance | | +| test.cpp:19:9:19:16 | *mk_array [p] | test.cpp:28:19:28:26 | call to mk_array [p] | provenance | | +| test.cpp:19:9:19:16 | *mk_array [p] | test.cpp:50:18:50:25 | call to mk_array [p] | provenance | | +| test.cpp:21:5:21:7 | *arr [post update] [p] | test.cpp:22:5:22:7 | *arr [p] | provenance | | +| test.cpp:21:5:21:24 | ... = ... | test.cpp:21:5:21:7 | *arr [post update] [p] | provenance | | +| test.cpp:21:13:21:18 | call to malloc | test.cpp:21:5:21:24 | ... = ... | provenance | | +| test.cpp:22:5:22:7 | *arr [p] | test.cpp:19:9:19:16 | *mk_array [p] | provenance | | +| test.cpp:28:19:28:26 | call to mk_array [p] | test.cpp:31:9:31:11 | *arr [p] | provenance | | +| test.cpp:28:19:28:26 | call to mk_array [p] | test.cpp:35:9:35:11 | *arr [p] | provenance | | +| test.cpp:31:9:31:11 | *arr [p] | test.cpp:31:13:31:13 | p | provenance | | +| test.cpp:35:9:35:11 | *arr [p] | test.cpp:35:13:35:13 | p | provenance | | +| test.cpp:39:27:39:29 | arr [p] | test.cpp:41:9:41:11 | *arr [p] | provenance | | +| test.cpp:39:27:39:29 | arr [p] | test.cpp:45:9:45:11 | *arr [p] | provenance | | +| test.cpp:41:9:41:11 | *arr [p] | test.cpp:41:13:41:13 | p | provenance | | +| test.cpp:45:9:45:11 | *arr [p] | test.cpp:45:13:45:13 | p | provenance | | +| test.cpp:50:18:50:25 | call to mk_array [p] | test.cpp:39:27:39:29 | arr [p] | provenance | | +| test.cpp:55:5:55:7 | *arr [post update] [p] | test.cpp:56:5:56:7 | *arr [p] | provenance | | +| test.cpp:55:5:55:24 | ... = ... | test.cpp:55:5:55:7 | *arr [post update] [p] | provenance | | +| test.cpp:55:13:55:18 | call to malloc | test.cpp:55:5:55:24 | ... = ... | provenance | | +| test.cpp:56:5:56:7 | *arr [p] | test.cpp:59:9:59:11 | *arr [p] | provenance | | +| test.cpp:56:5:56:7 | *arr [p] | test.cpp:63:9:63:11 | *arr [p] | provenance | | +| test.cpp:59:9:59:11 | *arr [p] | test.cpp:59:13:59:13 | p | provenance | | +| test.cpp:63:9:63:11 | *arr [p] | test.cpp:63:13:63:13 | p | provenance | | +| test.cpp:67:10:67:19 | **mk_array_p [p] | test.cpp:76:20:76:29 | *call to mk_array_p [p] | provenance | | +| test.cpp:67:10:67:19 | **mk_array_p [p] | test.cpp:98:18:98:27 | *call to mk_array_p [p] | provenance | | +| test.cpp:69:5:69:7 | *arr [post update] [p] | test.cpp:70:5:70:7 | *arr [p] | provenance | | +| test.cpp:69:5:69:25 | ... = ... | test.cpp:69:5:69:7 | *arr [post update] [p] | provenance | | +| test.cpp:69:14:69:19 | call to malloc | test.cpp:69:5:69:25 | ... = ... | provenance | | +| test.cpp:70:5:70:7 | *arr [p] | test.cpp:67:10:67:19 | **mk_array_p [p] | provenance | | +| test.cpp:76:20:76:29 | *call to mk_array_p [p] | test.cpp:79:9:79:11 | *arr [p] | provenance | | +| test.cpp:76:20:76:29 | *call to mk_array_p [p] | test.cpp:83:9:83:11 | *arr [p] | provenance | | +| test.cpp:79:9:79:11 | *arr [p] | test.cpp:79:14:79:14 | p | provenance | | +| test.cpp:83:9:83:11 | *arr [p] | test.cpp:83:14:83:14 | p | provenance | | +| test.cpp:87:28:87:30 | *arr [p] | test.cpp:89:9:89:11 | *arr [p] | provenance | | +| test.cpp:87:28:87:30 | *arr [p] | test.cpp:93:9:93:11 | *arr [p] | provenance | | +| test.cpp:89:9:89:11 | *arr [p] | test.cpp:89:14:89:14 | p | provenance | | +| test.cpp:93:9:93:11 | *arr [p] | test.cpp:93:14:93:14 | p | provenance | | +| test.cpp:98:18:98:27 | *call to mk_array_p [p] | test.cpp:87:28:87:30 | *arr [p] | provenance | | nodes | test.cpp:4:17:4:22 | call to malloc | semmle.label | call to malloc | | test.cpp:6:9:6:11 | arr | semmle.label | arr | diff --git a/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-193/constant-size/ConstantSizeArrayOffByOne.expected b/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-193/constant-size/ConstantSizeArrayOffByOne.expected index 07fbd84e4af1..fee771d8f705 100644 --- a/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-193/constant-size/ConstantSizeArrayOffByOne.expected +++ b/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-193/constant-size/ConstantSizeArrayOffByOne.expected @@ -1,74 +1,74 @@ edges -| test.cpp:34:10:34:12 | buf | test.cpp:34:5:34:24 | access to array | -| test.cpp:35:10:35:12 | buf | test.cpp:35:5:35:22 | access to array | -| test.cpp:36:10:36:12 | buf | test.cpp:36:5:36:24 | access to array | -| test.cpp:39:14:39:16 | buf | test.cpp:39:9:39:19 | access to array | -| test.cpp:43:14:43:16 | buf | test.cpp:43:9:43:19 | access to array | -| test.cpp:48:10:48:12 | buf | test.cpp:48:5:48:24 | access to array | -| test.cpp:49:10:49:12 | buf | test.cpp:49:5:49:22 | access to array | -| test.cpp:50:10:50:12 | buf | test.cpp:50:5:50:24 | access to array | -| test.cpp:53:14:53:16 | buf | test.cpp:53:9:53:19 | access to array | -| test.cpp:57:14:57:16 | buf | test.cpp:57:9:57:19 | access to array | -| test.cpp:61:14:61:16 | buf | test.cpp:61:9:61:19 | access to array | -| test.cpp:70:33:70:33 | p | test.cpp:71:5:71:17 | access to array | -| test.cpp:70:33:70:33 | p | test.cpp:72:5:72:15 | access to array | -| test.cpp:76:26:76:46 | & ... | test.cpp:66:32:66:32 | p | -| test.cpp:76:32:76:34 | buf | test.cpp:76:26:76:46 | & ... | -| test.cpp:77:26:77:44 | & ... | test.cpp:66:32:66:32 | p | -| test.cpp:77:32:77:34 | buf | test.cpp:77:26:77:44 | & ... | -| test.cpp:79:27:79:34 | buf | test.cpp:70:33:70:33 | p | -| test.cpp:79:32:79:34 | buf | test.cpp:79:27:79:34 | buf | -| test.cpp:85:34:85:36 | buf | test.cpp:87:5:87:31 | access to array | -| test.cpp:85:34:85:36 | buf | test.cpp:88:5:88:27 | access to array | -| test.cpp:96:13:96:15 | arr | test.cpp:96:13:96:18 | access to array | -| test.cpp:111:17:111:19 | arr | test.cpp:111:17:111:22 | access to array | -| test.cpp:111:17:111:19 | arr | test.cpp:115:35:115:40 | access to array | -| test.cpp:111:17:111:19 | arr | test.cpp:119:17:119:22 | access to array | -| test.cpp:115:35:115:37 | arr | test.cpp:111:17:111:22 | access to array | -| test.cpp:115:35:115:37 | arr | test.cpp:115:35:115:40 | access to array | -| test.cpp:115:35:115:37 | arr | test.cpp:119:17:119:22 | access to array | -| test.cpp:119:17:119:19 | arr | test.cpp:111:17:111:22 | access to array | -| test.cpp:119:17:119:19 | arr | test.cpp:115:35:115:40 | access to array | -| test.cpp:119:17:119:19 | arr | test.cpp:119:17:119:22 | access to array | -| test.cpp:128:9:128:11 | arr | test.cpp:128:9:128:14 | access to array | -| test.cpp:134:25:134:27 | arr | test.cpp:136:9:136:16 | ... += ... | -| test.cpp:136:9:136:16 | ... += ... | test.cpp:138:13:138:15 | arr | -| test.cpp:143:18:143:21 | asdf | test.cpp:134:25:134:27 | arr | -| test.cpp:143:18:143:21 | asdf | test.cpp:143:18:143:21 | asdf | -| test.cpp:146:26:146:26 | *p | test.cpp:147:4:147:9 | -- ... | -| test.cpp:156:12:156:14 | buf | test.cpp:156:12:156:18 | ... + ... | -| test.cpp:156:12:156:18 | ... + ... | test.cpp:158:17:158:18 | *& ... | -| test.cpp:158:17:158:18 | *& ... | test.cpp:146:26:146:26 | *p | -| test.cpp:218:23:218:28 | buffer | test.cpp:220:5:220:11 | access to array | -| test.cpp:218:23:218:28 | buffer | test.cpp:221:5:221:11 | access to array | -| test.cpp:229:25:229:29 | array | test.cpp:231:5:231:10 | access to array | -| test.cpp:229:25:229:29 | array | test.cpp:232:5:232:10 | access to array | -| test.cpp:245:30:245:30 | p | test.cpp:261:27:261:30 | access to array | -| test.cpp:245:30:245:30 | p | test.cpp:261:27:261:30 | access to array | -| test.cpp:274:14:274:20 | buffer3 | test.cpp:245:30:245:30 | p | -| test.cpp:274:14:274:20 | buffer3 | test.cpp:274:14:274:20 | buffer3 | -| test.cpp:277:35:277:35 | p | test.cpp:278:14:278:14 | p | -| test.cpp:278:14:278:14 | p | test.cpp:245:30:245:30 | p | -| test.cpp:283:19:283:25 | buffer1 | test.cpp:277:35:277:35 | p | -| test.cpp:283:19:283:25 | buffer1 | test.cpp:283:19:283:25 | buffer1 | -| test.cpp:286:19:286:25 | buffer2 | test.cpp:277:35:277:35 | p | -| test.cpp:286:19:286:25 | buffer2 | test.cpp:286:19:286:25 | buffer2 | -| test.cpp:289:19:289:25 | buffer3 | test.cpp:277:35:277:35 | p | -| test.cpp:289:19:289:25 | buffer3 | test.cpp:289:19:289:25 | buffer3 | -| test.cpp:292:25:292:27 | arr | test.cpp:299:16:299:21 | access to array | -| test.cpp:292:25:292:27 | arr | test.cpp:299:16:299:21 | access to array | -| test.cpp:306:20:306:23 | arr1 | test.cpp:292:25:292:27 | arr | -| test.cpp:306:20:306:23 | arr1 | test.cpp:306:20:306:23 | arr1 | -| test.cpp:309:20:309:23 | arr2 | test.cpp:292:25:292:27 | arr | -| test.cpp:309:20:309:23 | arr2 | test.cpp:309:20:309:23 | arr2 | -| test.cpp:319:19:319:22 | temp | test.cpp:319:19:319:27 | ... + ... | -| test.cpp:319:19:319:22 | temp | test.cpp:324:23:324:32 | ... + ... | -| test.cpp:319:19:319:27 | ... + ... | test.cpp:325:24:325:26 | end | -| test.cpp:322:19:322:22 | temp | test.cpp:322:19:322:27 | ... + ... | -| test.cpp:322:19:322:22 | temp | test.cpp:324:23:324:32 | ... + ... | -| test.cpp:322:19:322:27 | ... + ... | test.cpp:325:24:325:26 | end | -| test.cpp:324:23:324:26 | temp | test.cpp:324:23:324:32 | ... + ... | -| test.cpp:324:23:324:32 | ... + ... | test.cpp:325:15:325:19 | temp2 | +| test.cpp:34:10:34:12 | buf | test.cpp:34:5:34:24 | access to array | provenance | | +| test.cpp:35:10:35:12 | buf | test.cpp:35:5:35:22 | access to array | provenance | | +| test.cpp:36:10:36:12 | buf | test.cpp:36:5:36:24 | access to array | provenance | | +| test.cpp:39:14:39:16 | buf | test.cpp:39:9:39:19 | access to array | provenance | | +| test.cpp:43:14:43:16 | buf | test.cpp:43:9:43:19 | access to array | provenance | | +| test.cpp:48:10:48:12 | buf | test.cpp:48:5:48:24 | access to array | provenance | | +| test.cpp:49:10:49:12 | buf | test.cpp:49:5:49:22 | access to array | provenance | | +| test.cpp:50:10:50:12 | buf | test.cpp:50:5:50:24 | access to array | provenance | | +| test.cpp:53:14:53:16 | buf | test.cpp:53:9:53:19 | access to array | provenance | | +| test.cpp:57:14:57:16 | buf | test.cpp:57:9:57:19 | access to array | provenance | | +| test.cpp:61:14:61:16 | buf | test.cpp:61:9:61:19 | access to array | provenance | | +| test.cpp:70:33:70:33 | p | test.cpp:71:5:71:17 | access to array | provenance | | +| test.cpp:70:33:70:33 | p | test.cpp:72:5:72:15 | access to array | provenance | | +| test.cpp:76:26:76:46 | & ... | test.cpp:66:32:66:32 | p | provenance | | +| test.cpp:76:32:76:34 | buf | test.cpp:76:26:76:46 | & ... | provenance | | +| test.cpp:77:26:77:44 | & ... | test.cpp:66:32:66:32 | p | provenance | | +| test.cpp:77:32:77:34 | buf | test.cpp:77:26:77:44 | & ... | provenance | | +| test.cpp:79:27:79:34 | buf | test.cpp:70:33:70:33 | p | provenance | | +| test.cpp:79:32:79:34 | buf | test.cpp:79:27:79:34 | buf | provenance | | +| test.cpp:85:34:85:36 | buf | test.cpp:87:5:87:31 | access to array | provenance | | +| test.cpp:85:34:85:36 | buf | test.cpp:88:5:88:27 | access to array | provenance | | +| test.cpp:96:13:96:15 | arr | test.cpp:96:13:96:18 | access to array | provenance | | +| test.cpp:111:17:111:19 | arr | test.cpp:111:17:111:22 | access to array | provenance | | +| test.cpp:111:17:111:19 | arr | test.cpp:115:35:115:40 | access to array | provenance | | +| test.cpp:111:17:111:19 | arr | test.cpp:119:17:119:22 | access to array | provenance | | +| test.cpp:115:35:115:37 | arr | test.cpp:111:17:111:22 | access to array | provenance | | +| test.cpp:115:35:115:37 | arr | test.cpp:115:35:115:40 | access to array | provenance | | +| test.cpp:115:35:115:37 | arr | test.cpp:119:17:119:22 | access to array | provenance | | +| test.cpp:119:17:119:19 | arr | test.cpp:111:17:111:22 | access to array | provenance | | +| test.cpp:119:17:119:19 | arr | test.cpp:115:35:115:40 | access to array | provenance | | +| test.cpp:119:17:119:19 | arr | test.cpp:119:17:119:22 | access to array | provenance | | +| test.cpp:128:9:128:11 | arr | test.cpp:128:9:128:14 | access to array | provenance | | +| test.cpp:134:25:134:27 | arr | test.cpp:136:9:136:16 | ... += ... | provenance | | +| test.cpp:136:9:136:16 | ... += ... | test.cpp:138:13:138:15 | arr | provenance | | +| test.cpp:143:18:143:21 | asdf | test.cpp:134:25:134:27 | arr | provenance | | +| test.cpp:143:18:143:21 | asdf | test.cpp:143:18:143:21 | asdf | provenance | | +| test.cpp:146:26:146:26 | *p | test.cpp:147:4:147:9 | -- ... | provenance | | +| test.cpp:156:12:156:14 | buf | test.cpp:156:12:156:18 | ... + ... | provenance | | +| test.cpp:156:12:156:18 | ... + ... | test.cpp:158:17:158:18 | *& ... | provenance | | +| test.cpp:158:17:158:18 | *& ... | test.cpp:146:26:146:26 | *p | provenance | | +| test.cpp:218:23:218:28 | buffer | test.cpp:220:5:220:11 | access to array | provenance | | +| test.cpp:218:23:218:28 | buffer | test.cpp:221:5:221:11 | access to array | provenance | | +| test.cpp:229:25:229:29 | array | test.cpp:231:5:231:10 | access to array | provenance | | +| test.cpp:229:25:229:29 | array | test.cpp:232:5:232:10 | access to array | provenance | | +| test.cpp:245:30:245:30 | p | test.cpp:261:27:261:30 | access to array | provenance | | +| test.cpp:245:30:245:30 | p | test.cpp:261:27:261:30 | access to array | provenance | | +| test.cpp:274:14:274:20 | buffer3 | test.cpp:245:30:245:30 | p | provenance | | +| test.cpp:274:14:274:20 | buffer3 | test.cpp:274:14:274:20 | buffer3 | provenance | | +| test.cpp:277:35:277:35 | p | test.cpp:278:14:278:14 | p | provenance | | +| test.cpp:278:14:278:14 | p | test.cpp:245:30:245:30 | p | provenance | | +| test.cpp:283:19:283:25 | buffer1 | test.cpp:277:35:277:35 | p | provenance | | +| test.cpp:283:19:283:25 | buffer1 | test.cpp:283:19:283:25 | buffer1 | provenance | | +| test.cpp:286:19:286:25 | buffer2 | test.cpp:277:35:277:35 | p | provenance | | +| test.cpp:286:19:286:25 | buffer2 | test.cpp:286:19:286:25 | buffer2 | provenance | | +| test.cpp:289:19:289:25 | buffer3 | test.cpp:277:35:277:35 | p | provenance | | +| test.cpp:289:19:289:25 | buffer3 | test.cpp:289:19:289:25 | buffer3 | provenance | | +| test.cpp:292:25:292:27 | arr | test.cpp:299:16:299:21 | access to array | provenance | | +| test.cpp:292:25:292:27 | arr | test.cpp:299:16:299:21 | access to array | provenance | | +| test.cpp:306:20:306:23 | arr1 | test.cpp:292:25:292:27 | arr | provenance | | +| test.cpp:306:20:306:23 | arr1 | test.cpp:306:20:306:23 | arr1 | provenance | | +| test.cpp:309:20:309:23 | arr2 | test.cpp:292:25:292:27 | arr | provenance | | +| test.cpp:309:20:309:23 | arr2 | test.cpp:309:20:309:23 | arr2 | provenance | | +| test.cpp:319:19:319:22 | temp | test.cpp:319:19:319:27 | ... + ... | provenance | | +| test.cpp:319:19:319:22 | temp | test.cpp:324:23:324:32 | ... + ... | provenance | | +| test.cpp:319:19:319:27 | ... + ... | test.cpp:325:24:325:26 | end | provenance | | +| test.cpp:322:19:322:22 | temp | test.cpp:322:19:322:27 | ... + ... | provenance | | +| test.cpp:322:19:322:22 | temp | test.cpp:324:23:324:32 | ... + ... | provenance | | +| test.cpp:322:19:322:27 | ... + ... | test.cpp:325:24:325:26 | end | provenance | | +| test.cpp:324:23:324:26 | temp | test.cpp:324:23:324:32 | ... + ... | provenance | | +| test.cpp:324:23:324:32 | ... + ... | test.cpp:325:15:325:19 | temp2 | provenance | | nodes | test.cpp:34:5:34:24 | access to array | semmle.label | access to array | | test.cpp:34:10:34:12 | buf | semmle.label | buf | diff --git a/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-359/semmle/tests/PrivateCleartextWrite.expected b/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-359/semmle/tests/PrivateCleartextWrite.expected index 78f724f788c6..ae24fbb77c4e 100644 --- a/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-359/semmle/tests/PrivateCleartextWrite.expected +++ b/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-359/semmle/tests/PrivateCleartextWrite.expected @@ -1,14 +1,14 @@ edges -| test.cpp:45:18:45:23 | buffer | test.cpp:45:7:45:10 | *func | -| test.cpp:74:24:74:30 | medical | test.cpp:78:24:78:27 | temp | -| test.cpp:74:24:74:30 | medical | test.cpp:81:22:81:28 | medical | -| test.cpp:77:16:77:22 | medical | test.cpp:78:24:78:27 | temp | -| test.cpp:77:16:77:22 | medical | test.cpp:81:22:81:28 | medical | -| test.cpp:81:17:81:20 | call to func | test.cpp:82:24:82:28 | buff5 | -| test.cpp:81:22:81:28 | medical | test.cpp:45:18:45:23 | buffer | -| test.cpp:81:22:81:28 | medical | test.cpp:81:17:81:20 | call to func | -| test.cpp:96:37:96:46 | theZipcode | test.cpp:99:42:99:51 | theZipcode | -| test.cpp:99:61:99:70 | theZipcode | test.cpp:99:42:99:51 | theZipcode | +| test.cpp:45:18:45:23 | buffer | test.cpp:45:7:45:10 | *func | provenance | | +| test.cpp:74:24:74:30 | medical | test.cpp:78:24:78:27 | temp | provenance | | +| test.cpp:74:24:74:30 | medical | test.cpp:81:22:81:28 | medical | provenance | | +| test.cpp:77:16:77:22 | medical | test.cpp:78:24:78:27 | temp | provenance | | +| test.cpp:77:16:77:22 | medical | test.cpp:81:22:81:28 | medical | provenance | | +| test.cpp:81:17:81:20 | call to func | test.cpp:82:24:82:28 | buff5 | provenance | | +| test.cpp:81:22:81:28 | medical | test.cpp:45:18:45:23 | buffer | provenance | | +| test.cpp:81:22:81:28 | medical | test.cpp:81:17:81:20 | call to func | provenance | | +| test.cpp:96:37:96:46 | theZipcode | test.cpp:99:42:99:51 | theZipcode | provenance | | +| test.cpp:99:61:99:70 | theZipcode | test.cpp:99:42:99:51 | theZipcode | provenance | | nodes | test.cpp:45:7:45:10 | *func | semmle.label | *func | | test.cpp:45:18:45:23 | buffer | semmle.label | buffer | diff --git a/cpp/ql/test/library-tests/dataflow/fields/ir-path-flow.expected b/cpp/ql/test/library-tests/dataflow/fields/ir-path-flow.expected index b000ff9d0892..770a70f2a1d6 100644 --- a/cpp/ql/test/library-tests/dataflow/fields/ir-path-flow.expected +++ b/cpp/ql/test/library-tests/dataflow/fields/ir-path-flow.expected @@ -1,753 +1,753 @@ edges -| A.cpp:23:10:23:10 | c | A.cpp:25:7:25:17 | ... = ... | -| A.cpp:25:7:25:17 | ... = ... | A.cpp:25:7:25:10 | *this [post update] [c] | -| A.cpp:27:17:27:17 | c | A.cpp:27:22:27:32 | ... = ... | -| A.cpp:27:22:27:32 | ... = ... | A.cpp:27:22:27:25 | *this [post update] [c] | -| A.cpp:28:8:28:10 | *this [c] | A.cpp:28:23:28:26 | *this [c] | -| A.cpp:28:23:28:26 | *this [c] | A.cpp:28:29:28:29 | c | -| A.cpp:28:29:28:29 | c | A.cpp:28:8:28:10 | *get | -| A.cpp:29:23:29:23 | c | A.cpp:31:20:31:20 | c | -| A.cpp:31:14:31:21 | call to B [c] | A.cpp:29:15:29:18 | **make [c] | -| A.cpp:31:20:31:20 | c | A.cpp:23:10:23:10 | c | -| A.cpp:31:20:31:20 | c | A.cpp:31:14:31:21 | call to B [c] | -| A.cpp:41:5:41:6 | insert output argument | A.cpp:43:10:43:12 | *& ... | -| A.cpp:41:15:41:21 | new | A.cpp:41:5:41:6 | insert output argument | -| A.cpp:47:12:47:18 | new | A.cpp:48:20:48:20 | c | -| A.cpp:48:12:48:18 | *call to make [c] | A.cpp:49:10:49:10 | *b [c] | -| A.cpp:48:20:48:20 | c | A.cpp:29:23:29:23 | c | -| A.cpp:48:20:48:20 | c | A.cpp:48:12:48:18 | *call to make [c] | -| A.cpp:49:10:49:10 | *b [c] | A.cpp:49:10:49:13 | c | -| A.cpp:55:5:55:5 | set output argument [c] | A.cpp:56:10:56:10 | *b [c] | -| A.cpp:55:12:55:19 | new | A.cpp:27:17:27:17 | c | -| A.cpp:55:12:55:19 | new | A.cpp:55:5:55:5 | set output argument [c] | -| A.cpp:56:10:56:10 | *b [c] | A.cpp:28:8:28:10 | *this [c] | -| A.cpp:56:10:56:10 | *b [c] | A.cpp:56:10:56:17 | call to get | -| A.cpp:57:11:57:24 | *new [c] | A.cpp:28:8:28:10 | *this [c] | -| A.cpp:57:11:57:24 | *new [c] | A.cpp:57:10:57:32 | call to get | -| A.cpp:57:11:57:24 | call to B [c] | A.cpp:57:11:57:24 | *new [c] | -| A.cpp:57:17:57:23 | new | A.cpp:23:10:23:10 | c | -| A.cpp:57:17:57:23 | new | A.cpp:57:11:57:24 | call to B [c] | -| A.cpp:57:17:57:23 | new | A.cpp:57:17:57:23 | new | -| A.cpp:64:10:64:15 | *call to setOnB [c] | A.cpp:66:10:66:11 | *b2 [c] | -| A.cpp:64:21:64:28 | new | A.cpp:64:10:64:15 | *call to setOnB [c] | -| A.cpp:64:21:64:28 | new | A.cpp:85:26:85:26 | c | -| A.cpp:66:10:66:11 | *b2 [c] | A.cpp:66:10:66:14 | c | -| A.cpp:73:10:73:19 | *call to setOnBWrap [c] | A.cpp:75:10:75:11 | *b2 [c] | -| A.cpp:73:25:73:32 | new | A.cpp:73:10:73:19 | *call to setOnBWrap [c] | -| A.cpp:73:25:73:32 | new | A.cpp:78:27:78:27 | c | -| A.cpp:75:10:75:11 | *b2 [c] | A.cpp:75:10:75:14 | c | -| A.cpp:78:27:78:27 | c | A.cpp:81:21:81:21 | c | -| A.cpp:81:10:81:15 | *call to setOnB [c] | A.cpp:78:6:78:15 | **setOnBWrap [c] | -| A.cpp:81:21:81:21 | c | A.cpp:81:10:81:15 | *call to setOnB [c] | -| A.cpp:81:21:81:21 | c | A.cpp:85:26:85:26 | c | -| A.cpp:85:26:85:26 | c | A.cpp:90:15:90:15 | c | -| A.cpp:90:7:90:8 | set output argument [c] | A.cpp:85:9:85:14 | **setOnB [c] | -| A.cpp:90:15:90:15 | c | A.cpp:27:17:27:17 | c | -| A.cpp:90:15:90:15 | c | A.cpp:90:7:90:8 | set output argument [c] | -| A.cpp:98:12:98:18 | new | A.cpp:100:5:100:13 | ... = ... | -| A.cpp:100:5:100:6 | *c1 [post update] [a] | A.cpp:101:8:101:9 | *c1 [a] | -| A.cpp:100:5:100:13 | ... = ... | A.cpp:100:5:100:6 | *c1 [post update] [a] | -| A.cpp:101:8:101:9 | *c1 [a] | A.cpp:103:14:103:14 | *c [a] | -| A.cpp:103:14:103:14 | *c [a] | A.cpp:107:12:107:13 | *c1 [a] | -| A.cpp:103:14:103:14 | *c [a] | A.cpp:120:12:120:13 | *c1 [a] | -| A.cpp:107:12:107:13 | *c1 [a] | A.cpp:107:12:107:16 | a | -| A.cpp:120:12:120:13 | *c1 [a] | A.cpp:120:12:120:16 | a | -| A.cpp:126:5:126:5 | set output argument [c] | A.cpp:131:8:131:8 | f7 output argument [c] | -| A.cpp:126:12:126:18 | new | A.cpp:27:17:27:17 | c | -| A.cpp:126:12:126:18 | new | A.cpp:126:5:126:5 | set output argument [c] | -| A.cpp:126:12:126:18 | new | A.cpp:126:12:126:18 | new | -| A.cpp:131:8:131:8 | f7 output argument [c] | A.cpp:132:10:132:10 | *b [c] | -| A.cpp:132:10:132:10 | *b [c] | A.cpp:132:10:132:13 | c | -| A.cpp:140:13:140:13 | b | A.cpp:143:7:143:31 | ... = ... | -| A.cpp:142:7:142:7 | *b [post update] [c] | A.cpp:143:7:143:31 | *... = ... [c] | -| A.cpp:142:7:142:7 | *b [post update] [c] | A.cpp:151:18:151:18 | D output argument [c] | -| A.cpp:142:7:142:20 | ... = ... | A.cpp:142:7:142:7 | *b [post update] [c] | -| A.cpp:142:14:142:20 | new | A.cpp:142:7:142:20 | ... = ... | -| A.cpp:143:7:143:10 | *this [post update] [*b, c] | A.cpp:151:12:151:24 | call to D [*b, c] | -| A.cpp:143:7:143:10 | *this [post update] [b] | A.cpp:151:12:151:24 | call to D [b] | -| A.cpp:143:7:143:31 | *... = ... [c] | A.cpp:143:7:143:10 | *this [post update] [*b, c] | -| A.cpp:143:7:143:31 | ... = ... | A.cpp:143:7:143:10 | *this [post update] [b] | -| A.cpp:143:7:143:31 | ... = ... | A.cpp:143:7:143:10 | *this [post update] [b] | -| A.cpp:143:25:143:31 | new | A.cpp:143:7:143:31 | ... = ... | -| A.cpp:150:12:150:18 | new | A.cpp:151:18:151:18 | b | -| A.cpp:151:12:151:24 | call to D [*b, c] | A.cpp:153:10:153:10 | *d [*b, c] | -| A.cpp:151:12:151:24 | call to D [b] | A.cpp:152:10:152:10 | *d [b] | -| A.cpp:151:18:151:18 | D output argument [c] | A.cpp:154:10:154:10 | *b [c] | -| A.cpp:151:18:151:18 | b | A.cpp:140:13:140:13 | b | -| A.cpp:151:18:151:18 | b | A.cpp:151:12:151:24 | call to D [b] | -| A.cpp:152:10:152:10 | *d [b] | A.cpp:152:10:152:13 | b | -| A.cpp:153:10:153:10 | *d [*b, c] | A.cpp:153:13:153:13 | *b [c] | -| A.cpp:153:13:153:13 | *b [c] | A.cpp:153:10:153:16 | c | -| A.cpp:154:10:154:10 | *b [c] | A.cpp:154:10:154:13 | c | -| A.cpp:159:12:159:18 | new | A.cpp:160:29:160:29 | b | -| A.cpp:160:18:160:60 | call to MyList [head] | A.cpp:161:38:161:39 | *l1 [head] | -| A.cpp:160:29:160:29 | b | A.cpp:160:18:160:60 | call to MyList [head] | -| A.cpp:160:29:160:29 | b | A.cpp:181:15:181:21 | newHead | -| A.cpp:161:18:161:40 | call to MyList [*next, head] | A.cpp:162:38:162:39 | *l2 [*next, head] | -| A.cpp:161:38:161:39 | *l1 [head] | A.cpp:161:18:161:40 | call to MyList [*next, head] | -| A.cpp:161:38:161:39 | *l1 [head] | A.cpp:181:32:181:35 | *next [head] | -| A.cpp:162:18:162:40 | call to MyList [*next, *next, head] | A.cpp:165:10:165:11 | *l3 [*next, *next, head] | -| A.cpp:162:18:162:40 | call to MyList [*next, *next, head] | A.cpp:167:44:167:44 | *l [*next, *next, head] | -| A.cpp:162:38:162:39 | *l2 [*next, head] | A.cpp:162:18:162:40 | call to MyList [*next, *next, head] | -| A.cpp:162:38:162:39 | *l2 [*next, head] | A.cpp:181:32:181:35 | *next [*next, head] | -| A.cpp:165:10:165:11 | *l3 [*next, *next, head] | A.cpp:165:14:165:17 | *next [*next, head] | -| A.cpp:165:14:165:17 | *next [*next, head] | A.cpp:165:20:165:23 | *next [head] | -| A.cpp:165:20:165:23 | *next [head] | A.cpp:165:10:165:29 | head | -| A.cpp:167:44:167:44 | *l [*next, *next, head] | A.cpp:167:47:167:50 | *next [*next, head] | -| A.cpp:167:44:167:44 | *l [*next, head] | A.cpp:167:47:167:50 | *next [head] | -| A.cpp:167:47:167:50 | *next [*next, head] | A.cpp:167:44:167:44 | *l [*next, head] | -| A.cpp:167:47:167:50 | *next [head] | A.cpp:169:12:169:12 | *l [head] | -| A.cpp:169:12:169:12 | *l [head] | A.cpp:169:12:169:18 | head | -| A.cpp:181:15:181:21 | newHead | A.cpp:183:7:183:20 | ... = ... | -| A.cpp:181:32:181:35 | *next [*next, head] | A.cpp:184:7:184:23 | *... = ... [*next, head] | -| A.cpp:181:32:181:35 | *next [head] | A.cpp:184:7:184:23 | *... = ... [head] | -| A.cpp:183:7:183:20 | ... = ... | A.cpp:183:7:183:10 | *this [post update] [head] | -| A.cpp:184:7:184:23 | *... = ... [*next, head] | A.cpp:184:7:184:10 | *this [post update] [*next, *next, head] | -| A.cpp:184:7:184:23 | *... = ... [head] | A.cpp:184:7:184:10 | *this [post update] [*next, head] | -| B.cpp:6:15:6:24 | new | B.cpp:7:25:7:25 | e | -| B.cpp:7:16:7:35 | call to Box1 [elem1] | B.cpp:8:25:8:26 | *b1 [elem1] | -| B.cpp:7:25:7:25 | e | B.cpp:7:16:7:35 | call to Box1 [elem1] | -| B.cpp:7:25:7:25 | e | B.cpp:33:16:33:17 | e1 | -| B.cpp:8:16:8:27 | call to Box2 [*box1, elem1] | B.cpp:9:10:9:11 | *b2 [*box1, elem1] | -| B.cpp:8:25:8:26 | *b1 [elem1] | B.cpp:8:16:8:27 | call to Box2 [*box1, elem1] | -| B.cpp:8:25:8:26 | *b1 [elem1] | B.cpp:44:16:44:17 | *b1 [elem1] | -| B.cpp:9:10:9:11 | *b2 [*box1, elem1] | B.cpp:9:14:9:17 | *box1 [elem1] | -| B.cpp:9:14:9:17 | *box1 [elem1] | B.cpp:9:10:9:24 | elem1 | -| B.cpp:15:15:15:27 | new | B.cpp:16:37:16:37 | e | -| B.cpp:16:16:16:38 | call to Box1 [elem2] | B.cpp:17:25:17:26 | *b1 [elem2] | -| B.cpp:16:37:16:37 | e | B.cpp:16:16:16:38 | call to Box1 [elem2] | -| B.cpp:16:37:16:37 | e | B.cpp:33:26:33:27 | e2 | -| B.cpp:17:16:17:27 | call to Box2 [*box1, elem2] | B.cpp:19:10:19:11 | *b2 [*box1, elem2] | -| B.cpp:17:25:17:26 | *b1 [elem2] | B.cpp:17:16:17:27 | call to Box2 [*box1, elem2] | -| B.cpp:17:25:17:26 | *b1 [elem2] | B.cpp:44:16:44:17 | *b1 [elem2] | -| B.cpp:19:10:19:11 | *b2 [*box1, elem2] | B.cpp:19:14:19:17 | *box1 [elem2] | -| B.cpp:19:14:19:17 | *box1 [elem2] | B.cpp:19:10:19:24 | elem2 | -| B.cpp:33:16:33:17 | e1 | B.cpp:35:7:35:22 | ... = ... | -| B.cpp:33:26:33:27 | e2 | B.cpp:36:7:36:22 | ... = ... | -| B.cpp:35:7:35:22 | ... = ... | B.cpp:35:7:35:10 | *this [post update] [elem1] | -| B.cpp:36:7:36:22 | ... = ... | B.cpp:36:7:36:10 | *this [post update] [elem2] | -| B.cpp:44:16:44:17 | *b1 [elem1] | B.cpp:46:7:46:21 | *... = ... [elem1] | -| B.cpp:44:16:44:17 | *b1 [elem2] | B.cpp:46:7:46:21 | *... = ... [elem2] | -| B.cpp:46:7:46:21 | *... = ... [elem1] | B.cpp:46:7:46:10 | *this [post update] [*box1, elem1] | -| B.cpp:46:7:46:21 | *... = ... [elem2] | B.cpp:46:7:46:10 | *this [post update] [*box1, elem2] | -| C.cpp:18:12:18:18 | call to C [s1] | C.cpp:19:5:19:5 | *c [s1] | -| C.cpp:18:12:18:18 | call to C [s3] | C.cpp:19:5:19:5 | *c [s3] | -| C.cpp:19:5:19:5 | *c [s1] | C.cpp:27:8:27:11 | *this [s1] | -| C.cpp:19:5:19:5 | *c [s3] | C.cpp:27:8:27:11 | *this [s3] | -| C.cpp:22:3:22:3 | *this [post update] [s1] | C.cpp:18:12:18:18 | call to C [s1] | -| C.cpp:22:12:22:21 | new | C.cpp:22:3:22:3 | *this [post update] [s1] | -| C.cpp:22:12:22:21 | new | C.cpp:22:12:22:21 | new | -| C.cpp:24:5:24:8 | *this [post update] [s3] | C.cpp:18:12:18:18 | call to C [s3] | -| C.cpp:24:5:24:25 | ... = ... | C.cpp:24:5:24:8 | *this [post update] [s3] | -| C.cpp:24:16:24:25 | new | C.cpp:24:5:24:25 | ... = ... | -| C.cpp:27:8:27:11 | *this [s1] | C.cpp:29:10:29:11 | *this [s1] | -| C.cpp:27:8:27:11 | *this [s3] | C.cpp:31:10:31:11 | *this [s3] | -| C.cpp:29:10:29:11 | *this [s1] | C.cpp:29:10:29:11 | s1 | -| C.cpp:31:10:31:11 | *this [s3] | C.cpp:31:10:31:11 | s3 | -| D.cpp:10:11:10:17 | *this [elem] | D.cpp:10:30:10:33 | *this [elem] | -| D.cpp:10:30:10:33 | *this [elem] | D.cpp:10:30:10:33 | elem | -| D.cpp:10:30:10:33 | elem | D.cpp:10:11:10:17 | *getElem | -| D.cpp:11:24:11:24 | e | D.cpp:11:29:11:36 | ... = ... | -| D.cpp:11:29:11:36 | ... = ... | D.cpp:11:29:11:32 | *this [post update] [elem] | -| D.cpp:17:11:17:17 | *this [*box, elem] | D.cpp:17:30:17:32 | *this [*box, elem] | -| D.cpp:17:30:17:32 | *box [elem] | D.cpp:17:11:17:17 | **getBox1 [elem] | -| D.cpp:17:30:17:32 | *this [*box, elem] | D.cpp:17:30:17:32 | *box [elem] | -| D.cpp:21:30:21:31 | *b2 [*box, elem] | D.cpp:22:10:22:11 | *b2 [*box, elem] | -| D.cpp:22:10:22:11 | *b2 [*box, elem] | D.cpp:17:11:17:17 | *this [*box, elem] | -| D.cpp:22:10:22:11 | *b2 [*box, elem] | D.cpp:22:14:22:20 | *call to getBox1 [elem] | -| D.cpp:22:14:22:20 | *call to getBox1 [elem] | D.cpp:10:11:10:17 | *this [elem] | -| D.cpp:22:14:22:20 | *call to getBox1 [elem] | D.cpp:22:10:22:33 | call to getElem | -| D.cpp:28:15:28:24 | new | D.cpp:30:5:30:20 | ... = ... | -| D.cpp:30:5:30:5 | *b [post update] [*box, elem] | D.cpp:31:14:31:14 | *b [*box, elem] | -| D.cpp:30:5:30:20 | ... = ... | D.cpp:30:8:30:10 | *box [post update] [elem] | -| D.cpp:30:8:30:10 | *box [post update] [elem] | D.cpp:30:5:30:5 | *b [post update] [*box, elem] | -| D.cpp:31:14:31:14 | *b [*box, elem] | D.cpp:21:30:21:31 | *b2 [*box, elem] | -| D.cpp:35:15:35:24 | new | D.cpp:37:21:37:21 | e | -| D.cpp:37:5:37:5 | *b [post update] [*box, elem] | D.cpp:38:14:38:14 | *b [*box, elem] | -| D.cpp:37:8:37:10 | setElem output argument [elem] | D.cpp:37:5:37:5 | *b [post update] [*box, elem] | -| D.cpp:37:21:37:21 | e | D.cpp:11:24:11:24 | e | -| D.cpp:37:21:37:21 | e | D.cpp:37:8:37:10 | setElem output argument [elem] | -| D.cpp:38:14:38:14 | *b [*box, elem] | D.cpp:21:30:21:31 | *b2 [*box, elem] | -| D.cpp:42:15:42:24 | new | D.cpp:44:5:44:26 | ... = ... | -| D.cpp:44:5:44:5 | getBox1 output argument [*box, elem] | D.cpp:45:14:45:14 | *b [*box, elem] | -| D.cpp:44:5:44:26 | ... = ... | D.cpp:44:8:44:14 | *call to getBox1 [post update] [elem] | -| D.cpp:44:8:44:14 | *call to getBox1 [post update] [elem] | D.cpp:44:5:44:5 | getBox1 output argument [*box, elem] | -| D.cpp:45:14:45:14 | *b [*box, elem] | D.cpp:21:30:21:31 | *b2 [*box, elem] | -| D.cpp:49:15:49:24 | new | D.cpp:51:27:51:27 | e | -| D.cpp:51:5:51:5 | getBox1 output argument [*box, elem] | D.cpp:52:14:52:14 | *b [*box, elem] | -| D.cpp:51:8:51:14 | setElem output argument [elem] | D.cpp:51:5:51:5 | getBox1 output argument [*box, elem] | -| D.cpp:51:27:51:27 | e | D.cpp:11:24:11:24 | e | -| D.cpp:51:27:51:27 | e | D.cpp:51:8:51:14 | setElem output argument [elem] | -| D.cpp:52:14:52:14 | *b [*box, elem] | D.cpp:21:30:21:31 | *b2 [*box, elem] | -| D.cpp:56:15:56:24 | new | D.cpp:58:5:58:27 | ... = ... | -| D.cpp:58:5:58:12 | *boxfield [post update] [*box, elem] | D.cpp:58:5:58:12 | *this [post update] [*boxfield, *box, elem] | -| D.cpp:58:5:58:12 | *this [post update] [*boxfield, *box, elem] | D.cpp:59:5:59:7 | *this [*boxfield, *box, elem] | -| D.cpp:58:5:58:27 | ... = ... | D.cpp:58:15:58:17 | *box [post update] [elem] | -| D.cpp:58:15:58:17 | *box [post update] [elem] | D.cpp:58:5:58:12 | *boxfield [post update] [*box, elem] | -| D.cpp:59:5:59:7 | *this [*boxfield, *box, elem] | D.cpp:63:8:63:10 | *this [*boxfield, *box, elem] | -| D.cpp:63:8:63:10 | *this [*boxfield, *box, elem] | D.cpp:64:10:64:17 | *this [*boxfield, *box, elem] | -| D.cpp:64:10:64:17 | *boxfield [*box, elem] | D.cpp:64:20:64:22 | *box [elem] | -| D.cpp:64:10:64:17 | *this [*boxfield, *box, elem] | D.cpp:64:10:64:17 | *boxfield [*box, elem] | -| D.cpp:64:20:64:22 | *box [elem] | D.cpp:64:10:64:28 | elem | -| E.cpp:19:27:19:27 | *p [data, *buffer] | E.cpp:21:10:21:10 | *p [data, *buffer] | -| E.cpp:21:10:21:10 | *p [data, *buffer] | E.cpp:21:13:21:16 | *data [*buffer] | -| E.cpp:21:13:21:16 | *data [*buffer] | E.cpp:21:18:21:23 | *buffer | -| E.cpp:28:21:28:23 | argument_source output argument | E.cpp:31:10:31:12 | *raw | -| E.cpp:29:21:29:21 | *b [post update] [*buffer] | E.cpp:32:10:32:10 | *b [*buffer] | -| E.cpp:29:21:29:29 | argument_source output argument | E.cpp:29:21:29:21 | *b [post update] [*buffer] | -| E.cpp:30:21:30:21 | *p [post update] [data, *buffer] | E.cpp:33:18:33:19 | *& ... [data, *buffer] | -| E.cpp:30:21:30:33 | argument_source output argument | E.cpp:30:23:30:26 | *data [post update] [*buffer] | -| E.cpp:30:23:30:26 | *data [post update] [*buffer] | E.cpp:30:21:30:21 | *p [post update] [data, *buffer] | -| E.cpp:32:10:32:10 | *b [*buffer] | E.cpp:32:13:32:18 | *buffer | -| E.cpp:33:18:33:19 | *& ... [data, *buffer] | E.cpp:19:27:19:27 | *p [data, *buffer] | -| aliasing.cpp:9:3:9:3 | *s [post update] [m1] | aliasing.cpp:25:17:25:19 | pointerSetter output argument [m1] | -| aliasing.cpp:9:3:9:22 | ... = ... | aliasing.cpp:9:3:9:3 | *s [post update] [m1] | -| aliasing.cpp:9:11:9:20 | call to user_input | aliasing.cpp:9:3:9:22 | ... = ... | -| aliasing.cpp:13:3:13:3 | *s [post update] [m1] | aliasing.cpp:26:19:26:20 | referenceSetter output argument [m1] | -| aliasing.cpp:13:3:13:21 | ... = ... | aliasing.cpp:13:3:13:3 | *s [post update] [m1] | -| aliasing.cpp:13:10:13:19 | call to user_input | aliasing.cpp:13:3:13:21 | ... = ... | -| aliasing.cpp:25:17:25:19 | pointerSetter output argument [m1] | aliasing.cpp:29:8:29:9 | *s1 [m1] | -| aliasing.cpp:26:19:26:20 | referenceSetter output argument [m1] | aliasing.cpp:30:8:30:9 | *s2 [m1] | -| aliasing.cpp:29:8:29:9 | *s1 [m1] | aliasing.cpp:29:11:29:12 | m1 | -| aliasing.cpp:30:8:30:9 | *s2 [m1] | aliasing.cpp:30:11:30:12 | m1 | -| aliasing.cpp:60:3:60:4 | *s2 [post update] [m1] | aliasing.cpp:62:8:62:12 | *copy2 [m1] | -| aliasing.cpp:60:3:60:22 | ... = ... | aliasing.cpp:60:3:60:4 | *s2 [post update] [m1] | -| aliasing.cpp:60:11:60:20 | call to user_input | aliasing.cpp:60:3:60:22 | ... = ... | -| aliasing.cpp:62:8:62:12 | *copy2 [m1] | aliasing.cpp:62:14:62:15 | m1 | -| aliasing.cpp:92:3:92:3 | *w [post update] [s, m1] | aliasing.cpp:93:8:93:8 | *w [s, m1] | -| aliasing.cpp:92:3:92:23 | ... = ... | aliasing.cpp:92:5:92:5 | *s [post update] [m1] | -| aliasing.cpp:92:5:92:5 | *s [post update] [m1] | aliasing.cpp:92:3:92:3 | *w [post update] [s, m1] | -| aliasing.cpp:92:12:92:21 | call to user_input | aliasing.cpp:92:3:92:23 | ... = ... | -| aliasing.cpp:93:8:93:8 | *w [s, m1] | aliasing.cpp:93:10:93:10 | *s [m1] | -| aliasing.cpp:93:10:93:10 | *s [m1] | aliasing.cpp:93:12:93:13 | m1 | -| aliasing.cpp:98:3:98:3 | *s [post update] [m1] | aliasing.cpp:101:14:101:19 | *s_copy [m1] | -| aliasing.cpp:98:3:98:21 | ... = ... | aliasing.cpp:98:3:98:3 | *s [post update] [m1] | -| aliasing.cpp:98:10:98:19 | call to user_input | aliasing.cpp:98:3:98:21 | ... = ... | -| aliasing.cpp:101:13:101:22 | *& ... | aliasing.cpp:102:8:102:10 | * ... | -| aliasing.cpp:101:14:101:19 | *s_copy [m1] | aliasing.cpp:101:13:101:22 | *& ... | -| aliasing.cpp:105:23:105:24 | *pa | aliasing.cpp:121:15:121:16 | taint_a_ptr output argument | -| aliasing.cpp:105:23:105:24 | *pa | aliasing.cpp:126:15:126:20 | taint_a_ptr output argument | -| aliasing.cpp:105:23:105:24 | *pa | aliasing.cpp:131:15:131:16 | taint_a_ptr output argument | -| aliasing.cpp:105:23:105:24 | *pa | aliasing.cpp:136:15:136:17 | taint_a_ptr output argument | -| aliasing.cpp:105:23:105:24 | *pa | aliasing.cpp:141:17:141:20 | taint_a_ptr output argument | -| aliasing.cpp:105:23:105:24 | *pa | aliasing.cpp:158:15:158:20 | taint_a_ptr output argument | -| aliasing.cpp:105:23:105:24 | *pa | aliasing.cpp:164:15:164:20 | taint_a_ptr output argument | -| aliasing.cpp:105:23:105:24 | *pa | aliasing.cpp:175:15:175:22 | taint_a_ptr output argument | -| aliasing.cpp:105:23:105:24 | *pa | aliasing.cpp:187:15:187:22 | taint_a_ptr output argument | -| aliasing.cpp:105:23:105:24 | *pa | aliasing.cpp:200:15:200:24 | taint_a_ptr output argument | -| aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:105:23:105:24 | *pa | -| aliasing.cpp:121:15:121:16 | taint_a_ptr output argument | aliasing.cpp:122:8:122:12 | access to array | -| aliasing.cpp:126:15:126:20 | taint_a_ptr output argument | aliasing.cpp:127:8:127:16 | * ... | -| aliasing.cpp:131:15:131:16 | taint_a_ptr output argument | aliasing.cpp:132:8:132:14 | * ... | -| aliasing.cpp:136:15:136:17 | taint_a_ptr output argument | aliasing.cpp:137:8:137:11 | * ... | -| aliasing.cpp:141:15:141:15 | *s [post update] [*data] | aliasing.cpp:143:8:143:8 | *s [*data] | -| aliasing.cpp:141:17:141:20 | taint_a_ptr output argument | aliasing.cpp:141:15:141:15 | *s [post update] [*data] | -| aliasing.cpp:143:8:143:8 | *s [*data] | aliasing.cpp:143:8:143:16 | access to array | -| aliasing.cpp:143:8:143:8 | *s [*data] | aliasing.cpp:143:10:143:13 | *data | -| aliasing.cpp:143:10:143:13 | *data | aliasing.cpp:143:8:143:16 | access to array | -| aliasing.cpp:158:15:158:15 | *s [post update] [data] | aliasing.cpp:159:9:159:9 | *s [data] | -| aliasing.cpp:158:15:158:20 | taint_a_ptr output argument | aliasing.cpp:158:15:158:15 | *s [post update] [data] | -| aliasing.cpp:159:9:159:9 | *s [data] | aliasing.cpp:159:8:159:14 | * ... | -| aliasing.cpp:164:15:164:15 | *s [post update] [data] | aliasing.cpp:165:8:165:8 | *s [data] | -| aliasing.cpp:164:15:164:20 | taint_a_ptr output argument | aliasing.cpp:164:15:164:15 | *s [post update] [data] | -| aliasing.cpp:165:8:165:8 | *s [data] | aliasing.cpp:165:8:165:16 | access to array | -| aliasing.cpp:175:15:175:22 | taint_a_ptr output argument | aliasing.cpp:175:19:175:19 | *s [post update] [m1] | -| aliasing.cpp:175:16:175:17 | *s2 [post update] [s, m1] | aliasing.cpp:176:8:176:9 | *s2 [s, m1] | -| aliasing.cpp:175:19:175:19 | *s [post update] [m1] | aliasing.cpp:175:16:175:17 | *s2 [post update] [s, m1] | -| aliasing.cpp:176:8:176:9 | *s2 [s, m1] | aliasing.cpp:176:11:176:11 | *s [m1] | -| aliasing.cpp:176:11:176:11 | *s [m1] | aliasing.cpp:176:13:176:14 | m1 | -| aliasing.cpp:187:15:187:22 | taint_a_ptr output argument | aliasing.cpp:187:19:187:19 | *s [post update] [m1] | -| aliasing.cpp:187:16:187:17 | *s2 [post update] [s, m1] | aliasing.cpp:189:8:189:11 | *s2_2 [s, m1] | -| aliasing.cpp:187:19:187:19 | *s [post update] [m1] | aliasing.cpp:187:16:187:17 | *s2 [post update] [s, m1] | -| aliasing.cpp:189:8:189:11 | *s2_2 [s, m1] | aliasing.cpp:189:13:189:13 | *s [m1] | -| aliasing.cpp:189:13:189:13 | *s [m1] | aliasing.cpp:189:15:189:16 | m1 | -| aliasing.cpp:200:15:200:24 | taint_a_ptr output argument | aliasing.cpp:200:21:200:21 | *s [post update] [m1] | -| aliasing.cpp:200:16:200:18 | *ps2 [post update] [s, m1] | aliasing.cpp:201:8:201:10 | *ps2 [s, m1] | -| aliasing.cpp:200:21:200:21 | *s [post update] [m1] | aliasing.cpp:200:16:200:18 | *ps2 [post update] [s, m1] | -| aliasing.cpp:201:8:201:10 | *ps2 [s, m1] | aliasing.cpp:201:13:201:13 | *s [m1] | -| aliasing.cpp:201:13:201:13 | *s [m1] | aliasing.cpp:201:15:201:16 | m1 | -| arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:7:8:7:13 | access to array | -| arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:8:8:8:13 | access to array | -| arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:9:8:9:11 | * ... | -| arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | * ... | -| arrays.cpp:15:14:15:23 | call to user_input | arrays.cpp:16:8:16:13 | access to array | -| arrays.cpp:15:14:15:23 | call to user_input | arrays.cpp:17:8:17:13 | access to array | -| arrays.cpp:36:3:36:3 | *o [post update] [nested, arr, data] | arrays.cpp:37:8:37:8 | *o [nested, arr, data] | -| arrays.cpp:36:3:36:3 | *o [post update] [nested, arr, data] | arrays.cpp:38:8:38:8 | *o [nested, arr, data] | -| arrays.cpp:36:3:36:17 | *access to array [post update] [data] | arrays.cpp:36:5:36:10 | *nested [post update] [arr, data] | -| arrays.cpp:36:3:36:37 | ... = ... | arrays.cpp:36:3:36:17 | *access to array [post update] [data] | -| arrays.cpp:36:5:36:10 | *nested [post update] [arr, data] | arrays.cpp:36:3:36:3 | *o [post update] [nested, arr, data] | -| arrays.cpp:36:26:36:35 | call to user_input | arrays.cpp:36:3:36:37 | ... = ... | -| arrays.cpp:37:8:37:8 | *o [nested, arr, data] | arrays.cpp:37:10:37:15 | *nested [arr, data] | -| arrays.cpp:37:8:37:22 | *access to array [data] | arrays.cpp:37:24:37:27 | data | -| arrays.cpp:37:10:37:15 | *nested [arr, data] | arrays.cpp:37:8:37:22 | *access to array [data] | -| arrays.cpp:38:8:38:8 | *o [nested, arr, data] | arrays.cpp:38:10:38:15 | *nested [arr, data] | -| arrays.cpp:38:8:38:22 | *access to array [data] | arrays.cpp:38:24:38:27 | data | -| arrays.cpp:38:10:38:15 | *nested [arr, data] | arrays.cpp:38:8:38:22 | *access to array [data] | -| arrays.cpp:42:3:42:3 | *o [post update] [*indirect, arr, data] | arrays.cpp:43:8:43:8 | *o [*indirect, arr, data] | -| arrays.cpp:42:3:42:3 | *o [post update] [*indirect, arr, data] | arrays.cpp:44:8:44:8 | *o [*indirect, arr, data] | -| arrays.cpp:42:3:42:20 | *access to array [post update] [data] | arrays.cpp:42:5:42:12 | *indirect [post update] [arr, data] | -| arrays.cpp:42:3:42:40 | ... = ... | arrays.cpp:42:3:42:20 | *access to array [post update] [data] | -| arrays.cpp:42:5:42:12 | *indirect [post update] [arr, data] | arrays.cpp:42:3:42:3 | *o [post update] [*indirect, arr, data] | -| arrays.cpp:42:29:42:38 | call to user_input | arrays.cpp:42:3:42:40 | ... = ... | -| arrays.cpp:43:8:43:8 | *o [*indirect, arr, data] | arrays.cpp:43:10:43:17 | *indirect [arr, data] | -| arrays.cpp:43:8:43:25 | *access to array [data] | arrays.cpp:43:27:43:30 | data | -| arrays.cpp:43:10:43:17 | *indirect [arr, data] | arrays.cpp:43:8:43:25 | *access to array [data] | -| arrays.cpp:44:8:44:8 | *o [*indirect, arr, data] | arrays.cpp:44:10:44:17 | *indirect [arr, data] | -| arrays.cpp:44:8:44:25 | *access to array [data] | arrays.cpp:44:27:44:30 | data | -| arrays.cpp:44:10:44:17 | *indirect [arr, data] | arrays.cpp:44:8:44:25 | *access to array [data] | -| arrays.cpp:48:3:48:3 | *o [post update] [*indirect, *ptr, data] | arrays.cpp:49:8:49:8 | *o [*indirect, *ptr, data] | -| arrays.cpp:48:3:48:3 | *o [post update] [*indirect, *ptr, data] | arrays.cpp:50:8:50:8 | *o [*indirect, *ptr, data] | -| arrays.cpp:48:3:48:20 | *access to array [post update] [data] | arrays.cpp:48:5:48:12 | *indirect [post update] [*ptr, data] | -| arrays.cpp:48:3:48:40 | ... = ... | arrays.cpp:48:3:48:20 | *access to array [post update] [data] | -| arrays.cpp:48:5:48:12 | *indirect [post update] [*ptr, data] | arrays.cpp:48:3:48:3 | *o [post update] [*indirect, *ptr, data] | -| arrays.cpp:48:29:48:38 | call to user_input | arrays.cpp:48:3:48:40 | ... = ... | -| arrays.cpp:49:8:49:8 | *o [*indirect, *ptr, data] | arrays.cpp:49:10:49:17 | *indirect [*ptr, data] | -| arrays.cpp:49:8:49:25 | *access to array [data] | arrays.cpp:49:27:49:30 | data | -| arrays.cpp:49:10:49:17 | *indirect [*ptr, data] | arrays.cpp:49:8:49:25 | *access to array [data] | -| arrays.cpp:49:10:49:17 | *indirect [*ptr, data] | arrays.cpp:49:20:49:22 | *ptr [data] | -| arrays.cpp:49:20:49:22 | *ptr [data] | arrays.cpp:49:8:49:25 | *access to array [data] | -| arrays.cpp:50:8:50:8 | *o [*indirect, *ptr, data] | arrays.cpp:50:10:50:17 | *indirect [*ptr, data] | -| arrays.cpp:50:8:50:25 | *access to array [data] | arrays.cpp:50:27:50:30 | data | -| arrays.cpp:50:10:50:17 | *indirect [*ptr, data] | arrays.cpp:50:8:50:25 | *access to array [data] | -| arrays.cpp:50:10:50:17 | *indirect [*ptr, data] | arrays.cpp:50:20:50:22 | *ptr [data] | -| arrays.cpp:50:20:50:22 | *ptr [data] | arrays.cpp:50:8:50:25 | *access to array [data] | -| by_reference.cpp:11:48:11:52 | value | by_reference.cpp:12:5:12:16 | ... = ... | -| by_reference.cpp:12:5:12:16 | ... = ... | by_reference.cpp:12:5:12:5 | *s [post update] [a] | -| by_reference.cpp:15:26:15:30 | value | by_reference.cpp:16:5:16:19 | ... = ... | -| by_reference.cpp:16:5:16:19 | ... = ... | by_reference.cpp:16:5:16:8 | *this [post update] [a] | -| by_reference.cpp:19:28:19:32 | value | by_reference.cpp:20:23:20:27 | value | -| by_reference.cpp:20:23:20:27 | value | by_reference.cpp:15:26:15:30 | value | -| by_reference.cpp:20:23:20:27 | value | by_reference.cpp:20:5:20:8 | setDirectly output argument [a] | -| by_reference.cpp:23:34:23:38 | value | by_reference.cpp:24:25:24:29 | value | -| by_reference.cpp:24:25:24:29 | value | by_reference.cpp:11:48:11:52 | value | -| by_reference.cpp:24:25:24:29 | value | by_reference.cpp:24:19:24:22 | nonMemberSetA output argument [a] | -| by_reference.cpp:31:46:31:46 | *s [a] | by_reference.cpp:32:12:32:12 | *s [a] | -| by_reference.cpp:32:12:32:12 | *s [a] | by_reference.cpp:32:15:32:15 | a | -| by_reference.cpp:32:15:32:15 | a | by_reference.cpp:31:16:31:28 | *nonMemberGetA | -| by_reference.cpp:35:9:35:19 | *this [a] | by_reference.cpp:36:12:36:15 | *this [a] | -| by_reference.cpp:36:12:36:15 | *this [a] | by_reference.cpp:36:18:36:18 | a | -| by_reference.cpp:36:18:36:18 | a | by_reference.cpp:35:9:35:19 | *getDirectly | -| by_reference.cpp:39:9:39:21 | *this [a] | by_reference.cpp:40:12:40:15 | *this [a] | -| by_reference.cpp:40:12:40:15 | *this [a] | by_reference.cpp:35:9:35:19 | *this [a] | -| by_reference.cpp:40:12:40:15 | *this [a] | by_reference.cpp:40:18:40:28 | call to getDirectly | -| by_reference.cpp:40:18:40:28 | call to getDirectly | by_reference.cpp:39:9:39:21 | *getIndirectly | -| by_reference.cpp:43:9:43:27 | *this [a] | by_reference.cpp:44:26:44:29 | *this [a] | -| by_reference.cpp:44:12:44:24 | call to nonMemberGetA | by_reference.cpp:43:9:43:27 | *getThroughNonMember | -| by_reference.cpp:44:26:44:29 | *this [a] | by_reference.cpp:31:46:31:46 | *s [a] | -| by_reference.cpp:44:26:44:29 | *this [a] | by_reference.cpp:44:12:44:24 | call to nonMemberGetA | -| by_reference.cpp:50:3:50:3 | setDirectly output argument [a] | by_reference.cpp:51:8:51:8 | *s [a] | -| by_reference.cpp:50:17:50:26 | call to user_input | by_reference.cpp:15:26:15:30 | value | -| by_reference.cpp:50:17:50:26 | call to user_input | by_reference.cpp:50:3:50:3 | setDirectly output argument [a] | -| by_reference.cpp:51:8:51:8 | *s [a] | by_reference.cpp:35:9:35:19 | *this [a] | -| by_reference.cpp:51:8:51:8 | *s [a] | by_reference.cpp:51:10:51:20 | call to getDirectly | -| by_reference.cpp:56:3:56:3 | setIndirectly output argument [a] | by_reference.cpp:57:8:57:8 | *s [a] | -| by_reference.cpp:56:19:56:28 | call to user_input | by_reference.cpp:19:28:19:32 | value | -| by_reference.cpp:56:19:56:28 | call to user_input | by_reference.cpp:56:3:56:3 | setIndirectly output argument [a] | -| by_reference.cpp:57:8:57:8 | *s [a] | by_reference.cpp:39:9:39:21 | *this [a] | -| by_reference.cpp:57:8:57:8 | *s [a] | by_reference.cpp:57:10:57:22 | call to getIndirectly | -| by_reference.cpp:62:3:62:3 | setThroughNonMember output argument [a] | by_reference.cpp:63:8:63:8 | *s [a] | -| by_reference.cpp:62:25:62:34 | call to user_input | by_reference.cpp:23:34:23:38 | value | -| by_reference.cpp:62:25:62:34 | call to user_input | by_reference.cpp:62:3:62:3 | setThroughNonMember output argument [a] | -| by_reference.cpp:63:8:63:8 | *s [a] | by_reference.cpp:43:9:43:27 | *this [a] | -| by_reference.cpp:63:8:63:8 | *s [a] | by_reference.cpp:63:10:63:28 | call to getThroughNonMember | -| by_reference.cpp:68:17:68:18 | nonMemberSetA output argument [a] | by_reference.cpp:69:22:69:23 | *& ... [a] | -| by_reference.cpp:68:21:68:30 | call to user_input | by_reference.cpp:11:48:11:52 | value | -| by_reference.cpp:68:21:68:30 | call to user_input | by_reference.cpp:68:17:68:18 | nonMemberSetA output argument [a] | -| by_reference.cpp:69:22:69:23 | *& ... [a] | by_reference.cpp:31:46:31:46 | *s [a] | -| by_reference.cpp:69:22:69:23 | *& ... [a] | by_reference.cpp:69:8:69:20 | call to nonMemberGetA | -| by_reference.cpp:84:3:84:7 | *inner [post update] [a] | by_reference.cpp:102:21:102:39 | taint_inner_a_ptr output argument [a] | -| by_reference.cpp:84:3:84:7 | *inner [post update] [a] | by_reference.cpp:103:27:103:35 | taint_inner_a_ptr output argument [a] | -| by_reference.cpp:84:3:84:7 | *inner [post update] [a] | by_reference.cpp:106:21:106:41 | taint_inner_a_ptr output argument [a] | -| by_reference.cpp:84:3:84:7 | *inner [post update] [a] | by_reference.cpp:107:29:107:37 | taint_inner_a_ptr output argument [a] | -| by_reference.cpp:84:3:84:25 | ... = ... | by_reference.cpp:84:3:84:7 | *inner [post update] [a] | -| by_reference.cpp:84:14:84:23 | call to user_input | by_reference.cpp:84:3:84:25 | ... = ... | -| by_reference.cpp:88:3:88:7 | *inner [post update] [a] | by_reference.cpp:122:21:122:38 | taint_inner_a_ref output argument [a] | -| by_reference.cpp:88:3:88:7 | *inner [post update] [a] | by_reference.cpp:123:21:123:36 | taint_inner_a_ref output argument [a] | -| by_reference.cpp:88:3:88:7 | *inner [post update] [a] | by_reference.cpp:126:21:126:40 | taint_inner_a_ref output argument [a] | -| by_reference.cpp:88:3:88:7 | *inner [post update] [a] | by_reference.cpp:127:21:127:38 | taint_inner_a_ref output argument [a] | -| by_reference.cpp:88:3:88:24 | ... = ... | by_reference.cpp:88:3:88:7 | *inner [post update] [a] | -| by_reference.cpp:88:13:88:22 | call to user_input | by_reference.cpp:88:3:88:24 | ... = ... | -| by_reference.cpp:91:25:91:26 | *pa | by_reference.cpp:104:15:104:22 | taint_a_ptr output argument | -| by_reference.cpp:91:25:91:26 | *pa | by_reference.cpp:108:15:108:24 | taint_a_ptr output argument | -| by_reference.cpp:92:9:92:18 | call to user_input | by_reference.cpp:91:25:91:26 | *pa | -| by_reference.cpp:95:25:95:26 | *pa | by_reference.cpp:124:15:124:21 | taint_a_ref output argument | -| by_reference.cpp:95:25:95:26 | *pa | by_reference.cpp:128:15:128:23 | taint_a_ref output argument | -| by_reference.cpp:96:8:96:17 | call to user_input | by_reference.cpp:95:25:95:26 | *pa | -| by_reference.cpp:102:21:102:39 | taint_inner_a_ptr output argument [a] | by_reference.cpp:102:22:102:26 | *outer [post update] [inner_nested, a] | -| by_reference.cpp:102:22:102:26 | *outer [post update] [inner_nested, a] | by_reference.cpp:110:8:110:12 | *outer [inner_nested, a] | -| by_reference.cpp:103:21:103:25 | *outer [post update] [*inner_ptr, a] | by_reference.cpp:111:8:111:12 | *outer [*inner_ptr, a] | -| by_reference.cpp:103:27:103:35 | taint_inner_a_ptr output argument [a] | by_reference.cpp:103:21:103:25 | *outer [post update] [*inner_ptr, a] | -| by_reference.cpp:104:15:104:22 | taint_a_ptr output argument | by_reference.cpp:104:16:104:20 | *outer [post update] [a] | -| by_reference.cpp:104:16:104:20 | *outer [post update] [a] | by_reference.cpp:112:8:112:12 | *outer [a] | -| by_reference.cpp:106:21:106:41 | taint_inner_a_ptr output argument [a] | by_reference.cpp:106:22:106:27 | *pouter [post update] [inner_nested, a] | -| by_reference.cpp:106:22:106:27 | *pouter [post update] [inner_nested, a] | by_reference.cpp:114:8:114:13 | *pouter [inner_nested, a] | -| by_reference.cpp:107:21:107:26 | *pouter [post update] [*inner_ptr, a] | by_reference.cpp:115:8:115:13 | *pouter [*inner_ptr, a] | -| by_reference.cpp:107:29:107:37 | taint_inner_a_ptr output argument [a] | by_reference.cpp:107:21:107:26 | *pouter [post update] [*inner_ptr, a] | -| by_reference.cpp:108:15:108:24 | taint_a_ptr output argument | by_reference.cpp:108:16:108:21 | *pouter [post update] [a] | -| by_reference.cpp:108:16:108:21 | *pouter [post update] [a] | by_reference.cpp:116:8:116:13 | *pouter [a] | -| by_reference.cpp:110:8:110:12 | *outer [inner_nested, a] | by_reference.cpp:110:14:110:25 | *inner_nested [a] | -| by_reference.cpp:110:14:110:25 | *inner_nested [a] | by_reference.cpp:110:27:110:27 | a | -| by_reference.cpp:111:8:111:12 | *outer [*inner_ptr, a] | by_reference.cpp:111:14:111:22 | *inner_ptr [a] | -| by_reference.cpp:111:14:111:22 | *inner_ptr [a] | by_reference.cpp:111:25:111:25 | a | -| by_reference.cpp:112:8:112:12 | *outer [a] | by_reference.cpp:112:14:112:14 | a | -| by_reference.cpp:114:8:114:13 | *pouter [inner_nested, a] | by_reference.cpp:114:16:114:27 | *inner_nested [a] | -| by_reference.cpp:114:16:114:27 | *inner_nested [a] | by_reference.cpp:114:29:114:29 | a | -| by_reference.cpp:115:8:115:13 | *pouter [*inner_ptr, a] | by_reference.cpp:115:16:115:24 | *inner_ptr [a] | -| by_reference.cpp:115:16:115:24 | *inner_ptr [a] | by_reference.cpp:115:27:115:27 | a | -| by_reference.cpp:116:8:116:13 | *pouter [a] | by_reference.cpp:116:16:116:16 | a | -| by_reference.cpp:122:21:122:25 | *outer [post update] [inner_nested, a] | by_reference.cpp:130:8:130:12 | *outer [inner_nested, a] | -| by_reference.cpp:122:21:122:38 | taint_inner_a_ref output argument [a] | by_reference.cpp:122:21:122:25 | *outer [post update] [inner_nested, a] | -| by_reference.cpp:123:21:123:36 | taint_inner_a_ref output argument [a] | by_reference.cpp:123:22:123:26 | *outer [post update] [*inner_ptr, a] | -| by_reference.cpp:123:22:123:26 | *outer [post update] [*inner_ptr, a] | by_reference.cpp:131:8:131:12 | *outer [*inner_ptr, a] | -| by_reference.cpp:124:15:124:19 | *outer [post update] [a] | by_reference.cpp:132:8:132:12 | *outer [a] | -| by_reference.cpp:124:15:124:21 | taint_a_ref output argument | by_reference.cpp:124:15:124:19 | *outer [post update] [a] | -| by_reference.cpp:126:21:126:26 | *pouter [post update] [inner_nested, a] | by_reference.cpp:134:8:134:13 | *pouter [inner_nested, a] | -| by_reference.cpp:126:21:126:40 | taint_inner_a_ref output argument [a] | by_reference.cpp:126:21:126:26 | *pouter [post update] [inner_nested, a] | -| by_reference.cpp:127:21:127:38 | taint_inner_a_ref output argument [a] | by_reference.cpp:127:22:127:27 | *pouter [post update] [*inner_ptr, a] | -| by_reference.cpp:127:22:127:27 | *pouter [post update] [*inner_ptr, a] | by_reference.cpp:135:8:135:13 | *pouter [*inner_ptr, a] | -| by_reference.cpp:128:15:128:20 | *pouter [post update] [a] | by_reference.cpp:136:8:136:13 | *pouter [a] | -| by_reference.cpp:128:15:128:23 | taint_a_ref output argument | by_reference.cpp:128:15:128:20 | *pouter [post update] [a] | -| by_reference.cpp:130:8:130:12 | *outer [inner_nested, a] | by_reference.cpp:130:14:130:25 | *inner_nested [a] | -| by_reference.cpp:130:14:130:25 | *inner_nested [a] | by_reference.cpp:130:27:130:27 | a | -| by_reference.cpp:131:8:131:12 | *outer [*inner_ptr, a] | by_reference.cpp:131:14:131:22 | *inner_ptr [a] | -| by_reference.cpp:131:14:131:22 | *inner_ptr [a] | by_reference.cpp:131:25:131:25 | a | -| by_reference.cpp:132:8:132:12 | *outer [a] | by_reference.cpp:132:14:132:14 | a | -| by_reference.cpp:134:8:134:13 | *pouter [inner_nested, a] | by_reference.cpp:134:16:134:27 | *inner_nested [a] | -| by_reference.cpp:134:16:134:27 | *inner_nested [a] | by_reference.cpp:134:29:134:29 | a | -| by_reference.cpp:135:8:135:13 | *pouter [*inner_ptr, a] | by_reference.cpp:135:16:135:24 | *inner_ptr [a] | -| by_reference.cpp:135:16:135:24 | *inner_ptr [a] | by_reference.cpp:135:27:135:27 | a | -| by_reference.cpp:136:8:136:13 | *pouter [a] | by_reference.cpp:136:16:136:16 | a | -| clearning.cpp:32:3:32:25 | ... = ... | clearning.cpp:32:4:32:4 | *s [post update] [*x] | -| clearning.cpp:32:4:32:4 | *s [post update] [*x] | clearning.cpp:33:5:33:5 | *s [*x] | -| clearning.cpp:32:10:32:19 | call to user_input | clearning.cpp:32:3:32:25 | ... = ... | -| clearning.cpp:33:5:33:5 | *s [*x] | clearning.cpp:34:9:34:9 | *s [*x] | -| clearning.cpp:34:9:34:9 | *s [*x] | clearning.cpp:34:8:34:11 | * ... | -| clearning.cpp:53:3:53:25 | ... = ... | clearning.cpp:53:4:53:4 | *s [post update] [*x] | -| clearning.cpp:53:4:53:4 | *s [post update] [*x] | clearning.cpp:54:3:54:3 | *s [*x] | -| clearning.cpp:53:10:53:19 | call to user_input | clearning.cpp:53:3:53:25 | ... = ... | -| clearning.cpp:54:3:54:3 | *s [*x] | clearning.cpp:54:3:54:7 | *... ++ | -| clearning.cpp:54:3:54:3 | *s [*x] | clearning.cpp:54:5:54:5 | *x | -| clearning.cpp:54:3:54:3 | *s [*x] | clearning.cpp:55:8:55:8 | *s [*x] | -| clearning.cpp:54:3:54:3 | *s [post update] [*x] | clearning.cpp:55:8:55:8 | *s [*x] | -| clearning.cpp:54:3:54:7 | *... ++ | clearning.cpp:54:3:54:3 | *s [post update] [*x] | -| clearning.cpp:54:3:54:7 | *... ++ | clearning.cpp:54:3:54:7 | *... ++ | -| clearning.cpp:54:5:54:5 | *x | clearning.cpp:54:3:54:7 | *... ++ | -| clearning.cpp:55:8:55:8 | *s [*x] | clearning.cpp:55:10:55:10 | *x | -| clearning.cpp:60:3:60:22 | ... = ... | clearning.cpp:60:5:60:5 | *s [post update] [**x] | -| clearning.cpp:60:5:60:5 | *s [post update] [**x] | clearning.cpp:61:3:61:3 | *s [**x] | -| clearning.cpp:60:11:60:20 | call to user_input | clearning.cpp:60:3:60:22 | ... = ... | -| clearning.cpp:61:3:61:3 | *s [**x] | clearning.cpp:61:3:61:7 | **... ++ | -| clearning.cpp:61:3:61:3 | *s [**x] | clearning.cpp:61:5:61:5 | **x | -| clearning.cpp:61:3:61:3 | *s [**x] | clearning.cpp:62:8:62:8 | *s [**x] | -| clearning.cpp:61:3:61:3 | *s [post update] [**x] | clearning.cpp:62:8:62:8 | *s [**x] | -| clearning.cpp:61:3:61:7 | **... ++ | clearning.cpp:61:3:61:3 | *s [post update] [**x] | -| clearning.cpp:61:3:61:7 | **... ++ | clearning.cpp:61:3:61:7 | **... ++ | -| clearning.cpp:61:5:61:5 | **x | clearning.cpp:61:3:61:7 | **... ++ | -| clearning.cpp:62:8:62:8 | *s [**x] | clearning.cpp:62:10:62:10 | **x | -| clearning.cpp:74:18:74:18 | *s [post update] [*val] | clearning.cpp:76:8:76:8 | *s [*val] | -| clearning.cpp:74:20:74:22 | argument_source output argument | clearning.cpp:74:18:74:18 | *s [post update] [*val] | -| clearning.cpp:76:8:76:8 | *s [*val] | clearning.cpp:76:7:76:12 | * ... | -| clearning.cpp:81:18:81:18 | *s [post update] [*val] | clearning.cpp:83:13:83:13 | *s [*val] | -| clearning.cpp:81:20:81:22 | argument_source output argument | clearning.cpp:81:18:81:18 | *s [post update] [*val] | -| clearning.cpp:83:5:83:5 | *s [post update] [*val] | clearning.cpp:84:8:84:8 | *s [*val] | -| clearning.cpp:83:5:83:21 | *... = ... | clearning.cpp:83:5:83:5 | *s [post update] [*val] | -| clearning.cpp:83:13:83:13 | *s [*val] | clearning.cpp:83:13:83:21 | *... + ... | -| clearning.cpp:83:13:83:13 | *s [*val] | clearning.cpp:83:15:83:17 | *val | -| clearning.cpp:83:13:83:21 | *... + ... | clearning.cpp:83:5:83:21 | *... = ... | -| clearning.cpp:83:15:83:17 | *val | clearning.cpp:83:5:83:21 | *... = ... | -| clearning.cpp:84:8:84:8 | *s [*val] | clearning.cpp:84:7:84:12 | * ... | -| clearning.cpp:89:18:89:18 | *s [post update] [*val] | clearning.cpp:90:3:90:3 | *s [*val] | -| clearning.cpp:89:20:89:22 | argument_source output argument | clearning.cpp:89:18:89:18 | *s [post update] [*val] | -| clearning.cpp:90:3:90:3 | *s [*val] | clearning.cpp:90:3:90:9 | *... ++ | -| clearning.cpp:90:3:90:3 | *s [*val] | clearning.cpp:90:5:90:7 | **val | -| clearning.cpp:90:3:90:3 | *s [*val] | clearning.cpp:91:8:91:8 | *s [*val] | -| clearning.cpp:90:3:90:3 | *s [post update] [*val] | clearning.cpp:91:8:91:8 | *s [*val] | -| clearning.cpp:90:3:90:9 | *... ++ | clearning.cpp:90:3:90:3 | *s [post update] [*val] | -| clearning.cpp:90:3:90:9 | *... ++ | clearning.cpp:90:3:90:9 | *... ++ | -| clearning.cpp:90:5:90:7 | **val | clearning.cpp:90:3:90:9 | *... ++ | -| clearning.cpp:91:8:91:8 | *s [*val] | clearning.cpp:91:7:91:12 | * ... | -| clearning.cpp:96:18:96:18 | *s [post update] [*val] | clearning.cpp:97:10:97:10 | *s [*val] | -| clearning.cpp:96:20:96:22 | argument_source output argument | clearning.cpp:96:18:96:18 | *s [post update] [*val] | -| clearning.cpp:97:2:97:2 | *s [post update] [*val] | clearning.cpp:98:8:98:8 | *s [*val] | -| clearning.cpp:97:2:97:18 | *... = ... | clearning.cpp:97:2:97:2 | *s [post update] [*val] | -| clearning.cpp:97:10:97:10 | *s [*val] | clearning.cpp:97:10:97:18 | *... + ... | -| clearning.cpp:97:10:97:10 | *s [*val] | clearning.cpp:97:12:97:14 | *val | -| clearning.cpp:97:10:97:18 | *... + ... | clearning.cpp:97:2:97:18 | *... = ... | -| clearning.cpp:97:12:97:14 | *val | clearning.cpp:97:2:97:18 | *... = ... | -| clearning.cpp:98:8:98:8 | *s [*val] | clearning.cpp:98:7:98:12 | * ... | -| clearning.cpp:103:18:103:18 | *s [post update] [*val] | clearning.cpp:104:2:104:2 | *s [*val] | -| clearning.cpp:103:20:103:22 | argument_source output argument | clearning.cpp:103:18:103:18 | *s [post update] [*val] | -| clearning.cpp:104:2:104:2 | *s [*val] | clearning.cpp:104:2:104:8 | *... ++ | -| clearning.cpp:104:2:104:2 | *s [*val] | clearning.cpp:104:4:104:6 | *val | -| clearning.cpp:104:2:104:2 | *s [*val] | clearning.cpp:105:8:105:8 | *s [*val] | -| clearning.cpp:104:2:104:2 | *s [post update] [*val] | clearning.cpp:105:8:105:8 | *s [*val] | -| clearning.cpp:104:2:104:8 | *... ++ | clearning.cpp:104:2:104:2 | *s [post update] [*val] | -| clearning.cpp:104:2:104:8 | *... ++ | clearning.cpp:104:2:104:8 | *... ++ | -| clearning.cpp:104:4:104:6 | *val | clearning.cpp:104:2:104:8 | *... ++ | -| clearning.cpp:105:8:105:8 | *s [*val] | clearning.cpp:105:7:105:12 | * ... | -| clearning.cpp:110:18:110:18 | *s [post update] [*val] | clearning.cpp:111:4:111:4 | *s [*val] | -| clearning.cpp:110:20:110:22 | argument_source output argument | clearning.cpp:110:18:110:18 | *s [post update] [*val] | -| clearning.cpp:111:2:111:8 | *++ ... | clearning.cpp:111:2:111:8 | *++ ... | -| clearning.cpp:111:2:111:8 | *++ ... | clearning.cpp:111:4:111:4 | *s [post update] [*val] | -| clearning.cpp:111:4:111:4 | *s [*val] | clearning.cpp:111:2:111:8 | *++ ... | -| clearning.cpp:111:4:111:4 | *s [*val] | clearning.cpp:111:6:111:8 | *val | -| clearning.cpp:111:4:111:4 | *s [*val] | clearning.cpp:112:8:112:8 | *s [*val] | -| clearning.cpp:111:4:111:4 | *s [post update] [*val] | clearning.cpp:112:8:112:8 | *s [*val] | -| clearning.cpp:111:6:111:8 | *val | clearning.cpp:111:2:111:8 | *++ ... | -| clearning.cpp:112:8:112:8 | *s [*val] | clearning.cpp:112:7:112:12 | * ... | -| clearning.cpp:117:18:117:18 | *s [post update] [*val] | clearning.cpp:118:2:118:2 | *s [*val] | -| clearning.cpp:117:20:117:22 | argument_source output argument | clearning.cpp:117:18:117:18 | *s [post update] [*val] | -| clearning.cpp:118:2:118:2 | *s [*val] | clearning.cpp:118:2:118:11 | *... += ... | -| clearning.cpp:118:2:118:2 | *s [*val] | clearning.cpp:118:4:118:6 | *val | -| clearning.cpp:118:2:118:2 | *s [*val] | clearning.cpp:119:8:119:8 | *s [*val] | -| clearning.cpp:118:2:118:2 | *s [post update] [*val] | clearning.cpp:119:8:119:8 | *s [*val] | -| clearning.cpp:118:2:118:11 | *... += ... | clearning.cpp:118:2:118:2 | *s [post update] [*val] | -| clearning.cpp:118:2:118:11 | *... += ... | clearning.cpp:118:2:118:11 | *... += ... | -| clearning.cpp:118:4:118:6 | *val | clearning.cpp:118:2:118:11 | *... += ... | -| clearning.cpp:119:8:119:8 | *s [*val] | clearning.cpp:119:7:119:12 | * ... | -| clearning.cpp:151:3:151:3 | *s [post update] [val] | clearning.cpp:152:8:152:8 | *s [val] | -| clearning.cpp:151:3:151:22 | ... = ... | clearning.cpp:151:3:151:3 | *s [post update] [val] | -| clearning.cpp:151:11:151:20 | call to user_input | clearning.cpp:151:3:151:22 | ... = ... | -| clearning.cpp:152:8:152:8 | *s [val] | clearning.cpp:152:10:152:12 | val | -| complex.cpp:9:7:9:7 | *this [a_] | complex.cpp:9:20:9:21 | *this [a_] | -| complex.cpp:9:20:9:21 | *this [a_] | complex.cpp:9:20:9:21 | a_ | -| complex.cpp:9:20:9:21 | a_ | complex.cpp:9:7:9:7 | *a | -| complex.cpp:10:7:10:7 | *this [b_] | complex.cpp:10:20:10:21 | *this [b_] | -| complex.cpp:10:20:10:21 | *this [b_] | complex.cpp:10:20:10:21 | b_ | -| complex.cpp:10:20:10:21 | b_ | complex.cpp:10:7:10:7 | *b | -| complex.cpp:11:17:11:17 | a | complex.cpp:11:22:11:27 | ... = ... | -| complex.cpp:11:22:11:27 | ... = ... | complex.cpp:11:22:11:23 | *this [post update] [a_] | -| complex.cpp:12:17:12:17 | b | complex.cpp:12:22:12:27 | ... = ... | -| complex.cpp:12:22:12:27 | ... = ... | complex.cpp:12:22:12:23 | *this [post update] [b_] | -| complex.cpp:40:17:40:17 | *b [inner, f, a_] | complex.cpp:42:8:42:8 | *b [inner, f, a_] | -| complex.cpp:40:17:40:17 | *b [inner, f, b_] | complex.cpp:43:8:43:8 | *b [inner, f, b_] | -| complex.cpp:42:8:42:8 | *b [inner, f, a_] | complex.cpp:42:10:42:14 | *inner [f, a_] | -| complex.cpp:42:10:42:14 | *inner [f, a_] | complex.cpp:42:16:42:16 | *f [a_] | -| complex.cpp:42:16:42:16 | *f [a_] | complex.cpp:9:7:9:7 | *this [a_] | -| complex.cpp:42:16:42:16 | *f [a_] | complex.cpp:42:18:42:18 | call to a | -| complex.cpp:43:8:43:8 | *b [inner, f, b_] | complex.cpp:43:10:43:14 | *inner [f, b_] | -| complex.cpp:43:10:43:14 | *inner [f, b_] | complex.cpp:43:16:43:16 | *f [b_] | -| complex.cpp:43:16:43:16 | *f [b_] | complex.cpp:10:7:10:7 | *this [b_] | -| complex.cpp:43:16:43:16 | *f [b_] | complex.cpp:43:18:43:18 | call to b | -| complex.cpp:53:3:53:4 | *b1 [post update] [inner, f, a_] | complex.cpp:59:7:59:8 | *b1 [inner, f, a_] | -| complex.cpp:53:6:53:10 | *inner [post update] [f, a_] | complex.cpp:53:3:53:4 | *b1 [post update] [inner, f, a_] | -| complex.cpp:53:12:53:12 | setA output argument [a_] | complex.cpp:53:6:53:10 | *inner [post update] [f, a_] | -| complex.cpp:53:19:53:28 | call to user_input | complex.cpp:11:17:11:17 | a | -| complex.cpp:53:19:53:28 | call to user_input | complex.cpp:53:12:53:12 | setA output argument [a_] | -| complex.cpp:54:3:54:4 | *b2 [post update] [inner, f, b_] | complex.cpp:62:7:62:8 | *b2 [inner, f, b_] | -| complex.cpp:54:6:54:10 | *inner [post update] [f, b_] | complex.cpp:54:3:54:4 | *b2 [post update] [inner, f, b_] | -| complex.cpp:54:12:54:12 | setB output argument [b_] | complex.cpp:54:6:54:10 | *inner [post update] [f, b_] | -| complex.cpp:54:19:54:28 | call to user_input | complex.cpp:12:17:12:17 | b | -| complex.cpp:54:19:54:28 | call to user_input | complex.cpp:54:12:54:12 | setB output argument [b_] | -| complex.cpp:55:3:55:4 | *b3 [post update] [inner, f, a_] | complex.cpp:65:7:65:8 | *b3 [inner, f, a_] | -| complex.cpp:55:6:55:10 | *inner [post update] [f, a_] | complex.cpp:55:3:55:4 | *b3 [post update] [inner, f, a_] | -| complex.cpp:55:12:55:12 | setA output argument [a_] | complex.cpp:55:6:55:10 | *inner [post update] [f, a_] | -| complex.cpp:55:19:55:28 | call to user_input | complex.cpp:11:17:11:17 | a | -| complex.cpp:55:19:55:28 | call to user_input | complex.cpp:55:12:55:12 | setA output argument [a_] | -| complex.cpp:56:3:56:4 | *b3 [post update] [inner, f, b_] | complex.cpp:65:7:65:8 | *b3 [inner, f, b_] | -| complex.cpp:56:6:56:10 | *inner [post update] [f, b_] | complex.cpp:56:3:56:4 | *b3 [post update] [inner, f, b_] | -| complex.cpp:56:12:56:12 | setB output argument [b_] | complex.cpp:56:6:56:10 | *inner [post update] [f, b_] | -| complex.cpp:56:19:56:28 | call to user_input | complex.cpp:12:17:12:17 | b | -| complex.cpp:56:19:56:28 | call to user_input | complex.cpp:56:12:56:12 | setB output argument [b_] | -| complex.cpp:59:7:59:8 | *b1 [inner, f, a_] | complex.cpp:40:17:40:17 | *b [inner, f, a_] | -| complex.cpp:62:7:62:8 | *b2 [inner, f, b_] | complex.cpp:40:17:40:17 | *b [inner, f, b_] | -| complex.cpp:65:7:65:8 | *b3 [inner, f, a_] | complex.cpp:40:17:40:17 | *b [inner, f, a_] | -| complex.cpp:65:7:65:8 | *b3 [inner, f, b_] | complex.cpp:40:17:40:17 | *b [inner, f, b_] | -| conflated.cpp:10:3:10:22 | ... = ... | conflated.cpp:10:4:10:5 | *ra [post update] [*p] | -| conflated.cpp:10:4:10:5 | *ra [post update] [*p] | conflated.cpp:11:9:11:10 | *ra [*p] | -| conflated.cpp:10:11:10:20 | call to user_input | conflated.cpp:10:3:10:22 | ... = ... | -| conflated.cpp:11:9:11:10 | *ra [*p] | conflated.cpp:11:8:11:12 | * ... | -| conflated.cpp:19:19:19:21 | argument_source output argument | conflated.cpp:20:8:20:10 | *raw | -| conflated.cpp:29:3:29:4 | *pa [post update] [x] | conflated.cpp:30:8:30:9 | *pa [x] | -| conflated.cpp:29:3:29:22 | ... = ... | conflated.cpp:29:3:29:4 | *pa [post update] [x] | -| conflated.cpp:29:11:29:20 | call to user_input | conflated.cpp:29:3:29:22 | ... = ... | -| conflated.cpp:30:8:30:9 | *pa [x] | conflated.cpp:30:12:30:12 | x | -| conflated.cpp:36:3:36:4 | *pa [post update] [x] | conflated.cpp:37:8:37:9 | *pa [x] | -| conflated.cpp:36:3:36:22 | ... = ... | conflated.cpp:36:3:36:4 | *pa [post update] [x] | -| conflated.cpp:36:11:36:20 | call to user_input | conflated.cpp:36:3:36:22 | ... = ... | -| conflated.cpp:37:8:37:9 | *pa [x] | conflated.cpp:37:12:37:12 | x | -| conflated.cpp:54:3:54:4 | *ll [post update] [*next, y] | conflated.cpp:55:8:55:9 | *ll [*next, y] | -| conflated.cpp:54:3:54:28 | ... = ... | conflated.cpp:54:7:54:10 | *next [post update] [y] | -| conflated.cpp:54:7:54:10 | *next [post update] [y] | conflated.cpp:54:3:54:4 | *ll [post update] [*next, y] | -| conflated.cpp:54:17:54:26 | call to user_input | conflated.cpp:54:3:54:28 | ... = ... | -| conflated.cpp:55:8:55:9 | *ll [*next, y] | conflated.cpp:55:12:55:15 | *next [y] | -| conflated.cpp:55:12:55:15 | *next [y] | conflated.cpp:55:18:55:18 | y | -| conflated.cpp:60:3:60:4 | *ll [post update] [*next, y] | conflated.cpp:61:8:61:9 | *ll [*next, y] | -| conflated.cpp:60:3:60:28 | ... = ... | conflated.cpp:60:7:60:10 | *next [post update] [y] | -| conflated.cpp:60:7:60:10 | *next [post update] [y] | conflated.cpp:60:3:60:4 | *ll [post update] [*next, y] | -| conflated.cpp:60:17:60:26 | call to user_input | conflated.cpp:60:3:60:28 | ... = ... | -| conflated.cpp:61:8:61:9 | *ll [*next, y] | conflated.cpp:61:12:61:15 | *next [y] | -| conflated.cpp:61:12:61:15 | *next [y] | conflated.cpp:61:18:61:18 | y | -| constructors.cpp:18:9:18:9 | *this [a_] | constructors.cpp:18:22:18:23 | *this [a_] | -| constructors.cpp:18:22:18:23 | *this [a_] | constructors.cpp:18:22:18:23 | a_ | -| constructors.cpp:18:22:18:23 | a_ | constructors.cpp:18:9:18:9 | *a | -| constructors.cpp:19:9:19:9 | *this [b_] | constructors.cpp:19:22:19:23 | *this [b_] | -| constructors.cpp:19:22:19:23 | *this [b_] | constructors.cpp:19:22:19:23 | b_ | -| constructors.cpp:19:22:19:23 | b_ | constructors.cpp:19:9:19:9 | *b | -| constructors.cpp:23:13:23:13 | a | constructors.cpp:23:28:23:28 | a | -| constructors.cpp:23:20:23:20 | b | constructors.cpp:23:35:23:35 | b | -| constructors.cpp:23:28:23:28 | a | constructors.cpp:23:5:23:7 | *this [post update] [a_] | -| constructors.cpp:23:35:23:35 | b | constructors.cpp:23:5:23:7 | *this [post update] [b_] | -| constructors.cpp:26:15:26:15 | *f [a_] | constructors.cpp:28:10:28:10 | *f [a_] | -| constructors.cpp:26:15:26:15 | *f [b_] | constructors.cpp:29:10:29:10 | *f [b_] | -| constructors.cpp:28:10:28:10 | *f [a_] | constructors.cpp:18:9:18:9 | *this [a_] | -| constructors.cpp:28:10:28:10 | *f [a_] | constructors.cpp:28:12:28:12 | call to a | -| constructors.cpp:29:10:29:10 | *f [b_] | constructors.cpp:19:9:19:9 | *this [b_] | -| constructors.cpp:29:10:29:10 | *f [b_] | constructors.cpp:29:12:29:12 | call to b | -| constructors.cpp:34:9:34:9 | call to Foo [a_] | constructors.cpp:40:9:40:9 | *f [a_] | -| constructors.cpp:34:11:34:20 | call to user_input | constructors.cpp:23:13:23:13 | a | -| constructors.cpp:34:11:34:20 | call to user_input | constructors.cpp:34:9:34:9 | call to Foo [a_] | -| constructors.cpp:35:9:35:9 | call to Foo [b_] | constructors.cpp:43:9:43:9 | *g [b_] | -| constructors.cpp:35:14:35:23 | call to user_input | constructors.cpp:23:20:23:20 | b | -| constructors.cpp:35:14:35:23 | call to user_input | constructors.cpp:35:9:35:9 | call to Foo [b_] | -| constructors.cpp:36:9:36:9 | call to Foo [a_] | constructors.cpp:46:9:46:9 | *h [a_] | -| constructors.cpp:36:9:36:9 | call to Foo [b_] | constructors.cpp:46:9:46:9 | *h [b_] | -| constructors.cpp:36:11:36:20 | call to user_input | constructors.cpp:23:13:23:13 | a | -| constructors.cpp:36:11:36:20 | call to user_input | constructors.cpp:36:9:36:9 | call to Foo [a_] | -| constructors.cpp:36:25:36:34 | call to user_input | constructors.cpp:23:20:23:20 | b | -| constructors.cpp:36:25:36:34 | call to user_input | constructors.cpp:36:9:36:9 | call to Foo [b_] | -| constructors.cpp:40:9:40:9 | *f [a_] | constructors.cpp:26:15:26:15 | *f [a_] | -| constructors.cpp:43:9:43:9 | *g [b_] | constructors.cpp:26:15:26:15 | *f [b_] | -| constructors.cpp:46:9:46:9 | *h [a_] | constructors.cpp:26:15:26:15 | *f [a_] | -| constructors.cpp:46:9:46:9 | *h [b_] | constructors.cpp:26:15:26:15 | *f [b_] | -| qualifiers.cpp:9:21:9:25 | value | qualifiers.cpp:9:30:9:44 | ... = ... | -| qualifiers.cpp:9:30:9:44 | ... = ... | qualifiers.cpp:9:30:9:33 | *this [post update] [a] | -| qualifiers.cpp:12:40:12:44 | value | qualifiers.cpp:12:49:12:64 | ... = ... | -| qualifiers.cpp:12:49:12:64 | ... = ... | qualifiers.cpp:12:49:12:53 | *inner [post update] [a] | -| qualifiers.cpp:13:42:13:46 | value | qualifiers.cpp:13:51:13:65 | ... = ... | -| qualifiers.cpp:13:51:13:65 | ... = ... | qualifiers.cpp:13:51:13:55 | *inner [post update] [a] | -| qualifiers.cpp:22:5:22:9 | getInner output argument [*inner, a] | qualifiers.cpp:23:10:23:14 | *outer [*inner, a] | -| qualifiers.cpp:22:5:22:38 | ... = ... | qualifiers.cpp:22:11:22:18 | *call to getInner [post update] [a] | -| qualifiers.cpp:22:11:22:18 | *call to getInner [post update] [a] | qualifiers.cpp:22:5:22:9 | getInner output argument [*inner, a] | -| qualifiers.cpp:22:27:22:36 | call to user_input | qualifiers.cpp:22:5:22:38 | ... = ... | -| qualifiers.cpp:23:10:23:14 | *outer [*inner, a] | qualifiers.cpp:23:16:23:20 | *inner [a] | -| qualifiers.cpp:23:16:23:20 | *inner [a] | qualifiers.cpp:23:23:23:23 | a | -| qualifiers.cpp:27:5:27:9 | getInner output argument [*inner, a] | qualifiers.cpp:28:10:28:14 | *outer [*inner, a] | -| qualifiers.cpp:27:11:27:18 | setA output argument [a] | qualifiers.cpp:27:5:27:9 | getInner output argument [*inner, a] | -| qualifiers.cpp:27:28:27:37 | call to user_input | qualifiers.cpp:9:21:9:25 | value | -| qualifiers.cpp:27:28:27:37 | call to user_input | qualifiers.cpp:27:11:27:18 | setA output argument [a] | -| qualifiers.cpp:28:10:28:14 | *outer [*inner, a] | qualifiers.cpp:28:16:28:20 | *inner [a] | -| qualifiers.cpp:28:16:28:20 | *inner [a] | qualifiers.cpp:28:23:28:23 | a | -| qualifiers.cpp:32:17:32:21 | getInner output argument [*inner, a] | qualifiers.cpp:33:10:33:14 | *outer [*inner, a] | -| qualifiers.cpp:32:23:32:30 | pointerSetA output argument [a] | qualifiers.cpp:32:17:32:21 | getInner output argument [*inner, a] | -| qualifiers.cpp:32:35:32:44 | call to user_input | qualifiers.cpp:12:40:12:44 | value | -| qualifiers.cpp:32:35:32:44 | call to user_input | qualifiers.cpp:32:23:32:30 | pointerSetA output argument [a] | -| qualifiers.cpp:33:10:33:14 | *outer [*inner, a] | qualifiers.cpp:33:16:33:20 | *inner [a] | -| qualifiers.cpp:33:16:33:20 | *inner [a] | qualifiers.cpp:33:23:33:23 | a | -| qualifiers.cpp:37:19:37:35 | referenceSetA output argument [a] | qualifiers.cpp:37:20:37:24 | getInner output argument [*inner, a] | -| qualifiers.cpp:37:20:37:24 | getInner output argument [*inner, a] | qualifiers.cpp:38:10:38:14 | *outer [*inner, a] | -| qualifiers.cpp:37:38:37:47 | call to user_input | qualifiers.cpp:13:42:13:46 | value | -| qualifiers.cpp:37:38:37:47 | call to user_input | qualifiers.cpp:37:19:37:35 | referenceSetA output argument [a] | -| qualifiers.cpp:38:10:38:14 | *outer [*inner, a] | qualifiers.cpp:38:16:38:20 | *inner [a] | -| qualifiers.cpp:38:16:38:20 | *inner [a] | qualifiers.cpp:38:23:38:23 | a | -| qualifiers.cpp:42:5:42:40 | ... = ... | qualifiers.cpp:42:6:42:22 | ** ... [post update] [a] | -| qualifiers.cpp:42:6:42:22 | ** ... [post update] [a] | qualifiers.cpp:42:7:42:11 | getInner output argument [*inner, a] | -| qualifiers.cpp:42:7:42:11 | getInner output argument [*inner, a] | qualifiers.cpp:43:10:43:14 | *outer [*inner, a] | -| qualifiers.cpp:42:29:42:38 | call to user_input | qualifiers.cpp:42:5:42:40 | ... = ... | -| qualifiers.cpp:43:10:43:14 | *outer [*inner, a] | qualifiers.cpp:43:16:43:20 | *inner [a] | -| qualifiers.cpp:43:16:43:20 | *inner [a] | qualifiers.cpp:43:23:43:23 | a | -| qualifiers.cpp:47:5:47:42 | ... = ... | qualifiers.cpp:47:15:47:22 | *call to getInner [post update] [a] | -| qualifiers.cpp:47:6:47:11 | getInner output argument [*inner, a] | qualifiers.cpp:48:10:48:14 | *outer [*inner, a] | -| qualifiers.cpp:47:15:47:22 | *call to getInner [post update] [a] | qualifiers.cpp:47:6:47:11 | getInner output argument [*inner, a] | -| qualifiers.cpp:47:31:47:40 | call to user_input | qualifiers.cpp:47:5:47:42 | ... = ... | -| qualifiers.cpp:48:10:48:14 | *outer [*inner, a] | qualifiers.cpp:48:16:48:20 | *inner [a] | -| qualifiers.cpp:48:16:48:20 | *inner [a] | qualifiers.cpp:48:23:48:23 | a | -| realistic.cpp:53:9:53:11 | *foo [post update] [bar, *baz, userInput, bufferLen] | realistic.cpp:61:21:61:23 | *foo [bar, *baz, userInput, bufferLen] | -| realistic.cpp:53:9:53:18 | *access to array [post update] [*baz, userInput, bufferLen] | realistic.cpp:53:9:53:11 | *foo [post update] [bar, *baz, userInput, bufferLen] | -| realistic.cpp:53:9:53:66 | ... = ... | realistic.cpp:53:25:53:33 | *userInput [post update] [bufferLen] | -| realistic.cpp:53:20:53:22 | *baz [post update] [userInput, bufferLen] | realistic.cpp:53:9:53:18 | *access to array [post update] [*baz, userInput, bufferLen] | -| realistic.cpp:53:25:53:33 | *userInput [post update] [bufferLen] | realistic.cpp:53:20:53:22 | *baz [post update] [userInput, bufferLen] | -| realistic.cpp:53:47:53:66 | call to user_input | realistic.cpp:53:9:53:66 | ... = ... | -| realistic.cpp:61:21:61:23 | *foo [bar, *baz, userInput, bufferLen] | realistic.cpp:61:21:61:30 | *access to array [*baz, userInput, bufferLen] | -| realistic.cpp:61:21:61:30 | *access to array [*baz, userInput, bufferLen] | realistic.cpp:61:32:61:34 | *baz [userInput, bufferLen] | -| realistic.cpp:61:32:61:34 | *baz [userInput, bufferLen] | realistic.cpp:61:37:61:45 | *userInput [bufferLen] | -| realistic.cpp:61:37:61:45 | *userInput [bufferLen] | realistic.cpp:61:14:61:55 | bufferLen | -| simple.cpp:18:9:18:9 | *this [a_] | simple.cpp:18:22:18:23 | *this [a_] | -| simple.cpp:18:22:18:23 | *this [a_] | simple.cpp:18:22:18:23 | a_ | -| simple.cpp:18:22:18:23 | a_ | simple.cpp:18:9:18:9 | *a | -| simple.cpp:19:9:19:9 | *this [b_] | simple.cpp:19:22:19:23 | *this [b_] | -| simple.cpp:19:22:19:23 | *this [b_] | simple.cpp:19:22:19:23 | b_ | -| simple.cpp:19:22:19:23 | b_ | simple.cpp:19:9:19:9 | *b | -| simple.cpp:20:19:20:19 | a | simple.cpp:20:24:20:29 | ... = ... | -| simple.cpp:20:24:20:29 | ... = ... | simple.cpp:20:24:20:25 | *this [post update] [a_] | -| simple.cpp:21:19:21:19 | b | simple.cpp:21:24:21:29 | ... = ... | -| simple.cpp:21:24:21:29 | ... = ... | simple.cpp:21:24:21:25 | *this [post update] [b_] | -| simple.cpp:26:15:26:15 | *f [a_] | simple.cpp:28:10:28:10 | *f [a_] | -| simple.cpp:26:15:26:15 | *f [b_] | simple.cpp:29:10:29:10 | *f [b_] | -| simple.cpp:28:10:28:10 | *f [a_] | simple.cpp:18:9:18:9 | *this [a_] | -| simple.cpp:28:10:28:10 | *f [a_] | simple.cpp:28:12:28:12 | call to a | -| simple.cpp:29:10:29:10 | *f [b_] | simple.cpp:19:9:19:9 | *this [b_] | -| simple.cpp:29:10:29:10 | *f [b_] | simple.cpp:29:12:29:12 | call to b | -| simple.cpp:39:5:39:5 | setA output argument [a_] | simple.cpp:45:9:45:9 | *f [a_] | -| simple.cpp:39:12:39:21 | call to user_input | simple.cpp:20:19:20:19 | a | -| simple.cpp:39:12:39:21 | call to user_input | simple.cpp:39:5:39:5 | setA output argument [a_] | -| simple.cpp:40:5:40:5 | setB output argument [b_] | simple.cpp:48:9:48:9 | *g [b_] | -| simple.cpp:40:12:40:21 | call to user_input | simple.cpp:21:19:21:19 | b | -| simple.cpp:40:12:40:21 | call to user_input | simple.cpp:40:5:40:5 | setB output argument [b_] | -| simple.cpp:41:5:41:5 | setA output argument [a_] | simple.cpp:51:9:51:9 | *h [a_] | -| simple.cpp:41:12:41:21 | call to user_input | simple.cpp:20:19:20:19 | a | -| simple.cpp:41:12:41:21 | call to user_input | simple.cpp:41:5:41:5 | setA output argument [a_] | -| simple.cpp:42:5:42:5 | setB output argument [b_] | simple.cpp:51:9:51:9 | *h [b_] | -| simple.cpp:42:12:42:21 | call to user_input | simple.cpp:21:19:21:19 | b | -| simple.cpp:42:12:42:21 | call to user_input | simple.cpp:42:5:42:5 | setB output argument [b_] | -| simple.cpp:45:9:45:9 | *f [a_] | simple.cpp:26:15:26:15 | *f [a_] | -| simple.cpp:48:9:48:9 | *g [b_] | simple.cpp:26:15:26:15 | *f [b_] | -| simple.cpp:51:9:51:9 | *h [a_] | simple.cpp:26:15:26:15 | *f [a_] | -| simple.cpp:51:9:51:9 | *h [b_] | simple.cpp:26:15:26:15 | *f [b_] | -| simple.cpp:65:5:65:5 | *a [post update] [i] | simple.cpp:67:10:67:11 | *a2 [i] | -| simple.cpp:65:5:65:22 | ... = ... | simple.cpp:65:5:65:5 | *a [post update] [i] | -| simple.cpp:65:11:65:20 | call to user_input | simple.cpp:65:5:65:22 | ... = ... | -| simple.cpp:67:10:67:11 | *a2 [i] | simple.cpp:67:13:67:13 | i | -| simple.cpp:78:9:78:15 | *this [f2, f1] | simple.cpp:79:16:79:17 | *this [f2, f1] | -| simple.cpp:79:16:79:17 | *f2 [f1] | simple.cpp:79:19:79:20 | f1 | -| simple.cpp:79:16:79:17 | *this [f2, f1] | simple.cpp:79:16:79:17 | *f2 [f1] | -| simple.cpp:79:19:79:20 | f1 | simple.cpp:78:9:78:15 | *getf2f1 | -| simple.cpp:83:9:83:10 | *f2 [post update] [f1] | simple.cpp:83:9:83:10 | *this [post update] [f2, f1] | -| simple.cpp:83:9:83:10 | *this [post update] [f2, f1] | simple.cpp:84:14:84:20 | *this [f2, f1] | -| simple.cpp:83:9:83:28 | ... = ... | simple.cpp:83:9:83:10 | *f2 [post update] [f1] | -| simple.cpp:83:17:83:26 | call to user_input | simple.cpp:83:9:83:28 | ... = ... | -| simple.cpp:84:14:84:20 | *this [f2, f1] | simple.cpp:78:9:78:15 | *this [f2, f1] | -| simple.cpp:84:14:84:20 | *this [f2, f1] | simple.cpp:84:14:84:20 | call to getf2f1 | -| simple.cpp:92:5:92:5 | *a [post update] [i] | simple.cpp:94:10:94:11 | *a2 [i] | -| simple.cpp:92:5:92:22 | ... = ... | simple.cpp:92:5:92:5 | *a [post update] [i] | -| simple.cpp:92:11:92:20 | call to user_input | simple.cpp:92:5:92:22 | ... = ... | -| simple.cpp:94:10:94:11 | *a2 [i] | simple.cpp:94:13:94:13 | i | -| simple.cpp:103:24:103:24 | x | simple.cpp:104:14:104:14 | x | -| simple.cpp:108:17:108:26 | call to user_input | simple.cpp:109:43:109:43 | x | -| simple.cpp:109:43:109:43 | x | simple.cpp:103:24:103:24 | x | -| struct_init.c:14:24:14:25 | *ab [a] | struct_init.c:15:8:15:9 | *ab [a] | -| struct_init.c:15:8:15:9 | *ab [a] | struct_init.c:15:12:15:12 | a | -| struct_init.c:20:13:20:14 | *definition of ab [a] | struct_init.c:22:8:22:9 | *ab [a] | -| struct_init.c:20:13:20:14 | *definition of ab [a] | struct_init.c:24:10:24:12 | *& ... [a] | -| struct_init.c:20:13:20:14 | *definition of ab [a] | struct_init.c:28:5:28:7 | *& ... [a] | -| struct_init.c:20:13:20:14 | *definition of ab [post update] [a] | struct_init.c:20:13:20:14 | *definition of ab [a] | -| struct_init.c:20:20:20:29 | call to user_input | struct_init.c:20:13:20:14 | *definition of ab [post update] [a] | -| struct_init.c:20:20:20:29 | call to user_input | struct_init.c:20:20:20:29 | call to user_input | -| struct_init.c:22:8:22:9 | *ab [a] | struct_init.c:22:11:22:11 | a | -| struct_init.c:24:10:24:12 | *& ... [a] | struct_init.c:14:24:14:25 | *ab [a] | -| struct_init.c:26:16:26:20 | *definition of outer [nestedAB, a] | struct_init.c:31:8:31:12 | *outer [nestedAB, a] | -| struct_init.c:26:16:26:20 | *definition of outer [nestedAB, a] | struct_init.c:36:11:36:15 | *outer [nestedAB, a] | -| struct_init.c:26:16:26:20 | *definition of outer [post update] [*pointerAB, a] | struct_init.c:33:8:33:12 | *outer [*pointerAB, a] | -| struct_init.c:26:16:26:20 | *definition of outer [post update] [nestedAB, a] | struct_init.c:26:16:26:20 | *definition of outer [nestedAB, a] | -| struct_init.c:26:23:29:3 | *{...} [post update] [a] | struct_init.c:26:16:26:20 | *definition of outer [post update] [nestedAB, a] | -| struct_init.c:27:7:27:16 | call to user_input | struct_init.c:26:23:29:3 | *{...} [post update] [a] | -| struct_init.c:27:7:27:16 | call to user_input | struct_init.c:27:7:27:16 | call to user_input | -| struct_init.c:28:5:28:7 | *& ... [a] | struct_init.c:26:16:26:20 | *definition of outer [post update] [*pointerAB, a] | -| struct_init.c:31:8:31:12 | *outer [nestedAB, a] | struct_init.c:31:14:31:21 | *nestedAB [a] | -| struct_init.c:31:14:31:21 | *nestedAB [a] | struct_init.c:31:23:31:23 | a | -| struct_init.c:33:8:33:12 | *outer [*pointerAB, a] | struct_init.c:33:14:33:22 | *pointerAB [a] | -| struct_init.c:33:14:33:22 | *pointerAB [a] | struct_init.c:33:25:33:25 | a | -| struct_init.c:36:10:36:24 | *& ... [a] | struct_init.c:14:24:14:25 | *ab [a] | -| struct_init.c:36:11:36:15 | *outer [nestedAB, a] | struct_init.c:36:10:36:24 | *& ... [a] | -| struct_init.c:40:13:40:14 | *definition of ab [a] | struct_init.c:43:5:43:7 | *& ... [a] | -| struct_init.c:40:13:40:14 | *definition of ab [post update] [a] | struct_init.c:40:13:40:14 | *definition of ab [a] | -| struct_init.c:40:20:40:29 | call to user_input | struct_init.c:40:13:40:14 | *definition of ab [post update] [a] | -| struct_init.c:40:20:40:29 | call to user_input | struct_init.c:40:20:40:29 | call to user_input | -| struct_init.c:41:16:41:20 | *definition of outer [post update] [*pointerAB, a] | struct_init.c:46:10:46:14 | *outer [*pointerAB, a] | -| struct_init.c:43:5:43:7 | *& ... [a] | struct_init.c:41:16:41:20 | *definition of outer [post update] [*pointerAB, a] | -| struct_init.c:46:10:46:14 | *outer [*pointerAB, a] | struct_init.c:46:16:46:24 | *pointerAB [a] | -| struct_init.c:46:16:46:24 | *pointerAB [a] | struct_init.c:14:24:14:25 | *ab [a] | +| A.cpp:23:10:23:10 | c | A.cpp:25:7:25:17 | ... = ... | provenance | | +| A.cpp:25:7:25:17 | ... = ... | A.cpp:25:7:25:10 | *this [post update] [c] | provenance | | +| A.cpp:27:17:27:17 | c | A.cpp:27:22:27:32 | ... = ... | provenance | | +| A.cpp:27:22:27:32 | ... = ... | A.cpp:27:22:27:25 | *this [post update] [c] | provenance | | +| A.cpp:28:8:28:10 | *this [c] | A.cpp:28:23:28:26 | *this [c] | provenance | | +| A.cpp:28:23:28:26 | *this [c] | A.cpp:28:29:28:29 | c | provenance | | +| A.cpp:28:29:28:29 | c | A.cpp:28:8:28:10 | *get | provenance | | +| A.cpp:29:23:29:23 | c | A.cpp:31:20:31:20 | c | provenance | | +| A.cpp:31:14:31:21 | call to B [c] | A.cpp:29:15:29:18 | **make [c] | provenance | | +| A.cpp:31:20:31:20 | c | A.cpp:23:10:23:10 | c | provenance | | +| A.cpp:31:20:31:20 | c | A.cpp:31:14:31:21 | call to B [c] | provenance | | +| A.cpp:41:5:41:6 | insert output argument | A.cpp:43:10:43:12 | *& ... | provenance | | +| A.cpp:41:15:41:21 | new | A.cpp:41:5:41:6 | insert output argument | provenance | | +| A.cpp:47:12:47:18 | new | A.cpp:48:20:48:20 | c | provenance | | +| A.cpp:48:12:48:18 | *call to make [c] | A.cpp:49:10:49:10 | *b [c] | provenance | | +| A.cpp:48:20:48:20 | c | A.cpp:29:23:29:23 | c | provenance | | +| A.cpp:48:20:48:20 | c | A.cpp:48:12:48:18 | *call to make [c] | provenance | | +| A.cpp:49:10:49:10 | *b [c] | A.cpp:49:10:49:13 | c | provenance | | +| A.cpp:55:5:55:5 | set output argument [c] | A.cpp:56:10:56:10 | *b [c] | provenance | | +| A.cpp:55:12:55:19 | new | A.cpp:27:17:27:17 | c | provenance | | +| A.cpp:55:12:55:19 | new | A.cpp:55:5:55:5 | set output argument [c] | provenance | | +| A.cpp:56:10:56:10 | *b [c] | A.cpp:28:8:28:10 | *this [c] | provenance | | +| A.cpp:56:10:56:10 | *b [c] | A.cpp:56:10:56:17 | call to get | provenance | | +| A.cpp:57:11:57:24 | *new [c] | A.cpp:28:8:28:10 | *this [c] | provenance | | +| A.cpp:57:11:57:24 | *new [c] | A.cpp:57:10:57:32 | call to get | provenance | | +| A.cpp:57:11:57:24 | call to B [c] | A.cpp:57:11:57:24 | *new [c] | provenance | | +| A.cpp:57:17:57:23 | new | A.cpp:23:10:23:10 | c | provenance | | +| A.cpp:57:17:57:23 | new | A.cpp:57:11:57:24 | call to B [c] | provenance | | +| A.cpp:57:17:57:23 | new | A.cpp:57:17:57:23 | new | provenance | | +| A.cpp:64:10:64:15 | *call to setOnB [c] | A.cpp:66:10:66:11 | *b2 [c] | provenance | | +| A.cpp:64:21:64:28 | new | A.cpp:64:10:64:15 | *call to setOnB [c] | provenance | | +| A.cpp:64:21:64:28 | new | A.cpp:85:26:85:26 | c | provenance | | +| A.cpp:66:10:66:11 | *b2 [c] | A.cpp:66:10:66:14 | c | provenance | | +| A.cpp:73:10:73:19 | *call to setOnBWrap [c] | A.cpp:75:10:75:11 | *b2 [c] | provenance | | +| A.cpp:73:25:73:32 | new | A.cpp:73:10:73:19 | *call to setOnBWrap [c] | provenance | | +| A.cpp:73:25:73:32 | new | A.cpp:78:27:78:27 | c | provenance | | +| A.cpp:75:10:75:11 | *b2 [c] | A.cpp:75:10:75:14 | c | provenance | | +| A.cpp:78:27:78:27 | c | A.cpp:81:21:81:21 | c | provenance | | +| A.cpp:81:10:81:15 | *call to setOnB [c] | A.cpp:78:6:78:15 | **setOnBWrap [c] | provenance | | +| A.cpp:81:21:81:21 | c | A.cpp:81:10:81:15 | *call to setOnB [c] | provenance | | +| A.cpp:81:21:81:21 | c | A.cpp:85:26:85:26 | c | provenance | | +| A.cpp:85:26:85:26 | c | A.cpp:90:15:90:15 | c | provenance | | +| A.cpp:90:7:90:8 | set output argument [c] | A.cpp:85:9:85:14 | **setOnB [c] | provenance | | +| A.cpp:90:15:90:15 | c | A.cpp:27:17:27:17 | c | provenance | | +| A.cpp:90:15:90:15 | c | A.cpp:90:7:90:8 | set output argument [c] | provenance | | +| A.cpp:98:12:98:18 | new | A.cpp:100:5:100:13 | ... = ... | provenance | | +| A.cpp:100:5:100:6 | *c1 [post update] [a] | A.cpp:101:8:101:9 | *c1 [a] | provenance | | +| A.cpp:100:5:100:13 | ... = ... | A.cpp:100:5:100:6 | *c1 [post update] [a] | provenance | | +| A.cpp:101:8:101:9 | *c1 [a] | A.cpp:103:14:103:14 | *c [a] | provenance | | +| A.cpp:103:14:103:14 | *c [a] | A.cpp:107:12:107:13 | *c1 [a] | provenance | | +| A.cpp:103:14:103:14 | *c [a] | A.cpp:120:12:120:13 | *c1 [a] | provenance | | +| A.cpp:107:12:107:13 | *c1 [a] | A.cpp:107:12:107:16 | a | provenance | | +| A.cpp:120:12:120:13 | *c1 [a] | A.cpp:120:12:120:16 | a | provenance | | +| A.cpp:126:5:126:5 | set output argument [c] | A.cpp:131:8:131:8 | f7 output argument [c] | provenance | | +| A.cpp:126:12:126:18 | new | A.cpp:27:17:27:17 | c | provenance | | +| A.cpp:126:12:126:18 | new | A.cpp:126:5:126:5 | set output argument [c] | provenance | | +| A.cpp:126:12:126:18 | new | A.cpp:126:12:126:18 | new | provenance | | +| A.cpp:131:8:131:8 | f7 output argument [c] | A.cpp:132:10:132:10 | *b [c] | provenance | | +| A.cpp:132:10:132:10 | *b [c] | A.cpp:132:10:132:13 | c | provenance | | +| A.cpp:140:13:140:13 | b | A.cpp:143:7:143:31 | ... = ... | provenance | | +| A.cpp:142:7:142:7 | *b [post update] [c] | A.cpp:143:7:143:31 | *... = ... [c] | provenance | | +| A.cpp:142:7:142:7 | *b [post update] [c] | A.cpp:151:18:151:18 | D output argument [c] | provenance | | +| A.cpp:142:7:142:20 | ... = ... | A.cpp:142:7:142:7 | *b [post update] [c] | provenance | | +| A.cpp:142:14:142:20 | new | A.cpp:142:7:142:20 | ... = ... | provenance | | +| A.cpp:143:7:143:10 | *this [post update] [*b, c] | A.cpp:151:12:151:24 | call to D [*b, c] | provenance | | +| A.cpp:143:7:143:10 | *this [post update] [b] | A.cpp:151:12:151:24 | call to D [b] | provenance | | +| A.cpp:143:7:143:31 | *... = ... [c] | A.cpp:143:7:143:10 | *this [post update] [*b, c] | provenance | | +| A.cpp:143:7:143:31 | ... = ... | A.cpp:143:7:143:10 | *this [post update] [b] | provenance | | +| A.cpp:143:7:143:31 | ... = ... | A.cpp:143:7:143:10 | *this [post update] [b] | provenance | | +| A.cpp:143:25:143:31 | new | A.cpp:143:7:143:31 | ... = ... | provenance | | +| A.cpp:150:12:150:18 | new | A.cpp:151:18:151:18 | b | provenance | | +| A.cpp:151:12:151:24 | call to D [*b, c] | A.cpp:153:10:153:10 | *d [*b, c] | provenance | | +| A.cpp:151:12:151:24 | call to D [b] | A.cpp:152:10:152:10 | *d [b] | provenance | | +| A.cpp:151:18:151:18 | D output argument [c] | A.cpp:154:10:154:10 | *b [c] | provenance | | +| A.cpp:151:18:151:18 | b | A.cpp:140:13:140:13 | b | provenance | | +| A.cpp:151:18:151:18 | b | A.cpp:151:12:151:24 | call to D [b] | provenance | | +| A.cpp:152:10:152:10 | *d [b] | A.cpp:152:10:152:13 | b | provenance | | +| A.cpp:153:10:153:10 | *d [*b, c] | A.cpp:153:13:153:13 | *b [c] | provenance | | +| A.cpp:153:13:153:13 | *b [c] | A.cpp:153:10:153:16 | c | provenance | | +| A.cpp:154:10:154:10 | *b [c] | A.cpp:154:10:154:13 | c | provenance | | +| A.cpp:159:12:159:18 | new | A.cpp:160:29:160:29 | b | provenance | | +| A.cpp:160:18:160:60 | call to MyList [head] | A.cpp:161:38:161:39 | *l1 [head] | provenance | | +| A.cpp:160:29:160:29 | b | A.cpp:160:18:160:60 | call to MyList [head] | provenance | | +| A.cpp:160:29:160:29 | b | A.cpp:181:15:181:21 | newHead | provenance | | +| A.cpp:161:18:161:40 | call to MyList [*next, head] | A.cpp:162:38:162:39 | *l2 [*next, head] | provenance | | +| A.cpp:161:38:161:39 | *l1 [head] | A.cpp:161:18:161:40 | call to MyList [*next, head] | provenance | | +| A.cpp:161:38:161:39 | *l1 [head] | A.cpp:181:32:181:35 | *next [head] | provenance | | +| A.cpp:162:18:162:40 | call to MyList [*next, *next, head] | A.cpp:165:10:165:11 | *l3 [*next, *next, head] | provenance | | +| A.cpp:162:18:162:40 | call to MyList [*next, *next, head] | A.cpp:167:44:167:44 | *l [*next, *next, head] | provenance | | +| A.cpp:162:38:162:39 | *l2 [*next, head] | A.cpp:162:18:162:40 | call to MyList [*next, *next, head] | provenance | | +| A.cpp:162:38:162:39 | *l2 [*next, head] | A.cpp:181:32:181:35 | *next [*next, head] | provenance | | +| A.cpp:165:10:165:11 | *l3 [*next, *next, head] | A.cpp:165:14:165:17 | *next [*next, head] | provenance | | +| A.cpp:165:14:165:17 | *next [*next, head] | A.cpp:165:20:165:23 | *next [head] | provenance | | +| A.cpp:165:20:165:23 | *next [head] | A.cpp:165:10:165:29 | head | provenance | | +| A.cpp:167:44:167:44 | *l [*next, *next, head] | A.cpp:167:47:167:50 | *next [*next, head] | provenance | | +| A.cpp:167:44:167:44 | *l [*next, head] | A.cpp:167:47:167:50 | *next [head] | provenance | | +| A.cpp:167:47:167:50 | *next [*next, head] | A.cpp:167:44:167:44 | *l [*next, head] | provenance | | +| A.cpp:167:47:167:50 | *next [head] | A.cpp:169:12:169:12 | *l [head] | provenance | | +| A.cpp:169:12:169:12 | *l [head] | A.cpp:169:12:169:18 | head | provenance | | +| A.cpp:181:15:181:21 | newHead | A.cpp:183:7:183:20 | ... = ... | provenance | | +| A.cpp:181:32:181:35 | *next [*next, head] | A.cpp:184:7:184:23 | *... = ... [*next, head] | provenance | | +| A.cpp:181:32:181:35 | *next [head] | A.cpp:184:7:184:23 | *... = ... [head] | provenance | | +| A.cpp:183:7:183:20 | ... = ... | A.cpp:183:7:183:10 | *this [post update] [head] | provenance | | +| A.cpp:184:7:184:23 | *... = ... [*next, head] | A.cpp:184:7:184:10 | *this [post update] [*next, *next, head] | provenance | | +| A.cpp:184:7:184:23 | *... = ... [head] | A.cpp:184:7:184:10 | *this [post update] [*next, head] | provenance | | +| B.cpp:6:15:6:24 | new | B.cpp:7:25:7:25 | e | provenance | | +| B.cpp:7:16:7:35 | call to Box1 [elem1] | B.cpp:8:25:8:26 | *b1 [elem1] | provenance | | +| B.cpp:7:25:7:25 | e | B.cpp:7:16:7:35 | call to Box1 [elem1] | provenance | | +| B.cpp:7:25:7:25 | e | B.cpp:33:16:33:17 | e1 | provenance | | +| B.cpp:8:16:8:27 | call to Box2 [*box1, elem1] | B.cpp:9:10:9:11 | *b2 [*box1, elem1] | provenance | | +| B.cpp:8:25:8:26 | *b1 [elem1] | B.cpp:8:16:8:27 | call to Box2 [*box1, elem1] | provenance | | +| B.cpp:8:25:8:26 | *b1 [elem1] | B.cpp:44:16:44:17 | *b1 [elem1] | provenance | | +| B.cpp:9:10:9:11 | *b2 [*box1, elem1] | B.cpp:9:14:9:17 | *box1 [elem1] | provenance | | +| B.cpp:9:14:9:17 | *box1 [elem1] | B.cpp:9:10:9:24 | elem1 | provenance | | +| B.cpp:15:15:15:27 | new | B.cpp:16:37:16:37 | e | provenance | | +| B.cpp:16:16:16:38 | call to Box1 [elem2] | B.cpp:17:25:17:26 | *b1 [elem2] | provenance | | +| B.cpp:16:37:16:37 | e | B.cpp:16:16:16:38 | call to Box1 [elem2] | provenance | | +| B.cpp:16:37:16:37 | e | B.cpp:33:26:33:27 | e2 | provenance | | +| B.cpp:17:16:17:27 | call to Box2 [*box1, elem2] | B.cpp:19:10:19:11 | *b2 [*box1, elem2] | provenance | | +| B.cpp:17:25:17:26 | *b1 [elem2] | B.cpp:17:16:17:27 | call to Box2 [*box1, elem2] | provenance | | +| B.cpp:17:25:17:26 | *b1 [elem2] | B.cpp:44:16:44:17 | *b1 [elem2] | provenance | | +| B.cpp:19:10:19:11 | *b2 [*box1, elem2] | B.cpp:19:14:19:17 | *box1 [elem2] | provenance | | +| B.cpp:19:14:19:17 | *box1 [elem2] | B.cpp:19:10:19:24 | elem2 | provenance | | +| B.cpp:33:16:33:17 | e1 | B.cpp:35:7:35:22 | ... = ... | provenance | | +| B.cpp:33:26:33:27 | e2 | B.cpp:36:7:36:22 | ... = ... | provenance | | +| B.cpp:35:7:35:22 | ... = ... | B.cpp:35:7:35:10 | *this [post update] [elem1] | provenance | | +| B.cpp:36:7:36:22 | ... = ... | B.cpp:36:7:36:10 | *this [post update] [elem2] | provenance | | +| B.cpp:44:16:44:17 | *b1 [elem1] | B.cpp:46:7:46:21 | *... = ... [elem1] | provenance | | +| B.cpp:44:16:44:17 | *b1 [elem2] | B.cpp:46:7:46:21 | *... = ... [elem2] | provenance | | +| B.cpp:46:7:46:21 | *... = ... [elem1] | B.cpp:46:7:46:10 | *this [post update] [*box1, elem1] | provenance | | +| B.cpp:46:7:46:21 | *... = ... [elem2] | B.cpp:46:7:46:10 | *this [post update] [*box1, elem2] | provenance | | +| C.cpp:18:12:18:18 | call to C [s1] | C.cpp:19:5:19:5 | *c [s1] | provenance | | +| C.cpp:18:12:18:18 | call to C [s3] | C.cpp:19:5:19:5 | *c [s3] | provenance | | +| C.cpp:19:5:19:5 | *c [s1] | C.cpp:27:8:27:11 | *this [s1] | provenance | | +| C.cpp:19:5:19:5 | *c [s3] | C.cpp:27:8:27:11 | *this [s3] | provenance | | +| C.cpp:22:3:22:3 | *this [post update] [s1] | C.cpp:18:12:18:18 | call to C [s1] | provenance | | +| C.cpp:22:12:22:21 | new | C.cpp:22:3:22:3 | *this [post update] [s1] | provenance | | +| C.cpp:22:12:22:21 | new | C.cpp:22:12:22:21 | new | provenance | | +| C.cpp:24:5:24:8 | *this [post update] [s3] | C.cpp:18:12:18:18 | call to C [s3] | provenance | | +| C.cpp:24:5:24:25 | ... = ... | C.cpp:24:5:24:8 | *this [post update] [s3] | provenance | | +| C.cpp:24:16:24:25 | new | C.cpp:24:5:24:25 | ... = ... | provenance | | +| C.cpp:27:8:27:11 | *this [s1] | C.cpp:29:10:29:11 | *this [s1] | provenance | | +| C.cpp:27:8:27:11 | *this [s3] | C.cpp:31:10:31:11 | *this [s3] | provenance | | +| C.cpp:29:10:29:11 | *this [s1] | C.cpp:29:10:29:11 | s1 | provenance | | +| C.cpp:31:10:31:11 | *this [s3] | C.cpp:31:10:31:11 | s3 | provenance | | +| D.cpp:10:11:10:17 | *this [elem] | D.cpp:10:30:10:33 | *this [elem] | provenance | | +| D.cpp:10:30:10:33 | *this [elem] | D.cpp:10:30:10:33 | elem | provenance | | +| D.cpp:10:30:10:33 | elem | D.cpp:10:11:10:17 | *getElem | provenance | | +| D.cpp:11:24:11:24 | e | D.cpp:11:29:11:36 | ... = ... | provenance | | +| D.cpp:11:29:11:36 | ... = ... | D.cpp:11:29:11:32 | *this [post update] [elem] | provenance | | +| D.cpp:17:11:17:17 | *this [*box, elem] | D.cpp:17:30:17:32 | *this [*box, elem] | provenance | | +| D.cpp:17:30:17:32 | *box [elem] | D.cpp:17:11:17:17 | **getBox1 [elem] | provenance | | +| D.cpp:17:30:17:32 | *this [*box, elem] | D.cpp:17:30:17:32 | *box [elem] | provenance | | +| D.cpp:21:30:21:31 | *b2 [*box, elem] | D.cpp:22:10:22:11 | *b2 [*box, elem] | provenance | | +| D.cpp:22:10:22:11 | *b2 [*box, elem] | D.cpp:17:11:17:17 | *this [*box, elem] | provenance | | +| D.cpp:22:10:22:11 | *b2 [*box, elem] | D.cpp:22:14:22:20 | *call to getBox1 [elem] | provenance | | +| D.cpp:22:14:22:20 | *call to getBox1 [elem] | D.cpp:10:11:10:17 | *this [elem] | provenance | | +| D.cpp:22:14:22:20 | *call to getBox1 [elem] | D.cpp:22:10:22:33 | call to getElem | provenance | | +| D.cpp:28:15:28:24 | new | D.cpp:30:5:30:20 | ... = ... | provenance | | +| D.cpp:30:5:30:5 | *b [post update] [*box, elem] | D.cpp:31:14:31:14 | *b [*box, elem] | provenance | | +| D.cpp:30:5:30:20 | ... = ... | D.cpp:30:8:30:10 | *box [post update] [elem] | provenance | | +| D.cpp:30:8:30:10 | *box [post update] [elem] | D.cpp:30:5:30:5 | *b [post update] [*box, elem] | provenance | | +| D.cpp:31:14:31:14 | *b [*box, elem] | D.cpp:21:30:21:31 | *b2 [*box, elem] | provenance | | +| D.cpp:35:15:35:24 | new | D.cpp:37:21:37:21 | e | provenance | | +| D.cpp:37:5:37:5 | *b [post update] [*box, elem] | D.cpp:38:14:38:14 | *b [*box, elem] | provenance | | +| D.cpp:37:8:37:10 | setElem output argument [elem] | D.cpp:37:5:37:5 | *b [post update] [*box, elem] | provenance | | +| D.cpp:37:21:37:21 | e | D.cpp:11:24:11:24 | e | provenance | | +| D.cpp:37:21:37:21 | e | D.cpp:37:8:37:10 | setElem output argument [elem] | provenance | | +| D.cpp:38:14:38:14 | *b [*box, elem] | D.cpp:21:30:21:31 | *b2 [*box, elem] | provenance | | +| D.cpp:42:15:42:24 | new | D.cpp:44:5:44:26 | ... = ... | provenance | | +| D.cpp:44:5:44:5 | getBox1 output argument [*box, elem] | D.cpp:45:14:45:14 | *b [*box, elem] | provenance | | +| D.cpp:44:5:44:26 | ... = ... | D.cpp:44:8:44:14 | *call to getBox1 [post update] [elem] | provenance | | +| D.cpp:44:8:44:14 | *call to getBox1 [post update] [elem] | D.cpp:44:5:44:5 | getBox1 output argument [*box, elem] | provenance | | +| D.cpp:45:14:45:14 | *b [*box, elem] | D.cpp:21:30:21:31 | *b2 [*box, elem] | provenance | | +| D.cpp:49:15:49:24 | new | D.cpp:51:27:51:27 | e | provenance | | +| D.cpp:51:5:51:5 | getBox1 output argument [*box, elem] | D.cpp:52:14:52:14 | *b [*box, elem] | provenance | | +| D.cpp:51:8:51:14 | setElem output argument [elem] | D.cpp:51:5:51:5 | getBox1 output argument [*box, elem] | provenance | | +| D.cpp:51:27:51:27 | e | D.cpp:11:24:11:24 | e | provenance | | +| D.cpp:51:27:51:27 | e | D.cpp:51:8:51:14 | setElem output argument [elem] | provenance | | +| D.cpp:52:14:52:14 | *b [*box, elem] | D.cpp:21:30:21:31 | *b2 [*box, elem] | provenance | | +| D.cpp:56:15:56:24 | new | D.cpp:58:5:58:27 | ... = ... | provenance | | +| D.cpp:58:5:58:12 | *boxfield [post update] [*box, elem] | D.cpp:58:5:58:12 | *this [post update] [*boxfield, *box, elem] | provenance | | +| D.cpp:58:5:58:12 | *this [post update] [*boxfield, *box, elem] | D.cpp:59:5:59:7 | *this [*boxfield, *box, elem] | provenance | | +| D.cpp:58:5:58:27 | ... = ... | D.cpp:58:15:58:17 | *box [post update] [elem] | provenance | | +| D.cpp:58:15:58:17 | *box [post update] [elem] | D.cpp:58:5:58:12 | *boxfield [post update] [*box, elem] | provenance | | +| D.cpp:59:5:59:7 | *this [*boxfield, *box, elem] | D.cpp:63:8:63:10 | *this [*boxfield, *box, elem] | provenance | | +| D.cpp:63:8:63:10 | *this [*boxfield, *box, elem] | D.cpp:64:10:64:17 | *this [*boxfield, *box, elem] | provenance | | +| D.cpp:64:10:64:17 | *boxfield [*box, elem] | D.cpp:64:20:64:22 | *box [elem] | provenance | | +| D.cpp:64:10:64:17 | *this [*boxfield, *box, elem] | D.cpp:64:10:64:17 | *boxfield [*box, elem] | provenance | | +| D.cpp:64:20:64:22 | *box [elem] | D.cpp:64:10:64:28 | elem | provenance | | +| E.cpp:19:27:19:27 | *p [data, *buffer] | E.cpp:21:10:21:10 | *p [data, *buffer] | provenance | | +| E.cpp:21:10:21:10 | *p [data, *buffer] | E.cpp:21:13:21:16 | *data [*buffer] | provenance | | +| E.cpp:21:13:21:16 | *data [*buffer] | E.cpp:21:18:21:23 | *buffer | provenance | | +| E.cpp:28:21:28:23 | argument_source output argument | E.cpp:31:10:31:12 | *raw | provenance | | +| E.cpp:29:21:29:21 | *b [post update] [*buffer] | E.cpp:32:10:32:10 | *b [*buffer] | provenance | | +| E.cpp:29:21:29:29 | argument_source output argument | E.cpp:29:21:29:21 | *b [post update] [*buffer] | provenance | | +| E.cpp:30:21:30:21 | *p [post update] [data, *buffer] | E.cpp:33:18:33:19 | *& ... [data, *buffer] | provenance | | +| E.cpp:30:21:30:33 | argument_source output argument | E.cpp:30:23:30:26 | *data [post update] [*buffer] | provenance | | +| E.cpp:30:23:30:26 | *data [post update] [*buffer] | E.cpp:30:21:30:21 | *p [post update] [data, *buffer] | provenance | | +| E.cpp:32:10:32:10 | *b [*buffer] | E.cpp:32:13:32:18 | *buffer | provenance | | +| E.cpp:33:18:33:19 | *& ... [data, *buffer] | E.cpp:19:27:19:27 | *p [data, *buffer] | provenance | | +| aliasing.cpp:9:3:9:3 | *s [post update] [m1] | aliasing.cpp:25:17:25:19 | pointerSetter output argument [m1] | provenance | | +| aliasing.cpp:9:3:9:22 | ... = ... | aliasing.cpp:9:3:9:3 | *s [post update] [m1] | provenance | | +| aliasing.cpp:9:11:9:20 | call to user_input | aliasing.cpp:9:3:9:22 | ... = ... | provenance | | +| aliasing.cpp:13:3:13:3 | *s [post update] [m1] | aliasing.cpp:26:19:26:20 | referenceSetter output argument [m1] | provenance | | +| aliasing.cpp:13:3:13:21 | ... = ... | aliasing.cpp:13:3:13:3 | *s [post update] [m1] | provenance | | +| aliasing.cpp:13:10:13:19 | call to user_input | aliasing.cpp:13:3:13:21 | ... = ... | provenance | | +| aliasing.cpp:25:17:25:19 | pointerSetter output argument [m1] | aliasing.cpp:29:8:29:9 | *s1 [m1] | provenance | | +| aliasing.cpp:26:19:26:20 | referenceSetter output argument [m1] | aliasing.cpp:30:8:30:9 | *s2 [m1] | provenance | | +| aliasing.cpp:29:8:29:9 | *s1 [m1] | aliasing.cpp:29:11:29:12 | m1 | provenance | | +| aliasing.cpp:30:8:30:9 | *s2 [m1] | aliasing.cpp:30:11:30:12 | m1 | provenance | | +| aliasing.cpp:60:3:60:4 | *s2 [post update] [m1] | aliasing.cpp:62:8:62:12 | *copy2 [m1] | provenance | | +| aliasing.cpp:60:3:60:22 | ... = ... | aliasing.cpp:60:3:60:4 | *s2 [post update] [m1] | provenance | | +| aliasing.cpp:60:11:60:20 | call to user_input | aliasing.cpp:60:3:60:22 | ... = ... | provenance | | +| aliasing.cpp:62:8:62:12 | *copy2 [m1] | aliasing.cpp:62:14:62:15 | m1 | provenance | | +| aliasing.cpp:92:3:92:3 | *w [post update] [s, m1] | aliasing.cpp:93:8:93:8 | *w [s, m1] | provenance | | +| aliasing.cpp:92:3:92:23 | ... = ... | aliasing.cpp:92:5:92:5 | *s [post update] [m1] | provenance | | +| aliasing.cpp:92:5:92:5 | *s [post update] [m1] | aliasing.cpp:92:3:92:3 | *w [post update] [s, m1] | provenance | | +| aliasing.cpp:92:12:92:21 | call to user_input | aliasing.cpp:92:3:92:23 | ... = ... | provenance | | +| aliasing.cpp:93:8:93:8 | *w [s, m1] | aliasing.cpp:93:10:93:10 | *s [m1] | provenance | | +| aliasing.cpp:93:10:93:10 | *s [m1] | aliasing.cpp:93:12:93:13 | m1 | provenance | | +| aliasing.cpp:98:3:98:3 | *s [post update] [m1] | aliasing.cpp:101:14:101:19 | *s_copy [m1] | provenance | | +| aliasing.cpp:98:3:98:21 | ... = ... | aliasing.cpp:98:3:98:3 | *s [post update] [m1] | provenance | | +| aliasing.cpp:98:10:98:19 | call to user_input | aliasing.cpp:98:3:98:21 | ... = ... | provenance | | +| aliasing.cpp:101:13:101:22 | *& ... | aliasing.cpp:102:8:102:10 | * ... | provenance | | +| aliasing.cpp:101:14:101:19 | *s_copy [m1] | aliasing.cpp:101:13:101:22 | *& ... | provenance | | +| aliasing.cpp:105:23:105:24 | *pa | aliasing.cpp:121:15:121:16 | taint_a_ptr output argument | provenance | | +| aliasing.cpp:105:23:105:24 | *pa | aliasing.cpp:126:15:126:20 | taint_a_ptr output argument | provenance | | +| aliasing.cpp:105:23:105:24 | *pa | aliasing.cpp:131:15:131:16 | taint_a_ptr output argument | provenance | | +| aliasing.cpp:105:23:105:24 | *pa | aliasing.cpp:136:15:136:17 | taint_a_ptr output argument | provenance | | +| aliasing.cpp:105:23:105:24 | *pa | aliasing.cpp:141:17:141:20 | taint_a_ptr output argument | provenance | | +| aliasing.cpp:105:23:105:24 | *pa | aliasing.cpp:158:15:158:20 | taint_a_ptr output argument | provenance | | +| aliasing.cpp:105:23:105:24 | *pa | aliasing.cpp:164:15:164:20 | taint_a_ptr output argument | provenance | | +| aliasing.cpp:105:23:105:24 | *pa | aliasing.cpp:175:15:175:22 | taint_a_ptr output argument | provenance | | +| aliasing.cpp:105:23:105:24 | *pa | aliasing.cpp:187:15:187:22 | taint_a_ptr output argument | provenance | | +| aliasing.cpp:105:23:105:24 | *pa | aliasing.cpp:200:15:200:24 | taint_a_ptr output argument | provenance | | +| aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:105:23:105:24 | *pa | provenance | | +| aliasing.cpp:121:15:121:16 | taint_a_ptr output argument | aliasing.cpp:122:8:122:12 | access to array | provenance | | +| aliasing.cpp:126:15:126:20 | taint_a_ptr output argument | aliasing.cpp:127:8:127:16 | * ... | provenance | | +| aliasing.cpp:131:15:131:16 | taint_a_ptr output argument | aliasing.cpp:132:8:132:14 | * ... | provenance | | +| aliasing.cpp:136:15:136:17 | taint_a_ptr output argument | aliasing.cpp:137:8:137:11 | * ... | provenance | | +| aliasing.cpp:141:15:141:15 | *s [post update] [*data] | aliasing.cpp:143:8:143:8 | *s [*data] | provenance | | +| aliasing.cpp:141:17:141:20 | taint_a_ptr output argument | aliasing.cpp:141:15:141:15 | *s [post update] [*data] | provenance | | +| aliasing.cpp:143:8:143:8 | *s [*data] | aliasing.cpp:143:8:143:16 | access to array | provenance | | +| aliasing.cpp:143:8:143:8 | *s [*data] | aliasing.cpp:143:10:143:13 | *data | provenance | | +| aliasing.cpp:143:10:143:13 | *data | aliasing.cpp:143:8:143:16 | access to array | provenance | | +| aliasing.cpp:158:15:158:15 | *s [post update] [data] | aliasing.cpp:159:9:159:9 | *s [data] | provenance | | +| aliasing.cpp:158:15:158:20 | taint_a_ptr output argument | aliasing.cpp:158:15:158:15 | *s [post update] [data] | provenance | | +| aliasing.cpp:159:9:159:9 | *s [data] | aliasing.cpp:159:8:159:14 | * ... | provenance | | +| aliasing.cpp:164:15:164:15 | *s [post update] [data] | aliasing.cpp:165:8:165:8 | *s [data] | provenance | | +| aliasing.cpp:164:15:164:20 | taint_a_ptr output argument | aliasing.cpp:164:15:164:15 | *s [post update] [data] | provenance | | +| aliasing.cpp:165:8:165:8 | *s [data] | aliasing.cpp:165:8:165:16 | access to array | provenance | | +| aliasing.cpp:175:15:175:22 | taint_a_ptr output argument | aliasing.cpp:175:19:175:19 | *s [post update] [m1] | provenance | | +| aliasing.cpp:175:16:175:17 | *s2 [post update] [s, m1] | aliasing.cpp:176:8:176:9 | *s2 [s, m1] | provenance | | +| aliasing.cpp:175:19:175:19 | *s [post update] [m1] | aliasing.cpp:175:16:175:17 | *s2 [post update] [s, m1] | provenance | | +| aliasing.cpp:176:8:176:9 | *s2 [s, m1] | aliasing.cpp:176:11:176:11 | *s [m1] | provenance | | +| aliasing.cpp:176:11:176:11 | *s [m1] | aliasing.cpp:176:13:176:14 | m1 | provenance | | +| aliasing.cpp:187:15:187:22 | taint_a_ptr output argument | aliasing.cpp:187:19:187:19 | *s [post update] [m1] | provenance | | +| aliasing.cpp:187:16:187:17 | *s2 [post update] [s, m1] | aliasing.cpp:189:8:189:11 | *s2_2 [s, m1] | provenance | | +| aliasing.cpp:187:19:187:19 | *s [post update] [m1] | aliasing.cpp:187:16:187:17 | *s2 [post update] [s, m1] | provenance | | +| aliasing.cpp:189:8:189:11 | *s2_2 [s, m1] | aliasing.cpp:189:13:189:13 | *s [m1] | provenance | | +| aliasing.cpp:189:13:189:13 | *s [m1] | aliasing.cpp:189:15:189:16 | m1 | provenance | | +| aliasing.cpp:200:15:200:24 | taint_a_ptr output argument | aliasing.cpp:200:21:200:21 | *s [post update] [m1] | provenance | | +| aliasing.cpp:200:16:200:18 | *ps2 [post update] [s, m1] | aliasing.cpp:201:8:201:10 | *ps2 [s, m1] | provenance | | +| aliasing.cpp:200:21:200:21 | *s [post update] [m1] | aliasing.cpp:200:16:200:18 | *ps2 [post update] [s, m1] | provenance | | +| aliasing.cpp:201:8:201:10 | *ps2 [s, m1] | aliasing.cpp:201:13:201:13 | *s [m1] | provenance | | +| aliasing.cpp:201:13:201:13 | *s [m1] | aliasing.cpp:201:15:201:16 | m1 | provenance | | +| arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:7:8:7:13 | access to array | provenance | | +| arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:8:8:8:13 | access to array | provenance | | +| arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:9:8:9:11 | * ... | provenance | | +| arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | * ... | provenance | | +| arrays.cpp:15:14:15:23 | call to user_input | arrays.cpp:16:8:16:13 | access to array | provenance | | +| arrays.cpp:15:14:15:23 | call to user_input | arrays.cpp:17:8:17:13 | access to array | provenance | | +| arrays.cpp:36:3:36:3 | *o [post update] [nested, arr, data] | arrays.cpp:37:8:37:8 | *o [nested, arr, data] | provenance | | +| arrays.cpp:36:3:36:3 | *o [post update] [nested, arr, data] | arrays.cpp:38:8:38:8 | *o [nested, arr, data] | provenance | | +| arrays.cpp:36:3:36:17 | *access to array [post update] [data] | arrays.cpp:36:5:36:10 | *nested [post update] [arr, data] | provenance | | +| arrays.cpp:36:3:36:37 | ... = ... | arrays.cpp:36:3:36:17 | *access to array [post update] [data] | provenance | | +| arrays.cpp:36:5:36:10 | *nested [post update] [arr, data] | arrays.cpp:36:3:36:3 | *o [post update] [nested, arr, data] | provenance | | +| arrays.cpp:36:26:36:35 | call to user_input | arrays.cpp:36:3:36:37 | ... = ... | provenance | | +| arrays.cpp:37:8:37:8 | *o [nested, arr, data] | arrays.cpp:37:10:37:15 | *nested [arr, data] | provenance | | +| arrays.cpp:37:8:37:22 | *access to array [data] | arrays.cpp:37:24:37:27 | data | provenance | | +| arrays.cpp:37:10:37:15 | *nested [arr, data] | arrays.cpp:37:8:37:22 | *access to array [data] | provenance | | +| arrays.cpp:38:8:38:8 | *o [nested, arr, data] | arrays.cpp:38:10:38:15 | *nested [arr, data] | provenance | | +| arrays.cpp:38:8:38:22 | *access to array [data] | arrays.cpp:38:24:38:27 | data | provenance | | +| arrays.cpp:38:10:38:15 | *nested [arr, data] | arrays.cpp:38:8:38:22 | *access to array [data] | provenance | | +| arrays.cpp:42:3:42:3 | *o [post update] [*indirect, arr, data] | arrays.cpp:43:8:43:8 | *o [*indirect, arr, data] | provenance | | +| arrays.cpp:42:3:42:3 | *o [post update] [*indirect, arr, data] | arrays.cpp:44:8:44:8 | *o [*indirect, arr, data] | provenance | | +| arrays.cpp:42:3:42:20 | *access to array [post update] [data] | arrays.cpp:42:5:42:12 | *indirect [post update] [arr, data] | provenance | | +| arrays.cpp:42:3:42:40 | ... = ... | arrays.cpp:42:3:42:20 | *access to array [post update] [data] | provenance | | +| arrays.cpp:42:5:42:12 | *indirect [post update] [arr, data] | arrays.cpp:42:3:42:3 | *o [post update] [*indirect, arr, data] | provenance | | +| arrays.cpp:42:29:42:38 | call to user_input | arrays.cpp:42:3:42:40 | ... = ... | provenance | | +| arrays.cpp:43:8:43:8 | *o [*indirect, arr, data] | arrays.cpp:43:10:43:17 | *indirect [arr, data] | provenance | | +| arrays.cpp:43:8:43:25 | *access to array [data] | arrays.cpp:43:27:43:30 | data | provenance | | +| arrays.cpp:43:10:43:17 | *indirect [arr, data] | arrays.cpp:43:8:43:25 | *access to array [data] | provenance | | +| arrays.cpp:44:8:44:8 | *o [*indirect, arr, data] | arrays.cpp:44:10:44:17 | *indirect [arr, data] | provenance | | +| arrays.cpp:44:8:44:25 | *access to array [data] | arrays.cpp:44:27:44:30 | data | provenance | | +| arrays.cpp:44:10:44:17 | *indirect [arr, data] | arrays.cpp:44:8:44:25 | *access to array [data] | provenance | | +| arrays.cpp:48:3:48:3 | *o [post update] [*indirect, *ptr, data] | arrays.cpp:49:8:49:8 | *o [*indirect, *ptr, data] | provenance | | +| arrays.cpp:48:3:48:3 | *o [post update] [*indirect, *ptr, data] | arrays.cpp:50:8:50:8 | *o [*indirect, *ptr, data] | provenance | | +| arrays.cpp:48:3:48:20 | *access to array [post update] [data] | arrays.cpp:48:5:48:12 | *indirect [post update] [*ptr, data] | provenance | | +| arrays.cpp:48:3:48:40 | ... = ... | arrays.cpp:48:3:48:20 | *access to array [post update] [data] | provenance | | +| arrays.cpp:48:5:48:12 | *indirect [post update] [*ptr, data] | arrays.cpp:48:3:48:3 | *o [post update] [*indirect, *ptr, data] | provenance | | +| arrays.cpp:48:29:48:38 | call to user_input | arrays.cpp:48:3:48:40 | ... = ... | provenance | | +| arrays.cpp:49:8:49:8 | *o [*indirect, *ptr, data] | arrays.cpp:49:10:49:17 | *indirect [*ptr, data] | provenance | | +| arrays.cpp:49:8:49:25 | *access to array [data] | arrays.cpp:49:27:49:30 | data | provenance | | +| arrays.cpp:49:10:49:17 | *indirect [*ptr, data] | arrays.cpp:49:8:49:25 | *access to array [data] | provenance | | +| arrays.cpp:49:10:49:17 | *indirect [*ptr, data] | arrays.cpp:49:20:49:22 | *ptr [data] | provenance | | +| arrays.cpp:49:20:49:22 | *ptr [data] | arrays.cpp:49:8:49:25 | *access to array [data] | provenance | | +| arrays.cpp:50:8:50:8 | *o [*indirect, *ptr, data] | arrays.cpp:50:10:50:17 | *indirect [*ptr, data] | provenance | | +| arrays.cpp:50:8:50:25 | *access to array [data] | arrays.cpp:50:27:50:30 | data | provenance | | +| arrays.cpp:50:10:50:17 | *indirect [*ptr, data] | arrays.cpp:50:8:50:25 | *access to array [data] | provenance | | +| arrays.cpp:50:10:50:17 | *indirect [*ptr, data] | arrays.cpp:50:20:50:22 | *ptr [data] | provenance | | +| arrays.cpp:50:20:50:22 | *ptr [data] | arrays.cpp:50:8:50:25 | *access to array [data] | provenance | | +| by_reference.cpp:11:48:11:52 | value | by_reference.cpp:12:5:12:16 | ... = ... | provenance | | +| by_reference.cpp:12:5:12:16 | ... = ... | by_reference.cpp:12:5:12:5 | *s [post update] [a] | provenance | | +| by_reference.cpp:15:26:15:30 | value | by_reference.cpp:16:5:16:19 | ... = ... | provenance | | +| by_reference.cpp:16:5:16:19 | ... = ... | by_reference.cpp:16:5:16:8 | *this [post update] [a] | provenance | | +| by_reference.cpp:19:28:19:32 | value | by_reference.cpp:20:23:20:27 | value | provenance | | +| by_reference.cpp:20:23:20:27 | value | by_reference.cpp:15:26:15:30 | value | provenance | | +| by_reference.cpp:20:23:20:27 | value | by_reference.cpp:20:5:20:8 | setDirectly output argument [a] | provenance | | +| by_reference.cpp:23:34:23:38 | value | by_reference.cpp:24:25:24:29 | value | provenance | | +| by_reference.cpp:24:25:24:29 | value | by_reference.cpp:11:48:11:52 | value | provenance | | +| by_reference.cpp:24:25:24:29 | value | by_reference.cpp:24:19:24:22 | nonMemberSetA output argument [a] | provenance | | +| by_reference.cpp:31:46:31:46 | *s [a] | by_reference.cpp:32:12:32:12 | *s [a] | provenance | | +| by_reference.cpp:32:12:32:12 | *s [a] | by_reference.cpp:32:15:32:15 | a | provenance | | +| by_reference.cpp:32:15:32:15 | a | by_reference.cpp:31:16:31:28 | *nonMemberGetA | provenance | | +| by_reference.cpp:35:9:35:19 | *this [a] | by_reference.cpp:36:12:36:15 | *this [a] | provenance | | +| by_reference.cpp:36:12:36:15 | *this [a] | by_reference.cpp:36:18:36:18 | a | provenance | | +| by_reference.cpp:36:18:36:18 | a | by_reference.cpp:35:9:35:19 | *getDirectly | provenance | | +| by_reference.cpp:39:9:39:21 | *this [a] | by_reference.cpp:40:12:40:15 | *this [a] | provenance | | +| by_reference.cpp:40:12:40:15 | *this [a] | by_reference.cpp:35:9:35:19 | *this [a] | provenance | | +| by_reference.cpp:40:12:40:15 | *this [a] | by_reference.cpp:40:18:40:28 | call to getDirectly | provenance | | +| by_reference.cpp:40:18:40:28 | call to getDirectly | by_reference.cpp:39:9:39:21 | *getIndirectly | provenance | | +| by_reference.cpp:43:9:43:27 | *this [a] | by_reference.cpp:44:26:44:29 | *this [a] | provenance | | +| by_reference.cpp:44:12:44:24 | call to nonMemberGetA | by_reference.cpp:43:9:43:27 | *getThroughNonMember | provenance | | +| by_reference.cpp:44:26:44:29 | *this [a] | by_reference.cpp:31:46:31:46 | *s [a] | provenance | | +| by_reference.cpp:44:26:44:29 | *this [a] | by_reference.cpp:44:12:44:24 | call to nonMemberGetA | provenance | | +| by_reference.cpp:50:3:50:3 | setDirectly output argument [a] | by_reference.cpp:51:8:51:8 | *s [a] | provenance | | +| by_reference.cpp:50:17:50:26 | call to user_input | by_reference.cpp:15:26:15:30 | value | provenance | | +| by_reference.cpp:50:17:50:26 | call to user_input | by_reference.cpp:50:3:50:3 | setDirectly output argument [a] | provenance | | +| by_reference.cpp:51:8:51:8 | *s [a] | by_reference.cpp:35:9:35:19 | *this [a] | provenance | | +| by_reference.cpp:51:8:51:8 | *s [a] | by_reference.cpp:51:10:51:20 | call to getDirectly | provenance | | +| by_reference.cpp:56:3:56:3 | setIndirectly output argument [a] | by_reference.cpp:57:8:57:8 | *s [a] | provenance | | +| by_reference.cpp:56:19:56:28 | call to user_input | by_reference.cpp:19:28:19:32 | value | provenance | | +| by_reference.cpp:56:19:56:28 | call to user_input | by_reference.cpp:56:3:56:3 | setIndirectly output argument [a] | provenance | | +| by_reference.cpp:57:8:57:8 | *s [a] | by_reference.cpp:39:9:39:21 | *this [a] | provenance | | +| by_reference.cpp:57:8:57:8 | *s [a] | by_reference.cpp:57:10:57:22 | call to getIndirectly | provenance | | +| by_reference.cpp:62:3:62:3 | setThroughNonMember output argument [a] | by_reference.cpp:63:8:63:8 | *s [a] | provenance | | +| by_reference.cpp:62:25:62:34 | call to user_input | by_reference.cpp:23:34:23:38 | value | provenance | | +| by_reference.cpp:62:25:62:34 | call to user_input | by_reference.cpp:62:3:62:3 | setThroughNonMember output argument [a] | provenance | | +| by_reference.cpp:63:8:63:8 | *s [a] | by_reference.cpp:43:9:43:27 | *this [a] | provenance | | +| by_reference.cpp:63:8:63:8 | *s [a] | by_reference.cpp:63:10:63:28 | call to getThroughNonMember | provenance | | +| by_reference.cpp:68:17:68:18 | nonMemberSetA output argument [a] | by_reference.cpp:69:22:69:23 | *& ... [a] | provenance | | +| by_reference.cpp:68:21:68:30 | call to user_input | by_reference.cpp:11:48:11:52 | value | provenance | | +| by_reference.cpp:68:21:68:30 | call to user_input | by_reference.cpp:68:17:68:18 | nonMemberSetA output argument [a] | provenance | | +| by_reference.cpp:69:22:69:23 | *& ... [a] | by_reference.cpp:31:46:31:46 | *s [a] | provenance | | +| by_reference.cpp:69:22:69:23 | *& ... [a] | by_reference.cpp:69:8:69:20 | call to nonMemberGetA | provenance | | +| by_reference.cpp:84:3:84:7 | *inner [post update] [a] | by_reference.cpp:102:21:102:39 | taint_inner_a_ptr output argument [a] | provenance | | +| by_reference.cpp:84:3:84:7 | *inner [post update] [a] | by_reference.cpp:103:27:103:35 | taint_inner_a_ptr output argument [a] | provenance | | +| by_reference.cpp:84:3:84:7 | *inner [post update] [a] | by_reference.cpp:106:21:106:41 | taint_inner_a_ptr output argument [a] | provenance | | +| by_reference.cpp:84:3:84:7 | *inner [post update] [a] | by_reference.cpp:107:29:107:37 | taint_inner_a_ptr output argument [a] | provenance | | +| by_reference.cpp:84:3:84:25 | ... = ... | by_reference.cpp:84:3:84:7 | *inner [post update] [a] | provenance | | +| by_reference.cpp:84:14:84:23 | call to user_input | by_reference.cpp:84:3:84:25 | ... = ... | provenance | | +| by_reference.cpp:88:3:88:7 | *inner [post update] [a] | by_reference.cpp:122:21:122:38 | taint_inner_a_ref output argument [a] | provenance | | +| by_reference.cpp:88:3:88:7 | *inner [post update] [a] | by_reference.cpp:123:21:123:36 | taint_inner_a_ref output argument [a] | provenance | | +| by_reference.cpp:88:3:88:7 | *inner [post update] [a] | by_reference.cpp:126:21:126:40 | taint_inner_a_ref output argument [a] | provenance | | +| by_reference.cpp:88:3:88:7 | *inner [post update] [a] | by_reference.cpp:127:21:127:38 | taint_inner_a_ref output argument [a] | provenance | | +| by_reference.cpp:88:3:88:24 | ... = ... | by_reference.cpp:88:3:88:7 | *inner [post update] [a] | provenance | | +| by_reference.cpp:88:13:88:22 | call to user_input | by_reference.cpp:88:3:88:24 | ... = ... | provenance | | +| by_reference.cpp:91:25:91:26 | *pa | by_reference.cpp:104:15:104:22 | taint_a_ptr output argument | provenance | | +| by_reference.cpp:91:25:91:26 | *pa | by_reference.cpp:108:15:108:24 | taint_a_ptr output argument | provenance | | +| by_reference.cpp:92:9:92:18 | call to user_input | by_reference.cpp:91:25:91:26 | *pa | provenance | | +| by_reference.cpp:95:25:95:26 | *pa | by_reference.cpp:124:15:124:21 | taint_a_ref output argument | provenance | | +| by_reference.cpp:95:25:95:26 | *pa | by_reference.cpp:128:15:128:23 | taint_a_ref output argument | provenance | | +| by_reference.cpp:96:8:96:17 | call to user_input | by_reference.cpp:95:25:95:26 | *pa | provenance | | +| by_reference.cpp:102:21:102:39 | taint_inner_a_ptr output argument [a] | by_reference.cpp:102:22:102:26 | *outer [post update] [inner_nested, a] | provenance | | +| by_reference.cpp:102:22:102:26 | *outer [post update] [inner_nested, a] | by_reference.cpp:110:8:110:12 | *outer [inner_nested, a] | provenance | | +| by_reference.cpp:103:21:103:25 | *outer [post update] [*inner_ptr, a] | by_reference.cpp:111:8:111:12 | *outer [*inner_ptr, a] | provenance | | +| by_reference.cpp:103:27:103:35 | taint_inner_a_ptr output argument [a] | by_reference.cpp:103:21:103:25 | *outer [post update] [*inner_ptr, a] | provenance | | +| by_reference.cpp:104:15:104:22 | taint_a_ptr output argument | by_reference.cpp:104:16:104:20 | *outer [post update] [a] | provenance | | +| by_reference.cpp:104:16:104:20 | *outer [post update] [a] | by_reference.cpp:112:8:112:12 | *outer [a] | provenance | | +| by_reference.cpp:106:21:106:41 | taint_inner_a_ptr output argument [a] | by_reference.cpp:106:22:106:27 | *pouter [post update] [inner_nested, a] | provenance | | +| by_reference.cpp:106:22:106:27 | *pouter [post update] [inner_nested, a] | by_reference.cpp:114:8:114:13 | *pouter [inner_nested, a] | provenance | | +| by_reference.cpp:107:21:107:26 | *pouter [post update] [*inner_ptr, a] | by_reference.cpp:115:8:115:13 | *pouter [*inner_ptr, a] | provenance | | +| by_reference.cpp:107:29:107:37 | taint_inner_a_ptr output argument [a] | by_reference.cpp:107:21:107:26 | *pouter [post update] [*inner_ptr, a] | provenance | | +| by_reference.cpp:108:15:108:24 | taint_a_ptr output argument | by_reference.cpp:108:16:108:21 | *pouter [post update] [a] | provenance | | +| by_reference.cpp:108:16:108:21 | *pouter [post update] [a] | by_reference.cpp:116:8:116:13 | *pouter [a] | provenance | | +| by_reference.cpp:110:8:110:12 | *outer [inner_nested, a] | by_reference.cpp:110:14:110:25 | *inner_nested [a] | provenance | | +| by_reference.cpp:110:14:110:25 | *inner_nested [a] | by_reference.cpp:110:27:110:27 | a | provenance | | +| by_reference.cpp:111:8:111:12 | *outer [*inner_ptr, a] | by_reference.cpp:111:14:111:22 | *inner_ptr [a] | provenance | | +| by_reference.cpp:111:14:111:22 | *inner_ptr [a] | by_reference.cpp:111:25:111:25 | a | provenance | | +| by_reference.cpp:112:8:112:12 | *outer [a] | by_reference.cpp:112:14:112:14 | a | provenance | | +| by_reference.cpp:114:8:114:13 | *pouter [inner_nested, a] | by_reference.cpp:114:16:114:27 | *inner_nested [a] | provenance | | +| by_reference.cpp:114:16:114:27 | *inner_nested [a] | by_reference.cpp:114:29:114:29 | a | provenance | | +| by_reference.cpp:115:8:115:13 | *pouter [*inner_ptr, a] | by_reference.cpp:115:16:115:24 | *inner_ptr [a] | provenance | | +| by_reference.cpp:115:16:115:24 | *inner_ptr [a] | by_reference.cpp:115:27:115:27 | a | provenance | | +| by_reference.cpp:116:8:116:13 | *pouter [a] | by_reference.cpp:116:16:116:16 | a | provenance | | +| by_reference.cpp:122:21:122:25 | *outer [post update] [inner_nested, a] | by_reference.cpp:130:8:130:12 | *outer [inner_nested, a] | provenance | | +| by_reference.cpp:122:21:122:38 | taint_inner_a_ref output argument [a] | by_reference.cpp:122:21:122:25 | *outer [post update] [inner_nested, a] | provenance | | +| by_reference.cpp:123:21:123:36 | taint_inner_a_ref output argument [a] | by_reference.cpp:123:22:123:26 | *outer [post update] [*inner_ptr, a] | provenance | | +| by_reference.cpp:123:22:123:26 | *outer [post update] [*inner_ptr, a] | by_reference.cpp:131:8:131:12 | *outer [*inner_ptr, a] | provenance | | +| by_reference.cpp:124:15:124:19 | *outer [post update] [a] | by_reference.cpp:132:8:132:12 | *outer [a] | provenance | | +| by_reference.cpp:124:15:124:21 | taint_a_ref output argument | by_reference.cpp:124:15:124:19 | *outer [post update] [a] | provenance | | +| by_reference.cpp:126:21:126:26 | *pouter [post update] [inner_nested, a] | by_reference.cpp:134:8:134:13 | *pouter [inner_nested, a] | provenance | | +| by_reference.cpp:126:21:126:40 | taint_inner_a_ref output argument [a] | by_reference.cpp:126:21:126:26 | *pouter [post update] [inner_nested, a] | provenance | | +| by_reference.cpp:127:21:127:38 | taint_inner_a_ref output argument [a] | by_reference.cpp:127:22:127:27 | *pouter [post update] [*inner_ptr, a] | provenance | | +| by_reference.cpp:127:22:127:27 | *pouter [post update] [*inner_ptr, a] | by_reference.cpp:135:8:135:13 | *pouter [*inner_ptr, a] | provenance | | +| by_reference.cpp:128:15:128:20 | *pouter [post update] [a] | by_reference.cpp:136:8:136:13 | *pouter [a] | provenance | | +| by_reference.cpp:128:15:128:23 | taint_a_ref output argument | by_reference.cpp:128:15:128:20 | *pouter [post update] [a] | provenance | | +| by_reference.cpp:130:8:130:12 | *outer [inner_nested, a] | by_reference.cpp:130:14:130:25 | *inner_nested [a] | provenance | | +| by_reference.cpp:130:14:130:25 | *inner_nested [a] | by_reference.cpp:130:27:130:27 | a | provenance | | +| by_reference.cpp:131:8:131:12 | *outer [*inner_ptr, a] | by_reference.cpp:131:14:131:22 | *inner_ptr [a] | provenance | | +| by_reference.cpp:131:14:131:22 | *inner_ptr [a] | by_reference.cpp:131:25:131:25 | a | provenance | | +| by_reference.cpp:132:8:132:12 | *outer [a] | by_reference.cpp:132:14:132:14 | a | provenance | | +| by_reference.cpp:134:8:134:13 | *pouter [inner_nested, a] | by_reference.cpp:134:16:134:27 | *inner_nested [a] | provenance | | +| by_reference.cpp:134:16:134:27 | *inner_nested [a] | by_reference.cpp:134:29:134:29 | a | provenance | | +| by_reference.cpp:135:8:135:13 | *pouter [*inner_ptr, a] | by_reference.cpp:135:16:135:24 | *inner_ptr [a] | provenance | | +| by_reference.cpp:135:16:135:24 | *inner_ptr [a] | by_reference.cpp:135:27:135:27 | a | provenance | | +| by_reference.cpp:136:8:136:13 | *pouter [a] | by_reference.cpp:136:16:136:16 | a | provenance | | +| clearning.cpp:32:3:32:25 | ... = ... | clearning.cpp:32:4:32:4 | *s [post update] [*x] | provenance | | +| clearning.cpp:32:4:32:4 | *s [post update] [*x] | clearning.cpp:33:5:33:5 | *s [*x] | provenance | | +| clearning.cpp:32:10:32:19 | call to user_input | clearning.cpp:32:3:32:25 | ... = ... | provenance | | +| clearning.cpp:33:5:33:5 | *s [*x] | clearning.cpp:34:9:34:9 | *s [*x] | provenance | | +| clearning.cpp:34:9:34:9 | *s [*x] | clearning.cpp:34:8:34:11 | * ... | provenance | | +| clearning.cpp:53:3:53:25 | ... = ... | clearning.cpp:53:4:53:4 | *s [post update] [*x] | provenance | | +| clearning.cpp:53:4:53:4 | *s [post update] [*x] | clearning.cpp:54:3:54:3 | *s [*x] | provenance | | +| clearning.cpp:53:10:53:19 | call to user_input | clearning.cpp:53:3:53:25 | ... = ... | provenance | | +| clearning.cpp:54:3:54:3 | *s [*x] | clearning.cpp:54:3:54:7 | *... ++ | provenance | | +| clearning.cpp:54:3:54:3 | *s [*x] | clearning.cpp:54:5:54:5 | *x | provenance | | +| clearning.cpp:54:3:54:3 | *s [*x] | clearning.cpp:55:8:55:8 | *s [*x] | provenance | | +| clearning.cpp:54:3:54:3 | *s [post update] [*x] | clearning.cpp:55:8:55:8 | *s [*x] | provenance | | +| clearning.cpp:54:3:54:7 | *... ++ | clearning.cpp:54:3:54:3 | *s [post update] [*x] | provenance | | +| clearning.cpp:54:3:54:7 | *... ++ | clearning.cpp:54:3:54:7 | *... ++ | provenance | | +| clearning.cpp:54:5:54:5 | *x | clearning.cpp:54:3:54:7 | *... ++ | provenance | | +| clearning.cpp:55:8:55:8 | *s [*x] | clearning.cpp:55:10:55:10 | *x | provenance | | +| clearning.cpp:60:3:60:22 | ... = ... | clearning.cpp:60:5:60:5 | *s [post update] [**x] | provenance | | +| clearning.cpp:60:5:60:5 | *s [post update] [**x] | clearning.cpp:61:3:61:3 | *s [**x] | provenance | | +| clearning.cpp:60:11:60:20 | call to user_input | clearning.cpp:60:3:60:22 | ... = ... | provenance | | +| clearning.cpp:61:3:61:3 | *s [**x] | clearning.cpp:61:3:61:7 | **... ++ | provenance | | +| clearning.cpp:61:3:61:3 | *s [**x] | clearning.cpp:61:5:61:5 | **x | provenance | | +| clearning.cpp:61:3:61:3 | *s [**x] | clearning.cpp:62:8:62:8 | *s [**x] | provenance | | +| clearning.cpp:61:3:61:3 | *s [post update] [**x] | clearning.cpp:62:8:62:8 | *s [**x] | provenance | | +| clearning.cpp:61:3:61:7 | **... ++ | clearning.cpp:61:3:61:3 | *s [post update] [**x] | provenance | | +| clearning.cpp:61:3:61:7 | **... ++ | clearning.cpp:61:3:61:7 | **... ++ | provenance | | +| clearning.cpp:61:5:61:5 | **x | clearning.cpp:61:3:61:7 | **... ++ | provenance | | +| clearning.cpp:62:8:62:8 | *s [**x] | clearning.cpp:62:10:62:10 | **x | provenance | | +| clearning.cpp:74:18:74:18 | *s [post update] [*val] | clearning.cpp:76:8:76:8 | *s [*val] | provenance | | +| clearning.cpp:74:20:74:22 | argument_source output argument | clearning.cpp:74:18:74:18 | *s [post update] [*val] | provenance | | +| clearning.cpp:76:8:76:8 | *s [*val] | clearning.cpp:76:7:76:12 | * ... | provenance | | +| clearning.cpp:81:18:81:18 | *s [post update] [*val] | clearning.cpp:83:13:83:13 | *s [*val] | provenance | | +| clearning.cpp:81:20:81:22 | argument_source output argument | clearning.cpp:81:18:81:18 | *s [post update] [*val] | provenance | | +| clearning.cpp:83:5:83:5 | *s [post update] [*val] | clearning.cpp:84:8:84:8 | *s [*val] | provenance | | +| clearning.cpp:83:5:83:21 | *... = ... | clearning.cpp:83:5:83:5 | *s [post update] [*val] | provenance | | +| clearning.cpp:83:13:83:13 | *s [*val] | clearning.cpp:83:13:83:21 | *... + ... | provenance | | +| clearning.cpp:83:13:83:13 | *s [*val] | clearning.cpp:83:15:83:17 | *val | provenance | | +| clearning.cpp:83:13:83:21 | *... + ... | clearning.cpp:83:5:83:21 | *... = ... | provenance | | +| clearning.cpp:83:15:83:17 | *val | clearning.cpp:83:5:83:21 | *... = ... | provenance | | +| clearning.cpp:84:8:84:8 | *s [*val] | clearning.cpp:84:7:84:12 | * ... | provenance | | +| clearning.cpp:89:18:89:18 | *s [post update] [*val] | clearning.cpp:90:3:90:3 | *s [*val] | provenance | | +| clearning.cpp:89:20:89:22 | argument_source output argument | clearning.cpp:89:18:89:18 | *s [post update] [*val] | provenance | | +| clearning.cpp:90:3:90:3 | *s [*val] | clearning.cpp:90:3:90:9 | *... ++ | provenance | | +| clearning.cpp:90:3:90:3 | *s [*val] | clearning.cpp:90:5:90:7 | **val | provenance | | +| clearning.cpp:90:3:90:3 | *s [*val] | clearning.cpp:91:8:91:8 | *s [*val] | provenance | | +| clearning.cpp:90:3:90:3 | *s [post update] [*val] | clearning.cpp:91:8:91:8 | *s [*val] | provenance | | +| clearning.cpp:90:3:90:9 | *... ++ | clearning.cpp:90:3:90:3 | *s [post update] [*val] | provenance | | +| clearning.cpp:90:3:90:9 | *... ++ | clearning.cpp:90:3:90:9 | *... ++ | provenance | | +| clearning.cpp:90:5:90:7 | **val | clearning.cpp:90:3:90:9 | *... ++ | provenance | | +| clearning.cpp:91:8:91:8 | *s [*val] | clearning.cpp:91:7:91:12 | * ... | provenance | | +| clearning.cpp:96:18:96:18 | *s [post update] [*val] | clearning.cpp:97:10:97:10 | *s [*val] | provenance | | +| clearning.cpp:96:20:96:22 | argument_source output argument | clearning.cpp:96:18:96:18 | *s [post update] [*val] | provenance | | +| clearning.cpp:97:2:97:2 | *s [post update] [*val] | clearning.cpp:98:8:98:8 | *s [*val] | provenance | | +| clearning.cpp:97:2:97:18 | *... = ... | clearning.cpp:97:2:97:2 | *s [post update] [*val] | provenance | | +| clearning.cpp:97:10:97:10 | *s [*val] | clearning.cpp:97:10:97:18 | *... + ... | provenance | | +| clearning.cpp:97:10:97:10 | *s [*val] | clearning.cpp:97:12:97:14 | *val | provenance | | +| clearning.cpp:97:10:97:18 | *... + ... | clearning.cpp:97:2:97:18 | *... = ... | provenance | | +| clearning.cpp:97:12:97:14 | *val | clearning.cpp:97:2:97:18 | *... = ... | provenance | | +| clearning.cpp:98:8:98:8 | *s [*val] | clearning.cpp:98:7:98:12 | * ... | provenance | | +| clearning.cpp:103:18:103:18 | *s [post update] [*val] | clearning.cpp:104:2:104:2 | *s [*val] | provenance | | +| clearning.cpp:103:20:103:22 | argument_source output argument | clearning.cpp:103:18:103:18 | *s [post update] [*val] | provenance | | +| clearning.cpp:104:2:104:2 | *s [*val] | clearning.cpp:104:2:104:8 | *... ++ | provenance | | +| clearning.cpp:104:2:104:2 | *s [*val] | clearning.cpp:104:4:104:6 | *val | provenance | | +| clearning.cpp:104:2:104:2 | *s [*val] | clearning.cpp:105:8:105:8 | *s [*val] | provenance | | +| clearning.cpp:104:2:104:2 | *s [post update] [*val] | clearning.cpp:105:8:105:8 | *s [*val] | provenance | | +| clearning.cpp:104:2:104:8 | *... ++ | clearning.cpp:104:2:104:2 | *s [post update] [*val] | provenance | | +| clearning.cpp:104:2:104:8 | *... ++ | clearning.cpp:104:2:104:8 | *... ++ | provenance | | +| clearning.cpp:104:4:104:6 | *val | clearning.cpp:104:2:104:8 | *... ++ | provenance | | +| clearning.cpp:105:8:105:8 | *s [*val] | clearning.cpp:105:7:105:12 | * ... | provenance | | +| clearning.cpp:110:18:110:18 | *s [post update] [*val] | clearning.cpp:111:4:111:4 | *s [*val] | provenance | | +| clearning.cpp:110:20:110:22 | argument_source output argument | clearning.cpp:110:18:110:18 | *s [post update] [*val] | provenance | | +| clearning.cpp:111:2:111:8 | *++ ... | clearning.cpp:111:2:111:8 | *++ ... | provenance | | +| clearning.cpp:111:2:111:8 | *++ ... | clearning.cpp:111:4:111:4 | *s [post update] [*val] | provenance | | +| clearning.cpp:111:4:111:4 | *s [*val] | clearning.cpp:111:2:111:8 | *++ ... | provenance | | +| clearning.cpp:111:4:111:4 | *s [*val] | clearning.cpp:111:6:111:8 | *val | provenance | | +| clearning.cpp:111:4:111:4 | *s [*val] | clearning.cpp:112:8:112:8 | *s [*val] | provenance | | +| clearning.cpp:111:4:111:4 | *s [post update] [*val] | clearning.cpp:112:8:112:8 | *s [*val] | provenance | | +| clearning.cpp:111:6:111:8 | *val | clearning.cpp:111:2:111:8 | *++ ... | provenance | | +| clearning.cpp:112:8:112:8 | *s [*val] | clearning.cpp:112:7:112:12 | * ... | provenance | | +| clearning.cpp:117:18:117:18 | *s [post update] [*val] | clearning.cpp:118:2:118:2 | *s [*val] | provenance | | +| clearning.cpp:117:20:117:22 | argument_source output argument | clearning.cpp:117:18:117:18 | *s [post update] [*val] | provenance | | +| clearning.cpp:118:2:118:2 | *s [*val] | clearning.cpp:118:2:118:11 | *... += ... | provenance | | +| clearning.cpp:118:2:118:2 | *s [*val] | clearning.cpp:118:4:118:6 | *val | provenance | | +| clearning.cpp:118:2:118:2 | *s [*val] | clearning.cpp:119:8:119:8 | *s [*val] | provenance | | +| clearning.cpp:118:2:118:2 | *s [post update] [*val] | clearning.cpp:119:8:119:8 | *s [*val] | provenance | | +| clearning.cpp:118:2:118:11 | *... += ... | clearning.cpp:118:2:118:2 | *s [post update] [*val] | provenance | | +| clearning.cpp:118:2:118:11 | *... += ... | clearning.cpp:118:2:118:11 | *... += ... | provenance | | +| clearning.cpp:118:4:118:6 | *val | clearning.cpp:118:2:118:11 | *... += ... | provenance | | +| clearning.cpp:119:8:119:8 | *s [*val] | clearning.cpp:119:7:119:12 | * ... | provenance | | +| clearning.cpp:151:3:151:3 | *s [post update] [val] | clearning.cpp:152:8:152:8 | *s [val] | provenance | | +| clearning.cpp:151:3:151:22 | ... = ... | clearning.cpp:151:3:151:3 | *s [post update] [val] | provenance | | +| clearning.cpp:151:11:151:20 | call to user_input | clearning.cpp:151:3:151:22 | ... = ... | provenance | | +| clearning.cpp:152:8:152:8 | *s [val] | clearning.cpp:152:10:152:12 | val | provenance | | +| complex.cpp:9:7:9:7 | *this [a_] | complex.cpp:9:20:9:21 | *this [a_] | provenance | | +| complex.cpp:9:20:9:21 | *this [a_] | complex.cpp:9:20:9:21 | a_ | provenance | | +| complex.cpp:9:20:9:21 | a_ | complex.cpp:9:7:9:7 | *a | provenance | | +| complex.cpp:10:7:10:7 | *this [b_] | complex.cpp:10:20:10:21 | *this [b_] | provenance | | +| complex.cpp:10:20:10:21 | *this [b_] | complex.cpp:10:20:10:21 | b_ | provenance | | +| complex.cpp:10:20:10:21 | b_ | complex.cpp:10:7:10:7 | *b | provenance | | +| complex.cpp:11:17:11:17 | a | complex.cpp:11:22:11:27 | ... = ... | provenance | | +| complex.cpp:11:22:11:27 | ... = ... | complex.cpp:11:22:11:23 | *this [post update] [a_] | provenance | | +| complex.cpp:12:17:12:17 | b | complex.cpp:12:22:12:27 | ... = ... | provenance | | +| complex.cpp:12:22:12:27 | ... = ... | complex.cpp:12:22:12:23 | *this [post update] [b_] | provenance | | +| complex.cpp:40:17:40:17 | *b [inner, f, a_] | complex.cpp:42:8:42:8 | *b [inner, f, a_] | provenance | | +| complex.cpp:40:17:40:17 | *b [inner, f, b_] | complex.cpp:43:8:43:8 | *b [inner, f, b_] | provenance | | +| complex.cpp:42:8:42:8 | *b [inner, f, a_] | complex.cpp:42:10:42:14 | *inner [f, a_] | provenance | | +| complex.cpp:42:10:42:14 | *inner [f, a_] | complex.cpp:42:16:42:16 | *f [a_] | provenance | | +| complex.cpp:42:16:42:16 | *f [a_] | complex.cpp:9:7:9:7 | *this [a_] | provenance | | +| complex.cpp:42:16:42:16 | *f [a_] | complex.cpp:42:18:42:18 | call to a | provenance | | +| complex.cpp:43:8:43:8 | *b [inner, f, b_] | complex.cpp:43:10:43:14 | *inner [f, b_] | provenance | | +| complex.cpp:43:10:43:14 | *inner [f, b_] | complex.cpp:43:16:43:16 | *f [b_] | provenance | | +| complex.cpp:43:16:43:16 | *f [b_] | complex.cpp:10:7:10:7 | *this [b_] | provenance | | +| complex.cpp:43:16:43:16 | *f [b_] | complex.cpp:43:18:43:18 | call to b | provenance | | +| complex.cpp:53:3:53:4 | *b1 [post update] [inner, f, a_] | complex.cpp:59:7:59:8 | *b1 [inner, f, a_] | provenance | | +| complex.cpp:53:6:53:10 | *inner [post update] [f, a_] | complex.cpp:53:3:53:4 | *b1 [post update] [inner, f, a_] | provenance | | +| complex.cpp:53:12:53:12 | setA output argument [a_] | complex.cpp:53:6:53:10 | *inner [post update] [f, a_] | provenance | | +| complex.cpp:53:19:53:28 | call to user_input | complex.cpp:11:17:11:17 | a | provenance | | +| complex.cpp:53:19:53:28 | call to user_input | complex.cpp:53:12:53:12 | setA output argument [a_] | provenance | | +| complex.cpp:54:3:54:4 | *b2 [post update] [inner, f, b_] | complex.cpp:62:7:62:8 | *b2 [inner, f, b_] | provenance | | +| complex.cpp:54:6:54:10 | *inner [post update] [f, b_] | complex.cpp:54:3:54:4 | *b2 [post update] [inner, f, b_] | provenance | | +| complex.cpp:54:12:54:12 | setB output argument [b_] | complex.cpp:54:6:54:10 | *inner [post update] [f, b_] | provenance | | +| complex.cpp:54:19:54:28 | call to user_input | complex.cpp:12:17:12:17 | b | provenance | | +| complex.cpp:54:19:54:28 | call to user_input | complex.cpp:54:12:54:12 | setB output argument [b_] | provenance | | +| complex.cpp:55:3:55:4 | *b3 [post update] [inner, f, a_] | complex.cpp:65:7:65:8 | *b3 [inner, f, a_] | provenance | | +| complex.cpp:55:6:55:10 | *inner [post update] [f, a_] | complex.cpp:55:3:55:4 | *b3 [post update] [inner, f, a_] | provenance | | +| complex.cpp:55:12:55:12 | setA output argument [a_] | complex.cpp:55:6:55:10 | *inner [post update] [f, a_] | provenance | | +| complex.cpp:55:19:55:28 | call to user_input | complex.cpp:11:17:11:17 | a | provenance | | +| complex.cpp:55:19:55:28 | call to user_input | complex.cpp:55:12:55:12 | setA output argument [a_] | provenance | | +| complex.cpp:56:3:56:4 | *b3 [post update] [inner, f, b_] | complex.cpp:65:7:65:8 | *b3 [inner, f, b_] | provenance | | +| complex.cpp:56:6:56:10 | *inner [post update] [f, b_] | complex.cpp:56:3:56:4 | *b3 [post update] [inner, f, b_] | provenance | | +| complex.cpp:56:12:56:12 | setB output argument [b_] | complex.cpp:56:6:56:10 | *inner [post update] [f, b_] | provenance | | +| complex.cpp:56:19:56:28 | call to user_input | complex.cpp:12:17:12:17 | b | provenance | | +| complex.cpp:56:19:56:28 | call to user_input | complex.cpp:56:12:56:12 | setB output argument [b_] | provenance | | +| complex.cpp:59:7:59:8 | *b1 [inner, f, a_] | complex.cpp:40:17:40:17 | *b [inner, f, a_] | provenance | | +| complex.cpp:62:7:62:8 | *b2 [inner, f, b_] | complex.cpp:40:17:40:17 | *b [inner, f, b_] | provenance | | +| complex.cpp:65:7:65:8 | *b3 [inner, f, a_] | complex.cpp:40:17:40:17 | *b [inner, f, a_] | provenance | | +| complex.cpp:65:7:65:8 | *b3 [inner, f, b_] | complex.cpp:40:17:40:17 | *b [inner, f, b_] | provenance | | +| conflated.cpp:10:3:10:22 | ... = ... | conflated.cpp:10:4:10:5 | *ra [post update] [*p] | provenance | | +| conflated.cpp:10:4:10:5 | *ra [post update] [*p] | conflated.cpp:11:9:11:10 | *ra [*p] | provenance | | +| conflated.cpp:10:11:10:20 | call to user_input | conflated.cpp:10:3:10:22 | ... = ... | provenance | | +| conflated.cpp:11:9:11:10 | *ra [*p] | conflated.cpp:11:8:11:12 | * ... | provenance | | +| conflated.cpp:19:19:19:21 | argument_source output argument | conflated.cpp:20:8:20:10 | *raw | provenance | | +| conflated.cpp:29:3:29:4 | *pa [post update] [x] | conflated.cpp:30:8:30:9 | *pa [x] | provenance | | +| conflated.cpp:29:3:29:22 | ... = ... | conflated.cpp:29:3:29:4 | *pa [post update] [x] | provenance | | +| conflated.cpp:29:11:29:20 | call to user_input | conflated.cpp:29:3:29:22 | ... = ... | provenance | | +| conflated.cpp:30:8:30:9 | *pa [x] | conflated.cpp:30:12:30:12 | x | provenance | | +| conflated.cpp:36:3:36:4 | *pa [post update] [x] | conflated.cpp:37:8:37:9 | *pa [x] | provenance | | +| conflated.cpp:36:3:36:22 | ... = ... | conflated.cpp:36:3:36:4 | *pa [post update] [x] | provenance | | +| conflated.cpp:36:11:36:20 | call to user_input | conflated.cpp:36:3:36:22 | ... = ... | provenance | | +| conflated.cpp:37:8:37:9 | *pa [x] | conflated.cpp:37:12:37:12 | x | provenance | | +| conflated.cpp:54:3:54:4 | *ll [post update] [*next, y] | conflated.cpp:55:8:55:9 | *ll [*next, y] | provenance | | +| conflated.cpp:54:3:54:28 | ... = ... | conflated.cpp:54:7:54:10 | *next [post update] [y] | provenance | | +| conflated.cpp:54:7:54:10 | *next [post update] [y] | conflated.cpp:54:3:54:4 | *ll [post update] [*next, y] | provenance | | +| conflated.cpp:54:17:54:26 | call to user_input | conflated.cpp:54:3:54:28 | ... = ... | provenance | | +| conflated.cpp:55:8:55:9 | *ll [*next, y] | conflated.cpp:55:12:55:15 | *next [y] | provenance | | +| conflated.cpp:55:12:55:15 | *next [y] | conflated.cpp:55:18:55:18 | y | provenance | | +| conflated.cpp:60:3:60:4 | *ll [post update] [*next, y] | conflated.cpp:61:8:61:9 | *ll [*next, y] | provenance | | +| conflated.cpp:60:3:60:28 | ... = ... | conflated.cpp:60:7:60:10 | *next [post update] [y] | provenance | | +| conflated.cpp:60:7:60:10 | *next [post update] [y] | conflated.cpp:60:3:60:4 | *ll [post update] [*next, y] | provenance | | +| conflated.cpp:60:17:60:26 | call to user_input | conflated.cpp:60:3:60:28 | ... = ... | provenance | | +| conflated.cpp:61:8:61:9 | *ll [*next, y] | conflated.cpp:61:12:61:15 | *next [y] | provenance | | +| conflated.cpp:61:12:61:15 | *next [y] | conflated.cpp:61:18:61:18 | y | provenance | | +| constructors.cpp:18:9:18:9 | *this [a_] | constructors.cpp:18:22:18:23 | *this [a_] | provenance | | +| constructors.cpp:18:22:18:23 | *this [a_] | constructors.cpp:18:22:18:23 | a_ | provenance | | +| constructors.cpp:18:22:18:23 | a_ | constructors.cpp:18:9:18:9 | *a | provenance | | +| constructors.cpp:19:9:19:9 | *this [b_] | constructors.cpp:19:22:19:23 | *this [b_] | provenance | | +| constructors.cpp:19:22:19:23 | *this [b_] | constructors.cpp:19:22:19:23 | b_ | provenance | | +| constructors.cpp:19:22:19:23 | b_ | constructors.cpp:19:9:19:9 | *b | provenance | | +| constructors.cpp:23:13:23:13 | a | constructors.cpp:23:28:23:28 | a | provenance | | +| constructors.cpp:23:20:23:20 | b | constructors.cpp:23:35:23:35 | b | provenance | | +| constructors.cpp:23:28:23:28 | a | constructors.cpp:23:5:23:7 | *this [post update] [a_] | provenance | | +| constructors.cpp:23:35:23:35 | b | constructors.cpp:23:5:23:7 | *this [post update] [b_] | provenance | | +| constructors.cpp:26:15:26:15 | *f [a_] | constructors.cpp:28:10:28:10 | *f [a_] | provenance | | +| constructors.cpp:26:15:26:15 | *f [b_] | constructors.cpp:29:10:29:10 | *f [b_] | provenance | | +| constructors.cpp:28:10:28:10 | *f [a_] | constructors.cpp:18:9:18:9 | *this [a_] | provenance | | +| constructors.cpp:28:10:28:10 | *f [a_] | constructors.cpp:28:12:28:12 | call to a | provenance | | +| constructors.cpp:29:10:29:10 | *f [b_] | constructors.cpp:19:9:19:9 | *this [b_] | provenance | | +| constructors.cpp:29:10:29:10 | *f [b_] | constructors.cpp:29:12:29:12 | call to b | provenance | | +| constructors.cpp:34:9:34:9 | call to Foo [a_] | constructors.cpp:40:9:40:9 | *f [a_] | provenance | | +| constructors.cpp:34:11:34:20 | call to user_input | constructors.cpp:23:13:23:13 | a | provenance | | +| constructors.cpp:34:11:34:20 | call to user_input | constructors.cpp:34:9:34:9 | call to Foo [a_] | provenance | | +| constructors.cpp:35:9:35:9 | call to Foo [b_] | constructors.cpp:43:9:43:9 | *g [b_] | provenance | | +| constructors.cpp:35:14:35:23 | call to user_input | constructors.cpp:23:20:23:20 | b | provenance | | +| constructors.cpp:35:14:35:23 | call to user_input | constructors.cpp:35:9:35:9 | call to Foo [b_] | provenance | | +| constructors.cpp:36:9:36:9 | call to Foo [a_] | constructors.cpp:46:9:46:9 | *h [a_] | provenance | | +| constructors.cpp:36:9:36:9 | call to Foo [b_] | constructors.cpp:46:9:46:9 | *h [b_] | provenance | | +| constructors.cpp:36:11:36:20 | call to user_input | constructors.cpp:23:13:23:13 | a | provenance | | +| constructors.cpp:36:11:36:20 | call to user_input | constructors.cpp:36:9:36:9 | call to Foo [a_] | provenance | | +| constructors.cpp:36:25:36:34 | call to user_input | constructors.cpp:23:20:23:20 | b | provenance | | +| constructors.cpp:36:25:36:34 | call to user_input | constructors.cpp:36:9:36:9 | call to Foo [b_] | provenance | | +| constructors.cpp:40:9:40:9 | *f [a_] | constructors.cpp:26:15:26:15 | *f [a_] | provenance | | +| constructors.cpp:43:9:43:9 | *g [b_] | constructors.cpp:26:15:26:15 | *f [b_] | provenance | | +| constructors.cpp:46:9:46:9 | *h [a_] | constructors.cpp:26:15:26:15 | *f [a_] | provenance | | +| constructors.cpp:46:9:46:9 | *h [b_] | constructors.cpp:26:15:26:15 | *f [b_] | provenance | | +| qualifiers.cpp:9:21:9:25 | value | qualifiers.cpp:9:30:9:44 | ... = ... | provenance | | +| qualifiers.cpp:9:30:9:44 | ... = ... | qualifiers.cpp:9:30:9:33 | *this [post update] [a] | provenance | | +| qualifiers.cpp:12:40:12:44 | value | qualifiers.cpp:12:49:12:64 | ... = ... | provenance | | +| qualifiers.cpp:12:49:12:64 | ... = ... | qualifiers.cpp:12:49:12:53 | *inner [post update] [a] | provenance | | +| qualifiers.cpp:13:42:13:46 | value | qualifiers.cpp:13:51:13:65 | ... = ... | provenance | | +| qualifiers.cpp:13:51:13:65 | ... = ... | qualifiers.cpp:13:51:13:55 | *inner [post update] [a] | provenance | | +| qualifiers.cpp:22:5:22:9 | getInner output argument [*inner, a] | qualifiers.cpp:23:10:23:14 | *outer [*inner, a] | provenance | | +| qualifiers.cpp:22:5:22:38 | ... = ... | qualifiers.cpp:22:11:22:18 | *call to getInner [post update] [a] | provenance | | +| qualifiers.cpp:22:11:22:18 | *call to getInner [post update] [a] | qualifiers.cpp:22:5:22:9 | getInner output argument [*inner, a] | provenance | | +| qualifiers.cpp:22:27:22:36 | call to user_input | qualifiers.cpp:22:5:22:38 | ... = ... | provenance | | +| qualifiers.cpp:23:10:23:14 | *outer [*inner, a] | qualifiers.cpp:23:16:23:20 | *inner [a] | provenance | | +| qualifiers.cpp:23:16:23:20 | *inner [a] | qualifiers.cpp:23:23:23:23 | a | provenance | | +| qualifiers.cpp:27:5:27:9 | getInner output argument [*inner, a] | qualifiers.cpp:28:10:28:14 | *outer [*inner, a] | provenance | | +| qualifiers.cpp:27:11:27:18 | setA output argument [a] | qualifiers.cpp:27:5:27:9 | getInner output argument [*inner, a] | provenance | | +| qualifiers.cpp:27:28:27:37 | call to user_input | qualifiers.cpp:9:21:9:25 | value | provenance | | +| qualifiers.cpp:27:28:27:37 | call to user_input | qualifiers.cpp:27:11:27:18 | setA output argument [a] | provenance | | +| qualifiers.cpp:28:10:28:14 | *outer [*inner, a] | qualifiers.cpp:28:16:28:20 | *inner [a] | provenance | | +| qualifiers.cpp:28:16:28:20 | *inner [a] | qualifiers.cpp:28:23:28:23 | a | provenance | | +| qualifiers.cpp:32:17:32:21 | getInner output argument [*inner, a] | qualifiers.cpp:33:10:33:14 | *outer [*inner, a] | provenance | | +| qualifiers.cpp:32:23:32:30 | pointerSetA output argument [a] | qualifiers.cpp:32:17:32:21 | getInner output argument [*inner, a] | provenance | | +| qualifiers.cpp:32:35:32:44 | call to user_input | qualifiers.cpp:12:40:12:44 | value | provenance | | +| qualifiers.cpp:32:35:32:44 | call to user_input | qualifiers.cpp:32:23:32:30 | pointerSetA output argument [a] | provenance | | +| qualifiers.cpp:33:10:33:14 | *outer [*inner, a] | qualifiers.cpp:33:16:33:20 | *inner [a] | provenance | | +| qualifiers.cpp:33:16:33:20 | *inner [a] | qualifiers.cpp:33:23:33:23 | a | provenance | | +| qualifiers.cpp:37:19:37:35 | referenceSetA output argument [a] | qualifiers.cpp:37:20:37:24 | getInner output argument [*inner, a] | provenance | | +| qualifiers.cpp:37:20:37:24 | getInner output argument [*inner, a] | qualifiers.cpp:38:10:38:14 | *outer [*inner, a] | provenance | | +| qualifiers.cpp:37:38:37:47 | call to user_input | qualifiers.cpp:13:42:13:46 | value | provenance | | +| qualifiers.cpp:37:38:37:47 | call to user_input | qualifiers.cpp:37:19:37:35 | referenceSetA output argument [a] | provenance | | +| qualifiers.cpp:38:10:38:14 | *outer [*inner, a] | qualifiers.cpp:38:16:38:20 | *inner [a] | provenance | | +| qualifiers.cpp:38:16:38:20 | *inner [a] | qualifiers.cpp:38:23:38:23 | a | provenance | | +| qualifiers.cpp:42:5:42:40 | ... = ... | qualifiers.cpp:42:6:42:22 | ** ... [post update] [a] | provenance | | +| qualifiers.cpp:42:6:42:22 | ** ... [post update] [a] | qualifiers.cpp:42:7:42:11 | getInner output argument [*inner, a] | provenance | | +| qualifiers.cpp:42:7:42:11 | getInner output argument [*inner, a] | qualifiers.cpp:43:10:43:14 | *outer [*inner, a] | provenance | | +| qualifiers.cpp:42:29:42:38 | call to user_input | qualifiers.cpp:42:5:42:40 | ... = ... | provenance | | +| qualifiers.cpp:43:10:43:14 | *outer [*inner, a] | qualifiers.cpp:43:16:43:20 | *inner [a] | provenance | | +| qualifiers.cpp:43:16:43:20 | *inner [a] | qualifiers.cpp:43:23:43:23 | a | provenance | | +| qualifiers.cpp:47:5:47:42 | ... = ... | qualifiers.cpp:47:15:47:22 | *call to getInner [post update] [a] | provenance | | +| qualifiers.cpp:47:6:47:11 | getInner output argument [*inner, a] | qualifiers.cpp:48:10:48:14 | *outer [*inner, a] | provenance | | +| qualifiers.cpp:47:15:47:22 | *call to getInner [post update] [a] | qualifiers.cpp:47:6:47:11 | getInner output argument [*inner, a] | provenance | | +| qualifiers.cpp:47:31:47:40 | call to user_input | qualifiers.cpp:47:5:47:42 | ... = ... | provenance | | +| qualifiers.cpp:48:10:48:14 | *outer [*inner, a] | qualifiers.cpp:48:16:48:20 | *inner [a] | provenance | | +| qualifiers.cpp:48:16:48:20 | *inner [a] | qualifiers.cpp:48:23:48:23 | a | provenance | | +| realistic.cpp:53:9:53:11 | *foo [post update] [bar, *baz, userInput, bufferLen] | realistic.cpp:61:21:61:23 | *foo [bar, *baz, userInput, bufferLen] | provenance | | +| realistic.cpp:53:9:53:18 | *access to array [post update] [*baz, userInput, bufferLen] | realistic.cpp:53:9:53:11 | *foo [post update] [bar, *baz, userInput, bufferLen] | provenance | | +| realistic.cpp:53:9:53:66 | ... = ... | realistic.cpp:53:25:53:33 | *userInput [post update] [bufferLen] | provenance | | +| realistic.cpp:53:20:53:22 | *baz [post update] [userInput, bufferLen] | realistic.cpp:53:9:53:18 | *access to array [post update] [*baz, userInput, bufferLen] | provenance | | +| realistic.cpp:53:25:53:33 | *userInput [post update] [bufferLen] | realistic.cpp:53:20:53:22 | *baz [post update] [userInput, bufferLen] | provenance | | +| realistic.cpp:53:47:53:66 | call to user_input | realistic.cpp:53:9:53:66 | ... = ... | provenance | | +| realistic.cpp:61:21:61:23 | *foo [bar, *baz, userInput, bufferLen] | realistic.cpp:61:21:61:30 | *access to array [*baz, userInput, bufferLen] | provenance | | +| realistic.cpp:61:21:61:30 | *access to array [*baz, userInput, bufferLen] | realistic.cpp:61:32:61:34 | *baz [userInput, bufferLen] | provenance | | +| realistic.cpp:61:32:61:34 | *baz [userInput, bufferLen] | realistic.cpp:61:37:61:45 | *userInput [bufferLen] | provenance | | +| realistic.cpp:61:37:61:45 | *userInput [bufferLen] | realistic.cpp:61:14:61:55 | bufferLen | provenance | | +| simple.cpp:18:9:18:9 | *this [a_] | simple.cpp:18:22:18:23 | *this [a_] | provenance | | +| simple.cpp:18:22:18:23 | *this [a_] | simple.cpp:18:22:18:23 | a_ | provenance | | +| simple.cpp:18:22:18:23 | a_ | simple.cpp:18:9:18:9 | *a | provenance | | +| simple.cpp:19:9:19:9 | *this [b_] | simple.cpp:19:22:19:23 | *this [b_] | provenance | | +| simple.cpp:19:22:19:23 | *this [b_] | simple.cpp:19:22:19:23 | b_ | provenance | | +| simple.cpp:19:22:19:23 | b_ | simple.cpp:19:9:19:9 | *b | provenance | | +| simple.cpp:20:19:20:19 | a | simple.cpp:20:24:20:29 | ... = ... | provenance | | +| simple.cpp:20:24:20:29 | ... = ... | simple.cpp:20:24:20:25 | *this [post update] [a_] | provenance | | +| simple.cpp:21:19:21:19 | b | simple.cpp:21:24:21:29 | ... = ... | provenance | | +| simple.cpp:21:24:21:29 | ... = ... | simple.cpp:21:24:21:25 | *this [post update] [b_] | provenance | | +| simple.cpp:26:15:26:15 | *f [a_] | simple.cpp:28:10:28:10 | *f [a_] | provenance | | +| simple.cpp:26:15:26:15 | *f [b_] | simple.cpp:29:10:29:10 | *f [b_] | provenance | | +| simple.cpp:28:10:28:10 | *f [a_] | simple.cpp:18:9:18:9 | *this [a_] | provenance | | +| simple.cpp:28:10:28:10 | *f [a_] | simple.cpp:28:12:28:12 | call to a | provenance | | +| simple.cpp:29:10:29:10 | *f [b_] | simple.cpp:19:9:19:9 | *this [b_] | provenance | | +| simple.cpp:29:10:29:10 | *f [b_] | simple.cpp:29:12:29:12 | call to b | provenance | | +| simple.cpp:39:5:39:5 | setA output argument [a_] | simple.cpp:45:9:45:9 | *f [a_] | provenance | | +| simple.cpp:39:12:39:21 | call to user_input | simple.cpp:20:19:20:19 | a | provenance | | +| simple.cpp:39:12:39:21 | call to user_input | simple.cpp:39:5:39:5 | setA output argument [a_] | provenance | | +| simple.cpp:40:5:40:5 | setB output argument [b_] | simple.cpp:48:9:48:9 | *g [b_] | provenance | | +| simple.cpp:40:12:40:21 | call to user_input | simple.cpp:21:19:21:19 | b | provenance | | +| simple.cpp:40:12:40:21 | call to user_input | simple.cpp:40:5:40:5 | setB output argument [b_] | provenance | | +| simple.cpp:41:5:41:5 | setA output argument [a_] | simple.cpp:51:9:51:9 | *h [a_] | provenance | | +| simple.cpp:41:12:41:21 | call to user_input | simple.cpp:20:19:20:19 | a | provenance | | +| simple.cpp:41:12:41:21 | call to user_input | simple.cpp:41:5:41:5 | setA output argument [a_] | provenance | | +| simple.cpp:42:5:42:5 | setB output argument [b_] | simple.cpp:51:9:51:9 | *h [b_] | provenance | | +| simple.cpp:42:12:42:21 | call to user_input | simple.cpp:21:19:21:19 | b | provenance | | +| simple.cpp:42:12:42:21 | call to user_input | simple.cpp:42:5:42:5 | setB output argument [b_] | provenance | | +| simple.cpp:45:9:45:9 | *f [a_] | simple.cpp:26:15:26:15 | *f [a_] | provenance | | +| simple.cpp:48:9:48:9 | *g [b_] | simple.cpp:26:15:26:15 | *f [b_] | provenance | | +| simple.cpp:51:9:51:9 | *h [a_] | simple.cpp:26:15:26:15 | *f [a_] | provenance | | +| simple.cpp:51:9:51:9 | *h [b_] | simple.cpp:26:15:26:15 | *f [b_] | provenance | | +| simple.cpp:65:5:65:5 | *a [post update] [i] | simple.cpp:67:10:67:11 | *a2 [i] | provenance | | +| simple.cpp:65:5:65:22 | ... = ... | simple.cpp:65:5:65:5 | *a [post update] [i] | provenance | | +| simple.cpp:65:11:65:20 | call to user_input | simple.cpp:65:5:65:22 | ... = ... | provenance | | +| simple.cpp:67:10:67:11 | *a2 [i] | simple.cpp:67:13:67:13 | i | provenance | | +| simple.cpp:78:9:78:15 | *this [f2, f1] | simple.cpp:79:16:79:17 | *this [f2, f1] | provenance | | +| simple.cpp:79:16:79:17 | *f2 [f1] | simple.cpp:79:19:79:20 | f1 | provenance | | +| simple.cpp:79:16:79:17 | *this [f2, f1] | simple.cpp:79:16:79:17 | *f2 [f1] | provenance | | +| simple.cpp:79:19:79:20 | f1 | simple.cpp:78:9:78:15 | *getf2f1 | provenance | | +| simple.cpp:83:9:83:10 | *f2 [post update] [f1] | simple.cpp:83:9:83:10 | *this [post update] [f2, f1] | provenance | | +| simple.cpp:83:9:83:10 | *this [post update] [f2, f1] | simple.cpp:84:14:84:20 | *this [f2, f1] | provenance | | +| simple.cpp:83:9:83:28 | ... = ... | simple.cpp:83:9:83:10 | *f2 [post update] [f1] | provenance | | +| simple.cpp:83:17:83:26 | call to user_input | simple.cpp:83:9:83:28 | ... = ... | provenance | | +| simple.cpp:84:14:84:20 | *this [f2, f1] | simple.cpp:78:9:78:15 | *this [f2, f1] | provenance | | +| simple.cpp:84:14:84:20 | *this [f2, f1] | simple.cpp:84:14:84:20 | call to getf2f1 | provenance | | +| simple.cpp:92:5:92:5 | *a [post update] [i] | simple.cpp:94:10:94:11 | *a2 [i] | provenance | | +| simple.cpp:92:5:92:22 | ... = ... | simple.cpp:92:5:92:5 | *a [post update] [i] | provenance | | +| simple.cpp:92:11:92:20 | call to user_input | simple.cpp:92:5:92:22 | ... = ... | provenance | | +| simple.cpp:94:10:94:11 | *a2 [i] | simple.cpp:94:13:94:13 | i | provenance | | +| simple.cpp:103:24:103:24 | x | simple.cpp:104:14:104:14 | x | provenance | | +| simple.cpp:108:17:108:26 | call to user_input | simple.cpp:109:43:109:43 | x | provenance | | +| simple.cpp:109:43:109:43 | x | simple.cpp:103:24:103:24 | x | provenance | | +| struct_init.c:14:24:14:25 | *ab [a] | struct_init.c:15:8:15:9 | *ab [a] | provenance | | +| struct_init.c:15:8:15:9 | *ab [a] | struct_init.c:15:12:15:12 | a | provenance | | +| struct_init.c:20:13:20:14 | *definition of ab [a] | struct_init.c:22:8:22:9 | *ab [a] | provenance | | +| struct_init.c:20:13:20:14 | *definition of ab [a] | struct_init.c:24:10:24:12 | *& ... [a] | provenance | | +| struct_init.c:20:13:20:14 | *definition of ab [a] | struct_init.c:28:5:28:7 | *& ... [a] | provenance | | +| struct_init.c:20:13:20:14 | *definition of ab [post update] [a] | struct_init.c:20:13:20:14 | *definition of ab [a] | provenance | | +| struct_init.c:20:20:20:29 | call to user_input | struct_init.c:20:13:20:14 | *definition of ab [post update] [a] | provenance | | +| struct_init.c:20:20:20:29 | call to user_input | struct_init.c:20:20:20:29 | call to user_input | provenance | | +| struct_init.c:22:8:22:9 | *ab [a] | struct_init.c:22:11:22:11 | a | provenance | | +| struct_init.c:24:10:24:12 | *& ... [a] | struct_init.c:14:24:14:25 | *ab [a] | provenance | | +| struct_init.c:26:16:26:20 | *definition of outer [nestedAB, a] | struct_init.c:31:8:31:12 | *outer [nestedAB, a] | provenance | | +| struct_init.c:26:16:26:20 | *definition of outer [nestedAB, a] | struct_init.c:36:11:36:15 | *outer [nestedAB, a] | provenance | | +| struct_init.c:26:16:26:20 | *definition of outer [post update] [*pointerAB, a] | struct_init.c:33:8:33:12 | *outer [*pointerAB, a] | provenance | | +| struct_init.c:26:16:26:20 | *definition of outer [post update] [nestedAB, a] | struct_init.c:26:16:26:20 | *definition of outer [nestedAB, a] | provenance | | +| struct_init.c:26:23:29:3 | *{...} [post update] [a] | struct_init.c:26:16:26:20 | *definition of outer [post update] [nestedAB, a] | provenance | | +| struct_init.c:27:7:27:16 | call to user_input | struct_init.c:26:23:29:3 | *{...} [post update] [a] | provenance | | +| struct_init.c:27:7:27:16 | call to user_input | struct_init.c:27:7:27:16 | call to user_input | provenance | | +| struct_init.c:28:5:28:7 | *& ... [a] | struct_init.c:26:16:26:20 | *definition of outer [post update] [*pointerAB, a] | provenance | | +| struct_init.c:31:8:31:12 | *outer [nestedAB, a] | struct_init.c:31:14:31:21 | *nestedAB [a] | provenance | | +| struct_init.c:31:14:31:21 | *nestedAB [a] | struct_init.c:31:23:31:23 | a | provenance | | +| struct_init.c:33:8:33:12 | *outer [*pointerAB, a] | struct_init.c:33:14:33:22 | *pointerAB [a] | provenance | | +| struct_init.c:33:14:33:22 | *pointerAB [a] | struct_init.c:33:25:33:25 | a | provenance | | +| struct_init.c:36:10:36:24 | *& ... [a] | struct_init.c:14:24:14:25 | *ab [a] | provenance | | +| struct_init.c:36:11:36:15 | *outer [nestedAB, a] | struct_init.c:36:10:36:24 | *& ... [a] | provenance | | +| struct_init.c:40:13:40:14 | *definition of ab [a] | struct_init.c:43:5:43:7 | *& ... [a] | provenance | | +| struct_init.c:40:13:40:14 | *definition of ab [post update] [a] | struct_init.c:40:13:40:14 | *definition of ab [a] | provenance | | +| struct_init.c:40:20:40:29 | call to user_input | struct_init.c:40:13:40:14 | *definition of ab [post update] [a] | provenance | | +| struct_init.c:40:20:40:29 | call to user_input | struct_init.c:40:20:40:29 | call to user_input | provenance | | +| struct_init.c:41:16:41:20 | *definition of outer [post update] [*pointerAB, a] | struct_init.c:46:10:46:14 | *outer [*pointerAB, a] | provenance | | +| struct_init.c:43:5:43:7 | *& ... [a] | struct_init.c:41:16:41:20 | *definition of outer [post update] [*pointerAB, a] | provenance | | +| struct_init.c:46:10:46:14 | *outer [*pointerAB, a] | struct_init.c:46:16:46:24 | *pointerAB [a] | provenance | | +| struct_init.c:46:16:46:24 | *pointerAB [a] | struct_init.c:14:24:14:25 | *ab [a] | provenance | | nodes | A.cpp:23:10:23:10 | c | semmle.label | c | | A.cpp:25:7:25:10 | *this [post update] [c] | semmle.label | *this [post update] [c] | diff --git a/cpp/ql/test/library-tests/dataflow/fields/path-flow.expected b/cpp/ql/test/library-tests/dataflow/fields/path-flow.expected index 78b3832ea92e..3eebd355b14b 100644 --- a/cpp/ql/test/library-tests/dataflow/fields/path-flow.expected +++ b/cpp/ql/test/library-tests/dataflow/fields/path-flow.expected @@ -1,751 +1,751 @@ edges -| A.cpp:23:10:23:10 | c | A.cpp:25:7:25:17 | ... = ... | -| A.cpp:25:7:25:17 | ... = ... | A.cpp:25:7:25:10 | this [post update] [c] | -| A.cpp:27:17:27:17 | c | A.cpp:27:22:27:32 | ... = ... | -| A.cpp:27:22:27:32 | ... = ... | A.cpp:27:22:27:25 | this [post update] [c] | -| A.cpp:28:8:28:10 | this [c] | A.cpp:28:23:28:26 | this [c] | -| A.cpp:28:23:28:26 | this [c] | A.cpp:28:29:28:29 | c | -| A.cpp:29:23:29:23 | c | A.cpp:31:20:31:20 | c | -| A.cpp:31:14:31:21 | call to B [c] | A.cpp:31:14:31:21 | new [c] | -| A.cpp:31:20:31:20 | c | A.cpp:23:10:23:10 | c | -| A.cpp:31:20:31:20 | c | A.cpp:31:14:31:21 | call to B [c] | -| A.cpp:41:5:41:6 | ref arg ct | A.cpp:43:11:43:12 | ct | -| A.cpp:41:15:41:21 | new | A.cpp:41:5:41:6 | ref arg ct | -| A.cpp:43:11:43:12 | ct | A.cpp:43:10:43:12 | & ... | -| A.cpp:47:12:47:18 | new | A.cpp:48:20:48:20 | c | -| A.cpp:48:12:48:18 | call to make [c] | A.cpp:49:10:49:10 | b [c] | -| A.cpp:48:20:48:20 | c | A.cpp:29:23:29:23 | c | -| A.cpp:48:20:48:20 | c | A.cpp:48:12:48:18 | call to make [c] | -| A.cpp:49:10:49:10 | b [c] | A.cpp:49:13:49:13 | c | -| A.cpp:55:5:55:5 | ref arg b [c] | A.cpp:56:10:56:10 | b [c] | -| A.cpp:55:12:55:19 | new | A.cpp:27:17:27:17 | c | -| A.cpp:55:12:55:19 | new | A.cpp:55:5:55:5 | ref arg b [c] | -| A.cpp:56:10:56:10 | b [c] | A.cpp:28:8:28:10 | this [c] | -| A.cpp:56:10:56:10 | b [c] | A.cpp:56:13:56:15 | call to get | -| A.cpp:57:11:57:24 | call to B [c] | A.cpp:57:11:57:24 | new [c] | -| A.cpp:57:11:57:24 | new [c] | A.cpp:28:8:28:10 | this [c] | -| A.cpp:57:11:57:24 | new [c] | A.cpp:57:28:57:30 | call to get | -| A.cpp:57:17:57:23 | new | A.cpp:23:10:23:10 | c | -| A.cpp:57:17:57:23 | new | A.cpp:57:11:57:24 | call to B [c] | -| A.cpp:64:10:64:15 | call to setOnB [c] | A.cpp:66:10:66:11 | b2 [c] | -| A.cpp:64:21:64:28 | new | A.cpp:64:10:64:15 | call to setOnB [c] | -| A.cpp:64:21:64:28 | new | A.cpp:85:26:85:26 | c | -| A.cpp:66:10:66:11 | b2 [c] | A.cpp:66:14:66:14 | c | -| A.cpp:73:10:73:19 | call to setOnBWrap [c] | A.cpp:75:10:75:11 | b2 [c] | -| A.cpp:73:25:73:32 | new | A.cpp:73:10:73:19 | call to setOnBWrap [c] | -| A.cpp:73:25:73:32 | new | A.cpp:78:27:78:27 | c | -| A.cpp:75:10:75:11 | b2 [c] | A.cpp:75:14:75:14 | c | -| A.cpp:78:27:78:27 | c | A.cpp:81:21:81:21 | c | -| A.cpp:81:10:81:15 | call to setOnB [c] | A.cpp:82:12:82:24 | ... ? ... : ... [c] | -| A.cpp:81:21:81:21 | c | A.cpp:81:10:81:15 | call to setOnB [c] | -| A.cpp:81:21:81:21 | c | A.cpp:85:26:85:26 | c | -| A.cpp:85:26:85:26 | c | A.cpp:90:15:90:15 | c | -| A.cpp:90:7:90:8 | ref arg b2 [c] | A.cpp:91:14:91:15 | b2 [c] | -| A.cpp:90:15:90:15 | c | A.cpp:27:17:27:17 | c | -| A.cpp:90:15:90:15 | c | A.cpp:90:7:90:8 | ref arg b2 [c] | -| A.cpp:98:12:98:18 | new | A.cpp:100:5:100:13 | ... = ... | -| A.cpp:100:5:100:6 | c1 [post update] [a] | A.cpp:101:8:101:9 | c1 [a] | -| A.cpp:100:5:100:13 | ... = ... | A.cpp:100:5:100:6 | c1 [post update] [a] | -| A.cpp:101:8:101:9 | c1 [a] | A.cpp:103:14:103:14 | c [a] | -| A.cpp:103:14:103:14 | c [a] | A.cpp:107:12:107:13 | c1 [a] | -| A.cpp:103:14:103:14 | c [a] | A.cpp:120:12:120:13 | c1 [a] | -| A.cpp:107:12:107:13 | c1 [a] | A.cpp:107:16:107:16 | a | -| A.cpp:120:12:120:13 | c1 [a] | A.cpp:120:16:120:16 | a | -| A.cpp:124:14:124:14 | b [c] | A.cpp:131:8:131:8 | ref arg b [c] | -| A.cpp:126:5:126:5 | ref arg b [c] | A.cpp:124:14:124:14 | b [c] | -| A.cpp:126:5:126:5 | ref arg b [c] | A.cpp:131:8:131:8 | ref arg b [c] | -| A.cpp:126:12:126:18 | new | A.cpp:27:17:27:17 | c | -| A.cpp:126:12:126:18 | new | A.cpp:126:5:126:5 | ref arg b [c] | -| A.cpp:131:8:131:8 | ref arg b [c] | A.cpp:132:10:132:10 | b [c] | -| A.cpp:132:10:132:10 | b [c] | A.cpp:132:13:132:13 | c | -| A.cpp:140:13:140:13 | b | A.cpp:143:7:143:31 | ... = ... | -| A.cpp:140:13:140:13 | b [c] | A.cpp:151:18:151:18 | ref arg b [c] | -| A.cpp:142:7:142:7 | b [post update] [c] | A.cpp:140:13:140:13 | b [c] | -| A.cpp:142:7:142:7 | b [post update] [c] | A.cpp:143:7:143:31 | ... = ... [c] | -| A.cpp:142:7:142:7 | b [post update] [c] | A.cpp:151:18:151:18 | ref arg b [c] | -| A.cpp:142:7:142:20 | ... = ... | A.cpp:142:7:142:7 | b [post update] [c] | -| A.cpp:142:14:142:20 | new | A.cpp:142:7:142:20 | ... = ... | -| A.cpp:143:7:143:10 | this [post update] [b, c] | A.cpp:151:12:151:24 | call to D [b, c] | -| A.cpp:143:7:143:10 | this [post update] [b] | A.cpp:151:12:151:24 | call to D [b] | -| A.cpp:143:7:143:31 | ... = ... | A.cpp:143:7:143:10 | this [post update] [b] | -| A.cpp:143:7:143:31 | ... = ... | A.cpp:143:7:143:10 | this [post update] [b] | -| A.cpp:143:7:143:31 | ... = ... [c] | A.cpp:143:7:143:10 | this [post update] [b, c] | -| A.cpp:143:25:143:31 | new | A.cpp:143:7:143:31 | ... = ... | -| A.cpp:150:12:150:18 | new | A.cpp:151:18:151:18 | b | -| A.cpp:151:12:151:24 | call to D [b, c] | A.cpp:152:10:152:10 | d [b, c] | -| A.cpp:151:12:151:24 | call to D [b, c] | A.cpp:153:10:153:10 | d [b, c] | -| A.cpp:151:12:151:24 | call to D [b] | A.cpp:152:10:152:10 | d [b] | -| A.cpp:151:18:151:18 | b | A.cpp:140:13:140:13 | b | -| A.cpp:151:18:151:18 | b | A.cpp:151:12:151:24 | call to D [b] | -| A.cpp:151:18:151:18 | ref arg b [c] | A.cpp:154:10:154:10 | b [c] | -| A.cpp:152:10:152:10 | d [b, c] | A.cpp:152:13:152:13 | b [c] | -| A.cpp:152:10:152:10 | d [b] | A.cpp:152:13:152:13 | b | -| A.cpp:152:10:152:10 | d [post update] [b, c] | A.cpp:153:10:153:10 | d [b, c] | -| A.cpp:152:13:152:13 | b [c] | A.cpp:152:13:152:13 | ref arg b [c] | -| A.cpp:152:13:152:13 | b [c] | A.cpp:173:26:173:26 | o [c] | -| A.cpp:152:13:152:13 | ref arg b [c] | A.cpp:152:10:152:10 | d [post update] [b, c] | -| A.cpp:153:10:153:10 | d [b, c] | A.cpp:153:13:153:13 | b [c] | -| A.cpp:153:13:153:13 | b [c] | A.cpp:153:16:153:16 | c | -| A.cpp:154:10:154:10 | b [c] | A.cpp:154:13:154:13 | c | -| A.cpp:159:12:159:18 | new | A.cpp:160:29:160:29 | b | -| A.cpp:160:18:160:60 | call to MyList [head] | A.cpp:161:38:161:39 | l1 [head] | -| A.cpp:160:29:160:29 | b | A.cpp:160:18:160:60 | call to MyList [head] | -| A.cpp:160:29:160:29 | b | A.cpp:181:15:181:21 | newHead | -| A.cpp:161:18:161:40 | call to MyList [next, head] | A.cpp:162:38:162:39 | l2 [next, head] | -| A.cpp:161:38:161:39 | l1 [head] | A.cpp:161:18:161:40 | call to MyList [next, head] | -| A.cpp:161:38:161:39 | l1 [head] | A.cpp:181:32:181:35 | next [head] | -| A.cpp:162:18:162:40 | call to MyList [next, next, head] | A.cpp:165:10:165:11 | l3 [next, next, head] | -| A.cpp:162:18:162:40 | call to MyList [next, next, head] | A.cpp:167:44:167:44 | l [next, next, head] | -| A.cpp:162:38:162:39 | l2 [next, head] | A.cpp:162:18:162:40 | call to MyList [next, next, head] | -| A.cpp:162:38:162:39 | l2 [next, head] | A.cpp:181:32:181:35 | next [next, head] | -| A.cpp:165:10:165:11 | l3 [next, next, head] | A.cpp:165:14:165:17 | next [next, head] | -| A.cpp:165:10:165:11 | l3 [post update] [next, next, head] | A.cpp:167:44:167:44 | l [next, next, head] | -| A.cpp:165:14:165:17 | next [next, head] | A.cpp:165:20:165:23 | next [head] | -| A.cpp:165:14:165:17 | next [post update] [next, head] | A.cpp:165:10:165:11 | l3 [post update] [next, next, head] | -| A.cpp:165:20:165:23 | next [head] | A.cpp:165:26:165:29 | head | -| A.cpp:165:20:165:23 | next [head] | A.cpp:165:26:165:29 | head | -| A.cpp:165:20:165:23 | next [post update] [head] | A.cpp:165:14:165:17 | next [post update] [next, head] | -| A.cpp:165:26:165:29 | head | A.cpp:165:26:165:29 | ref arg head | -| A.cpp:165:26:165:29 | head | A.cpp:173:26:173:26 | o | -| A.cpp:165:26:165:29 | ref arg head | A.cpp:165:20:165:23 | next [post update] [head] | -| A.cpp:167:44:167:44 | l [next, head] | A.cpp:167:47:167:50 | next [head] | -| A.cpp:167:44:167:44 | l [next, next, head] | A.cpp:167:47:167:50 | next [next, head] | -| A.cpp:167:47:167:50 | next [head] | A.cpp:169:12:169:12 | l [head] | -| A.cpp:167:47:167:50 | next [next, head] | A.cpp:167:44:167:44 | l [next, head] | -| A.cpp:169:12:169:12 | l [head] | A.cpp:169:15:169:18 | head | -| A.cpp:173:26:173:26 | o | A.cpp:173:26:173:26 | o | -| A.cpp:173:26:173:26 | o [c] | A.cpp:173:26:173:26 | o [c] | -| A.cpp:181:15:181:21 | newHead | A.cpp:183:7:183:20 | ... = ... | -| A.cpp:181:32:181:35 | next [head] | A.cpp:184:7:184:23 | ... = ... [head] | -| A.cpp:181:32:181:35 | next [next, head] | A.cpp:184:7:184:23 | ... = ... [next, head] | -| A.cpp:183:7:183:20 | ... = ... | A.cpp:183:7:183:10 | this [post update] [head] | -| A.cpp:184:7:184:23 | ... = ... [head] | A.cpp:184:7:184:10 | this [post update] [next, head] | -| A.cpp:184:7:184:23 | ... = ... [next, head] | A.cpp:184:7:184:10 | this [post update] [next, next, head] | -| B.cpp:6:15:6:24 | new | B.cpp:7:25:7:25 | e | -| B.cpp:7:16:7:35 | call to Box1 [elem1] | B.cpp:8:25:8:26 | b1 [elem1] | -| B.cpp:7:25:7:25 | e | B.cpp:7:16:7:35 | call to Box1 [elem1] | -| B.cpp:7:25:7:25 | e | B.cpp:33:16:33:17 | e1 | -| B.cpp:8:16:8:27 | call to Box2 [box1, elem1] | B.cpp:9:10:9:11 | b2 [box1, elem1] | -| B.cpp:8:25:8:26 | b1 [elem1] | B.cpp:8:16:8:27 | call to Box2 [box1, elem1] | -| B.cpp:8:25:8:26 | b1 [elem1] | B.cpp:44:16:44:17 | b1 [elem1] | -| B.cpp:9:10:9:11 | b2 [box1, elem1] | B.cpp:9:14:9:17 | box1 [elem1] | -| B.cpp:9:14:9:17 | box1 [elem1] | B.cpp:9:20:9:24 | elem1 | -| B.cpp:15:15:15:27 | new | B.cpp:16:37:16:37 | e | -| B.cpp:16:16:16:38 | call to Box1 [elem2] | B.cpp:17:25:17:26 | b1 [elem2] | -| B.cpp:16:37:16:37 | e | B.cpp:16:16:16:38 | call to Box1 [elem2] | -| B.cpp:16:37:16:37 | e | B.cpp:33:26:33:27 | e2 | -| B.cpp:17:16:17:27 | call to Box2 [box1, elem2] | B.cpp:19:10:19:11 | b2 [box1, elem2] | -| B.cpp:17:25:17:26 | b1 [elem2] | B.cpp:17:16:17:27 | call to Box2 [box1, elem2] | -| B.cpp:17:25:17:26 | b1 [elem2] | B.cpp:44:16:44:17 | b1 [elem2] | -| B.cpp:19:10:19:11 | b2 [box1, elem2] | B.cpp:19:14:19:17 | box1 [elem2] | -| B.cpp:19:14:19:17 | box1 [elem2] | B.cpp:19:20:19:24 | elem2 | -| B.cpp:33:16:33:17 | e1 | B.cpp:35:7:35:22 | ... = ... | -| B.cpp:33:26:33:27 | e2 | B.cpp:36:7:36:22 | ... = ... | -| B.cpp:35:7:35:22 | ... = ... | B.cpp:35:7:35:10 | this [post update] [elem1] | -| B.cpp:36:7:36:22 | ... = ... | B.cpp:36:7:36:10 | this [post update] [elem2] | -| B.cpp:44:16:44:17 | b1 [elem1] | B.cpp:46:7:46:21 | ... = ... [elem1] | -| B.cpp:44:16:44:17 | b1 [elem2] | B.cpp:46:7:46:21 | ... = ... [elem2] | -| B.cpp:46:7:46:21 | ... = ... [elem1] | B.cpp:46:7:46:10 | this [post update] [box1, elem1] | -| B.cpp:46:7:46:21 | ... = ... [elem2] | B.cpp:46:7:46:10 | this [post update] [box1, elem2] | -| C.cpp:18:12:18:18 | call to C [s1] | C.cpp:19:5:19:5 | c [s1] | -| C.cpp:18:12:18:18 | call to C [s3] | C.cpp:19:5:19:5 | c [s3] | -| C.cpp:19:5:19:5 | c [s1] | C.cpp:27:8:27:11 | this [s1] | -| C.cpp:19:5:19:5 | c [s3] | C.cpp:27:8:27:11 | this [s3] | -| C.cpp:22:9:22:22 | constructor init of field s1 [post-this] [s1] | C.cpp:18:12:18:18 | call to C [s1] | -| C.cpp:22:12:22:21 | new | C.cpp:22:9:22:22 | constructor init of field s1 [post-this] [s1] | -| C.cpp:24:5:24:8 | this [post update] [s3] | C.cpp:18:12:18:18 | call to C [s3] | -| C.cpp:24:5:24:25 | ... = ... | C.cpp:24:5:24:8 | this [post update] [s3] | -| C.cpp:24:16:24:25 | new | C.cpp:24:5:24:25 | ... = ... | -| C.cpp:27:8:27:11 | this [s1] | C.cpp:29:10:29:11 | this [s1] | -| C.cpp:27:8:27:11 | this [s3] | C.cpp:31:10:31:11 | this [s3] | -| C.cpp:29:10:29:11 | this [s1] | C.cpp:29:10:29:11 | s1 | -| C.cpp:31:10:31:11 | this [s3] | C.cpp:31:10:31:11 | s3 | -| D.cpp:10:11:10:17 | this [elem] | D.cpp:10:30:10:33 | this [elem] | -| D.cpp:10:30:10:33 | this [elem] | D.cpp:10:30:10:33 | elem | -| D.cpp:11:24:11:24 | e | D.cpp:11:29:11:36 | ... = ... | -| D.cpp:11:29:11:36 | ... = ... | D.cpp:11:29:11:32 | this [post update] [elem] | -| D.cpp:17:11:17:17 | this [box, elem] | D.cpp:17:30:17:32 | this [box, elem] | -| D.cpp:17:30:17:32 | this [box, elem] | D.cpp:17:30:17:32 | box [elem] | -| D.cpp:21:30:21:31 | b2 [box, elem] | D.cpp:22:10:22:11 | b2 [box, elem] | -| D.cpp:22:10:22:11 | b2 [box, elem] | D.cpp:17:11:17:17 | this [box, elem] | -| D.cpp:22:10:22:11 | b2 [box, elem] | D.cpp:22:14:22:20 | call to getBox1 [elem] | -| D.cpp:22:14:22:20 | call to getBox1 [elem] | D.cpp:10:11:10:17 | this [elem] | -| D.cpp:22:14:22:20 | call to getBox1 [elem] | D.cpp:22:25:22:31 | call to getElem | -| D.cpp:28:15:28:24 | new | D.cpp:30:5:30:20 | ... = ... | -| D.cpp:30:5:30:5 | b [post update] [box, elem] | D.cpp:31:14:31:14 | b [box, elem] | -| D.cpp:30:5:30:20 | ... = ... | D.cpp:30:8:30:10 | box [post update] [elem] | -| D.cpp:30:8:30:10 | box [post update] [elem] | D.cpp:30:5:30:5 | b [post update] [box, elem] | -| D.cpp:31:14:31:14 | b [box, elem] | D.cpp:21:30:21:31 | b2 [box, elem] | -| D.cpp:35:15:35:24 | new | D.cpp:37:21:37:21 | e | -| D.cpp:37:5:37:5 | b [post update] [box, elem] | D.cpp:38:14:38:14 | b [box, elem] | -| D.cpp:37:8:37:10 | ref arg box [elem] | D.cpp:37:5:37:5 | b [post update] [box, elem] | -| D.cpp:37:21:37:21 | e | D.cpp:11:24:11:24 | e | -| D.cpp:37:21:37:21 | e | D.cpp:37:8:37:10 | ref arg box [elem] | -| D.cpp:38:14:38:14 | b [box, elem] | D.cpp:21:30:21:31 | b2 [box, elem] | -| D.cpp:42:15:42:24 | new | D.cpp:44:5:44:26 | ... = ... | -| D.cpp:44:5:44:5 | ref arg b [box, elem] | D.cpp:45:14:45:14 | b [box, elem] | -| D.cpp:44:5:44:26 | ... = ... | D.cpp:44:8:44:14 | call to getBox1 [post update] [elem] | -| D.cpp:44:8:44:14 | call to getBox1 [post update] [elem] | D.cpp:44:5:44:5 | ref arg b [box, elem] | -| D.cpp:45:14:45:14 | b [box, elem] | D.cpp:21:30:21:31 | b2 [box, elem] | -| D.cpp:49:15:49:24 | new | D.cpp:51:27:51:27 | e | -| D.cpp:51:5:51:5 | ref arg b [box, elem] | D.cpp:52:14:52:14 | b [box, elem] | -| D.cpp:51:8:51:14 | ref arg call to getBox1 [elem] | D.cpp:51:5:51:5 | ref arg b [box, elem] | -| D.cpp:51:27:51:27 | e | D.cpp:11:24:11:24 | e | -| D.cpp:51:27:51:27 | e | D.cpp:51:8:51:14 | ref arg call to getBox1 [elem] | -| D.cpp:52:14:52:14 | b [box, elem] | D.cpp:21:30:21:31 | b2 [box, elem] | -| D.cpp:56:15:56:24 | new | D.cpp:58:5:58:27 | ... = ... | -| D.cpp:58:5:58:12 | boxfield [post update] [box, elem] | D.cpp:58:5:58:12 | this [post update] [boxfield, box, elem] | -| D.cpp:58:5:58:12 | this [post update] [boxfield, box, elem] | D.cpp:59:5:59:7 | this [boxfield, box, elem] | -| D.cpp:58:5:58:27 | ... = ... | D.cpp:58:15:58:17 | box [post update] [elem] | -| D.cpp:58:15:58:17 | box [post update] [elem] | D.cpp:58:5:58:12 | boxfield [post update] [box, elem] | -| D.cpp:59:5:59:7 | this [boxfield, box, elem] | D.cpp:63:8:63:10 | this [boxfield, box, elem] | -| D.cpp:63:8:63:10 | this [boxfield, box, elem] | D.cpp:64:10:64:17 | this [boxfield, box, elem] | -| D.cpp:64:10:64:17 | boxfield [box, elem] | D.cpp:64:20:64:22 | box [elem] | -| D.cpp:64:10:64:17 | this [boxfield, box, elem] | D.cpp:64:10:64:17 | boxfield [box, elem] | -| D.cpp:64:20:64:22 | box [elem] | D.cpp:64:25:64:28 | elem | -| E.cpp:19:27:19:27 | p [data, buffer] | E.cpp:21:10:21:10 | p [data, buffer] | -| E.cpp:21:10:21:10 | p [data, buffer] | E.cpp:21:13:21:16 | data [buffer] | -| E.cpp:21:13:21:16 | data [buffer] | E.cpp:21:18:21:23 | buffer | -| E.cpp:28:21:28:23 | ref arg raw | E.cpp:31:10:31:12 | raw | -| E.cpp:29:21:29:21 | b [post update] [buffer] | E.cpp:32:10:32:10 | b [buffer] | -| E.cpp:29:24:29:29 | ref arg buffer | E.cpp:29:21:29:21 | b [post update] [buffer] | -| E.cpp:30:21:30:21 | p [post update] [data, buffer] | E.cpp:33:19:33:19 | p [data, buffer] | -| E.cpp:30:23:30:26 | data [post update] [buffer] | E.cpp:30:21:30:21 | p [post update] [data, buffer] | -| E.cpp:30:28:30:33 | ref arg buffer | E.cpp:30:23:30:26 | data [post update] [buffer] | -| E.cpp:32:10:32:10 | b [buffer] | E.cpp:32:13:32:18 | buffer | -| E.cpp:33:18:33:19 | & ... [data, buffer] | E.cpp:19:27:19:27 | p [data, buffer] | -| E.cpp:33:19:33:19 | p [data, buffer] | E.cpp:33:18:33:19 | & ... [data, buffer] | -| aliasing.cpp:8:23:8:23 | s [m1] | aliasing.cpp:25:17:25:19 | ref arg & ... [m1] | -| aliasing.cpp:9:3:9:3 | s [post update] [m1] | aliasing.cpp:8:23:8:23 | s [m1] | -| aliasing.cpp:9:3:9:3 | s [post update] [m1] | aliasing.cpp:25:17:25:19 | ref arg & ... [m1] | -| aliasing.cpp:9:3:9:22 | ... = ... | aliasing.cpp:9:3:9:3 | s [post update] [m1] | -| aliasing.cpp:9:11:9:20 | call to user_input | aliasing.cpp:9:3:9:22 | ... = ... | -| aliasing.cpp:12:25:12:25 | s [m1] | aliasing.cpp:26:19:26:20 | ref arg s2 [m1] | -| aliasing.cpp:13:3:13:3 | s [post update] [m1] | aliasing.cpp:12:25:12:25 | s [m1] | -| aliasing.cpp:13:3:13:3 | s [post update] [m1] | aliasing.cpp:26:19:26:20 | ref arg s2 [m1] | -| aliasing.cpp:13:3:13:21 | ... = ... | aliasing.cpp:13:3:13:3 | s [post update] [m1] | -| aliasing.cpp:13:10:13:19 | call to user_input | aliasing.cpp:13:3:13:21 | ... = ... | -| aliasing.cpp:25:17:25:19 | ref arg & ... [m1] | aliasing.cpp:29:8:29:9 | s1 [m1] | -| aliasing.cpp:26:19:26:20 | ref arg s2 [m1] | aliasing.cpp:30:8:30:9 | s2 [m1] | -| aliasing.cpp:29:8:29:9 | s1 [m1] | aliasing.cpp:29:11:29:12 | m1 | -| aliasing.cpp:30:8:30:9 | s2 [m1] | aliasing.cpp:30:11:30:12 | m1 | -| aliasing.cpp:60:3:60:4 | s2 [post update] [m1] | aliasing.cpp:62:8:62:12 | copy2 [m1] | -| aliasing.cpp:60:3:60:22 | ... = ... | aliasing.cpp:60:3:60:4 | s2 [post update] [m1] | -| aliasing.cpp:60:11:60:20 | call to user_input | aliasing.cpp:60:3:60:22 | ... = ... | -| aliasing.cpp:62:8:62:12 | copy2 [m1] | aliasing.cpp:62:14:62:15 | m1 | -| aliasing.cpp:92:3:92:3 | w [post update] [s, m1] | aliasing.cpp:93:8:93:8 | w [s, m1] | -| aliasing.cpp:92:3:92:23 | ... = ... | aliasing.cpp:92:5:92:5 | s [post update] [m1] | -| aliasing.cpp:92:5:92:5 | s [post update] [m1] | aliasing.cpp:92:3:92:3 | w [post update] [s, m1] | -| aliasing.cpp:92:12:92:21 | call to user_input | aliasing.cpp:92:3:92:23 | ... = ... | -| aliasing.cpp:93:8:93:8 | w [s, m1] | aliasing.cpp:93:10:93:10 | s [m1] | -| aliasing.cpp:93:10:93:10 | s [m1] | aliasing.cpp:93:12:93:13 | m1 | -| aliasing.cpp:105:23:105:24 | pa | aliasing.cpp:158:17:158:20 | ref arg data | -| aliasing.cpp:105:23:105:24 | pa | aliasing.cpp:164:17:164:20 | ref arg data | -| aliasing.cpp:105:23:105:24 | pa | aliasing.cpp:175:15:175:22 | ref arg & ... | -| aliasing.cpp:105:23:105:24 | pa | aliasing.cpp:187:15:187:22 | ref arg & ... | -| aliasing.cpp:105:23:105:24 | pa | aliasing.cpp:200:15:200:24 | ref arg & ... | -| aliasing.cpp:106:4:106:5 | pa [inner post update] | aliasing.cpp:158:17:158:20 | ref arg data | -| aliasing.cpp:106:4:106:5 | pa [inner post update] | aliasing.cpp:164:17:164:20 | ref arg data | -| aliasing.cpp:106:4:106:5 | pa [inner post update] | aliasing.cpp:175:15:175:22 | ref arg & ... | -| aliasing.cpp:106:4:106:5 | pa [inner post update] | aliasing.cpp:187:15:187:22 | ref arg & ... | -| aliasing.cpp:106:4:106:5 | pa [inner post update] | aliasing.cpp:200:15:200:24 | ref arg & ... | -| aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:105:23:105:24 | pa | -| aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:106:4:106:5 | pa [inner post update] | -| aliasing.cpp:158:15:158:15 | s [post update] [data] | aliasing.cpp:159:9:159:9 | s [data] | -| aliasing.cpp:158:17:158:20 | ref arg data | aliasing.cpp:158:15:158:15 | s [post update] [data] | -| aliasing.cpp:159:9:159:9 | s [data] | aliasing.cpp:159:11:159:14 | data | -| aliasing.cpp:159:11:159:14 | data | aliasing.cpp:159:8:159:14 | * ... | -| aliasing.cpp:164:15:164:15 | s [post update] [data] | aliasing.cpp:165:8:165:8 | s [data] | -| aliasing.cpp:164:17:164:20 | ref arg data | aliasing.cpp:164:15:164:15 | s [post update] [data] | -| aliasing.cpp:165:8:165:8 | s [data] | aliasing.cpp:165:10:165:13 | data | -| aliasing.cpp:165:10:165:13 | data | aliasing.cpp:165:8:165:16 | access to array | -| aliasing.cpp:175:15:175:22 | ref arg & ... | aliasing.cpp:175:21:175:22 | m1 [inner post update] | -| aliasing.cpp:175:16:175:17 | s2 [post update] [s, m1] | aliasing.cpp:176:8:176:9 | s2 [s, m1] | -| aliasing.cpp:175:19:175:19 | s [post update] [m1] | aliasing.cpp:175:16:175:17 | s2 [post update] [s, m1] | -| aliasing.cpp:175:21:175:22 | m1 [inner post update] | aliasing.cpp:175:19:175:19 | s [post update] [m1] | -| aliasing.cpp:176:8:176:9 | s2 [s, m1] | aliasing.cpp:176:11:176:11 | s [m1] | -| aliasing.cpp:176:11:176:11 | s [m1] | aliasing.cpp:176:13:176:14 | m1 | -| aliasing.cpp:187:15:187:22 | ref arg & ... | aliasing.cpp:187:21:187:22 | m1 [inner post update] | -| aliasing.cpp:187:16:187:17 | s2 [post update] [s, m1] | aliasing.cpp:189:8:189:11 | s2_2 [s, m1] | -| aliasing.cpp:187:19:187:19 | s [post update] [m1] | aliasing.cpp:187:16:187:17 | s2 [post update] [s, m1] | -| aliasing.cpp:187:21:187:22 | m1 [inner post update] | aliasing.cpp:187:19:187:19 | s [post update] [m1] | -| aliasing.cpp:189:8:189:11 | s2_2 [s, m1] | aliasing.cpp:189:13:189:13 | s [m1] | -| aliasing.cpp:189:13:189:13 | s [m1] | aliasing.cpp:189:15:189:16 | m1 | -| aliasing.cpp:200:15:200:24 | ref arg & ... | aliasing.cpp:200:23:200:24 | m1 [inner post update] | -| aliasing.cpp:200:16:200:18 | ps2 [post update] [s, m1] | aliasing.cpp:201:8:201:10 | ps2 [s, m1] | -| aliasing.cpp:200:21:200:21 | s [post update] [m1] | aliasing.cpp:200:16:200:18 | ps2 [post update] [s, m1] | -| aliasing.cpp:200:23:200:24 | m1 [inner post update] | aliasing.cpp:200:21:200:21 | s [post update] [m1] | -| aliasing.cpp:201:8:201:10 | ps2 [s, m1] | aliasing.cpp:201:13:201:13 | s [m1] | -| aliasing.cpp:201:13:201:13 | s [m1] | aliasing.cpp:201:15:201:16 | m1 | -| arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:7:8:7:13 | access to array | -| arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:8:8:8:13 | access to array | -| arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:9:8:9:11 | * ... | -| arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | * ... | -| arrays.cpp:15:14:15:23 | call to user_input | arrays.cpp:16:8:16:13 | access to array | -| arrays.cpp:15:14:15:23 | call to user_input | arrays.cpp:17:8:17:13 | access to array | -| arrays.cpp:36:3:36:3 | o [post update] [nested, arr, data] | arrays.cpp:37:8:37:8 | o [nested, arr, data] | -| arrays.cpp:36:3:36:3 | o [post update] [nested, arr, data] | arrays.cpp:38:8:38:8 | o [nested, arr, data] | -| arrays.cpp:36:3:36:17 | access to array [post update] [data] | arrays.cpp:36:12:36:14 | arr [inner post update] [data] | -| arrays.cpp:36:3:36:37 | ... = ... | arrays.cpp:36:3:36:17 | access to array [post update] [data] | -| arrays.cpp:36:5:36:10 | nested [post update] [arr, data] | arrays.cpp:36:3:36:3 | o [post update] [nested, arr, data] | -| arrays.cpp:36:12:36:14 | arr [inner post update] [data] | arrays.cpp:36:5:36:10 | nested [post update] [arr, data] | -| arrays.cpp:36:26:36:35 | call to user_input | arrays.cpp:36:3:36:37 | ... = ... | -| arrays.cpp:37:8:37:8 | o [nested, arr, data] | arrays.cpp:37:10:37:15 | nested [arr, data] | -| arrays.cpp:37:8:37:8 | o [post update] [nested, arr, data] | arrays.cpp:38:8:38:8 | o [nested, arr, data] | -| arrays.cpp:37:8:37:22 | access to array [data] | arrays.cpp:37:24:37:27 | data | -| arrays.cpp:37:8:37:22 | access to array [data] | arrays.cpp:37:24:37:27 | data | -| arrays.cpp:37:8:37:22 | access to array [post update] [data] | arrays.cpp:37:17:37:19 | arr [inner post update] [data] | -| arrays.cpp:37:10:37:15 | nested [arr, data] | arrays.cpp:37:17:37:19 | arr [data] | -| arrays.cpp:37:10:37:15 | nested [post update] [arr, data] | arrays.cpp:37:8:37:8 | o [post update] [nested, arr, data] | -| arrays.cpp:37:17:37:19 | arr [data] | arrays.cpp:37:8:37:22 | access to array [data] | -| arrays.cpp:37:17:37:19 | arr [inner post update] [data] | arrays.cpp:37:10:37:15 | nested [post update] [arr, data] | -| arrays.cpp:37:24:37:27 | data | arrays.cpp:37:24:37:27 | ref arg data | -| arrays.cpp:37:24:37:27 | data | realistic.cpp:41:17:41:17 | o | -| arrays.cpp:37:24:37:27 | ref arg data | arrays.cpp:37:8:37:22 | access to array [post update] [data] | -| arrays.cpp:38:8:38:8 | o [nested, arr, data] | arrays.cpp:38:10:38:15 | nested [arr, data] | -| arrays.cpp:38:8:38:22 | access to array [data] | arrays.cpp:38:24:38:27 | data | -| arrays.cpp:38:10:38:15 | nested [arr, data] | arrays.cpp:38:17:38:19 | arr [data] | -| arrays.cpp:38:17:38:19 | arr [data] | arrays.cpp:38:8:38:22 | access to array [data] | -| arrays.cpp:42:3:42:3 | o [post update] [indirect, arr, data] | arrays.cpp:43:8:43:8 | o [indirect, arr, data] | -| arrays.cpp:42:3:42:3 | o [post update] [indirect, arr, data] | arrays.cpp:44:8:44:8 | o [indirect, arr, data] | -| arrays.cpp:42:3:42:20 | access to array [post update] [data] | arrays.cpp:42:15:42:17 | arr [inner post update] [data] | -| arrays.cpp:42:3:42:40 | ... = ... | arrays.cpp:42:3:42:20 | access to array [post update] [data] | -| arrays.cpp:42:5:42:12 | indirect [post update] [arr, data] | arrays.cpp:42:3:42:3 | o [post update] [indirect, arr, data] | -| arrays.cpp:42:15:42:17 | arr [inner post update] [data] | arrays.cpp:42:5:42:12 | indirect [post update] [arr, data] | -| arrays.cpp:42:29:42:38 | call to user_input | arrays.cpp:42:3:42:40 | ... = ... | -| arrays.cpp:43:8:43:8 | o [indirect, arr, data] | arrays.cpp:43:10:43:17 | indirect [arr, data] | -| arrays.cpp:43:8:43:8 | o [post update] [indirect, arr, data] | arrays.cpp:44:8:44:8 | o [indirect, arr, data] | -| arrays.cpp:43:8:43:25 | access to array [data] | arrays.cpp:43:27:43:30 | data | -| arrays.cpp:43:8:43:25 | access to array [data] | arrays.cpp:43:27:43:30 | data | -| arrays.cpp:43:8:43:25 | access to array [post update] [data] | arrays.cpp:43:20:43:22 | arr [inner post update] [data] | -| arrays.cpp:43:10:43:17 | indirect [arr, data] | arrays.cpp:43:20:43:22 | arr [data] | -| arrays.cpp:43:10:43:17 | indirect [post update] [arr, data] | arrays.cpp:43:8:43:8 | o [post update] [indirect, arr, data] | -| arrays.cpp:43:20:43:22 | arr [data] | arrays.cpp:43:8:43:25 | access to array [data] | -| arrays.cpp:43:20:43:22 | arr [inner post update] [data] | arrays.cpp:43:10:43:17 | indirect [post update] [arr, data] | -| arrays.cpp:43:27:43:30 | data | arrays.cpp:43:27:43:30 | ref arg data | -| arrays.cpp:43:27:43:30 | data | realistic.cpp:41:17:41:17 | o | -| arrays.cpp:43:27:43:30 | ref arg data | arrays.cpp:43:8:43:25 | access to array [post update] [data] | -| arrays.cpp:44:8:44:8 | o [indirect, arr, data] | arrays.cpp:44:10:44:17 | indirect [arr, data] | -| arrays.cpp:44:8:44:25 | access to array [data] | arrays.cpp:44:27:44:30 | data | -| arrays.cpp:44:10:44:17 | indirect [arr, data] | arrays.cpp:44:20:44:22 | arr [data] | -| arrays.cpp:44:20:44:22 | arr [data] | arrays.cpp:44:8:44:25 | access to array [data] | -| by_reference.cpp:11:48:11:52 | value | by_reference.cpp:12:5:12:16 | ... = ... | -| by_reference.cpp:12:5:12:5 | s [post update] [a] | by_reference.cpp:11:39:11:39 | s [a] | -| by_reference.cpp:12:5:12:16 | ... = ... | by_reference.cpp:12:5:12:5 | s [post update] [a] | -| by_reference.cpp:15:26:15:30 | value | by_reference.cpp:16:5:16:19 | ... = ... | -| by_reference.cpp:16:5:16:19 | ... = ... | by_reference.cpp:16:5:16:8 | this [post update] [a] | -| by_reference.cpp:19:28:19:32 | value | by_reference.cpp:20:23:20:27 | value | -| by_reference.cpp:20:23:20:27 | value | by_reference.cpp:15:26:15:30 | value | -| by_reference.cpp:20:23:20:27 | value | by_reference.cpp:20:5:20:8 | ref arg this [a] | -| by_reference.cpp:23:34:23:38 | value | by_reference.cpp:24:25:24:29 | value | -| by_reference.cpp:24:25:24:29 | value | by_reference.cpp:11:48:11:52 | value | -| by_reference.cpp:24:25:24:29 | value | by_reference.cpp:24:19:24:22 | ref arg this [a] | -| by_reference.cpp:31:46:31:46 | s [a] | by_reference.cpp:32:12:32:12 | s [a] | -| by_reference.cpp:32:12:32:12 | s [a] | by_reference.cpp:32:15:32:15 | a | -| by_reference.cpp:35:9:35:19 | this [a] | by_reference.cpp:36:12:36:15 | this [a] | -| by_reference.cpp:36:12:36:15 | this [a] | by_reference.cpp:36:18:36:18 | a | -| by_reference.cpp:39:9:39:21 | this [a] | by_reference.cpp:40:12:40:15 | this [a] | -| by_reference.cpp:40:12:40:15 | this [a] | by_reference.cpp:35:9:35:19 | this [a] | -| by_reference.cpp:40:12:40:15 | this [a] | by_reference.cpp:40:18:40:28 | call to getDirectly | -| by_reference.cpp:43:9:43:27 | this [a] | by_reference.cpp:44:26:44:29 | this [a] | -| by_reference.cpp:44:26:44:29 | this [a] | by_reference.cpp:31:46:31:46 | s [a] | -| by_reference.cpp:44:26:44:29 | this [a] | by_reference.cpp:44:12:44:24 | call to nonMemberGetA | -| by_reference.cpp:50:3:50:3 | ref arg s [a] | by_reference.cpp:51:8:51:8 | s [a] | -| by_reference.cpp:50:17:50:26 | call to user_input | by_reference.cpp:15:26:15:30 | value | -| by_reference.cpp:50:17:50:26 | call to user_input | by_reference.cpp:50:3:50:3 | ref arg s [a] | -| by_reference.cpp:51:8:51:8 | s [a] | by_reference.cpp:35:9:35:19 | this [a] | -| by_reference.cpp:51:8:51:8 | s [a] | by_reference.cpp:51:10:51:20 | call to getDirectly | -| by_reference.cpp:56:3:56:3 | ref arg s [a] | by_reference.cpp:57:8:57:8 | s [a] | -| by_reference.cpp:56:19:56:28 | call to user_input | by_reference.cpp:19:28:19:32 | value | -| by_reference.cpp:56:19:56:28 | call to user_input | by_reference.cpp:56:3:56:3 | ref arg s [a] | -| by_reference.cpp:57:8:57:8 | s [a] | by_reference.cpp:39:9:39:21 | this [a] | -| by_reference.cpp:57:8:57:8 | s [a] | by_reference.cpp:57:10:57:22 | call to getIndirectly | -| by_reference.cpp:62:3:62:3 | ref arg s [a] | by_reference.cpp:63:8:63:8 | s [a] | -| by_reference.cpp:62:25:62:34 | call to user_input | by_reference.cpp:23:34:23:38 | value | -| by_reference.cpp:62:25:62:34 | call to user_input | by_reference.cpp:62:3:62:3 | ref arg s [a] | -| by_reference.cpp:63:8:63:8 | s [a] | by_reference.cpp:43:9:43:27 | this [a] | -| by_reference.cpp:63:8:63:8 | s [a] | by_reference.cpp:63:10:63:28 | call to getThroughNonMember | -| by_reference.cpp:68:17:68:18 | ref arg & ... [a] | by_reference.cpp:69:23:69:23 | s [a] | -| by_reference.cpp:68:21:68:30 | call to user_input | by_reference.cpp:11:48:11:52 | value | -| by_reference.cpp:68:21:68:30 | call to user_input | by_reference.cpp:68:17:68:18 | ref arg & ... [a] | -| by_reference.cpp:69:22:69:23 | & ... [a] | by_reference.cpp:31:46:31:46 | s [a] | -| by_reference.cpp:69:22:69:23 | & ... [a] | by_reference.cpp:69:8:69:20 | call to nonMemberGetA | -| by_reference.cpp:69:23:69:23 | s [a] | by_reference.cpp:69:22:69:23 | & ... [a] | -| by_reference.cpp:83:31:83:35 | inner [a] | by_reference.cpp:102:21:102:39 | ref arg & ... [a] | -| by_reference.cpp:83:31:83:35 | inner [a] | by_reference.cpp:103:27:103:35 | ref arg inner_ptr [a] | -| by_reference.cpp:83:31:83:35 | inner [a] | by_reference.cpp:106:21:106:41 | ref arg & ... [a] | -| by_reference.cpp:83:31:83:35 | inner [a] | by_reference.cpp:107:29:107:37 | ref arg inner_ptr [a] | -| by_reference.cpp:84:3:84:7 | inner [post update] [a] | by_reference.cpp:83:31:83:35 | inner [a] | -| by_reference.cpp:84:3:84:7 | inner [post update] [a] | by_reference.cpp:102:21:102:39 | ref arg & ... [a] | -| by_reference.cpp:84:3:84:7 | inner [post update] [a] | by_reference.cpp:103:27:103:35 | ref arg inner_ptr [a] | -| by_reference.cpp:84:3:84:7 | inner [post update] [a] | by_reference.cpp:106:21:106:41 | ref arg & ... [a] | -| by_reference.cpp:84:3:84:7 | inner [post update] [a] | by_reference.cpp:107:29:107:37 | ref arg inner_ptr [a] | -| by_reference.cpp:84:3:84:25 | ... = ... | by_reference.cpp:84:3:84:7 | inner [post update] [a] | -| by_reference.cpp:84:14:84:23 | call to user_input | by_reference.cpp:84:3:84:25 | ... = ... | -| by_reference.cpp:87:31:87:35 | inner [a] | by_reference.cpp:122:27:122:38 | ref arg inner_nested [a] | -| by_reference.cpp:87:31:87:35 | inner [a] | by_reference.cpp:123:21:123:36 | ref arg * ... [a] | -| by_reference.cpp:87:31:87:35 | inner [a] | by_reference.cpp:126:29:126:40 | ref arg inner_nested [a] | -| by_reference.cpp:87:31:87:35 | inner [a] | by_reference.cpp:127:21:127:38 | ref arg * ... [a] | -| by_reference.cpp:88:3:88:7 | inner [post update] [a] | by_reference.cpp:87:31:87:35 | inner [a] | -| by_reference.cpp:88:3:88:7 | inner [post update] [a] | by_reference.cpp:122:27:122:38 | ref arg inner_nested [a] | -| by_reference.cpp:88:3:88:7 | inner [post update] [a] | by_reference.cpp:123:21:123:36 | ref arg * ... [a] | -| by_reference.cpp:88:3:88:7 | inner [post update] [a] | by_reference.cpp:126:29:126:40 | ref arg inner_nested [a] | -| by_reference.cpp:88:3:88:7 | inner [post update] [a] | by_reference.cpp:127:21:127:38 | ref arg * ... [a] | -| by_reference.cpp:88:3:88:24 | ... = ... | by_reference.cpp:88:3:88:7 | inner [post update] [a] | -| by_reference.cpp:88:13:88:22 | call to user_input | by_reference.cpp:88:3:88:24 | ... = ... | -| by_reference.cpp:91:25:91:26 | pa | by_reference.cpp:104:15:104:22 | ref arg & ... | -| by_reference.cpp:91:25:91:26 | pa | by_reference.cpp:108:15:108:24 | ref arg & ... | -| by_reference.cpp:92:4:92:5 | pa [inner post update] | by_reference.cpp:104:15:104:22 | ref arg & ... | -| by_reference.cpp:92:4:92:5 | pa [inner post update] | by_reference.cpp:108:15:108:24 | ref arg & ... | -| by_reference.cpp:92:9:92:18 | call to user_input | by_reference.cpp:91:25:91:26 | pa | -| by_reference.cpp:92:9:92:18 | call to user_input | by_reference.cpp:92:4:92:5 | pa [inner post update] | -| by_reference.cpp:95:25:95:26 | pa | by_reference.cpp:124:21:124:21 | ref arg a | -| by_reference.cpp:95:25:95:26 | pa | by_reference.cpp:128:23:128:23 | ref arg a | -| by_reference.cpp:96:8:96:17 | call to user_input | by_reference.cpp:95:25:95:26 | pa | -| by_reference.cpp:102:21:102:39 | ref arg & ... [a] | by_reference.cpp:102:28:102:39 | inner_nested [inner post update] [a] | -| by_reference.cpp:102:22:102:26 | outer [post update] [inner_nested, a] | by_reference.cpp:110:8:110:12 | outer [inner_nested, a] | -| by_reference.cpp:102:28:102:39 | inner_nested [inner post update] [a] | by_reference.cpp:102:22:102:26 | outer [post update] [inner_nested, a] | -| by_reference.cpp:103:21:103:25 | outer [post update] [inner_ptr, a] | by_reference.cpp:111:8:111:12 | outer [inner_ptr, a] | -| by_reference.cpp:103:27:103:35 | ref arg inner_ptr [a] | by_reference.cpp:103:21:103:25 | outer [post update] [inner_ptr, a] | -| by_reference.cpp:104:15:104:22 | ref arg & ... | by_reference.cpp:104:22:104:22 | a [inner post update] | -| by_reference.cpp:104:16:104:20 | outer [post update] [a] | by_reference.cpp:112:8:112:12 | outer [a] | -| by_reference.cpp:104:22:104:22 | a [inner post update] | by_reference.cpp:104:16:104:20 | outer [post update] [a] | -| by_reference.cpp:106:21:106:41 | ref arg & ... [a] | by_reference.cpp:106:30:106:41 | inner_nested [inner post update] [a] | -| by_reference.cpp:106:22:106:27 | pouter [post update] [inner_nested, a] | by_reference.cpp:114:8:114:13 | pouter [inner_nested, a] | -| by_reference.cpp:106:30:106:41 | inner_nested [inner post update] [a] | by_reference.cpp:106:22:106:27 | pouter [post update] [inner_nested, a] | -| by_reference.cpp:107:21:107:26 | pouter [post update] [inner_ptr, a] | by_reference.cpp:115:8:115:13 | pouter [inner_ptr, a] | -| by_reference.cpp:107:29:107:37 | ref arg inner_ptr [a] | by_reference.cpp:107:21:107:26 | pouter [post update] [inner_ptr, a] | -| by_reference.cpp:108:15:108:24 | ref arg & ... | by_reference.cpp:108:24:108:24 | a [inner post update] | -| by_reference.cpp:108:16:108:21 | pouter [post update] [a] | by_reference.cpp:116:8:116:13 | pouter [a] | -| by_reference.cpp:108:24:108:24 | a [inner post update] | by_reference.cpp:108:16:108:21 | pouter [post update] [a] | -| by_reference.cpp:110:8:110:12 | outer [inner_nested, a] | by_reference.cpp:110:14:110:25 | inner_nested [a] | -| by_reference.cpp:110:14:110:25 | inner_nested [a] | by_reference.cpp:110:27:110:27 | a | -| by_reference.cpp:111:8:111:12 | outer [inner_ptr, a] | by_reference.cpp:111:14:111:22 | inner_ptr [a] | -| by_reference.cpp:111:14:111:22 | inner_ptr [a] | by_reference.cpp:111:25:111:25 | a | -| by_reference.cpp:112:8:112:12 | outer [a] | by_reference.cpp:112:14:112:14 | a | -| by_reference.cpp:114:8:114:13 | pouter [inner_nested, a] | by_reference.cpp:114:16:114:27 | inner_nested [a] | -| by_reference.cpp:114:16:114:27 | inner_nested [a] | by_reference.cpp:114:29:114:29 | a | -| by_reference.cpp:115:8:115:13 | pouter [inner_ptr, a] | by_reference.cpp:115:16:115:24 | inner_ptr [a] | -| by_reference.cpp:115:16:115:24 | inner_ptr [a] | by_reference.cpp:115:27:115:27 | a | -| by_reference.cpp:116:8:116:13 | pouter [a] | by_reference.cpp:116:16:116:16 | a | -| by_reference.cpp:122:21:122:25 | outer [post update] [inner_nested, a] | by_reference.cpp:130:8:130:12 | outer [inner_nested, a] | -| by_reference.cpp:122:27:122:38 | ref arg inner_nested [a] | by_reference.cpp:122:21:122:25 | outer [post update] [inner_nested, a] | -| by_reference.cpp:123:21:123:36 | ref arg * ... [a] | by_reference.cpp:123:28:123:36 | inner_ptr [inner post update] [a] | -| by_reference.cpp:123:22:123:26 | outer [post update] [inner_ptr, a] | by_reference.cpp:131:8:131:12 | outer [inner_ptr, a] | -| by_reference.cpp:123:28:123:36 | inner_ptr [inner post update] [a] | by_reference.cpp:123:22:123:26 | outer [post update] [inner_ptr, a] | -| by_reference.cpp:124:15:124:19 | outer [post update] [a] | by_reference.cpp:132:8:132:12 | outer [a] | -| by_reference.cpp:124:21:124:21 | ref arg a | by_reference.cpp:124:15:124:19 | outer [post update] [a] | -| by_reference.cpp:126:21:126:26 | pouter [post update] [inner_nested, a] | by_reference.cpp:134:8:134:13 | pouter [inner_nested, a] | -| by_reference.cpp:126:29:126:40 | ref arg inner_nested [a] | by_reference.cpp:126:21:126:26 | pouter [post update] [inner_nested, a] | -| by_reference.cpp:127:21:127:38 | ref arg * ... [a] | by_reference.cpp:127:30:127:38 | inner_ptr [inner post update] [a] | -| by_reference.cpp:127:22:127:27 | pouter [post update] [inner_ptr, a] | by_reference.cpp:135:8:135:13 | pouter [inner_ptr, a] | -| by_reference.cpp:127:30:127:38 | inner_ptr [inner post update] [a] | by_reference.cpp:127:22:127:27 | pouter [post update] [inner_ptr, a] | -| by_reference.cpp:128:15:128:20 | pouter [post update] [a] | by_reference.cpp:136:8:136:13 | pouter [a] | -| by_reference.cpp:128:23:128:23 | ref arg a | by_reference.cpp:128:15:128:20 | pouter [post update] [a] | -| by_reference.cpp:130:8:130:12 | outer [inner_nested, a] | by_reference.cpp:130:14:130:25 | inner_nested [a] | -| by_reference.cpp:130:14:130:25 | inner_nested [a] | by_reference.cpp:130:27:130:27 | a | -| by_reference.cpp:131:8:131:12 | outer [inner_ptr, a] | by_reference.cpp:131:14:131:22 | inner_ptr [a] | -| by_reference.cpp:131:14:131:22 | inner_ptr [a] | by_reference.cpp:131:25:131:25 | a | -| by_reference.cpp:132:8:132:12 | outer [a] | by_reference.cpp:132:14:132:14 | a | -| by_reference.cpp:134:8:134:13 | pouter [inner_nested, a] | by_reference.cpp:134:16:134:27 | inner_nested [a] | -| by_reference.cpp:134:16:134:27 | inner_nested [a] | by_reference.cpp:134:29:134:29 | a | -| by_reference.cpp:135:8:135:13 | pouter [inner_ptr, a] | by_reference.cpp:135:16:135:24 | inner_ptr [a] | -| by_reference.cpp:135:16:135:24 | inner_ptr [a] | by_reference.cpp:135:27:135:27 | a | -| by_reference.cpp:136:8:136:13 | pouter [a] | by_reference.cpp:136:16:136:16 | a | -| clearning.cpp:53:4:53:4 | s [post update] [x] | clearning.cpp:55:8:55:8 | s [x] | -| clearning.cpp:53:6:53:6 | x [inner post update] | clearning.cpp:53:4:53:4 | s [post update] [x] | -| clearning.cpp:53:10:53:19 | call to user_input | clearning.cpp:53:6:53:6 | x [inner post update] | -| clearning.cpp:55:8:55:8 | s [x] | clearning.cpp:55:10:55:10 | x | -| clearning.cpp:124:2:124:2 | s [post update] [val] | clearning.cpp:126:7:126:7 | s [val] | -| clearning.cpp:124:2:124:25 | ... = ... | clearning.cpp:124:2:124:2 | s [post update] [val] | -| clearning.cpp:124:10:124:19 | call to user_input | clearning.cpp:124:2:124:25 | ... = ... | -| clearning.cpp:126:7:126:7 | s [val] | clearning.cpp:126:9:126:11 | val | -| clearning.cpp:131:2:131:2 | s [post update] [val] | clearning.cpp:133:7:133:7 | s [val] | -| clearning.cpp:131:2:131:25 | ... = ... | clearning.cpp:131:2:131:2 | s [post update] [val] | -| clearning.cpp:131:10:131:19 | call to user_input | clearning.cpp:131:2:131:25 | ... = ... | -| clearning.cpp:133:7:133:7 | s [val] | clearning.cpp:133:9:133:11 | val | -| clearning.cpp:138:2:138:2 | s [post update] [val] | clearning.cpp:140:7:140:7 | s [val] | -| clearning.cpp:138:2:138:25 | ... = ... | clearning.cpp:138:2:138:2 | s [post update] [val] | -| clearning.cpp:138:10:138:19 | call to user_input | clearning.cpp:138:2:138:25 | ... = ... | -| clearning.cpp:140:7:140:7 | s [val] | clearning.cpp:140:9:140:11 | val | -| clearning.cpp:151:3:151:3 | s [post update] [val] | clearning.cpp:152:8:152:8 | s [val] | -| clearning.cpp:151:3:151:22 | ... = ... | clearning.cpp:151:3:151:3 | s [post update] [val] | -| clearning.cpp:151:11:151:20 | call to user_input | clearning.cpp:151:3:151:22 | ... = ... | -| clearning.cpp:152:8:152:8 | s [val] | clearning.cpp:152:10:152:12 | val | -| clearning.cpp:157:3:157:3 | s [post update] [val] | clearning.cpp:159:8:159:8 | s [val] | -| clearning.cpp:157:3:157:22 | ... = ... | clearning.cpp:157:3:157:3 | s [post update] [val] | -| clearning.cpp:157:11:157:20 | call to user_input | clearning.cpp:157:3:157:22 | ... = ... | -| clearning.cpp:159:8:159:8 | s [val] | clearning.cpp:159:10:159:12 | val | -| clearning.cpp:164:3:164:3 | s [post update] [val] | clearning.cpp:166:8:166:8 | s [val] | -| clearning.cpp:164:3:164:22 | ... = ... | clearning.cpp:164:3:164:3 | s [post update] [val] | -| clearning.cpp:164:11:164:20 | call to user_input | clearning.cpp:164:3:164:22 | ... = ... | -| clearning.cpp:166:8:166:8 | s [val] | clearning.cpp:166:10:166:12 | val | -| clearning.cpp:171:3:171:3 | s [post update] [val] | clearning.cpp:173:8:173:8 | s [val] | -| clearning.cpp:171:3:171:22 | ... = ... | clearning.cpp:171:3:171:3 | s [post update] [val] | -| clearning.cpp:171:11:171:20 | call to user_input | clearning.cpp:171:3:171:22 | ... = ... | -| clearning.cpp:173:8:173:8 | s [val] | clearning.cpp:173:10:173:12 | val | -| clearning.cpp:178:3:178:3 | s [post update] [val] | clearning.cpp:180:8:180:8 | s [val] | -| clearning.cpp:178:3:178:22 | ... = ... | clearning.cpp:178:3:178:3 | s [post update] [val] | -| clearning.cpp:178:11:178:20 | call to user_input | clearning.cpp:178:3:178:22 | ... = ... | -| clearning.cpp:180:8:180:8 | s [val] | clearning.cpp:180:10:180:12 | val | -| complex.cpp:9:7:9:7 | this [a_] | complex.cpp:9:20:9:21 | this [a_] | -| complex.cpp:9:20:9:21 | this [a_] | complex.cpp:9:20:9:21 | a_ | -| complex.cpp:10:7:10:7 | this [b_] | complex.cpp:10:20:10:21 | this [b_] | -| complex.cpp:10:20:10:21 | this [b_] | complex.cpp:10:20:10:21 | b_ | -| complex.cpp:11:17:11:17 | a | complex.cpp:11:22:11:27 | ... = ... | -| complex.cpp:11:22:11:27 | ... = ... | complex.cpp:11:22:11:23 | this [post update] [a_] | -| complex.cpp:12:17:12:17 | b | complex.cpp:12:22:12:27 | ... = ... | -| complex.cpp:12:22:12:27 | ... = ... | complex.cpp:12:22:12:23 | this [post update] [b_] | -| complex.cpp:40:17:40:17 | b [inner, f, a_] | complex.cpp:42:8:42:8 | b [inner, f, a_] | -| complex.cpp:40:17:40:17 | b [inner, f, b_] | complex.cpp:43:8:43:8 | b [inner, f, b_] | -| complex.cpp:42:8:42:8 | b [inner, f, a_] | complex.cpp:42:10:42:14 | inner [f, a_] | -| complex.cpp:42:10:42:14 | inner [f, a_] | complex.cpp:42:16:42:16 | f [a_] | -| complex.cpp:42:16:42:16 | f [a_] | complex.cpp:9:7:9:7 | this [a_] | -| complex.cpp:42:16:42:16 | f [a_] | complex.cpp:42:18:42:18 | call to a | -| complex.cpp:43:8:43:8 | b [inner, f, b_] | complex.cpp:43:10:43:14 | inner [f, b_] | -| complex.cpp:43:10:43:14 | inner [f, b_] | complex.cpp:43:16:43:16 | f [b_] | -| complex.cpp:43:16:43:16 | f [b_] | complex.cpp:10:7:10:7 | this [b_] | -| complex.cpp:43:16:43:16 | f [b_] | complex.cpp:43:18:43:18 | call to b | -| complex.cpp:53:3:53:4 | b1 [post update] [inner, f, a_] | complex.cpp:59:7:59:8 | b1 [inner, f, a_] | -| complex.cpp:53:6:53:10 | inner [post update] [f, a_] | complex.cpp:53:3:53:4 | b1 [post update] [inner, f, a_] | -| complex.cpp:53:12:53:12 | ref arg f [a_] | complex.cpp:53:6:53:10 | inner [post update] [f, a_] | -| complex.cpp:53:19:53:28 | call to user_input | complex.cpp:11:17:11:17 | a | -| complex.cpp:53:19:53:28 | call to user_input | complex.cpp:53:12:53:12 | ref arg f [a_] | -| complex.cpp:54:3:54:4 | b2 [post update] [inner, f, b_] | complex.cpp:62:7:62:8 | b2 [inner, f, b_] | -| complex.cpp:54:6:54:10 | inner [post update] [f, b_] | complex.cpp:54:3:54:4 | b2 [post update] [inner, f, b_] | -| complex.cpp:54:12:54:12 | ref arg f [b_] | complex.cpp:54:6:54:10 | inner [post update] [f, b_] | -| complex.cpp:54:19:54:28 | call to user_input | complex.cpp:12:17:12:17 | b | -| complex.cpp:54:19:54:28 | call to user_input | complex.cpp:54:12:54:12 | ref arg f [b_] | -| complex.cpp:55:3:55:4 | b3 [post update] [inner, f, a_] | complex.cpp:65:7:65:8 | b3 [inner, f, a_] | -| complex.cpp:55:6:55:10 | inner [post update] [f, a_] | complex.cpp:55:3:55:4 | b3 [post update] [inner, f, a_] | -| complex.cpp:55:12:55:12 | ref arg f [a_] | complex.cpp:55:6:55:10 | inner [post update] [f, a_] | -| complex.cpp:55:19:55:28 | call to user_input | complex.cpp:11:17:11:17 | a | -| complex.cpp:55:19:55:28 | call to user_input | complex.cpp:55:12:55:12 | ref arg f [a_] | -| complex.cpp:56:3:56:4 | b3 [post update] [inner, f, b_] | complex.cpp:65:7:65:8 | b3 [inner, f, b_] | -| complex.cpp:56:6:56:10 | inner [post update] [f, b_] | complex.cpp:56:3:56:4 | b3 [post update] [inner, f, b_] | -| complex.cpp:56:12:56:12 | ref arg f [b_] | complex.cpp:56:6:56:10 | inner [post update] [f, b_] | -| complex.cpp:56:19:56:28 | call to user_input | complex.cpp:12:17:12:17 | b | -| complex.cpp:56:19:56:28 | call to user_input | complex.cpp:56:12:56:12 | ref arg f [b_] | -| complex.cpp:59:7:59:8 | b1 [inner, f, a_] | complex.cpp:40:17:40:17 | b [inner, f, a_] | -| complex.cpp:62:7:62:8 | b2 [inner, f, b_] | complex.cpp:40:17:40:17 | b [inner, f, b_] | -| complex.cpp:65:7:65:8 | b3 [inner, f, a_] | complex.cpp:40:17:40:17 | b [inner, f, a_] | -| complex.cpp:65:7:65:8 | b3 [inner, f, b_] | complex.cpp:40:17:40:17 | b [inner, f, b_] | -| conflated.cpp:19:19:19:21 | ref arg raw | conflated.cpp:20:8:20:10 | raw | -| conflated.cpp:29:3:29:4 | pa [post update] [x] | conflated.cpp:30:8:30:9 | pa [x] | -| conflated.cpp:29:3:29:22 | ... = ... | conflated.cpp:29:3:29:4 | pa [post update] [x] | -| conflated.cpp:29:11:29:20 | call to user_input | conflated.cpp:29:3:29:22 | ... = ... | -| conflated.cpp:30:8:30:9 | pa [x] | conflated.cpp:30:12:30:12 | x | -| conflated.cpp:36:3:36:4 | pa [post update] [x] | conflated.cpp:37:8:37:9 | pa [x] | -| conflated.cpp:36:3:36:22 | ... = ... | conflated.cpp:36:3:36:4 | pa [post update] [x] | -| conflated.cpp:36:11:36:20 | call to user_input | conflated.cpp:36:3:36:22 | ... = ... | -| conflated.cpp:37:8:37:9 | pa [x] | conflated.cpp:37:12:37:12 | x | -| conflated.cpp:54:3:54:4 | ll [post update] [next, y] | conflated.cpp:55:8:55:9 | ll [next, y] | -| conflated.cpp:54:3:54:28 | ... = ... | conflated.cpp:54:7:54:10 | next [post update] [y] | -| conflated.cpp:54:7:54:10 | next [post update] [y] | conflated.cpp:54:3:54:4 | ll [post update] [next, y] | -| conflated.cpp:54:17:54:26 | call to user_input | conflated.cpp:54:3:54:28 | ... = ... | -| conflated.cpp:55:8:55:9 | ll [next, y] | conflated.cpp:55:12:55:15 | next [y] | -| conflated.cpp:55:12:55:15 | next [y] | conflated.cpp:55:18:55:18 | y | -| conflated.cpp:60:3:60:4 | ll [post update] [next, y] | conflated.cpp:61:8:61:9 | ll [next, y] | -| conflated.cpp:60:3:60:28 | ... = ... | conflated.cpp:60:7:60:10 | next [post update] [y] | -| conflated.cpp:60:7:60:10 | next [post update] [y] | conflated.cpp:60:3:60:4 | ll [post update] [next, y] | -| conflated.cpp:60:17:60:26 | call to user_input | conflated.cpp:60:3:60:28 | ... = ... | -| conflated.cpp:61:8:61:9 | ll [next, y] | conflated.cpp:61:12:61:15 | next [y] | -| conflated.cpp:61:12:61:15 | next [y] | conflated.cpp:61:18:61:18 | y | -| constructors.cpp:18:9:18:9 | this [a_] | constructors.cpp:18:22:18:23 | this [a_] | -| constructors.cpp:18:22:18:23 | this [a_] | constructors.cpp:18:22:18:23 | a_ | -| constructors.cpp:19:9:19:9 | this [b_] | constructors.cpp:19:22:19:23 | this [b_] | -| constructors.cpp:19:22:19:23 | this [b_] | constructors.cpp:19:22:19:23 | b_ | -| constructors.cpp:23:13:23:13 | a | constructors.cpp:23:28:23:28 | a | -| constructors.cpp:23:20:23:20 | b | constructors.cpp:23:35:23:35 | b | -| constructors.cpp:23:28:23:28 | a | constructors.cpp:23:25:23:29 | constructor init of field a_ [post-this] [a_] | -| constructors.cpp:23:35:23:35 | b | constructors.cpp:23:32:23:36 | constructor init of field b_ [post-this] [b_] | -| constructors.cpp:26:15:26:15 | f [a_] | constructors.cpp:28:10:28:10 | f [a_] | -| constructors.cpp:26:15:26:15 | f [b_] | constructors.cpp:29:10:29:10 | f [b_] | -| constructors.cpp:28:10:28:10 | f [a_] | constructors.cpp:18:9:18:9 | this [a_] | -| constructors.cpp:28:10:28:10 | f [a_] | constructors.cpp:28:12:28:12 | call to a | -| constructors.cpp:29:10:29:10 | f [b_] | constructors.cpp:19:9:19:9 | this [b_] | -| constructors.cpp:29:10:29:10 | f [b_] | constructors.cpp:29:12:29:12 | call to b | -| constructors.cpp:34:11:34:20 | call to user_input | constructors.cpp:23:13:23:13 | a | -| constructors.cpp:34:11:34:20 | call to user_input | constructors.cpp:34:11:34:26 | call to Foo [a_] | -| constructors.cpp:34:11:34:26 | call to Foo [a_] | constructors.cpp:40:9:40:9 | f [a_] | -| constructors.cpp:35:11:35:26 | call to Foo [b_] | constructors.cpp:43:9:43:9 | g [b_] | -| constructors.cpp:35:14:35:23 | call to user_input | constructors.cpp:23:20:23:20 | b | -| constructors.cpp:35:14:35:23 | call to user_input | constructors.cpp:35:11:35:26 | call to Foo [b_] | -| constructors.cpp:36:11:36:20 | call to user_input | constructors.cpp:23:13:23:13 | a | -| constructors.cpp:36:11:36:20 | call to user_input | constructors.cpp:36:11:36:37 | call to Foo [a_] | -| constructors.cpp:36:11:36:37 | call to Foo [a_] | constructors.cpp:46:9:46:9 | h [a_] | -| constructors.cpp:36:11:36:37 | call to Foo [b_] | constructors.cpp:46:9:46:9 | h [b_] | -| constructors.cpp:36:25:36:34 | call to user_input | constructors.cpp:23:20:23:20 | b | -| constructors.cpp:36:25:36:34 | call to user_input | constructors.cpp:36:11:36:37 | call to Foo [b_] | -| constructors.cpp:40:9:40:9 | f [a_] | constructors.cpp:26:15:26:15 | f [a_] | -| constructors.cpp:43:9:43:9 | g [b_] | constructors.cpp:26:15:26:15 | f [b_] | -| constructors.cpp:46:9:46:9 | h [a_] | constructors.cpp:26:15:26:15 | f [a_] | -| constructors.cpp:46:9:46:9 | h [b_] | constructors.cpp:26:15:26:15 | f [b_] | -| qualifiers.cpp:9:21:9:25 | value | qualifiers.cpp:9:30:9:44 | ... = ... | -| qualifiers.cpp:9:30:9:44 | ... = ... | qualifiers.cpp:9:30:9:33 | this [post update] [a] | -| qualifiers.cpp:12:40:12:44 | value | qualifiers.cpp:12:49:12:64 | ... = ... | -| qualifiers.cpp:12:49:12:53 | inner [post update] [a] | qualifiers.cpp:12:27:12:31 | inner [a] | -| qualifiers.cpp:12:49:12:64 | ... = ... | qualifiers.cpp:12:49:12:53 | inner [post update] [a] | -| qualifiers.cpp:13:42:13:46 | value | qualifiers.cpp:13:51:13:65 | ... = ... | -| qualifiers.cpp:13:51:13:55 | inner [post update] [a] | qualifiers.cpp:13:29:13:33 | inner [a] | -| qualifiers.cpp:13:51:13:65 | ... = ... | qualifiers.cpp:13:51:13:55 | inner [post update] [a] | -| qualifiers.cpp:22:5:22:9 | ref arg outer [inner, a] | qualifiers.cpp:23:10:23:14 | outer [inner, a] | -| qualifiers.cpp:22:5:22:38 | ... = ... | qualifiers.cpp:22:11:22:18 | call to getInner [post update] [a] | -| qualifiers.cpp:22:11:22:18 | call to getInner [post update] [a] | qualifiers.cpp:22:5:22:9 | ref arg outer [inner, a] | -| qualifiers.cpp:22:27:22:36 | call to user_input | qualifiers.cpp:22:5:22:38 | ... = ... | -| qualifiers.cpp:23:10:23:14 | outer [inner, a] | qualifiers.cpp:23:16:23:20 | inner [a] | -| qualifiers.cpp:23:16:23:20 | inner [a] | qualifiers.cpp:23:23:23:23 | a | -| qualifiers.cpp:27:5:27:9 | ref arg outer [inner, a] | qualifiers.cpp:28:10:28:14 | outer [inner, a] | -| qualifiers.cpp:27:11:27:18 | ref arg call to getInner [a] | qualifiers.cpp:27:5:27:9 | ref arg outer [inner, a] | -| qualifiers.cpp:27:28:27:37 | call to user_input | qualifiers.cpp:9:21:9:25 | value | -| qualifiers.cpp:27:28:27:37 | call to user_input | qualifiers.cpp:27:11:27:18 | ref arg call to getInner [a] | -| qualifiers.cpp:28:10:28:14 | outer [inner, a] | qualifiers.cpp:28:16:28:20 | inner [a] | -| qualifiers.cpp:28:16:28:20 | inner [a] | qualifiers.cpp:28:23:28:23 | a | -| qualifiers.cpp:32:17:32:21 | ref arg outer [inner, a] | qualifiers.cpp:33:10:33:14 | outer [inner, a] | -| qualifiers.cpp:32:23:32:30 | ref arg call to getInner [a] | qualifiers.cpp:32:17:32:21 | ref arg outer [inner, a] | -| qualifiers.cpp:32:35:32:44 | call to user_input | qualifiers.cpp:12:40:12:44 | value | -| qualifiers.cpp:32:35:32:44 | call to user_input | qualifiers.cpp:32:23:32:30 | ref arg call to getInner [a] | -| qualifiers.cpp:33:10:33:14 | outer [inner, a] | qualifiers.cpp:33:16:33:20 | inner [a] | -| qualifiers.cpp:33:16:33:20 | inner [a] | qualifiers.cpp:33:23:33:23 | a | -| qualifiers.cpp:37:19:37:35 | ref arg * ... [a] | qualifiers.cpp:37:26:37:33 | call to getInner [inner post update] [a] | -| qualifiers.cpp:37:20:37:24 | ref arg outer [inner, a] | qualifiers.cpp:38:10:38:14 | outer [inner, a] | -| qualifiers.cpp:37:26:37:33 | call to getInner [inner post update] [a] | qualifiers.cpp:37:20:37:24 | ref arg outer [inner, a] | -| qualifiers.cpp:37:38:37:47 | call to user_input | qualifiers.cpp:13:42:13:46 | value | -| qualifiers.cpp:37:38:37:47 | call to user_input | qualifiers.cpp:37:19:37:35 | ref arg * ... [a] | -| qualifiers.cpp:38:10:38:14 | outer [inner, a] | qualifiers.cpp:38:16:38:20 | inner [a] | -| qualifiers.cpp:38:16:38:20 | inner [a] | qualifiers.cpp:38:23:38:23 | a | -| qualifiers.cpp:42:5:42:40 | ... = ... | qualifiers.cpp:42:6:42:22 | * ... [post update] [a] | -| qualifiers.cpp:42:6:42:22 | * ... [post update] [a] | qualifiers.cpp:42:13:42:20 | call to getInner [inner post update] [a] | -| qualifiers.cpp:42:7:42:11 | ref arg outer [inner, a] | qualifiers.cpp:43:10:43:14 | outer [inner, a] | -| qualifiers.cpp:42:13:42:20 | call to getInner [inner post update] [a] | qualifiers.cpp:42:7:42:11 | ref arg outer [inner, a] | -| qualifiers.cpp:42:29:42:38 | call to user_input | qualifiers.cpp:42:5:42:40 | ... = ... | -| qualifiers.cpp:43:10:43:14 | outer [inner, a] | qualifiers.cpp:43:16:43:20 | inner [a] | -| qualifiers.cpp:43:16:43:20 | inner [a] | qualifiers.cpp:43:23:43:23 | a | -| qualifiers.cpp:47:5:47:42 | ... = ... | qualifiers.cpp:47:15:47:22 | call to getInner [post update] [a] | -| qualifiers.cpp:47:6:47:11 | ref arg & ... [inner, a] | qualifiers.cpp:48:10:48:14 | outer [inner, a] | -| qualifiers.cpp:47:15:47:22 | call to getInner [post update] [a] | qualifiers.cpp:47:6:47:11 | ref arg & ... [inner, a] | -| qualifiers.cpp:47:31:47:40 | call to user_input | qualifiers.cpp:47:5:47:42 | ... = ... | -| qualifiers.cpp:48:10:48:14 | outer [inner, a] | qualifiers.cpp:48:16:48:20 | inner [a] | -| qualifiers.cpp:48:16:48:20 | inner [a] | qualifiers.cpp:48:23:48:23 | a | -| realistic.cpp:41:17:41:17 | o | realistic.cpp:41:17:41:17 | o | -| realistic.cpp:53:9:53:11 | foo [post update] [bar, baz, userInput, bufferLen] | realistic.cpp:61:21:61:23 | foo [bar, baz, userInput, bufferLen] | -| realistic.cpp:53:9:53:18 | access to array [post update] [baz, userInput, bufferLen] | realistic.cpp:53:13:53:15 | bar [inner post update] [baz, userInput, bufferLen] | -| realistic.cpp:53:9:53:66 | ... = ... | realistic.cpp:53:25:53:33 | userInput [post update] [bufferLen] | -| realistic.cpp:53:13:53:15 | bar [inner post update] [baz, userInput, bufferLen] | realistic.cpp:53:9:53:11 | foo [post update] [bar, baz, userInput, bufferLen] | -| realistic.cpp:53:20:53:22 | baz [post update] [userInput, bufferLen] | realistic.cpp:53:9:53:18 | access to array [post update] [baz, userInput, bufferLen] | -| realistic.cpp:53:25:53:33 | userInput [post update] [bufferLen] | realistic.cpp:53:20:53:22 | baz [post update] [userInput, bufferLen] | -| realistic.cpp:53:55:53:64 | call to user_input | realistic.cpp:53:9:53:66 | ... = ... | -| realistic.cpp:61:21:61:23 | foo [bar, baz, userInput, bufferLen] | realistic.cpp:61:25:61:27 | bar [baz, userInput, bufferLen] | -| realistic.cpp:61:21:61:23 | foo [post update] [bar, baz, userInput, bufferLen] | realistic.cpp:61:21:61:23 | foo [bar, baz, userInput, bufferLen] | -| realistic.cpp:61:21:61:30 | access to array [baz, userInput, bufferLen] | realistic.cpp:61:32:61:34 | baz [userInput, bufferLen] | -| realistic.cpp:61:21:61:30 | access to array [post update] [baz, userInput, bufferLen] | realistic.cpp:61:25:61:27 | bar [inner post update] [baz, userInput, bufferLen] | -| realistic.cpp:61:25:61:27 | bar [baz, userInput, bufferLen] | realistic.cpp:61:21:61:30 | access to array [baz, userInput, bufferLen] | -| realistic.cpp:61:25:61:27 | bar [inner post update] [baz, userInput, bufferLen] | realistic.cpp:61:21:61:23 | foo [post update] [bar, baz, userInput, bufferLen] | -| realistic.cpp:61:32:61:34 | baz [post update] [userInput, bufferLen] | realistic.cpp:61:21:61:30 | access to array [post update] [baz, userInput, bufferLen] | -| realistic.cpp:61:32:61:34 | baz [userInput, bufferLen] | realistic.cpp:61:37:61:45 | userInput [bufferLen] | -| realistic.cpp:61:37:61:45 | userInput [bufferLen] | realistic.cpp:61:47:61:55 | bufferLen | -| realistic.cpp:61:37:61:45 | userInput [bufferLen] | realistic.cpp:61:47:61:55 | bufferLen | -| realistic.cpp:61:37:61:45 | userInput [post update] [bufferLen] | realistic.cpp:61:32:61:34 | baz [post update] [userInput, bufferLen] | -| realistic.cpp:61:47:61:55 | bufferLen | realistic.cpp:41:17:41:17 | o | -| realistic.cpp:61:47:61:55 | bufferLen | realistic.cpp:61:47:61:55 | ref arg bufferLen | -| realistic.cpp:61:47:61:55 | ref arg bufferLen | realistic.cpp:61:37:61:45 | userInput [post update] [bufferLen] | -| simple.cpp:18:9:18:9 | this [a_] | simple.cpp:18:22:18:23 | this [a_] | -| simple.cpp:18:22:18:23 | this [a_] | simple.cpp:18:22:18:23 | a_ | -| simple.cpp:19:9:19:9 | this [b_] | simple.cpp:19:22:19:23 | this [b_] | -| simple.cpp:19:22:19:23 | this [b_] | simple.cpp:19:22:19:23 | b_ | -| simple.cpp:20:19:20:19 | a | simple.cpp:20:24:20:29 | ... = ... | -| simple.cpp:20:24:20:29 | ... = ... | simple.cpp:20:24:20:25 | this [post update] [a_] | -| simple.cpp:21:19:21:19 | b | simple.cpp:21:24:21:29 | ... = ... | -| simple.cpp:21:24:21:29 | ... = ... | simple.cpp:21:24:21:25 | this [post update] [b_] | -| simple.cpp:26:15:26:15 | f [a_] | simple.cpp:28:10:28:10 | f [a_] | -| simple.cpp:26:15:26:15 | f [b_] | simple.cpp:29:10:29:10 | f [b_] | -| simple.cpp:28:10:28:10 | f [a_] | simple.cpp:18:9:18:9 | this [a_] | -| simple.cpp:28:10:28:10 | f [a_] | simple.cpp:28:12:28:12 | call to a | -| simple.cpp:29:10:29:10 | f [b_] | simple.cpp:19:9:19:9 | this [b_] | -| simple.cpp:29:10:29:10 | f [b_] | simple.cpp:29:12:29:12 | call to b | -| simple.cpp:39:5:39:5 | ref arg f [a_] | simple.cpp:45:9:45:9 | f [a_] | -| simple.cpp:39:12:39:21 | call to user_input | simple.cpp:20:19:20:19 | a | -| simple.cpp:39:12:39:21 | call to user_input | simple.cpp:39:5:39:5 | ref arg f [a_] | -| simple.cpp:40:5:40:5 | ref arg g [b_] | simple.cpp:48:9:48:9 | g [b_] | -| simple.cpp:40:12:40:21 | call to user_input | simple.cpp:21:19:21:19 | b | -| simple.cpp:40:12:40:21 | call to user_input | simple.cpp:40:5:40:5 | ref arg g [b_] | -| simple.cpp:41:5:41:5 | ref arg h [a_] | simple.cpp:51:9:51:9 | h [a_] | -| simple.cpp:41:12:41:21 | call to user_input | simple.cpp:20:19:20:19 | a | -| simple.cpp:41:12:41:21 | call to user_input | simple.cpp:41:5:41:5 | ref arg h [a_] | -| simple.cpp:42:5:42:5 | ref arg h [b_] | simple.cpp:51:9:51:9 | h [b_] | -| simple.cpp:42:12:42:21 | call to user_input | simple.cpp:21:19:21:19 | b | -| simple.cpp:42:12:42:21 | call to user_input | simple.cpp:42:5:42:5 | ref arg h [b_] | -| simple.cpp:45:9:45:9 | f [a_] | simple.cpp:26:15:26:15 | f [a_] | -| simple.cpp:48:9:48:9 | g [b_] | simple.cpp:26:15:26:15 | f [b_] | -| simple.cpp:51:9:51:9 | h [a_] | simple.cpp:26:15:26:15 | f [a_] | -| simple.cpp:51:9:51:9 | h [b_] | simple.cpp:26:15:26:15 | f [b_] | -| simple.cpp:65:5:65:5 | a [post update] [i] | simple.cpp:67:10:67:11 | a2 [i] | -| simple.cpp:65:5:65:22 | ... = ... | simple.cpp:65:5:65:5 | a [post update] [i] | -| simple.cpp:65:11:65:20 | call to user_input | simple.cpp:65:5:65:22 | ... = ... | -| simple.cpp:67:10:67:11 | a2 [i] | simple.cpp:67:13:67:13 | i | -| simple.cpp:78:9:78:15 | this [f2, f1] | simple.cpp:79:16:79:17 | this [f2, f1] | -| simple.cpp:79:16:79:17 | f2 [f1] | simple.cpp:79:19:79:20 | f1 | -| simple.cpp:79:16:79:17 | this [f2, f1] | simple.cpp:79:16:79:17 | f2 [f1] | -| simple.cpp:83:9:83:10 | f2 [post update] [f1] | simple.cpp:83:9:83:10 | this [post update] [f2, f1] | -| simple.cpp:83:9:83:10 | this [post update] [f2, f1] | simple.cpp:84:14:84:20 | this [f2, f1] | -| simple.cpp:83:9:83:28 | ... = ... | simple.cpp:83:9:83:10 | f2 [post update] [f1] | -| simple.cpp:83:17:83:26 | call to user_input | simple.cpp:83:9:83:28 | ... = ... | -| simple.cpp:84:14:84:20 | this [f2, f1] | simple.cpp:78:9:78:15 | this [f2, f1] | -| simple.cpp:84:14:84:20 | this [f2, f1] | simple.cpp:84:14:84:20 | call to getf2f1 | -| simple.cpp:92:5:92:5 | a [post update] [i] | simple.cpp:94:10:94:11 | a2 [i] | -| simple.cpp:92:5:92:22 | ... = ... | simple.cpp:92:5:92:5 | a [post update] [i] | -| simple.cpp:92:11:92:20 | call to user_input | simple.cpp:92:5:92:22 | ... = ... | -| simple.cpp:94:10:94:11 | a2 [i] | simple.cpp:94:13:94:13 | i | -| struct_init.c:14:24:14:25 | ab [a] | struct_init.c:14:24:14:25 | ab [a] | -| struct_init.c:14:24:14:25 | ab [a] | struct_init.c:15:8:15:9 | ab [a] | -| struct_init.c:15:8:15:9 | ab [a] | struct_init.c:15:12:15:12 | a | -| struct_init.c:15:8:15:9 | ab [a] | struct_init.c:15:12:15:12 | a | -| struct_init.c:15:8:15:9 | ab [post update] [a] | struct_init.c:14:24:14:25 | ab [a] | -| struct_init.c:15:12:15:12 | a | realistic.cpp:41:17:41:17 | o | -| struct_init.c:15:12:15:12 | a | struct_init.c:15:12:15:12 | ref arg a | -| struct_init.c:15:12:15:12 | ref arg a | struct_init.c:15:8:15:9 | ab [post update] [a] | -| struct_init.c:20:17:20:36 | {...} [a] | struct_init.c:22:8:22:9 | ab [a] | -| struct_init.c:20:17:20:36 | {...} [a] | struct_init.c:24:11:24:12 | ab [a] | -| struct_init.c:20:17:20:36 | {...} [a] | struct_init.c:28:6:28:7 | ab [a] | -| struct_init.c:20:20:20:29 | call to user_input | struct_init.c:20:17:20:36 | {...} [a] | -| struct_init.c:22:8:22:9 | ab [a] | struct_init.c:22:11:22:11 | a | -| struct_init.c:22:8:22:9 | ab [a] | struct_init.c:22:11:22:11 | a | -| struct_init.c:22:8:22:9 | ab [post update] [a] | struct_init.c:24:11:24:12 | ab [a] | -| struct_init.c:22:8:22:9 | ab [post update] [a] | struct_init.c:28:6:28:7 | ab [a] | -| struct_init.c:22:11:22:11 | a | realistic.cpp:41:17:41:17 | o | -| struct_init.c:22:11:22:11 | a | struct_init.c:22:11:22:11 | ref arg a | -| struct_init.c:22:11:22:11 | ref arg a | struct_init.c:22:8:22:9 | ab [post update] [a] | -| struct_init.c:24:10:24:12 | & ... [a] | struct_init.c:14:24:14:25 | ab [a] | -| struct_init.c:24:10:24:12 | & ... [a] | struct_init.c:24:10:24:12 | ref arg & ... [a] | -| struct_init.c:24:10:24:12 | ref arg & ... [a] | struct_init.c:28:6:28:7 | ab [a] | -| struct_init.c:24:11:24:12 | ab [a] | struct_init.c:24:10:24:12 | & ... [a] | -| struct_init.c:26:23:29:3 | {...} [nestedAB, a] | struct_init.c:31:8:31:12 | outer [nestedAB, a] | -| struct_init.c:26:23:29:3 | {...} [nestedAB, a] | struct_init.c:36:11:36:15 | outer [nestedAB, a] | -| struct_init.c:26:23:29:3 | {...} [pointerAB, a] | struct_init.c:33:8:33:12 | outer [pointerAB, a] | -| struct_init.c:27:5:27:23 | {...} [a] | struct_init.c:26:23:29:3 | {...} [nestedAB, a] | -| struct_init.c:27:7:27:16 | call to user_input | struct_init.c:27:5:27:23 | {...} [a] | -| struct_init.c:28:5:28:7 | & ... [a] | struct_init.c:26:23:29:3 | {...} [pointerAB, a] | -| struct_init.c:28:6:28:7 | ab [a] | struct_init.c:28:5:28:7 | & ... [a] | -| struct_init.c:31:8:31:12 | outer [nestedAB, a] | struct_init.c:31:14:31:21 | nestedAB [a] | -| struct_init.c:31:8:31:12 | outer [post update] [nestedAB, a] | struct_init.c:36:11:36:15 | outer [nestedAB, a] | -| struct_init.c:31:14:31:21 | nestedAB [a] | struct_init.c:31:23:31:23 | a | -| struct_init.c:31:14:31:21 | nestedAB [a] | struct_init.c:31:23:31:23 | a | -| struct_init.c:31:14:31:21 | nestedAB [post update] [a] | struct_init.c:31:8:31:12 | outer [post update] [nestedAB, a] | -| struct_init.c:31:23:31:23 | a | realistic.cpp:41:17:41:17 | o | -| struct_init.c:31:23:31:23 | a | struct_init.c:31:23:31:23 | ref arg a | -| struct_init.c:31:23:31:23 | ref arg a | struct_init.c:31:14:31:21 | nestedAB [post update] [a] | -| struct_init.c:33:8:33:12 | outer [pointerAB, a] | struct_init.c:33:14:33:22 | pointerAB [a] | -| struct_init.c:33:14:33:22 | pointerAB [a] | struct_init.c:33:25:33:25 | a | -| struct_init.c:36:10:36:24 | & ... [a] | struct_init.c:14:24:14:25 | ab [a] | -| struct_init.c:36:11:36:15 | outer [nestedAB, a] | struct_init.c:36:17:36:24 | nestedAB [a] | -| struct_init.c:36:17:36:24 | nestedAB [a] | struct_init.c:36:10:36:24 | & ... [a] | -| struct_init.c:40:17:40:36 | {...} [a] | struct_init.c:43:6:43:7 | ab [a] | -| struct_init.c:40:20:40:29 | call to user_input | struct_init.c:40:17:40:36 | {...} [a] | -| struct_init.c:41:23:44:3 | {...} [pointerAB, a] | struct_init.c:46:10:46:14 | outer [pointerAB, a] | -| struct_init.c:43:5:43:7 | & ... [a] | struct_init.c:41:23:44:3 | {...} [pointerAB, a] | -| struct_init.c:43:6:43:7 | ab [a] | struct_init.c:43:5:43:7 | & ... [a] | -| struct_init.c:46:10:46:14 | outer [pointerAB, a] | struct_init.c:46:16:46:24 | pointerAB [a] | -| struct_init.c:46:16:46:24 | pointerAB [a] | struct_init.c:14:24:14:25 | ab [a] | +| A.cpp:23:10:23:10 | c | A.cpp:25:7:25:17 | ... = ... | provenance | | +| A.cpp:25:7:25:17 | ... = ... | A.cpp:25:7:25:10 | this [post update] [c] | provenance | | +| A.cpp:27:17:27:17 | c | A.cpp:27:22:27:32 | ... = ... | provenance | | +| A.cpp:27:22:27:32 | ... = ... | A.cpp:27:22:27:25 | this [post update] [c] | provenance | | +| A.cpp:28:8:28:10 | this [c] | A.cpp:28:23:28:26 | this [c] | provenance | | +| A.cpp:28:23:28:26 | this [c] | A.cpp:28:29:28:29 | c | provenance | | +| A.cpp:29:23:29:23 | c | A.cpp:31:20:31:20 | c | provenance | | +| A.cpp:31:14:31:21 | call to B [c] | A.cpp:31:14:31:21 | new [c] | provenance | | +| A.cpp:31:20:31:20 | c | A.cpp:23:10:23:10 | c | provenance | | +| A.cpp:31:20:31:20 | c | A.cpp:31:14:31:21 | call to B [c] | provenance | | +| A.cpp:41:5:41:6 | ref arg ct | A.cpp:43:11:43:12 | ct | provenance | | +| A.cpp:41:15:41:21 | new | A.cpp:41:5:41:6 | ref arg ct | provenance | | +| A.cpp:43:11:43:12 | ct | A.cpp:43:10:43:12 | & ... | provenance | | +| A.cpp:47:12:47:18 | new | A.cpp:48:20:48:20 | c | provenance | | +| A.cpp:48:12:48:18 | call to make [c] | A.cpp:49:10:49:10 | b [c] | provenance | | +| A.cpp:48:20:48:20 | c | A.cpp:29:23:29:23 | c | provenance | | +| A.cpp:48:20:48:20 | c | A.cpp:48:12:48:18 | call to make [c] | provenance | | +| A.cpp:49:10:49:10 | b [c] | A.cpp:49:13:49:13 | c | provenance | | +| A.cpp:55:5:55:5 | ref arg b [c] | A.cpp:56:10:56:10 | b [c] | provenance | | +| A.cpp:55:12:55:19 | new | A.cpp:27:17:27:17 | c | provenance | | +| A.cpp:55:12:55:19 | new | A.cpp:55:5:55:5 | ref arg b [c] | provenance | | +| A.cpp:56:10:56:10 | b [c] | A.cpp:28:8:28:10 | this [c] | provenance | | +| A.cpp:56:10:56:10 | b [c] | A.cpp:56:13:56:15 | call to get | provenance | | +| A.cpp:57:11:57:24 | call to B [c] | A.cpp:57:11:57:24 | new [c] | provenance | | +| A.cpp:57:11:57:24 | new [c] | A.cpp:28:8:28:10 | this [c] | provenance | | +| A.cpp:57:11:57:24 | new [c] | A.cpp:57:28:57:30 | call to get | provenance | | +| A.cpp:57:17:57:23 | new | A.cpp:23:10:23:10 | c | provenance | | +| A.cpp:57:17:57:23 | new | A.cpp:57:11:57:24 | call to B [c] | provenance | | +| A.cpp:64:10:64:15 | call to setOnB [c] | A.cpp:66:10:66:11 | b2 [c] | provenance | | +| A.cpp:64:21:64:28 | new | A.cpp:64:10:64:15 | call to setOnB [c] | provenance | | +| A.cpp:64:21:64:28 | new | A.cpp:85:26:85:26 | c | provenance | | +| A.cpp:66:10:66:11 | b2 [c] | A.cpp:66:14:66:14 | c | provenance | | +| A.cpp:73:10:73:19 | call to setOnBWrap [c] | A.cpp:75:10:75:11 | b2 [c] | provenance | | +| A.cpp:73:25:73:32 | new | A.cpp:73:10:73:19 | call to setOnBWrap [c] | provenance | | +| A.cpp:73:25:73:32 | new | A.cpp:78:27:78:27 | c | provenance | | +| A.cpp:75:10:75:11 | b2 [c] | A.cpp:75:14:75:14 | c | provenance | | +| A.cpp:78:27:78:27 | c | A.cpp:81:21:81:21 | c | provenance | | +| A.cpp:81:10:81:15 | call to setOnB [c] | A.cpp:82:12:82:24 | ... ? ... : ... [c] | provenance | | +| A.cpp:81:21:81:21 | c | A.cpp:81:10:81:15 | call to setOnB [c] | provenance | | +| A.cpp:81:21:81:21 | c | A.cpp:85:26:85:26 | c | provenance | | +| A.cpp:85:26:85:26 | c | A.cpp:90:15:90:15 | c | provenance | | +| A.cpp:90:7:90:8 | ref arg b2 [c] | A.cpp:91:14:91:15 | b2 [c] | provenance | | +| A.cpp:90:15:90:15 | c | A.cpp:27:17:27:17 | c | provenance | | +| A.cpp:90:15:90:15 | c | A.cpp:90:7:90:8 | ref arg b2 [c] | provenance | | +| A.cpp:98:12:98:18 | new | A.cpp:100:5:100:13 | ... = ... | provenance | | +| A.cpp:100:5:100:6 | c1 [post update] [a] | A.cpp:101:8:101:9 | c1 [a] | provenance | | +| A.cpp:100:5:100:13 | ... = ... | A.cpp:100:5:100:6 | c1 [post update] [a] | provenance | | +| A.cpp:101:8:101:9 | c1 [a] | A.cpp:103:14:103:14 | c [a] | provenance | | +| A.cpp:103:14:103:14 | c [a] | A.cpp:107:12:107:13 | c1 [a] | provenance | | +| A.cpp:103:14:103:14 | c [a] | A.cpp:120:12:120:13 | c1 [a] | provenance | | +| A.cpp:107:12:107:13 | c1 [a] | A.cpp:107:16:107:16 | a | provenance | | +| A.cpp:120:12:120:13 | c1 [a] | A.cpp:120:16:120:16 | a | provenance | | +| A.cpp:124:14:124:14 | b [c] | A.cpp:131:8:131:8 | ref arg b [c] | provenance | | +| A.cpp:126:5:126:5 | ref arg b [c] | A.cpp:124:14:124:14 | b [c] | provenance | | +| A.cpp:126:5:126:5 | ref arg b [c] | A.cpp:131:8:131:8 | ref arg b [c] | provenance | | +| A.cpp:126:12:126:18 | new | A.cpp:27:17:27:17 | c | provenance | | +| A.cpp:126:12:126:18 | new | A.cpp:126:5:126:5 | ref arg b [c] | provenance | | +| A.cpp:131:8:131:8 | ref arg b [c] | A.cpp:132:10:132:10 | b [c] | provenance | | +| A.cpp:132:10:132:10 | b [c] | A.cpp:132:13:132:13 | c | provenance | | +| A.cpp:140:13:140:13 | b | A.cpp:143:7:143:31 | ... = ... | provenance | | +| A.cpp:140:13:140:13 | b [c] | A.cpp:151:18:151:18 | ref arg b [c] | provenance | | +| A.cpp:142:7:142:7 | b [post update] [c] | A.cpp:140:13:140:13 | b [c] | provenance | | +| A.cpp:142:7:142:7 | b [post update] [c] | A.cpp:143:7:143:31 | ... = ... [c] | provenance | | +| A.cpp:142:7:142:7 | b [post update] [c] | A.cpp:151:18:151:18 | ref arg b [c] | provenance | | +| A.cpp:142:7:142:20 | ... = ... | A.cpp:142:7:142:7 | b [post update] [c] | provenance | | +| A.cpp:142:14:142:20 | new | A.cpp:142:7:142:20 | ... = ... | provenance | | +| A.cpp:143:7:143:10 | this [post update] [b, c] | A.cpp:151:12:151:24 | call to D [b, c] | provenance | | +| A.cpp:143:7:143:10 | this [post update] [b] | A.cpp:151:12:151:24 | call to D [b] | provenance | | +| A.cpp:143:7:143:31 | ... = ... | A.cpp:143:7:143:10 | this [post update] [b] | provenance | | +| A.cpp:143:7:143:31 | ... = ... | A.cpp:143:7:143:10 | this [post update] [b] | provenance | | +| A.cpp:143:7:143:31 | ... = ... [c] | A.cpp:143:7:143:10 | this [post update] [b, c] | provenance | | +| A.cpp:143:25:143:31 | new | A.cpp:143:7:143:31 | ... = ... | provenance | | +| A.cpp:150:12:150:18 | new | A.cpp:151:18:151:18 | b | provenance | | +| A.cpp:151:12:151:24 | call to D [b, c] | A.cpp:152:10:152:10 | d [b, c] | provenance | | +| A.cpp:151:12:151:24 | call to D [b, c] | A.cpp:153:10:153:10 | d [b, c] | provenance | | +| A.cpp:151:12:151:24 | call to D [b] | A.cpp:152:10:152:10 | d [b] | provenance | | +| A.cpp:151:18:151:18 | b | A.cpp:140:13:140:13 | b | provenance | | +| A.cpp:151:18:151:18 | b | A.cpp:151:12:151:24 | call to D [b] | provenance | | +| A.cpp:151:18:151:18 | ref arg b [c] | A.cpp:154:10:154:10 | b [c] | provenance | | +| A.cpp:152:10:152:10 | d [b, c] | A.cpp:152:13:152:13 | b [c] | provenance | | +| A.cpp:152:10:152:10 | d [b] | A.cpp:152:13:152:13 | b | provenance | | +| A.cpp:152:10:152:10 | d [post update] [b, c] | A.cpp:153:10:153:10 | d [b, c] | provenance | | +| A.cpp:152:13:152:13 | b [c] | A.cpp:152:13:152:13 | ref arg b [c] | provenance | | +| A.cpp:152:13:152:13 | b [c] | A.cpp:173:26:173:26 | o [c] | provenance | | +| A.cpp:152:13:152:13 | ref arg b [c] | A.cpp:152:10:152:10 | d [post update] [b, c] | provenance | | +| A.cpp:153:10:153:10 | d [b, c] | A.cpp:153:13:153:13 | b [c] | provenance | | +| A.cpp:153:13:153:13 | b [c] | A.cpp:153:16:153:16 | c | provenance | | +| A.cpp:154:10:154:10 | b [c] | A.cpp:154:13:154:13 | c | provenance | | +| A.cpp:159:12:159:18 | new | A.cpp:160:29:160:29 | b | provenance | | +| A.cpp:160:18:160:60 | call to MyList [head] | A.cpp:161:38:161:39 | l1 [head] | provenance | | +| A.cpp:160:29:160:29 | b | A.cpp:160:18:160:60 | call to MyList [head] | provenance | | +| A.cpp:160:29:160:29 | b | A.cpp:181:15:181:21 | newHead | provenance | | +| A.cpp:161:18:161:40 | call to MyList [next, head] | A.cpp:162:38:162:39 | l2 [next, head] | provenance | | +| A.cpp:161:38:161:39 | l1 [head] | A.cpp:161:18:161:40 | call to MyList [next, head] | provenance | | +| A.cpp:161:38:161:39 | l1 [head] | A.cpp:181:32:181:35 | next [head] | provenance | | +| A.cpp:162:18:162:40 | call to MyList [next, next, head] | A.cpp:165:10:165:11 | l3 [next, next, head] | provenance | | +| A.cpp:162:18:162:40 | call to MyList [next, next, head] | A.cpp:167:44:167:44 | l [next, next, head] | provenance | | +| A.cpp:162:38:162:39 | l2 [next, head] | A.cpp:162:18:162:40 | call to MyList [next, next, head] | provenance | | +| A.cpp:162:38:162:39 | l2 [next, head] | A.cpp:181:32:181:35 | next [next, head] | provenance | | +| A.cpp:165:10:165:11 | l3 [next, next, head] | A.cpp:165:14:165:17 | next [next, head] | provenance | | +| A.cpp:165:10:165:11 | l3 [post update] [next, next, head] | A.cpp:167:44:167:44 | l [next, next, head] | provenance | | +| A.cpp:165:14:165:17 | next [next, head] | A.cpp:165:20:165:23 | next [head] | provenance | | +| A.cpp:165:14:165:17 | next [post update] [next, head] | A.cpp:165:10:165:11 | l3 [post update] [next, next, head] | provenance | | +| A.cpp:165:20:165:23 | next [head] | A.cpp:165:26:165:29 | head | provenance | | +| A.cpp:165:20:165:23 | next [head] | A.cpp:165:26:165:29 | head | provenance | | +| A.cpp:165:20:165:23 | next [post update] [head] | A.cpp:165:14:165:17 | next [post update] [next, head] | provenance | | +| A.cpp:165:26:165:29 | head | A.cpp:165:26:165:29 | ref arg head | provenance | | +| A.cpp:165:26:165:29 | head | A.cpp:173:26:173:26 | o | provenance | | +| A.cpp:165:26:165:29 | ref arg head | A.cpp:165:20:165:23 | next [post update] [head] | provenance | | +| A.cpp:167:44:167:44 | l [next, head] | A.cpp:167:47:167:50 | next [head] | provenance | | +| A.cpp:167:44:167:44 | l [next, next, head] | A.cpp:167:47:167:50 | next [next, head] | provenance | | +| A.cpp:167:47:167:50 | next [head] | A.cpp:169:12:169:12 | l [head] | provenance | | +| A.cpp:167:47:167:50 | next [next, head] | A.cpp:167:44:167:44 | l [next, head] | provenance | | +| A.cpp:169:12:169:12 | l [head] | A.cpp:169:15:169:18 | head | provenance | | +| A.cpp:173:26:173:26 | o | A.cpp:173:26:173:26 | o | provenance | | +| A.cpp:173:26:173:26 | o [c] | A.cpp:173:26:173:26 | o [c] | provenance | | +| A.cpp:181:15:181:21 | newHead | A.cpp:183:7:183:20 | ... = ... | provenance | | +| A.cpp:181:32:181:35 | next [head] | A.cpp:184:7:184:23 | ... = ... [head] | provenance | | +| A.cpp:181:32:181:35 | next [next, head] | A.cpp:184:7:184:23 | ... = ... [next, head] | provenance | | +| A.cpp:183:7:183:20 | ... = ... | A.cpp:183:7:183:10 | this [post update] [head] | provenance | | +| A.cpp:184:7:184:23 | ... = ... [head] | A.cpp:184:7:184:10 | this [post update] [next, head] | provenance | | +| A.cpp:184:7:184:23 | ... = ... [next, head] | A.cpp:184:7:184:10 | this [post update] [next, next, head] | provenance | | +| B.cpp:6:15:6:24 | new | B.cpp:7:25:7:25 | e | provenance | | +| B.cpp:7:16:7:35 | call to Box1 [elem1] | B.cpp:8:25:8:26 | b1 [elem1] | provenance | | +| B.cpp:7:25:7:25 | e | B.cpp:7:16:7:35 | call to Box1 [elem1] | provenance | | +| B.cpp:7:25:7:25 | e | B.cpp:33:16:33:17 | e1 | provenance | | +| B.cpp:8:16:8:27 | call to Box2 [box1, elem1] | B.cpp:9:10:9:11 | b2 [box1, elem1] | provenance | | +| B.cpp:8:25:8:26 | b1 [elem1] | B.cpp:8:16:8:27 | call to Box2 [box1, elem1] | provenance | | +| B.cpp:8:25:8:26 | b1 [elem1] | B.cpp:44:16:44:17 | b1 [elem1] | provenance | | +| B.cpp:9:10:9:11 | b2 [box1, elem1] | B.cpp:9:14:9:17 | box1 [elem1] | provenance | | +| B.cpp:9:14:9:17 | box1 [elem1] | B.cpp:9:20:9:24 | elem1 | provenance | | +| B.cpp:15:15:15:27 | new | B.cpp:16:37:16:37 | e | provenance | | +| B.cpp:16:16:16:38 | call to Box1 [elem2] | B.cpp:17:25:17:26 | b1 [elem2] | provenance | | +| B.cpp:16:37:16:37 | e | B.cpp:16:16:16:38 | call to Box1 [elem2] | provenance | | +| B.cpp:16:37:16:37 | e | B.cpp:33:26:33:27 | e2 | provenance | | +| B.cpp:17:16:17:27 | call to Box2 [box1, elem2] | B.cpp:19:10:19:11 | b2 [box1, elem2] | provenance | | +| B.cpp:17:25:17:26 | b1 [elem2] | B.cpp:17:16:17:27 | call to Box2 [box1, elem2] | provenance | | +| B.cpp:17:25:17:26 | b1 [elem2] | B.cpp:44:16:44:17 | b1 [elem2] | provenance | | +| B.cpp:19:10:19:11 | b2 [box1, elem2] | B.cpp:19:14:19:17 | box1 [elem2] | provenance | | +| B.cpp:19:14:19:17 | box1 [elem2] | B.cpp:19:20:19:24 | elem2 | provenance | | +| B.cpp:33:16:33:17 | e1 | B.cpp:35:7:35:22 | ... = ... | provenance | | +| B.cpp:33:26:33:27 | e2 | B.cpp:36:7:36:22 | ... = ... | provenance | | +| B.cpp:35:7:35:22 | ... = ... | B.cpp:35:7:35:10 | this [post update] [elem1] | provenance | | +| B.cpp:36:7:36:22 | ... = ... | B.cpp:36:7:36:10 | this [post update] [elem2] | provenance | | +| B.cpp:44:16:44:17 | b1 [elem1] | B.cpp:46:7:46:21 | ... = ... [elem1] | provenance | | +| B.cpp:44:16:44:17 | b1 [elem2] | B.cpp:46:7:46:21 | ... = ... [elem2] | provenance | | +| B.cpp:46:7:46:21 | ... = ... [elem1] | B.cpp:46:7:46:10 | this [post update] [box1, elem1] | provenance | | +| B.cpp:46:7:46:21 | ... = ... [elem2] | B.cpp:46:7:46:10 | this [post update] [box1, elem2] | provenance | | +| C.cpp:18:12:18:18 | call to C [s1] | C.cpp:19:5:19:5 | c [s1] | provenance | | +| C.cpp:18:12:18:18 | call to C [s3] | C.cpp:19:5:19:5 | c [s3] | provenance | | +| C.cpp:19:5:19:5 | c [s1] | C.cpp:27:8:27:11 | this [s1] | provenance | | +| C.cpp:19:5:19:5 | c [s3] | C.cpp:27:8:27:11 | this [s3] | provenance | | +| C.cpp:22:9:22:22 | constructor init of field s1 [post-this] [s1] | C.cpp:18:12:18:18 | call to C [s1] | provenance | | +| C.cpp:22:12:22:21 | new | C.cpp:22:9:22:22 | constructor init of field s1 [post-this] [s1] | provenance | | +| C.cpp:24:5:24:8 | this [post update] [s3] | C.cpp:18:12:18:18 | call to C [s3] | provenance | | +| C.cpp:24:5:24:25 | ... = ... | C.cpp:24:5:24:8 | this [post update] [s3] | provenance | | +| C.cpp:24:16:24:25 | new | C.cpp:24:5:24:25 | ... = ... | provenance | | +| C.cpp:27:8:27:11 | this [s1] | C.cpp:29:10:29:11 | this [s1] | provenance | | +| C.cpp:27:8:27:11 | this [s3] | C.cpp:31:10:31:11 | this [s3] | provenance | | +| C.cpp:29:10:29:11 | this [s1] | C.cpp:29:10:29:11 | s1 | provenance | | +| C.cpp:31:10:31:11 | this [s3] | C.cpp:31:10:31:11 | s3 | provenance | | +| D.cpp:10:11:10:17 | this [elem] | D.cpp:10:30:10:33 | this [elem] | provenance | | +| D.cpp:10:30:10:33 | this [elem] | D.cpp:10:30:10:33 | elem | provenance | | +| D.cpp:11:24:11:24 | e | D.cpp:11:29:11:36 | ... = ... | provenance | | +| D.cpp:11:29:11:36 | ... = ... | D.cpp:11:29:11:32 | this [post update] [elem] | provenance | | +| D.cpp:17:11:17:17 | this [box, elem] | D.cpp:17:30:17:32 | this [box, elem] | provenance | | +| D.cpp:17:30:17:32 | this [box, elem] | D.cpp:17:30:17:32 | box [elem] | provenance | | +| D.cpp:21:30:21:31 | b2 [box, elem] | D.cpp:22:10:22:11 | b2 [box, elem] | provenance | | +| D.cpp:22:10:22:11 | b2 [box, elem] | D.cpp:17:11:17:17 | this [box, elem] | provenance | | +| D.cpp:22:10:22:11 | b2 [box, elem] | D.cpp:22:14:22:20 | call to getBox1 [elem] | provenance | | +| D.cpp:22:14:22:20 | call to getBox1 [elem] | D.cpp:10:11:10:17 | this [elem] | provenance | | +| D.cpp:22:14:22:20 | call to getBox1 [elem] | D.cpp:22:25:22:31 | call to getElem | provenance | | +| D.cpp:28:15:28:24 | new | D.cpp:30:5:30:20 | ... = ... | provenance | | +| D.cpp:30:5:30:5 | b [post update] [box, elem] | D.cpp:31:14:31:14 | b [box, elem] | provenance | | +| D.cpp:30:5:30:20 | ... = ... | D.cpp:30:8:30:10 | box [post update] [elem] | provenance | | +| D.cpp:30:8:30:10 | box [post update] [elem] | D.cpp:30:5:30:5 | b [post update] [box, elem] | provenance | | +| D.cpp:31:14:31:14 | b [box, elem] | D.cpp:21:30:21:31 | b2 [box, elem] | provenance | | +| D.cpp:35:15:35:24 | new | D.cpp:37:21:37:21 | e | provenance | | +| D.cpp:37:5:37:5 | b [post update] [box, elem] | D.cpp:38:14:38:14 | b [box, elem] | provenance | | +| D.cpp:37:8:37:10 | ref arg box [elem] | D.cpp:37:5:37:5 | b [post update] [box, elem] | provenance | | +| D.cpp:37:21:37:21 | e | D.cpp:11:24:11:24 | e | provenance | | +| D.cpp:37:21:37:21 | e | D.cpp:37:8:37:10 | ref arg box [elem] | provenance | | +| D.cpp:38:14:38:14 | b [box, elem] | D.cpp:21:30:21:31 | b2 [box, elem] | provenance | | +| D.cpp:42:15:42:24 | new | D.cpp:44:5:44:26 | ... = ... | provenance | | +| D.cpp:44:5:44:5 | ref arg b [box, elem] | D.cpp:45:14:45:14 | b [box, elem] | provenance | | +| D.cpp:44:5:44:26 | ... = ... | D.cpp:44:8:44:14 | call to getBox1 [post update] [elem] | provenance | | +| D.cpp:44:8:44:14 | call to getBox1 [post update] [elem] | D.cpp:44:5:44:5 | ref arg b [box, elem] | provenance | | +| D.cpp:45:14:45:14 | b [box, elem] | D.cpp:21:30:21:31 | b2 [box, elem] | provenance | | +| D.cpp:49:15:49:24 | new | D.cpp:51:27:51:27 | e | provenance | | +| D.cpp:51:5:51:5 | ref arg b [box, elem] | D.cpp:52:14:52:14 | b [box, elem] | provenance | | +| D.cpp:51:8:51:14 | ref arg call to getBox1 [elem] | D.cpp:51:5:51:5 | ref arg b [box, elem] | provenance | | +| D.cpp:51:27:51:27 | e | D.cpp:11:24:11:24 | e | provenance | | +| D.cpp:51:27:51:27 | e | D.cpp:51:8:51:14 | ref arg call to getBox1 [elem] | provenance | | +| D.cpp:52:14:52:14 | b [box, elem] | D.cpp:21:30:21:31 | b2 [box, elem] | provenance | | +| D.cpp:56:15:56:24 | new | D.cpp:58:5:58:27 | ... = ... | provenance | | +| D.cpp:58:5:58:12 | boxfield [post update] [box, elem] | D.cpp:58:5:58:12 | this [post update] [boxfield, box, elem] | provenance | | +| D.cpp:58:5:58:12 | this [post update] [boxfield, box, elem] | D.cpp:59:5:59:7 | this [boxfield, box, elem] | provenance | | +| D.cpp:58:5:58:27 | ... = ... | D.cpp:58:15:58:17 | box [post update] [elem] | provenance | | +| D.cpp:58:15:58:17 | box [post update] [elem] | D.cpp:58:5:58:12 | boxfield [post update] [box, elem] | provenance | | +| D.cpp:59:5:59:7 | this [boxfield, box, elem] | D.cpp:63:8:63:10 | this [boxfield, box, elem] | provenance | | +| D.cpp:63:8:63:10 | this [boxfield, box, elem] | D.cpp:64:10:64:17 | this [boxfield, box, elem] | provenance | | +| D.cpp:64:10:64:17 | boxfield [box, elem] | D.cpp:64:20:64:22 | box [elem] | provenance | | +| D.cpp:64:10:64:17 | this [boxfield, box, elem] | D.cpp:64:10:64:17 | boxfield [box, elem] | provenance | | +| D.cpp:64:20:64:22 | box [elem] | D.cpp:64:25:64:28 | elem | provenance | | +| E.cpp:19:27:19:27 | p [data, buffer] | E.cpp:21:10:21:10 | p [data, buffer] | provenance | | +| E.cpp:21:10:21:10 | p [data, buffer] | E.cpp:21:13:21:16 | data [buffer] | provenance | | +| E.cpp:21:13:21:16 | data [buffer] | E.cpp:21:18:21:23 | buffer | provenance | | +| E.cpp:28:21:28:23 | ref arg raw | E.cpp:31:10:31:12 | raw | provenance | | +| E.cpp:29:21:29:21 | b [post update] [buffer] | E.cpp:32:10:32:10 | b [buffer] | provenance | | +| E.cpp:29:24:29:29 | ref arg buffer | E.cpp:29:21:29:21 | b [post update] [buffer] | provenance | | +| E.cpp:30:21:30:21 | p [post update] [data, buffer] | E.cpp:33:19:33:19 | p [data, buffer] | provenance | | +| E.cpp:30:23:30:26 | data [post update] [buffer] | E.cpp:30:21:30:21 | p [post update] [data, buffer] | provenance | | +| E.cpp:30:28:30:33 | ref arg buffer | E.cpp:30:23:30:26 | data [post update] [buffer] | provenance | | +| E.cpp:32:10:32:10 | b [buffer] | E.cpp:32:13:32:18 | buffer | provenance | | +| E.cpp:33:18:33:19 | & ... [data, buffer] | E.cpp:19:27:19:27 | p [data, buffer] | provenance | | +| E.cpp:33:19:33:19 | p [data, buffer] | E.cpp:33:18:33:19 | & ... [data, buffer] | provenance | | +| aliasing.cpp:8:23:8:23 | s [m1] | aliasing.cpp:25:17:25:19 | ref arg & ... [m1] | provenance | | +| aliasing.cpp:9:3:9:3 | s [post update] [m1] | aliasing.cpp:8:23:8:23 | s [m1] | provenance | | +| aliasing.cpp:9:3:9:3 | s [post update] [m1] | aliasing.cpp:25:17:25:19 | ref arg & ... [m1] | provenance | | +| aliasing.cpp:9:3:9:22 | ... = ... | aliasing.cpp:9:3:9:3 | s [post update] [m1] | provenance | | +| aliasing.cpp:9:11:9:20 | call to user_input | aliasing.cpp:9:3:9:22 | ... = ... | provenance | | +| aliasing.cpp:12:25:12:25 | s [m1] | aliasing.cpp:26:19:26:20 | ref arg s2 [m1] | provenance | | +| aliasing.cpp:13:3:13:3 | s [post update] [m1] | aliasing.cpp:12:25:12:25 | s [m1] | provenance | | +| aliasing.cpp:13:3:13:3 | s [post update] [m1] | aliasing.cpp:26:19:26:20 | ref arg s2 [m1] | provenance | | +| aliasing.cpp:13:3:13:21 | ... = ... | aliasing.cpp:13:3:13:3 | s [post update] [m1] | provenance | | +| aliasing.cpp:13:10:13:19 | call to user_input | aliasing.cpp:13:3:13:21 | ... = ... | provenance | | +| aliasing.cpp:25:17:25:19 | ref arg & ... [m1] | aliasing.cpp:29:8:29:9 | s1 [m1] | provenance | | +| aliasing.cpp:26:19:26:20 | ref arg s2 [m1] | aliasing.cpp:30:8:30:9 | s2 [m1] | provenance | | +| aliasing.cpp:29:8:29:9 | s1 [m1] | aliasing.cpp:29:11:29:12 | m1 | provenance | | +| aliasing.cpp:30:8:30:9 | s2 [m1] | aliasing.cpp:30:11:30:12 | m1 | provenance | | +| aliasing.cpp:60:3:60:4 | s2 [post update] [m1] | aliasing.cpp:62:8:62:12 | copy2 [m1] | provenance | | +| aliasing.cpp:60:3:60:22 | ... = ... | aliasing.cpp:60:3:60:4 | s2 [post update] [m1] | provenance | | +| aliasing.cpp:60:11:60:20 | call to user_input | aliasing.cpp:60:3:60:22 | ... = ... | provenance | | +| aliasing.cpp:62:8:62:12 | copy2 [m1] | aliasing.cpp:62:14:62:15 | m1 | provenance | | +| aliasing.cpp:92:3:92:3 | w [post update] [s, m1] | aliasing.cpp:93:8:93:8 | w [s, m1] | provenance | | +| aliasing.cpp:92:3:92:23 | ... = ... | aliasing.cpp:92:5:92:5 | s [post update] [m1] | provenance | | +| aliasing.cpp:92:5:92:5 | s [post update] [m1] | aliasing.cpp:92:3:92:3 | w [post update] [s, m1] | provenance | | +| aliasing.cpp:92:12:92:21 | call to user_input | aliasing.cpp:92:3:92:23 | ... = ... | provenance | | +| aliasing.cpp:93:8:93:8 | w [s, m1] | aliasing.cpp:93:10:93:10 | s [m1] | provenance | | +| aliasing.cpp:93:10:93:10 | s [m1] | aliasing.cpp:93:12:93:13 | m1 | provenance | | +| aliasing.cpp:105:23:105:24 | pa | aliasing.cpp:158:17:158:20 | ref arg data | provenance | | +| aliasing.cpp:105:23:105:24 | pa | aliasing.cpp:164:17:164:20 | ref arg data | provenance | | +| aliasing.cpp:105:23:105:24 | pa | aliasing.cpp:175:15:175:22 | ref arg & ... | provenance | | +| aliasing.cpp:105:23:105:24 | pa | aliasing.cpp:187:15:187:22 | ref arg & ... | provenance | | +| aliasing.cpp:105:23:105:24 | pa | aliasing.cpp:200:15:200:24 | ref arg & ... | provenance | | +| aliasing.cpp:106:4:106:5 | pa [inner post update] | aliasing.cpp:158:17:158:20 | ref arg data | provenance | | +| aliasing.cpp:106:4:106:5 | pa [inner post update] | aliasing.cpp:164:17:164:20 | ref arg data | provenance | | +| aliasing.cpp:106:4:106:5 | pa [inner post update] | aliasing.cpp:175:15:175:22 | ref arg & ... | provenance | | +| aliasing.cpp:106:4:106:5 | pa [inner post update] | aliasing.cpp:187:15:187:22 | ref arg & ... | provenance | | +| aliasing.cpp:106:4:106:5 | pa [inner post update] | aliasing.cpp:200:15:200:24 | ref arg & ... | provenance | | +| aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:105:23:105:24 | pa | provenance | | +| aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:106:4:106:5 | pa [inner post update] | provenance | | +| aliasing.cpp:158:15:158:15 | s [post update] [data] | aliasing.cpp:159:9:159:9 | s [data] | provenance | | +| aliasing.cpp:158:17:158:20 | ref arg data | aliasing.cpp:158:15:158:15 | s [post update] [data] | provenance | | +| aliasing.cpp:159:9:159:9 | s [data] | aliasing.cpp:159:11:159:14 | data | provenance | | +| aliasing.cpp:159:11:159:14 | data | aliasing.cpp:159:8:159:14 | * ... | provenance | | +| aliasing.cpp:164:15:164:15 | s [post update] [data] | aliasing.cpp:165:8:165:8 | s [data] | provenance | | +| aliasing.cpp:164:17:164:20 | ref arg data | aliasing.cpp:164:15:164:15 | s [post update] [data] | provenance | | +| aliasing.cpp:165:8:165:8 | s [data] | aliasing.cpp:165:10:165:13 | data | provenance | | +| aliasing.cpp:165:10:165:13 | data | aliasing.cpp:165:8:165:16 | access to array | provenance | | +| aliasing.cpp:175:15:175:22 | ref arg & ... | aliasing.cpp:175:21:175:22 | m1 [inner post update] | provenance | | +| aliasing.cpp:175:16:175:17 | s2 [post update] [s, m1] | aliasing.cpp:176:8:176:9 | s2 [s, m1] | provenance | | +| aliasing.cpp:175:19:175:19 | s [post update] [m1] | aliasing.cpp:175:16:175:17 | s2 [post update] [s, m1] | provenance | | +| aliasing.cpp:175:21:175:22 | m1 [inner post update] | aliasing.cpp:175:19:175:19 | s [post update] [m1] | provenance | | +| aliasing.cpp:176:8:176:9 | s2 [s, m1] | aliasing.cpp:176:11:176:11 | s [m1] | provenance | | +| aliasing.cpp:176:11:176:11 | s [m1] | aliasing.cpp:176:13:176:14 | m1 | provenance | | +| aliasing.cpp:187:15:187:22 | ref arg & ... | aliasing.cpp:187:21:187:22 | m1 [inner post update] | provenance | | +| aliasing.cpp:187:16:187:17 | s2 [post update] [s, m1] | aliasing.cpp:189:8:189:11 | s2_2 [s, m1] | provenance | | +| aliasing.cpp:187:19:187:19 | s [post update] [m1] | aliasing.cpp:187:16:187:17 | s2 [post update] [s, m1] | provenance | | +| aliasing.cpp:187:21:187:22 | m1 [inner post update] | aliasing.cpp:187:19:187:19 | s [post update] [m1] | provenance | | +| aliasing.cpp:189:8:189:11 | s2_2 [s, m1] | aliasing.cpp:189:13:189:13 | s [m1] | provenance | | +| aliasing.cpp:189:13:189:13 | s [m1] | aliasing.cpp:189:15:189:16 | m1 | provenance | | +| aliasing.cpp:200:15:200:24 | ref arg & ... | aliasing.cpp:200:23:200:24 | m1 [inner post update] | provenance | | +| aliasing.cpp:200:16:200:18 | ps2 [post update] [s, m1] | aliasing.cpp:201:8:201:10 | ps2 [s, m1] | provenance | | +| aliasing.cpp:200:21:200:21 | s [post update] [m1] | aliasing.cpp:200:16:200:18 | ps2 [post update] [s, m1] | provenance | | +| aliasing.cpp:200:23:200:24 | m1 [inner post update] | aliasing.cpp:200:21:200:21 | s [post update] [m1] | provenance | | +| aliasing.cpp:201:8:201:10 | ps2 [s, m1] | aliasing.cpp:201:13:201:13 | s [m1] | provenance | | +| aliasing.cpp:201:13:201:13 | s [m1] | aliasing.cpp:201:15:201:16 | m1 | provenance | | +| arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:7:8:7:13 | access to array | provenance | | +| arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:8:8:8:13 | access to array | provenance | | +| arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:9:8:9:11 | * ... | provenance | | +| arrays.cpp:6:12:6:21 | call to user_input | arrays.cpp:10:8:10:15 | * ... | provenance | | +| arrays.cpp:15:14:15:23 | call to user_input | arrays.cpp:16:8:16:13 | access to array | provenance | | +| arrays.cpp:15:14:15:23 | call to user_input | arrays.cpp:17:8:17:13 | access to array | provenance | | +| arrays.cpp:36:3:36:3 | o [post update] [nested, arr, data] | arrays.cpp:37:8:37:8 | o [nested, arr, data] | provenance | | +| arrays.cpp:36:3:36:3 | o [post update] [nested, arr, data] | arrays.cpp:38:8:38:8 | o [nested, arr, data] | provenance | | +| arrays.cpp:36:3:36:17 | access to array [post update] [data] | arrays.cpp:36:12:36:14 | arr [inner post update] [data] | provenance | | +| arrays.cpp:36:3:36:37 | ... = ... | arrays.cpp:36:3:36:17 | access to array [post update] [data] | provenance | | +| arrays.cpp:36:5:36:10 | nested [post update] [arr, data] | arrays.cpp:36:3:36:3 | o [post update] [nested, arr, data] | provenance | | +| arrays.cpp:36:12:36:14 | arr [inner post update] [data] | arrays.cpp:36:5:36:10 | nested [post update] [arr, data] | provenance | | +| arrays.cpp:36:26:36:35 | call to user_input | arrays.cpp:36:3:36:37 | ... = ... | provenance | | +| arrays.cpp:37:8:37:8 | o [nested, arr, data] | arrays.cpp:37:10:37:15 | nested [arr, data] | provenance | | +| arrays.cpp:37:8:37:8 | o [post update] [nested, arr, data] | arrays.cpp:38:8:38:8 | o [nested, arr, data] | provenance | | +| arrays.cpp:37:8:37:22 | access to array [data] | arrays.cpp:37:24:37:27 | data | provenance | | +| arrays.cpp:37:8:37:22 | access to array [data] | arrays.cpp:37:24:37:27 | data | provenance | | +| arrays.cpp:37:8:37:22 | access to array [post update] [data] | arrays.cpp:37:17:37:19 | arr [inner post update] [data] | provenance | | +| arrays.cpp:37:10:37:15 | nested [arr, data] | arrays.cpp:37:17:37:19 | arr [data] | provenance | | +| arrays.cpp:37:10:37:15 | nested [post update] [arr, data] | arrays.cpp:37:8:37:8 | o [post update] [nested, arr, data] | provenance | | +| arrays.cpp:37:17:37:19 | arr [data] | arrays.cpp:37:8:37:22 | access to array [data] | provenance | | +| arrays.cpp:37:17:37:19 | arr [inner post update] [data] | arrays.cpp:37:10:37:15 | nested [post update] [arr, data] | provenance | | +| arrays.cpp:37:24:37:27 | data | arrays.cpp:37:24:37:27 | ref arg data | provenance | | +| arrays.cpp:37:24:37:27 | data | realistic.cpp:41:17:41:17 | o | provenance | | +| arrays.cpp:37:24:37:27 | ref arg data | arrays.cpp:37:8:37:22 | access to array [post update] [data] | provenance | | +| arrays.cpp:38:8:38:8 | o [nested, arr, data] | arrays.cpp:38:10:38:15 | nested [arr, data] | provenance | | +| arrays.cpp:38:8:38:22 | access to array [data] | arrays.cpp:38:24:38:27 | data | provenance | | +| arrays.cpp:38:10:38:15 | nested [arr, data] | arrays.cpp:38:17:38:19 | arr [data] | provenance | | +| arrays.cpp:38:17:38:19 | arr [data] | arrays.cpp:38:8:38:22 | access to array [data] | provenance | | +| arrays.cpp:42:3:42:3 | o [post update] [indirect, arr, data] | arrays.cpp:43:8:43:8 | o [indirect, arr, data] | provenance | | +| arrays.cpp:42:3:42:3 | o [post update] [indirect, arr, data] | arrays.cpp:44:8:44:8 | o [indirect, arr, data] | provenance | | +| arrays.cpp:42:3:42:20 | access to array [post update] [data] | arrays.cpp:42:15:42:17 | arr [inner post update] [data] | provenance | | +| arrays.cpp:42:3:42:40 | ... = ... | arrays.cpp:42:3:42:20 | access to array [post update] [data] | provenance | | +| arrays.cpp:42:5:42:12 | indirect [post update] [arr, data] | arrays.cpp:42:3:42:3 | o [post update] [indirect, arr, data] | provenance | | +| arrays.cpp:42:15:42:17 | arr [inner post update] [data] | arrays.cpp:42:5:42:12 | indirect [post update] [arr, data] | provenance | | +| arrays.cpp:42:29:42:38 | call to user_input | arrays.cpp:42:3:42:40 | ... = ... | provenance | | +| arrays.cpp:43:8:43:8 | o [indirect, arr, data] | arrays.cpp:43:10:43:17 | indirect [arr, data] | provenance | | +| arrays.cpp:43:8:43:8 | o [post update] [indirect, arr, data] | arrays.cpp:44:8:44:8 | o [indirect, arr, data] | provenance | | +| arrays.cpp:43:8:43:25 | access to array [data] | arrays.cpp:43:27:43:30 | data | provenance | | +| arrays.cpp:43:8:43:25 | access to array [data] | arrays.cpp:43:27:43:30 | data | provenance | | +| arrays.cpp:43:8:43:25 | access to array [post update] [data] | arrays.cpp:43:20:43:22 | arr [inner post update] [data] | provenance | | +| arrays.cpp:43:10:43:17 | indirect [arr, data] | arrays.cpp:43:20:43:22 | arr [data] | provenance | | +| arrays.cpp:43:10:43:17 | indirect [post update] [arr, data] | arrays.cpp:43:8:43:8 | o [post update] [indirect, arr, data] | provenance | | +| arrays.cpp:43:20:43:22 | arr [data] | arrays.cpp:43:8:43:25 | access to array [data] | provenance | | +| arrays.cpp:43:20:43:22 | arr [inner post update] [data] | arrays.cpp:43:10:43:17 | indirect [post update] [arr, data] | provenance | | +| arrays.cpp:43:27:43:30 | data | arrays.cpp:43:27:43:30 | ref arg data | provenance | | +| arrays.cpp:43:27:43:30 | data | realistic.cpp:41:17:41:17 | o | provenance | | +| arrays.cpp:43:27:43:30 | ref arg data | arrays.cpp:43:8:43:25 | access to array [post update] [data] | provenance | | +| arrays.cpp:44:8:44:8 | o [indirect, arr, data] | arrays.cpp:44:10:44:17 | indirect [arr, data] | provenance | | +| arrays.cpp:44:8:44:25 | access to array [data] | arrays.cpp:44:27:44:30 | data | provenance | | +| arrays.cpp:44:10:44:17 | indirect [arr, data] | arrays.cpp:44:20:44:22 | arr [data] | provenance | | +| arrays.cpp:44:20:44:22 | arr [data] | arrays.cpp:44:8:44:25 | access to array [data] | provenance | | +| by_reference.cpp:11:48:11:52 | value | by_reference.cpp:12:5:12:16 | ... = ... | provenance | | +| by_reference.cpp:12:5:12:5 | s [post update] [a] | by_reference.cpp:11:39:11:39 | s [a] | provenance | | +| by_reference.cpp:12:5:12:16 | ... = ... | by_reference.cpp:12:5:12:5 | s [post update] [a] | provenance | | +| by_reference.cpp:15:26:15:30 | value | by_reference.cpp:16:5:16:19 | ... = ... | provenance | | +| by_reference.cpp:16:5:16:19 | ... = ... | by_reference.cpp:16:5:16:8 | this [post update] [a] | provenance | | +| by_reference.cpp:19:28:19:32 | value | by_reference.cpp:20:23:20:27 | value | provenance | | +| by_reference.cpp:20:23:20:27 | value | by_reference.cpp:15:26:15:30 | value | provenance | | +| by_reference.cpp:20:23:20:27 | value | by_reference.cpp:20:5:20:8 | ref arg this [a] | provenance | | +| by_reference.cpp:23:34:23:38 | value | by_reference.cpp:24:25:24:29 | value | provenance | | +| by_reference.cpp:24:25:24:29 | value | by_reference.cpp:11:48:11:52 | value | provenance | | +| by_reference.cpp:24:25:24:29 | value | by_reference.cpp:24:19:24:22 | ref arg this [a] | provenance | | +| by_reference.cpp:31:46:31:46 | s [a] | by_reference.cpp:32:12:32:12 | s [a] | provenance | | +| by_reference.cpp:32:12:32:12 | s [a] | by_reference.cpp:32:15:32:15 | a | provenance | | +| by_reference.cpp:35:9:35:19 | this [a] | by_reference.cpp:36:12:36:15 | this [a] | provenance | | +| by_reference.cpp:36:12:36:15 | this [a] | by_reference.cpp:36:18:36:18 | a | provenance | | +| by_reference.cpp:39:9:39:21 | this [a] | by_reference.cpp:40:12:40:15 | this [a] | provenance | | +| by_reference.cpp:40:12:40:15 | this [a] | by_reference.cpp:35:9:35:19 | this [a] | provenance | | +| by_reference.cpp:40:12:40:15 | this [a] | by_reference.cpp:40:18:40:28 | call to getDirectly | provenance | | +| by_reference.cpp:43:9:43:27 | this [a] | by_reference.cpp:44:26:44:29 | this [a] | provenance | | +| by_reference.cpp:44:26:44:29 | this [a] | by_reference.cpp:31:46:31:46 | s [a] | provenance | | +| by_reference.cpp:44:26:44:29 | this [a] | by_reference.cpp:44:12:44:24 | call to nonMemberGetA | provenance | | +| by_reference.cpp:50:3:50:3 | ref arg s [a] | by_reference.cpp:51:8:51:8 | s [a] | provenance | | +| by_reference.cpp:50:17:50:26 | call to user_input | by_reference.cpp:15:26:15:30 | value | provenance | | +| by_reference.cpp:50:17:50:26 | call to user_input | by_reference.cpp:50:3:50:3 | ref arg s [a] | provenance | | +| by_reference.cpp:51:8:51:8 | s [a] | by_reference.cpp:35:9:35:19 | this [a] | provenance | | +| by_reference.cpp:51:8:51:8 | s [a] | by_reference.cpp:51:10:51:20 | call to getDirectly | provenance | | +| by_reference.cpp:56:3:56:3 | ref arg s [a] | by_reference.cpp:57:8:57:8 | s [a] | provenance | | +| by_reference.cpp:56:19:56:28 | call to user_input | by_reference.cpp:19:28:19:32 | value | provenance | | +| by_reference.cpp:56:19:56:28 | call to user_input | by_reference.cpp:56:3:56:3 | ref arg s [a] | provenance | | +| by_reference.cpp:57:8:57:8 | s [a] | by_reference.cpp:39:9:39:21 | this [a] | provenance | | +| by_reference.cpp:57:8:57:8 | s [a] | by_reference.cpp:57:10:57:22 | call to getIndirectly | provenance | | +| by_reference.cpp:62:3:62:3 | ref arg s [a] | by_reference.cpp:63:8:63:8 | s [a] | provenance | | +| by_reference.cpp:62:25:62:34 | call to user_input | by_reference.cpp:23:34:23:38 | value | provenance | | +| by_reference.cpp:62:25:62:34 | call to user_input | by_reference.cpp:62:3:62:3 | ref arg s [a] | provenance | | +| by_reference.cpp:63:8:63:8 | s [a] | by_reference.cpp:43:9:43:27 | this [a] | provenance | | +| by_reference.cpp:63:8:63:8 | s [a] | by_reference.cpp:63:10:63:28 | call to getThroughNonMember | provenance | | +| by_reference.cpp:68:17:68:18 | ref arg & ... [a] | by_reference.cpp:69:23:69:23 | s [a] | provenance | | +| by_reference.cpp:68:21:68:30 | call to user_input | by_reference.cpp:11:48:11:52 | value | provenance | | +| by_reference.cpp:68:21:68:30 | call to user_input | by_reference.cpp:68:17:68:18 | ref arg & ... [a] | provenance | | +| by_reference.cpp:69:22:69:23 | & ... [a] | by_reference.cpp:31:46:31:46 | s [a] | provenance | | +| by_reference.cpp:69:22:69:23 | & ... [a] | by_reference.cpp:69:8:69:20 | call to nonMemberGetA | provenance | | +| by_reference.cpp:69:23:69:23 | s [a] | by_reference.cpp:69:22:69:23 | & ... [a] | provenance | | +| by_reference.cpp:83:31:83:35 | inner [a] | by_reference.cpp:102:21:102:39 | ref arg & ... [a] | provenance | | +| by_reference.cpp:83:31:83:35 | inner [a] | by_reference.cpp:103:27:103:35 | ref arg inner_ptr [a] | provenance | | +| by_reference.cpp:83:31:83:35 | inner [a] | by_reference.cpp:106:21:106:41 | ref arg & ... [a] | provenance | | +| by_reference.cpp:83:31:83:35 | inner [a] | by_reference.cpp:107:29:107:37 | ref arg inner_ptr [a] | provenance | | +| by_reference.cpp:84:3:84:7 | inner [post update] [a] | by_reference.cpp:83:31:83:35 | inner [a] | provenance | | +| by_reference.cpp:84:3:84:7 | inner [post update] [a] | by_reference.cpp:102:21:102:39 | ref arg & ... [a] | provenance | | +| by_reference.cpp:84:3:84:7 | inner [post update] [a] | by_reference.cpp:103:27:103:35 | ref arg inner_ptr [a] | provenance | | +| by_reference.cpp:84:3:84:7 | inner [post update] [a] | by_reference.cpp:106:21:106:41 | ref arg & ... [a] | provenance | | +| by_reference.cpp:84:3:84:7 | inner [post update] [a] | by_reference.cpp:107:29:107:37 | ref arg inner_ptr [a] | provenance | | +| by_reference.cpp:84:3:84:25 | ... = ... | by_reference.cpp:84:3:84:7 | inner [post update] [a] | provenance | | +| by_reference.cpp:84:14:84:23 | call to user_input | by_reference.cpp:84:3:84:25 | ... = ... | provenance | | +| by_reference.cpp:87:31:87:35 | inner [a] | by_reference.cpp:122:27:122:38 | ref arg inner_nested [a] | provenance | | +| by_reference.cpp:87:31:87:35 | inner [a] | by_reference.cpp:123:21:123:36 | ref arg * ... [a] | provenance | | +| by_reference.cpp:87:31:87:35 | inner [a] | by_reference.cpp:126:29:126:40 | ref arg inner_nested [a] | provenance | | +| by_reference.cpp:87:31:87:35 | inner [a] | by_reference.cpp:127:21:127:38 | ref arg * ... [a] | provenance | | +| by_reference.cpp:88:3:88:7 | inner [post update] [a] | by_reference.cpp:87:31:87:35 | inner [a] | provenance | | +| by_reference.cpp:88:3:88:7 | inner [post update] [a] | by_reference.cpp:122:27:122:38 | ref arg inner_nested [a] | provenance | | +| by_reference.cpp:88:3:88:7 | inner [post update] [a] | by_reference.cpp:123:21:123:36 | ref arg * ... [a] | provenance | | +| by_reference.cpp:88:3:88:7 | inner [post update] [a] | by_reference.cpp:126:29:126:40 | ref arg inner_nested [a] | provenance | | +| by_reference.cpp:88:3:88:7 | inner [post update] [a] | by_reference.cpp:127:21:127:38 | ref arg * ... [a] | provenance | | +| by_reference.cpp:88:3:88:24 | ... = ... | by_reference.cpp:88:3:88:7 | inner [post update] [a] | provenance | | +| by_reference.cpp:88:13:88:22 | call to user_input | by_reference.cpp:88:3:88:24 | ... = ... | provenance | | +| by_reference.cpp:91:25:91:26 | pa | by_reference.cpp:104:15:104:22 | ref arg & ... | provenance | | +| by_reference.cpp:91:25:91:26 | pa | by_reference.cpp:108:15:108:24 | ref arg & ... | provenance | | +| by_reference.cpp:92:4:92:5 | pa [inner post update] | by_reference.cpp:104:15:104:22 | ref arg & ... | provenance | | +| by_reference.cpp:92:4:92:5 | pa [inner post update] | by_reference.cpp:108:15:108:24 | ref arg & ... | provenance | | +| by_reference.cpp:92:9:92:18 | call to user_input | by_reference.cpp:91:25:91:26 | pa | provenance | | +| by_reference.cpp:92:9:92:18 | call to user_input | by_reference.cpp:92:4:92:5 | pa [inner post update] | provenance | | +| by_reference.cpp:95:25:95:26 | pa | by_reference.cpp:124:21:124:21 | ref arg a | provenance | | +| by_reference.cpp:95:25:95:26 | pa | by_reference.cpp:128:23:128:23 | ref arg a | provenance | | +| by_reference.cpp:96:8:96:17 | call to user_input | by_reference.cpp:95:25:95:26 | pa | provenance | | +| by_reference.cpp:102:21:102:39 | ref arg & ... [a] | by_reference.cpp:102:28:102:39 | inner_nested [inner post update] [a] | provenance | | +| by_reference.cpp:102:22:102:26 | outer [post update] [inner_nested, a] | by_reference.cpp:110:8:110:12 | outer [inner_nested, a] | provenance | | +| by_reference.cpp:102:28:102:39 | inner_nested [inner post update] [a] | by_reference.cpp:102:22:102:26 | outer [post update] [inner_nested, a] | provenance | | +| by_reference.cpp:103:21:103:25 | outer [post update] [inner_ptr, a] | by_reference.cpp:111:8:111:12 | outer [inner_ptr, a] | provenance | | +| by_reference.cpp:103:27:103:35 | ref arg inner_ptr [a] | by_reference.cpp:103:21:103:25 | outer [post update] [inner_ptr, a] | provenance | | +| by_reference.cpp:104:15:104:22 | ref arg & ... | by_reference.cpp:104:22:104:22 | a [inner post update] | provenance | | +| by_reference.cpp:104:16:104:20 | outer [post update] [a] | by_reference.cpp:112:8:112:12 | outer [a] | provenance | | +| by_reference.cpp:104:22:104:22 | a [inner post update] | by_reference.cpp:104:16:104:20 | outer [post update] [a] | provenance | | +| by_reference.cpp:106:21:106:41 | ref arg & ... [a] | by_reference.cpp:106:30:106:41 | inner_nested [inner post update] [a] | provenance | | +| by_reference.cpp:106:22:106:27 | pouter [post update] [inner_nested, a] | by_reference.cpp:114:8:114:13 | pouter [inner_nested, a] | provenance | | +| by_reference.cpp:106:30:106:41 | inner_nested [inner post update] [a] | by_reference.cpp:106:22:106:27 | pouter [post update] [inner_nested, a] | provenance | | +| by_reference.cpp:107:21:107:26 | pouter [post update] [inner_ptr, a] | by_reference.cpp:115:8:115:13 | pouter [inner_ptr, a] | provenance | | +| by_reference.cpp:107:29:107:37 | ref arg inner_ptr [a] | by_reference.cpp:107:21:107:26 | pouter [post update] [inner_ptr, a] | provenance | | +| by_reference.cpp:108:15:108:24 | ref arg & ... | by_reference.cpp:108:24:108:24 | a [inner post update] | provenance | | +| by_reference.cpp:108:16:108:21 | pouter [post update] [a] | by_reference.cpp:116:8:116:13 | pouter [a] | provenance | | +| by_reference.cpp:108:24:108:24 | a [inner post update] | by_reference.cpp:108:16:108:21 | pouter [post update] [a] | provenance | | +| by_reference.cpp:110:8:110:12 | outer [inner_nested, a] | by_reference.cpp:110:14:110:25 | inner_nested [a] | provenance | | +| by_reference.cpp:110:14:110:25 | inner_nested [a] | by_reference.cpp:110:27:110:27 | a | provenance | | +| by_reference.cpp:111:8:111:12 | outer [inner_ptr, a] | by_reference.cpp:111:14:111:22 | inner_ptr [a] | provenance | | +| by_reference.cpp:111:14:111:22 | inner_ptr [a] | by_reference.cpp:111:25:111:25 | a | provenance | | +| by_reference.cpp:112:8:112:12 | outer [a] | by_reference.cpp:112:14:112:14 | a | provenance | | +| by_reference.cpp:114:8:114:13 | pouter [inner_nested, a] | by_reference.cpp:114:16:114:27 | inner_nested [a] | provenance | | +| by_reference.cpp:114:16:114:27 | inner_nested [a] | by_reference.cpp:114:29:114:29 | a | provenance | | +| by_reference.cpp:115:8:115:13 | pouter [inner_ptr, a] | by_reference.cpp:115:16:115:24 | inner_ptr [a] | provenance | | +| by_reference.cpp:115:16:115:24 | inner_ptr [a] | by_reference.cpp:115:27:115:27 | a | provenance | | +| by_reference.cpp:116:8:116:13 | pouter [a] | by_reference.cpp:116:16:116:16 | a | provenance | | +| by_reference.cpp:122:21:122:25 | outer [post update] [inner_nested, a] | by_reference.cpp:130:8:130:12 | outer [inner_nested, a] | provenance | | +| by_reference.cpp:122:27:122:38 | ref arg inner_nested [a] | by_reference.cpp:122:21:122:25 | outer [post update] [inner_nested, a] | provenance | | +| by_reference.cpp:123:21:123:36 | ref arg * ... [a] | by_reference.cpp:123:28:123:36 | inner_ptr [inner post update] [a] | provenance | | +| by_reference.cpp:123:22:123:26 | outer [post update] [inner_ptr, a] | by_reference.cpp:131:8:131:12 | outer [inner_ptr, a] | provenance | | +| by_reference.cpp:123:28:123:36 | inner_ptr [inner post update] [a] | by_reference.cpp:123:22:123:26 | outer [post update] [inner_ptr, a] | provenance | | +| by_reference.cpp:124:15:124:19 | outer [post update] [a] | by_reference.cpp:132:8:132:12 | outer [a] | provenance | | +| by_reference.cpp:124:21:124:21 | ref arg a | by_reference.cpp:124:15:124:19 | outer [post update] [a] | provenance | | +| by_reference.cpp:126:21:126:26 | pouter [post update] [inner_nested, a] | by_reference.cpp:134:8:134:13 | pouter [inner_nested, a] | provenance | | +| by_reference.cpp:126:29:126:40 | ref arg inner_nested [a] | by_reference.cpp:126:21:126:26 | pouter [post update] [inner_nested, a] | provenance | | +| by_reference.cpp:127:21:127:38 | ref arg * ... [a] | by_reference.cpp:127:30:127:38 | inner_ptr [inner post update] [a] | provenance | | +| by_reference.cpp:127:22:127:27 | pouter [post update] [inner_ptr, a] | by_reference.cpp:135:8:135:13 | pouter [inner_ptr, a] | provenance | | +| by_reference.cpp:127:30:127:38 | inner_ptr [inner post update] [a] | by_reference.cpp:127:22:127:27 | pouter [post update] [inner_ptr, a] | provenance | | +| by_reference.cpp:128:15:128:20 | pouter [post update] [a] | by_reference.cpp:136:8:136:13 | pouter [a] | provenance | | +| by_reference.cpp:128:23:128:23 | ref arg a | by_reference.cpp:128:15:128:20 | pouter [post update] [a] | provenance | | +| by_reference.cpp:130:8:130:12 | outer [inner_nested, a] | by_reference.cpp:130:14:130:25 | inner_nested [a] | provenance | | +| by_reference.cpp:130:14:130:25 | inner_nested [a] | by_reference.cpp:130:27:130:27 | a | provenance | | +| by_reference.cpp:131:8:131:12 | outer [inner_ptr, a] | by_reference.cpp:131:14:131:22 | inner_ptr [a] | provenance | | +| by_reference.cpp:131:14:131:22 | inner_ptr [a] | by_reference.cpp:131:25:131:25 | a | provenance | | +| by_reference.cpp:132:8:132:12 | outer [a] | by_reference.cpp:132:14:132:14 | a | provenance | | +| by_reference.cpp:134:8:134:13 | pouter [inner_nested, a] | by_reference.cpp:134:16:134:27 | inner_nested [a] | provenance | | +| by_reference.cpp:134:16:134:27 | inner_nested [a] | by_reference.cpp:134:29:134:29 | a | provenance | | +| by_reference.cpp:135:8:135:13 | pouter [inner_ptr, a] | by_reference.cpp:135:16:135:24 | inner_ptr [a] | provenance | | +| by_reference.cpp:135:16:135:24 | inner_ptr [a] | by_reference.cpp:135:27:135:27 | a | provenance | | +| by_reference.cpp:136:8:136:13 | pouter [a] | by_reference.cpp:136:16:136:16 | a | provenance | | +| clearning.cpp:53:4:53:4 | s [post update] [x] | clearning.cpp:55:8:55:8 | s [x] | provenance | | +| clearning.cpp:53:6:53:6 | x [inner post update] | clearning.cpp:53:4:53:4 | s [post update] [x] | provenance | | +| clearning.cpp:53:10:53:19 | call to user_input | clearning.cpp:53:6:53:6 | x [inner post update] | provenance | | +| clearning.cpp:55:8:55:8 | s [x] | clearning.cpp:55:10:55:10 | x | provenance | | +| clearning.cpp:124:2:124:2 | s [post update] [val] | clearning.cpp:126:7:126:7 | s [val] | provenance | | +| clearning.cpp:124:2:124:25 | ... = ... | clearning.cpp:124:2:124:2 | s [post update] [val] | provenance | | +| clearning.cpp:124:10:124:19 | call to user_input | clearning.cpp:124:2:124:25 | ... = ... | provenance | | +| clearning.cpp:126:7:126:7 | s [val] | clearning.cpp:126:9:126:11 | val | provenance | | +| clearning.cpp:131:2:131:2 | s [post update] [val] | clearning.cpp:133:7:133:7 | s [val] | provenance | | +| clearning.cpp:131:2:131:25 | ... = ... | clearning.cpp:131:2:131:2 | s [post update] [val] | provenance | | +| clearning.cpp:131:10:131:19 | call to user_input | clearning.cpp:131:2:131:25 | ... = ... | provenance | | +| clearning.cpp:133:7:133:7 | s [val] | clearning.cpp:133:9:133:11 | val | provenance | | +| clearning.cpp:138:2:138:2 | s [post update] [val] | clearning.cpp:140:7:140:7 | s [val] | provenance | | +| clearning.cpp:138:2:138:25 | ... = ... | clearning.cpp:138:2:138:2 | s [post update] [val] | provenance | | +| clearning.cpp:138:10:138:19 | call to user_input | clearning.cpp:138:2:138:25 | ... = ... | provenance | | +| clearning.cpp:140:7:140:7 | s [val] | clearning.cpp:140:9:140:11 | val | provenance | | +| clearning.cpp:151:3:151:3 | s [post update] [val] | clearning.cpp:152:8:152:8 | s [val] | provenance | | +| clearning.cpp:151:3:151:22 | ... = ... | clearning.cpp:151:3:151:3 | s [post update] [val] | provenance | | +| clearning.cpp:151:11:151:20 | call to user_input | clearning.cpp:151:3:151:22 | ... = ... | provenance | | +| clearning.cpp:152:8:152:8 | s [val] | clearning.cpp:152:10:152:12 | val | provenance | | +| clearning.cpp:157:3:157:3 | s [post update] [val] | clearning.cpp:159:8:159:8 | s [val] | provenance | | +| clearning.cpp:157:3:157:22 | ... = ... | clearning.cpp:157:3:157:3 | s [post update] [val] | provenance | | +| clearning.cpp:157:11:157:20 | call to user_input | clearning.cpp:157:3:157:22 | ... = ... | provenance | | +| clearning.cpp:159:8:159:8 | s [val] | clearning.cpp:159:10:159:12 | val | provenance | | +| clearning.cpp:164:3:164:3 | s [post update] [val] | clearning.cpp:166:8:166:8 | s [val] | provenance | | +| clearning.cpp:164:3:164:22 | ... = ... | clearning.cpp:164:3:164:3 | s [post update] [val] | provenance | | +| clearning.cpp:164:11:164:20 | call to user_input | clearning.cpp:164:3:164:22 | ... = ... | provenance | | +| clearning.cpp:166:8:166:8 | s [val] | clearning.cpp:166:10:166:12 | val | provenance | | +| clearning.cpp:171:3:171:3 | s [post update] [val] | clearning.cpp:173:8:173:8 | s [val] | provenance | | +| clearning.cpp:171:3:171:22 | ... = ... | clearning.cpp:171:3:171:3 | s [post update] [val] | provenance | | +| clearning.cpp:171:11:171:20 | call to user_input | clearning.cpp:171:3:171:22 | ... = ... | provenance | | +| clearning.cpp:173:8:173:8 | s [val] | clearning.cpp:173:10:173:12 | val | provenance | | +| clearning.cpp:178:3:178:3 | s [post update] [val] | clearning.cpp:180:8:180:8 | s [val] | provenance | | +| clearning.cpp:178:3:178:22 | ... = ... | clearning.cpp:178:3:178:3 | s [post update] [val] | provenance | | +| clearning.cpp:178:11:178:20 | call to user_input | clearning.cpp:178:3:178:22 | ... = ... | provenance | | +| clearning.cpp:180:8:180:8 | s [val] | clearning.cpp:180:10:180:12 | val | provenance | | +| complex.cpp:9:7:9:7 | this [a_] | complex.cpp:9:20:9:21 | this [a_] | provenance | | +| complex.cpp:9:20:9:21 | this [a_] | complex.cpp:9:20:9:21 | a_ | provenance | | +| complex.cpp:10:7:10:7 | this [b_] | complex.cpp:10:20:10:21 | this [b_] | provenance | | +| complex.cpp:10:20:10:21 | this [b_] | complex.cpp:10:20:10:21 | b_ | provenance | | +| complex.cpp:11:17:11:17 | a | complex.cpp:11:22:11:27 | ... = ... | provenance | | +| complex.cpp:11:22:11:27 | ... = ... | complex.cpp:11:22:11:23 | this [post update] [a_] | provenance | | +| complex.cpp:12:17:12:17 | b | complex.cpp:12:22:12:27 | ... = ... | provenance | | +| complex.cpp:12:22:12:27 | ... = ... | complex.cpp:12:22:12:23 | this [post update] [b_] | provenance | | +| complex.cpp:40:17:40:17 | b [inner, f, a_] | complex.cpp:42:8:42:8 | b [inner, f, a_] | provenance | | +| complex.cpp:40:17:40:17 | b [inner, f, b_] | complex.cpp:43:8:43:8 | b [inner, f, b_] | provenance | | +| complex.cpp:42:8:42:8 | b [inner, f, a_] | complex.cpp:42:10:42:14 | inner [f, a_] | provenance | | +| complex.cpp:42:10:42:14 | inner [f, a_] | complex.cpp:42:16:42:16 | f [a_] | provenance | | +| complex.cpp:42:16:42:16 | f [a_] | complex.cpp:9:7:9:7 | this [a_] | provenance | | +| complex.cpp:42:16:42:16 | f [a_] | complex.cpp:42:18:42:18 | call to a | provenance | | +| complex.cpp:43:8:43:8 | b [inner, f, b_] | complex.cpp:43:10:43:14 | inner [f, b_] | provenance | | +| complex.cpp:43:10:43:14 | inner [f, b_] | complex.cpp:43:16:43:16 | f [b_] | provenance | | +| complex.cpp:43:16:43:16 | f [b_] | complex.cpp:10:7:10:7 | this [b_] | provenance | | +| complex.cpp:43:16:43:16 | f [b_] | complex.cpp:43:18:43:18 | call to b | provenance | | +| complex.cpp:53:3:53:4 | b1 [post update] [inner, f, a_] | complex.cpp:59:7:59:8 | b1 [inner, f, a_] | provenance | | +| complex.cpp:53:6:53:10 | inner [post update] [f, a_] | complex.cpp:53:3:53:4 | b1 [post update] [inner, f, a_] | provenance | | +| complex.cpp:53:12:53:12 | ref arg f [a_] | complex.cpp:53:6:53:10 | inner [post update] [f, a_] | provenance | | +| complex.cpp:53:19:53:28 | call to user_input | complex.cpp:11:17:11:17 | a | provenance | | +| complex.cpp:53:19:53:28 | call to user_input | complex.cpp:53:12:53:12 | ref arg f [a_] | provenance | | +| complex.cpp:54:3:54:4 | b2 [post update] [inner, f, b_] | complex.cpp:62:7:62:8 | b2 [inner, f, b_] | provenance | | +| complex.cpp:54:6:54:10 | inner [post update] [f, b_] | complex.cpp:54:3:54:4 | b2 [post update] [inner, f, b_] | provenance | | +| complex.cpp:54:12:54:12 | ref arg f [b_] | complex.cpp:54:6:54:10 | inner [post update] [f, b_] | provenance | | +| complex.cpp:54:19:54:28 | call to user_input | complex.cpp:12:17:12:17 | b | provenance | | +| complex.cpp:54:19:54:28 | call to user_input | complex.cpp:54:12:54:12 | ref arg f [b_] | provenance | | +| complex.cpp:55:3:55:4 | b3 [post update] [inner, f, a_] | complex.cpp:65:7:65:8 | b3 [inner, f, a_] | provenance | | +| complex.cpp:55:6:55:10 | inner [post update] [f, a_] | complex.cpp:55:3:55:4 | b3 [post update] [inner, f, a_] | provenance | | +| complex.cpp:55:12:55:12 | ref arg f [a_] | complex.cpp:55:6:55:10 | inner [post update] [f, a_] | provenance | | +| complex.cpp:55:19:55:28 | call to user_input | complex.cpp:11:17:11:17 | a | provenance | | +| complex.cpp:55:19:55:28 | call to user_input | complex.cpp:55:12:55:12 | ref arg f [a_] | provenance | | +| complex.cpp:56:3:56:4 | b3 [post update] [inner, f, b_] | complex.cpp:65:7:65:8 | b3 [inner, f, b_] | provenance | | +| complex.cpp:56:6:56:10 | inner [post update] [f, b_] | complex.cpp:56:3:56:4 | b3 [post update] [inner, f, b_] | provenance | | +| complex.cpp:56:12:56:12 | ref arg f [b_] | complex.cpp:56:6:56:10 | inner [post update] [f, b_] | provenance | | +| complex.cpp:56:19:56:28 | call to user_input | complex.cpp:12:17:12:17 | b | provenance | | +| complex.cpp:56:19:56:28 | call to user_input | complex.cpp:56:12:56:12 | ref arg f [b_] | provenance | | +| complex.cpp:59:7:59:8 | b1 [inner, f, a_] | complex.cpp:40:17:40:17 | b [inner, f, a_] | provenance | | +| complex.cpp:62:7:62:8 | b2 [inner, f, b_] | complex.cpp:40:17:40:17 | b [inner, f, b_] | provenance | | +| complex.cpp:65:7:65:8 | b3 [inner, f, a_] | complex.cpp:40:17:40:17 | b [inner, f, a_] | provenance | | +| complex.cpp:65:7:65:8 | b3 [inner, f, b_] | complex.cpp:40:17:40:17 | b [inner, f, b_] | provenance | | +| conflated.cpp:19:19:19:21 | ref arg raw | conflated.cpp:20:8:20:10 | raw | provenance | | +| conflated.cpp:29:3:29:4 | pa [post update] [x] | conflated.cpp:30:8:30:9 | pa [x] | provenance | | +| conflated.cpp:29:3:29:22 | ... = ... | conflated.cpp:29:3:29:4 | pa [post update] [x] | provenance | | +| conflated.cpp:29:11:29:20 | call to user_input | conflated.cpp:29:3:29:22 | ... = ... | provenance | | +| conflated.cpp:30:8:30:9 | pa [x] | conflated.cpp:30:12:30:12 | x | provenance | | +| conflated.cpp:36:3:36:4 | pa [post update] [x] | conflated.cpp:37:8:37:9 | pa [x] | provenance | | +| conflated.cpp:36:3:36:22 | ... = ... | conflated.cpp:36:3:36:4 | pa [post update] [x] | provenance | | +| conflated.cpp:36:11:36:20 | call to user_input | conflated.cpp:36:3:36:22 | ... = ... | provenance | | +| conflated.cpp:37:8:37:9 | pa [x] | conflated.cpp:37:12:37:12 | x | provenance | | +| conflated.cpp:54:3:54:4 | ll [post update] [next, y] | conflated.cpp:55:8:55:9 | ll [next, y] | provenance | | +| conflated.cpp:54:3:54:28 | ... = ... | conflated.cpp:54:7:54:10 | next [post update] [y] | provenance | | +| conflated.cpp:54:7:54:10 | next [post update] [y] | conflated.cpp:54:3:54:4 | ll [post update] [next, y] | provenance | | +| conflated.cpp:54:17:54:26 | call to user_input | conflated.cpp:54:3:54:28 | ... = ... | provenance | | +| conflated.cpp:55:8:55:9 | ll [next, y] | conflated.cpp:55:12:55:15 | next [y] | provenance | | +| conflated.cpp:55:12:55:15 | next [y] | conflated.cpp:55:18:55:18 | y | provenance | | +| conflated.cpp:60:3:60:4 | ll [post update] [next, y] | conflated.cpp:61:8:61:9 | ll [next, y] | provenance | | +| conflated.cpp:60:3:60:28 | ... = ... | conflated.cpp:60:7:60:10 | next [post update] [y] | provenance | | +| conflated.cpp:60:7:60:10 | next [post update] [y] | conflated.cpp:60:3:60:4 | ll [post update] [next, y] | provenance | | +| conflated.cpp:60:17:60:26 | call to user_input | conflated.cpp:60:3:60:28 | ... = ... | provenance | | +| conflated.cpp:61:8:61:9 | ll [next, y] | conflated.cpp:61:12:61:15 | next [y] | provenance | | +| conflated.cpp:61:12:61:15 | next [y] | conflated.cpp:61:18:61:18 | y | provenance | | +| constructors.cpp:18:9:18:9 | this [a_] | constructors.cpp:18:22:18:23 | this [a_] | provenance | | +| constructors.cpp:18:22:18:23 | this [a_] | constructors.cpp:18:22:18:23 | a_ | provenance | | +| constructors.cpp:19:9:19:9 | this [b_] | constructors.cpp:19:22:19:23 | this [b_] | provenance | | +| constructors.cpp:19:22:19:23 | this [b_] | constructors.cpp:19:22:19:23 | b_ | provenance | | +| constructors.cpp:23:13:23:13 | a | constructors.cpp:23:28:23:28 | a | provenance | | +| constructors.cpp:23:20:23:20 | b | constructors.cpp:23:35:23:35 | b | provenance | | +| constructors.cpp:23:28:23:28 | a | constructors.cpp:23:25:23:29 | constructor init of field a_ [post-this] [a_] | provenance | | +| constructors.cpp:23:35:23:35 | b | constructors.cpp:23:32:23:36 | constructor init of field b_ [post-this] [b_] | provenance | | +| constructors.cpp:26:15:26:15 | f [a_] | constructors.cpp:28:10:28:10 | f [a_] | provenance | | +| constructors.cpp:26:15:26:15 | f [b_] | constructors.cpp:29:10:29:10 | f [b_] | provenance | | +| constructors.cpp:28:10:28:10 | f [a_] | constructors.cpp:18:9:18:9 | this [a_] | provenance | | +| constructors.cpp:28:10:28:10 | f [a_] | constructors.cpp:28:12:28:12 | call to a | provenance | | +| constructors.cpp:29:10:29:10 | f [b_] | constructors.cpp:19:9:19:9 | this [b_] | provenance | | +| constructors.cpp:29:10:29:10 | f [b_] | constructors.cpp:29:12:29:12 | call to b | provenance | | +| constructors.cpp:34:11:34:20 | call to user_input | constructors.cpp:23:13:23:13 | a | provenance | | +| constructors.cpp:34:11:34:20 | call to user_input | constructors.cpp:34:11:34:26 | call to Foo [a_] | provenance | | +| constructors.cpp:34:11:34:26 | call to Foo [a_] | constructors.cpp:40:9:40:9 | f [a_] | provenance | | +| constructors.cpp:35:11:35:26 | call to Foo [b_] | constructors.cpp:43:9:43:9 | g [b_] | provenance | | +| constructors.cpp:35:14:35:23 | call to user_input | constructors.cpp:23:20:23:20 | b | provenance | | +| constructors.cpp:35:14:35:23 | call to user_input | constructors.cpp:35:11:35:26 | call to Foo [b_] | provenance | | +| constructors.cpp:36:11:36:20 | call to user_input | constructors.cpp:23:13:23:13 | a | provenance | | +| constructors.cpp:36:11:36:20 | call to user_input | constructors.cpp:36:11:36:37 | call to Foo [a_] | provenance | | +| constructors.cpp:36:11:36:37 | call to Foo [a_] | constructors.cpp:46:9:46:9 | h [a_] | provenance | | +| constructors.cpp:36:11:36:37 | call to Foo [b_] | constructors.cpp:46:9:46:9 | h [b_] | provenance | | +| constructors.cpp:36:25:36:34 | call to user_input | constructors.cpp:23:20:23:20 | b | provenance | | +| constructors.cpp:36:25:36:34 | call to user_input | constructors.cpp:36:11:36:37 | call to Foo [b_] | provenance | | +| constructors.cpp:40:9:40:9 | f [a_] | constructors.cpp:26:15:26:15 | f [a_] | provenance | | +| constructors.cpp:43:9:43:9 | g [b_] | constructors.cpp:26:15:26:15 | f [b_] | provenance | | +| constructors.cpp:46:9:46:9 | h [a_] | constructors.cpp:26:15:26:15 | f [a_] | provenance | | +| constructors.cpp:46:9:46:9 | h [b_] | constructors.cpp:26:15:26:15 | f [b_] | provenance | | +| qualifiers.cpp:9:21:9:25 | value | qualifiers.cpp:9:30:9:44 | ... = ... | provenance | | +| qualifiers.cpp:9:30:9:44 | ... = ... | qualifiers.cpp:9:30:9:33 | this [post update] [a] | provenance | | +| qualifiers.cpp:12:40:12:44 | value | qualifiers.cpp:12:49:12:64 | ... = ... | provenance | | +| qualifiers.cpp:12:49:12:53 | inner [post update] [a] | qualifiers.cpp:12:27:12:31 | inner [a] | provenance | | +| qualifiers.cpp:12:49:12:64 | ... = ... | qualifiers.cpp:12:49:12:53 | inner [post update] [a] | provenance | | +| qualifiers.cpp:13:42:13:46 | value | qualifiers.cpp:13:51:13:65 | ... = ... | provenance | | +| qualifiers.cpp:13:51:13:55 | inner [post update] [a] | qualifiers.cpp:13:29:13:33 | inner [a] | provenance | | +| qualifiers.cpp:13:51:13:65 | ... = ... | qualifiers.cpp:13:51:13:55 | inner [post update] [a] | provenance | | +| qualifiers.cpp:22:5:22:9 | ref arg outer [inner, a] | qualifiers.cpp:23:10:23:14 | outer [inner, a] | provenance | | +| qualifiers.cpp:22:5:22:38 | ... = ... | qualifiers.cpp:22:11:22:18 | call to getInner [post update] [a] | provenance | | +| qualifiers.cpp:22:11:22:18 | call to getInner [post update] [a] | qualifiers.cpp:22:5:22:9 | ref arg outer [inner, a] | provenance | | +| qualifiers.cpp:22:27:22:36 | call to user_input | qualifiers.cpp:22:5:22:38 | ... = ... | provenance | | +| qualifiers.cpp:23:10:23:14 | outer [inner, a] | qualifiers.cpp:23:16:23:20 | inner [a] | provenance | | +| qualifiers.cpp:23:16:23:20 | inner [a] | qualifiers.cpp:23:23:23:23 | a | provenance | | +| qualifiers.cpp:27:5:27:9 | ref arg outer [inner, a] | qualifiers.cpp:28:10:28:14 | outer [inner, a] | provenance | | +| qualifiers.cpp:27:11:27:18 | ref arg call to getInner [a] | qualifiers.cpp:27:5:27:9 | ref arg outer [inner, a] | provenance | | +| qualifiers.cpp:27:28:27:37 | call to user_input | qualifiers.cpp:9:21:9:25 | value | provenance | | +| qualifiers.cpp:27:28:27:37 | call to user_input | qualifiers.cpp:27:11:27:18 | ref arg call to getInner [a] | provenance | | +| qualifiers.cpp:28:10:28:14 | outer [inner, a] | qualifiers.cpp:28:16:28:20 | inner [a] | provenance | | +| qualifiers.cpp:28:16:28:20 | inner [a] | qualifiers.cpp:28:23:28:23 | a | provenance | | +| qualifiers.cpp:32:17:32:21 | ref arg outer [inner, a] | qualifiers.cpp:33:10:33:14 | outer [inner, a] | provenance | | +| qualifiers.cpp:32:23:32:30 | ref arg call to getInner [a] | qualifiers.cpp:32:17:32:21 | ref arg outer [inner, a] | provenance | | +| qualifiers.cpp:32:35:32:44 | call to user_input | qualifiers.cpp:12:40:12:44 | value | provenance | | +| qualifiers.cpp:32:35:32:44 | call to user_input | qualifiers.cpp:32:23:32:30 | ref arg call to getInner [a] | provenance | | +| qualifiers.cpp:33:10:33:14 | outer [inner, a] | qualifiers.cpp:33:16:33:20 | inner [a] | provenance | | +| qualifiers.cpp:33:16:33:20 | inner [a] | qualifiers.cpp:33:23:33:23 | a | provenance | | +| qualifiers.cpp:37:19:37:35 | ref arg * ... [a] | qualifiers.cpp:37:26:37:33 | call to getInner [inner post update] [a] | provenance | | +| qualifiers.cpp:37:20:37:24 | ref arg outer [inner, a] | qualifiers.cpp:38:10:38:14 | outer [inner, a] | provenance | | +| qualifiers.cpp:37:26:37:33 | call to getInner [inner post update] [a] | qualifiers.cpp:37:20:37:24 | ref arg outer [inner, a] | provenance | | +| qualifiers.cpp:37:38:37:47 | call to user_input | qualifiers.cpp:13:42:13:46 | value | provenance | | +| qualifiers.cpp:37:38:37:47 | call to user_input | qualifiers.cpp:37:19:37:35 | ref arg * ... [a] | provenance | | +| qualifiers.cpp:38:10:38:14 | outer [inner, a] | qualifiers.cpp:38:16:38:20 | inner [a] | provenance | | +| qualifiers.cpp:38:16:38:20 | inner [a] | qualifiers.cpp:38:23:38:23 | a | provenance | | +| qualifiers.cpp:42:5:42:40 | ... = ... | qualifiers.cpp:42:6:42:22 | * ... [post update] [a] | provenance | | +| qualifiers.cpp:42:6:42:22 | * ... [post update] [a] | qualifiers.cpp:42:13:42:20 | call to getInner [inner post update] [a] | provenance | | +| qualifiers.cpp:42:7:42:11 | ref arg outer [inner, a] | qualifiers.cpp:43:10:43:14 | outer [inner, a] | provenance | | +| qualifiers.cpp:42:13:42:20 | call to getInner [inner post update] [a] | qualifiers.cpp:42:7:42:11 | ref arg outer [inner, a] | provenance | | +| qualifiers.cpp:42:29:42:38 | call to user_input | qualifiers.cpp:42:5:42:40 | ... = ... | provenance | | +| qualifiers.cpp:43:10:43:14 | outer [inner, a] | qualifiers.cpp:43:16:43:20 | inner [a] | provenance | | +| qualifiers.cpp:43:16:43:20 | inner [a] | qualifiers.cpp:43:23:43:23 | a | provenance | | +| qualifiers.cpp:47:5:47:42 | ... = ... | qualifiers.cpp:47:15:47:22 | call to getInner [post update] [a] | provenance | | +| qualifiers.cpp:47:6:47:11 | ref arg & ... [inner, a] | qualifiers.cpp:48:10:48:14 | outer [inner, a] | provenance | | +| qualifiers.cpp:47:15:47:22 | call to getInner [post update] [a] | qualifiers.cpp:47:6:47:11 | ref arg & ... [inner, a] | provenance | | +| qualifiers.cpp:47:31:47:40 | call to user_input | qualifiers.cpp:47:5:47:42 | ... = ... | provenance | | +| qualifiers.cpp:48:10:48:14 | outer [inner, a] | qualifiers.cpp:48:16:48:20 | inner [a] | provenance | | +| qualifiers.cpp:48:16:48:20 | inner [a] | qualifiers.cpp:48:23:48:23 | a | provenance | | +| realistic.cpp:41:17:41:17 | o | realistic.cpp:41:17:41:17 | o | provenance | | +| realistic.cpp:53:9:53:11 | foo [post update] [bar, baz, userInput, bufferLen] | realistic.cpp:61:21:61:23 | foo [bar, baz, userInput, bufferLen] | provenance | | +| realistic.cpp:53:9:53:18 | access to array [post update] [baz, userInput, bufferLen] | realistic.cpp:53:13:53:15 | bar [inner post update] [baz, userInput, bufferLen] | provenance | | +| realistic.cpp:53:9:53:66 | ... = ... | realistic.cpp:53:25:53:33 | userInput [post update] [bufferLen] | provenance | | +| realistic.cpp:53:13:53:15 | bar [inner post update] [baz, userInput, bufferLen] | realistic.cpp:53:9:53:11 | foo [post update] [bar, baz, userInput, bufferLen] | provenance | | +| realistic.cpp:53:20:53:22 | baz [post update] [userInput, bufferLen] | realistic.cpp:53:9:53:18 | access to array [post update] [baz, userInput, bufferLen] | provenance | | +| realistic.cpp:53:25:53:33 | userInput [post update] [bufferLen] | realistic.cpp:53:20:53:22 | baz [post update] [userInput, bufferLen] | provenance | | +| realistic.cpp:53:55:53:64 | call to user_input | realistic.cpp:53:9:53:66 | ... = ... | provenance | | +| realistic.cpp:61:21:61:23 | foo [bar, baz, userInput, bufferLen] | realistic.cpp:61:25:61:27 | bar [baz, userInput, bufferLen] | provenance | | +| realistic.cpp:61:21:61:23 | foo [post update] [bar, baz, userInput, bufferLen] | realistic.cpp:61:21:61:23 | foo [bar, baz, userInput, bufferLen] | provenance | | +| realistic.cpp:61:21:61:30 | access to array [baz, userInput, bufferLen] | realistic.cpp:61:32:61:34 | baz [userInput, bufferLen] | provenance | | +| realistic.cpp:61:21:61:30 | access to array [post update] [baz, userInput, bufferLen] | realistic.cpp:61:25:61:27 | bar [inner post update] [baz, userInput, bufferLen] | provenance | | +| realistic.cpp:61:25:61:27 | bar [baz, userInput, bufferLen] | realistic.cpp:61:21:61:30 | access to array [baz, userInput, bufferLen] | provenance | | +| realistic.cpp:61:25:61:27 | bar [inner post update] [baz, userInput, bufferLen] | realistic.cpp:61:21:61:23 | foo [post update] [bar, baz, userInput, bufferLen] | provenance | | +| realistic.cpp:61:32:61:34 | baz [post update] [userInput, bufferLen] | realistic.cpp:61:21:61:30 | access to array [post update] [baz, userInput, bufferLen] | provenance | | +| realistic.cpp:61:32:61:34 | baz [userInput, bufferLen] | realistic.cpp:61:37:61:45 | userInput [bufferLen] | provenance | | +| realistic.cpp:61:37:61:45 | userInput [bufferLen] | realistic.cpp:61:47:61:55 | bufferLen | provenance | | +| realistic.cpp:61:37:61:45 | userInput [bufferLen] | realistic.cpp:61:47:61:55 | bufferLen | provenance | | +| realistic.cpp:61:37:61:45 | userInput [post update] [bufferLen] | realistic.cpp:61:32:61:34 | baz [post update] [userInput, bufferLen] | provenance | | +| realistic.cpp:61:47:61:55 | bufferLen | realistic.cpp:41:17:41:17 | o | provenance | | +| realistic.cpp:61:47:61:55 | bufferLen | realistic.cpp:61:47:61:55 | ref arg bufferLen | provenance | | +| realistic.cpp:61:47:61:55 | ref arg bufferLen | realistic.cpp:61:37:61:45 | userInput [post update] [bufferLen] | provenance | | +| simple.cpp:18:9:18:9 | this [a_] | simple.cpp:18:22:18:23 | this [a_] | provenance | | +| simple.cpp:18:22:18:23 | this [a_] | simple.cpp:18:22:18:23 | a_ | provenance | | +| simple.cpp:19:9:19:9 | this [b_] | simple.cpp:19:22:19:23 | this [b_] | provenance | | +| simple.cpp:19:22:19:23 | this [b_] | simple.cpp:19:22:19:23 | b_ | provenance | | +| simple.cpp:20:19:20:19 | a | simple.cpp:20:24:20:29 | ... = ... | provenance | | +| simple.cpp:20:24:20:29 | ... = ... | simple.cpp:20:24:20:25 | this [post update] [a_] | provenance | | +| simple.cpp:21:19:21:19 | b | simple.cpp:21:24:21:29 | ... = ... | provenance | | +| simple.cpp:21:24:21:29 | ... = ... | simple.cpp:21:24:21:25 | this [post update] [b_] | provenance | | +| simple.cpp:26:15:26:15 | f [a_] | simple.cpp:28:10:28:10 | f [a_] | provenance | | +| simple.cpp:26:15:26:15 | f [b_] | simple.cpp:29:10:29:10 | f [b_] | provenance | | +| simple.cpp:28:10:28:10 | f [a_] | simple.cpp:18:9:18:9 | this [a_] | provenance | | +| simple.cpp:28:10:28:10 | f [a_] | simple.cpp:28:12:28:12 | call to a | provenance | | +| simple.cpp:29:10:29:10 | f [b_] | simple.cpp:19:9:19:9 | this [b_] | provenance | | +| simple.cpp:29:10:29:10 | f [b_] | simple.cpp:29:12:29:12 | call to b | provenance | | +| simple.cpp:39:5:39:5 | ref arg f [a_] | simple.cpp:45:9:45:9 | f [a_] | provenance | | +| simple.cpp:39:12:39:21 | call to user_input | simple.cpp:20:19:20:19 | a | provenance | | +| simple.cpp:39:12:39:21 | call to user_input | simple.cpp:39:5:39:5 | ref arg f [a_] | provenance | | +| simple.cpp:40:5:40:5 | ref arg g [b_] | simple.cpp:48:9:48:9 | g [b_] | provenance | | +| simple.cpp:40:12:40:21 | call to user_input | simple.cpp:21:19:21:19 | b | provenance | | +| simple.cpp:40:12:40:21 | call to user_input | simple.cpp:40:5:40:5 | ref arg g [b_] | provenance | | +| simple.cpp:41:5:41:5 | ref arg h [a_] | simple.cpp:51:9:51:9 | h [a_] | provenance | | +| simple.cpp:41:12:41:21 | call to user_input | simple.cpp:20:19:20:19 | a | provenance | | +| simple.cpp:41:12:41:21 | call to user_input | simple.cpp:41:5:41:5 | ref arg h [a_] | provenance | | +| simple.cpp:42:5:42:5 | ref arg h [b_] | simple.cpp:51:9:51:9 | h [b_] | provenance | | +| simple.cpp:42:12:42:21 | call to user_input | simple.cpp:21:19:21:19 | b | provenance | | +| simple.cpp:42:12:42:21 | call to user_input | simple.cpp:42:5:42:5 | ref arg h [b_] | provenance | | +| simple.cpp:45:9:45:9 | f [a_] | simple.cpp:26:15:26:15 | f [a_] | provenance | | +| simple.cpp:48:9:48:9 | g [b_] | simple.cpp:26:15:26:15 | f [b_] | provenance | | +| simple.cpp:51:9:51:9 | h [a_] | simple.cpp:26:15:26:15 | f [a_] | provenance | | +| simple.cpp:51:9:51:9 | h [b_] | simple.cpp:26:15:26:15 | f [b_] | provenance | | +| simple.cpp:65:5:65:5 | a [post update] [i] | simple.cpp:67:10:67:11 | a2 [i] | provenance | | +| simple.cpp:65:5:65:22 | ... = ... | simple.cpp:65:5:65:5 | a [post update] [i] | provenance | | +| simple.cpp:65:11:65:20 | call to user_input | simple.cpp:65:5:65:22 | ... = ... | provenance | | +| simple.cpp:67:10:67:11 | a2 [i] | simple.cpp:67:13:67:13 | i | provenance | | +| simple.cpp:78:9:78:15 | this [f2, f1] | simple.cpp:79:16:79:17 | this [f2, f1] | provenance | | +| simple.cpp:79:16:79:17 | f2 [f1] | simple.cpp:79:19:79:20 | f1 | provenance | | +| simple.cpp:79:16:79:17 | this [f2, f1] | simple.cpp:79:16:79:17 | f2 [f1] | provenance | | +| simple.cpp:83:9:83:10 | f2 [post update] [f1] | simple.cpp:83:9:83:10 | this [post update] [f2, f1] | provenance | | +| simple.cpp:83:9:83:10 | this [post update] [f2, f1] | simple.cpp:84:14:84:20 | this [f2, f1] | provenance | | +| simple.cpp:83:9:83:28 | ... = ... | simple.cpp:83:9:83:10 | f2 [post update] [f1] | provenance | | +| simple.cpp:83:17:83:26 | call to user_input | simple.cpp:83:9:83:28 | ... = ... | provenance | | +| simple.cpp:84:14:84:20 | this [f2, f1] | simple.cpp:78:9:78:15 | this [f2, f1] | provenance | | +| simple.cpp:84:14:84:20 | this [f2, f1] | simple.cpp:84:14:84:20 | call to getf2f1 | provenance | | +| simple.cpp:92:5:92:5 | a [post update] [i] | simple.cpp:94:10:94:11 | a2 [i] | provenance | | +| simple.cpp:92:5:92:22 | ... = ... | simple.cpp:92:5:92:5 | a [post update] [i] | provenance | | +| simple.cpp:92:11:92:20 | call to user_input | simple.cpp:92:5:92:22 | ... = ... | provenance | | +| simple.cpp:94:10:94:11 | a2 [i] | simple.cpp:94:13:94:13 | i | provenance | | +| struct_init.c:14:24:14:25 | ab [a] | struct_init.c:14:24:14:25 | ab [a] | provenance | | +| struct_init.c:14:24:14:25 | ab [a] | struct_init.c:15:8:15:9 | ab [a] | provenance | | +| struct_init.c:15:8:15:9 | ab [a] | struct_init.c:15:12:15:12 | a | provenance | | +| struct_init.c:15:8:15:9 | ab [a] | struct_init.c:15:12:15:12 | a | provenance | | +| struct_init.c:15:8:15:9 | ab [post update] [a] | struct_init.c:14:24:14:25 | ab [a] | provenance | | +| struct_init.c:15:12:15:12 | a | realistic.cpp:41:17:41:17 | o | provenance | | +| struct_init.c:15:12:15:12 | a | struct_init.c:15:12:15:12 | ref arg a | provenance | | +| struct_init.c:15:12:15:12 | ref arg a | struct_init.c:15:8:15:9 | ab [post update] [a] | provenance | | +| struct_init.c:20:17:20:36 | {...} [a] | struct_init.c:22:8:22:9 | ab [a] | provenance | | +| struct_init.c:20:17:20:36 | {...} [a] | struct_init.c:24:11:24:12 | ab [a] | provenance | | +| struct_init.c:20:17:20:36 | {...} [a] | struct_init.c:28:6:28:7 | ab [a] | provenance | | +| struct_init.c:20:20:20:29 | call to user_input | struct_init.c:20:17:20:36 | {...} [a] | provenance | | +| struct_init.c:22:8:22:9 | ab [a] | struct_init.c:22:11:22:11 | a | provenance | | +| struct_init.c:22:8:22:9 | ab [a] | struct_init.c:22:11:22:11 | a | provenance | | +| struct_init.c:22:8:22:9 | ab [post update] [a] | struct_init.c:24:11:24:12 | ab [a] | provenance | | +| struct_init.c:22:8:22:9 | ab [post update] [a] | struct_init.c:28:6:28:7 | ab [a] | provenance | | +| struct_init.c:22:11:22:11 | a | realistic.cpp:41:17:41:17 | o | provenance | | +| struct_init.c:22:11:22:11 | a | struct_init.c:22:11:22:11 | ref arg a | provenance | | +| struct_init.c:22:11:22:11 | ref arg a | struct_init.c:22:8:22:9 | ab [post update] [a] | provenance | | +| struct_init.c:24:10:24:12 | & ... [a] | struct_init.c:14:24:14:25 | ab [a] | provenance | | +| struct_init.c:24:10:24:12 | & ... [a] | struct_init.c:24:10:24:12 | ref arg & ... [a] | provenance | | +| struct_init.c:24:10:24:12 | ref arg & ... [a] | struct_init.c:28:6:28:7 | ab [a] | provenance | | +| struct_init.c:24:11:24:12 | ab [a] | struct_init.c:24:10:24:12 | & ... [a] | provenance | | +| struct_init.c:26:23:29:3 | {...} [nestedAB, a] | struct_init.c:31:8:31:12 | outer [nestedAB, a] | provenance | | +| struct_init.c:26:23:29:3 | {...} [nestedAB, a] | struct_init.c:36:11:36:15 | outer [nestedAB, a] | provenance | | +| struct_init.c:26:23:29:3 | {...} [pointerAB, a] | struct_init.c:33:8:33:12 | outer [pointerAB, a] | provenance | | +| struct_init.c:27:5:27:23 | {...} [a] | struct_init.c:26:23:29:3 | {...} [nestedAB, a] | provenance | | +| struct_init.c:27:7:27:16 | call to user_input | struct_init.c:27:5:27:23 | {...} [a] | provenance | | +| struct_init.c:28:5:28:7 | & ... [a] | struct_init.c:26:23:29:3 | {...} [pointerAB, a] | provenance | | +| struct_init.c:28:6:28:7 | ab [a] | struct_init.c:28:5:28:7 | & ... [a] | provenance | | +| struct_init.c:31:8:31:12 | outer [nestedAB, a] | struct_init.c:31:14:31:21 | nestedAB [a] | provenance | | +| struct_init.c:31:8:31:12 | outer [post update] [nestedAB, a] | struct_init.c:36:11:36:15 | outer [nestedAB, a] | provenance | | +| struct_init.c:31:14:31:21 | nestedAB [a] | struct_init.c:31:23:31:23 | a | provenance | | +| struct_init.c:31:14:31:21 | nestedAB [a] | struct_init.c:31:23:31:23 | a | provenance | | +| struct_init.c:31:14:31:21 | nestedAB [post update] [a] | struct_init.c:31:8:31:12 | outer [post update] [nestedAB, a] | provenance | | +| struct_init.c:31:23:31:23 | a | realistic.cpp:41:17:41:17 | o | provenance | | +| struct_init.c:31:23:31:23 | a | struct_init.c:31:23:31:23 | ref arg a | provenance | | +| struct_init.c:31:23:31:23 | ref arg a | struct_init.c:31:14:31:21 | nestedAB [post update] [a] | provenance | | +| struct_init.c:33:8:33:12 | outer [pointerAB, a] | struct_init.c:33:14:33:22 | pointerAB [a] | provenance | | +| struct_init.c:33:14:33:22 | pointerAB [a] | struct_init.c:33:25:33:25 | a | provenance | | +| struct_init.c:36:10:36:24 | & ... [a] | struct_init.c:14:24:14:25 | ab [a] | provenance | | +| struct_init.c:36:11:36:15 | outer [nestedAB, a] | struct_init.c:36:17:36:24 | nestedAB [a] | provenance | | +| struct_init.c:36:17:36:24 | nestedAB [a] | struct_init.c:36:10:36:24 | & ... [a] | provenance | | +| struct_init.c:40:17:40:36 | {...} [a] | struct_init.c:43:6:43:7 | ab [a] | provenance | | +| struct_init.c:40:20:40:29 | call to user_input | struct_init.c:40:17:40:36 | {...} [a] | provenance | | +| struct_init.c:41:23:44:3 | {...} [pointerAB, a] | struct_init.c:46:10:46:14 | outer [pointerAB, a] | provenance | | +| struct_init.c:43:5:43:7 | & ... [a] | struct_init.c:41:23:44:3 | {...} [pointerAB, a] | provenance | | +| struct_init.c:43:6:43:7 | ab [a] | struct_init.c:43:5:43:7 | & ... [a] | provenance | | +| struct_init.c:46:10:46:14 | outer [pointerAB, a] | struct_init.c:46:16:46:24 | pointerAB [a] | provenance | | +| struct_init.c:46:16:46:24 | pointerAB [a] | struct_init.c:14:24:14:25 | ab [a] | provenance | | nodes | A.cpp:23:10:23:10 | c | semmle.label | c | | A.cpp:25:7:25:10 | this [post update] [c] | semmle.label | this [post update] [c] | diff --git a/cpp/ql/test/query-tests/Critical/MemoryFreed/DoubleFree.expected b/cpp/ql/test/query-tests/Critical/MemoryFreed/DoubleFree.expected index f30092f06265..b9ac7f0a2d53 100644 --- a/cpp/ql/test/query-tests/Critical/MemoryFreed/DoubleFree.expected +++ b/cpp/ql/test/query-tests/Critical/MemoryFreed/DoubleFree.expected @@ -1,16 +1,16 @@ edges -| test_free.cpp:11:10:11:10 | pointer to free output argument | test_free.cpp:14:10:14:10 | a | -| test_free.cpp:30:10:30:10 | pointer to free output argument | test_free.cpp:31:27:31:27 | a | -| test_free.cpp:35:10:35:10 | pointer to free output argument | test_free.cpp:37:27:37:27 | a | -| test_free.cpp:42:27:42:27 | pointer to free output argument | test_free.cpp:46:10:46:10 | a | -| test_free.cpp:44:27:44:27 | pointer to free output argument | test_free.cpp:46:10:46:10 | a | -| test_free.cpp:50:27:50:27 | pointer to free output argument | test_free.cpp:51:10:51:10 | a | -| test_free.cpp:69:10:69:10 | pointer to free output argument | test_free.cpp:72:14:72:14 | a | -| test_free.cpp:83:12:83:12 | pointer to operator delete output argument | test_free.cpp:85:12:85:12 | a | -| test_free.cpp:101:10:101:10 | pointer to free output argument | test_free.cpp:103:10:103:10 | a | -| test_free.cpp:128:10:128:11 | pointer to free output argument | test_free.cpp:129:10:129:11 | * ... | -| test_free.cpp:152:27:152:27 | pointer to free output argument | test_free.cpp:154:10:154:10 | a | -| test_free.cpp:207:10:207:10 | pointer to free output argument | test_free.cpp:209:10:209:10 | a | +| test_free.cpp:11:10:11:10 | pointer to free output argument | test_free.cpp:14:10:14:10 | a | provenance | | +| test_free.cpp:30:10:30:10 | pointer to free output argument | test_free.cpp:31:27:31:27 | a | provenance | | +| test_free.cpp:35:10:35:10 | pointer to free output argument | test_free.cpp:37:27:37:27 | a | provenance | | +| test_free.cpp:42:27:42:27 | pointer to free output argument | test_free.cpp:46:10:46:10 | a | provenance | | +| test_free.cpp:44:27:44:27 | pointer to free output argument | test_free.cpp:46:10:46:10 | a | provenance | | +| test_free.cpp:50:27:50:27 | pointer to free output argument | test_free.cpp:51:10:51:10 | a | provenance | | +| test_free.cpp:69:10:69:10 | pointer to free output argument | test_free.cpp:72:14:72:14 | a | provenance | | +| test_free.cpp:83:12:83:12 | pointer to operator delete output argument | test_free.cpp:85:12:85:12 | a | provenance | | +| test_free.cpp:101:10:101:10 | pointer to free output argument | test_free.cpp:103:10:103:10 | a | provenance | | +| test_free.cpp:128:10:128:11 | pointer to free output argument | test_free.cpp:129:10:129:11 | * ... | provenance | | +| test_free.cpp:152:27:152:27 | pointer to free output argument | test_free.cpp:154:10:154:10 | a | provenance | | +| test_free.cpp:207:10:207:10 | pointer to free output argument | test_free.cpp:209:10:209:10 | a | provenance | | nodes | test_free.cpp:11:10:11:10 | pointer to free output argument | semmle.label | pointer to free output argument | | test_free.cpp:14:10:14:10 | a | semmle.label | a | diff --git a/cpp/ql/test/query-tests/Critical/MemoryFreed/UseAfterFree.expected b/cpp/ql/test/query-tests/Critical/MemoryFreed/UseAfterFree.expected index bf2ba1ad092b..ceed007f683a 100644 --- a/cpp/ql/test/query-tests/Critical/MemoryFreed/UseAfterFree.expected +++ b/cpp/ql/test/query-tests/Critical/MemoryFreed/UseAfterFree.expected @@ -1,27 +1,27 @@ edges -| test_free.cpp:11:10:11:10 | pointer to free output argument | test_free.cpp:12:5:12:5 | a | -| test_free.cpp:11:10:11:10 | pointer to free output argument | test_free.cpp:13:5:13:6 | * ... | -| test_free.cpp:42:27:42:27 | pointer to free output argument | test_free.cpp:45:5:45:5 | a | -| test_free.cpp:44:27:44:27 | pointer to free output argument | test_free.cpp:45:5:45:5 | a | -| test_free.cpp:69:10:69:10 | pointer to free output argument | test_free.cpp:71:9:71:9 | a | -| test_free.cpp:83:12:83:12 | pointer to operator delete output argument | test_free.cpp:84:5:84:5 | a | -| test_free.cpp:90:10:90:10 | pointer to free output argument | test_free.cpp:91:5:91:5 | a | -| test_free.cpp:95:10:95:10 | pointer to free output argument | test_free.cpp:96:9:96:9 | a | -| test_free.cpp:101:10:101:10 | pointer to free output argument | test_free.cpp:102:23:102:23 | a | -| test_free.cpp:152:27:152:27 | pointer to free output argument | test_free.cpp:153:5:153:5 | a | -| test_free.cpp:233:14:233:15 | pointer to free output argument | test_free.cpp:236:9:236:10 | * ... | -| test_free.cpp:239:14:239:15 | pointer to free output argument | test_free.cpp:241:9:241:10 | * ... | -| test_free.cpp:245:10:245:11 | pointer to free output argument | test_free.cpp:246:9:246:10 | * ... | -| test_free.cpp:277:8:277:8 | *s [post update] [buf] | test_free.cpp:278:12:278:12 | *s [buf] | -| test_free.cpp:277:8:277:13 | pointer to free output argument | test_free.cpp:277:8:277:8 | *s [post update] [buf] | -| test_free.cpp:278:12:278:12 | *s [buf] | test_free.cpp:278:15:278:17 | buf | -| test_free.cpp:282:8:282:8 | *s [post update] [buf] | test_free.cpp:283:12:283:12 | *s [buf] | -| test_free.cpp:282:8:282:12 | pointer to free output argument | test_free.cpp:282:8:282:8 | *s [post update] [buf] | -| test_free.cpp:283:12:283:12 | *s [buf] | test_free.cpp:283:14:283:16 | buf | -| test_free.cpp:293:8:293:10 | pointer to free output argument | test_free.cpp:294:3:294:13 | ... = ... | -| test_free.cpp:294:3:294:3 | *s [post update] [buf] | test_free.cpp:295:12:295:12 | *s [buf] | -| test_free.cpp:294:3:294:13 | ... = ... | test_free.cpp:294:3:294:3 | *s [post update] [buf] | -| test_free.cpp:295:12:295:12 | *s [buf] | test_free.cpp:295:14:295:16 | buf | +| test_free.cpp:11:10:11:10 | pointer to free output argument | test_free.cpp:12:5:12:5 | a | provenance | | +| test_free.cpp:11:10:11:10 | pointer to free output argument | test_free.cpp:13:5:13:6 | * ... | provenance | | +| test_free.cpp:42:27:42:27 | pointer to free output argument | test_free.cpp:45:5:45:5 | a | provenance | | +| test_free.cpp:44:27:44:27 | pointer to free output argument | test_free.cpp:45:5:45:5 | a | provenance | | +| test_free.cpp:69:10:69:10 | pointer to free output argument | test_free.cpp:71:9:71:9 | a | provenance | | +| test_free.cpp:83:12:83:12 | pointer to operator delete output argument | test_free.cpp:84:5:84:5 | a | provenance | | +| test_free.cpp:90:10:90:10 | pointer to free output argument | test_free.cpp:91:5:91:5 | a | provenance | | +| test_free.cpp:95:10:95:10 | pointer to free output argument | test_free.cpp:96:9:96:9 | a | provenance | | +| test_free.cpp:101:10:101:10 | pointer to free output argument | test_free.cpp:102:23:102:23 | a | provenance | | +| test_free.cpp:152:27:152:27 | pointer to free output argument | test_free.cpp:153:5:153:5 | a | provenance | | +| test_free.cpp:233:14:233:15 | pointer to free output argument | test_free.cpp:236:9:236:10 | * ... | provenance | | +| test_free.cpp:239:14:239:15 | pointer to free output argument | test_free.cpp:241:9:241:10 | * ... | provenance | | +| test_free.cpp:245:10:245:11 | pointer to free output argument | test_free.cpp:246:9:246:10 | * ... | provenance | | +| test_free.cpp:277:8:277:8 | *s [post update] [buf] | test_free.cpp:278:12:278:12 | *s [buf] | provenance | | +| test_free.cpp:277:8:277:13 | pointer to free output argument | test_free.cpp:277:8:277:8 | *s [post update] [buf] | provenance | | +| test_free.cpp:278:12:278:12 | *s [buf] | test_free.cpp:278:15:278:17 | buf | provenance | | +| test_free.cpp:282:8:282:8 | *s [post update] [buf] | test_free.cpp:283:12:283:12 | *s [buf] | provenance | | +| test_free.cpp:282:8:282:12 | pointer to free output argument | test_free.cpp:282:8:282:8 | *s [post update] [buf] | provenance | | +| test_free.cpp:283:12:283:12 | *s [buf] | test_free.cpp:283:14:283:16 | buf | provenance | | +| test_free.cpp:293:8:293:10 | pointer to free output argument | test_free.cpp:294:3:294:13 | ... = ... | provenance | | +| test_free.cpp:294:3:294:3 | *s [post update] [buf] | test_free.cpp:295:12:295:12 | *s [buf] | provenance | | +| test_free.cpp:294:3:294:13 | ... = ... | test_free.cpp:294:3:294:3 | *s [post update] [buf] | provenance | | +| test_free.cpp:295:12:295:12 | *s [buf] | test_free.cpp:295:14:295:16 | buf | provenance | | nodes | test_free.cpp:11:10:11:10 | pointer to free output argument | semmle.label | pointer to free output argument | | test_free.cpp:12:5:12:5 | a | semmle.label | a | diff --git a/cpp/ql/test/query-tests/Likely Bugs/Conversion/CastArrayPointerArithmetic/CastArrayPointerArithmetic.expected b/cpp/ql/test/query-tests/Likely Bugs/Conversion/CastArrayPointerArithmetic/CastArrayPointerArithmetic.expected index c65f76cec0f0..3f66b2c20b30 100644 --- a/cpp/ql/test/query-tests/Likely Bugs/Conversion/CastArrayPointerArithmetic/CastArrayPointerArithmetic.expected +++ b/cpp/ql/test/query-tests/Likely Bugs/Conversion/CastArrayPointerArithmetic/CastArrayPointerArithmetic.expected @@ -1,25 +1,25 @@ edges -| test.cpp:26:29:26:29 | b | test.cpp:27:2:27:2 | b | -| test.cpp:30:34:30:34 | b | test.cpp:31:2:31:2 | b | -| test.cpp:34:31:34:31 | b | test.cpp:35:2:35:2 | b | -| test.cpp:57:19:57:19 | d | test.cpp:26:29:26:29 | b | -| test.cpp:57:19:57:19 | d | test.cpp:58:25:58:25 | d | -| test.cpp:57:19:57:19 | d | test.cpp:59:21:59:21 | d | -| test.cpp:58:25:58:25 | d | test.cpp:30:34:30:34 | b | -| test.cpp:58:25:58:25 | d | test.cpp:59:21:59:21 | d | -| test.cpp:59:21:59:21 | d | test.cpp:34:31:34:31 | b | -| test.cpp:74:19:74:21 | dss | test.cpp:26:29:26:29 | b | -| test.cpp:74:19:74:21 | dss | test.cpp:75:25:75:27 | dss | -| test.cpp:74:19:74:21 | dss | test.cpp:76:21:76:23 | dss | -| test.cpp:75:25:75:27 | dss | test.cpp:30:34:30:34 | b | -| test.cpp:75:25:75:27 | dss | test.cpp:76:21:76:23 | dss | -| test.cpp:76:21:76:23 | dss | test.cpp:34:31:34:31 | b | -| test.cpp:86:19:86:20 | d2 | test.cpp:26:29:26:29 | b | -| test.cpp:86:19:86:20 | d2 | test.cpp:87:25:87:26 | d2 | -| test.cpp:86:19:86:20 | d2 | test.cpp:88:21:88:22 | d2 | -| test.cpp:87:25:87:26 | d2 | test.cpp:30:34:30:34 | b | -| test.cpp:87:25:87:26 | d2 | test.cpp:88:21:88:22 | d2 | -| test.cpp:88:21:88:22 | d2 | test.cpp:34:31:34:31 | b | +| test.cpp:26:29:26:29 | b | test.cpp:27:2:27:2 | b | provenance | | +| test.cpp:30:34:30:34 | b | test.cpp:31:2:31:2 | b | provenance | | +| test.cpp:34:31:34:31 | b | test.cpp:35:2:35:2 | b | provenance | | +| test.cpp:57:19:57:19 | d | test.cpp:26:29:26:29 | b | provenance | | +| test.cpp:57:19:57:19 | d | test.cpp:58:25:58:25 | d | provenance | | +| test.cpp:57:19:57:19 | d | test.cpp:59:21:59:21 | d | provenance | | +| test.cpp:58:25:58:25 | d | test.cpp:30:34:30:34 | b | provenance | | +| test.cpp:58:25:58:25 | d | test.cpp:59:21:59:21 | d | provenance | | +| test.cpp:59:21:59:21 | d | test.cpp:34:31:34:31 | b | provenance | | +| test.cpp:74:19:74:21 | dss | test.cpp:26:29:26:29 | b | provenance | | +| test.cpp:74:19:74:21 | dss | test.cpp:75:25:75:27 | dss | provenance | | +| test.cpp:74:19:74:21 | dss | test.cpp:76:21:76:23 | dss | provenance | | +| test.cpp:75:25:75:27 | dss | test.cpp:30:34:30:34 | b | provenance | | +| test.cpp:75:25:75:27 | dss | test.cpp:76:21:76:23 | dss | provenance | | +| test.cpp:76:21:76:23 | dss | test.cpp:34:31:34:31 | b | provenance | | +| test.cpp:86:19:86:20 | d2 | test.cpp:26:29:26:29 | b | provenance | | +| test.cpp:86:19:86:20 | d2 | test.cpp:87:25:87:26 | d2 | provenance | | +| test.cpp:86:19:86:20 | d2 | test.cpp:88:21:88:22 | d2 | provenance | | +| test.cpp:87:25:87:26 | d2 | test.cpp:30:34:30:34 | b | provenance | | +| test.cpp:87:25:87:26 | d2 | test.cpp:88:21:88:22 | d2 | provenance | | +| test.cpp:88:21:88:22 | d2 | test.cpp:34:31:34:31 | b | provenance | | nodes | test.cpp:26:29:26:29 | b | semmle.label | b | | test.cpp:27:2:27:2 | b | semmle.label | b | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-022/SAMATE/TaintedPath/TaintedPath.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-022/SAMATE/TaintedPath/TaintedPath.expected index 5cc2f9cf5077..dc8bb31748a8 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-022/SAMATE/TaintedPath/TaintedPath.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-022/SAMATE/TaintedPath/TaintedPath.expected @@ -1,5 +1,5 @@ edges -| CWE23_Relative_Path_Traversal__char_console_fopen_11.cpp:55:27:55:38 | fgets output argument | CWE23_Relative_Path_Traversal__char_console_fopen_11.cpp:77:23:77:26 | *data | +| CWE23_Relative_Path_Traversal__char_console_fopen_11.cpp:55:27:55:38 | fgets output argument | CWE23_Relative_Path_Traversal__char_console_fopen_11.cpp:77:23:77:26 | *data | provenance | | nodes | CWE23_Relative_Path_Traversal__char_console_fopen_11.cpp:55:27:55:38 | fgets output argument | semmle.label | fgets output argument | | CWE23_Relative_Path_Traversal__char_console_fopen_11.cpp:77:23:77:26 | *data | semmle.label | *data | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-022/semmle/tests/TaintedPath.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-022/semmle/tests/TaintedPath.expected index dd587dd64ede..3b34718d9543 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-022/semmle/tests/TaintedPath.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-022/semmle/tests/TaintedPath.expected @@ -1,9 +1,9 @@ edges -| test.c:8:27:8:30 | **argv | test.c:17:11:17:18 | *fileName | -| test.c:8:27:8:30 | **argv | test.c:32:11:32:18 | *fileName | -| test.c:8:27:8:30 | **argv | test.c:57:10:57:16 | *access to array | -| test.c:37:17:37:24 | scanf output argument | test.c:38:11:38:18 | *fileName | -| test.c:43:17:43:24 | scanf output argument | test.c:44:11:44:18 | *fileName | +| test.c:8:27:8:30 | **argv | test.c:17:11:17:18 | *fileName | provenance | | +| test.c:8:27:8:30 | **argv | test.c:32:11:32:18 | *fileName | provenance | | +| test.c:8:27:8:30 | **argv | test.c:57:10:57:16 | *access to array | provenance | | +| test.c:37:17:37:24 | scanf output argument | test.c:38:11:38:18 | *fileName | provenance | | +| test.c:43:17:43:24 | scanf output argument | test.c:44:11:44:18 | *fileName | provenance | | nodes | test.c:8:27:8:30 | **argv | semmle.label | **argv | | test.c:17:11:17:18 | *fileName | semmle.label | *fileName | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-078/SAMATE/ExecTainted/ExecTainted.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-078/SAMATE/ExecTainted/ExecTainted.expected index 4c6c158fb7a0..8833a015609e 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-078/SAMATE/ExecTainted/ExecTainted.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-078/SAMATE/ExecTainted/ExecTainted.expected @@ -1,9 +1,9 @@ edges -| tests.cpp:26:15:26:23 | **badSource | tests.cpp:51:12:51:20 | *call to badSource | -| tests.cpp:33:34:33:39 | *call to getenv | tests.cpp:38:39:38:49 | *environment | -| tests.cpp:38:25:38:36 | strncat output argument | tests.cpp:26:15:26:23 | **badSource | -| tests.cpp:38:39:38:49 | *environment | tests.cpp:38:25:38:36 | strncat output argument | -| tests.cpp:51:12:51:20 | *call to badSource | tests.cpp:53:16:53:19 | *data | +| tests.cpp:26:15:26:23 | **badSource | tests.cpp:51:12:51:20 | *call to badSource | provenance | | +| tests.cpp:33:34:33:39 | *call to getenv | tests.cpp:38:39:38:49 | *environment | provenance | | +| tests.cpp:38:25:38:36 | strncat output argument | tests.cpp:26:15:26:23 | **badSource | provenance | | +| tests.cpp:38:39:38:49 | *environment | tests.cpp:38:25:38:36 | strncat output argument | provenance | | +| tests.cpp:51:12:51:20 | *call to badSource | tests.cpp:53:16:53:19 | *data | provenance | | nodes | tests.cpp:26:15:26:23 | **badSource | semmle.label | **badSource | | tests.cpp:33:34:33:39 | *call to getenv | semmle.label | *call to getenv | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-078/semmle/ExecTainted/ExecTainted.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-078/semmle/ExecTainted/ExecTainted.expected index 0b53a53adf69..d50edce5f2fa 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-078/semmle/ExecTainted/ExecTainted.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-078/semmle/ExecTainted/ExecTainted.expected @@ -1,70 +1,70 @@ edges -| test.cpp:15:27:15:30 | **argv | test.cpp:22:45:22:52 | *userName | -| test.cpp:22:13:22:20 | sprintf output argument | test.cpp:23:12:23:19 | *command1 | -| test.cpp:22:45:22:52 | *userName | test.cpp:22:13:22:20 | sprintf output argument | -| test.cpp:47:21:47:26 | *call to getenv | test.cpp:50:35:50:43 | *envCflags | -| test.cpp:50:11:50:17 | sprintf output argument | test.cpp:51:10:51:16 | *command | -| test.cpp:50:35:50:43 | *envCflags | test.cpp:50:11:50:17 | sprintf output argument | -| test.cpp:62:9:62:16 | fread output argument | test.cpp:64:20:64:27 | *filename | -| test.cpp:64:11:64:17 | strncat output argument | test.cpp:65:10:65:16 | *command | -| test.cpp:64:20:64:27 | *filename | test.cpp:64:11:64:17 | strncat output argument | -| test.cpp:82:9:82:16 | fread output argument | test.cpp:84:20:84:27 | *filename | -| test.cpp:84:11:84:17 | strncat output argument | test.cpp:85:32:85:38 | *command | -| test.cpp:84:20:84:27 | *filename | test.cpp:84:11:84:17 | strncat output argument | -| test.cpp:91:9:91:16 | fread output argument | test.cpp:93:17:93:24 | *filename | -| test.cpp:93:11:93:14 | strncat output argument | test.cpp:94:45:94:48 | *path | -| test.cpp:93:17:93:24 | *filename | test.cpp:93:11:93:14 | strncat output argument | -| test.cpp:106:20:106:38 | *call to getenv | test.cpp:107:33:107:36 | *path | -| test.cpp:107:31:107:31 | call to operator+ | test.cpp:108:18:108:22 | *call to c_str | -| test.cpp:107:33:107:36 | *path | test.cpp:107:31:107:31 | call to operator+ | -| test.cpp:113:20:113:38 | *call to getenv | test.cpp:114:19:114:22 | *path | -| test.cpp:114:10:114:23 | call to operator+ | test.cpp:114:25:114:29 | *call to c_str | -| test.cpp:114:10:114:23 | call to operator+ | test.cpp:114:25:114:29 | *call to c_str | -| test.cpp:114:17:114:17 | call to operator+ | test.cpp:114:10:114:23 | call to operator+ | -| test.cpp:114:19:114:22 | *path | test.cpp:114:10:114:23 | call to operator+ | -| test.cpp:114:19:114:22 | *path | test.cpp:114:17:114:17 | call to operator+ | -| test.cpp:119:20:119:38 | *call to getenv | test.cpp:120:19:120:22 | *path | -| test.cpp:120:17:120:17 | call to operator+ | test.cpp:120:10:120:30 | *call to data | -| test.cpp:120:19:120:22 | *path | test.cpp:120:17:120:17 | call to operator+ | -| test.cpp:140:9:140:11 | fread output argument | test.cpp:142:31:142:33 | *str | -| test.cpp:142:11:142:17 | sprintf output argument | test.cpp:143:10:143:16 | *command | -| test.cpp:142:31:142:33 | *str | test.cpp:142:11:142:17 | sprintf output argument | -| test.cpp:174:9:174:16 | fread output argument | test.cpp:177:20:177:27 | *filename | -| test.cpp:174:9:174:16 | fread output argument | test.cpp:180:22:180:29 | *filename | -| test.cpp:177:13:177:17 | strncat output argument | test.cpp:178:22:178:26 | *flags | -| test.cpp:177:13:177:17 | strncat output argument | test.cpp:178:22:178:26 | *flags | -| test.cpp:177:20:177:27 | *filename | test.cpp:177:13:177:17 | strncat output argument | -| test.cpp:177:20:177:27 | *filename | test.cpp:177:13:177:17 | strncat output argument | -| test.cpp:178:13:178:19 | strncat output argument | test.cpp:183:32:183:38 | *command | -| test.cpp:178:13:178:19 | strncat output argument | test.cpp:183:32:183:38 | *command | -| test.cpp:178:22:178:26 | *flags | test.cpp:178:13:178:19 | strncat output argument | -| test.cpp:178:22:178:26 | *flags | test.cpp:178:13:178:19 | strncat output argument | -| test.cpp:180:13:180:19 | strncat output argument | test.cpp:183:32:183:38 | *command | -| test.cpp:180:22:180:29 | *filename | test.cpp:180:13:180:19 | strncat output argument | -| test.cpp:186:47:186:54 | *filename | test.cpp:187:18:187:25 | *filename | -| test.cpp:187:11:187:15 | strncat output argument | test.cpp:188:20:188:24 | *flags | -| test.cpp:187:11:187:15 | strncat output argument | test.cpp:188:20:188:24 | *flags | -| test.cpp:187:18:187:25 | *filename | test.cpp:187:11:187:15 | strncat output argument | -| test.cpp:187:18:187:25 | *filename | test.cpp:187:11:187:15 | strncat output argument | -| test.cpp:188:20:188:24 | *flags | test.cpp:188:11:188:17 | strncat output argument | -| test.cpp:188:20:188:24 | *flags | test.cpp:188:11:188:17 | strncat output argument | -| test.cpp:194:9:194:16 | fread output argument | test.cpp:196:26:196:33 | *filename | -| test.cpp:196:10:196:16 | concat output argument | test.cpp:198:32:198:38 | *command | -| test.cpp:196:10:196:16 | concat output argument | test.cpp:198:32:198:38 | *command | -| test.cpp:196:26:196:33 | *filename | test.cpp:186:47:186:54 | *filename | -| test.cpp:196:26:196:33 | *filename | test.cpp:196:10:196:16 | concat output argument | -| test.cpp:196:26:196:33 | *filename | test.cpp:196:10:196:16 | concat output argument | -| test.cpp:218:9:218:16 | fread output argument | test.cpp:220:19:220:26 | *filename | -| test.cpp:220:10:220:16 | strncat output argument | test.cpp:220:10:220:16 | strncat output argument | -| test.cpp:220:10:220:16 | strncat output argument | test.cpp:220:10:220:16 | strncat output argument | -| test.cpp:220:10:220:16 | strncat output argument | test.cpp:220:10:220:16 | strncat output argument | -| test.cpp:220:10:220:16 | strncat output argument | test.cpp:222:32:222:38 | *command | -| test.cpp:220:10:220:16 | strncat output argument | test.cpp:222:32:222:38 | *command | -| test.cpp:220:10:220:16 | strncat output argument | test.cpp:222:32:222:38 | *command | -| test.cpp:220:10:220:16 | strncat output argument | test.cpp:222:32:222:38 | *command | -| test.cpp:220:19:220:26 | *filename | test.cpp:220:10:220:16 | strncat output argument | -| test.cpp:220:19:220:26 | *filename | test.cpp:220:10:220:16 | strncat output argument | -| test.cpp:220:19:220:26 | *filename | test.cpp:220:19:220:26 | *filename | +| test.cpp:15:27:15:30 | **argv | test.cpp:22:45:22:52 | *userName | provenance | | +| test.cpp:22:13:22:20 | sprintf output argument | test.cpp:23:12:23:19 | *command1 | provenance | | +| test.cpp:22:45:22:52 | *userName | test.cpp:22:13:22:20 | sprintf output argument | provenance | | +| test.cpp:47:21:47:26 | *call to getenv | test.cpp:50:35:50:43 | *envCflags | provenance | | +| test.cpp:50:11:50:17 | sprintf output argument | test.cpp:51:10:51:16 | *command | provenance | | +| test.cpp:50:35:50:43 | *envCflags | test.cpp:50:11:50:17 | sprintf output argument | provenance | | +| test.cpp:62:9:62:16 | fread output argument | test.cpp:64:20:64:27 | *filename | provenance | | +| test.cpp:64:11:64:17 | strncat output argument | test.cpp:65:10:65:16 | *command | provenance | | +| test.cpp:64:20:64:27 | *filename | test.cpp:64:11:64:17 | strncat output argument | provenance | | +| test.cpp:82:9:82:16 | fread output argument | test.cpp:84:20:84:27 | *filename | provenance | | +| test.cpp:84:11:84:17 | strncat output argument | test.cpp:85:32:85:38 | *command | provenance | | +| test.cpp:84:20:84:27 | *filename | test.cpp:84:11:84:17 | strncat output argument | provenance | | +| test.cpp:91:9:91:16 | fread output argument | test.cpp:93:17:93:24 | *filename | provenance | | +| test.cpp:93:11:93:14 | strncat output argument | test.cpp:94:45:94:48 | *path | provenance | | +| test.cpp:93:17:93:24 | *filename | test.cpp:93:11:93:14 | strncat output argument | provenance | | +| test.cpp:106:20:106:38 | *call to getenv | test.cpp:107:33:107:36 | *path | provenance | | +| test.cpp:107:31:107:31 | call to operator+ | test.cpp:108:18:108:22 | *call to c_str | provenance | | +| test.cpp:107:33:107:36 | *path | test.cpp:107:31:107:31 | call to operator+ | provenance | | +| test.cpp:113:20:113:38 | *call to getenv | test.cpp:114:19:114:22 | *path | provenance | | +| test.cpp:114:10:114:23 | call to operator+ | test.cpp:114:25:114:29 | *call to c_str | provenance | | +| test.cpp:114:10:114:23 | call to operator+ | test.cpp:114:25:114:29 | *call to c_str | provenance | | +| test.cpp:114:17:114:17 | call to operator+ | test.cpp:114:10:114:23 | call to operator+ | provenance | | +| test.cpp:114:19:114:22 | *path | test.cpp:114:10:114:23 | call to operator+ | provenance | | +| test.cpp:114:19:114:22 | *path | test.cpp:114:17:114:17 | call to operator+ | provenance | | +| test.cpp:119:20:119:38 | *call to getenv | test.cpp:120:19:120:22 | *path | provenance | | +| test.cpp:120:17:120:17 | call to operator+ | test.cpp:120:10:120:30 | *call to data | provenance | | +| test.cpp:120:19:120:22 | *path | test.cpp:120:17:120:17 | call to operator+ | provenance | | +| test.cpp:140:9:140:11 | fread output argument | test.cpp:142:31:142:33 | *str | provenance | | +| test.cpp:142:11:142:17 | sprintf output argument | test.cpp:143:10:143:16 | *command | provenance | | +| test.cpp:142:31:142:33 | *str | test.cpp:142:11:142:17 | sprintf output argument | provenance | | +| test.cpp:174:9:174:16 | fread output argument | test.cpp:177:20:177:27 | *filename | provenance | | +| test.cpp:174:9:174:16 | fread output argument | test.cpp:180:22:180:29 | *filename | provenance | | +| test.cpp:177:13:177:17 | strncat output argument | test.cpp:178:22:178:26 | *flags | provenance | | +| test.cpp:177:13:177:17 | strncat output argument | test.cpp:178:22:178:26 | *flags | provenance | | +| test.cpp:177:20:177:27 | *filename | test.cpp:177:13:177:17 | strncat output argument | provenance | | +| test.cpp:177:20:177:27 | *filename | test.cpp:177:13:177:17 | strncat output argument | provenance | | +| test.cpp:178:13:178:19 | strncat output argument | test.cpp:183:32:183:38 | *command | provenance | | +| test.cpp:178:13:178:19 | strncat output argument | test.cpp:183:32:183:38 | *command | provenance | | +| test.cpp:178:22:178:26 | *flags | test.cpp:178:13:178:19 | strncat output argument | provenance | | +| test.cpp:178:22:178:26 | *flags | test.cpp:178:13:178:19 | strncat output argument | provenance | | +| test.cpp:180:13:180:19 | strncat output argument | test.cpp:183:32:183:38 | *command | provenance | | +| test.cpp:180:22:180:29 | *filename | test.cpp:180:13:180:19 | strncat output argument | provenance | | +| test.cpp:186:47:186:54 | *filename | test.cpp:187:18:187:25 | *filename | provenance | | +| test.cpp:187:11:187:15 | strncat output argument | test.cpp:188:20:188:24 | *flags | provenance | | +| test.cpp:187:11:187:15 | strncat output argument | test.cpp:188:20:188:24 | *flags | provenance | | +| test.cpp:187:18:187:25 | *filename | test.cpp:187:11:187:15 | strncat output argument | provenance | | +| test.cpp:187:18:187:25 | *filename | test.cpp:187:11:187:15 | strncat output argument | provenance | | +| test.cpp:188:20:188:24 | *flags | test.cpp:188:11:188:17 | strncat output argument | provenance | | +| test.cpp:188:20:188:24 | *flags | test.cpp:188:11:188:17 | strncat output argument | provenance | | +| test.cpp:194:9:194:16 | fread output argument | test.cpp:196:26:196:33 | *filename | provenance | | +| test.cpp:196:10:196:16 | concat output argument | test.cpp:198:32:198:38 | *command | provenance | | +| test.cpp:196:10:196:16 | concat output argument | test.cpp:198:32:198:38 | *command | provenance | | +| test.cpp:196:26:196:33 | *filename | test.cpp:186:47:186:54 | *filename | provenance | | +| test.cpp:196:26:196:33 | *filename | test.cpp:196:10:196:16 | concat output argument | provenance | | +| test.cpp:196:26:196:33 | *filename | test.cpp:196:10:196:16 | concat output argument | provenance | | +| test.cpp:218:9:218:16 | fread output argument | test.cpp:220:19:220:26 | *filename | provenance | | +| test.cpp:220:10:220:16 | strncat output argument | test.cpp:220:10:220:16 | strncat output argument | provenance | | +| test.cpp:220:10:220:16 | strncat output argument | test.cpp:220:10:220:16 | strncat output argument | provenance | | +| test.cpp:220:10:220:16 | strncat output argument | test.cpp:220:10:220:16 | strncat output argument | provenance | | +| test.cpp:220:10:220:16 | strncat output argument | test.cpp:222:32:222:38 | *command | provenance | | +| test.cpp:220:10:220:16 | strncat output argument | test.cpp:222:32:222:38 | *command | provenance | | +| test.cpp:220:10:220:16 | strncat output argument | test.cpp:222:32:222:38 | *command | provenance | | +| test.cpp:220:10:220:16 | strncat output argument | test.cpp:222:32:222:38 | *command | provenance | | +| test.cpp:220:19:220:26 | *filename | test.cpp:220:10:220:16 | strncat output argument | provenance | | +| test.cpp:220:19:220:26 | *filename | test.cpp:220:10:220:16 | strncat output argument | provenance | | +| test.cpp:220:19:220:26 | *filename | test.cpp:220:19:220:26 | *filename | provenance | | nodes | test.cpp:15:27:15:30 | **argv | semmle.label | **argv | | test.cpp:22:13:22:20 | sprintf output argument | semmle.label | sprintf output argument | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-079/semmle/CgiXss/CgiXss.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-079/semmle/CgiXss/CgiXss.expected index 48d6c47181ed..6a28ffc96ec0 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-079/semmle/CgiXss/CgiXss.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-079/semmle/CgiXss/CgiXss.expected @@ -1,13 +1,13 @@ edges -| search.c:14:24:14:28 | *query | search.c:17:8:17:12 | *query | -| search.c:22:24:22:28 | *query | search.c:23:39:23:43 | *query | -| search.c:55:24:55:28 | *query | search.c:62:8:62:17 | *query_text | -| search.c:67:21:67:26 | *call to getenv | search.c:71:17:71:25 | *raw_query | -| search.c:67:21:67:26 | *call to getenv | search.c:73:17:73:25 | *raw_query | -| search.c:67:21:67:26 | *call to getenv | search.c:77:17:77:25 | *raw_query | -| search.c:71:17:71:25 | *raw_query | search.c:14:24:14:28 | *query | -| search.c:73:17:73:25 | *raw_query | search.c:22:24:22:28 | *query | -| search.c:77:17:77:25 | *raw_query | search.c:55:24:55:28 | *query | +| search.c:14:24:14:28 | *query | search.c:17:8:17:12 | *query | provenance | | +| search.c:22:24:22:28 | *query | search.c:23:39:23:43 | *query | provenance | | +| search.c:55:24:55:28 | *query | search.c:62:8:62:17 | *query_text | provenance | | +| search.c:67:21:67:26 | *call to getenv | search.c:71:17:71:25 | *raw_query | provenance | | +| search.c:67:21:67:26 | *call to getenv | search.c:73:17:73:25 | *raw_query | provenance | | +| search.c:67:21:67:26 | *call to getenv | search.c:77:17:77:25 | *raw_query | provenance | | +| search.c:71:17:71:25 | *raw_query | search.c:14:24:14:28 | *query | provenance | | +| search.c:73:17:73:25 | *raw_query | search.c:22:24:22:28 | *query | provenance | | +| search.c:77:17:77:25 | *raw_query | search.c:55:24:55:28 | *query | provenance | | nodes | search.c:14:24:14:28 | *query | semmle.label | *query | | search.c:17:8:17:12 | *query | semmle.label | *query | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-089/SqlTainted/SqlTainted.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-089/SqlTainted/SqlTainted.expected index ee3754653965..2300fddefd79 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-089/SqlTainted/SqlTainted.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-089/SqlTainted/SqlTainted.expected @@ -1,12 +1,12 @@ edges -| test.c:14:27:14:30 | **argv | test.c:21:18:21:23 | *query1 | -| test.c:14:27:14:30 | **argv | test.c:35:16:35:23 | *userName | -| test.c:35:16:35:23 | *userName | test.c:40:25:40:32 | *username | -| test.c:38:7:38:20 | **globalUsername | test.c:51:18:51:23 | *query1 | -| test.c:40:25:40:32 | *username | test.c:38:7:38:20 | **globalUsername | -| test.c:75:8:75:16 | gets output argument | test.c:76:17:76:25 | *userInput | -| test.c:75:8:75:16 | gets output argument | test.c:77:20:77:28 | *userInput | -| test.cpp:39:27:39:30 | **argv | test.cpp:43:27:43:33 | *access to array | +| test.c:14:27:14:30 | **argv | test.c:21:18:21:23 | *query1 | provenance | | +| test.c:14:27:14:30 | **argv | test.c:35:16:35:23 | *userName | provenance | | +| test.c:35:16:35:23 | *userName | test.c:40:25:40:32 | *username | provenance | | +| test.c:38:7:38:20 | **globalUsername | test.c:51:18:51:23 | *query1 | provenance | | +| test.c:40:25:40:32 | *username | test.c:38:7:38:20 | **globalUsername | provenance | | +| test.c:75:8:75:16 | gets output argument | test.c:76:17:76:25 | *userInput | provenance | | +| test.c:75:8:75:16 | gets output argument | test.c:77:20:77:28 | *userInput | provenance | | +| test.cpp:39:27:39:30 | **argv | test.cpp:43:27:43:33 | *access to array | provenance | | nodes | test.c:14:27:14:30 | **argv | semmle.label | **argv | | test.c:21:18:21:23 | *query1 | semmle.label | *query1 | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-114/SAMATE/UncontrolledProcessOperation/UncontrolledProcessOperation.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-114/SAMATE/UncontrolledProcessOperation/UncontrolledProcessOperation.expected index 86ecf2ea37c9..d49af567a735 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-114/SAMATE/UncontrolledProcessOperation/UncontrolledProcessOperation.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-114/SAMATE/UncontrolledProcessOperation/UncontrolledProcessOperation.expected @@ -1,7 +1,7 @@ edges -| test.cpp:37:73:37:76 | *data | test.cpp:43:32:43:35 | *data | -| test.cpp:64:30:64:35 | *call to getenv | test.cpp:73:24:73:27 | *data | -| test.cpp:73:24:73:27 | *data | test.cpp:37:73:37:76 | *data | +| test.cpp:37:73:37:76 | *data | test.cpp:43:32:43:35 | *data | provenance | | +| test.cpp:64:30:64:35 | *call to getenv | test.cpp:73:24:73:27 | *data | provenance | | +| test.cpp:73:24:73:27 | *data | test.cpp:37:73:37:76 | *data | provenance | | nodes | test.cpp:37:73:37:76 | *data | semmle.label | *data | | test.cpp:43:32:43:35 | *data | semmle.label | *data | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-114/semmle/UncontrolledProcessOperation/UncontrolledProcessOperation.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-114/semmle/UncontrolledProcessOperation/UncontrolledProcessOperation.expected index 9e10928ecdae..3f94fe17319e 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-114/semmle/UncontrolledProcessOperation/UncontrolledProcessOperation.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-114/semmle/UncontrolledProcessOperation/UncontrolledProcessOperation.expected @@ -1,16 +1,16 @@ edges -| test.cpp:24:30:24:36 | *command | test.cpp:26:10:26:16 | *command | -| test.cpp:29:30:29:36 | *command | test.cpp:31:10:31:16 | *command | -| test.cpp:42:18:42:34 | *call to getenv | test.cpp:24:30:24:36 | *command | -| test.cpp:43:18:43:34 | *call to getenv | test.cpp:29:30:29:36 | *command | -| test.cpp:56:12:56:17 | fgets output argument | test.cpp:62:10:62:15 | *buffer | -| test.cpp:56:12:56:17 | fgets output argument | test.cpp:63:10:63:13 | *data | -| test.cpp:56:12:56:17 | fgets output argument | test.cpp:64:10:64:16 | *dataref | -| test.cpp:56:12:56:17 | fgets output argument | test.cpp:65:10:65:14 | *data2 | -| test.cpp:76:12:76:17 | fgets output argument | test.cpp:78:10:78:15 | *buffer | -| test.cpp:98:17:98:22 | recv output argument | test.cpp:99:15:99:20 | *buffer | -| test.cpp:106:17:106:22 | recv output argument | test.cpp:107:15:107:20 | *buffer | -| test.cpp:113:8:113:12 | *call to fgets | test.cpp:114:9:114:11 | *ptr | +| test.cpp:24:30:24:36 | *command | test.cpp:26:10:26:16 | *command | provenance | | +| test.cpp:29:30:29:36 | *command | test.cpp:31:10:31:16 | *command | provenance | | +| test.cpp:42:18:42:34 | *call to getenv | test.cpp:24:30:24:36 | *command | provenance | | +| test.cpp:43:18:43:34 | *call to getenv | test.cpp:29:30:29:36 | *command | provenance | | +| test.cpp:56:12:56:17 | fgets output argument | test.cpp:62:10:62:15 | *buffer | provenance | | +| test.cpp:56:12:56:17 | fgets output argument | test.cpp:63:10:63:13 | *data | provenance | | +| test.cpp:56:12:56:17 | fgets output argument | test.cpp:64:10:64:16 | *dataref | provenance | | +| test.cpp:56:12:56:17 | fgets output argument | test.cpp:65:10:65:14 | *data2 | provenance | | +| test.cpp:76:12:76:17 | fgets output argument | test.cpp:78:10:78:15 | *buffer | provenance | | +| test.cpp:98:17:98:22 | recv output argument | test.cpp:99:15:99:20 | *buffer | provenance | | +| test.cpp:106:17:106:22 | recv output argument | test.cpp:107:15:107:20 | *buffer | provenance | | +| test.cpp:113:8:113:12 | *call to fgets | test.cpp:114:9:114:11 | *ptr | provenance | | nodes | test.cpp:24:30:24:36 | *command | semmle.label | *command | | test.cpp:26:10:26:16 | *command | semmle.label | *command | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-119/SAMATE/OverrunWriteProductFlow.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-119/SAMATE/OverrunWriteProductFlow.expected index 499d34d0d40d..21e6445c8fd1 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-119/SAMATE/OverrunWriteProductFlow.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-119/SAMATE/OverrunWriteProductFlow.expected @@ -1,62 +1,62 @@ edges -| test.cpp:16:11:16:21 | **mk_string_t [string] | test.cpp:39:21:39:31 | *call to mk_string_t [string] | -| test.cpp:18:5:18:7 | *str [post update] [string] | test.cpp:19:5:19:7 | *str [string] | -| test.cpp:18:5:18:30 | ... = ... | test.cpp:18:5:18:7 | *str [post update] [string] | -| test.cpp:18:19:18:24 | call to malloc | test.cpp:18:5:18:30 | ... = ... | -| test.cpp:19:5:19:7 | *str [string] | test.cpp:16:11:16:21 | **mk_string_t [string] | -| test.cpp:39:21:39:31 | *call to mk_string_t [string] | test.cpp:42:13:42:15 | *str [string] | -| test.cpp:39:21:39:31 | *call to mk_string_t [string] | test.cpp:72:17:72:19 | *str [string] | -| test.cpp:39:21:39:31 | *call to mk_string_t [string] | test.cpp:80:17:80:19 | *str [string] | -| test.cpp:42:13:42:15 | *str [string] | test.cpp:42:18:42:23 | string | -| test.cpp:72:17:72:19 | *str [string] | test.cpp:72:22:72:27 | string | -| test.cpp:80:17:80:19 | *str [string] | test.cpp:80:22:80:27 | string | -| test.cpp:88:11:88:30 | **mk_string_t_plus_one [string] | test.cpp:96:21:96:40 | *call to mk_string_t_plus_one [string] | -| test.cpp:90:5:90:7 | *str [post update] [string] | test.cpp:91:5:91:7 | *str [string] | -| test.cpp:90:5:90:34 | ... = ... | test.cpp:90:5:90:7 | *str [post update] [string] | -| test.cpp:90:19:90:24 | call to malloc | test.cpp:90:5:90:34 | ... = ... | -| test.cpp:91:5:91:7 | *str [string] | test.cpp:88:11:88:30 | **mk_string_t_plus_one [string] | -| test.cpp:96:21:96:40 | *call to mk_string_t_plus_one [string] | test.cpp:99:13:99:15 | *str [string] | -| test.cpp:96:21:96:40 | *call to mk_string_t_plus_one [string] | test.cpp:129:17:129:19 | *str [string] | -| test.cpp:96:21:96:40 | *call to mk_string_t_plus_one [string] | test.cpp:137:17:137:19 | *str [string] | -| test.cpp:99:13:99:15 | *str [string] | test.cpp:99:18:99:23 | string | -| test.cpp:129:17:129:19 | *str [string] | test.cpp:129:22:129:27 | string | -| test.cpp:137:17:137:19 | *str [string] | test.cpp:137:22:137:27 | string | -| test.cpp:147:5:147:7 | *str [post update] [string] | test.cpp:148:5:148:7 | *str [string] | -| test.cpp:147:5:147:34 | ... = ... | test.cpp:147:5:147:7 | *str [post update] [string] | -| test.cpp:147:19:147:24 | call to malloc | test.cpp:147:5:147:34 | ... = ... | -| test.cpp:148:5:148:7 | *str [string] | test.cpp:152:13:152:15 | *str [string] | -| test.cpp:148:5:148:7 | *str [string] | test.cpp:154:13:154:15 | *str [string] | -| test.cpp:148:5:148:7 | *str [string] | test.cpp:156:13:156:15 | *str [string] | -| test.cpp:148:5:148:7 | *str [string] | test.cpp:175:17:175:19 | *str [string] | -| test.cpp:148:5:148:7 | *str [string] | test.cpp:187:17:187:19 | *str [string] | -| test.cpp:148:5:148:7 | *str [string] | test.cpp:195:17:195:19 | *str [string] | -| test.cpp:148:5:148:7 | *str [string] | test.cpp:199:17:199:19 | *str [string] | -| test.cpp:148:5:148:7 | *str [string] | test.cpp:203:17:203:19 | *str [string] | -| test.cpp:148:5:148:7 | *str [string] | test.cpp:207:17:207:19 | *str [string] | -| test.cpp:152:13:152:15 | *str [string] | test.cpp:152:18:152:23 | string | -| test.cpp:154:13:154:15 | *str [string] | test.cpp:154:18:154:23 | string | -| test.cpp:156:13:156:15 | *str [string] | test.cpp:156:18:156:23 | string | -| test.cpp:175:17:175:19 | *str [string] | test.cpp:175:22:175:27 | string | -| test.cpp:187:17:187:19 | *str [string] | test.cpp:187:22:187:27 | string | -| test.cpp:195:17:195:19 | *str [string] | test.cpp:195:22:195:27 | string | -| test.cpp:199:17:199:19 | *str [string] | test.cpp:199:22:199:27 | string | -| test.cpp:203:17:203:19 | *str [string] | test.cpp:203:22:203:27 | string | -| test.cpp:207:17:207:19 | *str [string] | test.cpp:207:22:207:27 | string | -| test.cpp:214:24:214:24 | p | test.cpp:216:10:216:10 | p | -| test.cpp:220:27:220:54 | call to malloc | test.cpp:222:15:222:20 | buffer | -| test.cpp:222:15:222:20 | buffer | test.cpp:214:24:214:24 | p | -| test.cpp:228:27:228:54 | call to malloc | test.cpp:232:10:232:15 | buffer | -| test.cpp:235:40:235:45 | buffer | test.cpp:236:5:236:26 | ... = ... | -| test.cpp:236:5:236:26 | ... = ... | test.cpp:236:5:236:9 | *p_str [post update] [string] | -| test.cpp:241:20:241:38 | call to malloc | test.cpp:242:22:242:27 | buffer | -| test.cpp:242:16:242:19 | set_string output argument [string] | test.cpp:243:12:243:14 | *str [string] | -| test.cpp:242:22:242:27 | buffer | test.cpp:235:40:235:45 | buffer | -| test.cpp:242:22:242:27 | buffer | test.cpp:242:16:242:19 | set_string output argument [string] | -| test.cpp:243:12:243:14 | *str [string] | test.cpp:243:12:243:21 | string | -| test.cpp:249:14:249:33 | call to my_alloc | test.cpp:250:12:250:12 | p | -| test.cpp:256:9:256:25 | call to malloc | test.cpp:257:12:257:12 | p | -| test.cpp:262:15:262:30 | call to malloc | test.cpp:266:12:266:12 | p | -| test.cpp:264:13:264:30 | call to malloc | test.cpp:266:12:266:12 | p | +| test.cpp:16:11:16:21 | **mk_string_t [string] | test.cpp:39:21:39:31 | *call to mk_string_t [string] | provenance | | +| test.cpp:18:5:18:7 | *str [post update] [string] | test.cpp:19:5:19:7 | *str [string] | provenance | | +| test.cpp:18:5:18:30 | ... = ... | test.cpp:18:5:18:7 | *str [post update] [string] | provenance | | +| test.cpp:18:19:18:24 | call to malloc | test.cpp:18:5:18:30 | ... = ... | provenance | | +| test.cpp:19:5:19:7 | *str [string] | test.cpp:16:11:16:21 | **mk_string_t [string] | provenance | | +| test.cpp:39:21:39:31 | *call to mk_string_t [string] | test.cpp:42:13:42:15 | *str [string] | provenance | | +| test.cpp:39:21:39:31 | *call to mk_string_t [string] | test.cpp:72:17:72:19 | *str [string] | provenance | | +| test.cpp:39:21:39:31 | *call to mk_string_t [string] | test.cpp:80:17:80:19 | *str [string] | provenance | | +| test.cpp:42:13:42:15 | *str [string] | test.cpp:42:18:42:23 | string | provenance | | +| test.cpp:72:17:72:19 | *str [string] | test.cpp:72:22:72:27 | string | provenance | | +| test.cpp:80:17:80:19 | *str [string] | test.cpp:80:22:80:27 | string | provenance | | +| test.cpp:88:11:88:30 | **mk_string_t_plus_one [string] | test.cpp:96:21:96:40 | *call to mk_string_t_plus_one [string] | provenance | | +| test.cpp:90:5:90:7 | *str [post update] [string] | test.cpp:91:5:91:7 | *str [string] | provenance | | +| test.cpp:90:5:90:34 | ... = ... | test.cpp:90:5:90:7 | *str [post update] [string] | provenance | | +| test.cpp:90:19:90:24 | call to malloc | test.cpp:90:5:90:34 | ... = ... | provenance | | +| test.cpp:91:5:91:7 | *str [string] | test.cpp:88:11:88:30 | **mk_string_t_plus_one [string] | provenance | | +| test.cpp:96:21:96:40 | *call to mk_string_t_plus_one [string] | test.cpp:99:13:99:15 | *str [string] | provenance | | +| test.cpp:96:21:96:40 | *call to mk_string_t_plus_one [string] | test.cpp:129:17:129:19 | *str [string] | provenance | | +| test.cpp:96:21:96:40 | *call to mk_string_t_plus_one [string] | test.cpp:137:17:137:19 | *str [string] | provenance | | +| test.cpp:99:13:99:15 | *str [string] | test.cpp:99:18:99:23 | string | provenance | | +| test.cpp:129:17:129:19 | *str [string] | test.cpp:129:22:129:27 | string | provenance | | +| test.cpp:137:17:137:19 | *str [string] | test.cpp:137:22:137:27 | string | provenance | | +| test.cpp:147:5:147:7 | *str [post update] [string] | test.cpp:148:5:148:7 | *str [string] | provenance | | +| test.cpp:147:5:147:34 | ... = ... | test.cpp:147:5:147:7 | *str [post update] [string] | provenance | | +| test.cpp:147:19:147:24 | call to malloc | test.cpp:147:5:147:34 | ... = ... | provenance | | +| test.cpp:148:5:148:7 | *str [string] | test.cpp:152:13:152:15 | *str [string] | provenance | | +| test.cpp:148:5:148:7 | *str [string] | test.cpp:154:13:154:15 | *str [string] | provenance | | +| test.cpp:148:5:148:7 | *str [string] | test.cpp:156:13:156:15 | *str [string] | provenance | | +| test.cpp:148:5:148:7 | *str [string] | test.cpp:175:17:175:19 | *str [string] | provenance | | +| test.cpp:148:5:148:7 | *str [string] | test.cpp:187:17:187:19 | *str [string] | provenance | | +| test.cpp:148:5:148:7 | *str [string] | test.cpp:195:17:195:19 | *str [string] | provenance | | +| test.cpp:148:5:148:7 | *str [string] | test.cpp:199:17:199:19 | *str [string] | provenance | | +| test.cpp:148:5:148:7 | *str [string] | test.cpp:203:17:203:19 | *str [string] | provenance | | +| test.cpp:148:5:148:7 | *str [string] | test.cpp:207:17:207:19 | *str [string] | provenance | | +| test.cpp:152:13:152:15 | *str [string] | test.cpp:152:18:152:23 | string | provenance | | +| test.cpp:154:13:154:15 | *str [string] | test.cpp:154:18:154:23 | string | provenance | | +| test.cpp:156:13:156:15 | *str [string] | test.cpp:156:18:156:23 | string | provenance | | +| test.cpp:175:17:175:19 | *str [string] | test.cpp:175:22:175:27 | string | provenance | | +| test.cpp:187:17:187:19 | *str [string] | test.cpp:187:22:187:27 | string | provenance | | +| test.cpp:195:17:195:19 | *str [string] | test.cpp:195:22:195:27 | string | provenance | | +| test.cpp:199:17:199:19 | *str [string] | test.cpp:199:22:199:27 | string | provenance | | +| test.cpp:203:17:203:19 | *str [string] | test.cpp:203:22:203:27 | string | provenance | | +| test.cpp:207:17:207:19 | *str [string] | test.cpp:207:22:207:27 | string | provenance | | +| test.cpp:214:24:214:24 | p | test.cpp:216:10:216:10 | p | provenance | | +| test.cpp:220:27:220:54 | call to malloc | test.cpp:222:15:222:20 | buffer | provenance | | +| test.cpp:222:15:222:20 | buffer | test.cpp:214:24:214:24 | p | provenance | | +| test.cpp:228:27:228:54 | call to malloc | test.cpp:232:10:232:15 | buffer | provenance | | +| test.cpp:235:40:235:45 | buffer | test.cpp:236:5:236:26 | ... = ... | provenance | | +| test.cpp:236:5:236:26 | ... = ... | test.cpp:236:5:236:9 | *p_str [post update] [string] | provenance | | +| test.cpp:241:20:241:38 | call to malloc | test.cpp:242:22:242:27 | buffer | provenance | | +| test.cpp:242:16:242:19 | set_string output argument [string] | test.cpp:243:12:243:14 | *str [string] | provenance | | +| test.cpp:242:22:242:27 | buffer | test.cpp:235:40:235:45 | buffer | provenance | | +| test.cpp:242:22:242:27 | buffer | test.cpp:242:16:242:19 | set_string output argument [string] | provenance | | +| test.cpp:243:12:243:14 | *str [string] | test.cpp:243:12:243:21 | string | provenance | | +| test.cpp:249:14:249:33 | call to my_alloc | test.cpp:250:12:250:12 | p | provenance | | +| test.cpp:256:9:256:25 | call to malloc | test.cpp:257:12:257:12 | p | provenance | | +| test.cpp:262:15:262:30 | call to malloc | test.cpp:266:12:266:12 | p | provenance | | +| test.cpp:264:13:264:30 | call to malloc | test.cpp:266:12:266:12 | p | provenance | | nodes | test.cpp:16:11:16:21 | **mk_string_t [string] | semmle.label | **mk_string_t [string] | | test.cpp:18:5:18:7 | *str [post update] [string] | semmle.label | *str [post update] [string] | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-119/semmle/tests/OverflowDestination.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-119/semmle/tests/OverflowDestination.expected index f911d3b3da1f..fa6e1c36b538 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-119/semmle/tests/OverflowDestination.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-119/semmle/tests/OverflowDestination.expected @@ -1,14 +1,14 @@ edges -| main.cpp:6:27:6:30 | **argv | main.cpp:7:33:7:36 | **argv | -| main.cpp:7:33:7:36 | **argv | overflowdestination.cpp:23:45:23:48 | **argv | -| overflowdestination.cpp:23:45:23:48 | **argv | overflowdestination.cpp:30:17:30:20 | *arg1 | -| overflowdestination.cpp:43:8:43:10 | fgets output argument | overflowdestination.cpp:46:15:46:17 | *src | -| overflowdestination.cpp:50:52:50:54 | *src | overflowdestination.cpp:53:15:53:17 | *src | -| overflowdestination.cpp:57:52:57:54 | *src | overflowdestination.cpp:64:16:64:19 | *src2 | -| overflowdestination.cpp:73:8:73:10 | fgets output argument | overflowdestination.cpp:75:30:75:32 | *src | -| overflowdestination.cpp:73:8:73:10 | fgets output argument | overflowdestination.cpp:76:30:76:32 | *src | -| overflowdestination.cpp:75:30:75:32 | *src | overflowdestination.cpp:50:52:50:54 | *src | -| overflowdestination.cpp:76:30:76:32 | *src | overflowdestination.cpp:57:52:57:54 | *src | +| main.cpp:6:27:6:30 | **argv | main.cpp:7:33:7:36 | **argv | provenance | | +| main.cpp:7:33:7:36 | **argv | overflowdestination.cpp:23:45:23:48 | **argv | provenance | | +| overflowdestination.cpp:23:45:23:48 | **argv | overflowdestination.cpp:30:17:30:20 | *arg1 | provenance | | +| overflowdestination.cpp:43:8:43:10 | fgets output argument | overflowdestination.cpp:46:15:46:17 | *src | provenance | | +| overflowdestination.cpp:50:52:50:54 | *src | overflowdestination.cpp:53:15:53:17 | *src | provenance | | +| overflowdestination.cpp:57:52:57:54 | *src | overflowdestination.cpp:64:16:64:19 | *src2 | provenance | | +| overflowdestination.cpp:73:8:73:10 | fgets output argument | overflowdestination.cpp:75:30:75:32 | *src | provenance | | +| overflowdestination.cpp:73:8:73:10 | fgets output argument | overflowdestination.cpp:76:30:76:32 | *src | provenance | | +| overflowdestination.cpp:75:30:75:32 | *src | overflowdestination.cpp:50:52:50:54 | *src | provenance | | +| overflowdestination.cpp:76:30:76:32 | *src | overflowdestination.cpp:57:52:57:54 | *src | provenance | | nodes | main.cpp:6:27:6:30 | **argv | semmle.label | **argv | | main.cpp:7:33:7:36 | **argv | semmle.label | **argv | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-119/semmle/tests/UnboundedWrite.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-119/semmle/tests/UnboundedWrite.expected index ac4b606898d7..c5cfefdbff07 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-119/semmle/tests/UnboundedWrite.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-119/semmle/tests/UnboundedWrite.expected @@ -1,17 +1,17 @@ edges -| main.cpp:6:27:6:30 | **argv | main.cpp:10:20:10:23 | **argv | -| main.cpp:10:20:10:23 | **argv | tests.cpp:657:32:657:35 | **argv | -| tests.cpp:613:19:613:24 | *source | tests.cpp:615:17:615:22 | *source | -| tests.cpp:622:19:622:24 | *source | tests.cpp:625:2:625:16 | *... = ... | -| tests.cpp:625:2:625:2 | *s [post update] [*home] | tests.cpp:628:14:628:14 | *s [*home] | -| tests.cpp:625:2:625:16 | *... = ... | tests.cpp:625:2:625:2 | *s [post update] [*home] | -| tests.cpp:628:14:628:14 | *s [*home] | tests.cpp:628:14:628:19 | *home | -| tests.cpp:628:14:628:14 | *s [*home] | tests.cpp:628:16:628:19 | *home | -| tests.cpp:628:16:628:19 | *home | tests.cpp:628:14:628:19 | *home | -| tests.cpp:657:32:657:35 | **argv | tests.cpp:682:9:682:15 | *access to array | -| tests.cpp:657:32:657:35 | **argv | tests.cpp:683:9:683:15 | *access to array | -| tests.cpp:682:9:682:15 | *access to array | tests.cpp:613:19:613:24 | *source | -| tests.cpp:683:9:683:15 | *access to array | tests.cpp:622:19:622:24 | *source | +| main.cpp:6:27:6:30 | **argv | main.cpp:10:20:10:23 | **argv | provenance | | +| main.cpp:10:20:10:23 | **argv | tests.cpp:657:32:657:35 | **argv | provenance | | +| tests.cpp:613:19:613:24 | *source | tests.cpp:615:17:615:22 | *source | provenance | | +| tests.cpp:622:19:622:24 | *source | tests.cpp:625:2:625:16 | *... = ... | provenance | | +| tests.cpp:625:2:625:2 | *s [post update] [*home] | tests.cpp:628:14:628:14 | *s [*home] | provenance | | +| tests.cpp:625:2:625:16 | *... = ... | tests.cpp:625:2:625:2 | *s [post update] [*home] | provenance | | +| tests.cpp:628:14:628:14 | *s [*home] | tests.cpp:628:14:628:19 | *home | provenance | | +| tests.cpp:628:14:628:14 | *s [*home] | tests.cpp:628:16:628:19 | *home | provenance | | +| tests.cpp:628:16:628:19 | *home | tests.cpp:628:14:628:19 | *home | provenance | | +| tests.cpp:657:32:657:35 | **argv | tests.cpp:682:9:682:15 | *access to array | provenance | | +| tests.cpp:657:32:657:35 | **argv | tests.cpp:683:9:683:15 | *access to array | provenance | | +| tests.cpp:682:9:682:15 | *access to array | tests.cpp:613:19:613:24 | *source | provenance | | +| tests.cpp:683:9:683:15 | *access to array | tests.cpp:622:19:622:24 | *source | provenance | | nodes | main.cpp:6:27:6:30 | **argv | semmle.label | **argv | | main.cpp:10:20:10:23 | **argv | semmle.label | **argv | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-120/semmle/tests/UnboundedWrite.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-120/semmle/tests/UnboundedWrite.expected index 49c6a7799e77..0ebcbb8cde4e 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-120/semmle/tests/UnboundedWrite.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-120/semmle/tests/UnboundedWrite.expected @@ -1,7 +1,7 @@ edges -| tests.c:16:26:16:29 | **argv | tests.c:28:22:28:28 | *access to array | -| tests.c:16:26:16:29 | **argv | tests.c:29:28:29:34 | *access to array | -| tests.c:16:26:16:29 | **argv | tests.c:34:10:34:16 | *access to array | +| tests.c:16:26:16:29 | **argv | tests.c:28:22:28:28 | *access to array | provenance | | +| tests.c:16:26:16:29 | **argv | tests.c:29:28:29:34 | *access to array | provenance | | +| tests.c:16:26:16:29 | **argv | tests.c:34:10:34:16 | *access to array | provenance | | nodes | tests.c:16:26:16:29 | **argv | semmle.label | **argv | | tests.c:28:22:28:28 | *access to array | semmle.label | *access to array | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-129/SAMATE/ImproperArrayIndexValidation/ImproperArrayIndexValidation.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-129/SAMATE/ImproperArrayIndexValidation/ImproperArrayIndexValidation.expected index 35d6e58f458c..10286da7a386 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-129/SAMATE/ImproperArrayIndexValidation/ImproperArrayIndexValidation.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-129/SAMATE/ImproperArrayIndexValidation/ImproperArrayIndexValidation.expected @@ -1,5 +1,5 @@ edges -| CWE122_Heap_Based_Buffer_Overflow__c_CWE129_fgets_01.c:30:19:30:29 | fgets output argument | CWE122_Heap_Based_Buffer_Overflow__c_CWE129_fgets_01.c:52:20:52:23 | data | +| CWE122_Heap_Based_Buffer_Overflow__c_CWE129_fgets_01.c:30:19:30:29 | fgets output argument | CWE122_Heap_Based_Buffer_Overflow__c_CWE129_fgets_01.c:52:20:52:23 | data | provenance | | nodes | CWE122_Heap_Based_Buffer_Overflow__c_CWE129_fgets_01.c:30:19:30:29 | fgets output argument | semmle.label | fgets output argument | | CWE122_Heap_Based_Buffer_Overflow__c_CWE129_fgets_01.c:52:20:52:23 | data | semmle.label | data | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-129/semmle/ImproperArrayIndexValidation/ImproperArrayIndexValidation.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-129/semmle/ImproperArrayIndexValidation/ImproperArrayIndexValidation.expected index f766aabda57b..141d1351540c 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-129/semmle/ImproperArrayIndexValidation/ImproperArrayIndexValidation.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-129/semmle/ImproperArrayIndexValidation/ImproperArrayIndexValidation.expected @@ -1,13 +1,13 @@ edges -| test1.c:7:26:7:29 | **argv | test1.c:9:9:9:9 | i | -| test1.c:7:26:7:29 | **argv | test1.c:11:9:11:9 | i | -| test1.c:7:26:7:29 | **argv | test1.c:13:9:13:9 | i | -| test1.c:9:9:9:9 | i | test1.c:16:16:16:16 | i | -| test1.c:11:9:11:9 | i | test1.c:32:16:32:16 | i | -| test1.c:13:9:13:9 | i | test1.c:48:16:48:16 | i | -| test1.c:16:16:16:16 | i | test1.c:18:16:18:16 | i | -| test1.c:32:16:32:16 | i | test1.c:33:11:33:11 | i | -| test1.c:48:16:48:16 | i | test1.c:53:15:53:15 | j | +| test1.c:7:26:7:29 | **argv | test1.c:9:9:9:9 | i | provenance | | +| test1.c:7:26:7:29 | **argv | test1.c:11:9:11:9 | i | provenance | | +| test1.c:7:26:7:29 | **argv | test1.c:13:9:13:9 | i | provenance | | +| test1.c:9:9:9:9 | i | test1.c:16:16:16:16 | i | provenance | | +| test1.c:11:9:11:9 | i | test1.c:32:16:32:16 | i | provenance | | +| test1.c:13:9:13:9 | i | test1.c:48:16:48:16 | i | provenance | | +| test1.c:16:16:16:16 | i | test1.c:18:16:18:16 | i | provenance | | +| test1.c:32:16:32:16 | i | test1.c:33:11:33:11 | i | provenance | | +| test1.c:48:16:48:16 | i | test1.c:53:15:53:15 | j | provenance | | nodes | test1.c:7:26:7:29 | **argv | semmle.label | **argv | | test1.c:9:9:9:9 | i | semmle.label | i | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-134/SAMATE/UncontrolledFormatString.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-134/SAMATE/UncontrolledFormatString.expected index 49b397090802..a977543a8ecb 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-134/SAMATE/UncontrolledFormatString.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-134/SAMATE/UncontrolledFormatString.expected @@ -1,7 +1,7 @@ edges -| char_connect_socket_w32_vsnprintf_01_bad.c:94:46:94:69 | recv output argument | char_connect_socket_w32_vsnprintf_01_bad.c:125:15:125:18 | *data | -| char_console_fprintf_01_bad.c:30:23:30:35 | fgets output argument | char_console_fprintf_01_bad.c:49:21:49:24 | *data | -| char_environment_fprintf_01_bad.c:27:30:27:35 | *call to getenv | char_environment_fprintf_01_bad.c:36:21:36:24 | *data | +| char_connect_socket_w32_vsnprintf_01_bad.c:94:46:94:69 | recv output argument | char_connect_socket_w32_vsnprintf_01_bad.c:125:15:125:18 | *data | provenance | | +| char_console_fprintf_01_bad.c:30:23:30:35 | fgets output argument | char_console_fprintf_01_bad.c:49:21:49:24 | *data | provenance | | +| char_environment_fprintf_01_bad.c:27:30:27:35 | *call to getenv | char_environment_fprintf_01_bad.c:36:21:36:24 | *data | provenance | | nodes | char_connect_socket_w32_vsnprintf_01_bad.c:94:46:94:69 | recv output argument | semmle.label | recv output argument | | char_connect_socket_w32_vsnprintf_01_bad.c:125:15:125:18 | *data | semmle.label | *data | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/argv/argvLocal.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/argv/argvLocal.expected index 2c2db139bafd..8f09b2ee7f5c 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/argv/argvLocal.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/argv/argvLocal.expected @@ -1,28 +1,28 @@ edges -| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:95:9:95:15 | *access to array | -| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:96:15:96:21 | *access to array | -| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:101:9:101:10 | *i1 | -| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:102:15:102:16 | *i1 | -| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:106:9:106:13 | *access to array | -| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:107:15:107:19 | *access to array | -| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:110:9:110:11 | ** ... | -| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:111:15:111:17 | ** ... | -| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:116:9:116:10 | *i3 | -| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:117:15:117:16 | *i3 | -| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:121:9:121:10 | *i4 | -| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:122:15:122:16 | *i4 | -| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:127:9:127:10 | *i5 | -| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:128:15:128:16 | *i5 | -| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:131:9:131:14 | *... + ... | -| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:132:15:132:20 | *... + ... | -| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:135:9:135:12 | *... ++ | -| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:136:15:136:18 | *-- ... | -| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:139:9:139:26 | *... ? ... : ... | -| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:140:15:140:32 | *... ? ... : ... | -| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:144:9:144:10 | *i7 | -| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:145:15:145:16 | *i7 | -| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:150:9:150:10 | *i8 | -| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:151:15:151:16 | *i8 | +| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:95:9:95:15 | *access to array | provenance | | +| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:96:15:96:21 | *access to array | provenance | | +| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:101:9:101:10 | *i1 | provenance | | +| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:102:15:102:16 | *i1 | provenance | | +| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:106:9:106:13 | *access to array | provenance | | +| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:107:15:107:19 | *access to array | provenance | | +| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:110:9:110:11 | ** ... | provenance | | +| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:111:15:111:17 | ** ... | provenance | | +| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:116:9:116:10 | *i3 | provenance | | +| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:117:15:117:16 | *i3 | provenance | | +| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:121:9:121:10 | *i4 | provenance | | +| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:122:15:122:16 | *i4 | provenance | | +| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:127:9:127:10 | *i5 | provenance | | +| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:128:15:128:16 | *i5 | provenance | | +| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:131:9:131:14 | *... + ... | provenance | | +| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:132:15:132:20 | *... + ... | provenance | | +| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:135:9:135:12 | *... ++ | provenance | | +| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:136:15:136:18 | *-- ... | provenance | | +| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:139:9:139:26 | *... ? ... : ... | provenance | | +| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:140:15:140:32 | *... ? ... : ... | provenance | | +| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:144:9:144:10 | *i7 | provenance | | +| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:145:15:145:16 | *i7 | provenance | | +| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:150:9:150:10 | *i8 | provenance | | +| argvLocal.c:13:27:13:30 | **argv | argvLocal.c:151:15:151:16 | *i8 | provenance | | nodes | argvLocal.c:13:27:13:30 | **argv | semmle.label | **argv | | argvLocal.c:95:9:95:15 | *access to array | semmle.label | *access to array | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/funcs/funcsLocal.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/funcs/funcsLocal.expected index d8ccacc88cd3..20ae8a4b9ba5 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/funcs/funcsLocal.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/funcs/funcsLocal.expected @@ -1,12 +1,12 @@ edges -| funcsLocal.c:16:8:16:9 | fread output argument | funcsLocal.c:17:9:17:10 | *i1 | -| funcsLocal.c:16:8:16:9 | fread output argument | funcsLocal.c:58:9:58:10 | *e1 | -| funcsLocal.c:26:8:26:9 | fgets output argument | funcsLocal.c:27:9:27:10 | *i3 | -| funcsLocal.c:31:13:31:17 | *call to fgets | funcsLocal.c:32:9:32:10 | *i4 | -| funcsLocal.c:36:7:36:8 | gets output argument | funcsLocal.c:37:9:37:10 | *i5 | -| funcsLocal.c:41:13:41:16 | *call to gets | funcsLocal.c:42:9:42:10 | *i6 | -| funcsLocal.c:46:7:46:9 | gets output argument | funcsLocal.c:47:9:47:11 | ** ... | -| funcsLocal.c:52:8:52:11 | *call to gets | funcsLocal.c:53:9:53:11 | ** ... | +| funcsLocal.c:16:8:16:9 | fread output argument | funcsLocal.c:17:9:17:10 | *i1 | provenance | | +| funcsLocal.c:16:8:16:9 | fread output argument | funcsLocal.c:58:9:58:10 | *e1 | provenance | | +| funcsLocal.c:26:8:26:9 | fgets output argument | funcsLocal.c:27:9:27:10 | *i3 | provenance | | +| funcsLocal.c:31:13:31:17 | *call to fgets | funcsLocal.c:32:9:32:10 | *i4 | provenance | | +| funcsLocal.c:36:7:36:8 | gets output argument | funcsLocal.c:37:9:37:10 | *i5 | provenance | | +| funcsLocal.c:41:13:41:16 | *call to gets | funcsLocal.c:42:9:42:10 | *i6 | provenance | | +| funcsLocal.c:46:7:46:9 | gets output argument | funcsLocal.c:47:9:47:11 | ** ... | provenance | | +| funcsLocal.c:52:8:52:11 | *call to gets | funcsLocal.c:53:9:53:11 | ** ... | provenance | | nodes | funcsLocal.c:16:8:16:9 | fread output argument | semmle.label | fread output argument | | funcsLocal.c:17:9:17:10 | *i1 | semmle.label | *i1 | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/globalVars/UncontrolledFormatString.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/globalVars/UncontrolledFormatString.expected index 683d57b5b752..087a0a88662f 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/globalVars/UncontrolledFormatString.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/globalVars/UncontrolledFormatString.expected @@ -1,15 +1,15 @@ edges -| globalVars.c:8:7:8:10 | **copy | globalVars.c:27:9:27:12 | *copy | -| globalVars.c:8:7:8:10 | **copy | globalVars.c:30:15:30:18 | *copy | -| globalVars.c:8:7:8:10 | **copy | globalVars.c:35:11:35:14 | *copy | -| globalVars.c:9:7:9:11 | **copy2 | globalVars.c:38:9:38:13 | *copy2 | -| globalVars.c:9:7:9:11 | **copy2 | globalVars.c:41:15:41:19 | *copy2 | -| globalVars.c:9:7:9:11 | **copy2 | globalVars.c:50:9:50:13 | *copy2 | -| globalVars.c:11:22:11:25 | **argv | globalVars.c:8:7:8:10 | **copy | -| globalVars.c:15:21:15:23 | *val | globalVars.c:9:7:9:11 | **copy2 | -| globalVars.c:23:27:23:30 | **argv | globalVars.c:24:11:24:14 | **argv | -| globalVars.c:24:11:24:14 | **argv | globalVars.c:11:22:11:25 | **argv | -| globalVars.c:35:11:35:14 | *copy | globalVars.c:15:21:15:23 | *val | +| globalVars.c:8:7:8:10 | **copy | globalVars.c:27:9:27:12 | *copy | provenance | | +| globalVars.c:8:7:8:10 | **copy | globalVars.c:30:15:30:18 | *copy | provenance | | +| globalVars.c:8:7:8:10 | **copy | globalVars.c:35:11:35:14 | *copy | provenance | | +| globalVars.c:9:7:9:11 | **copy2 | globalVars.c:38:9:38:13 | *copy2 | provenance | | +| globalVars.c:9:7:9:11 | **copy2 | globalVars.c:41:15:41:19 | *copy2 | provenance | | +| globalVars.c:9:7:9:11 | **copy2 | globalVars.c:50:9:50:13 | *copy2 | provenance | | +| globalVars.c:11:22:11:25 | **argv | globalVars.c:8:7:8:10 | **copy | provenance | | +| globalVars.c:15:21:15:23 | *val | globalVars.c:9:7:9:11 | **copy2 | provenance | | +| globalVars.c:23:27:23:30 | **argv | globalVars.c:24:11:24:14 | **argv | provenance | | +| globalVars.c:24:11:24:14 | **argv | globalVars.c:11:22:11:25 | **argv | provenance | | +| globalVars.c:35:11:35:14 | *copy | globalVars.c:15:21:15:23 | *val | provenance | | nodes | globalVars.c:8:7:8:10 | **copy | semmle.label | **copy | | globalVars.c:9:7:9:11 | **copy2 | semmle.label | **copy2 | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/ifs/ifs.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/ifs/ifs.expected index 4bcbb79bf7b3..6e860511fb28 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/ifs/ifs.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-134/semmle/ifs/ifs.expected @@ -1,15 +1,15 @@ edges -| ifs.c:16:27:16:30 | **argv | ifs.c:62:9:62:10 | *c7 | -| ifs.c:16:27:16:30 | **argv | ifs.c:69:9:69:10 | *c8 | -| ifs.c:16:27:16:30 | **argv | ifs.c:75:9:75:10 | *i1 | -| ifs.c:16:27:16:30 | **argv | ifs.c:81:9:81:10 | *i2 | -| ifs.c:16:27:16:30 | **argv | ifs.c:87:9:87:10 | *i3 | -| ifs.c:16:27:16:30 | **argv | ifs.c:93:9:93:10 | *i4 | -| ifs.c:16:27:16:30 | **argv | ifs.c:99:9:99:10 | *i5 | -| ifs.c:16:27:16:30 | **argv | ifs.c:106:9:106:10 | *i6 | -| ifs.c:16:27:16:30 | **argv | ifs.c:112:9:112:10 | *i7 | -| ifs.c:16:27:16:30 | **argv | ifs.c:118:9:118:10 | *i8 | -| ifs.c:16:27:16:30 | **argv | ifs.c:124:9:124:10 | *i9 | +| ifs.c:16:27:16:30 | **argv | ifs.c:62:9:62:10 | *c7 | provenance | | +| ifs.c:16:27:16:30 | **argv | ifs.c:69:9:69:10 | *c8 | provenance | | +| ifs.c:16:27:16:30 | **argv | ifs.c:75:9:75:10 | *i1 | provenance | | +| ifs.c:16:27:16:30 | **argv | ifs.c:81:9:81:10 | *i2 | provenance | | +| ifs.c:16:27:16:30 | **argv | ifs.c:87:9:87:10 | *i3 | provenance | | +| ifs.c:16:27:16:30 | **argv | ifs.c:93:9:93:10 | *i4 | provenance | | +| ifs.c:16:27:16:30 | **argv | ifs.c:99:9:99:10 | *i5 | provenance | | +| ifs.c:16:27:16:30 | **argv | ifs.c:106:9:106:10 | *i6 | provenance | | +| ifs.c:16:27:16:30 | **argv | ifs.c:112:9:112:10 | *i7 | provenance | | +| ifs.c:16:27:16:30 | **argv | ifs.c:118:9:118:10 | *i8 | provenance | | +| ifs.c:16:27:16:30 | **argv | ifs.c:124:9:124:10 | *i9 | provenance | | nodes | ifs.c:16:27:16:30 | **argv | semmle.label | **argv | | ifs.c:62:9:62:10 | *c7 | semmle.label | *c7 | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-190/SAMATE/ArithmeticTainted.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-190/SAMATE/ArithmeticTainted.expected index d266afbe445e..a2221ec2fd3f 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-190/SAMATE/ArithmeticTainted.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-190/SAMATE/ArithmeticTainted.expected @@ -1,5 +1,5 @@ edges -| examples.cpp:63:26:63:30 | fscanf output argument | examples.cpp:66:11:66:14 | data | +| examples.cpp:63:26:63:30 | fscanf output argument | examples.cpp:66:11:66:14 | data | provenance | | nodes | examples.cpp:63:26:63:30 | fscanf output argument | semmle.label | fscanf output argument | | examples.cpp:66:11:66:14 | data | semmle.label | data | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-190/SAMATE/ArithmeticUncontrolled.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-190/SAMATE/ArithmeticUncontrolled.expected index 49766a8f25d2..7a6244f1d469 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-190/SAMATE/ArithmeticUncontrolled.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-190/SAMATE/ArithmeticUncontrolled.expected @@ -1,16 +1,16 @@ edges -| examples.cpp:22:26:22:33 | call to rand | examples.cpp:25:31:25:34 | data | -| examples.cpp:22:26:22:33 | call to rand | examples.cpp:25:31:25:34 | data | -| examples.cpp:22:26:22:33 | call to rand | examples.cpp:25:31:25:34 | data | -| examples.cpp:22:26:22:33 | call to rand | examples.cpp:25:31:25:34 | data | -| examples.cpp:22:26:22:33 | call to rand | examples.cpp:25:31:25:34 | data | -| examples.cpp:22:26:22:33 | call to rand | examples.cpp:25:31:25:34 | data | -| examples.cpp:35:26:35:33 | call to rand | examples.cpp:38:9:38:12 | data | -| examples.cpp:35:26:35:33 | call to rand | examples.cpp:38:9:38:12 | data | -| examples.cpp:35:26:35:33 | call to rand | examples.cpp:38:9:38:12 | data | -| examples.cpp:35:26:35:33 | call to rand | examples.cpp:38:9:38:12 | data | -| examples.cpp:35:26:35:33 | call to rand | examples.cpp:38:9:38:12 | data | -| examples.cpp:35:26:35:33 | call to rand | examples.cpp:38:9:38:12 | data | +| examples.cpp:22:26:22:33 | call to rand | examples.cpp:25:31:25:34 | data | provenance | | +| examples.cpp:22:26:22:33 | call to rand | examples.cpp:25:31:25:34 | data | provenance | | +| examples.cpp:22:26:22:33 | call to rand | examples.cpp:25:31:25:34 | data | provenance | | +| examples.cpp:22:26:22:33 | call to rand | examples.cpp:25:31:25:34 | data | provenance | | +| examples.cpp:22:26:22:33 | call to rand | examples.cpp:25:31:25:34 | data | provenance | | +| examples.cpp:22:26:22:33 | call to rand | examples.cpp:25:31:25:34 | data | provenance | | +| examples.cpp:35:26:35:33 | call to rand | examples.cpp:38:9:38:12 | data | provenance | | +| examples.cpp:35:26:35:33 | call to rand | examples.cpp:38:9:38:12 | data | provenance | | +| examples.cpp:35:26:35:33 | call to rand | examples.cpp:38:9:38:12 | data | provenance | | +| examples.cpp:35:26:35:33 | call to rand | examples.cpp:38:9:38:12 | data | provenance | | +| examples.cpp:35:26:35:33 | call to rand | examples.cpp:38:9:38:12 | data | provenance | | +| examples.cpp:35:26:35:33 | call to rand | examples.cpp:38:9:38:12 | data | provenance | | nodes | examples.cpp:22:26:22:33 | call to rand | semmle.label | call to rand | | examples.cpp:22:26:22:33 | call to rand | semmle.label | call to rand | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-190/semmle/ArithmeticUncontrolled/ArithmeticUncontrolled.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-190/semmle/ArithmeticUncontrolled/ArithmeticUncontrolled.expected index 8d456343b87a..ef46be9659a0 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-190/semmle/ArithmeticUncontrolled/ArithmeticUncontrolled.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-190/semmle/ArithmeticUncontrolled/ArithmeticUncontrolled.expected @@ -1,36 +1,36 @@ edges -| test.c:18:13:18:16 | call to rand | test.c:21:17:21:17 | r | -| test.c:34:13:34:18 | call to rand | test.c:35:5:35:5 | r | -| test.c:44:13:44:16 | call to rand | test.c:45:5:45:5 | r | -| test.c:75:13:75:19 | call to rand | test.c:77:9:77:9 | r | -| test.c:75:13:75:19 | call to rand | test.c:77:9:77:9 | r | -| test.c:81:14:81:17 | call to rand | test.c:83:9:83:9 | r | -| test.c:81:23:81:26 | call to rand | test.c:83:9:83:9 | r | -| test.c:125:13:125:16 | call to rand | test.c:127:9:127:9 | r | -| test.c:131:13:131:16 | call to rand | test.c:133:5:133:5 | r | -| test.c:137:13:137:16 | call to rand | test.c:139:10:139:10 | r | -| test.c:155:22:155:27 | call to rand | test.c:157:9:157:9 | r | -| test.cpp:6:5:6:12 | *get_rand | test.cpp:24:11:24:18 | call to get_rand | -| test.cpp:8:9:8:12 | call to rand | test.cpp:6:5:6:12 | *get_rand | -| test.cpp:11:21:11:24 | *dest | test.cpp:30:13:30:14 | get_rand2 output argument | -| test.cpp:13:10:13:13 | call to rand | test.cpp:11:21:11:24 | *dest | -| test.cpp:16:21:16:24 | *dest | test.cpp:36:13:36:13 | get_rand3 output argument | -| test.cpp:18:9:18:12 | call to rand | test.cpp:16:21:16:24 | *dest | -| test.cpp:24:11:24:18 | call to get_rand | test.cpp:25:7:25:7 | r | -| test.cpp:30:13:30:14 | get_rand2 output argument | test.cpp:31:7:31:7 | r | -| test.cpp:36:13:36:13 | get_rand3 output argument | test.cpp:37:7:37:7 | r | -| test.cpp:86:10:86:13 | call to rand | test.cpp:90:10:90:10 | x | -| test.cpp:98:10:98:13 | call to rand | test.cpp:102:10:102:10 | x | -| test.cpp:137:10:137:13 | call to rand | test.cpp:146:9:146:9 | y | -| test.cpp:151:10:151:13 | call to rand | test.cpp:154:10:154:10 | b | -| test.cpp:169:11:169:14 | call to rand | test.cpp:171:11:171:16 | y | -| test.cpp:189:10:189:13 | call to rand | test.cpp:196:7:196:7 | x | -| test.cpp:189:10:189:13 | call to rand | test.cpp:198:7:198:7 | x | -| test.cpp:189:10:189:13 | call to rand | test.cpp:199:7:199:7 | x | -| test.cpp:190:10:190:13 | call to rand | test.cpp:204:7:204:7 | y | -| test.cpp:190:10:190:13 | call to rand | test.cpp:205:7:205:7 | y | -| test.cpp:190:10:190:13 | call to rand | test.cpp:208:7:208:7 | y | -| test.cpp:215:11:215:14 | call to rand | test.cpp:219:8:219:8 | x | +| test.c:18:13:18:16 | call to rand | test.c:21:17:21:17 | r | provenance | | +| test.c:34:13:34:18 | call to rand | test.c:35:5:35:5 | r | provenance | | +| test.c:44:13:44:16 | call to rand | test.c:45:5:45:5 | r | provenance | | +| test.c:75:13:75:19 | call to rand | test.c:77:9:77:9 | r | provenance | | +| test.c:75:13:75:19 | call to rand | test.c:77:9:77:9 | r | provenance | | +| test.c:81:14:81:17 | call to rand | test.c:83:9:83:9 | r | provenance | | +| test.c:81:23:81:26 | call to rand | test.c:83:9:83:9 | r | provenance | | +| test.c:125:13:125:16 | call to rand | test.c:127:9:127:9 | r | provenance | | +| test.c:131:13:131:16 | call to rand | test.c:133:5:133:5 | r | provenance | | +| test.c:137:13:137:16 | call to rand | test.c:139:10:139:10 | r | provenance | | +| test.c:155:22:155:27 | call to rand | test.c:157:9:157:9 | r | provenance | | +| test.cpp:6:5:6:12 | *get_rand | test.cpp:24:11:24:18 | call to get_rand | provenance | | +| test.cpp:8:9:8:12 | call to rand | test.cpp:6:5:6:12 | *get_rand | provenance | | +| test.cpp:11:21:11:24 | *dest | test.cpp:30:13:30:14 | get_rand2 output argument | provenance | | +| test.cpp:13:10:13:13 | call to rand | test.cpp:11:21:11:24 | *dest | provenance | | +| test.cpp:16:21:16:24 | *dest | test.cpp:36:13:36:13 | get_rand3 output argument | provenance | | +| test.cpp:18:9:18:12 | call to rand | test.cpp:16:21:16:24 | *dest | provenance | | +| test.cpp:24:11:24:18 | call to get_rand | test.cpp:25:7:25:7 | r | provenance | | +| test.cpp:30:13:30:14 | get_rand2 output argument | test.cpp:31:7:31:7 | r | provenance | | +| test.cpp:36:13:36:13 | get_rand3 output argument | test.cpp:37:7:37:7 | r | provenance | | +| test.cpp:86:10:86:13 | call to rand | test.cpp:90:10:90:10 | x | provenance | | +| test.cpp:98:10:98:13 | call to rand | test.cpp:102:10:102:10 | x | provenance | | +| test.cpp:137:10:137:13 | call to rand | test.cpp:146:9:146:9 | y | provenance | | +| test.cpp:151:10:151:13 | call to rand | test.cpp:154:10:154:10 | b | provenance | | +| test.cpp:169:11:169:14 | call to rand | test.cpp:171:11:171:16 | y | provenance | | +| test.cpp:189:10:189:13 | call to rand | test.cpp:196:7:196:7 | x | provenance | | +| test.cpp:189:10:189:13 | call to rand | test.cpp:198:7:198:7 | x | provenance | | +| test.cpp:189:10:189:13 | call to rand | test.cpp:199:7:199:7 | x | provenance | | +| test.cpp:190:10:190:13 | call to rand | test.cpp:204:7:204:7 | y | provenance | | +| test.cpp:190:10:190:13 | call to rand | test.cpp:205:7:205:7 | y | provenance | | +| test.cpp:190:10:190:13 | call to rand | test.cpp:208:7:208:7 | y | provenance | | +| test.cpp:215:11:215:14 | call to rand | test.cpp:219:8:219:8 | x | provenance | | nodes | test.c:18:13:18:16 | call to rand | semmle.label | call to rand | | test.c:21:17:21:17 | r | semmle.label | r | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-190/semmle/TaintedAllocationSize/TaintedAllocationSize.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-190/semmle/TaintedAllocationSize/TaintedAllocationSize.expected index 56699b308cc0..cfcb159b3f18 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-190/semmle/TaintedAllocationSize/TaintedAllocationSize.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-190/semmle/TaintedAllocationSize/TaintedAllocationSize.expected @@ -1,28 +1,28 @@ edges -| test.cpp:39:27:39:30 | **argv | test.cpp:43:38:43:44 | tainted | -| test.cpp:39:27:39:30 | **argv | test.cpp:44:38:44:63 | ... * ... | -| test.cpp:39:27:39:30 | **argv | test.cpp:46:38:46:63 | ... + ... | -| test.cpp:39:27:39:30 | **argv | test.cpp:49:32:49:35 | size | -| test.cpp:39:27:39:30 | **argv | test.cpp:50:17:50:30 | size | -| test.cpp:39:27:39:30 | **argv | test.cpp:53:35:53:60 | ... * ... | -| test.cpp:124:18:124:31 | *call to getenv | test.cpp:128:24:128:41 | ... * ... | -| test.cpp:133:19:133:32 | *call to getenv | test.cpp:135:10:135:27 | ... * ... | -| test.cpp:148:20:148:33 | *call to getenv | test.cpp:152:11:152:28 | ... * ... | -| test.cpp:209:8:209:23 | *get_tainted_size | test.cpp:241:9:241:24 | call to get_tainted_size | -| test.cpp:211:14:211:27 | *call to getenv | test.cpp:209:8:209:23 | *get_tainted_size | -| test.cpp:230:21:230:21 | s | test.cpp:231:21:231:21 | s | -| test.cpp:237:24:237:37 | *call to getenv | test.cpp:239:9:239:18 | local_size | -| test.cpp:237:24:237:37 | *call to getenv | test.cpp:245:11:245:20 | local_size | -| test.cpp:237:24:237:37 | *call to getenv | test.cpp:247:10:247:19 | local_size | -| test.cpp:247:10:247:19 | local_size | test.cpp:230:21:230:21 | s | -| test.cpp:250:20:250:27 | *out_size | test.cpp:289:17:289:20 | get_size output argument | -| test.cpp:250:20:250:27 | *out_size | test.cpp:305:18:305:21 | get_size output argument | -| test.cpp:251:18:251:31 | *call to getenv | test.cpp:250:20:250:27 | *out_size | -| test.cpp:259:20:259:33 | *call to getenv | test.cpp:263:11:263:29 | ... * ... | -| test.cpp:289:17:289:20 | get_size output argument | test.cpp:291:11:291:28 | ... * ... | -| test.cpp:305:18:305:21 | get_size output argument | test.cpp:308:10:308:27 | ... * ... | -| test.cpp:353:18:353:31 | *call to getenv | test.cpp:355:35:355:38 | size | -| test.cpp:353:18:353:31 | *call to getenv | test.cpp:356:35:356:38 | size | +| test.cpp:39:27:39:30 | **argv | test.cpp:43:38:43:44 | tainted | provenance | | +| test.cpp:39:27:39:30 | **argv | test.cpp:44:38:44:63 | ... * ... | provenance | | +| test.cpp:39:27:39:30 | **argv | test.cpp:46:38:46:63 | ... + ... | provenance | | +| test.cpp:39:27:39:30 | **argv | test.cpp:49:32:49:35 | size | provenance | | +| test.cpp:39:27:39:30 | **argv | test.cpp:50:17:50:30 | size | provenance | | +| test.cpp:39:27:39:30 | **argv | test.cpp:53:35:53:60 | ... * ... | provenance | | +| test.cpp:124:18:124:31 | *call to getenv | test.cpp:128:24:128:41 | ... * ... | provenance | | +| test.cpp:133:19:133:32 | *call to getenv | test.cpp:135:10:135:27 | ... * ... | provenance | | +| test.cpp:148:20:148:33 | *call to getenv | test.cpp:152:11:152:28 | ... * ... | provenance | | +| test.cpp:209:8:209:23 | *get_tainted_size | test.cpp:241:9:241:24 | call to get_tainted_size | provenance | | +| test.cpp:211:14:211:27 | *call to getenv | test.cpp:209:8:209:23 | *get_tainted_size | provenance | | +| test.cpp:230:21:230:21 | s | test.cpp:231:21:231:21 | s | provenance | | +| test.cpp:237:24:237:37 | *call to getenv | test.cpp:239:9:239:18 | local_size | provenance | | +| test.cpp:237:24:237:37 | *call to getenv | test.cpp:245:11:245:20 | local_size | provenance | | +| test.cpp:237:24:237:37 | *call to getenv | test.cpp:247:10:247:19 | local_size | provenance | | +| test.cpp:247:10:247:19 | local_size | test.cpp:230:21:230:21 | s | provenance | | +| test.cpp:250:20:250:27 | *out_size | test.cpp:289:17:289:20 | get_size output argument | provenance | | +| test.cpp:250:20:250:27 | *out_size | test.cpp:305:18:305:21 | get_size output argument | provenance | | +| test.cpp:251:18:251:31 | *call to getenv | test.cpp:250:20:250:27 | *out_size | provenance | | +| test.cpp:259:20:259:33 | *call to getenv | test.cpp:263:11:263:29 | ... * ... | provenance | | +| test.cpp:289:17:289:20 | get_size output argument | test.cpp:291:11:291:28 | ... * ... | provenance | | +| test.cpp:305:18:305:21 | get_size output argument | test.cpp:308:10:308:27 | ... * ... | provenance | | +| test.cpp:353:18:353:31 | *call to getenv | test.cpp:355:35:355:38 | size | provenance | | +| test.cpp:353:18:353:31 | *call to getenv | test.cpp:356:35:356:38 | size | provenance | | nodes | test.cpp:39:27:39:30 | **argv | semmle.label | **argv | | test.cpp:43:38:43:44 | tainted | semmle.label | tainted | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-190/semmle/tainted/ArithmeticTainted.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-190/semmle/tainted/ArithmeticTainted.expected index 5c7755d3bd19..801231316527 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-190/semmle/tainted/ArithmeticTainted.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-190/semmle/tainted/ArithmeticTainted.expected @@ -1,19 +1,19 @@ edges -| test2.cpp:12:21:12:21 | v | test2.cpp:14:11:14:11 | v | -| test2.cpp:25:22:25:23 | fscanf output argument | test2.cpp:27:13:27:13 | v | -| test2.cpp:27:13:27:13 | v | test2.cpp:12:21:12:21 | v | -| test2.cpp:36:9:36:14 | fgets output argument | test2.cpp:39:9:39:11 | num | -| test2.cpp:36:9:36:14 | fgets output argument | test2.cpp:40:3:40:5 | num | -| test3.c:10:27:10:30 | **argv | test.c:14:15:14:28 | maxConnections | -| test3.c:10:27:10:30 | **argv | test.c:44:7:44:10 | len2 | -| test3.c:10:27:10:30 | **argv | test.c:54:7:54:10 | len3 | -| test5.cpp:5:5:5:17 | *getTaintedInt | test5.cpp:17:6:17:18 | call to getTaintedInt | -| test5.cpp:5:5:5:17 | *getTaintedInt | test5.cpp:18:6:18:18 | call to getTaintedInt | -| test5.cpp:9:7:9:9 | gets output argument | test5.cpp:5:5:5:17 | *getTaintedInt | -| test5.cpp:18:6:18:18 | call to getTaintedInt | test5.cpp:19:6:19:6 | y | -| test.c:10:27:10:30 | **argv | test.c:14:15:14:28 | maxConnections | -| test.c:10:27:10:30 | **argv | test.c:44:7:44:10 | len2 | -| test.c:10:27:10:30 | **argv | test.c:54:7:54:10 | len3 | +| test2.cpp:12:21:12:21 | v | test2.cpp:14:11:14:11 | v | provenance | | +| test2.cpp:25:22:25:23 | fscanf output argument | test2.cpp:27:13:27:13 | v | provenance | | +| test2.cpp:27:13:27:13 | v | test2.cpp:12:21:12:21 | v | provenance | | +| test2.cpp:36:9:36:14 | fgets output argument | test2.cpp:39:9:39:11 | num | provenance | | +| test2.cpp:36:9:36:14 | fgets output argument | test2.cpp:40:3:40:5 | num | provenance | | +| test3.c:10:27:10:30 | **argv | test.c:14:15:14:28 | maxConnections | provenance | | +| test3.c:10:27:10:30 | **argv | test.c:44:7:44:10 | len2 | provenance | | +| test3.c:10:27:10:30 | **argv | test.c:54:7:54:10 | len3 | provenance | | +| test5.cpp:5:5:5:17 | *getTaintedInt | test5.cpp:17:6:17:18 | call to getTaintedInt | provenance | | +| test5.cpp:5:5:5:17 | *getTaintedInt | test5.cpp:18:6:18:18 | call to getTaintedInt | provenance | | +| test5.cpp:9:7:9:9 | gets output argument | test5.cpp:5:5:5:17 | *getTaintedInt | provenance | | +| test5.cpp:18:6:18:18 | call to getTaintedInt | test5.cpp:19:6:19:6 | y | provenance | | +| test.c:10:27:10:30 | **argv | test.c:14:15:14:28 | maxConnections | provenance | | +| test.c:10:27:10:30 | **argv | test.c:44:7:44:10 | len2 | provenance | | +| test.c:10:27:10:30 | **argv | test.c:54:7:54:10 | len3 | provenance | | nodes | test2.cpp:12:21:12:21 | v | semmle.label | v | | test2.cpp:14:11:14:11 | v | semmle.label | v | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-193/InvalidPointerDeref.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-193/InvalidPointerDeref.expected index 2a94ba309082..43e865d894bc 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-193/InvalidPointerDeref.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-193/InvalidPointerDeref.expected @@ -1,106 +1,106 @@ edges -| test.cpp:4:15:4:33 | call to malloc | test.cpp:5:15:5:22 | ... + ... | -| test.cpp:5:15:5:22 | ... + ... | test.cpp:5:15:5:22 | ... + ... | -| test.cpp:5:15:5:22 | ... + ... | test.cpp:6:14:6:15 | * ... | -| test.cpp:5:15:5:22 | ... + ... | test.cpp:6:14:6:15 | * ... | -| test.cpp:5:15:5:22 | ... + ... | test.cpp:6:14:6:15 | * ... | -| test.cpp:5:15:5:22 | ... + ... | test.cpp:6:14:6:15 | * ... | -| test.cpp:5:15:5:22 | ... + ... | test.cpp:8:14:8:21 | * ... | -| test.cpp:5:15:5:22 | ... + ... | test.cpp:8:14:8:21 | * ... | -| test.cpp:6:14:6:15 | * ... | test.cpp:8:14:8:21 | * ... | -| test.cpp:16:15:16:33 | call to malloc | test.cpp:20:14:20:21 | * ... | -| test.cpp:28:15:28:37 | call to malloc | test.cpp:29:15:29:28 | ... + ... | -| test.cpp:29:15:29:28 | ... + ... | test.cpp:29:15:29:28 | ... + ... | -| test.cpp:29:15:29:28 | ... + ... | test.cpp:30:14:30:15 | * ... | -| test.cpp:29:15:29:28 | ... + ... | test.cpp:30:14:30:15 | * ... | -| test.cpp:29:15:29:28 | ... + ... | test.cpp:30:14:30:15 | * ... | -| test.cpp:29:15:29:28 | ... + ... | test.cpp:30:14:30:15 | * ... | -| test.cpp:29:15:29:28 | ... + ... | test.cpp:32:14:32:21 | * ... | -| test.cpp:29:15:29:28 | ... + ... | test.cpp:32:14:32:21 | * ... | -| test.cpp:30:14:30:15 | * ... | test.cpp:32:14:32:21 | * ... | -| test.cpp:51:33:51:35 | *end | test.cpp:60:34:60:37 | mk_array output argument | -| test.cpp:52:19:52:37 | call to malloc | test.cpp:53:12:53:23 | ... + ... | -| test.cpp:53:12:53:23 | ... + ... | test.cpp:51:33:51:35 | *end | -| test.cpp:60:34:60:37 | mk_array output argument | test.cpp:67:9:67:14 | ... = ... | -| test.cpp:205:15:205:33 | call to malloc | test.cpp:206:17:206:23 | ... + ... | -| test.cpp:206:17:206:23 | ... + ... | test.cpp:206:17:206:23 | ... + ... | -| test.cpp:206:17:206:23 | ... + ... | test.cpp:213:5:213:13 | ... = ... | -| test.cpp:206:17:206:23 | ... + ... | test.cpp:213:5:213:13 | ... = ... | -| test.cpp:260:13:260:24 | new[] | test.cpp:261:14:261:21 | ... + ... | -| test.cpp:261:14:261:21 | ... + ... | test.cpp:261:14:261:21 | ... + ... | -| test.cpp:261:14:261:21 | ... + ... | test.cpp:264:13:264:14 | * ... | -| test.cpp:261:14:261:21 | ... + ... | test.cpp:264:13:264:14 | * ... | -| test.cpp:261:14:261:21 | ... + ... | test.cpp:264:13:264:14 | * ... | -| test.cpp:261:14:261:21 | ... + ... | test.cpp:264:13:264:14 | * ... | -| test.cpp:264:13:264:14 | * ... | test.cpp:264:13:264:14 | * ... | -| test.cpp:264:13:264:14 | * ... | test.cpp:264:13:264:14 | * ... | -| test.cpp:270:13:270:24 | new[] | test.cpp:271:14:271:21 | ... + ... | -| test.cpp:271:14:271:21 | ... + ... | test.cpp:271:14:271:21 | ... + ... | -| test.cpp:271:14:271:21 | ... + ... | test.cpp:274:5:274:10 | ... = ... | -| test.cpp:271:14:271:21 | ... + ... | test.cpp:274:5:274:10 | ... = ... | -| test.cpp:355:14:355:27 | new[] | test.cpp:356:15:356:23 | ... + ... | -| test.cpp:356:15:356:23 | ... + ... | test.cpp:356:15:356:23 | ... + ... | -| test.cpp:356:15:356:23 | ... + ... | test.cpp:358:14:358:26 | * ... | -| test.cpp:356:15:356:23 | ... + ... | test.cpp:358:14:358:26 | * ... | -| test.cpp:356:15:356:23 | ... + ... | test.cpp:359:14:359:32 | * ... | -| test.cpp:356:15:356:23 | ... + ... | test.cpp:359:14:359:32 | * ... | -| test.cpp:377:14:377:27 | new[] | test.cpp:378:15:378:23 | ... + ... | -| test.cpp:378:15:378:23 | ... + ... | test.cpp:378:15:378:23 | ... + ... | -| test.cpp:378:15:378:23 | ... + ... | test.cpp:384:13:384:16 | * ... | -| test.cpp:378:15:378:23 | ... + ... | test.cpp:384:13:384:16 | * ... | -| test.cpp:410:14:410:27 | new[] | test.cpp:411:15:411:23 | & ... | -| test.cpp:410:14:410:27 | new[] | test.cpp:415:7:415:15 | ... = ... | -| test.cpp:411:15:411:23 | & ... | test.cpp:411:15:411:23 | & ... | -| test.cpp:411:15:411:23 | & ... | test.cpp:415:7:415:15 | ... = ... | -| test.cpp:411:15:411:23 | & ... | test.cpp:415:7:415:15 | ... = ... | -| test.cpp:421:14:421:27 | new[] | test.cpp:422:15:422:23 | & ... | -| test.cpp:421:14:421:27 | new[] | test.cpp:426:7:426:15 | ... = ... | -| test.cpp:422:15:422:23 | & ... | test.cpp:422:15:422:23 | & ... | -| test.cpp:422:15:422:23 | & ... | test.cpp:426:7:426:15 | ... = ... | -| test.cpp:422:15:422:23 | & ... | test.cpp:426:7:426:15 | ... = ... | -| test.cpp:432:14:432:27 | new[] | test.cpp:433:15:433:23 | & ... | -| test.cpp:432:14:432:27 | new[] | test.cpp:438:7:438:15 | ... = ... | -| test.cpp:433:15:433:23 | & ... | test.cpp:433:15:433:23 | & ... | -| test.cpp:433:15:433:23 | & ... | test.cpp:438:7:438:15 | ... = ... | -| test.cpp:433:15:433:23 | & ... | test.cpp:438:7:438:15 | ... = ... | -| test.cpp:444:14:444:27 | new[] | test.cpp:445:15:445:23 | & ... | -| test.cpp:444:14:444:27 | new[] | test.cpp:450:7:450:15 | ... = ... | -| test.cpp:445:15:445:23 | & ... | test.cpp:445:15:445:23 | & ... | -| test.cpp:445:15:445:23 | & ... | test.cpp:450:7:450:15 | ... = ... | -| test.cpp:445:15:445:23 | & ... | test.cpp:450:7:450:15 | ... = ... | -| test.cpp:480:14:480:27 | new[] | test.cpp:481:15:481:23 | & ... | -| test.cpp:480:14:480:27 | new[] | test.cpp:486:7:486:15 | ... = ... | -| test.cpp:481:15:481:23 | & ... | test.cpp:481:15:481:23 | & ... | -| test.cpp:481:15:481:23 | & ... | test.cpp:486:7:486:15 | ... = ... | -| test.cpp:481:15:481:23 | & ... | test.cpp:486:7:486:15 | ... = ... | -| test.cpp:543:14:543:27 | new[] | test.cpp:548:5:548:19 | ... = ... | -| test.cpp:554:14:554:27 | new[] | test.cpp:559:5:559:19 | ... = ... | -| test.cpp:642:14:642:31 | new[] | test.cpp:647:5:647:19 | ... = ... | -| test.cpp:730:12:730:28 | new[] | test.cpp:732:16:732:26 | ... + ... | -| test.cpp:732:16:732:26 | ... + ... | test.cpp:732:16:732:26 | ... + ... | -| test.cpp:732:16:732:26 | ... + ... | test.cpp:733:5:733:12 | ... = ... | -| test.cpp:732:16:732:26 | ... + ... | test.cpp:733:5:733:12 | ... = ... | -| test.cpp:754:18:754:31 | new[] | test.cpp:767:16:767:29 | access to array | -| test.cpp:754:18:754:31 | new[] | test.cpp:767:16:767:29 | access to array | -| test.cpp:754:18:754:31 | new[] | test.cpp:772:16:772:29 | access to array | -| test.cpp:754:18:754:31 | new[] | test.cpp:772:16:772:29 | access to array | -| test.cpp:781:14:781:27 | new[] | test.cpp:786:18:786:27 | access to array | -| test.cpp:792:60:792:62 | *end | test.cpp:800:40:800:43 | mk_array_no_field_flow output argument | -| test.cpp:792:60:792:62 | *end | test.cpp:832:40:832:43 | mk_array_no_field_flow output argument | -| test.cpp:793:14:793:32 | call to malloc | test.cpp:794:12:794:24 | ... + ... | -| test.cpp:794:12:794:24 | ... + ... | test.cpp:792:60:792:62 | *end | -| test.cpp:800:40:800:43 | mk_array_no_field_flow output argument | test.cpp:807:7:807:12 | ... = ... | -| test.cpp:815:52:815:54 | end | test.cpp:815:52:815:54 | end | -| test.cpp:815:52:815:54 | end | test.cpp:821:7:821:12 | ... = ... | -| test.cpp:815:52:815:54 | end | test.cpp:821:7:821:12 | ... = ... | -| test.cpp:832:40:832:43 | mk_array_no_field_flow output argument | test.cpp:833:37:833:39 | end | -| test.cpp:833:37:833:39 | end | test.cpp:815:52:815:54 | end | -| test.cpp:841:18:841:35 | call to malloc | test.cpp:842:3:842:20 | ... = ... | -| test.cpp:848:20:848:37 | call to malloc | test.cpp:849:5:849:22 | ... = ... | -| test.cpp:856:12:856:35 | call to malloc | test.cpp:857:16:857:29 | ... + ... | -| test.cpp:857:16:857:29 | ... + ... | test.cpp:857:16:857:29 | ... + ... | -| test.cpp:857:16:857:29 | ... + ... | test.cpp:860:5:860:11 | ... = ... | -| test.cpp:857:16:857:29 | ... + ... | test.cpp:860:5:860:11 | ... = ... | +| test.cpp:4:15:4:33 | call to malloc | test.cpp:5:15:5:22 | ... + ... | provenance | | +| test.cpp:5:15:5:22 | ... + ... | test.cpp:5:15:5:22 | ... + ... | provenance | | +| test.cpp:5:15:5:22 | ... + ... | test.cpp:6:14:6:15 | * ... | provenance | | +| test.cpp:5:15:5:22 | ... + ... | test.cpp:6:14:6:15 | * ... | provenance | | +| test.cpp:5:15:5:22 | ... + ... | test.cpp:6:14:6:15 | * ... | provenance | | +| test.cpp:5:15:5:22 | ... + ... | test.cpp:6:14:6:15 | * ... | provenance | | +| test.cpp:5:15:5:22 | ... + ... | test.cpp:8:14:8:21 | * ... | provenance | | +| test.cpp:5:15:5:22 | ... + ... | test.cpp:8:14:8:21 | * ... | provenance | | +| test.cpp:6:14:6:15 | * ... | test.cpp:8:14:8:21 | * ... | provenance | | +| test.cpp:16:15:16:33 | call to malloc | test.cpp:20:14:20:21 | * ... | provenance | | +| test.cpp:28:15:28:37 | call to malloc | test.cpp:29:15:29:28 | ... + ... | provenance | | +| test.cpp:29:15:29:28 | ... + ... | test.cpp:29:15:29:28 | ... + ... | provenance | | +| test.cpp:29:15:29:28 | ... + ... | test.cpp:30:14:30:15 | * ... | provenance | | +| test.cpp:29:15:29:28 | ... + ... | test.cpp:30:14:30:15 | * ... | provenance | | +| test.cpp:29:15:29:28 | ... + ... | test.cpp:30:14:30:15 | * ... | provenance | | +| test.cpp:29:15:29:28 | ... + ... | test.cpp:30:14:30:15 | * ... | provenance | | +| test.cpp:29:15:29:28 | ... + ... | test.cpp:32:14:32:21 | * ... | provenance | | +| test.cpp:29:15:29:28 | ... + ... | test.cpp:32:14:32:21 | * ... | provenance | | +| test.cpp:30:14:30:15 | * ... | test.cpp:32:14:32:21 | * ... | provenance | | +| test.cpp:51:33:51:35 | *end | test.cpp:60:34:60:37 | mk_array output argument | provenance | | +| test.cpp:52:19:52:37 | call to malloc | test.cpp:53:12:53:23 | ... + ... | provenance | | +| test.cpp:53:12:53:23 | ... + ... | test.cpp:51:33:51:35 | *end | provenance | | +| test.cpp:60:34:60:37 | mk_array output argument | test.cpp:67:9:67:14 | ... = ... | provenance | | +| test.cpp:205:15:205:33 | call to malloc | test.cpp:206:17:206:23 | ... + ... | provenance | | +| test.cpp:206:17:206:23 | ... + ... | test.cpp:206:17:206:23 | ... + ... | provenance | | +| test.cpp:206:17:206:23 | ... + ... | test.cpp:213:5:213:13 | ... = ... | provenance | | +| test.cpp:206:17:206:23 | ... + ... | test.cpp:213:5:213:13 | ... = ... | provenance | | +| test.cpp:260:13:260:24 | new[] | test.cpp:261:14:261:21 | ... + ... | provenance | | +| test.cpp:261:14:261:21 | ... + ... | test.cpp:261:14:261:21 | ... + ... | provenance | | +| test.cpp:261:14:261:21 | ... + ... | test.cpp:264:13:264:14 | * ... | provenance | | +| test.cpp:261:14:261:21 | ... + ... | test.cpp:264:13:264:14 | * ... | provenance | | +| test.cpp:261:14:261:21 | ... + ... | test.cpp:264:13:264:14 | * ... | provenance | | +| test.cpp:261:14:261:21 | ... + ... | test.cpp:264:13:264:14 | * ... | provenance | | +| test.cpp:264:13:264:14 | * ... | test.cpp:264:13:264:14 | * ... | provenance | | +| test.cpp:264:13:264:14 | * ... | test.cpp:264:13:264:14 | * ... | provenance | | +| test.cpp:270:13:270:24 | new[] | test.cpp:271:14:271:21 | ... + ... | provenance | | +| test.cpp:271:14:271:21 | ... + ... | test.cpp:271:14:271:21 | ... + ... | provenance | | +| test.cpp:271:14:271:21 | ... + ... | test.cpp:274:5:274:10 | ... = ... | provenance | | +| test.cpp:271:14:271:21 | ... + ... | test.cpp:274:5:274:10 | ... = ... | provenance | | +| test.cpp:355:14:355:27 | new[] | test.cpp:356:15:356:23 | ... + ... | provenance | | +| test.cpp:356:15:356:23 | ... + ... | test.cpp:356:15:356:23 | ... + ... | provenance | | +| test.cpp:356:15:356:23 | ... + ... | test.cpp:358:14:358:26 | * ... | provenance | | +| test.cpp:356:15:356:23 | ... + ... | test.cpp:358:14:358:26 | * ... | provenance | | +| test.cpp:356:15:356:23 | ... + ... | test.cpp:359:14:359:32 | * ... | provenance | | +| test.cpp:356:15:356:23 | ... + ... | test.cpp:359:14:359:32 | * ... | provenance | | +| test.cpp:377:14:377:27 | new[] | test.cpp:378:15:378:23 | ... + ... | provenance | | +| test.cpp:378:15:378:23 | ... + ... | test.cpp:378:15:378:23 | ... + ... | provenance | | +| test.cpp:378:15:378:23 | ... + ... | test.cpp:384:13:384:16 | * ... | provenance | | +| test.cpp:378:15:378:23 | ... + ... | test.cpp:384:13:384:16 | * ... | provenance | | +| test.cpp:410:14:410:27 | new[] | test.cpp:411:15:411:23 | & ... | provenance | | +| test.cpp:410:14:410:27 | new[] | test.cpp:415:7:415:15 | ... = ... | provenance | | +| test.cpp:411:15:411:23 | & ... | test.cpp:411:15:411:23 | & ... | provenance | | +| test.cpp:411:15:411:23 | & ... | test.cpp:415:7:415:15 | ... = ... | provenance | | +| test.cpp:411:15:411:23 | & ... | test.cpp:415:7:415:15 | ... = ... | provenance | | +| test.cpp:421:14:421:27 | new[] | test.cpp:422:15:422:23 | & ... | provenance | | +| test.cpp:421:14:421:27 | new[] | test.cpp:426:7:426:15 | ... = ... | provenance | | +| test.cpp:422:15:422:23 | & ... | test.cpp:422:15:422:23 | & ... | provenance | | +| test.cpp:422:15:422:23 | & ... | test.cpp:426:7:426:15 | ... = ... | provenance | | +| test.cpp:422:15:422:23 | & ... | test.cpp:426:7:426:15 | ... = ... | provenance | | +| test.cpp:432:14:432:27 | new[] | test.cpp:433:15:433:23 | & ... | provenance | | +| test.cpp:432:14:432:27 | new[] | test.cpp:438:7:438:15 | ... = ... | provenance | | +| test.cpp:433:15:433:23 | & ... | test.cpp:433:15:433:23 | & ... | provenance | | +| test.cpp:433:15:433:23 | & ... | test.cpp:438:7:438:15 | ... = ... | provenance | | +| test.cpp:433:15:433:23 | & ... | test.cpp:438:7:438:15 | ... = ... | provenance | | +| test.cpp:444:14:444:27 | new[] | test.cpp:445:15:445:23 | & ... | provenance | | +| test.cpp:444:14:444:27 | new[] | test.cpp:450:7:450:15 | ... = ... | provenance | | +| test.cpp:445:15:445:23 | & ... | test.cpp:445:15:445:23 | & ... | provenance | | +| test.cpp:445:15:445:23 | & ... | test.cpp:450:7:450:15 | ... = ... | provenance | | +| test.cpp:445:15:445:23 | & ... | test.cpp:450:7:450:15 | ... = ... | provenance | | +| test.cpp:480:14:480:27 | new[] | test.cpp:481:15:481:23 | & ... | provenance | | +| test.cpp:480:14:480:27 | new[] | test.cpp:486:7:486:15 | ... = ... | provenance | | +| test.cpp:481:15:481:23 | & ... | test.cpp:481:15:481:23 | & ... | provenance | | +| test.cpp:481:15:481:23 | & ... | test.cpp:486:7:486:15 | ... = ... | provenance | | +| test.cpp:481:15:481:23 | & ... | test.cpp:486:7:486:15 | ... = ... | provenance | | +| test.cpp:543:14:543:27 | new[] | test.cpp:548:5:548:19 | ... = ... | provenance | | +| test.cpp:554:14:554:27 | new[] | test.cpp:559:5:559:19 | ... = ... | provenance | | +| test.cpp:642:14:642:31 | new[] | test.cpp:647:5:647:19 | ... = ... | provenance | | +| test.cpp:730:12:730:28 | new[] | test.cpp:732:16:732:26 | ... + ... | provenance | | +| test.cpp:732:16:732:26 | ... + ... | test.cpp:732:16:732:26 | ... + ... | provenance | | +| test.cpp:732:16:732:26 | ... + ... | test.cpp:733:5:733:12 | ... = ... | provenance | | +| test.cpp:732:16:732:26 | ... + ... | test.cpp:733:5:733:12 | ... = ... | provenance | | +| test.cpp:754:18:754:31 | new[] | test.cpp:767:16:767:29 | access to array | provenance | | +| test.cpp:754:18:754:31 | new[] | test.cpp:767:16:767:29 | access to array | provenance | | +| test.cpp:754:18:754:31 | new[] | test.cpp:772:16:772:29 | access to array | provenance | | +| test.cpp:754:18:754:31 | new[] | test.cpp:772:16:772:29 | access to array | provenance | | +| test.cpp:781:14:781:27 | new[] | test.cpp:786:18:786:27 | access to array | provenance | | +| test.cpp:792:60:792:62 | *end | test.cpp:800:40:800:43 | mk_array_no_field_flow output argument | provenance | | +| test.cpp:792:60:792:62 | *end | test.cpp:832:40:832:43 | mk_array_no_field_flow output argument | provenance | | +| test.cpp:793:14:793:32 | call to malloc | test.cpp:794:12:794:24 | ... + ... | provenance | | +| test.cpp:794:12:794:24 | ... + ... | test.cpp:792:60:792:62 | *end | provenance | | +| test.cpp:800:40:800:43 | mk_array_no_field_flow output argument | test.cpp:807:7:807:12 | ... = ... | provenance | | +| test.cpp:815:52:815:54 | end | test.cpp:815:52:815:54 | end | provenance | | +| test.cpp:815:52:815:54 | end | test.cpp:821:7:821:12 | ... = ... | provenance | | +| test.cpp:815:52:815:54 | end | test.cpp:821:7:821:12 | ... = ... | provenance | | +| test.cpp:832:40:832:43 | mk_array_no_field_flow output argument | test.cpp:833:37:833:39 | end | provenance | | +| test.cpp:833:37:833:39 | end | test.cpp:815:52:815:54 | end | provenance | | +| test.cpp:841:18:841:35 | call to malloc | test.cpp:842:3:842:20 | ... = ... | provenance | | +| test.cpp:848:20:848:37 | call to malloc | test.cpp:849:5:849:22 | ... = ... | provenance | | +| test.cpp:856:12:856:35 | call to malloc | test.cpp:857:16:857:29 | ... + ... | provenance | | +| test.cpp:857:16:857:29 | ... + ... | test.cpp:857:16:857:29 | ... + ... | provenance | | +| test.cpp:857:16:857:29 | ... + ... | test.cpp:860:5:860:11 | ... = ... | provenance | | +| test.cpp:857:16:857:29 | ... + ... | test.cpp:860:5:860:11 | ... = ... | provenance | | nodes | test.cpp:4:15:4:33 | call to malloc | semmle.label | call to malloc | | test.cpp:5:15:5:22 | ... + ... | semmle.label | ... + ... | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-290/semmle/AuthenticationBypass/AuthenticationBypass.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-290/semmle/AuthenticationBypass/AuthenticationBypass.expected index 800e2d06c441..f5fa846e7a88 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-290/semmle/AuthenticationBypass/AuthenticationBypass.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-290/semmle/AuthenticationBypass/AuthenticationBypass.expected @@ -1,10 +1,10 @@ edges -| test.cpp:16:25:16:42 | *call to getenv | test.cpp:20:14:20:20 | *address | -| test.cpp:27:25:27:42 | *call to getenv | test.cpp:31:14:31:20 | *address | -| test.cpp:38:25:38:42 | *call to getenv | test.cpp:42:14:42:20 | *address | -| test.cpp:49:25:49:42 | *call to getenv | test.cpp:52:14:52:20 | *address | -| test.cpp:49:25:49:42 | *call to getenv | test.cpp:56:14:56:20 | *address | -| test.cpp:49:25:49:42 | *call to getenv | test.cpp:60:14:60:20 | *address | +| test.cpp:16:25:16:42 | *call to getenv | test.cpp:20:14:20:20 | *address | provenance | | +| test.cpp:27:25:27:42 | *call to getenv | test.cpp:31:14:31:20 | *address | provenance | | +| test.cpp:38:25:38:42 | *call to getenv | test.cpp:42:14:42:20 | *address | provenance | | +| test.cpp:49:25:49:42 | *call to getenv | test.cpp:52:14:52:20 | *address | provenance | | +| test.cpp:49:25:49:42 | *call to getenv | test.cpp:56:14:56:20 | *address | provenance | | +| test.cpp:49:25:49:42 | *call to getenv | test.cpp:60:14:60:20 | *address | provenance | | nodes | test.cpp:16:25:16:42 | *call to getenv | semmle.label | *call to getenv | | test.cpp:20:14:20:20 | *address | semmle.label | *address | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-311/semmle/tests/CleartextBufferWrite.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-311/semmle/tests/CleartextBufferWrite.expected index 6864309a63ea..edd3a273cc64 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-311/semmle/tests/CleartextBufferWrite.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-311/semmle/tests/CleartextBufferWrite.expected @@ -1,5 +1,5 @@ edges -| test.cpp:53:27:53:30 | **argv | test.cpp:58:25:58:29 | *input | +| test.cpp:53:27:53:30 | **argv | test.cpp:58:25:58:29 | *input | provenance | | nodes | test2.cpp:110:3:110:6 | *call to gets | semmle.label | *call to gets | | test.cpp:53:27:53:30 | **argv | semmle.label | **argv | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-311/semmle/tests/CleartextFileWrite.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-311/semmle/tests/CleartextFileWrite.expected index c2ff01e3e0ce..ddeb3fed32f9 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-311/semmle/tests/CleartextFileWrite.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-311/semmle/tests/CleartextFileWrite.expected @@ -1,10 +1,10 @@ edges -| test2.cpp:62:18:62:25 | password | test2.cpp:65:31:65:34 | cpy1 | -| test2.cpp:72:15:72:24 | password | test2.cpp:73:30:73:32 | *buf | -| test2.cpp:72:15:72:24 | password | test2.cpp:76:30:76:32 | *buf | -| test2.cpp:98:45:98:52 | password | test2.cpp:99:27:99:32 | *buffer | -| test.cpp:70:38:70:48 | thePassword | test.cpp:73:43:73:53 | thePassword | -| test.cpp:73:63:73:73 | thePassword | test.cpp:73:43:73:53 | thePassword | +| test2.cpp:62:18:62:25 | password | test2.cpp:65:31:65:34 | cpy1 | provenance | | +| test2.cpp:72:15:72:24 | password | test2.cpp:73:30:73:32 | *buf | provenance | | +| test2.cpp:72:15:72:24 | password | test2.cpp:76:30:76:32 | *buf | provenance | | +| test2.cpp:98:45:98:52 | password | test2.cpp:99:27:99:32 | *buffer | provenance | | +| test.cpp:70:38:70:48 | thePassword | test.cpp:73:43:73:53 | thePassword | provenance | | +| test.cpp:73:63:73:73 | thePassword | test.cpp:73:43:73:53 | thePassword | provenance | | nodes | test2.cpp:43:36:43:43 | password | semmle.label | password | | test2.cpp:44:37:44:45 | thepasswd | semmle.label | thepasswd | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-311/semmle/tests/CleartextTransmission.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-311/semmle/tests/CleartextTransmission.expected index 364da5b663b4..8be2ec60f4a9 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-311/semmle/tests/CleartextTransmission.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-311/semmle/tests/CleartextTransmission.expected @@ -1,36 +1,36 @@ edges -| test3.cpp:74:21:74:29 | password1 | test3.cpp:76:15:76:17 | ptr | -| test3.cpp:81:15:81:22 | password | test3.cpp:83:15:83:17 | ptr | -| test3.cpp:112:20:112:25 | buffer | test3.cpp:114:14:114:19 | buffer | -| test3.cpp:117:28:117:33 | buffer | test3.cpp:117:13:117:14 | *id | -| test3.cpp:124:7:124:20 | *get_global_str | test3.cpp:144:16:144:29 | call to get_global_str | -| test3.cpp:126:9:126:23 | global_password | test3.cpp:124:7:124:20 | *get_global_str | -| test3.cpp:134:11:134:18 | password | test3.cpp:112:20:112:25 | buffer | -| test3.cpp:138:21:138:22 | call to id | test3.cpp:140:15:140:17 | ptr | -| test3.cpp:138:24:138:32 | password1 | test3.cpp:117:28:117:33 | buffer | -| test3.cpp:138:24:138:32 | password1 | test3.cpp:138:21:138:22 | call to id | -| test3.cpp:144:16:144:29 | call to get_global_str | test3.cpp:146:15:146:18 | data | -| test3.cpp:157:19:157:26 | password | test3.cpp:159:15:159:20 | *buffer | -| test3.cpp:270:16:270:23 | password | test3.cpp:272:15:272:18 | *data | -| test3.cpp:278:20:278:23 | data | test3.cpp:280:14:280:17 | data | -| test3.cpp:283:20:283:23 | data | test3.cpp:285:14:285:17 | data | -| test3.cpp:288:20:288:23 | data | test3.cpp:290:14:290:17 | data | -| test3.cpp:293:20:293:23 | data | test3.cpp:295:14:295:17 | data | -| test3.cpp:298:20:298:23 | data | test3.cpp:300:14:300:17 | data | -| test3.cpp:313:11:313:19 | password1 | test3.cpp:278:20:278:23 | data | -| test3.cpp:314:11:314:19 | password1 | test3.cpp:283:20:283:23 | data | -| test3.cpp:316:11:316:19 | password1 | test3.cpp:283:20:283:23 | data | -| test3.cpp:317:11:317:19 | password1 | test3.cpp:288:20:288:23 | data | -| test3.cpp:322:16:322:24 | password2 | test3.cpp:324:11:324:14 | data | -| test3.cpp:322:16:322:24 | password2 | test3.cpp:325:11:325:14 | data | -| test3.cpp:324:11:324:14 | data | test3.cpp:293:20:293:23 | data | -| test3.cpp:325:11:325:14 | data | test3.cpp:298:20:298:23 | data | -| test3.cpp:526:44:526:54 | my_latitude | test3.cpp:527:15:527:20 | *buffer | -| test3.cpp:532:45:532:58 | home_longitude | test3.cpp:533:15:533:20 | *buffer | -| test3.cpp:551:47:551:58 | salaryString | test3.cpp:552:15:552:20 | *buffer | -| test3.cpp:556:19:556:30 | salaryString | test3.cpp:559:15:559:20 | *buffer | -| test3.cpp:571:8:571:21 | call to get_home_phone | test3.cpp:572:14:572:16 | str | -| test3.cpp:577:8:577:23 | call to get_home_address | test3.cpp:578:14:578:16 | str | +| test3.cpp:74:21:74:29 | password1 | test3.cpp:76:15:76:17 | ptr | provenance | | +| test3.cpp:81:15:81:22 | password | test3.cpp:83:15:83:17 | ptr | provenance | | +| test3.cpp:112:20:112:25 | buffer | test3.cpp:114:14:114:19 | buffer | provenance | | +| test3.cpp:117:28:117:33 | buffer | test3.cpp:117:13:117:14 | *id | provenance | | +| test3.cpp:124:7:124:20 | *get_global_str | test3.cpp:144:16:144:29 | call to get_global_str | provenance | | +| test3.cpp:126:9:126:23 | global_password | test3.cpp:124:7:124:20 | *get_global_str | provenance | | +| test3.cpp:134:11:134:18 | password | test3.cpp:112:20:112:25 | buffer | provenance | | +| test3.cpp:138:21:138:22 | call to id | test3.cpp:140:15:140:17 | ptr | provenance | | +| test3.cpp:138:24:138:32 | password1 | test3.cpp:117:28:117:33 | buffer | provenance | | +| test3.cpp:138:24:138:32 | password1 | test3.cpp:138:21:138:22 | call to id | provenance | | +| test3.cpp:144:16:144:29 | call to get_global_str | test3.cpp:146:15:146:18 | data | provenance | | +| test3.cpp:157:19:157:26 | password | test3.cpp:159:15:159:20 | *buffer | provenance | | +| test3.cpp:270:16:270:23 | password | test3.cpp:272:15:272:18 | *data | provenance | | +| test3.cpp:278:20:278:23 | data | test3.cpp:280:14:280:17 | data | provenance | | +| test3.cpp:283:20:283:23 | data | test3.cpp:285:14:285:17 | data | provenance | | +| test3.cpp:288:20:288:23 | data | test3.cpp:290:14:290:17 | data | provenance | | +| test3.cpp:293:20:293:23 | data | test3.cpp:295:14:295:17 | data | provenance | | +| test3.cpp:298:20:298:23 | data | test3.cpp:300:14:300:17 | data | provenance | | +| test3.cpp:313:11:313:19 | password1 | test3.cpp:278:20:278:23 | data | provenance | | +| test3.cpp:314:11:314:19 | password1 | test3.cpp:283:20:283:23 | data | provenance | | +| test3.cpp:316:11:316:19 | password1 | test3.cpp:283:20:283:23 | data | provenance | | +| test3.cpp:317:11:317:19 | password1 | test3.cpp:288:20:288:23 | data | provenance | | +| test3.cpp:322:16:322:24 | password2 | test3.cpp:324:11:324:14 | data | provenance | | +| test3.cpp:322:16:322:24 | password2 | test3.cpp:325:11:325:14 | data | provenance | | +| test3.cpp:324:11:324:14 | data | test3.cpp:293:20:293:23 | data | provenance | | +| test3.cpp:325:11:325:14 | data | test3.cpp:298:20:298:23 | data | provenance | | +| test3.cpp:526:44:526:54 | my_latitude | test3.cpp:527:15:527:20 | *buffer | provenance | | +| test3.cpp:532:45:532:58 | home_longitude | test3.cpp:533:15:533:20 | *buffer | provenance | | +| test3.cpp:551:47:551:58 | salaryString | test3.cpp:552:15:552:20 | *buffer | provenance | | +| test3.cpp:556:19:556:30 | salaryString | test3.cpp:559:15:559:20 | *buffer | provenance | | +| test3.cpp:571:8:571:21 | call to get_home_phone | test3.cpp:572:14:572:16 | str | provenance | | +| test3.cpp:577:8:577:23 | call to get_home_address | test3.cpp:578:14:578:16 | str | provenance | | nodes | test3.cpp:22:15:22:23 | password1 | semmle.label | password1 | | test3.cpp:26:15:26:23 | password2 | semmle.label | password2 | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-319/UseOfHttp/UseOfHttp.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-319/UseOfHttp/UseOfHttp.expected index 49620af742ff..fa12a3030f17 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-319/UseOfHttp/UseOfHttp.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-319/UseOfHttp/UseOfHttp.expected @@ -1,17 +1,17 @@ edges -| test.cpp:11:26:11:28 | *url | test.cpp:15:30:15:32 | *url | -| test.cpp:24:13:24:17 | **url_g | test.cpp:38:11:38:15 | *url_g | -| test.cpp:24:21:24:40 | *http://example.com | test.cpp:24:13:24:17 | **url_g | -| test.cpp:28:10:28:29 | *http://example.com | test.cpp:11:26:11:28 | *url | -| test.cpp:35:23:35:42 | *http://example.com | test.cpp:39:11:39:15 | *url_l | -| test.cpp:36:26:36:45 | *http://example.com | test.cpp:40:11:40:17 | *access to array | -| test.cpp:38:11:38:15 | *url_g | test.cpp:11:26:11:28 | *url | -| test.cpp:39:11:39:15 | *url_l | test.cpp:11:26:11:28 | *url | -| test.cpp:40:11:40:17 | *access to array | test.cpp:11:26:11:28 | *url | -| test.cpp:46:18:46:26 | *http:// | test.cpp:49:11:49:16 | *buffer | -| test.cpp:49:11:49:16 | *buffer | test.cpp:11:26:11:28 | *url | -| test.cpp:110:21:110:40 | *http://example.com | test.cpp:121:11:121:13 | *ptr | -| test.cpp:121:11:121:13 | *ptr | test.cpp:11:26:11:28 | *url | +| test.cpp:11:26:11:28 | *url | test.cpp:15:30:15:32 | *url | provenance | | +| test.cpp:24:13:24:17 | **url_g | test.cpp:38:11:38:15 | *url_g | provenance | | +| test.cpp:24:21:24:40 | *http://example.com | test.cpp:24:13:24:17 | **url_g | provenance | | +| test.cpp:28:10:28:29 | *http://example.com | test.cpp:11:26:11:28 | *url | provenance | | +| test.cpp:35:23:35:42 | *http://example.com | test.cpp:39:11:39:15 | *url_l | provenance | | +| test.cpp:36:26:36:45 | *http://example.com | test.cpp:40:11:40:17 | *access to array | provenance | | +| test.cpp:38:11:38:15 | *url_g | test.cpp:11:26:11:28 | *url | provenance | | +| test.cpp:39:11:39:15 | *url_l | test.cpp:11:26:11:28 | *url | provenance | | +| test.cpp:40:11:40:17 | *access to array | test.cpp:11:26:11:28 | *url | provenance | | +| test.cpp:46:18:46:26 | *http:// | test.cpp:49:11:49:16 | *buffer | provenance | | +| test.cpp:49:11:49:16 | *buffer | test.cpp:11:26:11:28 | *url | provenance | | +| test.cpp:110:21:110:40 | *http://example.com | test.cpp:121:11:121:13 | *ptr | provenance | | +| test.cpp:121:11:121:13 | *ptr | test.cpp:11:26:11:28 | *url | provenance | | nodes | test.cpp:11:26:11:28 | *url | semmle.label | *url | | test.cpp:15:30:15:32 | *url | semmle.label | *url | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-416/semmle/tests/UseAfterFree/UseAfterFree.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-416/semmle/tests/UseAfterFree/UseAfterFree.expected index 07758344bf30..22cb3f2fe810 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-416/semmle/tests/UseAfterFree/UseAfterFree.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-416/semmle/tests/UseAfterFree/UseAfterFree.expected @@ -1,16 +1,16 @@ edges -| test.cpp:39:7:39:10 | pointer to free output argument | test.cpp:41:6:41:9 | data | -| test.cpp:75:7:75:10 | pointer to free output argument | test.cpp:79:7:79:10 | data | -| test.cpp:106:7:106:10 | pointer to free output argument | test.cpp:108:6:108:9 | data | -| test.cpp:116:7:116:10 | pointer to free output argument | test.cpp:119:6:119:9 | data | -| test.cpp:127:7:127:10 | pointer to free output argument | test.cpp:130:6:130:9 | data | -| test.cpp:164:9:164:9 | pointer to operator delete output argument | test.cpp:165:2:165:2 | c | -| test.cpp:164:9:164:9 | pointer to operator delete output argument | test.cpp:166:3:166:4 | * ... | -| test.cpp:181:7:181:10 | pointer to free output argument | test.cpp:186:6:186:9 | data | -| test.cpp:192:7:192:10 | pointer to free output argument | test.cpp:197:6:197:9 | data | -| test.cpp:203:7:203:10 | pointer to free output argument | test.cpp:209:6:209:9 | data | -| test.cpp:207:8:207:11 | pointer to free output argument | test.cpp:209:6:209:9 | data | -| test.cpp:216:9:216:9 | pointer to operator delete output argument | test.cpp:217:6:217:6 | x | +| test.cpp:39:7:39:10 | pointer to free output argument | test.cpp:41:6:41:9 | data | provenance | | +| test.cpp:75:7:75:10 | pointer to free output argument | test.cpp:79:7:79:10 | data | provenance | | +| test.cpp:106:7:106:10 | pointer to free output argument | test.cpp:108:6:108:9 | data | provenance | | +| test.cpp:116:7:116:10 | pointer to free output argument | test.cpp:119:6:119:9 | data | provenance | | +| test.cpp:127:7:127:10 | pointer to free output argument | test.cpp:130:6:130:9 | data | provenance | | +| test.cpp:164:9:164:9 | pointer to operator delete output argument | test.cpp:165:2:165:2 | c | provenance | | +| test.cpp:164:9:164:9 | pointer to operator delete output argument | test.cpp:166:3:166:4 | * ... | provenance | | +| test.cpp:181:7:181:10 | pointer to free output argument | test.cpp:186:6:186:9 | data | provenance | | +| test.cpp:192:7:192:10 | pointer to free output argument | test.cpp:197:6:197:9 | data | provenance | | +| test.cpp:203:7:203:10 | pointer to free output argument | test.cpp:209:6:209:9 | data | provenance | | +| test.cpp:207:8:207:11 | pointer to free output argument | test.cpp:209:6:209:9 | data | provenance | | +| test.cpp:216:9:216:9 | pointer to operator delete output argument | test.cpp:217:6:217:6 | x | provenance | | nodes | test.cpp:39:7:39:10 | pointer to free output argument | semmle.label | pointer to free output argument | | test.cpp:41:6:41:9 | data | semmle.label | data | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-497/SAMATE/PotentiallyExposedSystemData.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-497/SAMATE/PotentiallyExposedSystemData.expected index 6746c557288a..3fc58925ff7b 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-497/SAMATE/PotentiallyExposedSystemData.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-497/SAMATE/PotentiallyExposedSystemData.expected @@ -1,5 +1,5 @@ edges -| tests.c:57:21:57:28 | *password | tests.c:70:70:70:77 | *password | +| tests.c:57:21:57:28 | *password | tests.c:70:70:70:77 | *password | provenance | | nodes | tests.c:57:21:57:28 | *password | semmle.label | *password | | tests.c:70:70:70:77 | *password | semmle.label | *password | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-497/semmle/tests/ExposedSystemData.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-497/semmle/tests/ExposedSystemData.expected index 9c5a5a9f2709..82fd2be33f87 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-497/semmle/tests/ExposedSystemData.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-497/semmle/tests/ExposedSystemData.expected @@ -1,20 +1,20 @@ edges -| tests2.cpp:50:13:50:19 | **global1 | tests2.cpp:82:14:82:20 | *global1 | -| tests2.cpp:50:23:50:43 | *call to mysql_get_client_info | tests2.cpp:50:13:50:19 | **global1 | -| tests2.cpp:78:18:78:38 | *call to mysql_get_client_info | tests2.cpp:81:14:81:19 | *buffer | -| tests2.cpp:91:42:91:45 | *str1 | tests2.cpp:93:14:93:17 | *str1 | -| tests2.cpp:101:8:101:15 | *call to getpwuid | tests2.cpp:102:14:102:15 | *pw | -| tests2.cpp:109:3:109:4 | *c1 [post update] [*ptr] | tests2.cpp:111:14:111:15 | *c1 [*ptr] | -| tests2.cpp:109:3:109:36 | *... = ... | tests2.cpp:109:3:109:4 | *c1 [post update] [*ptr] | -| tests2.cpp:109:12:109:17 | *call to getenv | tests2.cpp:109:3:109:36 | *... = ... | -| tests2.cpp:111:14:111:15 | *c1 [*ptr] | tests2.cpp:111:14:111:19 | *ptr | -| tests2.cpp:111:14:111:15 | *c1 [*ptr] | tests2.cpp:111:17:111:19 | *ptr | -| tests2.cpp:111:17:111:19 | *ptr | tests2.cpp:111:14:111:19 | *ptr | -| tests_sockets.cpp:26:15:26:20 | *call to getenv | tests_sockets.cpp:39:19:39:22 | *path | -| tests_sockets.cpp:26:15:26:20 | *call to getenv | tests_sockets.cpp:43:20:43:23 | *path | -| tests_sockets.cpp:63:15:63:20 | *call to getenv | tests_sockets.cpp:76:19:76:22 | *path | -| tests_sockets.cpp:63:15:63:20 | *call to getenv | tests_sockets.cpp:80:20:80:23 | *path | -| tests_sysconf.cpp:36:21:36:27 | confstr output argument | tests_sysconf.cpp:39:19:39:25 | *pathbuf | +| tests2.cpp:50:13:50:19 | **global1 | tests2.cpp:82:14:82:20 | *global1 | provenance | | +| tests2.cpp:50:23:50:43 | *call to mysql_get_client_info | tests2.cpp:50:13:50:19 | **global1 | provenance | | +| tests2.cpp:78:18:78:38 | *call to mysql_get_client_info | tests2.cpp:81:14:81:19 | *buffer | provenance | | +| tests2.cpp:91:42:91:45 | *str1 | tests2.cpp:93:14:93:17 | *str1 | provenance | | +| tests2.cpp:101:8:101:15 | *call to getpwuid | tests2.cpp:102:14:102:15 | *pw | provenance | | +| tests2.cpp:109:3:109:4 | *c1 [post update] [*ptr] | tests2.cpp:111:14:111:15 | *c1 [*ptr] | provenance | | +| tests2.cpp:109:3:109:36 | *... = ... | tests2.cpp:109:3:109:4 | *c1 [post update] [*ptr] | provenance | | +| tests2.cpp:109:12:109:17 | *call to getenv | tests2.cpp:109:3:109:36 | *... = ... | provenance | | +| tests2.cpp:111:14:111:15 | *c1 [*ptr] | tests2.cpp:111:14:111:19 | *ptr | provenance | | +| tests2.cpp:111:14:111:15 | *c1 [*ptr] | tests2.cpp:111:17:111:19 | *ptr | provenance | | +| tests2.cpp:111:17:111:19 | *ptr | tests2.cpp:111:14:111:19 | *ptr | provenance | | +| tests_sockets.cpp:26:15:26:20 | *call to getenv | tests_sockets.cpp:39:19:39:22 | *path | provenance | | +| tests_sockets.cpp:26:15:26:20 | *call to getenv | tests_sockets.cpp:43:20:43:23 | *path | provenance | | +| tests_sockets.cpp:63:15:63:20 | *call to getenv | tests_sockets.cpp:76:19:76:22 | *path | provenance | | +| tests_sockets.cpp:63:15:63:20 | *call to getenv | tests_sockets.cpp:80:20:80:23 | *path | provenance | | +| tests_sysconf.cpp:36:21:36:27 | confstr output argument | tests_sysconf.cpp:39:19:39:25 | *pathbuf | provenance | | nodes | tests2.cpp:50:13:50:19 | **global1 | semmle.label | **global1 | | tests2.cpp:50:23:50:43 | *call to mysql_get_client_info | semmle.label | *call to mysql_get_client_info | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-497/semmle/tests/PotentiallyExposedSystemData.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-497/semmle/tests/PotentiallyExposedSystemData.expected index 5178a4019398..32e7895b7948 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-497/semmle/tests/PotentiallyExposedSystemData.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-497/semmle/tests/PotentiallyExposedSystemData.expected @@ -1,18 +1,18 @@ edges -| tests.cpp:62:7:62:18 | **global_token | tests.cpp:71:27:71:38 | *global_token | -| tests.cpp:62:7:62:18 | **global_token | tests.cpp:73:27:73:31 | *maybe | -| tests.cpp:62:22:62:27 | *call to getenv | tests.cpp:62:7:62:18 | **global_token | -| tests.cpp:86:29:86:31 | *msg | tests.cpp:88:15:88:17 | *msg | -| tests.cpp:97:13:97:34 | *call to getenv | tests.cpp:86:29:86:31 | *msg | -| tests.cpp:107:30:107:32 | *msg | tests.cpp:111:15:111:17 | *tmp | -| tests.cpp:114:30:114:32 | *msg | tests.cpp:119:7:119:12 | *buffer | -| tests.cpp:122:30:122:32 | *msg | tests.cpp:124:15:124:17 | *msg | -| tests.cpp:131:14:131:35 | *call to getenv | tests.cpp:107:30:107:32 | *msg | -| tests.cpp:132:14:132:35 | *call to getenv | tests.cpp:114:30:114:32 | *msg | -| tests.cpp:133:14:133:35 | *call to getenv | tests.cpp:122:30:122:32 | *msg | -| tests.cpp:139:17:139:22 | *call to getenv | tests.cpp:141:15:141:20 | *secret | -| tests_passwd.cpp:16:8:16:15 | *call to getpwnam | tests_passwd.cpp:18:29:18:31 | *pwd | -| tests_passwd.cpp:16:8:16:15 | *call to getpwnam | tests_passwd.cpp:19:26:19:28 | *pwd | +| tests.cpp:62:7:62:18 | **global_token | tests.cpp:71:27:71:38 | *global_token | provenance | | +| tests.cpp:62:7:62:18 | **global_token | tests.cpp:73:27:73:31 | *maybe | provenance | | +| tests.cpp:62:22:62:27 | *call to getenv | tests.cpp:62:7:62:18 | **global_token | provenance | | +| tests.cpp:86:29:86:31 | *msg | tests.cpp:88:15:88:17 | *msg | provenance | | +| tests.cpp:97:13:97:34 | *call to getenv | tests.cpp:86:29:86:31 | *msg | provenance | | +| tests.cpp:107:30:107:32 | *msg | tests.cpp:111:15:111:17 | *tmp | provenance | | +| tests.cpp:114:30:114:32 | *msg | tests.cpp:119:7:119:12 | *buffer | provenance | | +| tests.cpp:122:30:122:32 | *msg | tests.cpp:124:15:124:17 | *msg | provenance | | +| tests.cpp:131:14:131:35 | *call to getenv | tests.cpp:107:30:107:32 | *msg | provenance | | +| tests.cpp:132:14:132:35 | *call to getenv | tests.cpp:114:30:114:32 | *msg | provenance | | +| tests.cpp:133:14:133:35 | *call to getenv | tests.cpp:122:30:122:32 | *msg | provenance | | +| tests.cpp:139:17:139:22 | *call to getenv | tests.cpp:141:15:141:20 | *secret | provenance | | +| tests_passwd.cpp:16:8:16:15 | *call to getpwnam | tests_passwd.cpp:18:29:18:31 | *pwd | provenance | | +| tests_passwd.cpp:16:8:16:15 | *call to getpwnam | tests_passwd.cpp:19:26:19:28 | *pwd | provenance | | nodes | tests.cpp:48:15:48:36 | *call to getenv | semmle.label | *call to getenv | | tests.cpp:49:15:49:36 | *call to getenv | semmle.label | *call to getenv | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-611/XXE.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-611/XXE.expected index 4efc0e59620d..70386662fe88 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-611/XXE.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-611/XXE.expected @@ -1,52 +1,52 @@ edges -| tests2.cpp:20:17:20:31 | call to SAXParser | tests2.cpp:22:2:22:2 | *p | -| tests2.cpp:33:17:33:31 | call to SAXParser | tests2.cpp:37:2:37:2 | *p | -| tests2.cpp:49:12:49:12 | call to SAXParser | tests2.cpp:51:2:51:2 | *p | -| tests3.cpp:23:21:23:53 | *call to createXMLReader | tests3.cpp:25:2:25:2 | *p | -| tests3.cpp:35:16:35:20 | **p_3_3 | tests3.cpp:38:2:38:6 | *p_3_3 | -| tests3.cpp:35:24:35:56 | *call to createXMLReader | tests3.cpp:35:16:35:20 | **p_3_3 | -| tests3.cpp:48:16:48:20 | **p_3_5 | tests3.cpp:56:2:56:6 | *p_3_5 | -| tests3.cpp:48:24:48:56 | *call to createXMLReader | tests3.cpp:48:16:48:20 | **p_3_5 | -| tests3.cpp:60:21:60:53 | *call to createXMLReader | tests3.cpp:63:2:63:2 | *p | -| tests3.cpp:67:21:67:53 | *call to createXMLReader | tests3.cpp:70:2:70:2 | *p | -| tests5.cpp:27:25:27:38 | *call to createLSParser | tests5.cpp:29:2:29:2 | *p | -| tests5.cpp:40:25:40:38 | *call to createLSParser | tests5.cpp:43:2:43:2 | *p | -| tests5.cpp:55:25:55:38 | *call to createLSParser | tests5.cpp:59:2:59:2 | *p | -| tests5.cpp:63:21:63:24 | **g_p2 | tests5.cpp:77:2:77:5 | *g_p2 | -| tests5.cpp:70:17:70:30 | *call to createLSParser | tests5.cpp:63:21:63:24 | **g_p2 | -| tests5.cpp:81:25:81:38 | *call to createLSParser | tests5.cpp:83:2:83:2 | *p | -| tests5.cpp:81:25:81:38 | *call to createLSParser | tests5.cpp:83:2:83:2 | *p | -| tests5.cpp:83:2:83:2 | *p | tests5.cpp:85:2:85:2 | *p | -| tests5.cpp:85:2:85:2 | *p | tests5.cpp:86:2:86:2 | *p | -| tests5.cpp:86:2:86:2 | *p | tests5.cpp:88:2:88:2 | *p | -| tests5.cpp:88:2:88:2 | *p | tests5.cpp:89:2:89:2 | *p | -| tests.cpp:15:23:15:43 | call to XercesDOMParser | tests.cpp:17:2:17:2 | *p | -| tests.cpp:28:23:28:43 | call to XercesDOMParser | tests.cpp:31:2:31:2 | *p | -| tests.cpp:35:23:35:43 | call to XercesDOMParser | tests.cpp:37:2:37:2 | *p | -| tests.cpp:37:2:37:2 | *p | tests.cpp:37:2:37:2 | *p | -| tests.cpp:37:2:37:2 | *p | tests.cpp:38:2:38:2 | *p | -| tests.cpp:38:2:38:2 | *p | tests.cpp:38:2:38:2 | *p | -| tests.cpp:38:2:38:2 | *p | tests.cpp:39:2:39:2 | *p | -| tests.cpp:51:23:51:43 | call to XercesDOMParser | tests.cpp:53:2:53:2 | *p | -| tests.cpp:53:2:53:2 | *p | tests.cpp:53:2:53:2 | *p | -| tests.cpp:53:2:53:2 | *p | tests.cpp:55:2:55:2 | *p | -| tests.cpp:55:2:55:2 | *p | tests.cpp:55:2:55:2 | *p | -| tests.cpp:55:2:55:2 | *p | tests.cpp:56:2:56:2 | *p | -| tests.cpp:55:2:55:2 | *p | tests.cpp:57:2:57:2 | *p | -| tests.cpp:57:2:57:2 | *p | tests.cpp:57:2:57:2 | *p | -| tests.cpp:57:2:57:2 | *p | tests.cpp:59:2:59:2 | *p | -| tests.cpp:59:2:59:2 | *p | tests.cpp:59:2:59:2 | *p | -| tests.cpp:59:2:59:2 | *p | tests.cpp:60:2:60:2 | *p | -| tests.cpp:66:23:66:43 | call to XercesDOMParser | tests.cpp:69:2:69:2 | *p | -| tests.cpp:73:23:73:43 | call to XercesDOMParser | tests.cpp:80:2:80:2 | *p | -| tests.cpp:85:24:85:44 | call to XercesDOMParser | tests.cpp:88:3:88:3 | *q | -| tests.cpp:100:24:100:44 | call to XercesDOMParser | tests.cpp:104:3:104:3 | *q | -| tests.cpp:112:39:112:39 | *p | tests.cpp:113:2:113:2 | *p | -| tests.cpp:116:39:116:39 | *p | tests.cpp:117:2:117:2 | *p | -| tests.cpp:122:23:122:43 | call to XercesDOMParser | tests.cpp:126:18:126:18 | *q | -| tests.cpp:122:23:122:43 | call to XercesDOMParser | tests.cpp:128:18:128:18 | *q | -| tests.cpp:126:18:126:18 | *q | tests.cpp:112:39:112:39 | *p | -| tests.cpp:128:18:128:18 | *q | tests.cpp:116:39:116:39 | *p | +| tests2.cpp:20:17:20:31 | call to SAXParser | tests2.cpp:22:2:22:2 | *p | provenance | | +| tests2.cpp:33:17:33:31 | call to SAXParser | tests2.cpp:37:2:37:2 | *p | provenance | | +| tests2.cpp:49:12:49:12 | call to SAXParser | tests2.cpp:51:2:51:2 | *p | provenance | | +| tests3.cpp:23:21:23:53 | *call to createXMLReader | tests3.cpp:25:2:25:2 | *p | provenance | | +| tests3.cpp:35:16:35:20 | **p_3_3 | tests3.cpp:38:2:38:6 | *p_3_3 | provenance | | +| tests3.cpp:35:24:35:56 | *call to createXMLReader | tests3.cpp:35:16:35:20 | **p_3_3 | provenance | | +| tests3.cpp:48:16:48:20 | **p_3_5 | tests3.cpp:56:2:56:6 | *p_3_5 | provenance | | +| tests3.cpp:48:24:48:56 | *call to createXMLReader | tests3.cpp:48:16:48:20 | **p_3_5 | provenance | | +| tests3.cpp:60:21:60:53 | *call to createXMLReader | tests3.cpp:63:2:63:2 | *p | provenance | | +| tests3.cpp:67:21:67:53 | *call to createXMLReader | tests3.cpp:70:2:70:2 | *p | provenance | | +| tests5.cpp:27:25:27:38 | *call to createLSParser | tests5.cpp:29:2:29:2 | *p | provenance | | +| tests5.cpp:40:25:40:38 | *call to createLSParser | tests5.cpp:43:2:43:2 | *p | provenance | | +| tests5.cpp:55:25:55:38 | *call to createLSParser | tests5.cpp:59:2:59:2 | *p | provenance | | +| tests5.cpp:63:21:63:24 | **g_p2 | tests5.cpp:77:2:77:5 | *g_p2 | provenance | | +| tests5.cpp:70:17:70:30 | *call to createLSParser | tests5.cpp:63:21:63:24 | **g_p2 | provenance | | +| tests5.cpp:81:25:81:38 | *call to createLSParser | tests5.cpp:83:2:83:2 | *p | provenance | | +| tests5.cpp:81:25:81:38 | *call to createLSParser | tests5.cpp:83:2:83:2 | *p | provenance | | +| tests5.cpp:83:2:83:2 | *p | tests5.cpp:85:2:85:2 | *p | provenance | | +| tests5.cpp:85:2:85:2 | *p | tests5.cpp:86:2:86:2 | *p | provenance | | +| tests5.cpp:86:2:86:2 | *p | tests5.cpp:88:2:88:2 | *p | provenance | | +| tests5.cpp:88:2:88:2 | *p | tests5.cpp:89:2:89:2 | *p | provenance | | +| tests.cpp:15:23:15:43 | call to XercesDOMParser | tests.cpp:17:2:17:2 | *p | provenance | | +| tests.cpp:28:23:28:43 | call to XercesDOMParser | tests.cpp:31:2:31:2 | *p | provenance | | +| tests.cpp:35:23:35:43 | call to XercesDOMParser | tests.cpp:37:2:37:2 | *p | provenance | | +| tests.cpp:37:2:37:2 | *p | tests.cpp:37:2:37:2 | *p | provenance | | +| tests.cpp:37:2:37:2 | *p | tests.cpp:38:2:38:2 | *p | provenance | | +| tests.cpp:38:2:38:2 | *p | tests.cpp:38:2:38:2 | *p | provenance | | +| tests.cpp:38:2:38:2 | *p | tests.cpp:39:2:39:2 | *p | provenance | | +| tests.cpp:51:23:51:43 | call to XercesDOMParser | tests.cpp:53:2:53:2 | *p | provenance | | +| tests.cpp:53:2:53:2 | *p | tests.cpp:53:2:53:2 | *p | provenance | | +| tests.cpp:53:2:53:2 | *p | tests.cpp:55:2:55:2 | *p | provenance | | +| tests.cpp:55:2:55:2 | *p | tests.cpp:55:2:55:2 | *p | provenance | | +| tests.cpp:55:2:55:2 | *p | tests.cpp:56:2:56:2 | *p | provenance | | +| tests.cpp:55:2:55:2 | *p | tests.cpp:57:2:57:2 | *p | provenance | | +| tests.cpp:57:2:57:2 | *p | tests.cpp:57:2:57:2 | *p | provenance | | +| tests.cpp:57:2:57:2 | *p | tests.cpp:59:2:59:2 | *p | provenance | | +| tests.cpp:59:2:59:2 | *p | tests.cpp:59:2:59:2 | *p | provenance | | +| tests.cpp:59:2:59:2 | *p | tests.cpp:60:2:60:2 | *p | provenance | | +| tests.cpp:66:23:66:43 | call to XercesDOMParser | tests.cpp:69:2:69:2 | *p | provenance | | +| tests.cpp:73:23:73:43 | call to XercesDOMParser | tests.cpp:80:2:80:2 | *p | provenance | | +| tests.cpp:85:24:85:44 | call to XercesDOMParser | tests.cpp:88:3:88:3 | *q | provenance | | +| tests.cpp:100:24:100:44 | call to XercesDOMParser | tests.cpp:104:3:104:3 | *q | provenance | | +| tests.cpp:112:39:112:39 | *p | tests.cpp:113:2:113:2 | *p | provenance | | +| tests.cpp:116:39:116:39 | *p | tests.cpp:117:2:117:2 | *p | provenance | | +| tests.cpp:122:23:122:43 | call to XercesDOMParser | tests.cpp:126:18:126:18 | *q | provenance | | +| tests.cpp:122:23:122:43 | call to XercesDOMParser | tests.cpp:128:18:128:18 | *q | provenance | | +| tests.cpp:126:18:126:18 | *q | tests.cpp:112:39:112:39 | *p | provenance | | +| tests.cpp:128:18:128:18 | *q | tests.cpp:116:39:116:39 | *p | provenance | | nodes | tests2.cpp:20:17:20:31 | call to SAXParser | semmle.label | call to SAXParser | | tests2.cpp:22:2:22:2 | *p | semmle.label | *p | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-807/semmle/TaintedCondition/TaintedCondition.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-807/semmle/TaintedCondition/TaintedCondition.expected index f587e772b653..9b02e597ba29 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-807/semmle/TaintedCondition/TaintedCondition.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-807/semmle/TaintedCondition/TaintedCondition.expected @@ -1,5 +1,5 @@ edges -| test.cpp:20:29:20:47 | *call to getenv | test.cpp:24:10:24:35 | ! ... | +| test.cpp:20:29:20:47 | *call to getenv | test.cpp:24:10:24:35 | ! ... | provenance | | nodes | test.cpp:20:29:20:47 | *call to getenv | semmle.label | *call to getenv | | test.cpp:24:10:24:35 | ! ... | semmle.label | ! ... | diff --git a/csharp/ql/lib/semmle/code/csharp/security/dataflow/XSSQuery.qll b/csharp/ql/lib/semmle/code/csharp/security/dataflow/XSSQuery.qll index 5ad2b6bc675a..1dea41c8a7c7 100644 --- a/csharp/ql/lib/semmle/code/csharp/security/dataflow/XSSQuery.qll +++ b/csharp/ql/lib/semmle/code/csharp/security/dataflow/XSSQuery.qll @@ -42,14 +42,18 @@ predicate xssFlow(XssNode source, XssNode sink, string message) { */ module PathGraph { /** Holds if `(pred,succ)` is an edge in the graph of data flow path explanations. */ - query predicate edges(XssNode pred, XssNode succ) { - exists(XssTracking::PathNode a, XssTracking::PathNode b | XssTracking::PathGraph::edges(a, b) | + query predicate edges(XssNode pred, XssNode succ, string key, string val) { + exists(XssTracking::PathNode a, XssTracking::PathNode b | + XssTracking::PathGraph::edges(a, b, key, val) + | pred.asDataFlowNode() = a and succ.asDataFlowNode() = b ) or xssFlow(pred, succ, _) and - pred instanceof XssAspNode + pred instanceof XssAspNode and + key = "provenance" and + val = "" } /** Holds if `n` is a node in the graph of data flow path explanations. */ diff --git a/csharp/ql/src/experimental/Security Features/backdoor/PotentialTimeBomb.ql b/csharp/ql/src/experimental/Security Features/backdoor/PotentialTimeBomb.ql index 1713607607ca..47b69d3e975d 100644 --- a/csharp/ql/src/experimental/Security Features/backdoor/PotentialTimeBomb.ql +++ b/csharp/ql/src/experimental/Security Features/backdoor/PotentialTimeBomb.ql @@ -13,14 +13,18 @@ import csharp import Flow::PathGraph -query predicate edges(Flow::PathNode a, Flow::PathNode b) { - Flow::PathGraph::edges(a, b) +query predicate edges(Flow::PathNode a, Flow::PathNode b, string key, string val) { + Flow::PathGraph::edges(a, b, key, val) or FlowsFromGetLastWriteTimeConfigToTimeSpanArithmeticCallableConfig::isSink(a.getNode()) and - FlowsFromTimeSpanArithmeticToTimeComparisonCallableConfig::isSource(b.getNode()) + FlowsFromTimeSpanArithmeticToTimeComparisonCallableConfig::isSource(b.getNode()) and + key = "provenance" and + val = "" or FlowsFromTimeSpanArithmeticToTimeComparisonCallableConfig::isSink(a.getNode()) and - FlowsFromTimeComparisonCallableToSelectionStatementConditionConfig::isSource(b.getNode()) + FlowsFromTimeComparisonCallableToSelectionStatementConditionConfig::isSource(b.getNode()) and + key = "provenance" and + val = "" } /** diff --git a/csharp/ql/test/experimental/CWE-918/RequestForgery.expected b/csharp/ql/test/experimental/CWE-918/RequestForgery.expected index 4c499ad4be6e..37cc9ded82c8 100644 --- a/csharp/ql/test/experimental/CWE-918/RequestForgery.expected +++ b/csharp/ql/test/experimental/CWE-918/RequestForgery.expected @@ -1,5 +1,5 @@ edges -| RequestForgery.cs:12:52:12:54 | url : String | RequestForgery.cs:14:66:14:68 | access to parameter url | +| RequestForgery.cs:12:52:12:54 | url : String | RequestForgery.cs:14:66:14:68 | access to parameter url | provenance | | nodes | RequestForgery.cs:12:52:12:54 | url : String | semmle.label | url : String | | RequestForgery.cs:14:66:14:68 | access to parameter url | semmle.label | access to parameter url | diff --git a/csharp/ql/test/experimental/Security Features/CWE-759/HashWithoutSalt.expected b/csharp/ql/test/experimental/Security Features/CWE-759/HashWithoutSalt.expected index 0ee0a6b7f61c..f3c1a8ed6c5e 100644 --- a/csharp/ql/test/experimental/Security Features/CWE-759/HashWithoutSalt.expected +++ b/csharp/ql/test/experimental/Security Features/CWE-759/HashWithoutSalt.expected @@ -1,10 +1,10 @@ edges -| HashWithoutSalt.cs:18:28:18:105 | call to method ConvertStringToBinary : IBuffer | HashWithoutSalt.cs:20:49:20:56 | access to local variable passBuff | -| HashWithoutSalt.cs:18:70:18:77 | access to parameter password : String | HashWithoutSalt.cs:18:28:18:105 | call to method ConvertStringToBinary : IBuffer | -| HashWithoutSalt.cs:38:28:38:72 | call to method GetBytes : Byte[] | HashWithoutSalt.cs:39:51:39:59 | access to local variable passBytes | -| HashWithoutSalt.cs:38:64:38:71 | access to parameter password : String | HashWithoutSalt.cs:38:28:38:72 | call to method GetBytes : Byte[] | -| HashWithoutSalt.cs:70:28:70:72 | call to method GetBytes : Byte[] | HashWithoutSalt.cs:71:48:71:56 | access to local variable passBytes | -| HashWithoutSalt.cs:70:64:70:71 | access to parameter password : String | HashWithoutSalt.cs:70:28:70:72 | call to method GetBytes : Byte[] | +| HashWithoutSalt.cs:18:28:18:105 | call to method ConvertStringToBinary : IBuffer | HashWithoutSalt.cs:20:49:20:56 | access to local variable passBuff | provenance | | +| HashWithoutSalt.cs:18:70:18:77 | access to parameter password : String | HashWithoutSalt.cs:18:28:18:105 | call to method ConvertStringToBinary : IBuffer | provenance | | +| HashWithoutSalt.cs:38:28:38:72 | call to method GetBytes : Byte[] | HashWithoutSalt.cs:39:51:39:59 | access to local variable passBytes | provenance | | +| HashWithoutSalt.cs:38:64:38:71 | access to parameter password : String | HashWithoutSalt.cs:38:28:38:72 | call to method GetBytes : Byte[] | provenance | | +| HashWithoutSalt.cs:70:28:70:72 | call to method GetBytes : Byte[] | HashWithoutSalt.cs:71:48:71:56 | access to local variable passBytes | provenance | | +| HashWithoutSalt.cs:70:64:70:71 | access to parameter password : String | HashWithoutSalt.cs:70:28:70:72 | call to method GetBytes : Byte[] | provenance | | nodes | HashWithoutSalt.cs:18:28:18:105 | call to method ConvertStringToBinary : IBuffer | semmle.label | call to method ConvertStringToBinary : IBuffer | | HashWithoutSalt.cs:18:70:18:77 | access to parameter password : String | semmle.label | access to parameter password : String | diff --git a/csharp/ql/test/experimental/Security Features/backdoor/PotentialTimeBomb.expected b/csharp/ql/test/experimental/Security Features/backdoor/PotentialTimeBomb.expected index 512699c5398d..812e17510482 100644 --- a/csharp/ql/test/experimental/Security Features/backdoor/PotentialTimeBomb.expected +++ b/csharp/ql/test/experimental/Security Features/backdoor/PotentialTimeBomb.expected @@ -7,14 +7,14 @@ nodes | test.cs:71:36:71:70 | call to method AddHours | semmle.label | call to method AddHours | subpaths edges -| test.cs:69:34:69:76 | call to method GetLastWriteTime : DateTime | test.cs:71:36:71:48 | access to local variable lastWriteTime | -| test.cs:71:13:71:71 | call to method CompareTo : Int32 | test.cs:71:13:71:76 | ... >= ... | -| test.cs:71:36:71:48 | access to local variable lastWriteTime | test.cs:71:13:71:71 | call to method CompareTo | -| test.cs:71:36:71:48 | access to local variable lastWriteTime | test.cs:71:13:71:71 | call to method CompareTo : Int32 | -| test.cs:71:36:71:48 | access to local variable lastWriteTime | test.cs:71:36:71:70 | call to method AddHours | -| test.cs:71:36:71:70 | call to method AddHours | test.cs:71:13:71:71 | call to method CompareTo | -| test.cs:71:36:71:70 | call to method AddHours | test.cs:71:13:71:71 | call to method CompareTo : Int32 | -| test.cs:71:36:71:70 | call to method AddHours | test.cs:71:36:71:70 | call to method AddHours | +| test.cs:69:34:69:76 | call to method GetLastWriteTime : DateTime | test.cs:71:36:71:48 | access to local variable lastWriteTime | provenance | | +| test.cs:71:13:71:71 | call to method CompareTo : Int32 | test.cs:71:13:71:76 | ... >= ... | provenance | | +| test.cs:71:36:71:48 | access to local variable lastWriteTime | test.cs:71:13:71:71 | call to method CompareTo | provenance | | +| test.cs:71:36:71:48 | access to local variable lastWriteTime | test.cs:71:13:71:71 | call to method CompareTo : Int32 | provenance | | +| test.cs:71:36:71:48 | access to local variable lastWriteTime | test.cs:71:36:71:70 | call to method AddHours | provenance | | +| test.cs:71:36:71:70 | call to method AddHours | test.cs:71:13:71:71 | call to method CompareTo | provenance | | +| test.cs:71:36:71:70 | call to method AddHours | test.cs:71:13:71:71 | call to method CompareTo : Int32 | provenance | | +| test.cs:71:36:71:70 | call to method AddHours | test.cs:71:36:71:70 | call to method AddHours | provenance | | #select | test.cs:71:9:74:9 | if (...) ... | test.cs:69:34:69:76 | call to method GetLastWriteTime : DateTime | test.cs:71:13:71:71 | call to method CompareTo | Possible TimeBomb logic triggered by an $@ that takes into account $@ from the $@ as part of the potential trigger. | test.cs:71:13:71:71 | call to method CompareTo | call to method CompareTo | test.cs:71:36:71:70 | call to method AddHours | offset | test.cs:69:34:69:76 | call to method GetLastWriteTime | last modification time of a file | | test.cs:71:9:74:9 | if (...) ... | test.cs:69:34:69:76 | call to method GetLastWriteTime : DateTime | test.cs:71:13:71:71 | call to method CompareTo : Int32 | Possible TimeBomb logic triggered by an $@ that takes into account $@ from the $@ as part of the potential trigger. | test.cs:71:13:71:71 | call to method CompareTo | call to method CompareTo | test.cs:71:36:71:70 | call to method AddHours | offset | test.cs:69:34:69:76 | call to method GetLastWriteTime | last modification time of a file | diff --git a/csharp/ql/test/library-tests/cil/dataflow/DataFlow.expected b/csharp/ql/test/library-tests/cil/dataflow/DataFlow.expected index 6d75d5ef0415..e4c2f9af9ed2 100644 --- a/csharp/ql/test/library-tests/cil/dataflow/DataFlow.expected +++ b/csharp/ql/test/library-tests/cil/dataflow/DataFlow.expected @@ -1,54 +1,54 @@ edges -| DataFlow.dll:0:0:0:0 | Parameter 1 of Taint1 : String | DataFlow.dll:0:0:0:0 | ldarg.1 : String | -| DataFlow.dll:0:0:0:0 | Parameter 1 of Taint1 : String | DataFlow.dll:0:0:0:0 | ldarg.1 : String | -| DataFlow.dll:0:0:0:0 | Parameter 1 of Taint2 : String | DataFlow.dll:0:0:0:0 | ldarg.1 : String | -| DataFlow.dll:0:0:0:0 | Parameter 1 of Taint3 : String | DataFlow.dll:0:0:0:0 | ldarg.1 : String | -| DataFlow.dll:0:0:0:0 | Parameter 1 of Taint5 : String | DataFlow.dll:0:0:0:0 | ldarg.1 : String | -| DataFlow.dll:0:0:0:0 | Parameter 1 of Taint6 : String | DataFlow.dll:0:0:0:0 | ldarg.1 : String | -| DataFlow.dll:0:0:0:0 | Parameter 1 of TaintIndirect : String | DataFlow.dll:0:0:0:0 | ldarg.1 : String | -| DataFlow.dll:0:0:0:0 | Parameter 2 of Taint1 : String | DataFlow.dll:0:0:0:0 | ldarg.2 : String | -| DataFlow.dll:0:0:0:0 | Parameter 2 of TaintIndirect : String | DataFlow.dll:0:0:0:0 | ldarg.2 : String | -| DataFlow.dll:0:0:0:0 | ldarg.1 : String | DataFlow.dll:0:0:0:0 | Parameter 1 of Taint1 : String | -| DataFlow.dll:0:0:0:0 | ldarg.1 : String | DataFlow.dll:0:0:0:0 | Parameter 1 of Taint5 : String | -| DataFlow.dll:0:0:0:0 | ldarg.1 : String | DataFlow.dll:0:0:0:0 | Parameter 1 of Taint6 : String | -| DataFlow.dll:0:0:0:0 | ldarg.1 : String | DataFlow.dll:0:0:0:0 | call : String | -| DataFlow.dll:0:0:0:0 | ldarg.1 : String | DataFlow.dll:0:0:0:0 | call : String | -| DataFlow.dll:0:0:0:0 | ldarg.1 : String | DataFlow.dll:0:0:0:0 | call : String | -| DataFlow.dll:0:0:0:0 | ldarg.1 : String | DataFlow.dll:0:0:0:0 | call : String | -| DataFlow.dll:0:0:0:0 | ldarg.2 : String | DataFlow.dll:0:0:0:0 | Parameter 2 of Taint1 : String | -| DataFlow.dll:0:0:0:0 | ldarg.2 : String | DataFlow.dll:0:0:0:0 | call : String | -| DataFlow.dll:0:0:0:0 | ldarg.2 : String | DataFlow.dll:0:0:0:0 | call : String | -| dataflow.cs:16:18:16:26 | "tainted" : String | dataflow.cs:16:18:16:37 | call to method ToString | -| dataflow.cs:18:27:18:27 | 2 : Int32 | dataflow.cs:18:18:18:31 | call to method Max | -| dataflow.cs:18:30:18:30 | 3 : Int32 | dataflow.cs:18:18:18:31 | call to method Max | -| dataflow.cs:19:29:19:31 | 0.5 : Double | dataflow.cs:19:18:19:32 | call to method Round | -| dataflow.cs:20:45:20:53 | "tainted" : String | dataflow.cs:20:18:20:54 | call to method GetFullPath | -| dataflow.cs:27:44:27:46 | 1 : Double | dataflow.cs:27:18:27:52 | call to method IEEERemainder | -| dataflow.cs:27:49:27:51 | 2 : Double | dataflow.cs:27:18:27:52 | call to method IEEERemainder | -| dataflow.cs:38:34:38:37 | "d1" : String | DataFlow.dll:0:0:0:0 | Parameter 1 of Taint1 : String | -| dataflow.cs:38:34:38:37 | "d1" : String | dataflow.cs:38:18:38:38 | call to method Taint1 | -| dataflow.cs:39:34:39:37 | "d2" : String | DataFlow.dll:0:0:0:0 | Parameter 1 of Taint2 : String | -| dataflow.cs:39:34:39:37 | "d2" : String | dataflow.cs:39:18:39:38 | call to method Taint2 | -| dataflow.cs:40:34:40:37 | "d3" : String | DataFlow.dll:0:0:0:0 | Parameter 1 of Taint3 : String | -| dataflow.cs:40:34:40:37 | "d3" : String | dataflow.cs:40:18:40:38 | call to method Taint3 | -| dataflow.cs:44:28:44:32 | "t1a" : String | DataFlow.dll:0:0:0:0 | Parameter 1 of Taint1 : String | -| dataflow.cs:44:28:44:32 | "t1a" : String | dataflow.cs:44:18:44:40 | call to method Taint1 | -| dataflow.cs:44:35:44:39 | "t1b" : String | DataFlow.dll:0:0:0:0 | Parameter 2 of Taint1 : String | -| dataflow.cs:44:35:44:39 | "t1b" : String | dataflow.cs:44:18:44:40 | call to method Taint1 | -| dataflow.cs:47:35:47:38 | "t6" : String | DataFlow.dll:0:0:0:0 | Parameter 1 of TaintIndirect : String | -| dataflow.cs:47:35:47:38 | "t6" : String | dataflow.cs:47:18:47:45 | call to method TaintIndirect | -| dataflow.cs:47:41:47:44 | "t6" : String | DataFlow.dll:0:0:0:0 | Parameter 2 of TaintIndirect : String | -| dataflow.cs:47:41:47:44 | "t6" : String | dataflow.cs:47:18:47:45 | call to method TaintIndirect | -| dataflow.cs:72:21:72:34 | call to method NullFunction : null | dataflow.cs:72:21:72:52 | ... ?? ... | -| dataflow.cs:72:39:72:52 | call to method IndirectNull : null | dataflow.cs:72:21:72:52 | ... ?? ... | -| dataflow.cs:87:31:87:44 | call to method NullFunction : null | dataflow.cs:87:24:87:51 | ... ? ... : ... | -| dataflow.cs:100:30:100:33 | null : null | dataflow.cs:72:39:72:52 | call to method IndirectNull : null | -| dataflow.cs:100:30:100:33 | null : null | dataflow.cs:106:20:106:33 | call to method IndirectNull | -| dataflow.cs:100:30:100:33 | null : null | dataflow.cs:106:20:106:33 | call to method IndirectNull : null | -| dataflow.cs:106:20:106:33 | call to method IndirectNull : null | dataflow.cs:108:16:108:16 | access to local variable x : null | -| dataflow.cs:107:23:107:26 | null : null | dataflow.cs:108:16:108:16 | access to local variable x : null | -| dataflow.cs:108:16:108:16 | access to local variable x : null | dataflow.cs:72:21:72:34 | call to method NullFunction : null | -| dataflow.cs:108:16:108:16 | access to local variable x : null | dataflow.cs:87:31:87:44 | call to method NullFunction : null | +| DataFlow.dll:0:0:0:0 | Parameter 1 of Taint1 : String | DataFlow.dll:0:0:0:0 | ldarg.1 : String | provenance | | +| DataFlow.dll:0:0:0:0 | Parameter 1 of Taint1 : String | DataFlow.dll:0:0:0:0 | ldarg.1 : String | provenance | | +| DataFlow.dll:0:0:0:0 | Parameter 1 of Taint2 : String | DataFlow.dll:0:0:0:0 | ldarg.1 : String | provenance | | +| DataFlow.dll:0:0:0:0 | Parameter 1 of Taint3 : String | DataFlow.dll:0:0:0:0 | ldarg.1 : String | provenance | | +| DataFlow.dll:0:0:0:0 | Parameter 1 of Taint5 : String | DataFlow.dll:0:0:0:0 | ldarg.1 : String | provenance | | +| DataFlow.dll:0:0:0:0 | Parameter 1 of Taint6 : String | DataFlow.dll:0:0:0:0 | ldarg.1 : String | provenance | | +| DataFlow.dll:0:0:0:0 | Parameter 1 of TaintIndirect : String | DataFlow.dll:0:0:0:0 | ldarg.1 : String | provenance | | +| DataFlow.dll:0:0:0:0 | Parameter 2 of Taint1 : String | DataFlow.dll:0:0:0:0 | ldarg.2 : String | provenance | | +| DataFlow.dll:0:0:0:0 | Parameter 2 of TaintIndirect : String | DataFlow.dll:0:0:0:0 | ldarg.2 : String | provenance | | +| DataFlow.dll:0:0:0:0 | ldarg.1 : String | DataFlow.dll:0:0:0:0 | Parameter 1 of Taint1 : String | provenance | | +| DataFlow.dll:0:0:0:0 | ldarg.1 : String | DataFlow.dll:0:0:0:0 | Parameter 1 of Taint5 : String | provenance | | +| DataFlow.dll:0:0:0:0 | ldarg.1 : String | DataFlow.dll:0:0:0:0 | Parameter 1 of Taint6 : String | provenance | | +| DataFlow.dll:0:0:0:0 | ldarg.1 : String | DataFlow.dll:0:0:0:0 | call : String | provenance | | +| DataFlow.dll:0:0:0:0 | ldarg.1 : String | DataFlow.dll:0:0:0:0 | call : String | provenance | | +| DataFlow.dll:0:0:0:0 | ldarg.1 : String | DataFlow.dll:0:0:0:0 | call : String | provenance | | +| DataFlow.dll:0:0:0:0 | ldarg.1 : String | DataFlow.dll:0:0:0:0 | call : String | provenance | | +| DataFlow.dll:0:0:0:0 | ldarg.2 : String | DataFlow.dll:0:0:0:0 | Parameter 2 of Taint1 : String | provenance | | +| DataFlow.dll:0:0:0:0 | ldarg.2 : String | DataFlow.dll:0:0:0:0 | call : String | provenance | | +| DataFlow.dll:0:0:0:0 | ldarg.2 : String | DataFlow.dll:0:0:0:0 | call : String | provenance | | +| dataflow.cs:16:18:16:26 | "tainted" : String | dataflow.cs:16:18:16:37 | call to method ToString | provenance | | +| dataflow.cs:18:27:18:27 | 2 : Int32 | dataflow.cs:18:18:18:31 | call to method Max | provenance | | +| dataflow.cs:18:30:18:30 | 3 : Int32 | dataflow.cs:18:18:18:31 | call to method Max | provenance | | +| dataflow.cs:19:29:19:31 | 0.5 : Double | dataflow.cs:19:18:19:32 | call to method Round | provenance | | +| dataflow.cs:20:45:20:53 | "tainted" : String | dataflow.cs:20:18:20:54 | call to method GetFullPath | provenance | | +| dataflow.cs:27:44:27:46 | 1 : Double | dataflow.cs:27:18:27:52 | call to method IEEERemainder | provenance | | +| dataflow.cs:27:49:27:51 | 2 : Double | dataflow.cs:27:18:27:52 | call to method IEEERemainder | provenance | | +| dataflow.cs:38:34:38:37 | "d1" : String | DataFlow.dll:0:0:0:0 | Parameter 1 of Taint1 : String | provenance | | +| dataflow.cs:38:34:38:37 | "d1" : String | dataflow.cs:38:18:38:38 | call to method Taint1 | provenance | | +| dataflow.cs:39:34:39:37 | "d2" : String | DataFlow.dll:0:0:0:0 | Parameter 1 of Taint2 : String | provenance | | +| dataflow.cs:39:34:39:37 | "d2" : String | dataflow.cs:39:18:39:38 | call to method Taint2 | provenance | | +| dataflow.cs:40:34:40:37 | "d3" : String | DataFlow.dll:0:0:0:0 | Parameter 1 of Taint3 : String | provenance | | +| dataflow.cs:40:34:40:37 | "d3" : String | dataflow.cs:40:18:40:38 | call to method Taint3 | provenance | | +| dataflow.cs:44:28:44:32 | "t1a" : String | DataFlow.dll:0:0:0:0 | Parameter 1 of Taint1 : String | provenance | | +| dataflow.cs:44:28:44:32 | "t1a" : String | dataflow.cs:44:18:44:40 | call to method Taint1 | provenance | | +| dataflow.cs:44:35:44:39 | "t1b" : String | DataFlow.dll:0:0:0:0 | Parameter 2 of Taint1 : String | provenance | | +| dataflow.cs:44:35:44:39 | "t1b" : String | dataflow.cs:44:18:44:40 | call to method Taint1 | provenance | | +| dataflow.cs:47:35:47:38 | "t6" : String | DataFlow.dll:0:0:0:0 | Parameter 1 of TaintIndirect : String | provenance | | +| dataflow.cs:47:35:47:38 | "t6" : String | dataflow.cs:47:18:47:45 | call to method TaintIndirect | provenance | | +| dataflow.cs:47:41:47:44 | "t6" : String | DataFlow.dll:0:0:0:0 | Parameter 2 of TaintIndirect : String | provenance | | +| dataflow.cs:47:41:47:44 | "t6" : String | dataflow.cs:47:18:47:45 | call to method TaintIndirect | provenance | | +| dataflow.cs:72:21:72:34 | call to method NullFunction : null | dataflow.cs:72:21:72:52 | ... ?? ... | provenance | | +| dataflow.cs:72:39:72:52 | call to method IndirectNull : null | dataflow.cs:72:21:72:52 | ... ?? ... | provenance | | +| dataflow.cs:87:31:87:44 | call to method NullFunction : null | dataflow.cs:87:24:87:51 | ... ? ... : ... | provenance | | +| dataflow.cs:100:30:100:33 | null : null | dataflow.cs:72:39:72:52 | call to method IndirectNull : null | provenance | | +| dataflow.cs:100:30:100:33 | null : null | dataflow.cs:106:20:106:33 | call to method IndirectNull | provenance | | +| dataflow.cs:100:30:100:33 | null : null | dataflow.cs:106:20:106:33 | call to method IndirectNull : null | provenance | | +| dataflow.cs:106:20:106:33 | call to method IndirectNull : null | dataflow.cs:108:16:108:16 | access to local variable x : null | provenance | | +| dataflow.cs:107:23:107:26 | null : null | dataflow.cs:108:16:108:16 | access to local variable x : null | provenance | | +| dataflow.cs:108:16:108:16 | access to local variable x : null | dataflow.cs:72:21:72:34 | call to method NullFunction : null | provenance | | +| dataflow.cs:108:16:108:16 | access to local variable x : null | dataflow.cs:87:31:87:44 | call to method NullFunction : null | provenance | | nodes | DataFlow.dll:0:0:0:0 | Parameter 1 of Taint1 : String | semmle.label | Parameter 1 of Taint1 : String | | DataFlow.dll:0:0:0:0 | Parameter 1 of Taint1 : String | semmle.label | Parameter 1 of Taint1 : String | diff --git a/csharp/ql/test/library-tests/cil/dataflow/DataFlow.ql b/csharp/ql/test/library-tests/cil/dataflow/DataFlow.ql index 55d53d0600e7..609717b83404 100644 --- a/csharp/ql/test/library-tests/cil/dataflow/DataFlow.ql +++ b/csharp/ql/test/library-tests/cil/dataflow/DataFlow.ql @@ -13,8 +13,8 @@ private predicate relevantPathNode(Flow::PathNode n) { ) } -query predicate edges(Flow::PathNode a, Flow::PathNode b) { - Flow::PathGraph::edges(a, b) and +query predicate edges(Flow::PathNode a, Flow::PathNode b, string key, string val) { + Flow::PathGraph::edges(a, b, key, val) and relevantPathNode(a) and relevantPathNode(b) } diff --git a/csharp/ql/test/library-tests/csharp7/GlobalFlow.expected b/csharp/ql/test/library-tests/csharp7/GlobalFlow.expected index e858c24758db..59e0fb54c328 100644 --- a/csharp/ql/test/library-tests/csharp7/GlobalFlow.expected +++ b/csharp/ql/test/library-tests/csharp7/GlobalFlow.expected @@ -1,27 +1,27 @@ edges -| CSharp7.cs:39:9:39:21 | SSA def(x) : String | CSharp7.cs:49:22:49:23 | SSA def(t1) : String | -| CSharp7.cs:39:13:39:21 | "tainted" : String | CSharp7.cs:39:9:39:21 | SSA def(x) : String | -| CSharp7.cs:42:19:42:19 | x : String | CSharp7.cs:44:9:44:13 | SSA def(y) : String | -| CSharp7.cs:49:22:49:23 | SSA def(t1) : String | CSharp7.cs:51:18:51:19 | access to local variable t1 | -| CSharp7.cs:55:11:55:19 | "tainted" : String | CSharp7.cs:42:19:42:19 | x : String | -| CSharp7.cs:55:11:55:19 | "tainted" : String | CSharp7.cs:55:30:55:31 | SSA def(t4) : String | -| CSharp7.cs:55:30:55:31 | SSA def(t4) : String | CSharp7.cs:56:18:56:19 | access to local variable t4 | -| CSharp7.cs:80:21:80:21 | x : String | CSharp7.cs:82:20:82:20 | access to parameter x : String | -| CSharp7.cs:82:16:82:24 | (..., ...) : ValueTuple [field Item1] : String | CSharp7.cs:82:16:82:26 | access to field Item1 : String | -| CSharp7.cs:82:20:82:20 | access to parameter x : String | CSharp7.cs:82:16:82:24 | (..., ...) : ValueTuple [field Item1] : String | -| CSharp7.cs:87:18:87:34 | (..., ...) : ValueTuple [field Item1] : String | CSharp7.cs:90:20:90:21 | access to local variable t1 : ValueTuple [field Item1] : String | -| CSharp7.cs:87:19:87:27 | "tainted" : String | CSharp7.cs:87:18:87:34 | (..., ...) : ValueTuple [field Item1] : String | -| CSharp7.cs:90:20:90:21 | access to local variable t1 : ValueTuple [field Item1] : String | CSharp7.cs:90:20:90:27 | access to field Item1 : String | -| CSharp7.cs:90:20:90:27 | access to field Item1 : String | CSharp7.cs:80:21:80:21 | x : String | -| CSharp7.cs:90:20:90:27 | access to field Item1 : String | CSharp7.cs:90:18:90:28 | call to method I | -| CSharp7.cs:175:22:175:30 | "tainted" : String | CSharp7.cs:181:23:181:25 | access to local variable src : String | -| CSharp7.cs:175:22:175:30 | "tainted" : String | CSharp7.cs:182:23:182:25 | access to local variable src : String | -| CSharp7.cs:177:25:177:25 | s : String | CSharp7.cs:177:31:177:31 | access to parameter s : String | -| CSharp7.cs:178:25:178:25 | s : String | CSharp7.cs:178:37:178:37 | access to parameter s : String | -| CSharp7.cs:181:23:181:25 | access to local variable src : String | CSharp7.cs:177:25:177:25 | s : String | -| CSharp7.cs:181:23:181:25 | access to local variable src : String | CSharp7.cs:181:21:181:26 | call to local function g | -| CSharp7.cs:182:23:182:25 | access to local variable src : String | CSharp7.cs:178:25:178:25 | s : String | -| CSharp7.cs:182:23:182:25 | access to local variable src : String | CSharp7.cs:182:21:182:26 | call to local function h | +| CSharp7.cs:39:9:39:21 | SSA def(x) : String | CSharp7.cs:49:22:49:23 | SSA def(t1) : String | provenance | | +| CSharp7.cs:39:13:39:21 | "tainted" : String | CSharp7.cs:39:9:39:21 | SSA def(x) : String | provenance | | +| CSharp7.cs:42:19:42:19 | x : String | CSharp7.cs:44:9:44:13 | SSA def(y) : String | provenance | | +| CSharp7.cs:49:22:49:23 | SSA def(t1) : String | CSharp7.cs:51:18:51:19 | access to local variable t1 | provenance | | +| CSharp7.cs:55:11:55:19 | "tainted" : String | CSharp7.cs:42:19:42:19 | x : String | provenance | | +| CSharp7.cs:55:11:55:19 | "tainted" : String | CSharp7.cs:55:30:55:31 | SSA def(t4) : String | provenance | | +| CSharp7.cs:55:30:55:31 | SSA def(t4) : String | CSharp7.cs:56:18:56:19 | access to local variable t4 | provenance | | +| CSharp7.cs:80:21:80:21 | x : String | CSharp7.cs:82:20:82:20 | access to parameter x : String | provenance | | +| CSharp7.cs:82:16:82:24 | (..., ...) : ValueTuple [field Item1] : String | CSharp7.cs:82:16:82:26 | access to field Item1 : String | provenance | | +| CSharp7.cs:82:20:82:20 | access to parameter x : String | CSharp7.cs:82:16:82:24 | (..., ...) : ValueTuple [field Item1] : String | provenance | | +| CSharp7.cs:87:18:87:34 | (..., ...) : ValueTuple [field Item1] : String | CSharp7.cs:90:20:90:21 | access to local variable t1 : ValueTuple [field Item1] : String | provenance | | +| CSharp7.cs:87:19:87:27 | "tainted" : String | CSharp7.cs:87:18:87:34 | (..., ...) : ValueTuple [field Item1] : String | provenance | | +| CSharp7.cs:90:20:90:21 | access to local variable t1 : ValueTuple [field Item1] : String | CSharp7.cs:90:20:90:27 | access to field Item1 : String | provenance | | +| CSharp7.cs:90:20:90:27 | access to field Item1 : String | CSharp7.cs:80:21:80:21 | x : String | provenance | | +| CSharp7.cs:90:20:90:27 | access to field Item1 : String | CSharp7.cs:90:18:90:28 | call to method I | provenance | | +| CSharp7.cs:175:22:175:30 | "tainted" : String | CSharp7.cs:181:23:181:25 | access to local variable src : String | provenance | | +| CSharp7.cs:175:22:175:30 | "tainted" : String | CSharp7.cs:182:23:182:25 | access to local variable src : String | provenance | | +| CSharp7.cs:177:25:177:25 | s : String | CSharp7.cs:177:31:177:31 | access to parameter s : String | provenance | | +| CSharp7.cs:178:25:178:25 | s : String | CSharp7.cs:178:37:178:37 | access to parameter s : String | provenance | | +| CSharp7.cs:181:23:181:25 | access to local variable src : String | CSharp7.cs:177:25:177:25 | s : String | provenance | | +| CSharp7.cs:181:23:181:25 | access to local variable src : String | CSharp7.cs:181:21:181:26 | call to local function g | provenance | | +| CSharp7.cs:182:23:182:25 | access to local variable src : String | CSharp7.cs:178:25:178:25 | s : String | provenance | | +| CSharp7.cs:182:23:182:25 | access to local variable src : String | CSharp7.cs:182:21:182:26 | call to local function h | provenance | | nodes | CSharp7.cs:39:9:39:21 | SSA def(x) : String | semmle.label | SSA def(x) : String | | CSharp7.cs:39:13:39:21 | "tainted" : String | semmle.label | "tainted" : String | diff --git a/csharp/ql/test/library-tests/csharp7/GlobalTaintTracking.expected b/csharp/ql/test/library-tests/csharp7/GlobalTaintTracking.expected index 04bb7095ec91..2cc4eb58cf93 100644 --- a/csharp/ql/test/library-tests/csharp7/GlobalTaintTracking.expected +++ b/csharp/ql/test/library-tests/csharp7/GlobalTaintTracking.expected @@ -1,34 +1,34 @@ edges -| CSharp7.cs:39:9:39:21 | SSA def(x) : String | CSharp7.cs:49:22:49:23 | SSA def(t1) : String | -| CSharp7.cs:39:13:39:21 | "tainted" : String | CSharp7.cs:39:9:39:21 | SSA def(x) : String | -| CSharp7.cs:42:19:42:19 | x : String | CSharp7.cs:44:9:44:13 | SSA def(y) : String | -| CSharp7.cs:49:22:49:23 | SSA def(t1) : String | CSharp7.cs:51:18:51:19 | access to local variable t1 | -| CSharp7.cs:55:11:55:19 | "tainted" : String | CSharp7.cs:42:19:42:19 | x : String | -| CSharp7.cs:55:11:55:19 | "tainted" : String | CSharp7.cs:55:30:55:31 | SSA def(t4) : String | -| CSharp7.cs:55:30:55:31 | SSA def(t4) : String | CSharp7.cs:56:18:56:19 | access to local variable t4 | -| CSharp7.cs:80:21:80:21 | x : String | CSharp7.cs:82:20:82:20 | access to parameter x : String | -| CSharp7.cs:82:16:82:24 | (..., ...) : ValueTuple [field Item1] : String | CSharp7.cs:82:16:82:26 | access to field Item1 : String | -| CSharp7.cs:82:20:82:20 | access to parameter x : String | CSharp7.cs:82:16:82:24 | (..., ...) : ValueTuple [field Item1] : String | -| CSharp7.cs:87:18:87:34 | (..., ...) : ValueTuple [field Item1] : String | CSharp7.cs:90:20:90:21 | access to local variable t1 : ValueTuple [field Item1] : String | -| CSharp7.cs:87:19:87:27 | "tainted" : String | CSharp7.cs:87:18:87:34 | (..., ...) : ValueTuple [field Item1] : String | -| CSharp7.cs:90:20:90:21 | access to local variable t1 : ValueTuple [field Item1] : String | CSharp7.cs:90:20:90:27 | access to field Item1 : String | -| CSharp7.cs:90:20:90:27 | access to field Item1 : String | CSharp7.cs:80:21:80:21 | x : String | -| CSharp7.cs:90:20:90:27 | access to field Item1 : String | CSharp7.cs:90:18:90:28 | call to method I | -| CSharp7.cs:175:22:175:30 | "tainted" : String | CSharp7.cs:180:23:180:25 | access to local variable src : String | -| CSharp7.cs:175:22:175:30 | "tainted" : String | CSharp7.cs:181:23:181:25 | access to local variable src : String | -| CSharp7.cs:175:22:175:30 | "tainted" : String | CSharp7.cs:182:23:182:25 | access to local variable src : String | -| CSharp7.cs:176:25:176:25 | s : String | CSharp7.cs:176:33:176:33 | access to parameter s : String | -| CSharp7.cs:176:31:176:34 | call to local function g : String | CSharp7.cs:176:31:176:39 | ... + ... : String | -| CSharp7.cs:176:33:176:33 | access to parameter s : String | CSharp7.cs:176:31:176:34 | call to local function g : String | -| CSharp7.cs:176:33:176:33 | access to parameter s : String | CSharp7.cs:177:25:177:25 | s : String | -| CSharp7.cs:177:25:177:25 | s : String | CSharp7.cs:177:31:177:31 | access to parameter s : String | -| CSharp7.cs:178:25:178:25 | s : String | CSharp7.cs:178:37:178:37 | access to parameter s : String | -| CSharp7.cs:180:23:180:25 | access to local variable src : String | CSharp7.cs:176:25:176:25 | s : String | -| CSharp7.cs:180:23:180:25 | access to local variable src : String | CSharp7.cs:180:21:180:26 | call to local function f | -| CSharp7.cs:181:23:181:25 | access to local variable src : String | CSharp7.cs:177:25:177:25 | s : String | -| CSharp7.cs:181:23:181:25 | access to local variable src : String | CSharp7.cs:181:21:181:26 | call to local function g | -| CSharp7.cs:182:23:182:25 | access to local variable src : String | CSharp7.cs:178:25:178:25 | s : String | -| CSharp7.cs:182:23:182:25 | access to local variable src : String | CSharp7.cs:182:21:182:26 | call to local function h | +| CSharp7.cs:39:9:39:21 | SSA def(x) : String | CSharp7.cs:49:22:49:23 | SSA def(t1) : String | provenance | | +| CSharp7.cs:39:13:39:21 | "tainted" : String | CSharp7.cs:39:9:39:21 | SSA def(x) : String | provenance | | +| CSharp7.cs:42:19:42:19 | x : String | CSharp7.cs:44:9:44:13 | SSA def(y) : String | provenance | | +| CSharp7.cs:49:22:49:23 | SSA def(t1) : String | CSharp7.cs:51:18:51:19 | access to local variable t1 | provenance | | +| CSharp7.cs:55:11:55:19 | "tainted" : String | CSharp7.cs:42:19:42:19 | x : String | provenance | | +| CSharp7.cs:55:11:55:19 | "tainted" : String | CSharp7.cs:55:30:55:31 | SSA def(t4) : String | provenance | | +| CSharp7.cs:55:30:55:31 | SSA def(t4) : String | CSharp7.cs:56:18:56:19 | access to local variable t4 | provenance | | +| CSharp7.cs:80:21:80:21 | x : String | CSharp7.cs:82:20:82:20 | access to parameter x : String | provenance | | +| CSharp7.cs:82:16:82:24 | (..., ...) : ValueTuple [field Item1] : String | CSharp7.cs:82:16:82:26 | access to field Item1 : String | provenance | | +| CSharp7.cs:82:20:82:20 | access to parameter x : String | CSharp7.cs:82:16:82:24 | (..., ...) : ValueTuple [field Item1] : String | provenance | | +| CSharp7.cs:87:18:87:34 | (..., ...) : ValueTuple [field Item1] : String | CSharp7.cs:90:20:90:21 | access to local variable t1 : ValueTuple [field Item1] : String | provenance | | +| CSharp7.cs:87:19:87:27 | "tainted" : String | CSharp7.cs:87:18:87:34 | (..., ...) : ValueTuple [field Item1] : String | provenance | | +| CSharp7.cs:90:20:90:21 | access to local variable t1 : ValueTuple [field Item1] : String | CSharp7.cs:90:20:90:27 | access to field Item1 : String | provenance | | +| CSharp7.cs:90:20:90:27 | access to field Item1 : String | CSharp7.cs:80:21:80:21 | x : String | provenance | | +| CSharp7.cs:90:20:90:27 | access to field Item1 : String | CSharp7.cs:90:18:90:28 | call to method I | provenance | | +| CSharp7.cs:175:22:175:30 | "tainted" : String | CSharp7.cs:180:23:180:25 | access to local variable src : String | provenance | | +| CSharp7.cs:175:22:175:30 | "tainted" : String | CSharp7.cs:181:23:181:25 | access to local variable src : String | provenance | | +| CSharp7.cs:175:22:175:30 | "tainted" : String | CSharp7.cs:182:23:182:25 | access to local variable src : String | provenance | | +| CSharp7.cs:176:25:176:25 | s : String | CSharp7.cs:176:33:176:33 | access to parameter s : String | provenance | | +| CSharp7.cs:176:31:176:34 | call to local function g : String | CSharp7.cs:176:31:176:39 | ... + ... : String | provenance | | +| CSharp7.cs:176:33:176:33 | access to parameter s : String | CSharp7.cs:176:31:176:34 | call to local function g : String | provenance | | +| CSharp7.cs:176:33:176:33 | access to parameter s : String | CSharp7.cs:177:25:177:25 | s : String | provenance | | +| CSharp7.cs:177:25:177:25 | s : String | CSharp7.cs:177:31:177:31 | access to parameter s : String | provenance | | +| CSharp7.cs:178:25:178:25 | s : String | CSharp7.cs:178:37:178:37 | access to parameter s : String | provenance | | +| CSharp7.cs:180:23:180:25 | access to local variable src : String | CSharp7.cs:176:25:176:25 | s : String | provenance | | +| CSharp7.cs:180:23:180:25 | access to local variable src : String | CSharp7.cs:180:21:180:26 | call to local function f | provenance | | +| CSharp7.cs:181:23:181:25 | access to local variable src : String | CSharp7.cs:177:25:177:25 | s : String | provenance | | +| CSharp7.cs:181:23:181:25 | access to local variable src : String | CSharp7.cs:181:21:181:26 | call to local function g | provenance | | +| CSharp7.cs:182:23:182:25 | access to local variable src : String | CSharp7.cs:178:25:178:25 | s : String | provenance | | +| CSharp7.cs:182:23:182:25 | access to local variable src : String | CSharp7.cs:182:21:182:26 | call to local function h | provenance | | nodes | CSharp7.cs:39:9:39:21 | SSA def(x) : String | semmle.label | SSA def(x) : String | | CSharp7.cs:39:13:39:21 | "tainted" : String | semmle.label | "tainted" : String | diff --git a/csharp/ql/test/library-tests/dataflow/async/Async.expected b/csharp/ql/test/library-tests/dataflow/async/Async.expected index 4fd0136cda04..ed0395fff0b3 100644 --- a/csharp/ql/test/library-tests/dataflow/async/Async.expected +++ b/csharp/ql/test/library-tests/dataflow/async/Async.expected @@ -1,39 +1,39 @@ edges -| Async.cs:9:37:9:41 | input : String | Async.cs:11:21:11:25 | access to parameter input : String | -| Async.cs:11:21:11:25 | access to parameter input : String | Async.cs:11:14:11:26 | call to method Return | -| Async.cs:11:21:11:25 | access to parameter input : String | Async.cs:14:34:14:34 | x : String | -| Async.cs:14:34:14:34 | x : String | Async.cs:16:16:16:16 | access to parameter x : String | -| Async.cs:14:34:14:34 | x : String | Async.cs:16:16:16:16 | access to parameter x : String | -| Async.cs:16:16:16:16 | access to parameter x : String | Async.cs:11:14:11:26 | call to method Return | -| Async.cs:19:41:19:45 | input : String | Async.cs:21:32:21:36 | access to parameter input : String | -| Async.cs:21:20:21:37 | call to method ReturnAwait : Task [property Result] : String | Async.cs:21:14:21:37 | await ... | -| Async.cs:21:32:21:36 | access to parameter input : String | Async.cs:21:20:21:37 | call to method ReturnAwait : Task [property Result] : String | -| Async.cs:21:32:21:36 | access to parameter input : String | Async.cs:35:51:35:51 | x : String | -| Async.cs:24:41:24:45 | input : String | Async.cs:26:35:26:39 | access to parameter input : String | -| Async.cs:26:17:26:40 | await ... : String | Async.cs:27:14:27:14 | access to local variable x | -| Async.cs:26:23:26:40 | call to method ReturnAwait : Task [property Result] : String | Async.cs:26:17:26:40 | await ... : String | -| Async.cs:26:35:26:39 | access to parameter input : String | Async.cs:26:23:26:40 | call to method ReturnAwait : Task [property Result] : String | -| Async.cs:26:35:26:39 | access to parameter input : String | Async.cs:35:51:35:51 | x : String | -| Async.cs:30:35:30:39 | input : String | Async.cs:32:27:32:31 | access to parameter input : String | -| Async.cs:32:14:32:32 | call to method ReturnAwait2 : Task [property Result] : String | Async.cs:32:14:32:39 | access to property Result | -| Async.cs:32:27:32:31 | access to parameter input : String | Async.cs:32:14:32:32 | call to method ReturnAwait2 : Task [property Result] : String | -| Async.cs:32:27:32:31 | access to parameter input : String | Async.cs:51:52:51:52 | x : String | -| Async.cs:35:51:35:51 | x : String | Async.cs:38:16:38:16 | access to parameter x : String | -| Async.cs:35:51:35:51 | x : String | Async.cs:38:16:38:16 | access to parameter x : String | -| Async.cs:38:16:38:16 | access to parameter x : String | Async.cs:21:20:21:37 | call to method ReturnAwait : Task [property Result] : String | -| Async.cs:38:16:38:16 | access to parameter x : String | Async.cs:26:23:26:40 | call to method ReturnAwait : Task [property Result] : String | -| Async.cs:41:33:41:37 | input : String | Async.cs:43:25:43:29 | access to parameter input : String | -| Async.cs:43:14:43:30 | call to method ReturnTask : Task [property Result] : String | Async.cs:43:14:43:37 | access to property Result | -| Async.cs:43:25:43:29 | access to parameter input : String | Async.cs:43:14:43:30 | call to method ReturnTask : Task [property Result] : String | -| Async.cs:43:25:43:29 | access to parameter input : String | Async.cs:46:44:46:44 | x : String | -| Async.cs:46:44:46:44 | x : String | Async.cs:48:32:48:32 | access to parameter x : String | -| Async.cs:46:44:46:44 | x : String | Async.cs:48:32:48:32 | access to parameter x : String | -| Async.cs:48:16:48:33 | call to method FromResult : Task [property Result] : String | Async.cs:43:14:43:30 | call to method ReturnTask : Task [property Result] : String | -| Async.cs:48:32:48:32 | access to parameter x : String | Async.cs:48:16:48:33 | call to method FromResult : Task [property Result] : String | -| Async.cs:48:32:48:32 | access to parameter x : String | Async.cs:48:16:48:33 | call to method FromResult : Task [property Result] : String | -| Async.cs:51:52:51:52 | x : String | Async.cs:51:58:51:58 | access to parameter x : String | -| Async.cs:51:52:51:52 | x : String | Async.cs:51:58:51:58 | access to parameter x : String | -| Async.cs:51:58:51:58 | access to parameter x : String | Async.cs:32:14:32:32 | call to method ReturnAwait2 : Task [property Result] : String | +| Async.cs:9:37:9:41 | input : String | Async.cs:11:21:11:25 | access to parameter input : String | provenance | | +| Async.cs:11:21:11:25 | access to parameter input : String | Async.cs:11:14:11:26 | call to method Return | provenance | | +| Async.cs:11:21:11:25 | access to parameter input : String | Async.cs:14:34:14:34 | x : String | provenance | | +| Async.cs:14:34:14:34 | x : String | Async.cs:16:16:16:16 | access to parameter x : String | provenance | | +| Async.cs:14:34:14:34 | x : String | Async.cs:16:16:16:16 | access to parameter x : String | provenance | | +| Async.cs:16:16:16:16 | access to parameter x : String | Async.cs:11:14:11:26 | call to method Return | provenance | | +| Async.cs:19:41:19:45 | input : String | Async.cs:21:32:21:36 | access to parameter input : String | provenance | | +| Async.cs:21:20:21:37 | call to method ReturnAwait : Task [property Result] : String | Async.cs:21:14:21:37 | await ... | provenance | | +| Async.cs:21:32:21:36 | access to parameter input : String | Async.cs:21:20:21:37 | call to method ReturnAwait : Task [property Result] : String | provenance | | +| Async.cs:21:32:21:36 | access to parameter input : String | Async.cs:35:51:35:51 | x : String | provenance | | +| Async.cs:24:41:24:45 | input : String | Async.cs:26:35:26:39 | access to parameter input : String | provenance | | +| Async.cs:26:17:26:40 | await ... : String | Async.cs:27:14:27:14 | access to local variable x | provenance | | +| Async.cs:26:23:26:40 | call to method ReturnAwait : Task [property Result] : String | Async.cs:26:17:26:40 | await ... : String | provenance | | +| Async.cs:26:35:26:39 | access to parameter input : String | Async.cs:26:23:26:40 | call to method ReturnAwait : Task [property Result] : String | provenance | | +| Async.cs:26:35:26:39 | access to parameter input : String | Async.cs:35:51:35:51 | x : String | provenance | | +| Async.cs:30:35:30:39 | input : String | Async.cs:32:27:32:31 | access to parameter input : String | provenance | | +| Async.cs:32:14:32:32 | call to method ReturnAwait2 : Task [property Result] : String | Async.cs:32:14:32:39 | access to property Result | provenance | | +| Async.cs:32:27:32:31 | access to parameter input : String | Async.cs:32:14:32:32 | call to method ReturnAwait2 : Task [property Result] : String | provenance | | +| Async.cs:32:27:32:31 | access to parameter input : String | Async.cs:51:52:51:52 | x : String | provenance | | +| Async.cs:35:51:35:51 | x : String | Async.cs:38:16:38:16 | access to parameter x : String | provenance | | +| Async.cs:35:51:35:51 | x : String | Async.cs:38:16:38:16 | access to parameter x : String | provenance | | +| Async.cs:38:16:38:16 | access to parameter x : String | Async.cs:21:20:21:37 | call to method ReturnAwait : Task [property Result] : String | provenance | | +| Async.cs:38:16:38:16 | access to parameter x : String | Async.cs:26:23:26:40 | call to method ReturnAwait : Task [property Result] : String | provenance | | +| Async.cs:41:33:41:37 | input : String | Async.cs:43:25:43:29 | access to parameter input : String | provenance | | +| Async.cs:43:14:43:30 | call to method ReturnTask : Task [property Result] : String | Async.cs:43:14:43:37 | access to property Result | provenance | | +| Async.cs:43:25:43:29 | access to parameter input : String | Async.cs:43:14:43:30 | call to method ReturnTask : Task [property Result] : String | provenance | | +| Async.cs:43:25:43:29 | access to parameter input : String | Async.cs:46:44:46:44 | x : String | provenance | | +| Async.cs:46:44:46:44 | x : String | Async.cs:48:32:48:32 | access to parameter x : String | provenance | | +| Async.cs:46:44:46:44 | x : String | Async.cs:48:32:48:32 | access to parameter x : String | provenance | | +| Async.cs:48:16:48:33 | call to method FromResult : Task [property Result] : String | Async.cs:43:14:43:30 | call to method ReturnTask : Task [property Result] : String | provenance | | +| Async.cs:48:32:48:32 | access to parameter x : String | Async.cs:48:16:48:33 | call to method FromResult : Task [property Result] : String | provenance | | +| Async.cs:48:32:48:32 | access to parameter x : String | Async.cs:48:16:48:33 | call to method FromResult : Task [property Result] : String | provenance | | +| Async.cs:51:52:51:52 | x : String | Async.cs:51:58:51:58 | access to parameter x : String | provenance | | +| Async.cs:51:52:51:52 | x : String | Async.cs:51:58:51:58 | access to parameter x : String | provenance | | +| Async.cs:51:58:51:58 | access to parameter x : String | Async.cs:32:14:32:32 | call to method ReturnAwait2 : Task [property Result] : String | provenance | | nodes | Async.cs:9:37:9:41 | input : String | semmle.label | input : String | | Async.cs:11:14:11:26 | call to method Return | semmle.label | call to method Return | diff --git a/csharp/ql/test/library-tests/dataflow/call-sensitivity/CallSensitivityFlow.expected b/csharp/ql/test/library-tests/dataflow/call-sensitivity/CallSensitivityFlow.expected index c7cc4c5f45f8..daf679b629a4 100644 --- a/csharp/ql/test/library-tests/dataflow/call-sensitivity/CallSensitivityFlow.expected +++ b/csharp/ql/test/library-tests/dataflow/call-sensitivity/CallSensitivityFlow.expected @@ -1,46 +1,46 @@ edges -| CallSensitivityFlow.cs:7:38:7:38 | o : Object | CallSensitivityFlow.cs:11:20:11:20 | access to parameter o : Object | -| CallSensitivityFlow.cs:7:38:7:38 | o : Object | CallSensitivityFlow.cs:11:20:11:20 | access to parameter o : Object | -| CallSensitivityFlow.cs:19:39:19:39 | o : Object | CallSensitivityFlow.cs:23:18:23:18 | access to parameter o | -| CallSensitivityFlow.cs:27:40:27:40 | o : Object | CallSensitivityFlow.cs:31:18:31:18 | access to parameter o | -| CallSensitivityFlow.cs:27:40:27:40 | o : Object | CallSensitivityFlow.cs:31:18:31:18 | access to parameter o | -| CallSensitivityFlow.cs:35:41:35:41 | o : Object | CallSensitivityFlow.cs:39:18:39:18 | [cond (line 35): true] access to parameter o | -| CallSensitivityFlow.cs:43:45:43:45 | o : Object | CallSensitivityFlow.cs:53:14:53:15 | access to local variable o3 | -| CallSensitivityFlow.cs:56:46:56:46 | o : Object | CallSensitivityFlow.cs:66:14:66:15 | access to local variable o3 | -| CallSensitivityFlow.cs:56:46:56:46 | o : Object | CallSensitivityFlow.cs:66:14:66:15 | access to local variable o3 | -| CallSensitivityFlow.cs:56:46:56:46 | o : Object | CallSensitivityFlow.cs:66:14:66:15 | access to local variable o3 | -| CallSensitivityFlow.cs:56:46:56:46 | o : Object | CallSensitivityFlow.cs:66:14:66:15 | access to local variable o3 | -| CallSensitivityFlow.cs:78:24:78:35 | object creation of type Object : Object | CallSensitivityFlow.cs:19:39:19:39 | o : Object | -| CallSensitivityFlow.cs:79:25:79:36 | object creation of type Object : Object | CallSensitivityFlow.cs:27:40:27:40 | o : Object | -| CallSensitivityFlow.cs:80:26:80:37 | object creation of type Object : Object | CallSensitivityFlow.cs:35:41:35:41 | o : Object | -| CallSensitivityFlow.cs:81:30:81:41 | object creation of type Object : Object | CallSensitivityFlow.cs:43:45:43:45 | o : Object | -| CallSensitivityFlow.cs:82:31:82:42 | object creation of type Object : Object | CallSensitivityFlow.cs:56:46:56:46 | o : Object | -| CallSensitivityFlow.cs:83:31:83:42 | object creation of type Object : Object | CallSensitivityFlow.cs:56:46:56:46 | o : Object | -| CallSensitivityFlow.cs:84:31:84:42 | object creation of type Object : Object | CallSensitivityFlow.cs:56:46:56:46 | o : Object | -| CallSensitivityFlow.cs:85:26:85:37 | object creation of type Object : Object | CallSensitivityFlow.cs:7:38:7:38 | o : Object | -| CallSensitivityFlow.cs:85:26:85:37 | object creation of type Object : Object | CallSensitivityFlow.cs:85:14:85:44 | call to method FlowThrough | -| CallSensitivityFlow.cs:87:31:87:42 | object creation of type Object : Object | CallSensitivityFlow.cs:56:46:56:46 | o : Object | -| CallSensitivityFlow.cs:101:24:101:35 | object creation of type Object : Object | CallSensitivityFlow.cs:19:39:19:39 | o : Object | -| CallSensitivityFlow.cs:102:25:102:36 | object creation of type Object : Object | CallSensitivityFlow.cs:27:40:27:40 | o : Object | -| CallSensitivityFlow.cs:103:26:103:37 | object creation of type Object : Object | CallSensitivityFlow.cs:35:41:35:41 | o : Object | -| CallSensitivityFlow.cs:104:30:104:41 | object creation of type Object : Object | CallSensitivityFlow.cs:43:45:43:45 | o : Object | -| CallSensitivityFlow.cs:105:26:105:37 | object creation of type Object : Object | CallSensitivityFlow.cs:7:38:7:38 | o : Object | -| CallSensitivityFlow.cs:105:26:105:37 | object creation of type Object : Object | CallSensitivityFlow.cs:105:14:105:41 | call to method FlowThrough | -| CallSensitivityFlow.cs:117:26:117:37 | object creation of type Object : Object | CallSensitivityFlow.cs:124:43:124:43 | o : Object | -| CallSensitivityFlow.cs:118:27:118:38 | object creation of type Object : Object | CallSensitivityFlow.cs:132:44:132:44 | o : Object | -| CallSensitivityFlow.cs:119:32:119:43 | object creation of type Object : Object | CallSensitivityFlow.cs:140:49:140:49 | o : Object | -| CallSensitivityFlow.cs:124:43:124:43 | o : Object | CallSensitivityFlow.cs:128:22:128:22 | access to parameter o | -| CallSensitivityFlow.cs:132:44:132:44 | o : Object | CallSensitivityFlow.cs:136:22:136:22 | access to parameter o | -| CallSensitivityFlow.cs:140:49:140:49 | o : Object | CallSensitivityFlow.cs:150:18:150:19 | access to local variable o3 | -| CallSensitivityFlow.cs:162:34:162:34 | o : Object | CallSensitivityFlow.cs:164:14:164:14 | access to parameter o | -| CallSensitivityFlow.cs:167:44:167:44 | o : Object | CallSensitivityFlow.cs:169:14:169:14 | access to parameter o : Object | -| CallSensitivityFlow.cs:169:14:169:14 | access to parameter o : Object | CallSensitivityFlow.cs:162:34:162:34 | o : Object | -| CallSensitivityFlow.cs:172:37:172:48 | object creation of type Object : Object | CallSensitivityFlow.cs:174:45:174:53 | call to method MOut : Object | -| CallSensitivityFlow.cs:174:45:174:53 | call to method MOut : Object | CallSensitivityFlow.cs:187:17:187:30 | call to method CallMOut : Object | -| CallSensitivityFlow.cs:182:21:182:32 | object creation of type Object : Object | CallSensitivityFlow.cs:205:40:205:40 | o : Object | -| CallSensitivityFlow.cs:185:21:185:32 | object creation of type Object : Object | CallSensitivityFlow.cs:167:44:167:44 | o : Object | -| CallSensitivityFlow.cs:187:17:187:30 | call to method CallMOut : Object | CallSensitivityFlow.cs:188:14:188:14 | access to local variable o | -| CallSensitivityFlow.cs:205:40:205:40 | o : Object | CallSensitivityFlow.cs:208:18:208:18 | access to parameter o | +| CallSensitivityFlow.cs:7:38:7:38 | o : Object | CallSensitivityFlow.cs:11:20:11:20 | access to parameter o : Object | provenance | | +| CallSensitivityFlow.cs:7:38:7:38 | o : Object | CallSensitivityFlow.cs:11:20:11:20 | access to parameter o : Object | provenance | | +| CallSensitivityFlow.cs:19:39:19:39 | o : Object | CallSensitivityFlow.cs:23:18:23:18 | access to parameter o | provenance | | +| CallSensitivityFlow.cs:27:40:27:40 | o : Object | CallSensitivityFlow.cs:31:18:31:18 | access to parameter o | provenance | | +| CallSensitivityFlow.cs:27:40:27:40 | o : Object | CallSensitivityFlow.cs:31:18:31:18 | access to parameter o | provenance | | +| CallSensitivityFlow.cs:35:41:35:41 | o : Object | CallSensitivityFlow.cs:39:18:39:18 | [cond (line 35): true] access to parameter o | provenance | | +| CallSensitivityFlow.cs:43:45:43:45 | o : Object | CallSensitivityFlow.cs:53:14:53:15 | access to local variable o3 | provenance | | +| CallSensitivityFlow.cs:56:46:56:46 | o : Object | CallSensitivityFlow.cs:66:14:66:15 | access to local variable o3 | provenance | | +| CallSensitivityFlow.cs:56:46:56:46 | o : Object | CallSensitivityFlow.cs:66:14:66:15 | access to local variable o3 | provenance | | +| CallSensitivityFlow.cs:56:46:56:46 | o : Object | CallSensitivityFlow.cs:66:14:66:15 | access to local variable o3 | provenance | | +| CallSensitivityFlow.cs:56:46:56:46 | o : Object | CallSensitivityFlow.cs:66:14:66:15 | access to local variable o3 | provenance | | +| CallSensitivityFlow.cs:78:24:78:35 | object creation of type Object : Object | CallSensitivityFlow.cs:19:39:19:39 | o : Object | provenance | | +| CallSensitivityFlow.cs:79:25:79:36 | object creation of type Object : Object | CallSensitivityFlow.cs:27:40:27:40 | o : Object | provenance | | +| CallSensitivityFlow.cs:80:26:80:37 | object creation of type Object : Object | CallSensitivityFlow.cs:35:41:35:41 | o : Object | provenance | | +| CallSensitivityFlow.cs:81:30:81:41 | object creation of type Object : Object | CallSensitivityFlow.cs:43:45:43:45 | o : Object | provenance | | +| CallSensitivityFlow.cs:82:31:82:42 | object creation of type Object : Object | CallSensitivityFlow.cs:56:46:56:46 | o : Object | provenance | | +| CallSensitivityFlow.cs:83:31:83:42 | object creation of type Object : Object | CallSensitivityFlow.cs:56:46:56:46 | o : Object | provenance | | +| CallSensitivityFlow.cs:84:31:84:42 | object creation of type Object : Object | CallSensitivityFlow.cs:56:46:56:46 | o : Object | provenance | | +| CallSensitivityFlow.cs:85:26:85:37 | object creation of type Object : Object | CallSensitivityFlow.cs:7:38:7:38 | o : Object | provenance | | +| CallSensitivityFlow.cs:85:26:85:37 | object creation of type Object : Object | CallSensitivityFlow.cs:85:14:85:44 | call to method FlowThrough | provenance | | +| CallSensitivityFlow.cs:87:31:87:42 | object creation of type Object : Object | CallSensitivityFlow.cs:56:46:56:46 | o : Object | provenance | | +| CallSensitivityFlow.cs:101:24:101:35 | object creation of type Object : Object | CallSensitivityFlow.cs:19:39:19:39 | o : Object | provenance | | +| CallSensitivityFlow.cs:102:25:102:36 | object creation of type Object : Object | CallSensitivityFlow.cs:27:40:27:40 | o : Object | provenance | | +| CallSensitivityFlow.cs:103:26:103:37 | object creation of type Object : Object | CallSensitivityFlow.cs:35:41:35:41 | o : Object | provenance | | +| CallSensitivityFlow.cs:104:30:104:41 | object creation of type Object : Object | CallSensitivityFlow.cs:43:45:43:45 | o : Object | provenance | | +| CallSensitivityFlow.cs:105:26:105:37 | object creation of type Object : Object | CallSensitivityFlow.cs:7:38:7:38 | o : Object | provenance | | +| CallSensitivityFlow.cs:105:26:105:37 | object creation of type Object : Object | CallSensitivityFlow.cs:105:14:105:41 | call to method FlowThrough | provenance | | +| CallSensitivityFlow.cs:117:26:117:37 | object creation of type Object : Object | CallSensitivityFlow.cs:124:43:124:43 | o : Object | provenance | | +| CallSensitivityFlow.cs:118:27:118:38 | object creation of type Object : Object | CallSensitivityFlow.cs:132:44:132:44 | o : Object | provenance | | +| CallSensitivityFlow.cs:119:32:119:43 | object creation of type Object : Object | CallSensitivityFlow.cs:140:49:140:49 | o : Object | provenance | | +| CallSensitivityFlow.cs:124:43:124:43 | o : Object | CallSensitivityFlow.cs:128:22:128:22 | access to parameter o | provenance | | +| CallSensitivityFlow.cs:132:44:132:44 | o : Object | CallSensitivityFlow.cs:136:22:136:22 | access to parameter o | provenance | | +| CallSensitivityFlow.cs:140:49:140:49 | o : Object | CallSensitivityFlow.cs:150:18:150:19 | access to local variable o3 | provenance | | +| CallSensitivityFlow.cs:162:34:162:34 | o : Object | CallSensitivityFlow.cs:164:14:164:14 | access to parameter o | provenance | | +| CallSensitivityFlow.cs:167:44:167:44 | o : Object | CallSensitivityFlow.cs:169:14:169:14 | access to parameter o : Object | provenance | | +| CallSensitivityFlow.cs:169:14:169:14 | access to parameter o : Object | CallSensitivityFlow.cs:162:34:162:34 | o : Object | provenance | | +| CallSensitivityFlow.cs:172:37:172:48 | object creation of type Object : Object | CallSensitivityFlow.cs:174:45:174:53 | call to method MOut : Object | provenance | | +| CallSensitivityFlow.cs:174:45:174:53 | call to method MOut : Object | CallSensitivityFlow.cs:187:17:187:30 | call to method CallMOut : Object | provenance | | +| CallSensitivityFlow.cs:182:21:182:32 | object creation of type Object : Object | CallSensitivityFlow.cs:205:40:205:40 | o : Object | provenance | | +| CallSensitivityFlow.cs:185:21:185:32 | object creation of type Object : Object | CallSensitivityFlow.cs:167:44:167:44 | o : Object | provenance | | +| CallSensitivityFlow.cs:187:17:187:30 | call to method CallMOut : Object | CallSensitivityFlow.cs:188:14:188:14 | access to local variable o | provenance | | +| CallSensitivityFlow.cs:205:40:205:40 | o : Object | CallSensitivityFlow.cs:208:18:208:18 | access to parameter o | provenance | | nodes | CallSensitivityFlow.cs:7:38:7:38 | o : Object | semmle.label | o : Object | | CallSensitivityFlow.cs:7:38:7:38 | o : Object | semmle.label | o : Object | diff --git a/csharp/ql/test/library-tests/dataflow/collections/CollectionFlow.expected b/csharp/ql/test/library-tests/dataflow/collections/CollectionFlow.expected index 4ecd3771cbf7..2aadd5b0bbf5 100644 --- a/csharp/ql/test/library-tests/dataflow/collections/CollectionFlow.expected +++ b/csharp/ql/test/library-tests/dataflow/collections/CollectionFlow.expected @@ -1,278 +1,278 @@ edges -| CollectionFlow.cs:14:40:14:41 | ts : A[] [element] : A | CollectionFlow.cs:14:52:14:53 | access to parameter ts : A[] [element] : A | -| CollectionFlow.cs:14:40:14:41 | ts : null [element] : A | CollectionFlow.cs:14:52:14:53 | access to parameter ts : null [element] : A | -| CollectionFlow.cs:14:52:14:53 | access to parameter ts : A[] [element] : A | CollectionFlow.cs:14:52:14:56 | access to array element | -| CollectionFlow.cs:14:52:14:53 | access to parameter ts : null [element] : A | CollectionFlow.cs:14:52:14:56 | access to array element | -| CollectionFlow.cs:16:49:16:52 | list : List [element] : A | CollectionFlow.cs:16:63:16:66 | access to parameter list : List [element] : A | -| CollectionFlow.cs:16:49:16:52 | list : List [element] : A | CollectionFlow.cs:16:63:16:66 | access to parameter list : List [element] : A | -| CollectionFlow.cs:16:49:16:52 | list : List [element] : A | CollectionFlow.cs:16:63:16:66 | access to parameter list : List [element] : A | -| CollectionFlow.cs:16:49:16:52 | list : List [element] : A | CollectionFlow.cs:16:63:16:66 | access to parameter list : List [element] : A | -| CollectionFlow.cs:16:63:16:66 | access to parameter list : List [element] : A | CollectionFlow.cs:16:63:16:69 | access to indexer | -| CollectionFlow.cs:16:63:16:66 | access to parameter list : List [element] : A | CollectionFlow.cs:16:63:16:69 | access to indexer | -| CollectionFlow.cs:16:63:16:66 | access to parameter list : List [element] : A | CollectionFlow.cs:16:63:16:69 | access to indexer | -| CollectionFlow.cs:16:63:16:66 | access to parameter list : List [element] : A | CollectionFlow.cs:16:63:16:69 | access to indexer | -| CollectionFlow.cs:18:61:18:64 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:18:75:18:78 | access to parameter dict : Dictionary [element, property Value] : A | -| CollectionFlow.cs:18:75:18:78 | access to parameter dict : Dictionary [element, property Value] : A | CollectionFlow.cs:18:75:18:81 | access to indexer | -| CollectionFlow.cs:20:59:20:62 | dict : Dictionary [element, property Key] : A | CollectionFlow.cs:20:73:20:76 | access to parameter dict : Dictionary [element, property Key] : A | -| CollectionFlow.cs:20:73:20:76 | access to parameter dict : Dictionary [element, property Key] : A | CollectionFlow.cs:20:73:20:81 | access to property Keys : ICollection [element] : A | -| CollectionFlow.cs:20:73:20:81 | access to property Keys : ICollection [element] : A | CollectionFlow.cs:20:73:20:89 | call to method First | -| CollectionFlow.cs:22:34:22:35 | ts : A[] [element] : A | CollectionFlow.cs:22:41:22:42 | access to parameter ts : A[] [element] : A | -| CollectionFlow.cs:22:34:22:35 | ts : null [element] : A | CollectionFlow.cs:22:41:22:42 | access to parameter ts : null [element] : A | -| CollectionFlow.cs:22:41:22:42 | access to parameter ts : A[] [element] : A | CollectionFlow.cs:22:41:22:45 | access to array element : A | -| CollectionFlow.cs:22:41:22:42 | access to parameter ts : null [element] : A | CollectionFlow.cs:22:41:22:45 | access to array element : A | -| CollectionFlow.cs:24:43:24:46 | list : List [element] : A | CollectionFlow.cs:24:52:24:55 | access to parameter list : List [element] : A | -| CollectionFlow.cs:24:43:24:46 | list : List [element] : A | CollectionFlow.cs:24:52:24:55 | access to parameter list : List [element] : A | -| CollectionFlow.cs:24:43:24:46 | list : List [element] : A | CollectionFlow.cs:24:52:24:55 | access to parameter list : List [element] : A | -| CollectionFlow.cs:24:43:24:46 | list : List [element] : A | CollectionFlow.cs:24:52:24:55 | access to parameter list : List [element] : A | -| CollectionFlow.cs:24:52:24:55 | access to parameter list : List [element] : A | CollectionFlow.cs:24:52:24:58 | access to indexer : A | -| CollectionFlow.cs:24:52:24:55 | access to parameter list : List [element] : A | CollectionFlow.cs:24:52:24:58 | access to indexer : A | -| CollectionFlow.cs:24:52:24:55 | access to parameter list : List [element] : A | CollectionFlow.cs:24:52:24:58 | access to indexer : A | -| CollectionFlow.cs:24:52:24:55 | access to parameter list : List [element] : A | CollectionFlow.cs:24:52:24:58 | access to indexer : A | -| CollectionFlow.cs:26:58:26:61 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:26:67:26:70 | access to parameter dict : Dictionary [element, property Value] : A | -| CollectionFlow.cs:26:67:26:70 | access to parameter dict : Dictionary [element, property Value] : A | CollectionFlow.cs:26:67:26:73 | access to indexer : A | -| CollectionFlow.cs:28:59:28:62 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:28:68:28:71 | access to parameter dict : Dictionary [element, property Value] : A | -| CollectionFlow.cs:28:68:28:71 | access to parameter dict : Dictionary [element, property Value] : A | CollectionFlow.cs:28:68:28:79 | call to method First> : KeyValuePair [property Value] : A | -| CollectionFlow.cs:28:68:28:79 | call to method First> : KeyValuePair [property Value] : A | CollectionFlow.cs:28:68:28:85 | access to property Value : A | -| CollectionFlow.cs:30:60:30:63 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:30:69:30:72 | access to parameter dict : Dictionary [element, property Value] : A | -| CollectionFlow.cs:30:69:30:72 | access to parameter dict : Dictionary [element, property Value] : A | CollectionFlow.cs:30:69:30:79 | access to property Values : ICollection [element] : A | -| CollectionFlow.cs:30:69:30:79 | access to property Values : ICollection [element] : A | CollectionFlow.cs:30:69:30:87 | call to method First : A | -| CollectionFlow.cs:32:58:32:61 | dict : Dictionary [element, property Key] : A | CollectionFlow.cs:32:67:32:70 | access to parameter dict : Dictionary [element, property Key] : A | -| CollectionFlow.cs:32:67:32:70 | access to parameter dict : Dictionary [element, property Key] : A | CollectionFlow.cs:32:67:32:75 | access to property Keys : ICollection [element] : A | -| CollectionFlow.cs:32:67:32:75 | access to property Keys : ICollection [element] : A | CollectionFlow.cs:32:67:32:83 | call to method First : A | -| CollectionFlow.cs:34:57:34:60 | dict : Dictionary [element, property Key] : A | CollectionFlow.cs:34:66:34:69 | access to parameter dict : Dictionary [element, property Key] : A | -| CollectionFlow.cs:34:66:34:69 | access to parameter dict : Dictionary [element, property Key] : A | CollectionFlow.cs:34:66:34:77 | call to method First> : KeyValuePair [property Key] : A | -| CollectionFlow.cs:34:66:34:77 | call to method First> : KeyValuePair [property Key] : A | CollectionFlow.cs:34:66:34:81 | access to property Key : A | -| CollectionFlow.cs:36:49:36:52 | args : A[] [element] : A | CollectionFlow.cs:36:63:36:66 | access to parameter args : A[] [element] : A | -| CollectionFlow.cs:36:49:36:52 | args : null [element] : A | CollectionFlow.cs:36:63:36:66 | access to parameter args : null [element] : A | -| CollectionFlow.cs:36:63:36:66 | access to parameter args : A[] [element] : A | CollectionFlow.cs:36:63:36:69 | access to array element | -| CollectionFlow.cs:36:63:36:66 | access to parameter args : null [element] : A | CollectionFlow.cs:36:63:36:69 | access to array element | -| CollectionFlow.cs:40:17:40:23 | object creation of type A : A | CollectionFlow.cs:41:27:41:27 | access to local variable a : A | -| CollectionFlow.cs:41:25:41:29 | { ..., ... } : null [element] : A | CollectionFlow.cs:42:14:42:16 | access to local variable as : null [element] : A | -| CollectionFlow.cs:41:25:41:29 | { ..., ... } : null [element] : A | CollectionFlow.cs:43:18:43:20 | access to local variable as : null [element] : A | -| CollectionFlow.cs:41:25:41:29 | { ..., ... } : null [element] : A | CollectionFlow.cs:44:20:44:22 | access to local variable as : null [element] : A | -| CollectionFlow.cs:41:27:41:27 | access to local variable a : A | CollectionFlow.cs:41:25:41:29 | { ..., ... } : null [element] : A | -| CollectionFlow.cs:42:14:42:16 | access to local variable as : null [element] : A | CollectionFlow.cs:42:14:42:19 | access to array element | -| CollectionFlow.cs:43:18:43:20 | access to local variable as : null [element] : A | CollectionFlow.cs:14:40:14:41 | ts : null [element] : A | -| CollectionFlow.cs:44:20:44:22 | access to local variable as : null [element] : A | CollectionFlow.cs:22:34:22:35 | ts : null [element] : A | -| CollectionFlow.cs:44:20:44:22 | access to local variable as : null [element] : A | CollectionFlow.cs:44:14:44:23 | call to method First | -| CollectionFlow.cs:58:17:58:23 | object creation of type A : A | CollectionFlow.cs:59:53:59:53 | access to local variable a : A | -| CollectionFlow.cs:59:38:59:57 | { ..., ... } : CollectionFlow [field As, element] : A | CollectionFlow.cs:60:14:60:14 | access to local variable c : CollectionFlow [field As, element] : A | -| CollectionFlow.cs:59:38:59:57 | { ..., ... } : CollectionFlow [field As, element] : A | CollectionFlow.cs:61:18:61:18 | access to local variable c : CollectionFlow [field As, element] : A | -| CollectionFlow.cs:59:38:59:57 | { ..., ... } : CollectionFlow [field As, element] : A | CollectionFlow.cs:62:20:62:20 | access to local variable c : CollectionFlow [field As, element] : A | -| CollectionFlow.cs:59:45:59:55 | { ..., ... } : A[] [element] : A | CollectionFlow.cs:59:38:59:57 | { ..., ... } : CollectionFlow [field As, element] : A | -| CollectionFlow.cs:59:53:59:53 | access to local variable a : A | CollectionFlow.cs:59:45:59:55 | { ..., ... } : A[] [element] : A | -| CollectionFlow.cs:60:14:60:14 | access to local variable c : CollectionFlow [field As, element] : A | CollectionFlow.cs:60:14:60:17 | access to field As : A[] [element] : A | -| CollectionFlow.cs:60:14:60:17 | access to field As : A[] [element] : A | CollectionFlow.cs:60:14:60:20 | access to array element | -| CollectionFlow.cs:61:18:61:18 | access to local variable c : CollectionFlow [field As, element] : A | CollectionFlow.cs:61:18:61:21 | access to field As : A[] [element] : A | -| CollectionFlow.cs:61:18:61:21 | access to field As : A[] [element] : A | CollectionFlow.cs:14:40:14:41 | ts : A[] [element] : A | -| CollectionFlow.cs:62:20:62:20 | access to local variable c : CollectionFlow [field As, element] : A | CollectionFlow.cs:62:20:62:23 | access to field As : A[] [element] : A | -| CollectionFlow.cs:62:20:62:23 | access to field As : A[] [element] : A | CollectionFlow.cs:22:34:22:35 | ts : A[] [element] : A | -| CollectionFlow.cs:62:20:62:23 | access to field As : A[] [element] : A | CollectionFlow.cs:62:14:62:24 | call to method First | -| CollectionFlow.cs:76:17:76:23 | object creation of type A : A | CollectionFlow.cs:78:18:78:18 | access to local variable a : A | -| CollectionFlow.cs:78:9:78:11 | [post] access to local variable as : A[] [element] : A | CollectionFlow.cs:79:14:79:16 | access to local variable as : A[] [element] : A | -| CollectionFlow.cs:78:9:78:11 | [post] access to local variable as : A[] [element] : A | CollectionFlow.cs:80:18:80:20 | access to local variable as : A[] [element] : A | -| CollectionFlow.cs:78:9:78:11 | [post] access to local variable as : A[] [element] : A | CollectionFlow.cs:81:20:81:22 | access to local variable as : A[] [element] : A | -| CollectionFlow.cs:78:18:78:18 | access to local variable a : A | CollectionFlow.cs:78:9:78:11 | [post] access to local variable as : A[] [element] : A | -| CollectionFlow.cs:79:14:79:16 | access to local variable as : A[] [element] : A | CollectionFlow.cs:79:14:79:19 | access to array element | -| CollectionFlow.cs:80:18:80:20 | access to local variable as : A[] [element] : A | CollectionFlow.cs:14:40:14:41 | ts : A[] [element] : A | -| CollectionFlow.cs:81:20:81:22 | access to local variable as : A[] [element] : A | CollectionFlow.cs:22:34:22:35 | ts : A[] [element] : A | -| CollectionFlow.cs:81:20:81:22 | access to local variable as : A[] [element] : A | CollectionFlow.cs:81:14:81:23 | call to method First | -| CollectionFlow.cs:96:17:96:23 | object creation of type A : A | CollectionFlow.cs:98:19:98:19 | access to local variable a : A | -| CollectionFlow.cs:98:9:98:12 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:99:14:99:17 | access to local variable list : List [element] : A | -| CollectionFlow.cs:98:9:98:12 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:100:22:100:25 | access to local variable list : List [element] : A | -| CollectionFlow.cs:98:9:98:12 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:101:24:101:27 | access to local variable list : List [element] : A | -| CollectionFlow.cs:98:19:98:19 | access to local variable a : A | CollectionFlow.cs:98:9:98:12 | [post] access to local variable list : List [element] : A | -| CollectionFlow.cs:99:14:99:17 | access to local variable list : List [element] : A | CollectionFlow.cs:99:14:99:20 | access to indexer | -| CollectionFlow.cs:100:22:100:25 | access to local variable list : List [element] : A | CollectionFlow.cs:16:49:16:52 | list : List [element] : A | -| CollectionFlow.cs:101:24:101:27 | access to local variable list : List [element] : A | CollectionFlow.cs:24:43:24:46 | list : List [element] : A | -| CollectionFlow.cs:101:24:101:27 | access to local variable list : List [element] : A | CollectionFlow.cs:101:14:101:28 | call to method ListFirst | -| CollectionFlow.cs:115:17:115:23 | object creation of type A : A | CollectionFlow.cs:116:36:116:36 | access to local variable a : A | -| CollectionFlow.cs:116:20:116:38 | object creation of type List : List [element] : A | CollectionFlow.cs:117:14:117:17 | access to local variable list : List [element] : A | -| CollectionFlow.cs:116:20:116:38 | object creation of type List : List [element] : A | CollectionFlow.cs:118:22:118:25 | access to local variable list : List [element] : A | -| CollectionFlow.cs:116:20:116:38 | object creation of type List : List [element] : A | CollectionFlow.cs:119:24:119:27 | access to local variable list : List [element] : A | -| CollectionFlow.cs:116:36:116:36 | access to local variable a : A | CollectionFlow.cs:116:20:116:38 | object creation of type List : List [element] : A | -| CollectionFlow.cs:117:14:117:17 | access to local variable list : List [element] : A | CollectionFlow.cs:117:14:117:20 | access to indexer | -| CollectionFlow.cs:118:22:118:25 | access to local variable list : List [element] : A | CollectionFlow.cs:16:49:16:52 | list : List [element] : A | -| CollectionFlow.cs:119:24:119:27 | access to local variable list : List [element] : A | CollectionFlow.cs:24:43:24:46 | list : List [element] : A | -| CollectionFlow.cs:119:24:119:27 | access to local variable list : List [element] : A | CollectionFlow.cs:119:14:119:28 | call to method ListFirst | -| CollectionFlow.cs:132:17:132:23 | object creation of type A : A | CollectionFlow.cs:134:18:134:18 | access to local variable a : A | -| CollectionFlow.cs:134:9:134:12 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:135:14:135:17 | access to local variable list : List [element] : A | -| CollectionFlow.cs:134:9:134:12 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:136:22:136:25 | access to local variable list : List [element] : A | -| CollectionFlow.cs:134:9:134:12 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:137:24:137:27 | access to local variable list : List [element] : A | -| CollectionFlow.cs:134:18:134:18 | access to local variable a : A | CollectionFlow.cs:134:9:134:12 | [post] access to local variable list : List [element] : A | -| CollectionFlow.cs:135:14:135:17 | access to local variable list : List [element] : A | CollectionFlow.cs:135:14:135:20 | access to indexer | -| CollectionFlow.cs:136:22:136:25 | access to local variable list : List [element] : A | CollectionFlow.cs:16:49:16:52 | list : List [element] : A | -| CollectionFlow.cs:137:24:137:27 | access to local variable list : List [element] : A | CollectionFlow.cs:24:43:24:46 | list : List [element] : A | -| CollectionFlow.cs:137:24:137:27 | access to local variable list : List [element] : A | CollectionFlow.cs:137:14:137:28 | call to method ListFirst | -| CollectionFlow.cs:151:17:151:23 | object creation of type A : A | CollectionFlow.cs:153:19:153:19 | access to local variable a : A | -| CollectionFlow.cs:153:9:153:12 | [post] access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:154:14:154:17 | access to local variable dict : Dictionary [element, property Value] : A | -| CollectionFlow.cs:153:9:153:12 | [post] access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:155:23:155:26 | access to local variable dict : Dictionary [element, property Value] : A | -| CollectionFlow.cs:153:9:153:12 | [post] access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:156:28:156:31 | access to local variable dict : Dictionary [element, property Value] : A | -| CollectionFlow.cs:153:9:153:12 | [post] access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:157:29:157:32 | access to local variable dict : Dictionary [element, property Value] : A | -| CollectionFlow.cs:153:9:153:12 | [post] access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:158:30:158:33 | access to local variable dict : Dictionary [element, property Value] : A | -| CollectionFlow.cs:153:19:153:19 | access to local variable a : A | CollectionFlow.cs:153:9:153:12 | [post] access to local variable dict : Dictionary [element, property Value] : A | -| CollectionFlow.cs:154:14:154:17 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:154:14:154:20 | access to indexer | -| CollectionFlow.cs:155:23:155:26 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:18:61:18:64 | dict : Dictionary [element, property Value] : A | -| CollectionFlow.cs:156:28:156:31 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:26:58:26:61 | dict : Dictionary [element, property Value] : A | -| CollectionFlow.cs:156:28:156:31 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:156:14:156:32 | call to method DictIndexZero | -| CollectionFlow.cs:157:29:157:32 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:28:59:28:62 | dict : Dictionary [element, property Value] : A | -| CollectionFlow.cs:157:29:157:32 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:157:14:157:33 | call to method DictFirstValue | -| CollectionFlow.cs:158:30:158:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:30:60:30:63 | dict : Dictionary [element, property Value] : A | -| CollectionFlow.cs:158:30:158:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:158:14:158:34 | call to method DictValuesFirst | -| CollectionFlow.cs:174:17:174:23 | object creation of type A : A | CollectionFlow.cs:175:52:175:52 | access to local variable a : A | -| CollectionFlow.cs:175:20:175:56 | object creation of type Dictionary : Dictionary [element, property Value] : A | CollectionFlow.cs:176:14:176:17 | access to local variable dict : Dictionary [element, property Value] : A | -| CollectionFlow.cs:175:20:175:56 | object creation of type Dictionary : Dictionary [element, property Value] : A | CollectionFlow.cs:177:23:177:26 | access to local variable dict : Dictionary [element, property Value] : A | -| CollectionFlow.cs:175:20:175:56 | object creation of type Dictionary : Dictionary [element, property Value] : A | CollectionFlow.cs:178:28:178:31 | access to local variable dict : Dictionary [element, property Value] : A | -| CollectionFlow.cs:175:20:175:56 | object creation of type Dictionary : Dictionary [element, property Value] : A | CollectionFlow.cs:179:29:179:32 | access to local variable dict : Dictionary [element, property Value] : A | -| CollectionFlow.cs:175:20:175:56 | object creation of type Dictionary : Dictionary [element, property Value] : A | CollectionFlow.cs:180:30:180:33 | access to local variable dict : Dictionary [element, property Value] : A | -| CollectionFlow.cs:175:52:175:52 | access to local variable a : A | CollectionFlow.cs:175:20:175:56 | object creation of type Dictionary : Dictionary [element, property Value] : A | -| CollectionFlow.cs:176:14:176:17 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:176:14:176:20 | access to indexer | -| CollectionFlow.cs:177:23:177:26 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:18:61:18:64 | dict : Dictionary [element, property Value] : A | -| CollectionFlow.cs:178:28:178:31 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:26:58:26:61 | dict : Dictionary [element, property Value] : A | -| CollectionFlow.cs:178:28:178:31 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:178:14:178:32 | call to method DictIndexZero | -| CollectionFlow.cs:179:29:179:32 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:28:59:28:62 | dict : Dictionary [element, property Value] : A | -| CollectionFlow.cs:179:29:179:32 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:179:14:179:33 | call to method DictFirstValue | -| CollectionFlow.cs:180:30:180:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:30:60:30:63 | dict : Dictionary [element, property Value] : A | -| CollectionFlow.cs:180:30:180:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:180:14:180:34 | call to method DictValuesFirst | -| CollectionFlow.cs:195:17:195:23 | object creation of type A : A | CollectionFlow.cs:196:53:196:53 | access to local variable a : A | -| CollectionFlow.cs:196:20:196:55 | object creation of type Dictionary : Dictionary [element, property Value] : A | CollectionFlow.cs:197:14:197:17 | access to local variable dict : Dictionary [element, property Value] : A | -| CollectionFlow.cs:196:20:196:55 | object creation of type Dictionary : Dictionary [element, property Value] : A | CollectionFlow.cs:198:23:198:26 | access to local variable dict : Dictionary [element, property Value] : A | -| CollectionFlow.cs:196:20:196:55 | object creation of type Dictionary : Dictionary [element, property Value] : A | CollectionFlow.cs:199:28:199:31 | access to local variable dict : Dictionary [element, property Value] : A | -| CollectionFlow.cs:196:20:196:55 | object creation of type Dictionary : Dictionary [element, property Value] : A | CollectionFlow.cs:200:29:200:32 | access to local variable dict : Dictionary [element, property Value] : A | -| CollectionFlow.cs:196:20:196:55 | object creation of type Dictionary : Dictionary [element, property Value] : A | CollectionFlow.cs:201:30:201:33 | access to local variable dict : Dictionary [element, property Value] : A | -| CollectionFlow.cs:196:53:196:53 | access to local variable a : A | CollectionFlow.cs:196:20:196:55 | object creation of type Dictionary : Dictionary [element, property Value] : A | -| CollectionFlow.cs:197:14:197:17 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:197:14:197:20 | access to indexer | -| CollectionFlow.cs:198:23:198:26 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:18:61:18:64 | dict : Dictionary [element, property Value] : A | -| CollectionFlow.cs:199:28:199:31 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:26:58:26:61 | dict : Dictionary [element, property Value] : A | -| CollectionFlow.cs:199:28:199:31 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:199:14:199:32 | call to method DictIndexZero | -| CollectionFlow.cs:200:29:200:32 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:28:59:28:62 | dict : Dictionary [element, property Value] : A | -| CollectionFlow.cs:200:29:200:32 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:200:14:200:33 | call to method DictFirstValue | -| CollectionFlow.cs:201:30:201:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:30:60:30:63 | dict : Dictionary [element, property Value] : A | -| CollectionFlow.cs:201:30:201:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:201:14:201:34 | call to method DictValuesFirst | -| CollectionFlow.cs:217:17:217:23 | object creation of type A : A | CollectionFlow.cs:218:49:218:49 | access to local variable a : A | -| CollectionFlow.cs:218:20:218:56 | object creation of type Dictionary : Dictionary [element, property Key] : A | CollectionFlow.cs:219:14:219:17 | access to local variable dict : Dictionary [element, property Key] : A | -| CollectionFlow.cs:218:20:218:56 | object creation of type Dictionary : Dictionary [element, property Key] : A | CollectionFlow.cs:220:21:220:24 | access to local variable dict : Dictionary [element, property Key] : A | -| CollectionFlow.cs:218:20:218:56 | object creation of type Dictionary : Dictionary [element, property Key] : A | CollectionFlow.cs:221:28:221:31 | access to local variable dict : Dictionary [element, property Key] : A | -| CollectionFlow.cs:218:20:218:56 | object creation of type Dictionary : Dictionary [element, property Key] : A | CollectionFlow.cs:222:27:222:30 | access to local variable dict : Dictionary [element, property Key] : A | -| CollectionFlow.cs:218:49:218:49 | access to local variable a : A | CollectionFlow.cs:218:20:218:56 | object creation of type Dictionary : Dictionary [element, property Key] : A | -| CollectionFlow.cs:219:14:219:17 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:219:14:219:22 | access to property Keys : Dictionary.KeyCollection [element] : A | -| CollectionFlow.cs:219:14:219:22 | access to property Keys : Dictionary.KeyCollection [element] : A | CollectionFlow.cs:219:14:219:30 | call to method First | -| CollectionFlow.cs:220:21:220:24 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:20:59:20:62 | dict : Dictionary [element, property Key] : A | -| CollectionFlow.cs:221:28:221:31 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:32:58:32:61 | dict : Dictionary [element, property Key] : A | -| CollectionFlow.cs:221:28:221:31 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:221:14:221:32 | call to method DictKeysFirst | -| CollectionFlow.cs:222:27:222:30 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:34:57:34:60 | dict : Dictionary [element, property Key] : A | -| CollectionFlow.cs:222:27:222:30 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:222:14:222:31 | call to method DictFirstKey | -| CollectionFlow.cs:236:17:236:23 | object creation of type A : A | CollectionFlow.cs:237:48:237:48 | access to local variable a : A | -| CollectionFlow.cs:237:20:237:55 | object creation of type Dictionary : Dictionary [element, property Key] : A | CollectionFlow.cs:238:14:238:17 | access to local variable dict : Dictionary [element, property Key] : A | -| CollectionFlow.cs:237:20:237:55 | object creation of type Dictionary : Dictionary [element, property Key] : A | CollectionFlow.cs:239:21:239:24 | access to local variable dict : Dictionary [element, property Key] : A | -| CollectionFlow.cs:237:20:237:55 | object creation of type Dictionary : Dictionary [element, property Key] : A | CollectionFlow.cs:240:28:240:31 | access to local variable dict : Dictionary [element, property Key] : A | -| CollectionFlow.cs:237:20:237:55 | object creation of type Dictionary : Dictionary [element, property Key] : A | CollectionFlow.cs:241:27:241:30 | access to local variable dict : Dictionary [element, property Key] : A | -| CollectionFlow.cs:237:48:237:48 | access to local variable a : A | CollectionFlow.cs:237:20:237:55 | object creation of type Dictionary : Dictionary [element, property Key] : A | -| CollectionFlow.cs:238:14:238:17 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:238:14:238:22 | access to property Keys : Dictionary.KeyCollection [element] : A | -| CollectionFlow.cs:238:14:238:22 | access to property Keys : Dictionary.KeyCollection [element] : A | CollectionFlow.cs:238:14:238:30 | call to method First | -| CollectionFlow.cs:239:21:239:24 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:20:59:20:62 | dict : Dictionary [element, property Key] : A | -| CollectionFlow.cs:240:28:240:31 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:32:58:32:61 | dict : Dictionary [element, property Key] : A | -| CollectionFlow.cs:240:28:240:31 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:240:14:240:32 | call to method DictKeysFirst | -| CollectionFlow.cs:241:27:241:30 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:34:57:34:60 | dict : Dictionary [element, property Key] : A | -| CollectionFlow.cs:241:27:241:30 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:241:14:241:31 | call to method DictFirstKey | -| CollectionFlow.cs:255:17:255:23 | object creation of type A : A | CollectionFlow.cs:256:27:256:27 | access to local variable a : A | -| CollectionFlow.cs:256:25:256:29 | { ..., ... } : null [element] : A | CollectionFlow.cs:257:27:257:29 | access to local variable as : null [element] : A | -| CollectionFlow.cs:256:27:256:27 | access to local variable a : A | CollectionFlow.cs:256:25:256:29 | { ..., ... } : null [element] : A | -| CollectionFlow.cs:257:22:257:22 | SSA def(x) : A | CollectionFlow.cs:258:18:258:18 | access to local variable x | -| CollectionFlow.cs:257:27:257:29 | access to local variable as : null [element] : A | CollectionFlow.cs:257:22:257:22 | SSA def(x) : A | -| CollectionFlow.cs:270:17:270:23 | object creation of type A : A | CollectionFlow.cs:271:27:271:27 | access to local variable a : A | -| CollectionFlow.cs:271:25:271:29 | { ..., ... } : null [element] : A | CollectionFlow.cs:272:26:272:28 | access to local variable as : null [element] : A | -| CollectionFlow.cs:271:27:271:27 | access to local variable a : A | CollectionFlow.cs:271:25:271:29 | { ..., ... } : null [element] : A | -| CollectionFlow.cs:272:26:272:28 | access to local variable as : null [element] : A | CollectionFlow.cs:272:26:272:44 | call to method GetEnumerator : IEnumerator [property Current] : A | -| CollectionFlow.cs:272:26:272:44 | call to method GetEnumerator : IEnumerator [property Current] : A | CollectionFlow.cs:274:18:274:27 | access to local variable enumerator : IEnumerator [property Current] : A | -| CollectionFlow.cs:274:18:274:27 | access to local variable enumerator : IEnumerator [property Current] : A | CollectionFlow.cs:274:18:274:35 | access to property Current | -| CollectionFlow.cs:287:17:287:23 | object creation of type A : A | CollectionFlow.cs:289:18:289:18 | access to local variable a : A | -| CollectionFlow.cs:289:9:289:12 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:290:26:290:29 | access to local variable list : List [element] : A | -| CollectionFlow.cs:289:18:289:18 | access to local variable a : A | CollectionFlow.cs:289:9:289:12 | [post] access to local variable list : List [element] : A | -| CollectionFlow.cs:290:26:290:29 | access to local variable list : List [element] : A | CollectionFlow.cs:290:26:290:45 | call to method GetEnumerator : List.Enumerator [property Current] : A | -| CollectionFlow.cs:290:26:290:45 | call to method GetEnumerator : List.Enumerator [property Current] : A | CollectionFlow.cs:292:18:292:27 | access to local variable enumerator : List.Enumerator [property Current] : A | -| CollectionFlow.cs:292:18:292:27 | access to local variable enumerator : List.Enumerator [property Current] : A | CollectionFlow.cs:292:18:292:35 | access to property Current | -| CollectionFlow.cs:306:17:306:23 | object creation of type A : A | CollectionFlow.cs:308:43:308:43 | access to local variable a : A | -| CollectionFlow.cs:308:9:308:12 | [post] access to local variable list : List [element, property Key] : A | CollectionFlow.cs:309:9:309:12 | access to local variable list : List [element, property Key] : A | -| CollectionFlow.cs:308:18:308:47 | object creation of type KeyValuePair : KeyValuePair [property Key] : A | CollectionFlow.cs:308:9:308:12 | [post] access to local variable list : List [element, property Key] : A | -| CollectionFlow.cs:308:43:308:43 | access to local variable a : A | CollectionFlow.cs:308:18:308:47 | object creation of type KeyValuePair : KeyValuePair [property Key] : A | -| CollectionFlow.cs:309:9:309:12 | access to local variable list : List [element, property Key] : A | CollectionFlow.cs:309:21:309:23 | kvp : KeyValuePair [property Key] : A | -| CollectionFlow.cs:309:21:309:23 | kvp : KeyValuePair [property Key] : A | CollectionFlow.cs:311:18:311:20 | access to parameter kvp : KeyValuePair [property Key] : A | -| CollectionFlow.cs:311:18:311:20 | access to parameter kvp : KeyValuePair [property Key] : A | CollectionFlow.cs:311:18:311:24 | access to property Key | -| CollectionFlow.cs:328:32:328:38 | element : A | CollectionFlow.cs:328:55:328:61 | access to parameter element : A | -| CollectionFlow.cs:328:55:328:61 | access to parameter element : A | CollectionFlow.cs:328:44:328:48 | [post] access to parameter array : A[] [element] : A | -| CollectionFlow.cs:332:17:332:23 | object creation of type A : A | CollectionFlow.cs:334:23:334:23 | access to local variable a : A | -| CollectionFlow.cs:334:18:334:20 | [post] access to local variable as : A[] [element] : A | CollectionFlow.cs:335:14:335:16 | access to local variable as : A[] [element] : A | -| CollectionFlow.cs:334:18:334:20 | [post] access to local variable as : A[] [element] : A | CollectionFlow.cs:336:18:336:20 | access to local variable as : A[] [element] : A | -| CollectionFlow.cs:334:18:334:20 | [post] access to local variable as : A[] [element] : A | CollectionFlow.cs:337:20:337:22 | access to local variable as : A[] [element] : A | -| CollectionFlow.cs:334:23:334:23 | access to local variable a : A | CollectionFlow.cs:328:32:328:38 | element : A | -| CollectionFlow.cs:334:23:334:23 | access to local variable a : A | CollectionFlow.cs:334:18:334:20 | [post] access to local variable as : A[] [element] : A | -| CollectionFlow.cs:335:14:335:16 | access to local variable as : A[] [element] : A | CollectionFlow.cs:335:14:335:19 | access to array element | -| CollectionFlow.cs:336:18:336:20 | access to local variable as : A[] [element] : A | CollectionFlow.cs:14:40:14:41 | ts : A[] [element] : A | -| CollectionFlow.cs:337:20:337:22 | access to local variable as : A[] [element] : A | CollectionFlow.cs:22:34:22:35 | ts : A[] [element] : A | -| CollectionFlow.cs:337:20:337:22 | access to local variable as : A[] [element] : A | CollectionFlow.cs:337:14:337:23 | call to method First | -| CollectionFlow.cs:350:34:350:40 | element : A | CollectionFlow.cs:350:55:350:61 | access to parameter element : A | -| CollectionFlow.cs:350:55:350:61 | access to parameter element : A | CollectionFlow.cs:350:46:350:49 | [post] access to parameter list : List [element] : A | -| CollectionFlow.cs:354:17:354:23 | object creation of type A : A | CollectionFlow.cs:356:23:356:23 | access to local variable a : A | -| CollectionFlow.cs:356:17:356:20 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:357:14:357:17 | access to local variable list : List [element] : A | -| CollectionFlow.cs:356:17:356:20 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:358:22:358:25 | access to local variable list : List [element] : A | -| CollectionFlow.cs:356:17:356:20 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:359:24:359:27 | access to local variable list : List [element] : A | -| CollectionFlow.cs:356:23:356:23 | access to local variable a : A | CollectionFlow.cs:350:34:350:40 | element : A | -| CollectionFlow.cs:356:23:356:23 | access to local variable a : A | CollectionFlow.cs:356:17:356:20 | [post] access to local variable list : List [element] : A | -| CollectionFlow.cs:357:14:357:17 | access to local variable list : List [element] : A | CollectionFlow.cs:357:14:357:20 | access to indexer | -| CollectionFlow.cs:358:22:358:25 | access to local variable list : List [element] : A | CollectionFlow.cs:16:49:16:52 | list : List [element] : A | -| CollectionFlow.cs:359:24:359:27 | access to local variable list : List [element] : A | CollectionFlow.cs:24:43:24:46 | list : List [element] : A | -| CollectionFlow.cs:359:24:359:27 | access to local variable list : List [element] : A | CollectionFlow.cs:359:14:359:28 | call to method ListFirst | -| CollectionFlow.cs:373:20:373:26 | object creation of type A : A | CollectionFlow.cs:36:49:36:52 | args : A[] [element] : A | -| CollectionFlow.cs:374:26:374:32 | object creation of type A : A | CollectionFlow.cs:36:49:36:52 | args : A[] [element] : A | -| CollectionFlow.cs:375:26:375:32 | object creation of type A : A | CollectionFlow.cs:36:49:36:52 | args : A[] [element] : A | -| CollectionFlow.cs:376:20:376:38 | array creation of type A[] : null [element] : A | CollectionFlow.cs:36:49:36:52 | args : null [element] : A | -| CollectionFlow.cs:376:28:376:38 | { ..., ... } : null [element] : A | CollectionFlow.cs:376:20:376:38 | array creation of type A[] : null [element] : A | -| CollectionFlow.cs:376:30:376:36 | object creation of type A : A | CollectionFlow.cs:376:28:376:38 | { ..., ... } : null [element] : A | -| CollectionFlow.cs:406:17:406:23 | object creation of type A : A | CollectionFlow.cs:408:20:408:20 | access to local variable a : A | -| CollectionFlow.cs:408:9:408:13 | [post] access to local variable array : MyInlineArray [element] : A | CollectionFlow.cs:409:14:409:18 | access to local variable array : MyInlineArray [element] : A | -| CollectionFlow.cs:408:20:408:20 | access to local variable a : A | CollectionFlow.cs:408:9:408:13 | [post] access to local variable array : MyInlineArray [element] : A | -| CollectionFlow.cs:409:14:409:18 | access to local variable array : MyInlineArray [element] : A | CollectionFlow.cs:409:14:409:21 | access to array element | -| CollectionFlow.cs:427:17:427:23 | object creation of type A : A | CollectionFlow.cs:428:22:428:22 | access to local variable a : A | -| CollectionFlow.cs:428:21:428:23 | [...] : A[] [element] : A | CollectionFlow.cs:429:14:429:18 | access to local variable array : A[] [element] : A | -| CollectionFlow.cs:428:22:428:22 | access to local variable a : A | CollectionFlow.cs:428:21:428:23 | [...] : A[] [element] : A | -| CollectionFlow.cs:429:14:429:18 | access to local variable array : A[] [element] : A | CollectionFlow.cs:429:14:429:21 | access to array element | -| CollectionFlow.cs:434:17:434:23 | object creation of type A : A | CollectionFlow.cs:435:22:435:22 | access to local variable a : A | -| CollectionFlow.cs:435:21:435:23 | [...] : List [element] : A | CollectionFlow.cs:436:14:436:14 | access to local variable l : List [element] : A | -| CollectionFlow.cs:435:22:435:22 | access to local variable a : A | CollectionFlow.cs:435:21:435:23 | [...] : List [element] : A | -| CollectionFlow.cs:436:14:436:14 | access to local variable l : List [element] : A | CollectionFlow.cs:436:14:436:17 | access to indexer | -| CollectionFlow.cs:447:17:447:23 | object creation of type A : A | CollectionFlow.cs:448:21:448:21 | access to local variable a : A | -| CollectionFlow.cs:448:20:448:22 | [...] : A[] [element] : A | CollectionFlow.cs:449:22:449:28 | .. access to local variable temp : A[] [element] : A | -| CollectionFlow.cs:448:21:448:21 | access to local variable a : A | CollectionFlow.cs:448:20:448:22 | [...] : A[] [element] : A | -| CollectionFlow.cs:449:22:449:28 | .. access to local variable temp : A[] [element] : A | CollectionFlow.cs:450:14:450:18 | access to local variable array : A[] [element] : A | -| CollectionFlow.cs:450:14:450:18 | access to local variable array : A[] [element] : A | CollectionFlow.cs:450:14:450:21 | access to array element | -| CollectionFlow.cs:487:17:487:23 | object creation of type A : A | CollectionFlow.cs:488:40:488:40 | access to local variable a : A | -| CollectionFlow.cs:488:24:488:41 | object creation of type Span : Span [element] : A | CollectionFlow.cs:489:14:489:17 | access to local variable span : Span [element] : A | -| CollectionFlow.cs:488:40:488:40 | access to local variable a : A | CollectionFlow.cs:488:24:488:41 | object creation of type Span : Span [element] : A | -| CollectionFlow.cs:489:14:489:17 | access to local variable span : Span [element] : A | CollectionFlow.cs:489:14:489:20 | access to indexer | -| CollectionFlow.cs:494:17:494:23 | object creation of type A : A | CollectionFlow.cs:495:40:495:40 | access to local variable a : A | -| CollectionFlow.cs:495:24:495:41 | object creation of type Span : Span [element] : A | CollectionFlow.cs:496:19:496:22 | access to local variable span : Span [element] : A | -| CollectionFlow.cs:495:40:495:40 | access to local variable a : A | CollectionFlow.cs:495:24:495:41 | object creation of type Span : Span [element] : A | -| CollectionFlow.cs:496:19:496:22 | access to local variable span : Span [element] : A | CollectionFlow.cs:496:19:496:32 | call to method ToArray : T[] [element] : A | -| CollectionFlow.cs:496:19:496:32 | call to method ToArray : T[] [element] : A | CollectionFlow.cs:497:14:497:16 | access to local variable arr : T[] [element] : A | -| CollectionFlow.cs:497:14:497:16 | access to local variable arr : T[] [element] : A | CollectionFlow.cs:497:14:497:19 | access to array element | -| CollectionFlow.cs:502:17:502:23 | object creation of type A : A | CollectionFlow.cs:503:21:503:21 | access to local variable a : A | -| CollectionFlow.cs:503:9:503:14 | [post] access to parameter target : Span [element] : A | CollectionFlow.cs:504:14:504:19 | access to parameter target : Span [element] : A | -| CollectionFlow.cs:503:21:503:21 | access to local variable a : A | CollectionFlow.cs:503:9:503:14 | [post] access to parameter target : Span [element] : A | -| CollectionFlow.cs:504:14:504:19 | access to parameter target : Span [element] : A | CollectionFlow.cs:504:14:504:22 | access to indexer | -| CollectionFlow.cs:509:22:509:51 | object creation of type Span : Span [element] : A | CollectionFlow.cs:510:9:510:14 | access to local variable source : Span [element] : A | -| CollectionFlow.cs:509:34:509:50 | array creation of type A[] : null [element] : A | CollectionFlow.cs:509:22:509:51 | object creation of type Span : Span [element] : A | -| CollectionFlow.cs:509:40:509:50 | { ..., ... } : null [element] : A | CollectionFlow.cs:509:34:509:50 | array creation of type A[] : null [element] : A | -| CollectionFlow.cs:509:42:509:48 | object creation of type A : A | CollectionFlow.cs:509:40:509:50 | { ..., ... } : null [element] : A | -| CollectionFlow.cs:510:9:510:14 | access to local variable source : Span [element] : A | CollectionFlow.cs:510:23:510:28 | [post] access to parameter target : Span [element] : A | -| CollectionFlow.cs:510:23:510:28 | [post] access to parameter target : Span [element] : A | CollectionFlow.cs:511:14:511:19 | access to parameter target : Span [element] : A | -| CollectionFlow.cs:511:14:511:19 | access to parameter target : Span [element] : A | CollectionFlow.cs:511:14:511:22 | access to indexer | -| CollectionFlow.cs:516:17:516:23 | object creation of type A : A | CollectionFlow.cs:517:60:517:60 | access to local variable a : A | -| CollectionFlow.cs:517:32:517:63 | object creation of type ReadOnlySpan : ReadOnlySpan [element] : A | CollectionFlow.cs:518:14:518:17 | access to local variable span : ReadOnlySpan [element] : A | -| CollectionFlow.cs:517:52:517:62 | array creation of type A[] : null [element] : A | CollectionFlow.cs:517:32:517:63 | object creation of type ReadOnlySpan : ReadOnlySpan [element] : A | -| CollectionFlow.cs:517:58:517:62 | { ..., ... } : null [element] : A | CollectionFlow.cs:517:52:517:62 | array creation of type A[] : null [element] : A | -| CollectionFlow.cs:517:60:517:60 | access to local variable a : A | CollectionFlow.cs:517:58:517:62 | { ..., ... } : null [element] : A | -| CollectionFlow.cs:518:14:518:17 | access to local variable span : ReadOnlySpan [element] : A | CollectionFlow.cs:518:14:518:20 | access to indexer | +| CollectionFlow.cs:14:40:14:41 | ts : A[] [element] : A | CollectionFlow.cs:14:52:14:53 | access to parameter ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:14:40:14:41 | ts : null [element] : A | CollectionFlow.cs:14:52:14:53 | access to parameter ts : null [element] : A | provenance | | +| CollectionFlow.cs:14:52:14:53 | access to parameter ts : A[] [element] : A | CollectionFlow.cs:14:52:14:56 | access to array element | provenance | | +| CollectionFlow.cs:14:52:14:53 | access to parameter ts : null [element] : A | CollectionFlow.cs:14:52:14:56 | access to array element | provenance | | +| CollectionFlow.cs:16:49:16:52 | list : List [element] : A | CollectionFlow.cs:16:63:16:66 | access to parameter list : List [element] : A | provenance | | +| CollectionFlow.cs:16:49:16:52 | list : List [element] : A | CollectionFlow.cs:16:63:16:66 | access to parameter list : List [element] : A | provenance | | +| CollectionFlow.cs:16:49:16:52 | list : List [element] : A | CollectionFlow.cs:16:63:16:66 | access to parameter list : List [element] : A | provenance | | +| CollectionFlow.cs:16:49:16:52 | list : List [element] : A | CollectionFlow.cs:16:63:16:66 | access to parameter list : List [element] : A | provenance | | +| CollectionFlow.cs:16:63:16:66 | access to parameter list : List [element] : A | CollectionFlow.cs:16:63:16:69 | access to indexer | provenance | | +| CollectionFlow.cs:16:63:16:66 | access to parameter list : List [element] : A | CollectionFlow.cs:16:63:16:69 | access to indexer | provenance | | +| CollectionFlow.cs:16:63:16:66 | access to parameter list : List [element] : A | CollectionFlow.cs:16:63:16:69 | access to indexer | provenance | | +| CollectionFlow.cs:16:63:16:66 | access to parameter list : List [element] : A | CollectionFlow.cs:16:63:16:69 | access to indexer | provenance | | +| CollectionFlow.cs:18:61:18:64 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:18:75:18:78 | access to parameter dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:18:75:18:78 | access to parameter dict : Dictionary [element, property Value] : A | CollectionFlow.cs:18:75:18:81 | access to indexer | provenance | | +| CollectionFlow.cs:20:59:20:62 | dict : Dictionary [element, property Key] : A | CollectionFlow.cs:20:73:20:76 | access to parameter dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:20:73:20:76 | access to parameter dict : Dictionary [element, property Key] : A | CollectionFlow.cs:20:73:20:81 | access to property Keys : ICollection [element] : A | provenance | | +| CollectionFlow.cs:20:73:20:81 | access to property Keys : ICollection [element] : A | CollectionFlow.cs:20:73:20:89 | call to method First | provenance | | +| CollectionFlow.cs:22:34:22:35 | ts : A[] [element] : A | CollectionFlow.cs:22:41:22:42 | access to parameter ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:22:34:22:35 | ts : null [element] : A | CollectionFlow.cs:22:41:22:42 | access to parameter ts : null [element] : A | provenance | | +| CollectionFlow.cs:22:41:22:42 | access to parameter ts : A[] [element] : A | CollectionFlow.cs:22:41:22:45 | access to array element : A | provenance | | +| CollectionFlow.cs:22:41:22:42 | access to parameter ts : null [element] : A | CollectionFlow.cs:22:41:22:45 | access to array element : A | provenance | | +| CollectionFlow.cs:24:43:24:46 | list : List [element] : A | CollectionFlow.cs:24:52:24:55 | access to parameter list : List [element] : A | provenance | | +| CollectionFlow.cs:24:43:24:46 | list : List [element] : A | CollectionFlow.cs:24:52:24:55 | access to parameter list : List [element] : A | provenance | | +| CollectionFlow.cs:24:43:24:46 | list : List [element] : A | CollectionFlow.cs:24:52:24:55 | access to parameter list : List [element] : A | provenance | | +| CollectionFlow.cs:24:43:24:46 | list : List [element] : A | CollectionFlow.cs:24:52:24:55 | access to parameter list : List [element] : A | provenance | | +| CollectionFlow.cs:24:52:24:55 | access to parameter list : List [element] : A | CollectionFlow.cs:24:52:24:58 | access to indexer : A | provenance | | +| CollectionFlow.cs:24:52:24:55 | access to parameter list : List [element] : A | CollectionFlow.cs:24:52:24:58 | access to indexer : A | provenance | | +| CollectionFlow.cs:24:52:24:55 | access to parameter list : List [element] : A | CollectionFlow.cs:24:52:24:58 | access to indexer : A | provenance | | +| CollectionFlow.cs:24:52:24:55 | access to parameter list : List [element] : A | CollectionFlow.cs:24:52:24:58 | access to indexer : A | provenance | | +| CollectionFlow.cs:26:58:26:61 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:26:67:26:70 | access to parameter dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:26:67:26:70 | access to parameter dict : Dictionary [element, property Value] : A | CollectionFlow.cs:26:67:26:73 | access to indexer : A | provenance | | +| CollectionFlow.cs:28:59:28:62 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:28:68:28:71 | access to parameter dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:28:68:28:71 | access to parameter dict : Dictionary [element, property Value] : A | CollectionFlow.cs:28:68:28:79 | call to method First> : KeyValuePair [property Value] : A | provenance | | +| CollectionFlow.cs:28:68:28:79 | call to method First> : KeyValuePair [property Value] : A | CollectionFlow.cs:28:68:28:85 | access to property Value : A | provenance | | +| CollectionFlow.cs:30:60:30:63 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:30:69:30:72 | access to parameter dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:30:69:30:72 | access to parameter dict : Dictionary [element, property Value] : A | CollectionFlow.cs:30:69:30:79 | access to property Values : ICollection [element] : A | provenance | | +| CollectionFlow.cs:30:69:30:79 | access to property Values : ICollection [element] : A | CollectionFlow.cs:30:69:30:87 | call to method First : A | provenance | | +| CollectionFlow.cs:32:58:32:61 | dict : Dictionary [element, property Key] : A | CollectionFlow.cs:32:67:32:70 | access to parameter dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:32:67:32:70 | access to parameter dict : Dictionary [element, property Key] : A | CollectionFlow.cs:32:67:32:75 | access to property Keys : ICollection [element] : A | provenance | | +| CollectionFlow.cs:32:67:32:75 | access to property Keys : ICollection [element] : A | CollectionFlow.cs:32:67:32:83 | call to method First : A | provenance | | +| CollectionFlow.cs:34:57:34:60 | dict : Dictionary [element, property Key] : A | CollectionFlow.cs:34:66:34:69 | access to parameter dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:34:66:34:69 | access to parameter dict : Dictionary [element, property Key] : A | CollectionFlow.cs:34:66:34:77 | call to method First> : KeyValuePair [property Key] : A | provenance | | +| CollectionFlow.cs:34:66:34:77 | call to method First> : KeyValuePair [property Key] : A | CollectionFlow.cs:34:66:34:81 | access to property Key : A | provenance | | +| CollectionFlow.cs:36:49:36:52 | args : A[] [element] : A | CollectionFlow.cs:36:63:36:66 | access to parameter args : A[] [element] : A | provenance | | +| CollectionFlow.cs:36:49:36:52 | args : null [element] : A | CollectionFlow.cs:36:63:36:66 | access to parameter args : null [element] : A | provenance | | +| CollectionFlow.cs:36:63:36:66 | access to parameter args : A[] [element] : A | CollectionFlow.cs:36:63:36:69 | access to array element | provenance | | +| CollectionFlow.cs:36:63:36:66 | access to parameter args : null [element] : A | CollectionFlow.cs:36:63:36:69 | access to array element | provenance | | +| CollectionFlow.cs:40:17:40:23 | object creation of type A : A | CollectionFlow.cs:41:27:41:27 | access to local variable a : A | provenance | | +| CollectionFlow.cs:41:25:41:29 | { ..., ... } : null [element] : A | CollectionFlow.cs:42:14:42:16 | access to local variable as : null [element] : A | provenance | | +| CollectionFlow.cs:41:25:41:29 | { ..., ... } : null [element] : A | CollectionFlow.cs:43:18:43:20 | access to local variable as : null [element] : A | provenance | | +| CollectionFlow.cs:41:25:41:29 | { ..., ... } : null [element] : A | CollectionFlow.cs:44:20:44:22 | access to local variable as : null [element] : A | provenance | | +| CollectionFlow.cs:41:27:41:27 | access to local variable a : A | CollectionFlow.cs:41:25:41:29 | { ..., ... } : null [element] : A | provenance | | +| CollectionFlow.cs:42:14:42:16 | access to local variable as : null [element] : A | CollectionFlow.cs:42:14:42:19 | access to array element | provenance | | +| CollectionFlow.cs:43:18:43:20 | access to local variable as : null [element] : A | CollectionFlow.cs:14:40:14:41 | ts : null [element] : A | provenance | | +| CollectionFlow.cs:44:20:44:22 | access to local variable as : null [element] : A | CollectionFlow.cs:22:34:22:35 | ts : null [element] : A | provenance | | +| CollectionFlow.cs:44:20:44:22 | access to local variable as : null [element] : A | CollectionFlow.cs:44:14:44:23 | call to method First | provenance | | +| CollectionFlow.cs:58:17:58:23 | object creation of type A : A | CollectionFlow.cs:59:53:59:53 | access to local variable a : A | provenance | | +| CollectionFlow.cs:59:38:59:57 | { ..., ... } : CollectionFlow [field As, element] : A | CollectionFlow.cs:60:14:60:14 | access to local variable c : CollectionFlow [field As, element] : A | provenance | | +| CollectionFlow.cs:59:38:59:57 | { ..., ... } : CollectionFlow [field As, element] : A | CollectionFlow.cs:61:18:61:18 | access to local variable c : CollectionFlow [field As, element] : A | provenance | | +| CollectionFlow.cs:59:38:59:57 | { ..., ... } : CollectionFlow [field As, element] : A | CollectionFlow.cs:62:20:62:20 | access to local variable c : CollectionFlow [field As, element] : A | provenance | | +| CollectionFlow.cs:59:45:59:55 | { ..., ... } : A[] [element] : A | CollectionFlow.cs:59:38:59:57 | { ..., ... } : CollectionFlow [field As, element] : A | provenance | | +| CollectionFlow.cs:59:53:59:53 | access to local variable a : A | CollectionFlow.cs:59:45:59:55 | { ..., ... } : A[] [element] : A | provenance | | +| CollectionFlow.cs:60:14:60:14 | access to local variable c : CollectionFlow [field As, element] : A | CollectionFlow.cs:60:14:60:17 | access to field As : A[] [element] : A | provenance | | +| CollectionFlow.cs:60:14:60:17 | access to field As : A[] [element] : A | CollectionFlow.cs:60:14:60:20 | access to array element | provenance | | +| CollectionFlow.cs:61:18:61:18 | access to local variable c : CollectionFlow [field As, element] : A | CollectionFlow.cs:61:18:61:21 | access to field As : A[] [element] : A | provenance | | +| CollectionFlow.cs:61:18:61:21 | access to field As : A[] [element] : A | CollectionFlow.cs:14:40:14:41 | ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:62:20:62:20 | access to local variable c : CollectionFlow [field As, element] : A | CollectionFlow.cs:62:20:62:23 | access to field As : A[] [element] : A | provenance | | +| CollectionFlow.cs:62:20:62:23 | access to field As : A[] [element] : A | CollectionFlow.cs:22:34:22:35 | ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:62:20:62:23 | access to field As : A[] [element] : A | CollectionFlow.cs:62:14:62:24 | call to method First | provenance | | +| CollectionFlow.cs:76:17:76:23 | object creation of type A : A | CollectionFlow.cs:78:18:78:18 | access to local variable a : A | provenance | | +| CollectionFlow.cs:78:9:78:11 | [post] access to local variable as : A[] [element] : A | CollectionFlow.cs:79:14:79:16 | access to local variable as : A[] [element] : A | provenance | | +| CollectionFlow.cs:78:9:78:11 | [post] access to local variable as : A[] [element] : A | CollectionFlow.cs:80:18:80:20 | access to local variable as : A[] [element] : A | provenance | | +| CollectionFlow.cs:78:9:78:11 | [post] access to local variable as : A[] [element] : A | CollectionFlow.cs:81:20:81:22 | access to local variable as : A[] [element] : A | provenance | | +| CollectionFlow.cs:78:18:78:18 | access to local variable a : A | CollectionFlow.cs:78:9:78:11 | [post] access to local variable as : A[] [element] : A | provenance | | +| CollectionFlow.cs:79:14:79:16 | access to local variable as : A[] [element] : A | CollectionFlow.cs:79:14:79:19 | access to array element | provenance | | +| CollectionFlow.cs:80:18:80:20 | access to local variable as : A[] [element] : A | CollectionFlow.cs:14:40:14:41 | ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:81:20:81:22 | access to local variable as : A[] [element] : A | CollectionFlow.cs:22:34:22:35 | ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:81:20:81:22 | access to local variable as : A[] [element] : A | CollectionFlow.cs:81:14:81:23 | call to method First | provenance | | +| CollectionFlow.cs:96:17:96:23 | object creation of type A : A | CollectionFlow.cs:98:19:98:19 | access to local variable a : A | provenance | | +| CollectionFlow.cs:98:9:98:12 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:99:14:99:17 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:98:9:98:12 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:100:22:100:25 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:98:9:98:12 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:101:24:101:27 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:98:19:98:19 | access to local variable a : A | CollectionFlow.cs:98:9:98:12 | [post] access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:99:14:99:17 | access to local variable list : List [element] : A | CollectionFlow.cs:99:14:99:20 | access to indexer | provenance | | +| CollectionFlow.cs:100:22:100:25 | access to local variable list : List [element] : A | CollectionFlow.cs:16:49:16:52 | list : List [element] : A | provenance | | +| CollectionFlow.cs:101:24:101:27 | access to local variable list : List [element] : A | CollectionFlow.cs:24:43:24:46 | list : List [element] : A | provenance | | +| CollectionFlow.cs:101:24:101:27 | access to local variable list : List [element] : A | CollectionFlow.cs:101:14:101:28 | call to method ListFirst | provenance | | +| CollectionFlow.cs:115:17:115:23 | object creation of type A : A | CollectionFlow.cs:116:36:116:36 | access to local variable a : A | provenance | | +| CollectionFlow.cs:116:20:116:38 | object creation of type List : List [element] : A | CollectionFlow.cs:117:14:117:17 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:116:20:116:38 | object creation of type List : List [element] : A | CollectionFlow.cs:118:22:118:25 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:116:20:116:38 | object creation of type List : List [element] : A | CollectionFlow.cs:119:24:119:27 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:116:36:116:36 | access to local variable a : A | CollectionFlow.cs:116:20:116:38 | object creation of type List : List [element] : A | provenance | | +| CollectionFlow.cs:117:14:117:17 | access to local variable list : List [element] : A | CollectionFlow.cs:117:14:117:20 | access to indexer | provenance | | +| CollectionFlow.cs:118:22:118:25 | access to local variable list : List [element] : A | CollectionFlow.cs:16:49:16:52 | list : List [element] : A | provenance | | +| CollectionFlow.cs:119:24:119:27 | access to local variable list : List [element] : A | CollectionFlow.cs:24:43:24:46 | list : List [element] : A | provenance | | +| CollectionFlow.cs:119:24:119:27 | access to local variable list : List [element] : A | CollectionFlow.cs:119:14:119:28 | call to method ListFirst | provenance | | +| CollectionFlow.cs:132:17:132:23 | object creation of type A : A | CollectionFlow.cs:134:18:134:18 | access to local variable a : A | provenance | | +| CollectionFlow.cs:134:9:134:12 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:135:14:135:17 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:134:9:134:12 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:136:22:136:25 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:134:9:134:12 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:137:24:137:27 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:134:18:134:18 | access to local variable a : A | CollectionFlow.cs:134:9:134:12 | [post] access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:135:14:135:17 | access to local variable list : List [element] : A | CollectionFlow.cs:135:14:135:20 | access to indexer | provenance | | +| CollectionFlow.cs:136:22:136:25 | access to local variable list : List [element] : A | CollectionFlow.cs:16:49:16:52 | list : List [element] : A | provenance | | +| CollectionFlow.cs:137:24:137:27 | access to local variable list : List [element] : A | CollectionFlow.cs:24:43:24:46 | list : List [element] : A | provenance | | +| CollectionFlow.cs:137:24:137:27 | access to local variable list : List [element] : A | CollectionFlow.cs:137:14:137:28 | call to method ListFirst | provenance | | +| CollectionFlow.cs:151:17:151:23 | object creation of type A : A | CollectionFlow.cs:153:19:153:19 | access to local variable a : A | provenance | | +| CollectionFlow.cs:153:9:153:12 | [post] access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:154:14:154:17 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:153:9:153:12 | [post] access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:155:23:155:26 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:153:9:153:12 | [post] access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:156:28:156:31 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:153:9:153:12 | [post] access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:157:29:157:32 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:153:9:153:12 | [post] access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:158:30:158:33 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:153:19:153:19 | access to local variable a : A | CollectionFlow.cs:153:9:153:12 | [post] access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:154:14:154:17 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:154:14:154:20 | access to indexer | provenance | | +| CollectionFlow.cs:155:23:155:26 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:18:61:18:64 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:156:28:156:31 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:26:58:26:61 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:156:28:156:31 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:156:14:156:32 | call to method DictIndexZero | provenance | | +| CollectionFlow.cs:157:29:157:32 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:28:59:28:62 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:157:29:157:32 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:157:14:157:33 | call to method DictFirstValue | provenance | | +| CollectionFlow.cs:158:30:158:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:30:60:30:63 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:158:30:158:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:158:14:158:34 | call to method DictValuesFirst | provenance | | +| CollectionFlow.cs:174:17:174:23 | object creation of type A : A | CollectionFlow.cs:175:52:175:52 | access to local variable a : A | provenance | | +| CollectionFlow.cs:175:20:175:56 | object creation of type Dictionary : Dictionary [element, property Value] : A | CollectionFlow.cs:176:14:176:17 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:175:20:175:56 | object creation of type Dictionary : Dictionary [element, property Value] : A | CollectionFlow.cs:177:23:177:26 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:175:20:175:56 | object creation of type Dictionary : Dictionary [element, property Value] : A | CollectionFlow.cs:178:28:178:31 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:175:20:175:56 | object creation of type Dictionary : Dictionary [element, property Value] : A | CollectionFlow.cs:179:29:179:32 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:175:20:175:56 | object creation of type Dictionary : Dictionary [element, property Value] : A | CollectionFlow.cs:180:30:180:33 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:175:52:175:52 | access to local variable a : A | CollectionFlow.cs:175:20:175:56 | object creation of type Dictionary : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:176:14:176:17 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:176:14:176:20 | access to indexer | provenance | | +| CollectionFlow.cs:177:23:177:26 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:18:61:18:64 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:178:28:178:31 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:26:58:26:61 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:178:28:178:31 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:178:14:178:32 | call to method DictIndexZero | provenance | | +| CollectionFlow.cs:179:29:179:32 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:28:59:28:62 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:179:29:179:32 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:179:14:179:33 | call to method DictFirstValue | provenance | | +| CollectionFlow.cs:180:30:180:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:30:60:30:63 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:180:30:180:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:180:14:180:34 | call to method DictValuesFirst | provenance | | +| CollectionFlow.cs:195:17:195:23 | object creation of type A : A | CollectionFlow.cs:196:53:196:53 | access to local variable a : A | provenance | | +| CollectionFlow.cs:196:20:196:55 | object creation of type Dictionary : Dictionary [element, property Value] : A | CollectionFlow.cs:197:14:197:17 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:196:20:196:55 | object creation of type Dictionary : Dictionary [element, property Value] : A | CollectionFlow.cs:198:23:198:26 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:196:20:196:55 | object creation of type Dictionary : Dictionary [element, property Value] : A | CollectionFlow.cs:199:28:199:31 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:196:20:196:55 | object creation of type Dictionary : Dictionary [element, property Value] : A | CollectionFlow.cs:200:29:200:32 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:196:20:196:55 | object creation of type Dictionary : Dictionary [element, property Value] : A | CollectionFlow.cs:201:30:201:33 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:196:53:196:53 | access to local variable a : A | CollectionFlow.cs:196:20:196:55 | object creation of type Dictionary : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:197:14:197:17 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:197:14:197:20 | access to indexer | provenance | | +| CollectionFlow.cs:198:23:198:26 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:18:61:18:64 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:199:28:199:31 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:26:58:26:61 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:199:28:199:31 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:199:14:199:32 | call to method DictIndexZero | provenance | | +| CollectionFlow.cs:200:29:200:32 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:28:59:28:62 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:200:29:200:32 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:200:14:200:33 | call to method DictFirstValue | provenance | | +| CollectionFlow.cs:201:30:201:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:30:60:30:63 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:201:30:201:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:201:14:201:34 | call to method DictValuesFirst | provenance | | +| CollectionFlow.cs:217:17:217:23 | object creation of type A : A | CollectionFlow.cs:218:49:218:49 | access to local variable a : A | provenance | | +| CollectionFlow.cs:218:20:218:56 | object creation of type Dictionary : Dictionary [element, property Key] : A | CollectionFlow.cs:219:14:219:17 | access to local variable dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:218:20:218:56 | object creation of type Dictionary : Dictionary [element, property Key] : A | CollectionFlow.cs:220:21:220:24 | access to local variable dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:218:20:218:56 | object creation of type Dictionary : Dictionary [element, property Key] : A | CollectionFlow.cs:221:28:221:31 | access to local variable dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:218:20:218:56 | object creation of type Dictionary : Dictionary [element, property Key] : A | CollectionFlow.cs:222:27:222:30 | access to local variable dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:218:49:218:49 | access to local variable a : A | CollectionFlow.cs:218:20:218:56 | object creation of type Dictionary : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:219:14:219:17 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:219:14:219:22 | access to property Keys : Dictionary.KeyCollection [element] : A | provenance | | +| CollectionFlow.cs:219:14:219:22 | access to property Keys : Dictionary.KeyCollection [element] : A | CollectionFlow.cs:219:14:219:30 | call to method First | provenance | | +| CollectionFlow.cs:220:21:220:24 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:20:59:20:62 | dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:221:28:221:31 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:32:58:32:61 | dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:221:28:221:31 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:221:14:221:32 | call to method DictKeysFirst | provenance | | +| CollectionFlow.cs:222:27:222:30 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:34:57:34:60 | dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:222:27:222:30 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:222:14:222:31 | call to method DictFirstKey | provenance | | +| CollectionFlow.cs:236:17:236:23 | object creation of type A : A | CollectionFlow.cs:237:48:237:48 | access to local variable a : A | provenance | | +| CollectionFlow.cs:237:20:237:55 | object creation of type Dictionary : Dictionary [element, property Key] : A | CollectionFlow.cs:238:14:238:17 | access to local variable dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:237:20:237:55 | object creation of type Dictionary : Dictionary [element, property Key] : A | CollectionFlow.cs:239:21:239:24 | access to local variable dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:237:20:237:55 | object creation of type Dictionary : Dictionary [element, property Key] : A | CollectionFlow.cs:240:28:240:31 | access to local variable dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:237:20:237:55 | object creation of type Dictionary : Dictionary [element, property Key] : A | CollectionFlow.cs:241:27:241:30 | access to local variable dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:237:48:237:48 | access to local variable a : A | CollectionFlow.cs:237:20:237:55 | object creation of type Dictionary : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:238:14:238:17 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:238:14:238:22 | access to property Keys : Dictionary.KeyCollection [element] : A | provenance | | +| CollectionFlow.cs:238:14:238:22 | access to property Keys : Dictionary.KeyCollection [element] : A | CollectionFlow.cs:238:14:238:30 | call to method First | provenance | | +| CollectionFlow.cs:239:21:239:24 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:20:59:20:62 | dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:240:28:240:31 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:32:58:32:61 | dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:240:28:240:31 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:240:14:240:32 | call to method DictKeysFirst | provenance | | +| CollectionFlow.cs:241:27:241:30 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:34:57:34:60 | dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:241:27:241:30 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:241:14:241:31 | call to method DictFirstKey | provenance | | +| CollectionFlow.cs:255:17:255:23 | object creation of type A : A | CollectionFlow.cs:256:27:256:27 | access to local variable a : A | provenance | | +| CollectionFlow.cs:256:25:256:29 | { ..., ... } : null [element] : A | CollectionFlow.cs:257:27:257:29 | access to local variable as : null [element] : A | provenance | | +| CollectionFlow.cs:256:27:256:27 | access to local variable a : A | CollectionFlow.cs:256:25:256:29 | { ..., ... } : null [element] : A | provenance | | +| CollectionFlow.cs:257:22:257:22 | SSA def(x) : A | CollectionFlow.cs:258:18:258:18 | access to local variable x | provenance | | +| CollectionFlow.cs:257:27:257:29 | access to local variable as : null [element] : A | CollectionFlow.cs:257:22:257:22 | SSA def(x) : A | provenance | | +| CollectionFlow.cs:270:17:270:23 | object creation of type A : A | CollectionFlow.cs:271:27:271:27 | access to local variable a : A | provenance | | +| CollectionFlow.cs:271:25:271:29 | { ..., ... } : null [element] : A | CollectionFlow.cs:272:26:272:28 | access to local variable as : null [element] : A | provenance | | +| CollectionFlow.cs:271:27:271:27 | access to local variable a : A | CollectionFlow.cs:271:25:271:29 | { ..., ... } : null [element] : A | provenance | | +| CollectionFlow.cs:272:26:272:28 | access to local variable as : null [element] : A | CollectionFlow.cs:272:26:272:44 | call to method GetEnumerator : IEnumerator [property Current] : A | provenance | | +| CollectionFlow.cs:272:26:272:44 | call to method GetEnumerator : IEnumerator [property Current] : A | CollectionFlow.cs:274:18:274:27 | access to local variable enumerator : IEnumerator [property Current] : A | provenance | | +| CollectionFlow.cs:274:18:274:27 | access to local variable enumerator : IEnumerator [property Current] : A | CollectionFlow.cs:274:18:274:35 | access to property Current | provenance | | +| CollectionFlow.cs:287:17:287:23 | object creation of type A : A | CollectionFlow.cs:289:18:289:18 | access to local variable a : A | provenance | | +| CollectionFlow.cs:289:9:289:12 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:290:26:290:29 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:289:18:289:18 | access to local variable a : A | CollectionFlow.cs:289:9:289:12 | [post] access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:290:26:290:29 | access to local variable list : List [element] : A | CollectionFlow.cs:290:26:290:45 | call to method GetEnumerator : List.Enumerator [property Current] : A | provenance | | +| CollectionFlow.cs:290:26:290:45 | call to method GetEnumerator : List.Enumerator [property Current] : A | CollectionFlow.cs:292:18:292:27 | access to local variable enumerator : List.Enumerator [property Current] : A | provenance | | +| CollectionFlow.cs:292:18:292:27 | access to local variable enumerator : List.Enumerator [property Current] : A | CollectionFlow.cs:292:18:292:35 | access to property Current | provenance | | +| CollectionFlow.cs:306:17:306:23 | object creation of type A : A | CollectionFlow.cs:308:43:308:43 | access to local variable a : A | provenance | | +| CollectionFlow.cs:308:9:308:12 | [post] access to local variable list : List [element, property Key] : A | CollectionFlow.cs:309:9:309:12 | access to local variable list : List [element, property Key] : A | provenance | | +| CollectionFlow.cs:308:18:308:47 | object creation of type KeyValuePair : KeyValuePair [property Key] : A | CollectionFlow.cs:308:9:308:12 | [post] access to local variable list : List [element, property Key] : A | provenance | | +| CollectionFlow.cs:308:43:308:43 | access to local variable a : A | CollectionFlow.cs:308:18:308:47 | object creation of type KeyValuePair : KeyValuePair [property Key] : A | provenance | | +| CollectionFlow.cs:309:9:309:12 | access to local variable list : List [element, property Key] : A | CollectionFlow.cs:309:21:309:23 | kvp : KeyValuePair [property Key] : A | provenance | | +| CollectionFlow.cs:309:21:309:23 | kvp : KeyValuePair [property Key] : A | CollectionFlow.cs:311:18:311:20 | access to parameter kvp : KeyValuePair [property Key] : A | provenance | | +| CollectionFlow.cs:311:18:311:20 | access to parameter kvp : KeyValuePair [property Key] : A | CollectionFlow.cs:311:18:311:24 | access to property Key | provenance | | +| CollectionFlow.cs:328:32:328:38 | element : A | CollectionFlow.cs:328:55:328:61 | access to parameter element : A | provenance | | +| CollectionFlow.cs:328:55:328:61 | access to parameter element : A | CollectionFlow.cs:328:44:328:48 | [post] access to parameter array : A[] [element] : A | provenance | | +| CollectionFlow.cs:332:17:332:23 | object creation of type A : A | CollectionFlow.cs:334:23:334:23 | access to local variable a : A | provenance | | +| CollectionFlow.cs:334:18:334:20 | [post] access to local variable as : A[] [element] : A | CollectionFlow.cs:335:14:335:16 | access to local variable as : A[] [element] : A | provenance | | +| CollectionFlow.cs:334:18:334:20 | [post] access to local variable as : A[] [element] : A | CollectionFlow.cs:336:18:336:20 | access to local variable as : A[] [element] : A | provenance | | +| CollectionFlow.cs:334:18:334:20 | [post] access to local variable as : A[] [element] : A | CollectionFlow.cs:337:20:337:22 | access to local variable as : A[] [element] : A | provenance | | +| CollectionFlow.cs:334:23:334:23 | access to local variable a : A | CollectionFlow.cs:328:32:328:38 | element : A | provenance | | +| CollectionFlow.cs:334:23:334:23 | access to local variable a : A | CollectionFlow.cs:334:18:334:20 | [post] access to local variable as : A[] [element] : A | provenance | | +| CollectionFlow.cs:335:14:335:16 | access to local variable as : A[] [element] : A | CollectionFlow.cs:335:14:335:19 | access to array element | provenance | | +| CollectionFlow.cs:336:18:336:20 | access to local variable as : A[] [element] : A | CollectionFlow.cs:14:40:14:41 | ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:337:20:337:22 | access to local variable as : A[] [element] : A | CollectionFlow.cs:22:34:22:35 | ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:337:20:337:22 | access to local variable as : A[] [element] : A | CollectionFlow.cs:337:14:337:23 | call to method First | provenance | | +| CollectionFlow.cs:350:34:350:40 | element : A | CollectionFlow.cs:350:55:350:61 | access to parameter element : A | provenance | | +| CollectionFlow.cs:350:55:350:61 | access to parameter element : A | CollectionFlow.cs:350:46:350:49 | [post] access to parameter list : List [element] : A | provenance | | +| CollectionFlow.cs:354:17:354:23 | object creation of type A : A | CollectionFlow.cs:356:23:356:23 | access to local variable a : A | provenance | | +| CollectionFlow.cs:356:17:356:20 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:357:14:357:17 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:356:17:356:20 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:358:22:358:25 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:356:17:356:20 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:359:24:359:27 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:356:23:356:23 | access to local variable a : A | CollectionFlow.cs:350:34:350:40 | element : A | provenance | | +| CollectionFlow.cs:356:23:356:23 | access to local variable a : A | CollectionFlow.cs:356:17:356:20 | [post] access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:357:14:357:17 | access to local variable list : List [element] : A | CollectionFlow.cs:357:14:357:20 | access to indexer | provenance | | +| CollectionFlow.cs:358:22:358:25 | access to local variable list : List [element] : A | CollectionFlow.cs:16:49:16:52 | list : List [element] : A | provenance | | +| CollectionFlow.cs:359:24:359:27 | access to local variable list : List [element] : A | CollectionFlow.cs:24:43:24:46 | list : List [element] : A | provenance | | +| CollectionFlow.cs:359:24:359:27 | access to local variable list : List [element] : A | CollectionFlow.cs:359:14:359:28 | call to method ListFirst | provenance | | +| CollectionFlow.cs:373:20:373:26 | object creation of type A : A | CollectionFlow.cs:36:49:36:52 | args : A[] [element] : A | provenance | | +| CollectionFlow.cs:374:26:374:32 | object creation of type A : A | CollectionFlow.cs:36:49:36:52 | args : A[] [element] : A | provenance | | +| CollectionFlow.cs:375:26:375:32 | object creation of type A : A | CollectionFlow.cs:36:49:36:52 | args : A[] [element] : A | provenance | | +| CollectionFlow.cs:376:20:376:38 | array creation of type A[] : null [element] : A | CollectionFlow.cs:36:49:36:52 | args : null [element] : A | provenance | | +| CollectionFlow.cs:376:28:376:38 | { ..., ... } : null [element] : A | CollectionFlow.cs:376:20:376:38 | array creation of type A[] : null [element] : A | provenance | | +| CollectionFlow.cs:376:30:376:36 | object creation of type A : A | CollectionFlow.cs:376:28:376:38 | { ..., ... } : null [element] : A | provenance | | +| CollectionFlow.cs:406:17:406:23 | object creation of type A : A | CollectionFlow.cs:408:20:408:20 | access to local variable a : A | provenance | | +| CollectionFlow.cs:408:9:408:13 | [post] access to local variable array : MyInlineArray [element] : A | CollectionFlow.cs:409:14:409:18 | access to local variable array : MyInlineArray [element] : A | provenance | | +| CollectionFlow.cs:408:20:408:20 | access to local variable a : A | CollectionFlow.cs:408:9:408:13 | [post] access to local variable array : MyInlineArray [element] : A | provenance | | +| CollectionFlow.cs:409:14:409:18 | access to local variable array : MyInlineArray [element] : A | CollectionFlow.cs:409:14:409:21 | access to array element | provenance | | +| CollectionFlow.cs:427:17:427:23 | object creation of type A : A | CollectionFlow.cs:428:22:428:22 | access to local variable a : A | provenance | | +| CollectionFlow.cs:428:21:428:23 | [...] : A[] [element] : A | CollectionFlow.cs:429:14:429:18 | access to local variable array : A[] [element] : A | provenance | | +| CollectionFlow.cs:428:22:428:22 | access to local variable a : A | CollectionFlow.cs:428:21:428:23 | [...] : A[] [element] : A | provenance | | +| CollectionFlow.cs:429:14:429:18 | access to local variable array : A[] [element] : A | CollectionFlow.cs:429:14:429:21 | access to array element | provenance | | +| CollectionFlow.cs:434:17:434:23 | object creation of type A : A | CollectionFlow.cs:435:22:435:22 | access to local variable a : A | provenance | | +| CollectionFlow.cs:435:21:435:23 | [...] : List [element] : A | CollectionFlow.cs:436:14:436:14 | access to local variable l : List [element] : A | provenance | | +| CollectionFlow.cs:435:22:435:22 | access to local variable a : A | CollectionFlow.cs:435:21:435:23 | [...] : List [element] : A | provenance | | +| CollectionFlow.cs:436:14:436:14 | access to local variable l : List [element] : A | CollectionFlow.cs:436:14:436:17 | access to indexer | provenance | | +| CollectionFlow.cs:447:17:447:23 | object creation of type A : A | CollectionFlow.cs:448:21:448:21 | access to local variable a : A | provenance | | +| CollectionFlow.cs:448:20:448:22 | [...] : A[] [element] : A | CollectionFlow.cs:449:22:449:28 | .. access to local variable temp : A[] [element] : A | provenance | | +| CollectionFlow.cs:448:21:448:21 | access to local variable a : A | CollectionFlow.cs:448:20:448:22 | [...] : A[] [element] : A | provenance | | +| CollectionFlow.cs:449:22:449:28 | .. access to local variable temp : A[] [element] : A | CollectionFlow.cs:450:14:450:18 | access to local variable array : A[] [element] : A | provenance | | +| CollectionFlow.cs:450:14:450:18 | access to local variable array : A[] [element] : A | CollectionFlow.cs:450:14:450:21 | access to array element | provenance | | +| CollectionFlow.cs:487:17:487:23 | object creation of type A : A | CollectionFlow.cs:488:40:488:40 | access to local variable a : A | provenance | | +| CollectionFlow.cs:488:24:488:41 | object creation of type Span : Span [element] : A | CollectionFlow.cs:489:14:489:17 | access to local variable span : Span [element] : A | provenance | | +| CollectionFlow.cs:488:40:488:40 | access to local variable a : A | CollectionFlow.cs:488:24:488:41 | object creation of type Span : Span [element] : A | provenance | | +| CollectionFlow.cs:489:14:489:17 | access to local variable span : Span [element] : A | CollectionFlow.cs:489:14:489:20 | access to indexer | provenance | | +| CollectionFlow.cs:494:17:494:23 | object creation of type A : A | CollectionFlow.cs:495:40:495:40 | access to local variable a : A | provenance | | +| CollectionFlow.cs:495:24:495:41 | object creation of type Span : Span [element] : A | CollectionFlow.cs:496:19:496:22 | access to local variable span : Span [element] : A | provenance | | +| CollectionFlow.cs:495:40:495:40 | access to local variable a : A | CollectionFlow.cs:495:24:495:41 | object creation of type Span : Span [element] : A | provenance | | +| CollectionFlow.cs:496:19:496:22 | access to local variable span : Span [element] : A | CollectionFlow.cs:496:19:496:32 | call to method ToArray : T[] [element] : A | provenance | | +| CollectionFlow.cs:496:19:496:32 | call to method ToArray : T[] [element] : A | CollectionFlow.cs:497:14:497:16 | access to local variable arr : T[] [element] : A | provenance | | +| CollectionFlow.cs:497:14:497:16 | access to local variable arr : T[] [element] : A | CollectionFlow.cs:497:14:497:19 | access to array element | provenance | | +| CollectionFlow.cs:502:17:502:23 | object creation of type A : A | CollectionFlow.cs:503:21:503:21 | access to local variable a : A | provenance | | +| CollectionFlow.cs:503:9:503:14 | [post] access to parameter target : Span [element] : A | CollectionFlow.cs:504:14:504:19 | access to parameter target : Span [element] : A | provenance | | +| CollectionFlow.cs:503:21:503:21 | access to local variable a : A | CollectionFlow.cs:503:9:503:14 | [post] access to parameter target : Span [element] : A | provenance | | +| CollectionFlow.cs:504:14:504:19 | access to parameter target : Span [element] : A | CollectionFlow.cs:504:14:504:22 | access to indexer | provenance | | +| CollectionFlow.cs:509:22:509:51 | object creation of type Span : Span [element] : A | CollectionFlow.cs:510:9:510:14 | access to local variable source : Span [element] : A | provenance | | +| CollectionFlow.cs:509:34:509:50 | array creation of type A[] : null [element] : A | CollectionFlow.cs:509:22:509:51 | object creation of type Span : Span [element] : A | provenance | | +| CollectionFlow.cs:509:40:509:50 | { ..., ... } : null [element] : A | CollectionFlow.cs:509:34:509:50 | array creation of type A[] : null [element] : A | provenance | | +| CollectionFlow.cs:509:42:509:48 | object creation of type A : A | CollectionFlow.cs:509:40:509:50 | { ..., ... } : null [element] : A | provenance | | +| CollectionFlow.cs:510:9:510:14 | access to local variable source : Span [element] : A | CollectionFlow.cs:510:23:510:28 | [post] access to parameter target : Span [element] : A | provenance | | +| CollectionFlow.cs:510:23:510:28 | [post] access to parameter target : Span [element] : A | CollectionFlow.cs:511:14:511:19 | access to parameter target : Span [element] : A | provenance | | +| CollectionFlow.cs:511:14:511:19 | access to parameter target : Span [element] : A | CollectionFlow.cs:511:14:511:22 | access to indexer | provenance | | +| CollectionFlow.cs:516:17:516:23 | object creation of type A : A | CollectionFlow.cs:517:60:517:60 | access to local variable a : A | provenance | | +| CollectionFlow.cs:517:32:517:63 | object creation of type ReadOnlySpan : ReadOnlySpan [element] : A | CollectionFlow.cs:518:14:518:17 | access to local variable span : ReadOnlySpan [element] : A | provenance | | +| CollectionFlow.cs:517:52:517:62 | array creation of type A[] : null [element] : A | CollectionFlow.cs:517:32:517:63 | object creation of type ReadOnlySpan : ReadOnlySpan [element] : A | provenance | | +| CollectionFlow.cs:517:58:517:62 | { ..., ... } : null [element] : A | CollectionFlow.cs:517:52:517:62 | array creation of type A[] : null [element] : A | provenance | | +| CollectionFlow.cs:517:60:517:60 | access to local variable a : A | CollectionFlow.cs:517:58:517:62 | { ..., ... } : null [element] : A | provenance | | +| CollectionFlow.cs:518:14:518:17 | access to local variable span : ReadOnlySpan [element] : A | CollectionFlow.cs:518:14:518:20 | access to indexer | provenance | | nodes | CollectionFlow.cs:14:40:14:41 | ts : A[] [element] : A | semmle.label | ts : A[] [element] : A | | CollectionFlow.cs:14:40:14:41 | ts : null [element] : A | semmle.label | ts : null [element] : A | diff --git a/csharp/ql/test/library-tests/dataflow/external-models/ExternalFlow.expected b/csharp/ql/test/library-tests/dataflow/external-models/ExternalFlow.expected index cd3e2b94127f..a64ed809a803 100644 --- a/csharp/ql/test/library-tests/dataflow/external-models/ExternalFlow.expected +++ b/csharp/ql/test/library-tests/dataflow/external-models/ExternalFlow.expected @@ -1,77 +1,77 @@ invalidModelRow edges -| ExternalFlow.cs:9:27:9:38 | object creation of type Object : Object | ExternalFlow.cs:10:29:10:32 | access to local variable arg1 : Object | -| ExternalFlow.cs:10:29:10:32 | access to local variable arg1 : Object | ExternalFlow.cs:10:18:10:33 | call to method StepArgRes | -| ExternalFlow.cs:15:29:15:40 | object creation of type Object : Object | ExternalFlow.cs:17:24:17:29 | access to local variable argIn1 : Object | -| ExternalFlow.cs:16:30:16:41 | object creation of type Object : Object | ExternalFlow.cs:18:18:18:24 | access to local variable argOut1 | -| ExternalFlow.cs:17:24:17:29 | access to local variable argIn1 : Object | ExternalFlow.cs:17:32:17:38 | [post] access to local variable argOut1 : Object | -| ExternalFlow.cs:17:32:17:38 | [post] access to local variable argOut1 : Object | ExternalFlow.cs:18:18:18:24 | access to local variable argOut1 | -| ExternalFlow.cs:23:27:23:38 | object creation of type Object : Object | ExternalFlow.cs:24:25:24:28 | access to local variable arg2 : Object | -| ExternalFlow.cs:24:13:24:29 | [post] this access : D | ExternalFlow.cs:25:18:25:21 | this access | -| ExternalFlow.cs:24:25:24:28 | access to local variable arg2 : Object | ExternalFlow.cs:24:13:24:29 | [post] this access : D | -| ExternalFlow.cs:30:13:30:16 | [post] this access : D [field Field] : Object | ExternalFlow.cs:31:18:31:21 | this access : D [field Field] : Object | -| ExternalFlow.cs:30:26:30:37 | object creation of type Object : Object | ExternalFlow.cs:30:13:30:16 | [post] this access : D [field Field] : Object | -| ExternalFlow.cs:31:18:31:21 | this access : D [field Field] : Object | ExternalFlow.cs:31:18:31:39 | call to method StepFieldGetter | -| ExternalFlow.cs:36:19:36:62 | (...) ... : D [field Field] : Object | ExternalFlow.cs:36:18:36:69 | access to field Field | -| ExternalFlow.cs:36:22:36:25 | [post] this access : D [field Field] : Object | ExternalFlow.cs:37:18:37:21 | this access : D [field Field] : Object | -| ExternalFlow.cs:36:22:36:55 | call to method StepFieldSetter : D [field Field2, field Field] : Object | ExternalFlow.cs:36:22:36:62 | access to field Field2 : Object [field Field] : Object | -| ExternalFlow.cs:36:22:36:62 | access to field Field2 : Object [field Field] : Object | ExternalFlow.cs:36:19:36:62 | (...) ... : D [field Field] : Object | -| ExternalFlow.cs:36:43:36:54 | object creation of type Object : Object | ExternalFlow.cs:36:22:36:25 | [post] this access : D [field Field] : Object | -| ExternalFlow.cs:36:43:36:54 | object creation of type Object : Object | ExternalFlow.cs:36:22:36:55 | call to method StepFieldSetter : D [field Field2, field Field] : Object | -| ExternalFlow.cs:37:18:37:21 | this access : D [field Field] : Object | ExternalFlow.cs:37:18:37:27 | access to field Field | -| ExternalFlow.cs:42:13:42:16 | [post] this access : D [property Property] : Object | ExternalFlow.cs:43:18:43:21 | this access : D [property Property] : Object | -| ExternalFlow.cs:42:29:42:40 | object creation of type Object : Object | ExternalFlow.cs:42:13:42:16 | [post] this access : D [property Property] : Object | -| ExternalFlow.cs:43:18:43:21 | this access : D [property Property] : Object | ExternalFlow.cs:43:18:43:42 | call to method StepPropertyGetter | -| ExternalFlow.cs:48:13:48:16 | [post] this access : D [property Property] : Object | ExternalFlow.cs:49:18:49:21 | this access : D [property Property] : Object | -| ExternalFlow.cs:48:37:48:48 | object creation of type Object : Object | ExternalFlow.cs:48:13:48:16 | [post] this access : D [property Property] : Object | -| ExternalFlow.cs:49:18:49:21 | this access : D [property Property] : Object | ExternalFlow.cs:49:18:49:30 | access to property Property | -| ExternalFlow.cs:54:13:54:16 | [post] this access : D [element] : Object | ExternalFlow.cs:55:18:55:21 | this access : D [element] : Object | -| ExternalFlow.cs:54:36:54:47 | object creation of type Object : Object | ExternalFlow.cs:54:13:54:16 | [post] this access : D [element] : Object | -| ExternalFlow.cs:55:18:55:21 | this access : D [element] : Object | ExternalFlow.cs:55:18:55:41 | call to method StepElementGetter | -| ExternalFlow.cs:60:35:60:35 | o : Object | ExternalFlow.cs:60:47:60:47 | access to parameter o | -| ExternalFlow.cs:60:64:60:75 | object creation of type Object : Object | ExternalFlow.cs:60:35:60:35 | o : Object | -| ExternalFlow.cs:65:21:65:60 | call to method Apply : Object | ExternalFlow.cs:66:18:66:18 | access to local variable o | -| ExternalFlow.cs:65:45:65:56 | object creation of type Object : Object | ExternalFlow.cs:65:21:65:60 | call to method Apply : Object | -| ExternalFlow.cs:71:30:71:45 | { ..., ... } : null [element] : Object | ExternalFlow.cs:72:17:72:20 | access to local variable objs : null [element] : Object | -| ExternalFlow.cs:71:32:71:43 | object creation of type Object : Object | ExternalFlow.cs:71:30:71:45 | { ..., ... } : null [element] : Object | -| ExternalFlow.cs:72:17:72:20 | access to local variable objs : null [element] : Object | ExternalFlow.cs:72:23:72:23 | o : Object | -| ExternalFlow.cs:72:23:72:23 | o : Object | ExternalFlow.cs:72:35:72:35 | access to parameter o | -| ExternalFlow.cs:77:24:77:58 | call to method Map : T[] [element] : Object | ExternalFlow.cs:78:18:78:21 | access to local variable objs : T[] [element] : Object | -| ExternalFlow.cs:77:46:77:57 | object creation of type Object : Object | ExternalFlow.cs:77:24:77:58 | call to method Map : T[] [element] : Object | -| ExternalFlow.cs:78:18:78:21 | access to local variable objs : T[] [element] : Object | ExternalFlow.cs:78:18:78:24 | access to array element | -| ExternalFlow.cs:83:30:83:45 | { ..., ... } : null [element] : Object | ExternalFlow.cs:84:29:84:32 | access to local variable objs : null [element] : Object | -| ExternalFlow.cs:83:32:83:43 | object creation of type Object : Object | ExternalFlow.cs:83:30:83:45 | { ..., ... } : null [element] : Object | -| ExternalFlow.cs:84:25:84:41 | call to method Map : T[] [element] : Object | ExternalFlow.cs:85:18:85:22 | access to local variable objs2 : T[] [element] : Object | -| ExternalFlow.cs:84:29:84:32 | access to local variable objs : null [element] : Object | ExternalFlow.cs:84:25:84:41 | call to method Map : T[] [element] : Object | -| ExternalFlow.cs:85:18:85:22 | access to local variable objs2 : T[] [element] : Object | ExternalFlow.cs:85:18:85:25 | access to array element | -| ExternalFlow.cs:90:21:90:34 | object creation of type String : String | ExternalFlow.cs:91:19:91:19 | access to local variable s : String | -| ExternalFlow.cs:91:19:91:19 | access to local variable s : String | ExternalFlow.cs:91:30:91:30 | SSA def(i) : Int32 | -| ExternalFlow.cs:91:30:91:30 | SSA def(i) : Int32 | ExternalFlow.cs:92:18:92:18 | (...) ... | -| ExternalFlow.cs:98:13:98:14 | [post] access to local variable d1 : D [field Field] : Object | ExternalFlow.cs:103:16:103:17 | access to local variable d1 : D [field Field] : Object | -| ExternalFlow.cs:98:13:98:14 | [post] access to local variable d1 : D [field Field] : Object | ExternalFlow.cs:104:18:104:19 | access to local variable d1 : D [field Field] : Object | -| ExternalFlow.cs:98:24:98:35 | object creation of type Object : Object | ExternalFlow.cs:98:13:98:14 | [post] access to local variable d1 : D [field Field] : Object | -| ExternalFlow.cs:100:20:100:20 | d : Object | ExternalFlow.cs:102:22:102:22 | access to parameter d | -| ExternalFlow.cs:103:16:103:17 | access to local variable d1 : D [field Field] : Object | ExternalFlow.cs:100:20:100:20 | d : Object | -| ExternalFlow.cs:104:18:104:19 | access to local variable d1 : D [field Field] : Object | ExternalFlow.cs:104:18:104:25 | access to field Field | -| ExternalFlow.cs:111:13:111:13 | [post] access to local variable f : F [field MyField] : Object | ExternalFlow.cs:112:18:112:18 | access to local variable f : F [field MyField] : Object | -| ExternalFlow.cs:111:24:111:35 | object creation of type Object : Object | ExternalFlow.cs:111:13:111:13 | [post] access to local variable f : F [field MyField] : Object | -| ExternalFlow.cs:112:18:112:18 | access to local variable f : F [field MyField] : Object | ExternalFlow.cs:112:18:112:25 | access to property MyProp | -| ExternalFlow.cs:117:34:117:49 | { ..., ... } : null [element] : Object | ExternalFlow.cs:118:29:118:29 | access to local variable a : null [element] : Object | -| ExternalFlow.cs:117:36:117:47 | object creation of type Object : Object | ExternalFlow.cs:117:34:117:49 | { ..., ... } : null [element] : Object | -| ExternalFlow.cs:118:21:118:30 | call to method Reverse : null [element] : Object | ExternalFlow.cs:120:18:120:18 | access to local variable b : null [element] : Object | -| ExternalFlow.cs:118:29:118:29 | access to local variable a : null [element] : Object | ExternalFlow.cs:118:21:118:30 | call to method Reverse : null [element] : Object | -| ExternalFlow.cs:120:18:120:18 | access to local variable b : null [element] : Object | ExternalFlow.cs:120:18:120:21 | access to array element | -| ExternalFlow.cs:205:22:205:33 | object creation of type Object : Object | ExternalFlow.cs:206:38:206:39 | access to local variable o2 : Object | -| ExternalFlow.cs:206:38:206:39 | access to local variable o2 : Object | ExternalFlow.cs:206:18:206:40 | call to method MixedFlowArgs | -| ExternalFlow.cs:211:22:211:33 | object creation of type Object : Object | ExternalFlow.cs:212:52:212:53 | access to local variable o1 : Object | -| ExternalFlow.cs:212:52:212:53 | access to local variable o1 : Object | ExternalFlow.cs:212:18:212:54 | call to method GeneratedFlowWithGeneratedNeutral | -| ExternalFlow.cs:244:21:244:28 | object creation of type HC : HC | ExternalFlow.cs:245:21:245:21 | access to local variable h : HC | -| ExternalFlow.cs:245:21:245:21 | access to local variable h : HC | ExternalFlow.cs:245:21:245:39 | call to method ExtensionMethod : HC | -| ExternalFlow.cs:245:21:245:39 | call to method ExtensionMethod : HC | ExternalFlow.cs:246:18:246:18 | access to local variable o | -| ExternalFlow.cs:262:13:262:13 | [post] access to parameter a : MyInlineArray [element] : Object | ExternalFlow.cs:263:30:263:30 | access to parameter a : MyInlineArray [element] : Object | -| ExternalFlow.cs:262:20:262:31 | object creation of type Object : Object | ExternalFlow.cs:262:13:262:13 | [post] access to parameter a : MyInlineArray [element] : Object | -| ExternalFlow.cs:263:21:263:31 | call to method GetFirst : Object | ExternalFlow.cs:264:18:264:18 | access to local variable b | -| ExternalFlow.cs:263:30:263:30 | access to parameter a : MyInlineArray [element] : Object | ExternalFlow.cs:263:21:263:31 | call to method GetFirst : Object | +| ExternalFlow.cs:9:27:9:38 | object creation of type Object : Object | ExternalFlow.cs:10:29:10:32 | access to local variable arg1 : Object | provenance | | +| ExternalFlow.cs:10:29:10:32 | access to local variable arg1 : Object | ExternalFlow.cs:10:18:10:33 | call to method StepArgRes | provenance | | +| ExternalFlow.cs:15:29:15:40 | object creation of type Object : Object | ExternalFlow.cs:17:24:17:29 | access to local variable argIn1 : Object | provenance | | +| ExternalFlow.cs:16:30:16:41 | object creation of type Object : Object | ExternalFlow.cs:18:18:18:24 | access to local variable argOut1 | provenance | | +| ExternalFlow.cs:17:24:17:29 | access to local variable argIn1 : Object | ExternalFlow.cs:17:32:17:38 | [post] access to local variable argOut1 : Object | provenance | | +| ExternalFlow.cs:17:32:17:38 | [post] access to local variable argOut1 : Object | ExternalFlow.cs:18:18:18:24 | access to local variable argOut1 | provenance | | +| ExternalFlow.cs:23:27:23:38 | object creation of type Object : Object | ExternalFlow.cs:24:25:24:28 | access to local variable arg2 : Object | provenance | | +| ExternalFlow.cs:24:13:24:29 | [post] this access : D | ExternalFlow.cs:25:18:25:21 | this access | provenance | | +| ExternalFlow.cs:24:25:24:28 | access to local variable arg2 : Object | ExternalFlow.cs:24:13:24:29 | [post] this access : D | provenance | | +| ExternalFlow.cs:30:13:30:16 | [post] this access : D [field Field] : Object | ExternalFlow.cs:31:18:31:21 | this access : D [field Field] : Object | provenance | | +| ExternalFlow.cs:30:26:30:37 | object creation of type Object : Object | ExternalFlow.cs:30:13:30:16 | [post] this access : D [field Field] : Object | provenance | | +| ExternalFlow.cs:31:18:31:21 | this access : D [field Field] : Object | ExternalFlow.cs:31:18:31:39 | call to method StepFieldGetter | provenance | | +| ExternalFlow.cs:36:19:36:62 | (...) ... : D [field Field] : Object | ExternalFlow.cs:36:18:36:69 | access to field Field | provenance | | +| ExternalFlow.cs:36:22:36:25 | [post] this access : D [field Field] : Object | ExternalFlow.cs:37:18:37:21 | this access : D [field Field] : Object | provenance | | +| ExternalFlow.cs:36:22:36:55 | call to method StepFieldSetter : D [field Field2, field Field] : Object | ExternalFlow.cs:36:22:36:62 | access to field Field2 : Object [field Field] : Object | provenance | | +| ExternalFlow.cs:36:22:36:62 | access to field Field2 : Object [field Field] : Object | ExternalFlow.cs:36:19:36:62 | (...) ... : D [field Field] : Object | provenance | | +| ExternalFlow.cs:36:43:36:54 | object creation of type Object : Object | ExternalFlow.cs:36:22:36:25 | [post] this access : D [field Field] : Object | provenance | | +| ExternalFlow.cs:36:43:36:54 | object creation of type Object : Object | ExternalFlow.cs:36:22:36:55 | call to method StepFieldSetter : D [field Field2, field Field] : Object | provenance | | +| ExternalFlow.cs:37:18:37:21 | this access : D [field Field] : Object | ExternalFlow.cs:37:18:37:27 | access to field Field | provenance | | +| ExternalFlow.cs:42:13:42:16 | [post] this access : D [property Property] : Object | ExternalFlow.cs:43:18:43:21 | this access : D [property Property] : Object | provenance | | +| ExternalFlow.cs:42:29:42:40 | object creation of type Object : Object | ExternalFlow.cs:42:13:42:16 | [post] this access : D [property Property] : Object | provenance | | +| ExternalFlow.cs:43:18:43:21 | this access : D [property Property] : Object | ExternalFlow.cs:43:18:43:42 | call to method StepPropertyGetter | provenance | | +| ExternalFlow.cs:48:13:48:16 | [post] this access : D [property Property] : Object | ExternalFlow.cs:49:18:49:21 | this access : D [property Property] : Object | provenance | | +| ExternalFlow.cs:48:37:48:48 | object creation of type Object : Object | ExternalFlow.cs:48:13:48:16 | [post] this access : D [property Property] : Object | provenance | | +| ExternalFlow.cs:49:18:49:21 | this access : D [property Property] : Object | ExternalFlow.cs:49:18:49:30 | access to property Property | provenance | | +| ExternalFlow.cs:54:13:54:16 | [post] this access : D [element] : Object | ExternalFlow.cs:55:18:55:21 | this access : D [element] : Object | provenance | | +| ExternalFlow.cs:54:36:54:47 | object creation of type Object : Object | ExternalFlow.cs:54:13:54:16 | [post] this access : D [element] : Object | provenance | | +| ExternalFlow.cs:55:18:55:21 | this access : D [element] : Object | ExternalFlow.cs:55:18:55:41 | call to method StepElementGetter | provenance | | +| ExternalFlow.cs:60:35:60:35 | o : Object | ExternalFlow.cs:60:47:60:47 | access to parameter o | provenance | | +| ExternalFlow.cs:60:64:60:75 | object creation of type Object : Object | ExternalFlow.cs:60:35:60:35 | o : Object | provenance | | +| ExternalFlow.cs:65:21:65:60 | call to method Apply : Object | ExternalFlow.cs:66:18:66:18 | access to local variable o | provenance | | +| ExternalFlow.cs:65:45:65:56 | object creation of type Object : Object | ExternalFlow.cs:65:21:65:60 | call to method Apply : Object | provenance | | +| ExternalFlow.cs:71:30:71:45 | { ..., ... } : null [element] : Object | ExternalFlow.cs:72:17:72:20 | access to local variable objs : null [element] : Object | provenance | | +| ExternalFlow.cs:71:32:71:43 | object creation of type Object : Object | ExternalFlow.cs:71:30:71:45 | { ..., ... } : null [element] : Object | provenance | | +| ExternalFlow.cs:72:17:72:20 | access to local variable objs : null [element] : Object | ExternalFlow.cs:72:23:72:23 | o : Object | provenance | | +| ExternalFlow.cs:72:23:72:23 | o : Object | ExternalFlow.cs:72:35:72:35 | access to parameter o | provenance | | +| ExternalFlow.cs:77:24:77:58 | call to method Map : T[] [element] : Object | ExternalFlow.cs:78:18:78:21 | access to local variable objs : T[] [element] : Object | provenance | | +| ExternalFlow.cs:77:46:77:57 | object creation of type Object : Object | ExternalFlow.cs:77:24:77:58 | call to method Map : T[] [element] : Object | provenance | | +| ExternalFlow.cs:78:18:78:21 | access to local variable objs : T[] [element] : Object | ExternalFlow.cs:78:18:78:24 | access to array element | provenance | | +| ExternalFlow.cs:83:30:83:45 | { ..., ... } : null [element] : Object | ExternalFlow.cs:84:29:84:32 | access to local variable objs : null [element] : Object | provenance | | +| ExternalFlow.cs:83:32:83:43 | object creation of type Object : Object | ExternalFlow.cs:83:30:83:45 | { ..., ... } : null [element] : Object | provenance | | +| ExternalFlow.cs:84:25:84:41 | call to method Map : T[] [element] : Object | ExternalFlow.cs:85:18:85:22 | access to local variable objs2 : T[] [element] : Object | provenance | | +| ExternalFlow.cs:84:29:84:32 | access to local variable objs : null [element] : Object | ExternalFlow.cs:84:25:84:41 | call to method Map : T[] [element] : Object | provenance | | +| ExternalFlow.cs:85:18:85:22 | access to local variable objs2 : T[] [element] : Object | ExternalFlow.cs:85:18:85:25 | access to array element | provenance | | +| ExternalFlow.cs:90:21:90:34 | object creation of type String : String | ExternalFlow.cs:91:19:91:19 | access to local variable s : String | provenance | | +| ExternalFlow.cs:91:19:91:19 | access to local variable s : String | ExternalFlow.cs:91:30:91:30 | SSA def(i) : Int32 | provenance | | +| ExternalFlow.cs:91:30:91:30 | SSA def(i) : Int32 | ExternalFlow.cs:92:18:92:18 | (...) ... | provenance | | +| ExternalFlow.cs:98:13:98:14 | [post] access to local variable d1 : D [field Field] : Object | ExternalFlow.cs:103:16:103:17 | access to local variable d1 : D [field Field] : Object | provenance | | +| ExternalFlow.cs:98:13:98:14 | [post] access to local variable d1 : D [field Field] : Object | ExternalFlow.cs:104:18:104:19 | access to local variable d1 : D [field Field] : Object | provenance | | +| ExternalFlow.cs:98:24:98:35 | object creation of type Object : Object | ExternalFlow.cs:98:13:98:14 | [post] access to local variable d1 : D [field Field] : Object | provenance | | +| ExternalFlow.cs:100:20:100:20 | d : Object | ExternalFlow.cs:102:22:102:22 | access to parameter d | provenance | | +| ExternalFlow.cs:103:16:103:17 | access to local variable d1 : D [field Field] : Object | ExternalFlow.cs:100:20:100:20 | d : Object | provenance | | +| ExternalFlow.cs:104:18:104:19 | access to local variable d1 : D [field Field] : Object | ExternalFlow.cs:104:18:104:25 | access to field Field | provenance | | +| ExternalFlow.cs:111:13:111:13 | [post] access to local variable f : F [field MyField] : Object | ExternalFlow.cs:112:18:112:18 | access to local variable f : F [field MyField] : Object | provenance | | +| ExternalFlow.cs:111:24:111:35 | object creation of type Object : Object | ExternalFlow.cs:111:13:111:13 | [post] access to local variable f : F [field MyField] : Object | provenance | | +| ExternalFlow.cs:112:18:112:18 | access to local variable f : F [field MyField] : Object | ExternalFlow.cs:112:18:112:25 | access to property MyProp | provenance | | +| ExternalFlow.cs:117:34:117:49 | { ..., ... } : null [element] : Object | ExternalFlow.cs:118:29:118:29 | access to local variable a : null [element] : Object | provenance | | +| ExternalFlow.cs:117:36:117:47 | object creation of type Object : Object | ExternalFlow.cs:117:34:117:49 | { ..., ... } : null [element] : Object | provenance | | +| ExternalFlow.cs:118:21:118:30 | call to method Reverse : null [element] : Object | ExternalFlow.cs:120:18:120:18 | access to local variable b : null [element] : Object | provenance | | +| ExternalFlow.cs:118:29:118:29 | access to local variable a : null [element] : Object | ExternalFlow.cs:118:21:118:30 | call to method Reverse : null [element] : Object | provenance | | +| ExternalFlow.cs:120:18:120:18 | access to local variable b : null [element] : Object | ExternalFlow.cs:120:18:120:21 | access to array element | provenance | | +| ExternalFlow.cs:205:22:205:33 | object creation of type Object : Object | ExternalFlow.cs:206:38:206:39 | access to local variable o2 : Object | provenance | | +| ExternalFlow.cs:206:38:206:39 | access to local variable o2 : Object | ExternalFlow.cs:206:18:206:40 | call to method MixedFlowArgs | provenance | | +| ExternalFlow.cs:211:22:211:33 | object creation of type Object : Object | ExternalFlow.cs:212:52:212:53 | access to local variable o1 : Object | provenance | | +| ExternalFlow.cs:212:52:212:53 | access to local variable o1 : Object | ExternalFlow.cs:212:18:212:54 | call to method GeneratedFlowWithGeneratedNeutral | provenance | | +| ExternalFlow.cs:244:21:244:28 | object creation of type HC : HC | ExternalFlow.cs:245:21:245:21 | access to local variable h : HC | provenance | | +| ExternalFlow.cs:245:21:245:21 | access to local variable h : HC | ExternalFlow.cs:245:21:245:39 | call to method ExtensionMethod : HC | provenance | | +| ExternalFlow.cs:245:21:245:39 | call to method ExtensionMethod : HC | ExternalFlow.cs:246:18:246:18 | access to local variable o | provenance | | +| ExternalFlow.cs:262:13:262:13 | [post] access to parameter a : MyInlineArray [element] : Object | ExternalFlow.cs:263:30:263:30 | access to parameter a : MyInlineArray [element] : Object | provenance | | +| ExternalFlow.cs:262:20:262:31 | object creation of type Object : Object | ExternalFlow.cs:262:13:262:13 | [post] access to parameter a : MyInlineArray [element] : Object | provenance | | +| ExternalFlow.cs:263:21:263:31 | call to method GetFirst : Object | ExternalFlow.cs:264:18:264:18 | access to local variable b | provenance | | +| ExternalFlow.cs:263:30:263:30 | access to parameter a : MyInlineArray [element] : Object | ExternalFlow.cs:263:21:263:31 | call to method GetFirst : Object | provenance | | nodes | ExternalFlow.cs:9:27:9:38 | object creation of type Object : Object | semmle.label | object creation of type Object : Object | | ExternalFlow.cs:10:18:10:33 | call to method StepArgRes | semmle.label | call to method StepArgRes | diff --git a/csharp/ql/test/library-tests/dataflow/fields/FieldFlow.expected b/csharp/ql/test/library-tests/dataflow/fields/FieldFlow.expected index a56a9fa6524a..4b4f70a46a8e 100644 --- a/csharp/ql/test/library-tests/dataflow/fields/FieldFlow.expected +++ b/csharp/ql/test/library-tests/dataflow/fields/FieldFlow.expected @@ -1,945 +1,945 @@ testFailures edges -| A.cs:5:17:5:28 | call to method Source : C | A.cs:6:24:6:24 | access to local variable c : C | -| A.cs:5:17:5:28 | call to method Source : C | A.cs:6:24:6:24 | access to local variable c : C | -| A.cs:6:17:6:25 | call to method Make : B [field c] : C | A.cs:7:14:7:14 | access to local variable b : B [field c] : C | -| A.cs:6:17:6:25 | call to method Make : B [field c] : C | A.cs:7:14:7:14 | access to local variable b : B [field c] : C | -| A.cs:6:24:6:24 | access to local variable c : C | A.cs:6:17:6:25 | call to method Make : B [field c] : C | -| A.cs:6:24:6:24 | access to local variable c : C | A.cs:6:17:6:25 | call to method Make : B [field c] : C | -| A.cs:6:24:6:24 | access to local variable c : C | A.cs:147:32:147:32 | c : C | -| A.cs:6:24:6:24 | access to local variable c : C | A.cs:147:32:147:32 | c : C | -| A.cs:7:14:7:14 | access to local variable b : B [field c] : C | A.cs:7:14:7:16 | access to field c | -| A.cs:7:14:7:14 | access to local variable b : B [field c] : C | A.cs:7:14:7:16 | access to field c | -| A.cs:13:9:13:9 | [post] access to local variable b : B [field c] : C1 | A.cs:14:14:14:14 | access to local variable b : B [field c] : C1 | -| A.cs:13:9:13:9 | [post] access to local variable b : B [field c] : C1 | A.cs:14:14:14:14 | access to local variable b : B [field c] : C1 | -| A.cs:13:15:13:29 | call to method Source : C1 | A.cs:13:9:13:9 | [post] access to local variable b : B [field c] : C1 | -| A.cs:13:15:13:29 | call to method Source : C1 | A.cs:13:9:13:9 | [post] access to local variable b : B [field c] : C1 | -| A.cs:13:15:13:29 | call to method Source : C1 | A.cs:145:27:145:27 | c : C1 | -| A.cs:13:15:13:29 | call to method Source : C1 | A.cs:145:27:145:27 | c : C1 | -| A.cs:14:14:14:14 | access to local variable b : B [field c] : C1 | A.cs:14:14:14:20 | call to method Get | -| A.cs:14:14:14:14 | access to local variable b : B [field c] : C1 | A.cs:14:14:14:20 | call to method Get | -| A.cs:14:14:14:14 | access to local variable b : B [field c] : C1 | A.cs:146:18:146:20 | this : B [field c] : C1 | -| A.cs:14:14:14:14 | access to local variable b : B [field c] : C1 | A.cs:146:18:146:20 | this : B [field c] : C1 | -| A.cs:15:15:15:35 | object creation of type B : B [field c] : C | A.cs:15:14:15:42 | call to method Get | -| A.cs:15:15:15:35 | object creation of type B : B [field c] : C | A.cs:15:14:15:42 | call to method Get | -| A.cs:15:15:15:35 | object creation of type B : B [field c] : C | A.cs:146:18:146:20 | this : B [field c] : C | -| A.cs:15:15:15:35 | object creation of type B : B [field c] : C | A.cs:146:18:146:20 | this : B [field c] : C | -| A.cs:15:21:15:34 | call to method Source : C | A.cs:15:15:15:35 | object creation of type B : B [field c] : C | -| A.cs:15:21:15:34 | call to method Source : C | A.cs:15:15:15:35 | object creation of type B : B [field c] : C | -| A.cs:15:21:15:34 | call to method Source : C | A.cs:141:20:141:20 | c : C | -| A.cs:15:21:15:34 | call to method Source : C | A.cs:141:20:141:20 | c : C | -| A.cs:22:14:22:38 | call to method SetOnB : B [field c] : C2 | A.cs:24:14:24:15 | access to local variable b2 : B [field c] : C2 | -| A.cs:22:14:22:38 | call to method SetOnB : B [field c] : C2 | A.cs:24:14:24:15 | access to local variable b2 : B [field c] : C2 | -| A.cs:22:25:22:37 | call to method Source : C2 | A.cs:22:14:22:38 | call to method SetOnB : B [field c] : C2 | -| A.cs:22:25:22:37 | call to method Source : C2 | A.cs:22:14:22:38 | call to method SetOnB : B [field c] : C2 | -| A.cs:22:25:22:37 | call to method Source : C2 | A.cs:42:29:42:29 | c : C2 | -| A.cs:22:25:22:37 | call to method Source : C2 | A.cs:42:29:42:29 | c : C2 | -| A.cs:24:14:24:15 | access to local variable b2 : B [field c] : C2 | A.cs:24:14:24:17 | access to field c | -| A.cs:24:14:24:15 | access to local variable b2 : B [field c] : C2 | A.cs:24:14:24:17 | access to field c | -| A.cs:31:14:31:42 | call to method SetOnBWrap : B [field c] : C2 | A.cs:33:14:33:15 | access to local variable b2 : B [field c] : C2 | -| A.cs:31:14:31:42 | call to method SetOnBWrap : B [field c] : C2 | A.cs:33:14:33:15 | access to local variable b2 : B [field c] : C2 | -| A.cs:31:29:31:41 | call to method Source : C2 | A.cs:31:14:31:42 | call to method SetOnBWrap : B [field c] : C2 | -| A.cs:31:29:31:41 | call to method Source : C2 | A.cs:31:14:31:42 | call to method SetOnBWrap : B [field c] : C2 | -| A.cs:31:29:31:41 | call to method Source : C2 | A.cs:36:33:36:33 | c : C2 | -| A.cs:31:29:31:41 | call to method Source : C2 | A.cs:36:33:36:33 | c : C2 | -| A.cs:33:14:33:15 | access to local variable b2 : B [field c] : C2 | A.cs:33:14:33:17 | access to field c | -| A.cs:33:14:33:15 | access to local variable b2 : B [field c] : C2 | A.cs:33:14:33:17 | access to field c | -| A.cs:36:33:36:33 | c : C2 | A.cs:38:29:38:29 | access to parameter c : C2 | -| A.cs:36:33:36:33 | c : C2 | A.cs:38:29:38:29 | access to parameter c : C2 | -| A.cs:38:18:38:30 | call to method SetOnB : B [field c] : C2 | A.cs:39:16:39:28 | ... ? ... : ... : B [field c] : C2 | -| A.cs:38:18:38:30 | call to method SetOnB : B [field c] : C2 | A.cs:39:16:39:28 | ... ? ... : ... : B [field c] : C2 | -| A.cs:38:29:38:29 | access to parameter c : C2 | A.cs:38:18:38:30 | call to method SetOnB : B [field c] : C2 | -| A.cs:38:29:38:29 | access to parameter c : C2 | A.cs:38:18:38:30 | call to method SetOnB : B [field c] : C2 | -| A.cs:38:29:38:29 | access to parameter c : C2 | A.cs:42:29:42:29 | c : C2 | -| A.cs:38:29:38:29 | access to parameter c : C2 | A.cs:42:29:42:29 | c : C2 | -| A.cs:42:29:42:29 | c : C2 | A.cs:47:20:47:20 | access to parameter c : C2 | -| A.cs:42:29:42:29 | c : C2 | A.cs:47:20:47:20 | access to parameter c : C2 | -| A.cs:47:13:47:14 | [post] access to local variable b2 : B [field c] : C2 | A.cs:48:20:48:21 | access to local variable b2 : B [field c] : C2 | -| A.cs:47:13:47:14 | [post] access to local variable b2 : B [field c] : C2 | A.cs:48:20:48:21 | access to local variable b2 : B [field c] : C2 | -| A.cs:47:20:47:20 | access to parameter c : C2 | A.cs:47:13:47:14 | [post] access to local variable b2 : B [field c] : C2 | -| A.cs:47:20:47:20 | access to parameter c : C2 | A.cs:47:13:47:14 | [post] access to local variable b2 : B [field c] : C2 | -| A.cs:47:20:47:20 | access to parameter c : C2 | A.cs:145:27:145:27 | c : C2 | -| A.cs:47:20:47:20 | access to parameter c : C2 | A.cs:145:27:145:27 | c : C2 | -| A.cs:55:17:55:28 | call to method Source : A | A.cs:57:16:57:16 | access to local variable a : A | -| A.cs:55:17:55:28 | call to method Source : A | A.cs:57:16:57:16 | access to local variable a : A | -| A.cs:57:9:57:10 | [post] access to local variable c1 : C1 [field a] : A | A.cs:58:12:58:13 | access to local variable c1 : C1 [field a] : A | -| A.cs:57:9:57:10 | [post] access to local variable c1 : C1 [field a] : A | A.cs:58:12:58:13 | access to local variable c1 : C1 [field a] : A | -| A.cs:57:16:57:16 | access to local variable a : A | A.cs:57:9:57:10 | [post] access to local variable c1 : C1 [field a] : A | -| A.cs:57:16:57:16 | access to local variable a : A | A.cs:57:9:57:10 | [post] access to local variable c1 : C1 [field a] : A | -| A.cs:58:12:58:13 | access to local variable c1 : C1 [field a] : A | A.cs:60:22:60:22 | c : C1 [field a] : A | -| A.cs:58:12:58:13 | access to local variable c1 : C1 [field a] : A | A.cs:60:22:60:22 | c : C1 [field a] : A | -| A.cs:60:22:60:22 | c : C1 [field a] : A | A.cs:64:19:64:23 | (...) ... : C1 [field a] : A | -| A.cs:60:22:60:22 | c : C1 [field a] : A | A.cs:64:19:64:23 | (...) ... : C1 [field a] : A | -| A.cs:64:19:64:23 | (...) ... : C1 [field a] : A | A.cs:64:18:64:26 | access to field a | -| A.cs:64:19:64:23 | (...) ... : C1 [field a] : A | A.cs:64:18:64:26 | access to field a | -| A.cs:83:9:83:9 | [post] access to parameter b : B [field c] : C | A.cs:88:12:88:12 | [post] access to local variable b : B [field c] : C | -| A.cs:83:9:83:9 | [post] access to parameter b : B [field c] : C | A.cs:88:12:88:12 | [post] access to local variable b : B [field c] : C | -| A.cs:83:15:83:26 | call to method Source : C | A.cs:83:9:83:9 | [post] access to parameter b : B [field c] : C | -| A.cs:83:15:83:26 | call to method Source : C | A.cs:83:9:83:9 | [post] access to parameter b : B [field c] : C | -| A.cs:83:15:83:26 | call to method Source : C | A.cs:145:27:145:27 | c : C | -| A.cs:83:15:83:26 | call to method Source : C | A.cs:145:27:145:27 | c : C | -| A.cs:88:12:88:12 | [post] access to local variable b : B [field c] : C | A.cs:89:14:89:14 | access to local variable b : B [field c] : C | -| A.cs:88:12:88:12 | [post] access to local variable b : B [field c] : C | A.cs:89:14:89:14 | access to local variable b : B [field c] : C | -| A.cs:89:14:89:14 | access to local variable b : B [field c] : C | A.cs:89:14:89:16 | access to field c | -| A.cs:89:14:89:14 | access to local variable b : B [field c] : C | A.cs:89:14:89:16 | access to field c | -| A.cs:95:20:95:20 | b : B | A.cs:97:13:97:13 | access to parameter b : B | -| A.cs:95:20:95:20 | b : B | A.cs:97:13:97:13 | access to parameter b : B | -| A.cs:97:13:97:13 | [post] access to parameter b : B [field c] : C | A.cs:98:22:98:43 | ... ? ... : ... : B [field c] : C | -| A.cs:97:13:97:13 | [post] access to parameter b : B [field c] : C | A.cs:98:22:98:43 | ... ? ... : ... : B [field c] : C | -| A.cs:97:13:97:13 | [post] access to parameter b : B [field c] : C | A.cs:105:23:105:23 | [post] access to local variable b : B [field c] : C | -| A.cs:97:13:97:13 | [post] access to parameter b : B [field c] : C | A.cs:105:23:105:23 | [post] access to local variable b : B [field c] : C | -| A.cs:97:13:97:13 | access to parameter b : B | A.cs:98:22:98:43 | ... ? ... : ... : B | -| A.cs:97:13:97:13 | access to parameter b : B | A.cs:98:22:98:43 | ... ? ... : ... : B | -| A.cs:97:19:97:32 | call to method Source : C | A.cs:97:13:97:13 | [post] access to parameter b : B [field c] : C | -| A.cs:97:19:97:32 | call to method Source : C | A.cs:97:13:97:13 | [post] access to parameter b : B [field c] : C | -| A.cs:98:13:98:16 | [post] this access : D [field b, field c] : C | A.cs:105:17:105:29 | object creation of type D : D [field b, field c] : C | -| A.cs:98:13:98:16 | [post] this access : D [field b, field c] : C | A.cs:105:17:105:29 | object creation of type D : D [field b, field c] : C | -| A.cs:98:13:98:16 | [post] this access : D [field b] : B | A.cs:105:17:105:29 | object creation of type D : D [field b] : B | -| A.cs:98:13:98:16 | [post] this access : D [field b] : B | A.cs:105:17:105:29 | object creation of type D : D [field b] : B | -| A.cs:98:22:98:43 | ... ? ... : ... : B | A.cs:98:13:98:16 | [post] this access : D [field b] : B | -| A.cs:98:22:98:43 | ... ? ... : ... : B | A.cs:98:13:98:16 | [post] this access : D [field b] : B | -| A.cs:98:22:98:43 | ... ? ... : ... : B | A.cs:98:13:98:16 | [post] this access : D [field b] : B | -| A.cs:98:22:98:43 | ... ? ... : ... : B | A.cs:98:13:98:16 | [post] this access : D [field b] : B | -| A.cs:98:22:98:43 | ... ? ... : ... : B [field c] : C | A.cs:98:13:98:16 | [post] this access : D [field b, field c] : C | -| A.cs:98:22:98:43 | ... ? ... : ... : B [field c] : C | A.cs:98:13:98:16 | [post] this access : D [field b, field c] : C | -| A.cs:98:30:98:43 | call to method Source : B | A.cs:98:22:98:43 | ... ? ... : ... : B | -| A.cs:98:30:98:43 | call to method Source : B | A.cs:98:22:98:43 | ... ? ... : ... : B | -| A.cs:104:17:104:30 | call to method Source : B | A.cs:105:23:105:23 | access to local variable b : B | -| A.cs:104:17:104:30 | call to method Source : B | A.cs:105:23:105:23 | access to local variable b : B | -| A.cs:105:17:105:29 | object creation of type D : D [field b, field c] : C | A.cs:107:14:107:14 | access to local variable d : D [field b, field c] : C | -| A.cs:105:17:105:29 | object creation of type D : D [field b, field c] : C | A.cs:107:14:107:14 | access to local variable d : D [field b, field c] : C | -| A.cs:105:17:105:29 | object creation of type D : D [field b] : B | A.cs:106:14:106:14 | access to local variable d : D [field b] : B | -| A.cs:105:17:105:29 | object creation of type D : D [field b] : B | A.cs:106:14:106:14 | access to local variable d : D [field b] : B | -| A.cs:105:23:105:23 | [post] access to local variable b : B [field c] : C | A.cs:108:14:108:14 | access to local variable b : B [field c] : C | -| A.cs:105:23:105:23 | [post] access to local variable b : B [field c] : C | A.cs:108:14:108:14 | access to local variable b : B [field c] : C | -| A.cs:105:23:105:23 | access to local variable b : B | A.cs:95:20:95:20 | b : B | -| A.cs:105:23:105:23 | access to local variable b : B | A.cs:95:20:95:20 | b : B | -| A.cs:105:23:105:23 | access to local variable b : B | A.cs:105:17:105:29 | object creation of type D : D [field b] : B | -| A.cs:105:23:105:23 | access to local variable b : B | A.cs:105:17:105:29 | object creation of type D : D [field b] : B | -| A.cs:106:14:106:14 | access to local variable d : D [field b] : B | A.cs:106:14:106:16 | access to field b | -| A.cs:106:14:106:14 | access to local variable d : D [field b] : B | A.cs:106:14:106:16 | access to field b | -| A.cs:107:14:107:14 | access to local variable d : D [field b, field c] : C | A.cs:107:14:107:16 | access to field b : B [field c] : C | -| A.cs:107:14:107:14 | access to local variable d : D [field b, field c] : C | A.cs:107:14:107:16 | access to field b : B [field c] : C | -| A.cs:107:14:107:16 | access to field b : B [field c] : C | A.cs:107:14:107:18 | access to field c | -| A.cs:107:14:107:16 | access to field b : B [field c] : C | A.cs:107:14:107:18 | access to field c | -| A.cs:108:14:108:14 | access to local variable b : B [field c] : C | A.cs:108:14:108:16 | access to field c | -| A.cs:108:14:108:14 | access to local variable b : B [field c] : C | A.cs:108:14:108:16 | access to field c | -| A.cs:113:17:113:29 | call to method Source : B | A.cs:114:29:114:29 | access to local variable b : B | -| A.cs:113:17:113:29 | call to method Source : B | A.cs:114:29:114:29 | access to local variable b : B | -| A.cs:114:18:114:54 | object creation of type MyList : MyList [field head] : B | A.cs:115:35:115:36 | access to local variable l1 : MyList [field head] : B | -| A.cs:114:18:114:54 | object creation of type MyList : MyList [field head] : B | A.cs:115:35:115:36 | access to local variable l1 : MyList [field head] : B | -| A.cs:114:29:114:29 | access to local variable b : B | A.cs:114:18:114:54 | object creation of type MyList : MyList [field head] : B | -| A.cs:114:29:114:29 | access to local variable b : B | A.cs:114:18:114:54 | object creation of type MyList : MyList [field head] : B | -| A.cs:114:29:114:29 | access to local variable b : B | A.cs:157:25:157:28 | head : B | -| A.cs:114:29:114:29 | access to local variable b : B | A.cs:157:25:157:28 | head : B | -| A.cs:115:18:115:37 | object creation of type MyList : MyList [field next, field head] : B | A.cs:116:35:116:36 | access to local variable l2 : MyList [field next, field head] : B | -| A.cs:115:18:115:37 | object creation of type MyList : MyList [field next, field head] : B | A.cs:116:35:116:36 | access to local variable l2 : MyList [field next, field head] : B | -| A.cs:115:35:115:36 | access to local variable l1 : MyList [field head] : B | A.cs:115:18:115:37 | object creation of type MyList : MyList [field next, field head] : B | -| A.cs:115:35:115:36 | access to local variable l1 : MyList [field head] : B | A.cs:115:18:115:37 | object creation of type MyList : MyList [field next, field head] : B | -| A.cs:115:35:115:36 | access to local variable l1 : MyList [field head] : B | A.cs:157:38:157:41 | next : MyList [field head] : B | -| A.cs:115:35:115:36 | access to local variable l1 : MyList [field head] : B | A.cs:157:38:157:41 | next : MyList [field head] : B | -| A.cs:116:18:116:37 | object creation of type MyList : MyList [field next, field next, field head] : B | A.cs:119:14:119:15 | access to local variable l3 : MyList [field next, field next, field head] : B | -| A.cs:116:18:116:37 | object creation of type MyList : MyList [field next, field next, field head] : B | A.cs:119:14:119:15 | access to local variable l3 : MyList [field next, field next, field head] : B | -| A.cs:116:18:116:37 | object creation of type MyList : MyList [field next, field next, field head] : B | A.cs:121:41:121:41 | access to local variable l : MyList [field next, field next, field head] : B | -| A.cs:116:18:116:37 | object creation of type MyList : MyList [field next, field next, field head] : B | A.cs:121:41:121:41 | access to local variable l : MyList [field next, field next, field head] : B | -| A.cs:116:35:116:36 | access to local variable l2 : MyList [field next, field head] : B | A.cs:116:18:116:37 | object creation of type MyList : MyList [field next, field next, field head] : B | -| A.cs:116:35:116:36 | access to local variable l2 : MyList [field next, field head] : B | A.cs:116:18:116:37 | object creation of type MyList : MyList [field next, field next, field head] : B | -| A.cs:116:35:116:36 | access to local variable l2 : MyList [field next, field head] : B | A.cs:157:38:157:41 | next : MyList [field next, field head] : B | -| A.cs:116:35:116:36 | access to local variable l2 : MyList [field next, field head] : B | A.cs:157:38:157:41 | next : MyList [field next, field head] : B | -| A.cs:119:14:119:15 | access to local variable l3 : MyList [field next, field next, field head] : B | A.cs:119:14:119:20 | access to field next : MyList [field next, field head] : B | -| A.cs:119:14:119:15 | access to local variable l3 : MyList [field next, field next, field head] : B | A.cs:119:14:119:20 | access to field next : MyList [field next, field head] : B | -| A.cs:119:14:119:20 | access to field next : MyList [field next, field head] : B | A.cs:119:14:119:25 | access to field next : MyList [field head] : B | -| A.cs:119:14:119:20 | access to field next : MyList [field next, field head] : B | A.cs:119:14:119:25 | access to field next : MyList [field head] : B | -| A.cs:119:14:119:25 | access to field next : MyList [field head] : B | A.cs:119:14:119:30 | access to field head | -| A.cs:119:14:119:25 | access to field next : MyList [field head] : B | A.cs:119:14:119:30 | access to field head | -| A.cs:121:41:121:41 | access to local variable l : MyList [field next, field head] : B | A.cs:121:41:121:46 | access to field next : MyList [field head] : B | -| A.cs:121:41:121:41 | access to local variable l : MyList [field next, field head] : B | A.cs:121:41:121:46 | access to field next : MyList [field head] : B | -| A.cs:121:41:121:41 | access to local variable l : MyList [field next, field next, field head] : B | A.cs:121:41:121:46 | access to field next : MyList [field next, field head] : B | -| A.cs:121:41:121:41 | access to local variable l : MyList [field next, field next, field head] : B | A.cs:121:41:121:46 | access to field next : MyList [field next, field head] : B | -| A.cs:121:41:121:46 | access to field next : MyList [field head] : B | A.cs:123:18:123:18 | access to local variable l : MyList [field head] : B | -| A.cs:121:41:121:46 | access to field next : MyList [field head] : B | A.cs:123:18:123:18 | access to local variable l : MyList [field head] : B | -| A.cs:121:41:121:46 | access to field next : MyList [field next, field head] : B | A.cs:121:41:121:41 | access to local variable l : MyList [field next, field head] : B | -| A.cs:121:41:121:46 | access to field next : MyList [field next, field head] : B | A.cs:121:41:121:41 | access to local variable l : MyList [field next, field head] : B | -| A.cs:123:18:123:18 | access to local variable l : MyList [field head] : B | A.cs:123:18:123:23 | access to field head | -| A.cs:123:18:123:18 | access to local variable l : MyList [field head] : B | A.cs:123:18:123:23 | access to field head | -| A.cs:141:20:141:20 | c : C | A.cs:143:22:143:22 | access to parameter c : C | -| A.cs:141:20:141:20 | c : C | A.cs:143:22:143:22 | access to parameter c : C | -| A.cs:143:22:143:22 | access to parameter c : C | A.cs:143:13:143:16 | [post] this access : B [field c] : C | -| A.cs:143:22:143:22 | access to parameter c : C | A.cs:143:13:143:16 | [post] this access : B [field c] : C | -| A.cs:145:27:145:27 | c : C | A.cs:145:41:145:41 | access to parameter c : C | -| A.cs:145:27:145:27 | c : C | A.cs:145:41:145:41 | access to parameter c : C | -| A.cs:145:27:145:27 | c : C1 | A.cs:145:41:145:41 | access to parameter c : C1 | -| A.cs:145:27:145:27 | c : C1 | A.cs:145:41:145:41 | access to parameter c : C1 | -| A.cs:145:27:145:27 | c : C2 | A.cs:145:41:145:41 | access to parameter c : C2 | -| A.cs:145:27:145:27 | c : C2 | A.cs:145:41:145:41 | access to parameter c : C2 | -| A.cs:145:41:145:41 | access to parameter c : C | A.cs:145:32:145:35 | [post] this access : B [field c] : C | -| A.cs:145:41:145:41 | access to parameter c : C | A.cs:145:32:145:35 | [post] this access : B [field c] : C | -| A.cs:145:41:145:41 | access to parameter c : C1 | A.cs:145:32:145:35 | [post] this access : B [field c] : C1 | -| A.cs:145:41:145:41 | access to parameter c : C1 | A.cs:145:32:145:35 | [post] this access : B [field c] : C1 | -| A.cs:145:41:145:41 | access to parameter c : C2 | A.cs:145:32:145:35 | [post] this access : B [field c] : C2 | -| A.cs:145:41:145:41 | access to parameter c : C2 | A.cs:145:32:145:35 | [post] this access : B [field c] : C2 | -| A.cs:146:18:146:20 | this : B [field c] : C | A.cs:146:33:146:36 | this access : B [field c] : C | -| A.cs:146:18:146:20 | this : B [field c] : C | A.cs:146:33:146:36 | this access : B [field c] : C | -| A.cs:146:18:146:20 | this : B [field c] : C1 | A.cs:146:33:146:36 | this access : B [field c] : C1 | -| A.cs:146:18:146:20 | this : B [field c] : C1 | A.cs:146:33:146:36 | this access : B [field c] : C1 | -| A.cs:146:33:146:36 | this access : B [field c] : C | A.cs:146:33:146:38 | access to field c : C | -| A.cs:146:33:146:36 | this access : B [field c] : C | A.cs:146:33:146:38 | access to field c : C | -| A.cs:146:33:146:36 | this access : B [field c] : C1 | A.cs:146:33:146:38 | access to field c : C1 | -| A.cs:146:33:146:36 | this access : B [field c] : C1 | A.cs:146:33:146:38 | access to field c : C1 | -| A.cs:147:32:147:32 | c : C | A.cs:149:26:149:26 | access to parameter c : C | -| A.cs:147:32:147:32 | c : C | A.cs:149:26:149:26 | access to parameter c : C | -| A.cs:149:26:149:26 | access to parameter c : C | A.cs:141:20:141:20 | c : C | -| A.cs:149:26:149:26 | access to parameter c : C | A.cs:141:20:141:20 | c : C | -| A.cs:149:26:149:26 | access to parameter c : C | A.cs:149:20:149:27 | object creation of type B : B [field c] : C | -| A.cs:149:26:149:26 | access to parameter c : C | A.cs:149:20:149:27 | object creation of type B : B [field c] : C | -| A.cs:157:25:157:28 | head : B | A.cs:159:25:159:28 | access to parameter head : B | -| A.cs:157:25:157:28 | head : B | A.cs:159:25:159:28 | access to parameter head : B | -| A.cs:157:38:157:41 | next : MyList [field head] : B | A.cs:160:25:160:28 | access to parameter next : MyList [field head] : B | -| A.cs:157:38:157:41 | next : MyList [field head] : B | A.cs:160:25:160:28 | access to parameter next : MyList [field head] : B | -| A.cs:157:38:157:41 | next : MyList [field next, field head] : B | A.cs:160:25:160:28 | access to parameter next : MyList [field next, field head] : B | -| A.cs:157:38:157:41 | next : MyList [field next, field head] : B | A.cs:160:25:160:28 | access to parameter next : MyList [field next, field head] : B | -| A.cs:159:25:159:28 | access to parameter head : B | A.cs:159:13:159:16 | [post] this access : MyList [field head] : B | -| A.cs:159:25:159:28 | access to parameter head : B | A.cs:159:13:159:16 | [post] this access : MyList [field head] : B | -| A.cs:160:25:160:28 | access to parameter next : MyList [field head] : B | A.cs:160:13:160:16 | [post] this access : MyList [field next, field head] : B | -| A.cs:160:25:160:28 | access to parameter next : MyList [field head] : B | A.cs:160:13:160:16 | [post] this access : MyList [field next, field head] : B | -| A.cs:160:25:160:28 | access to parameter next : MyList [field next, field head] : B | A.cs:160:13:160:16 | [post] this access : MyList [field next, field next, field head] : B | -| A.cs:160:25:160:28 | access to parameter next : MyList [field next, field head] : B | A.cs:160:13:160:16 | [post] this access : MyList [field next, field next, field head] : B | -| B.cs:5:17:5:31 | call to method Source : Elem | B.cs:6:27:6:27 | access to local variable e : Elem | -| B.cs:5:17:5:31 | call to method Source : Elem | B.cs:6:27:6:27 | access to local variable e : Elem | -| B.cs:6:18:6:34 | object creation of type Box1 : Box1 [field elem1] : Elem | B.cs:7:27:7:28 | access to local variable b1 : Box1 [field elem1] : Elem | -| B.cs:6:18:6:34 | object creation of type Box1 : Box1 [field elem1] : Elem | B.cs:7:27:7:28 | access to local variable b1 : Box1 [field elem1] : Elem | -| B.cs:6:27:6:27 | access to local variable e : Elem | B.cs:6:18:6:34 | object creation of type Box1 : Box1 [field elem1] : Elem | -| B.cs:6:27:6:27 | access to local variable e : Elem | B.cs:6:18:6:34 | object creation of type Box1 : Box1 [field elem1] : Elem | -| B.cs:6:27:6:27 | access to local variable e : Elem | B.cs:29:26:29:27 | e1 : Elem | -| B.cs:6:27:6:27 | access to local variable e : Elem | B.cs:29:26:29:27 | e1 : Elem | -| B.cs:7:18:7:29 | object creation of type Box2 : Box2 [field box1, field elem1] : Elem | B.cs:8:14:8:15 | access to local variable b2 : Box2 [field box1, field elem1] : Elem | -| B.cs:7:18:7:29 | object creation of type Box2 : Box2 [field box1, field elem1] : Elem | B.cs:8:14:8:15 | access to local variable b2 : Box2 [field box1, field elem1] : Elem | -| B.cs:7:27:7:28 | access to local variable b1 : Box1 [field elem1] : Elem | B.cs:7:18:7:29 | object creation of type Box2 : Box2 [field box1, field elem1] : Elem | -| B.cs:7:27:7:28 | access to local variable b1 : Box1 [field elem1] : Elem | B.cs:7:18:7:29 | object creation of type Box2 : Box2 [field box1, field elem1] : Elem | -| B.cs:7:27:7:28 | access to local variable b1 : Box1 [field elem1] : Elem | B.cs:39:26:39:27 | b1 : Box1 [field elem1] : Elem | -| B.cs:7:27:7:28 | access to local variable b1 : Box1 [field elem1] : Elem | B.cs:39:26:39:27 | b1 : Box1 [field elem1] : Elem | -| B.cs:8:14:8:15 | access to local variable b2 : Box2 [field box1, field elem1] : Elem | B.cs:8:14:8:20 | access to field box1 : Box1 [field elem1] : Elem | -| B.cs:8:14:8:15 | access to local variable b2 : Box2 [field box1, field elem1] : Elem | B.cs:8:14:8:20 | access to field box1 : Box1 [field elem1] : Elem | -| B.cs:8:14:8:20 | access to field box1 : Box1 [field elem1] : Elem | B.cs:8:14:8:26 | access to field elem1 | -| B.cs:8:14:8:20 | access to field box1 : Box1 [field elem1] : Elem | B.cs:8:14:8:26 | access to field elem1 | -| B.cs:14:17:14:31 | call to method Source : Elem | B.cs:15:33:15:33 | access to local variable e : Elem | -| B.cs:14:17:14:31 | call to method Source : Elem | B.cs:15:33:15:33 | access to local variable e : Elem | -| B.cs:15:18:15:34 | object creation of type Box1 : Box1 [field elem2] : Elem | B.cs:16:27:16:28 | access to local variable b1 : Box1 [field elem2] : Elem | -| B.cs:15:18:15:34 | object creation of type Box1 : Box1 [field elem2] : Elem | B.cs:16:27:16:28 | access to local variable b1 : Box1 [field elem2] : Elem | -| B.cs:15:33:15:33 | access to local variable e : Elem | B.cs:15:18:15:34 | object creation of type Box1 : Box1 [field elem2] : Elem | -| B.cs:15:33:15:33 | access to local variable e : Elem | B.cs:15:18:15:34 | object creation of type Box1 : Box1 [field elem2] : Elem | -| B.cs:15:33:15:33 | access to local variable e : Elem | B.cs:29:35:29:36 | e2 : Elem | -| B.cs:15:33:15:33 | access to local variable e : Elem | B.cs:29:35:29:36 | e2 : Elem | -| B.cs:16:18:16:29 | object creation of type Box2 : Box2 [field box1, field elem2] : Elem | B.cs:18:14:18:15 | access to local variable b2 : Box2 [field box1, field elem2] : Elem | -| B.cs:16:18:16:29 | object creation of type Box2 : Box2 [field box1, field elem2] : Elem | B.cs:18:14:18:15 | access to local variable b2 : Box2 [field box1, field elem2] : Elem | -| B.cs:16:27:16:28 | access to local variable b1 : Box1 [field elem2] : Elem | B.cs:16:18:16:29 | object creation of type Box2 : Box2 [field box1, field elem2] : Elem | -| B.cs:16:27:16:28 | access to local variable b1 : Box1 [field elem2] : Elem | B.cs:16:18:16:29 | object creation of type Box2 : Box2 [field box1, field elem2] : Elem | -| B.cs:16:27:16:28 | access to local variable b1 : Box1 [field elem2] : Elem | B.cs:39:26:39:27 | b1 : Box1 [field elem2] : Elem | -| B.cs:16:27:16:28 | access to local variable b1 : Box1 [field elem2] : Elem | B.cs:39:26:39:27 | b1 : Box1 [field elem2] : Elem | -| B.cs:18:14:18:15 | access to local variable b2 : Box2 [field box1, field elem2] : Elem | B.cs:18:14:18:20 | access to field box1 : Box1 [field elem2] : Elem | -| B.cs:18:14:18:15 | access to local variable b2 : Box2 [field box1, field elem2] : Elem | B.cs:18:14:18:20 | access to field box1 : Box1 [field elem2] : Elem | -| B.cs:18:14:18:20 | access to field box1 : Box1 [field elem2] : Elem | B.cs:18:14:18:26 | access to field elem2 | -| B.cs:18:14:18:20 | access to field box1 : Box1 [field elem2] : Elem | B.cs:18:14:18:26 | access to field elem2 | -| B.cs:29:26:29:27 | e1 : Elem | B.cs:31:26:31:27 | access to parameter e1 : Elem | -| B.cs:29:26:29:27 | e1 : Elem | B.cs:31:26:31:27 | access to parameter e1 : Elem | -| B.cs:29:35:29:36 | e2 : Elem | B.cs:32:26:32:27 | access to parameter e2 : Elem | -| B.cs:29:35:29:36 | e2 : Elem | B.cs:32:26:32:27 | access to parameter e2 : Elem | -| B.cs:31:26:31:27 | access to parameter e1 : Elem | B.cs:31:13:31:16 | [post] this access : Box1 [field elem1] : Elem | -| B.cs:31:26:31:27 | access to parameter e1 : Elem | B.cs:31:13:31:16 | [post] this access : Box1 [field elem1] : Elem | -| B.cs:32:26:32:27 | access to parameter e2 : Elem | B.cs:32:13:32:16 | [post] this access : Box1 [field elem2] : Elem | -| B.cs:32:26:32:27 | access to parameter e2 : Elem | B.cs:32:13:32:16 | [post] this access : Box1 [field elem2] : Elem | -| B.cs:39:26:39:27 | b1 : Box1 [field elem1] : Elem | B.cs:41:25:41:26 | access to parameter b1 : Box1 [field elem1] : Elem | -| B.cs:39:26:39:27 | b1 : Box1 [field elem1] : Elem | B.cs:41:25:41:26 | access to parameter b1 : Box1 [field elem1] : Elem | -| B.cs:39:26:39:27 | b1 : Box1 [field elem2] : Elem | B.cs:41:25:41:26 | access to parameter b1 : Box1 [field elem2] : Elem | -| B.cs:39:26:39:27 | b1 : Box1 [field elem2] : Elem | B.cs:41:25:41:26 | access to parameter b1 : Box1 [field elem2] : Elem | -| B.cs:41:25:41:26 | access to parameter b1 : Box1 [field elem1] : Elem | B.cs:41:13:41:16 | [post] this access : Box2 [field box1, field elem1] : Elem | -| B.cs:41:25:41:26 | access to parameter b1 : Box1 [field elem1] : Elem | B.cs:41:13:41:16 | [post] this access : Box2 [field box1, field elem1] : Elem | -| B.cs:41:25:41:26 | access to parameter b1 : Box1 [field elem2] : Elem | B.cs:41:13:41:16 | [post] this access : Box2 [field box1, field elem2] : Elem | -| B.cs:41:25:41:26 | access to parameter b1 : Box1 [field elem2] : Elem | B.cs:41:13:41:16 | [post] this access : Box2 [field box1, field elem2] : Elem | -| C.cs:3:18:3:19 | [post] this access : C [field s1] : Elem | C.cs:12:15:12:21 | object creation of type C : C [field s1] : Elem | -| C.cs:3:18:3:19 | [post] this access : C [field s1] : Elem | C.cs:12:15:12:21 | object creation of type C : C [field s1] : Elem | -| C.cs:3:23:3:37 | call to method Source : Elem | C.cs:3:18:3:19 | [post] this access : C [field s1] : Elem | -| C.cs:3:23:3:37 | call to method Source : Elem | C.cs:3:18:3:19 | [post] this access : C [field s1] : Elem | -| C.cs:4:27:4:28 | [post] this access : C [field s2] : Elem | C.cs:12:15:12:21 | object creation of type C : C [field s2] : Elem | -| C.cs:4:27:4:28 | [post] this access : C [field s2] : Elem | C.cs:12:15:12:21 | object creation of type C : C [field s2] : Elem | -| C.cs:4:32:4:46 | call to method Source : Elem | C.cs:4:27:4:28 | [post] this access : C [field s2] : Elem | -| C.cs:4:32:4:46 | call to method Source : Elem | C.cs:4:27:4:28 | [post] this access : C [field s2] : Elem | -| C.cs:6:30:6:44 | call to method Source : Elem | C.cs:26:14:26:15 | access to field s4 | -| C.cs:6:30:6:44 | call to method Source : Elem | C.cs:26:14:26:15 | access to field s4 | -| C.cs:7:18:7:19 | [post] this access : C [property s5] : Elem | C.cs:12:15:12:21 | object creation of type C : C [property s5] : Elem | -| C.cs:7:18:7:19 | [post] this access : C [property s5] : Elem | C.cs:12:15:12:21 | object creation of type C : C [property s5] : Elem | -| C.cs:7:37:7:51 | call to method Source : Elem | C.cs:7:18:7:19 | [post] this access : C [property s5] : Elem | -| C.cs:7:37:7:51 | call to method Source : Elem | C.cs:7:18:7:19 | [post] this access : C [property s5] : Elem | -| C.cs:8:30:8:44 | call to method Source : Elem | C.cs:28:14:28:15 | access to property s6 | -| C.cs:8:30:8:44 | call to method Source : Elem | C.cs:28:14:28:15 | access to property s6 | -| C.cs:12:15:12:21 | object creation of type C : C [field s1] : Elem | C.cs:13:9:13:9 | access to local variable c : C [field s1] : Elem | -| C.cs:12:15:12:21 | object creation of type C : C [field s1] : Elem | C.cs:13:9:13:9 | access to local variable c : C [field s1] : Elem | -| C.cs:12:15:12:21 | object creation of type C : C [field s2] : Elem | C.cs:13:9:13:9 | access to local variable c : C [field s2] : Elem | -| C.cs:12:15:12:21 | object creation of type C : C [field s2] : Elem | C.cs:13:9:13:9 | access to local variable c : C [field s2] : Elem | -| C.cs:12:15:12:21 | object creation of type C : C [field s3] : Elem | C.cs:13:9:13:9 | access to local variable c : C [field s3] : Elem | -| C.cs:12:15:12:21 | object creation of type C : C [field s3] : Elem | C.cs:13:9:13:9 | access to local variable c : C [field s3] : Elem | -| C.cs:12:15:12:21 | object creation of type C : C [property s5] : Elem | C.cs:13:9:13:9 | access to local variable c : C [property s5] : Elem | -| C.cs:12:15:12:21 | object creation of type C : C [property s5] : Elem | C.cs:13:9:13:9 | access to local variable c : C [property s5] : Elem | -| C.cs:13:9:13:9 | access to local variable c : C [field s1] : Elem | C.cs:21:17:21:18 | this : C [field s1] : Elem | -| C.cs:13:9:13:9 | access to local variable c : C [field s1] : Elem | C.cs:21:17:21:18 | this : C [field s1] : Elem | -| C.cs:13:9:13:9 | access to local variable c : C [field s2] : Elem | C.cs:21:17:21:18 | this : C [field s2] : Elem | -| C.cs:13:9:13:9 | access to local variable c : C [field s2] : Elem | C.cs:21:17:21:18 | this : C [field s2] : Elem | -| C.cs:13:9:13:9 | access to local variable c : C [field s3] : Elem | C.cs:21:17:21:18 | this : C [field s3] : Elem | -| C.cs:13:9:13:9 | access to local variable c : C [field s3] : Elem | C.cs:21:17:21:18 | this : C [field s3] : Elem | -| C.cs:13:9:13:9 | access to local variable c : C [property s5] : Elem | C.cs:21:17:21:18 | this : C [property s5] : Elem | -| C.cs:13:9:13:9 | access to local variable c : C [property s5] : Elem | C.cs:21:17:21:18 | this : C [property s5] : Elem | -| C.cs:18:9:18:12 | [post] this access : C [field s3] : Elem | C.cs:12:15:12:21 | object creation of type C : C [field s3] : Elem | -| C.cs:18:9:18:12 | [post] this access : C [field s3] : Elem | C.cs:12:15:12:21 | object creation of type C : C [field s3] : Elem | -| C.cs:18:19:18:33 | call to method Source : Elem | C.cs:18:9:18:12 | [post] this access : C [field s3] : Elem | -| C.cs:18:19:18:33 | call to method Source : Elem | C.cs:18:9:18:12 | [post] this access : C [field s3] : Elem | -| C.cs:21:17:21:18 | this : C [field s1] : Elem | C.cs:23:14:23:15 | this access : C [field s1] : Elem | -| C.cs:21:17:21:18 | this : C [field s1] : Elem | C.cs:23:14:23:15 | this access : C [field s1] : Elem | -| C.cs:21:17:21:18 | this : C [field s2] : Elem | C.cs:24:14:24:15 | this access : C [field s2] : Elem | -| C.cs:21:17:21:18 | this : C [field s2] : Elem | C.cs:24:14:24:15 | this access : C [field s2] : Elem | -| C.cs:21:17:21:18 | this : C [field s3] : Elem | C.cs:25:14:25:15 | this access : C [field s3] : Elem | -| C.cs:21:17:21:18 | this : C [field s3] : Elem | C.cs:25:14:25:15 | this access : C [field s3] : Elem | -| C.cs:21:17:21:18 | this : C [property s5] : Elem | C.cs:27:14:27:15 | this access : C [property s5] : Elem | -| C.cs:21:17:21:18 | this : C [property s5] : Elem | C.cs:27:14:27:15 | this access : C [property s5] : Elem | -| C.cs:23:14:23:15 | this access : C [field s1] : Elem | C.cs:23:14:23:15 | access to field s1 | -| C.cs:23:14:23:15 | this access : C [field s1] : Elem | C.cs:23:14:23:15 | access to field s1 | -| C.cs:24:14:24:15 | this access : C [field s2] : Elem | C.cs:24:14:24:15 | access to field s2 | -| C.cs:24:14:24:15 | this access : C [field s2] : Elem | C.cs:24:14:24:15 | access to field s2 | -| C.cs:25:14:25:15 | this access : C [field s3] : Elem | C.cs:25:14:25:15 | access to field s3 | -| C.cs:25:14:25:15 | this access : C [field s3] : Elem | C.cs:25:14:25:15 | access to field s3 | -| C.cs:27:14:27:15 | this access : C [property s5] : Elem | C.cs:27:14:27:15 | access to property s5 | -| C.cs:27:14:27:15 | this access : C [property s5] : Elem | C.cs:27:14:27:15 | access to property s5 | -| C_ctor.cs:3:18:3:19 | [post] this access : C_no_ctor [field s1] : Elem | C_ctor.cs:7:23:7:37 | object creation of type C_no_ctor : C_no_ctor [field s1] : Elem | -| C_ctor.cs:3:18:3:19 | [post] this access : C_no_ctor [field s1] : Elem | C_ctor.cs:7:23:7:37 | object creation of type C_no_ctor : C_no_ctor [field s1] : Elem | -| C_ctor.cs:3:23:3:42 | call to method Source : Elem | C_ctor.cs:3:18:3:19 | [post] this access : C_no_ctor [field s1] : Elem | -| C_ctor.cs:3:23:3:42 | call to method Source : Elem | C_ctor.cs:3:18:3:19 | [post] this access : C_no_ctor [field s1] : Elem | -| C_ctor.cs:7:23:7:37 | object creation of type C_no_ctor : C_no_ctor [field s1] : Elem | C_ctor.cs:8:9:8:9 | access to local variable c : C_no_ctor [field s1] : Elem | -| C_ctor.cs:7:23:7:37 | object creation of type C_no_ctor : C_no_ctor [field s1] : Elem | C_ctor.cs:8:9:8:9 | access to local variable c : C_no_ctor [field s1] : Elem | -| C_ctor.cs:8:9:8:9 | access to local variable c : C_no_ctor [field s1] : Elem | C_ctor.cs:11:17:11:18 | this : C_no_ctor [field s1] : Elem | -| C_ctor.cs:8:9:8:9 | access to local variable c : C_no_ctor [field s1] : Elem | C_ctor.cs:11:17:11:18 | this : C_no_ctor [field s1] : Elem | -| C_ctor.cs:11:17:11:18 | this : C_no_ctor [field s1] : Elem | C_ctor.cs:13:19:13:20 | this access : C_no_ctor [field s1] : Elem | -| C_ctor.cs:11:17:11:18 | this : C_no_ctor [field s1] : Elem | C_ctor.cs:13:19:13:20 | this access : C_no_ctor [field s1] : Elem | -| C_ctor.cs:13:19:13:20 | this access : C_no_ctor [field s1] : Elem | C_ctor.cs:13:19:13:20 | access to field s1 | -| C_ctor.cs:13:19:13:20 | this access : C_no_ctor [field s1] : Elem | C_ctor.cs:13:19:13:20 | access to field s1 | -| C_ctor.cs:19:18:19:19 | [post] this access : C_with_ctor [field s1] : Elem | C_ctor.cs:23:25:23:41 | object creation of type C_with_ctor : C_with_ctor [field s1] : Elem | -| C_ctor.cs:19:18:19:19 | [post] this access : C_with_ctor [field s1] : Elem | C_ctor.cs:23:25:23:41 | object creation of type C_with_ctor : C_with_ctor [field s1] : Elem | -| C_ctor.cs:19:23:19:42 | call to method Source : Elem | C_ctor.cs:19:18:19:19 | [post] this access : C_with_ctor [field s1] : Elem | -| C_ctor.cs:19:23:19:42 | call to method Source : Elem | C_ctor.cs:19:18:19:19 | [post] this access : C_with_ctor [field s1] : Elem | -| C_ctor.cs:23:25:23:41 | object creation of type C_with_ctor : C_with_ctor [field s1] : Elem | C_ctor.cs:24:9:24:9 | access to local variable c : C_with_ctor [field s1] : Elem | -| C_ctor.cs:23:25:23:41 | object creation of type C_with_ctor : C_with_ctor [field s1] : Elem | C_ctor.cs:24:9:24:9 | access to local variable c : C_with_ctor [field s1] : Elem | -| C_ctor.cs:24:9:24:9 | access to local variable c : C_with_ctor [field s1] : Elem | C_ctor.cs:29:17:29:18 | this : C_with_ctor [field s1] : Elem | -| C_ctor.cs:24:9:24:9 | access to local variable c : C_with_ctor [field s1] : Elem | C_ctor.cs:29:17:29:18 | this : C_with_ctor [field s1] : Elem | -| C_ctor.cs:29:17:29:18 | this : C_with_ctor [field s1] : Elem | C_ctor.cs:31:19:31:20 | this access : C_with_ctor [field s1] : Elem | -| C_ctor.cs:29:17:29:18 | this : C_with_ctor [field s1] : Elem | C_ctor.cs:31:19:31:20 | this access : C_with_ctor [field s1] : Elem | -| C_ctor.cs:31:19:31:20 | this access : C_with_ctor [field s1] : Elem | C_ctor.cs:31:19:31:20 | access to field s1 | -| C_ctor.cs:31:19:31:20 | this access : C_with_ctor [field s1] : Elem | C_ctor.cs:31:19:31:20 | access to field s1 | -| D.cs:8:9:8:11 | this : D [field trivialPropField] : Object | D.cs:8:22:8:25 | this access : D [field trivialPropField] : Object | -| D.cs:8:9:8:11 | this : D [field trivialPropField] : Object | D.cs:8:22:8:25 | this access : D [field trivialPropField] : Object | -| D.cs:8:22:8:25 | this access : D [field trivialPropField] : Object | D.cs:8:22:8:42 | access to field trivialPropField : Object | -| D.cs:8:22:8:25 | this access : D [field trivialPropField] : Object | D.cs:8:22:8:42 | access to field trivialPropField : Object | -| D.cs:9:9:9:11 | value : Object | D.cs:9:39:9:43 | access to parameter value : Object | -| D.cs:9:9:9:11 | value : Object | D.cs:9:39:9:43 | access to parameter value : Object | -| D.cs:9:39:9:43 | access to parameter value : Object | D.cs:9:15:9:18 | [post] this access : D [field trivialPropField] : Object | -| D.cs:9:39:9:43 | access to parameter value : Object | D.cs:9:15:9:18 | [post] this access : D [field trivialPropField] : Object | -| D.cs:14:9:14:11 | this : D [field trivialPropField] : Object | D.cs:14:22:14:25 | this access : D [field trivialPropField] : Object | -| D.cs:14:9:14:11 | this : D [field trivialPropField] : Object | D.cs:14:22:14:25 | this access : D [field trivialPropField] : Object | -| D.cs:14:22:14:25 | this access : D [field trivialPropField] : Object | D.cs:14:22:14:42 | access to field trivialPropField : Object | -| D.cs:14:22:14:25 | this access : D [field trivialPropField] : Object | D.cs:14:22:14:42 | access to field trivialPropField : Object | -| D.cs:15:9:15:11 | value : Object | D.cs:15:34:15:38 | access to parameter value : Object | -| D.cs:15:9:15:11 | value : Object | D.cs:15:34:15:38 | access to parameter value : Object | -| D.cs:15:34:15:38 | access to parameter value : Object | D.cs:9:9:9:11 | value : Object | -| D.cs:15:34:15:38 | access to parameter value : Object | D.cs:9:9:9:11 | value : Object | -| D.cs:15:34:15:38 | access to parameter value : Object | D.cs:15:15:15:18 | [post] this access : D [field trivialPropField] : Object | -| D.cs:15:34:15:38 | access to parameter value : Object | D.cs:15:15:15:18 | [post] this access : D [field trivialPropField] : Object | -| D.cs:18:28:18:29 | o1 : Object | D.cs:21:24:21:25 | access to parameter o1 : Object | -| D.cs:18:28:18:29 | o1 : Object | D.cs:21:24:21:25 | access to parameter o1 : Object | -| D.cs:18:39:18:40 | o2 : Object | D.cs:22:27:22:28 | access to parameter o2 : Object | -| D.cs:18:39:18:40 | o2 : Object | D.cs:22:27:22:28 | access to parameter o2 : Object | -| D.cs:18:50:18:51 | o3 : Object | D.cs:23:27:23:28 | access to parameter o3 : Object | -| D.cs:18:50:18:51 | o3 : Object | D.cs:23:27:23:28 | access to parameter o3 : Object | -| D.cs:21:9:21:11 | [post] access to local variable ret : D [property AutoProp] : Object | D.cs:24:16:24:18 | access to local variable ret : D [property AutoProp] : Object | -| D.cs:21:9:21:11 | [post] access to local variable ret : D [property AutoProp] : Object | D.cs:24:16:24:18 | access to local variable ret : D [property AutoProp] : Object | -| D.cs:21:24:21:25 | access to parameter o1 : Object | D.cs:21:9:21:11 | [post] access to local variable ret : D [property AutoProp] : Object | -| D.cs:21:24:21:25 | access to parameter o1 : Object | D.cs:21:9:21:11 | [post] access to local variable ret : D [property AutoProp] : Object | -| D.cs:22:9:22:11 | [post] access to local variable ret : D [field trivialPropField] : Object | D.cs:24:16:24:18 | access to local variable ret : D [field trivialPropField] : Object | -| D.cs:22:9:22:11 | [post] access to local variable ret : D [field trivialPropField] : Object | D.cs:24:16:24:18 | access to local variable ret : D [field trivialPropField] : Object | -| D.cs:22:27:22:28 | access to parameter o2 : Object | D.cs:9:9:9:11 | value : Object | -| D.cs:22:27:22:28 | access to parameter o2 : Object | D.cs:9:9:9:11 | value : Object | -| D.cs:22:27:22:28 | access to parameter o2 : Object | D.cs:22:9:22:11 | [post] access to local variable ret : D [field trivialPropField] : Object | -| D.cs:22:27:22:28 | access to parameter o2 : Object | D.cs:22:9:22:11 | [post] access to local variable ret : D [field trivialPropField] : Object | -| D.cs:23:9:23:11 | [post] access to local variable ret : D [field trivialPropField] : Object | D.cs:24:16:24:18 | access to local variable ret : D [field trivialPropField] : Object | -| D.cs:23:9:23:11 | [post] access to local variable ret : D [field trivialPropField] : Object | D.cs:24:16:24:18 | access to local variable ret : D [field trivialPropField] : Object | -| D.cs:23:27:23:28 | access to parameter o3 : Object | D.cs:15:9:15:11 | value : Object | -| D.cs:23:27:23:28 | access to parameter o3 : Object | D.cs:15:9:15:11 | value : Object | -| D.cs:23:27:23:28 | access to parameter o3 : Object | D.cs:23:9:23:11 | [post] access to local variable ret : D [field trivialPropField] : Object | -| D.cs:23:27:23:28 | access to parameter o3 : Object | D.cs:23:9:23:11 | [post] access to local variable ret : D [field trivialPropField] : Object | -| D.cs:29:17:29:33 | call to method Source : Object | D.cs:31:24:31:24 | access to local variable o : Object | -| D.cs:29:17:29:33 | call to method Source : Object | D.cs:31:24:31:24 | access to local variable o : Object | -| D.cs:31:17:31:37 | call to method Create : D [property AutoProp] : Object | D.cs:32:14:32:14 | access to local variable d : D [property AutoProp] : Object | -| D.cs:31:17:31:37 | call to method Create : D [property AutoProp] : Object | D.cs:32:14:32:14 | access to local variable d : D [property AutoProp] : Object | -| D.cs:31:24:31:24 | access to local variable o : Object | D.cs:18:28:18:29 | o1 : Object | -| D.cs:31:24:31:24 | access to local variable o : Object | D.cs:18:28:18:29 | o1 : Object | -| D.cs:31:24:31:24 | access to local variable o : Object | D.cs:31:17:31:37 | call to method Create : D [property AutoProp] : Object | -| D.cs:31:24:31:24 | access to local variable o : Object | D.cs:31:17:31:37 | call to method Create : D [property AutoProp] : Object | -| D.cs:32:14:32:14 | access to local variable d : D [property AutoProp] : Object | D.cs:32:14:32:23 | access to property AutoProp | -| D.cs:32:14:32:14 | access to local variable d : D [property AutoProp] : Object | D.cs:32:14:32:23 | access to property AutoProp | -| D.cs:37:13:37:49 | call to method Create : D [field trivialPropField] : Object | D.cs:39:14:39:14 | access to local variable d : D [field trivialPropField] : Object | -| D.cs:37:13:37:49 | call to method Create : D [field trivialPropField] : Object | D.cs:39:14:39:14 | access to local variable d : D [field trivialPropField] : Object | -| D.cs:37:13:37:49 | call to method Create : D [field trivialPropField] : Object | D.cs:40:14:40:14 | access to local variable d : D [field trivialPropField] : Object | -| D.cs:37:13:37:49 | call to method Create : D [field trivialPropField] : Object | D.cs:40:14:40:14 | access to local variable d : D [field trivialPropField] : Object | -| D.cs:37:13:37:49 | call to method Create : D [field trivialPropField] : Object | D.cs:41:14:41:14 | access to local variable d : D [field trivialPropField] : Object | -| D.cs:37:13:37:49 | call to method Create : D [field trivialPropField] : Object | D.cs:41:14:41:14 | access to local variable d : D [field trivialPropField] : Object | -| D.cs:37:26:37:42 | call to method Source : Object | D.cs:18:39:18:40 | o2 : Object | -| D.cs:37:26:37:42 | call to method Source : Object | D.cs:18:39:18:40 | o2 : Object | -| D.cs:37:26:37:42 | call to method Source : Object | D.cs:37:13:37:49 | call to method Create : D [field trivialPropField] : Object | -| D.cs:37:26:37:42 | call to method Source : Object | D.cs:37:13:37:49 | call to method Create : D [field trivialPropField] : Object | -| D.cs:39:14:39:14 | access to local variable d : D [field trivialPropField] : Object | D.cs:8:9:8:11 | this : D [field trivialPropField] : Object | -| D.cs:39:14:39:14 | access to local variable d : D [field trivialPropField] : Object | D.cs:8:9:8:11 | this : D [field trivialPropField] : Object | -| D.cs:39:14:39:14 | access to local variable d : D [field trivialPropField] : Object | D.cs:39:14:39:26 | access to property TrivialProp | -| D.cs:39:14:39:14 | access to local variable d : D [field trivialPropField] : Object | D.cs:39:14:39:26 | access to property TrivialProp | -| D.cs:40:14:40:14 | access to local variable d : D [field trivialPropField] : Object | D.cs:40:14:40:31 | access to field trivialPropField | -| D.cs:40:14:40:14 | access to local variable d : D [field trivialPropField] : Object | D.cs:40:14:40:31 | access to field trivialPropField | -| D.cs:41:14:41:14 | access to local variable d : D [field trivialPropField] : Object | D.cs:14:9:14:11 | this : D [field trivialPropField] : Object | -| D.cs:41:14:41:14 | access to local variable d : D [field trivialPropField] : Object | D.cs:14:9:14:11 | this : D [field trivialPropField] : Object | -| D.cs:41:14:41:14 | access to local variable d : D [field trivialPropField] : Object | D.cs:41:14:41:26 | access to property ComplexProp | -| D.cs:41:14:41:14 | access to local variable d : D [field trivialPropField] : Object | D.cs:41:14:41:26 | access to property ComplexProp | -| D.cs:43:13:43:49 | call to method Create : D [field trivialPropField] : Object | D.cs:45:14:45:14 | access to local variable d : D [field trivialPropField] : Object | -| D.cs:43:13:43:49 | call to method Create : D [field trivialPropField] : Object | D.cs:45:14:45:14 | access to local variable d : D [field trivialPropField] : Object | -| D.cs:43:13:43:49 | call to method Create : D [field trivialPropField] : Object | D.cs:46:14:46:14 | access to local variable d : D [field trivialPropField] : Object | -| D.cs:43:13:43:49 | call to method Create : D [field trivialPropField] : Object | D.cs:46:14:46:14 | access to local variable d : D [field trivialPropField] : Object | -| D.cs:43:13:43:49 | call to method Create : D [field trivialPropField] : Object | D.cs:47:14:47:14 | access to local variable d : D [field trivialPropField] : Object | -| D.cs:43:13:43:49 | call to method Create : D [field trivialPropField] : Object | D.cs:47:14:47:14 | access to local variable d : D [field trivialPropField] : Object | -| D.cs:43:32:43:48 | call to method Source : Object | D.cs:18:50:18:51 | o3 : Object | -| D.cs:43:32:43:48 | call to method Source : Object | D.cs:18:50:18:51 | o3 : Object | -| D.cs:43:32:43:48 | call to method Source : Object | D.cs:43:13:43:49 | call to method Create : D [field trivialPropField] : Object | -| D.cs:43:32:43:48 | call to method Source : Object | D.cs:43:13:43:49 | call to method Create : D [field trivialPropField] : Object | -| D.cs:45:14:45:14 | access to local variable d : D [field trivialPropField] : Object | D.cs:8:9:8:11 | this : D [field trivialPropField] : Object | -| D.cs:45:14:45:14 | access to local variable d : D [field trivialPropField] : Object | D.cs:8:9:8:11 | this : D [field trivialPropField] : Object | -| D.cs:45:14:45:14 | access to local variable d : D [field trivialPropField] : Object | D.cs:45:14:45:26 | access to property TrivialProp | -| D.cs:45:14:45:14 | access to local variable d : D [field trivialPropField] : Object | D.cs:45:14:45:26 | access to property TrivialProp | -| D.cs:46:14:46:14 | access to local variable d : D [field trivialPropField] : Object | D.cs:46:14:46:31 | access to field trivialPropField | -| D.cs:46:14:46:14 | access to local variable d : D [field trivialPropField] : Object | D.cs:46:14:46:31 | access to field trivialPropField | -| D.cs:47:14:47:14 | access to local variable d : D [field trivialPropField] : Object | D.cs:14:9:14:11 | this : D [field trivialPropField] : Object | -| D.cs:47:14:47:14 | access to local variable d : D [field trivialPropField] : Object | D.cs:14:9:14:11 | this : D [field trivialPropField] : Object | -| D.cs:47:14:47:14 | access to local variable d : D [field trivialPropField] : Object | D.cs:47:14:47:26 | access to property ComplexProp | -| D.cs:47:14:47:14 | access to local variable d : D [field trivialPropField] : Object | D.cs:47:14:47:26 | access to property ComplexProp | -| E.cs:8:29:8:29 | o : Object | E.cs:11:21:11:21 | access to parameter o : Object | -| E.cs:8:29:8:29 | o : Object | E.cs:11:21:11:21 | access to parameter o : Object | -| E.cs:11:9:11:11 | [post] access to local variable ret : S [field Field] : Object | E.cs:12:16:12:18 | access to local variable ret : S [field Field] : Object | -| E.cs:11:9:11:11 | [post] access to local variable ret : S [field Field] : Object | E.cs:12:16:12:18 | access to local variable ret : S [field Field] : Object | -| E.cs:11:21:11:21 | access to parameter o : Object | E.cs:11:9:11:11 | [post] access to local variable ret : S [field Field] : Object | -| E.cs:11:21:11:21 | access to parameter o : Object | E.cs:11:9:11:11 | [post] access to local variable ret : S [field Field] : Object | -| E.cs:22:17:22:33 | call to method Source : Object | E.cs:23:25:23:25 | access to local variable o : Object | -| E.cs:22:17:22:33 | call to method Source : Object | E.cs:23:25:23:25 | access to local variable o : Object | -| E.cs:23:17:23:26 | call to method CreateS : S [field Field] : Object | E.cs:24:14:24:14 | access to local variable s : S [field Field] : Object | -| E.cs:23:17:23:26 | call to method CreateS : S [field Field] : Object | E.cs:24:14:24:14 | access to local variable s : S [field Field] : Object | -| E.cs:23:25:23:25 | access to local variable o : Object | E.cs:8:29:8:29 | o : Object | -| E.cs:23:25:23:25 | access to local variable o : Object | E.cs:8:29:8:29 | o : Object | -| E.cs:23:25:23:25 | access to local variable o : Object | E.cs:23:17:23:26 | call to method CreateS : S [field Field] : Object | -| E.cs:23:25:23:25 | access to local variable o : Object | E.cs:23:17:23:26 | call to method CreateS : S [field Field] : Object | -| E.cs:24:14:24:14 | access to local variable s : S [field Field] : Object | E.cs:24:14:24:20 | access to field Field | -| E.cs:24:14:24:14 | access to local variable s : S [field Field] : Object | E.cs:24:14:24:20 | access to field Field | -| E.cs:43:46:43:46 | o : Object | E.cs:46:22:46:22 | access to parameter o : Object | -| E.cs:43:46:43:46 | o : Object | E.cs:46:22:46:22 | access to parameter o : Object | -| E.cs:46:22:46:22 | access to parameter o : Object | E.cs:46:9:46:9 | [post] access to parameter s : RefS [field RefField] : Object | -| E.cs:46:22:46:22 | access to parameter o : Object | E.cs:46:9:46:9 | [post] access to parameter s : RefS [field RefField] : Object | -| E.cs:54:21:54:37 | call to method Source : Object | E.cs:55:29:55:33 | access to local variable taint : Object | -| E.cs:54:21:54:37 | call to method Source : Object | E.cs:55:29:55:33 | access to local variable taint : Object | -| E.cs:55:23:55:26 | [post] access to local variable refs : RefS [field RefField] : Object | E.cs:57:14:57:17 | access to local variable refs : RefS [field RefField] : Object | -| E.cs:55:23:55:26 | [post] access to local variable refs : RefS [field RefField] : Object | E.cs:57:14:57:17 | access to local variable refs : RefS [field RefField] : Object | -| E.cs:55:29:55:33 | access to local variable taint : Object | E.cs:43:46:43:46 | o : Object | -| E.cs:55:29:55:33 | access to local variable taint : Object | E.cs:43:46:43:46 | o : Object | -| E.cs:55:29:55:33 | access to local variable taint : Object | E.cs:55:23:55:26 | [post] access to local variable refs : RefS [field RefField] : Object | -| E.cs:55:29:55:33 | access to local variable taint : Object | E.cs:55:23:55:26 | [post] access to local variable refs : RefS [field RefField] : Object | -| E.cs:57:14:57:17 | access to local variable refs : RefS [field RefField] : Object | E.cs:57:14:57:26 | access to field RefField | -| E.cs:57:14:57:17 | access to local variable refs : RefS [field RefField] : Object | E.cs:57:14:57:26 | access to field RefField | -| F.cs:6:28:6:29 | o1 : Object | F.cs:6:65:6:66 | access to parameter o1 : Object | -| F.cs:6:28:6:29 | o1 : Object | F.cs:6:65:6:66 | access to parameter o1 : Object | -| F.cs:6:39:6:40 | o2 : Object | F.cs:6:78:6:79 | access to parameter o2 : Object | -| F.cs:6:39:6:40 | o2 : Object | F.cs:6:78:6:79 | access to parameter o2 : Object | -| F.cs:6:54:6:81 | { ..., ... } : F [field Field1] : Object | F.cs:6:46:6:81 | object creation of type F : F [field Field1] : Object | -| F.cs:6:54:6:81 | { ..., ... } : F [field Field1] : Object | F.cs:6:46:6:81 | object creation of type F : F [field Field1] : Object | -| F.cs:6:54:6:81 | { ..., ... } : F [field Field2] : Object | F.cs:6:46:6:81 | object creation of type F : F [field Field2] : Object | -| F.cs:6:54:6:81 | { ..., ... } : F [field Field2] : Object | F.cs:6:46:6:81 | object creation of type F : F [field Field2] : Object | -| F.cs:6:65:6:66 | access to parameter o1 : Object | F.cs:6:54:6:81 | { ..., ... } : F [field Field1] : Object | -| F.cs:6:65:6:66 | access to parameter o1 : Object | F.cs:6:54:6:81 | { ..., ... } : F [field Field1] : Object | -| F.cs:6:78:6:79 | access to parameter o2 : Object | F.cs:6:54:6:81 | { ..., ... } : F [field Field2] : Object | -| F.cs:6:78:6:79 | access to parameter o2 : Object | F.cs:6:54:6:81 | { ..., ... } : F [field Field2] : Object | -| F.cs:10:17:10:33 | call to method Source : Object | F.cs:11:24:11:24 | access to local variable o : Object | -| F.cs:10:17:10:33 | call to method Source : Object | F.cs:11:24:11:24 | access to local variable o : Object | -| F.cs:11:17:11:31 | call to method Create : F [field Field1] : Object | F.cs:12:14:12:14 | access to local variable f : F [field Field1] : Object | -| F.cs:11:17:11:31 | call to method Create : F [field Field1] : Object | F.cs:12:14:12:14 | access to local variable f : F [field Field1] : Object | -| F.cs:11:24:11:24 | access to local variable o : Object | F.cs:6:28:6:29 | o1 : Object | -| F.cs:11:24:11:24 | access to local variable o : Object | F.cs:6:28:6:29 | o1 : Object | -| F.cs:11:24:11:24 | access to local variable o : Object | F.cs:11:17:11:31 | call to method Create : F [field Field1] : Object | -| F.cs:11:24:11:24 | access to local variable o : Object | F.cs:11:17:11:31 | call to method Create : F [field Field1] : Object | -| F.cs:12:14:12:14 | access to local variable f : F [field Field1] : Object | F.cs:12:14:12:21 | access to field Field1 | -| F.cs:12:14:12:14 | access to local variable f : F [field Field1] : Object | F.cs:12:14:12:21 | access to field Field1 | -| F.cs:15:13:15:43 | call to method Create : F [field Field2] : Object | F.cs:17:14:17:14 | access to local variable f : F [field Field2] : Object | -| F.cs:15:13:15:43 | call to method Create : F [field Field2] : Object | F.cs:17:14:17:14 | access to local variable f : F [field Field2] : Object | -| F.cs:15:26:15:42 | call to method Source : Object | F.cs:6:39:6:40 | o2 : Object | -| F.cs:15:26:15:42 | call to method Source : Object | F.cs:6:39:6:40 | o2 : Object | -| F.cs:15:26:15:42 | call to method Source : Object | F.cs:15:13:15:43 | call to method Create : F [field Field2] : Object | -| F.cs:15:26:15:42 | call to method Source : Object | F.cs:15:13:15:43 | call to method Create : F [field Field2] : Object | -| F.cs:17:14:17:14 | access to local variable f : F [field Field2] : Object | F.cs:17:14:17:21 | access to field Field2 | -| F.cs:17:14:17:14 | access to local variable f : F [field Field2] : Object | F.cs:17:14:17:21 | access to field Field2 | -| F.cs:19:21:19:50 | { ..., ... } : F [field Field1] : Object | F.cs:20:14:20:14 | access to local variable f : F [field Field1] : Object | -| F.cs:19:21:19:50 | { ..., ... } : F [field Field1] : Object | F.cs:20:14:20:14 | access to local variable f : F [field Field1] : Object | -| F.cs:19:32:19:48 | call to method Source : Object | F.cs:19:21:19:50 | { ..., ... } : F [field Field1] : Object | -| F.cs:19:32:19:48 | call to method Source : Object | F.cs:19:21:19:50 | { ..., ... } : F [field Field1] : Object | -| F.cs:20:14:20:14 | access to local variable f : F [field Field1] : Object | F.cs:20:14:20:21 | access to field Field1 | -| F.cs:20:14:20:14 | access to local variable f : F [field Field1] : Object | F.cs:20:14:20:21 | access to field Field1 | -| F.cs:23:21:23:50 | { ..., ... } : F [field Field2] : Object | F.cs:25:14:25:14 | access to local variable f : F [field Field2] : Object | -| F.cs:23:21:23:50 | { ..., ... } : F [field Field2] : Object | F.cs:25:14:25:14 | access to local variable f : F [field Field2] : Object | -| F.cs:23:32:23:48 | call to method Source : Object | F.cs:23:21:23:50 | { ..., ... } : F [field Field2] : Object | -| F.cs:23:32:23:48 | call to method Source : Object | F.cs:23:21:23:50 | { ..., ... } : F [field Field2] : Object | -| F.cs:25:14:25:14 | access to local variable f : F [field Field2] : Object | F.cs:25:14:25:21 | access to field Field2 | -| F.cs:25:14:25:14 | access to local variable f : F [field Field2] : Object | F.cs:25:14:25:21 | access to field Field2 | -| F.cs:30:17:30:33 | call to method Source : Object | F.cs:32:27:32:27 | access to local variable o : Object | -| F.cs:30:17:30:33 | call to method Source : Object | F.cs:32:27:32:27 | access to local variable o : Object | -| F.cs:32:17:32:40 | { ..., ... } : <>__AnonType0 [property X] : Object | F.cs:33:14:33:14 | access to local variable a : <>__AnonType0 [property X] : Object | -| F.cs:32:17:32:40 | { ..., ... } : <>__AnonType0 [property X] : Object | F.cs:33:14:33:14 | access to local variable a : <>__AnonType0 [property X] : Object | -| F.cs:32:27:32:27 | access to local variable o : Object | F.cs:32:17:32:40 | { ..., ... } : <>__AnonType0 [property X] : Object | -| F.cs:32:27:32:27 | access to local variable o : Object | F.cs:32:17:32:40 | { ..., ... } : <>__AnonType0 [property X] : Object | -| F.cs:33:14:33:14 | access to local variable a : <>__AnonType0 [property X] : Object | F.cs:33:14:33:16 | access to property X | -| F.cs:33:14:33:14 | access to local variable a : <>__AnonType0 [property X] : Object | F.cs:33:14:33:16 | access to property X | -| G.cs:7:18:7:32 | call to method Source : Elem | G.cs:9:23:9:23 | access to local variable e : Elem | -| G.cs:7:18:7:32 | call to method Source : Elem | G.cs:9:23:9:23 | access to local variable e : Elem | -| G.cs:9:9:9:9 | [post] access to local variable b : Box2 [field Box1, field Elem] : Elem | G.cs:10:18:10:18 | access to local variable b : Box2 [field Box1, field Elem] : Elem | -| G.cs:9:9:9:9 | [post] access to local variable b : Box2 [field Box1, field Elem] : Elem | G.cs:10:18:10:18 | access to local variable b : Box2 [field Box1, field Elem] : Elem | -| G.cs:9:9:9:14 | [post] access to field Box1 : Box1 [field Elem] : Elem | G.cs:9:9:9:9 | [post] access to local variable b : Box2 [field Box1, field Elem] : Elem | -| G.cs:9:9:9:14 | [post] access to field Box1 : Box1 [field Elem] : Elem | G.cs:9:9:9:9 | [post] access to local variable b : Box2 [field Box1, field Elem] : Elem | -| G.cs:9:23:9:23 | access to local variable e : Elem | G.cs:9:9:9:14 | [post] access to field Box1 : Box1 [field Elem] : Elem | -| G.cs:9:23:9:23 | access to local variable e : Elem | G.cs:9:9:9:14 | [post] access to field Box1 : Box1 [field Elem] : Elem | -| G.cs:10:18:10:18 | access to local variable b : Box2 [field Box1, field Elem] : Elem | G.cs:37:38:37:39 | b2 : Box2 [field Box1, field Elem] : Elem | -| G.cs:10:18:10:18 | access to local variable b : Box2 [field Box1, field Elem] : Elem | G.cs:37:38:37:39 | b2 : Box2 [field Box1, field Elem] : Elem | -| G.cs:15:18:15:32 | call to method Source : Elem | G.cs:17:24:17:24 | access to local variable e : Elem | -| G.cs:15:18:15:32 | call to method Source : Elem | G.cs:17:24:17:24 | access to local variable e : Elem | -| G.cs:17:9:17:9 | [post] access to local variable b : Box2 [field Box1, field Elem] : Elem | G.cs:18:18:18:18 | access to local variable b : Box2 [field Box1, field Elem] : Elem | -| G.cs:17:9:17:9 | [post] access to local variable b : Box2 [field Box1, field Elem] : Elem | G.cs:18:18:18:18 | access to local variable b : Box2 [field Box1, field Elem] : Elem | -| G.cs:17:9:17:14 | [post] access to field Box1 : Box1 [field Elem] : Elem | G.cs:17:9:17:9 | [post] access to local variable b : Box2 [field Box1, field Elem] : Elem | -| G.cs:17:9:17:14 | [post] access to field Box1 : Box1 [field Elem] : Elem | G.cs:17:9:17:9 | [post] access to local variable b : Box2 [field Box1, field Elem] : Elem | -| G.cs:17:24:17:24 | access to local variable e : Elem | G.cs:17:9:17:14 | [post] access to field Box1 : Box1 [field Elem] : Elem | -| G.cs:17:24:17:24 | access to local variable e : Elem | G.cs:17:9:17:14 | [post] access to field Box1 : Box1 [field Elem] : Elem | -| G.cs:17:24:17:24 | access to local variable e : Elem | G.cs:64:34:64:34 | e : Elem | -| G.cs:17:24:17:24 | access to local variable e : Elem | G.cs:64:34:64:34 | e : Elem | -| G.cs:18:18:18:18 | access to local variable b : Box2 [field Box1, field Elem] : Elem | G.cs:37:38:37:39 | b2 : Box2 [field Box1, field Elem] : Elem | -| G.cs:18:18:18:18 | access to local variable b : Box2 [field Box1, field Elem] : Elem | G.cs:37:38:37:39 | b2 : Box2 [field Box1, field Elem] : Elem | -| G.cs:23:18:23:32 | call to method Source : Elem | G.cs:25:28:25:28 | access to local variable e : Elem | -| G.cs:23:18:23:32 | call to method Source : Elem | G.cs:25:28:25:28 | access to local variable e : Elem | -| G.cs:25:9:25:9 | [post] access to local variable b : Box2 [field Box1, field Elem] : Elem | G.cs:26:18:26:18 | access to local variable b : Box2 [field Box1, field Elem] : Elem | -| G.cs:25:9:25:9 | [post] access to local variable b : Box2 [field Box1, field Elem] : Elem | G.cs:26:18:26:18 | access to local variable b : Box2 [field Box1, field Elem] : Elem | -| G.cs:25:9:25:19 | [post] call to method GetBox1 : Box1 [field Elem] : Elem | G.cs:25:9:25:9 | [post] access to local variable b : Box2 [field Box1, field Elem] : Elem | -| G.cs:25:9:25:19 | [post] call to method GetBox1 : Box1 [field Elem] : Elem | G.cs:25:9:25:9 | [post] access to local variable b : Box2 [field Box1, field Elem] : Elem | -| G.cs:25:28:25:28 | access to local variable e : Elem | G.cs:25:9:25:19 | [post] call to method GetBox1 : Box1 [field Elem] : Elem | -| G.cs:25:28:25:28 | access to local variable e : Elem | G.cs:25:9:25:19 | [post] call to method GetBox1 : Box1 [field Elem] : Elem | -| G.cs:26:18:26:18 | access to local variable b : Box2 [field Box1, field Elem] : Elem | G.cs:37:38:37:39 | b2 : Box2 [field Box1, field Elem] : Elem | -| G.cs:26:18:26:18 | access to local variable b : Box2 [field Box1, field Elem] : Elem | G.cs:37:38:37:39 | b2 : Box2 [field Box1, field Elem] : Elem | -| G.cs:31:18:31:32 | call to method Source : Elem | G.cs:33:29:33:29 | access to local variable e : Elem | -| G.cs:31:18:31:32 | call to method Source : Elem | G.cs:33:29:33:29 | access to local variable e : Elem | -| G.cs:33:9:33:9 | [post] access to local variable b : Box2 [field Box1, field Elem] : Elem | G.cs:34:18:34:18 | access to local variable b : Box2 [field Box1, field Elem] : Elem | -| G.cs:33:9:33:9 | [post] access to local variable b : Box2 [field Box1, field Elem] : Elem | G.cs:34:18:34:18 | access to local variable b : Box2 [field Box1, field Elem] : Elem | -| G.cs:33:9:33:19 | [post] call to method GetBox1 : Box1 [field Elem] : Elem | G.cs:33:9:33:9 | [post] access to local variable b : Box2 [field Box1, field Elem] : Elem | -| G.cs:33:9:33:19 | [post] call to method GetBox1 : Box1 [field Elem] : Elem | G.cs:33:9:33:9 | [post] access to local variable b : Box2 [field Box1, field Elem] : Elem | -| G.cs:33:29:33:29 | access to local variable e : Elem | G.cs:33:9:33:19 | [post] call to method GetBox1 : Box1 [field Elem] : Elem | -| G.cs:33:29:33:29 | access to local variable e : Elem | G.cs:33:9:33:19 | [post] call to method GetBox1 : Box1 [field Elem] : Elem | -| G.cs:33:29:33:29 | access to local variable e : Elem | G.cs:64:34:64:34 | e : Elem | -| G.cs:33:29:33:29 | access to local variable e : Elem | G.cs:64:34:64:34 | e : Elem | -| G.cs:34:18:34:18 | access to local variable b : Box2 [field Box1, field Elem] : Elem | G.cs:37:38:37:39 | b2 : Box2 [field Box1, field Elem] : Elem | -| G.cs:34:18:34:18 | access to local variable b : Box2 [field Box1, field Elem] : Elem | G.cs:37:38:37:39 | b2 : Box2 [field Box1, field Elem] : Elem | -| G.cs:37:38:37:39 | b2 : Box2 [field Box1, field Elem] : Elem | G.cs:39:14:39:15 | access to parameter b2 : Box2 [field Box1, field Elem] : Elem | -| G.cs:37:38:37:39 | b2 : Box2 [field Box1, field Elem] : Elem | G.cs:39:14:39:15 | access to parameter b2 : Box2 [field Box1, field Elem] : Elem | -| G.cs:39:14:39:15 | access to parameter b2 : Box2 [field Box1, field Elem] : Elem | G.cs:39:14:39:25 | call to method GetBox1 : Box1 [field Elem] : Elem | -| G.cs:39:14:39:15 | access to parameter b2 : Box2 [field Box1, field Elem] : Elem | G.cs:39:14:39:25 | call to method GetBox1 : Box1 [field Elem] : Elem | -| G.cs:39:14:39:15 | access to parameter b2 : Box2 [field Box1, field Elem] : Elem | G.cs:71:21:71:27 | this : Box2 [field Box1, field Elem] : Elem | -| G.cs:39:14:39:15 | access to parameter b2 : Box2 [field Box1, field Elem] : Elem | G.cs:71:21:71:27 | this : Box2 [field Box1, field Elem] : Elem | -| G.cs:39:14:39:25 | call to method GetBox1 : Box1 [field Elem] : Elem | G.cs:39:14:39:35 | call to method GetElem | -| G.cs:39:14:39:25 | call to method GetBox1 : Box1 [field Elem] : Elem | G.cs:39:14:39:35 | call to method GetElem | -| G.cs:39:14:39:25 | call to method GetBox1 : Box1 [field Elem] : Elem | G.cs:63:21:63:27 | this : Box1 [field Elem] : Elem | -| G.cs:39:14:39:25 | call to method GetBox1 : Box1 [field Elem] : Elem | G.cs:63:21:63:27 | this : Box1 [field Elem] : Elem | -| G.cs:44:18:44:32 | call to method Source : Elem | G.cs:46:30:46:30 | access to local variable e : Elem | -| G.cs:44:18:44:32 | call to method Source : Elem | G.cs:46:30:46:30 | access to local variable e : Elem | -| G.cs:46:9:46:16 | [post] access to field boxfield : Box2 [field Box1, field Elem] : Elem | G.cs:46:9:46:16 | [post] this access : G [field boxfield, field Box1, field Elem] : Elem | -| G.cs:46:9:46:16 | [post] access to field boxfield : Box2 [field Box1, field Elem] : Elem | G.cs:46:9:46:16 | [post] this access : G [field boxfield, field Box1, field Elem] : Elem | -| G.cs:46:9:46:16 | [post] this access : G [field boxfield, field Box1, field Elem] : Elem | G.cs:47:9:47:13 | this access : G [field boxfield, field Box1, field Elem] : Elem | -| G.cs:46:9:46:16 | [post] this access : G [field boxfield, field Box1, field Elem] : Elem | G.cs:47:9:47:13 | this access : G [field boxfield, field Box1, field Elem] : Elem | -| G.cs:46:9:46:21 | [post] access to field Box1 : Box1 [field Elem] : Elem | G.cs:46:9:46:16 | [post] access to field boxfield : Box2 [field Box1, field Elem] : Elem | -| G.cs:46:9:46:21 | [post] access to field Box1 : Box1 [field Elem] : Elem | G.cs:46:9:46:16 | [post] access to field boxfield : Box2 [field Box1, field Elem] : Elem | -| G.cs:46:30:46:30 | access to local variable e : Elem | G.cs:46:9:46:21 | [post] access to field Box1 : Box1 [field Elem] : Elem | -| G.cs:46:30:46:30 | access to local variable e : Elem | G.cs:46:9:46:21 | [post] access to field Box1 : Box1 [field Elem] : Elem | -| G.cs:47:9:47:13 | this access : G [field boxfield, field Box1, field Elem] : Elem | G.cs:50:18:50:20 | this : G [field boxfield, field Box1, field Elem] : Elem | -| G.cs:47:9:47:13 | this access : G [field boxfield, field Box1, field Elem] : Elem | G.cs:50:18:50:20 | this : G [field boxfield, field Box1, field Elem] : Elem | -| G.cs:50:18:50:20 | this : G [field boxfield, field Box1, field Elem] : Elem | G.cs:52:14:52:21 | this access : G [field boxfield, field Box1, field Elem] : Elem | -| G.cs:50:18:50:20 | this : G [field boxfield, field Box1, field Elem] : Elem | G.cs:52:14:52:21 | this access : G [field boxfield, field Box1, field Elem] : Elem | -| G.cs:52:14:52:21 | access to field boxfield : Box2 [field Box1, field Elem] : Elem | G.cs:52:14:52:26 | access to field Box1 : Box1 [field Elem] : Elem | -| G.cs:52:14:52:21 | access to field boxfield : Box2 [field Box1, field Elem] : Elem | G.cs:52:14:52:26 | access to field Box1 : Box1 [field Elem] : Elem | -| G.cs:52:14:52:21 | this access : G [field boxfield, field Box1, field Elem] : Elem | G.cs:52:14:52:21 | access to field boxfield : Box2 [field Box1, field Elem] : Elem | -| G.cs:52:14:52:21 | this access : G [field boxfield, field Box1, field Elem] : Elem | G.cs:52:14:52:21 | access to field boxfield : Box2 [field Box1, field Elem] : Elem | -| G.cs:52:14:52:26 | access to field Box1 : Box1 [field Elem] : Elem | G.cs:52:14:52:31 | access to field Elem | -| G.cs:52:14:52:26 | access to field Box1 : Box1 [field Elem] : Elem | G.cs:52:14:52:31 | access to field Elem | -| G.cs:63:21:63:27 | this : Box1 [field Elem] : Elem | G.cs:63:34:63:37 | this access : Box1 [field Elem] : Elem | -| G.cs:63:21:63:27 | this : Box1 [field Elem] : Elem | G.cs:63:34:63:37 | this access : Box1 [field Elem] : Elem | -| G.cs:63:34:63:37 | this access : Box1 [field Elem] : Elem | G.cs:63:34:63:37 | access to field Elem : Elem | -| G.cs:63:34:63:37 | this access : Box1 [field Elem] : Elem | G.cs:63:34:63:37 | access to field Elem : Elem | -| G.cs:64:34:64:34 | e : Elem | G.cs:64:46:64:46 | access to parameter e : Elem | -| G.cs:64:34:64:34 | e : Elem | G.cs:64:46:64:46 | access to parameter e : Elem | -| G.cs:64:46:64:46 | access to parameter e : Elem | G.cs:64:39:64:42 | [post] this access : Box1 [field Elem] : Elem | -| G.cs:64:46:64:46 | access to parameter e : Elem | G.cs:64:39:64:42 | [post] this access : Box1 [field Elem] : Elem | -| G.cs:71:21:71:27 | this : Box2 [field Box1, field Elem] : Elem | G.cs:71:34:71:37 | this access : Box2 [field Box1, field Elem] : Elem | -| G.cs:71:21:71:27 | this : Box2 [field Box1, field Elem] : Elem | G.cs:71:34:71:37 | this access : Box2 [field Box1, field Elem] : Elem | -| G.cs:71:34:71:37 | this access : Box2 [field Box1, field Elem] : Elem | G.cs:71:34:71:37 | access to field Box1 : Box1 [field Elem] : Elem | -| G.cs:71:34:71:37 | this access : Box2 [field Box1, field Elem] : Elem | G.cs:71:34:71:37 | access to field Box1 : Box1 [field Elem] : Elem | -| H.cs:13:15:13:15 | a : A [field FieldA] : Object | H.cs:16:22:16:22 | access to parameter a : A [field FieldA] : Object | -| H.cs:13:15:13:15 | a : A [field FieldA] : Object | H.cs:16:22:16:22 | access to parameter a : A [field FieldA] : Object | -| H.cs:16:9:16:11 | [post] access to local variable ret : A [field FieldA] : Object | H.cs:17:16:17:18 | access to local variable ret : A [field FieldA] : Object | -| H.cs:16:9:16:11 | [post] access to local variable ret : A [field FieldA] : Object | H.cs:17:16:17:18 | access to local variable ret : A [field FieldA] : Object | -| H.cs:16:22:16:22 | access to parameter a : A [field FieldA] : Object | H.cs:16:22:16:29 | access to field FieldA : Object | -| H.cs:16:22:16:22 | access to parameter a : A [field FieldA] : Object | H.cs:16:22:16:29 | access to field FieldA : Object | -| H.cs:16:22:16:29 | access to field FieldA : Object | H.cs:16:9:16:11 | [post] access to local variable ret : A [field FieldA] : Object | -| H.cs:16:22:16:29 | access to field FieldA : Object | H.cs:16:9:16:11 | [post] access to local variable ret : A [field FieldA] : Object | -| H.cs:23:9:23:9 | [post] access to local variable a : A [field FieldA] : Object | H.cs:24:27:24:27 | access to local variable a : A [field FieldA] : Object | -| H.cs:23:9:23:9 | [post] access to local variable a : A [field FieldA] : Object | H.cs:24:27:24:27 | access to local variable a : A [field FieldA] : Object | -| H.cs:23:20:23:36 | call to method Source : Object | H.cs:23:9:23:9 | [post] access to local variable a : A [field FieldA] : Object | -| H.cs:23:20:23:36 | call to method Source : Object | H.cs:23:9:23:9 | [post] access to local variable a : A [field FieldA] : Object | -| H.cs:24:21:24:28 | call to method Clone : A [field FieldA] : Object | H.cs:25:14:25:18 | access to local variable clone : A [field FieldA] : Object | -| H.cs:24:21:24:28 | call to method Clone : A [field FieldA] : Object | H.cs:25:14:25:18 | access to local variable clone : A [field FieldA] : Object | -| H.cs:24:27:24:27 | access to local variable a : A [field FieldA] : Object | H.cs:13:15:13:15 | a : A [field FieldA] : Object | -| H.cs:24:27:24:27 | access to local variable a : A [field FieldA] : Object | H.cs:13:15:13:15 | a : A [field FieldA] : Object | -| H.cs:24:27:24:27 | access to local variable a : A [field FieldA] : Object | H.cs:24:21:24:28 | call to method Clone : A [field FieldA] : Object | -| H.cs:24:27:24:27 | access to local variable a : A [field FieldA] : Object | H.cs:24:21:24:28 | call to method Clone : A [field FieldA] : Object | -| H.cs:25:14:25:18 | access to local variable clone : A [field FieldA] : Object | H.cs:25:14:25:25 | access to field FieldA | -| H.cs:25:14:25:18 | access to local variable clone : A [field FieldA] : Object | H.cs:25:14:25:25 | access to field FieldA | -| H.cs:33:19:33:19 | a : A [field FieldA] : A | H.cs:36:20:36:20 | access to parameter a : A [field FieldA] : A | -| H.cs:33:19:33:19 | a : A [field FieldA] : A | H.cs:36:20:36:20 | access to parameter a : A [field FieldA] : A | -| H.cs:33:19:33:19 | a : A [field FieldA] : Object | H.cs:36:20:36:20 | access to parameter a : A [field FieldA] : Object | -| H.cs:33:19:33:19 | a : A [field FieldA] : Object | H.cs:36:20:36:20 | access to parameter a : A [field FieldA] : Object | -| H.cs:36:9:36:9 | [post] access to local variable b : B [field FieldB] : A | H.cs:37:16:37:16 | access to local variable b : B [field FieldB] : A | -| H.cs:36:9:36:9 | [post] access to local variable b : B [field FieldB] : A | H.cs:37:16:37:16 | access to local variable b : B [field FieldB] : A | -| H.cs:36:9:36:9 | [post] access to local variable b : B [field FieldB] : Object | H.cs:37:16:37:16 | access to local variable b : B [field FieldB] : Object | -| H.cs:36:9:36:9 | [post] access to local variable b : B [field FieldB] : Object | H.cs:37:16:37:16 | access to local variable b : B [field FieldB] : Object | -| H.cs:36:20:36:20 | access to parameter a : A [field FieldA] : A | H.cs:36:20:36:27 | access to field FieldA : A | -| H.cs:36:20:36:20 | access to parameter a : A [field FieldA] : A | H.cs:36:20:36:27 | access to field FieldA : A | -| H.cs:36:20:36:20 | access to parameter a : A [field FieldA] : Object | H.cs:36:20:36:27 | access to field FieldA : Object | -| H.cs:36:20:36:20 | access to parameter a : A [field FieldA] : Object | H.cs:36:20:36:27 | access to field FieldA : Object | -| H.cs:36:20:36:27 | access to field FieldA : A | H.cs:36:9:36:9 | [post] access to local variable b : B [field FieldB] : A | -| H.cs:36:20:36:27 | access to field FieldA : A | H.cs:36:9:36:9 | [post] access to local variable b : B [field FieldB] : A | -| H.cs:36:20:36:27 | access to field FieldA : Object | H.cs:36:9:36:9 | [post] access to local variable b : B [field FieldB] : Object | -| H.cs:36:20:36:27 | access to field FieldA : Object | H.cs:36:9:36:9 | [post] access to local variable b : B [field FieldB] : Object | -| H.cs:43:9:43:9 | [post] access to local variable a : A [field FieldA] : Object | H.cs:44:27:44:27 | access to local variable a : A [field FieldA] : Object | -| H.cs:43:9:43:9 | [post] access to local variable a : A [field FieldA] : Object | H.cs:44:27:44:27 | access to local variable a : A [field FieldA] : Object | -| H.cs:43:20:43:36 | call to method Source : Object | H.cs:43:9:43:9 | [post] access to local variable a : A [field FieldA] : Object | -| H.cs:43:20:43:36 | call to method Source : Object | H.cs:43:9:43:9 | [post] access to local variable a : A [field FieldA] : Object | -| H.cs:44:17:44:28 | call to method Transform : B [field FieldB] : Object | H.cs:45:14:45:14 | access to local variable b : B [field FieldB] : Object | -| H.cs:44:17:44:28 | call to method Transform : B [field FieldB] : Object | H.cs:45:14:45:14 | access to local variable b : B [field FieldB] : Object | -| H.cs:44:27:44:27 | access to local variable a : A [field FieldA] : Object | H.cs:33:19:33:19 | a : A [field FieldA] : Object | -| H.cs:44:27:44:27 | access to local variable a : A [field FieldA] : Object | H.cs:33:19:33:19 | a : A [field FieldA] : Object | -| H.cs:44:27:44:27 | access to local variable a : A [field FieldA] : Object | H.cs:44:17:44:28 | call to method Transform : B [field FieldB] : Object | -| H.cs:44:27:44:27 | access to local variable a : A [field FieldA] : Object | H.cs:44:17:44:28 | call to method Transform : B [field FieldB] : Object | -| H.cs:45:14:45:14 | access to local variable b : B [field FieldB] : Object | H.cs:45:14:45:21 | access to field FieldB | -| H.cs:45:14:45:14 | access to local variable b : B [field FieldB] : Object | H.cs:45:14:45:21 | access to field FieldB | -| H.cs:53:25:53:25 | a : A [field FieldA] : Object | H.cs:55:21:55:21 | access to parameter a : A [field FieldA] : Object | -| H.cs:53:25:53:25 | a : A [field FieldA] : Object | H.cs:55:21:55:21 | access to parameter a : A [field FieldA] : Object | -| H.cs:55:21:55:21 | access to parameter a : A [field FieldA] : Object | H.cs:55:21:55:28 | access to field FieldA : Object | -| H.cs:55:21:55:21 | access to parameter a : A [field FieldA] : Object | H.cs:55:21:55:28 | access to field FieldA : Object | -| H.cs:55:21:55:28 | access to field FieldA : Object | H.cs:55:9:55:10 | [post] access to parameter b1 : B [field FieldB] : Object | -| H.cs:55:21:55:28 | access to field FieldA : Object | H.cs:55:9:55:10 | [post] access to parameter b1 : B [field FieldB] : Object | -| H.cs:63:9:63:9 | [post] access to local variable a : A [field FieldA] : Object | H.cs:64:22:64:22 | access to local variable a : A [field FieldA] : Object | -| H.cs:63:9:63:9 | [post] access to local variable a : A [field FieldA] : Object | H.cs:64:22:64:22 | access to local variable a : A [field FieldA] : Object | -| H.cs:63:20:63:36 | call to method Source : Object | H.cs:63:9:63:9 | [post] access to local variable a : A [field FieldA] : Object | -| H.cs:63:20:63:36 | call to method Source : Object | H.cs:63:9:63:9 | [post] access to local variable a : A [field FieldA] : Object | -| H.cs:64:22:64:22 | access to local variable a : A [field FieldA] : Object | H.cs:53:25:53:25 | a : A [field FieldA] : Object | -| H.cs:64:22:64:22 | access to local variable a : A [field FieldA] : Object | H.cs:53:25:53:25 | a : A [field FieldA] : Object | -| H.cs:64:22:64:22 | access to local variable a : A [field FieldA] : Object | H.cs:64:25:64:26 | [post] access to local variable b1 : B [field FieldB] : Object | -| H.cs:64:22:64:22 | access to local variable a : A [field FieldA] : Object | H.cs:64:25:64:26 | [post] access to local variable b1 : B [field FieldB] : Object | -| H.cs:64:25:64:26 | [post] access to local variable b1 : B [field FieldB] : Object | H.cs:65:14:65:15 | access to local variable b1 : B [field FieldB] : Object | -| H.cs:64:25:64:26 | [post] access to local variable b1 : B [field FieldB] : Object | H.cs:65:14:65:15 | access to local variable b1 : B [field FieldB] : Object | -| H.cs:65:14:65:15 | access to local variable b1 : B [field FieldB] : Object | H.cs:65:14:65:22 | access to field FieldB | -| H.cs:65:14:65:15 | access to local variable b1 : B [field FieldB] : Object | H.cs:65:14:65:22 | access to field FieldB | -| H.cs:77:30:77:30 | o : Object | H.cs:79:20:79:20 | access to parameter o : Object | -| H.cs:77:30:77:30 | o : Object | H.cs:79:20:79:20 | access to parameter o : Object | -| H.cs:79:9:79:9 | [post] access to parameter a : A [field FieldA] : Object | H.cs:80:22:80:22 | access to parameter a : A [field FieldA] : Object | -| H.cs:79:9:79:9 | [post] access to parameter a : A [field FieldA] : Object | H.cs:80:22:80:22 | access to parameter a : A [field FieldA] : Object | -| H.cs:79:20:79:20 | access to parameter o : Object | H.cs:79:9:79:9 | [post] access to parameter a : A [field FieldA] : Object | -| H.cs:79:20:79:20 | access to parameter o : Object | H.cs:79:9:79:9 | [post] access to parameter a : A [field FieldA] : Object | -| H.cs:80:22:80:22 | access to parameter a : A [field FieldA] : Object | H.cs:53:25:53:25 | a : A [field FieldA] : Object | -| H.cs:80:22:80:22 | access to parameter a : A [field FieldA] : Object | H.cs:53:25:53:25 | a : A [field FieldA] : Object | -| H.cs:80:22:80:22 | access to parameter a : A [field FieldA] : Object | H.cs:80:25:80:26 | [post] access to parameter b1 : B [field FieldB] : Object | -| H.cs:80:22:80:22 | access to parameter a : A [field FieldA] : Object | H.cs:80:25:80:26 | [post] access to parameter b1 : B [field FieldB] : Object | -| H.cs:88:17:88:17 | [post] access to local variable a : A [field FieldA] : Object | H.cs:89:14:89:14 | access to local variable a : A [field FieldA] : Object | -| H.cs:88:17:88:17 | [post] access to local variable a : A [field FieldA] : Object | H.cs:89:14:89:14 | access to local variable a : A [field FieldA] : Object | -| H.cs:88:20:88:36 | call to method Source : Object | H.cs:77:30:77:30 | o : Object | -| H.cs:88:20:88:36 | call to method Source : Object | H.cs:77:30:77:30 | o : Object | -| H.cs:88:20:88:36 | call to method Source : Object | H.cs:88:17:88:17 | [post] access to local variable a : A [field FieldA] : Object | -| H.cs:88:20:88:36 | call to method Source : Object | H.cs:88:17:88:17 | [post] access to local variable a : A [field FieldA] : Object | -| H.cs:88:20:88:36 | call to method Source : Object | H.cs:88:39:88:40 | [post] access to local variable b1 : B [field FieldB] : Object | -| H.cs:88:20:88:36 | call to method Source : Object | H.cs:88:39:88:40 | [post] access to local variable b1 : B [field FieldB] : Object | -| H.cs:88:39:88:40 | [post] access to local variable b1 : B [field FieldB] : Object | H.cs:90:14:90:15 | access to local variable b1 : B [field FieldB] : Object | -| H.cs:88:39:88:40 | [post] access to local variable b1 : B [field FieldB] : Object | H.cs:90:14:90:15 | access to local variable b1 : B [field FieldB] : Object | -| H.cs:89:14:89:14 | access to local variable a : A [field FieldA] : Object | H.cs:89:14:89:21 | access to field FieldA | -| H.cs:89:14:89:14 | access to local variable a : A [field FieldA] : Object | H.cs:89:14:89:21 | access to field FieldA | -| H.cs:90:14:90:15 | access to local variable b1 : B [field FieldB] : Object | H.cs:90:14:90:22 | access to field FieldB | -| H.cs:90:14:90:15 | access to local variable b1 : B [field FieldB] : Object | H.cs:90:14:90:22 | access to field FieldB | -| H.cs:102:23:102:23 | a : A [field FieldA] : Object | H.cs:105:23:105:23 | access to parameter a : A [field FieldA] : Object | -| H.cs:102:23:102:23 | a : A [field FieldA] : Object | H.cs:105:23:105:23 | access to parameter a : A [field FieldA] : Object | -| H.cs:105:9:105:12 | [post] access to local variable temp : B [field FieldB, field FieldA] : Object | H.cs:106:29:106:32 | access to local variable temp : B [field FieldB, field FieldA] : Object | -| H.cs:105:9:105:12 | [post] access to local variable temp : B [field FieldB, field FieldA] : Object | H.cs:106:29:106:32 | access to local variable temp : B [field FieldB, field FieldA] : Object | -| H.cs:105:23:105:23 | access to parameter a : A [field FieldA] : Object | H.cs:105:9:105:12 | [post] access to local variable temp : B [field FieldB, field FieldA] : Object | -| H.cs:105:23:105:23 | access to parameter a : A [field FieldA] : Object | H.cs:105:9:105:12 | [post] access to local variable temp : B [field FieldB, field FieldA] : Object | -| H.cs:106:26:106:39 | (...) ... : A [field FieldA] : Object | H.cs:33:19:33:19 | a : A [field FieldA] : Object | -| H.cs:106:26:106:39 | (...) ... : A [field FieldA] : Object | H.cs:33:19:33:19 | a : A [field FieldA] : Object | -| H.cs:106:26:106:39 | (...) ... : A [field FieldA] : Object | H.cs:106:16:106:40 | call to method Transform : B [field FieldB] : Object | -| H.cs:106:26:106:39 | (...) ... : A [field FieldA] : Object | H.cs:106:16:106:40 | call to method Transform : B [field FieldB] : Object | -| H.cs:106:29:106:32 | access to local variable temp : B [field FieldB, field FieldA] : Object | H.cs:106:29:106:39 | access to field FieldB : A [field FieldA] : Object | -| H.cs:106:29:106:32 | access to local variable temp : B [field FieldB, field FieldA] : Object | H.cs:106:29:106:39 | access to field FieldB : A [field FieldA] : Object | -| H.cs:106:29:106:39 | access to field FieldB : A [field FieldA] : Object | H.cs:106:26:106:39 | (...) ... : A [field FieldA] : Object | -| H.cs:106:29:106:39 | access to field FieldB : A [field FieldA] : Object | H.cs:106:26:106:39 | (...) ... : A [field FieldA] : Object | -| H.cs:112:9:112:9 | [post] access to local variable a : A [field FieldA] : Object | H.cs:113:31:113:31 | access to local variable a : A [field FieldA] : Object | -| H.cs:112:9:112:9 | [post] access to local variable a : A [field FieldA] : Object | H.cs:113:31:113:31 | access to local variable a : A [field FieldA] : Object | -| H.cs:112:20:112:36 | call to method Source : Object | H.cs:112:9:112:9 | [post] access to local variable a : A [field FieldA] : Object | -| H.cs:112:20:112:36 | call to method Source : Object | H.cs:112:9:112:9 | [post] access to local variable a : A [field FieldA] : Object | -| H.cs:113:17:113:32 | call to method TransformWrap : B [field FieldB] : Object | H.cs:114:14:114:14 | access to local variable b : B [field FieldB] : Object | -| H.cs:113:17:113:32 | call to method TransformWrap : B [field FieldB] : Object | H.cs:114:14:114:14 | access to local variable b : B [field FieldB] : Object | -| H.cs:113:31:113:31 | access to local variable a : A [field FieldA] : Object | H.cs:102:23:102:23 | a : A [field FieldA] : Object | -| H.cs:113:31:113:31 | access to local variable a : A [field FieldA] : Object | H.cs:102:23:102:23 | a : A [field FieldA] : Object | -| H.cs:113:31:113:31 | access to local variable a : A [field FieldA] : Object | H.cs:113:17:113:32 | call to method TransformWrap : B [field FieldB] : Object | -| H.cs:113:31:113:31 | access to local variable a : A [field FieldA] : Object | H.cs:113:17:113:32 | call to method TransformWrap : B [field FieldB] : Object | -| H.cs:114:14:114:14 | access to local variable b : B [field FieldB] : Object | H.cs:114:14:114:21 | access to field FieldB | -| H.cs:114:14:114:14 | access to local variable b : B [field FieldB] : Object | H.cs:114:14:114:21 | access to field FieldB | -| H.cs:122:18:122:18 | a : A [field FieldA] : Object | H.cs:124:26:124:26 | access to parameter a : A [field FieldA] : Object | -| H.cs:122:18:122:18 | a : A [field FieldA] : Object | H.cs:124:26:124:26 | access to parameter a : A [field FieldA] : Object | -| H.cs:124:16:124:27 | call to method Transform : B [field FieldB] : Object | H.cs:124:16:124:34 | access to field FieldB : Object | -| H.cs:124:16:124:27 | call to method Transform : B [field FieldB] : Object | H.cs:124:16:124:34 | access to field FieldB : Object | -| H.cs:124:26:124:26 | access to parameter a : A [field FieldA] : Object | H.cs:33:19:33:19 | a : A [field FieldA] : Object | -| H.cs:124:26:124:26 | access to parameter a : A [field FieldA] : Object | H.cs:33:19:33:19 | a : A [field FieldA] : Object | -| H.cs:124:26:124:26 | access to parameter a : A [field FieldA] : Object | H.cs:124:16:124:27 | call to method Transform : B [field FieldB] : Object | -| H.cs:124:26:124:26 | access to parameter a : A [field FieldA] : Object | H.cs:124:16:124:27 | call to method Transform : B [field FieldB] : Object | -| H.cs:130:9:130:9 | [post] access to local variable a : A [field FieldA] : Object | H.cs:131:18:131:18 | access to local variable a : A [field FieldA] : Object | -| H.cs:130:9:130:9 | [post] access to local variable a : A [field FieldA] : Object | H.cs:131:18:131:18 | access to local variable a : A [field FieldA] : Object | -| H.cs:130:20:130:36 | call to method Source : Object | H.cs:130:9:130:9 | [post] access to local variable a : A [field FieldA] : Object | -| H.cs:130:20:130:36 | call to method Source : Object | H.cs:130:9:130:9 | [post] access to local variable a : A [field FieldA] : Object | -| H.cs:131:18:131:18 | access to local variable a : A [field FieldA] : Object | H.cs:122:18:122:18 | a : A [field FieldA] : Object | -| H.cs:131:18:131:18 | access to local variable a : A [field FieldA] : Object | H.cs:122:18:122:18 | a : A [field FieldA] : Object | -| H.cs:131:18:131:18 | access to local variable a : A [field FieldA] : Object | H.cs:131:14:131:19 | call to method Get | -| H.cs:131:18:131:18 | access to local variable a : A [field FieldA] : Object | H.cs:131:14:131:19 | call to method Get | -| H.cs:138:27:138:27 | o : A | H.cs:141:20:141:25 | ... as ... : A | -| H.cs:138:27:138:27 | o : A | H.cs:141:20:141:25 | ... as ... : A | -| H.cs:141:9:141:9 | [post] access to local variable a : A [field FieldA] : A | H.cs:142:26:142:26 | access to local variable a : A [field FieldA] : A | -| H.cs:141:9:141:9 | [post] access to local variable a : A [field FieldA] : A | H.cs:142:26:142:26 | access to local variable a : A [field FieldA] : A | -| H.cs:141:20:141:25 | ... as ... : A | H.cs:141:9:141:9 | [post] access to local variable a : A [field FieldA] : A | -| H.cs:141:20:141:25 | ... as ... : A | H.cs:141:9:141:9 | [post] access to local variable a : A [field FieldA] : A | -| H.cs:142:16:142:27 | call to method Transform : B [field FieldB] : A | H.cs:142:16:142:34 | access to field FieldB : A | -| H.cs:142:16:142:27 | call to method Transform : B [field FieldB] : A | H.cs:142:16:142:34 | access to field FieldB : A | -| H.cs:142:26:142:26 | access to local variable a : A [field FieldA] : A | H.cs:33:19:33:19 | a : A [field FieldA] : A | -| H.cs:142:26:142:26 | access to local variable a : A [field FieldA] : A | H.cs:33:19:33:19 | a : A [field FieldA] : A | -| H.cs:142:26:142:26 | access to local variable a : A [field FieldA] : A | H.cs:142:16:142:27 | call to method Transform : B [field FieldB] : A | -| H.cs:142:26:142:26 | access to local variable a : A [field FieldA] : A | H.cs:142:16:142:27 | call to method Transform : B [field FieldB] : A | -| H.cs:147:17:147:39 | call to method Through : A | H.cs:148:14:148:14 | access to local variable a | -| H.cs:147:17:147:39 | call to method Through : A | H.cs:148:14:148:14 | access to local variable a | -| H.cs:147:25:147:38 | call to method Source : A | H.cs:138:27:138:27 | o : A | -| H.cs:147:25:147:38 | call to method Source : A | H.cs:138:27:138:27 | o : A | -| H.cs:147:25:147:38 | call to method Source : A | H.cs:147:17:147:39 | call to method Through : A | -| H.cs:147:25:147:38 | call to method Source : A | H.cs:147:17:147:39 | call to method Through : A | -| H.cs:153:32:153:32 | o : Object | H.cs:156:20:156:20 | access to parameter o : Object | -| H.cs:153:32:153:32 | o : Object | H.cs:156:20:156:20 | access to parameter o : Object | -| H.cs:155:17:155:30 | call to method Source : B | H.cs:156:9:156:9 | access to local variable b : B | -| H.cs:155:17:155:30 | call to method Source : B | H.cs:156:9:156:9 | access to local variable b : B | -| H.cs:156:9:156:9 | [post] access to local variable b : B [field FieldB] : Object | H.cs:157:20:157:20 | access to local variable b : B [field FieldB] : Object | -| H.cs:156:9:156:9 | [post] access to local variable b : B [field FieldB] : Object | H.cs:157:20:157:20 | access to local variable b : B [field FieldB] : Object | -| H.cs:156:9:156:9 | access to local variable b : B | H.cs:157:20:157:20 | access to local variable b : B | -| H.cs:156:9:156:9 | access to local variable b : B | H.cs:157:20:157:20 | access to local variable b : B | -| H.cs:156:20:156:20 | access to parameter o : Object | H.cs:156:9:156:9 | [post] access to local variable b : B [field FieldB] : Object | -| H.cs:156:20:156:20 | access to parameter o : Object | H.cs:156:9:156:9 | [post] access to local variable b : B [field FieldB] : Object | -| H.cs:157:9:157:9 | [post] access to parameter a : A [field FieldA] : B | H.cs:164:19:164:19 | [post] access to local variable a : A [field FieldA] : B | -| H.cs:157:9:157:9 | [post] access to parameter a : A [field FieldA] : B | H.cs:164:19:164:19 | [post] access to local variable a : A [field FieldA] : B | -| H.cs:157:20:157:20 | access to local variable b : B | H.cs:157:9:157:9 | [post] access to parameter a : A [field FieldA] : B | -| H.cs:157:20:157:20 | access to local variable b : B | H.cs:157:9:157:9 | [post] access to parameter a : A [field FieldA] : B | -| H.cs:157:20:157:20 | access to local variable b : B [field FieldB] : Object | H.cs:157:9:157:9 | [post] access to parameter a : A [field FieldA, field FieldB] : Object | -| H.cs:157:20:157:20 | access to local variable b : B [field FieldB] : Object | H.cs:157:9:157:9 | [post] access to parameter a : A [field FieldA, field FieldB] : Object | -| H.cs:163:17:163:35 | call to method Source : Object | H.cs:164:22:164:22 | access to local variable o : Object | -| H.cs:163:17:163:35 | call to method Source : Object | H.cs:164:22:164:22 | access to local variable o : Object | -| H.cs:164:19:164:19 | [post] access to local variable a : A [field FieldA, field FieldB] : Object | H.cs:165:20:165:20 | access to local variable a : A [field FieldA, field FieldB] : Object | -| H.cs:164:19:164:19 | [post] access to local variable a : A [field FieldA, field FieldB] : Object | H.cs:165:20:165:20 | access to local variable a : A [field FieldA, field FieldB] : Object | -| H.cs:164:19:164:19 | [post] access to local variable a : A [field FieldA] : B | H.cs:165:20:165:20 | access to local variable a : A [field FieldA] : B | -| H.cs:164:19:164:19 | [post] access to local variable a : A [field FieldA] : B | H.cs:165:20:165:20 | access to local variable a : A [field FieldA] : B | -| H.cs:164:22:164:22 | access to local variable o : Object | H.cs:153:32:153:32 | o : Object | -| H.cs:164:22:164:22 | access to local variable o : Object | H.cs:153:32:153:32 | o : Object | -| H.cs:164:22:164:22 | access to local variable o : Object | H.cs:164:19:164:19 | [post] access to local variable a : A [field FieldA, field FieldB] : Object | -| H.cs:164:22:164:22 | access to local variable o : Object | H.cs:164:19:164:19 | [post] access to local variable a : A [field FieldA, field FieldB] : Object | -| H.cs:165:17:165:27 | (...) ... : B | H.cs:166:14:166:14 | access to local variable b | -| H.cs:165:17:165:27 | (...) ... : B | H.cs:166:14:166:14 | access to local variable b | -| H.cs:165:17:165:27 | (...) ... : B [field FieldB] : Object | H.cs:167:14:167:14 | access to local variable b : B [field FieldB] : Object | -| H.cs:165:17:165:27 | (...) ... : B [field FieldB] : Object | H.cs:167:14:167:14 | access to local variable b : B [field FieldB] : Object | -| H.cs:165:20:165:20 | access to local variable a : A [field FieldA, field FieldB] : Object | H.cs:165:20:165:27 | access to field FieldA : B [field FieldB] : Object | -| H.cs:165:20:165:20 | access to local variable a : A [field FieldA, field FieldB] : Object | H.cs:165:20:165:27 | access to field FieldA : B [field FieldB] : Object | -| H.cs:165:20:165:20 | access to local variable a : A [field FieldA] : B | H.cs:165:20:165:27 | access to field FieldA : B | -| H.cs:165:20:165:20 | access to local variable a : A [field FieldA] : B | H.cs:165:20:165:27 | access to field FieldA : B | -| H.cs:165:20:165:27 | access to field FieldA : B | H.cs:165:17:165:27 | (...) ... : B | -| H.cs:165:20:165:27 | access to field FieldA : B | H.cs:165:17:165:27 | (...) ... : B | -| H.cs:165:20:165:27 | access to field FieldA : B [field FieldB] : Object | H.cs:165:17:165:27 | (...) ... : B [field FieldB] : Object | -| H.cs:165:20:165:27 | access to field FieldA : B [field FieldB] : Object | H.cs:165:17:165:27 | (...) ... : B [field FieldB] : Object | -| H.cs:167:14:167:14 | access to local variable b : B [field FieldB] : Object | H.cs:167:14:167:21 | access to field FieldB | -| H.cs:167:14:167:14 | access to local variable b : B [field FieldB] : Object | H.cs:167:14:167:21 | access to field FieldB | -| I.cs:7:9:7:14 | [post] this access : I [field Field1] : Object | I.cs:21:13:21:19 | object creation of type I : I [field Field1] : Object | -| I.cs:7:9:7:14 | [post] this access : I [field Field1] : Object | I.cs:21:13:21:19 | object creation of type I : I [field Field1] : Object | -| I.cs:7:9:7:14 | [post] this access : I [field Field1] : Object | I.cs:26:13:26:37 | [pre-initializer] object creation of type I : I [field Field1] : Object | -| I.cs:7:9:7:14 | [post] this access : I [field Field1] : Object | I.cs:26:13:26:37 | [pre-initializer] object creation of type I : I [field Field1] : Object | -| I.cs:7:18:7:34 | call to method Source : Object | I.cs:7:9:7:14 | [post] this access : I [field Field1] : Object | -| I.cs:7:18:7:34 | call to method Source : Object | I.cs:7:9:7:14 | [post] this access : I [field Field1] : Object | -| I.cs:13:17:13:33 | call to method Source : Object | I.cs:15:20:15:20 | access to local variable o : Object | -| I.cs:13:17:13:33 | call to method Source : Object | I.cs:15:20:15:20 | access to local variable o : Object | -| I.cs:15:9:15:9 | [post] access to local variable i : I [field Field1] : Object | I.cs:16:9:16:9 | access to local variable i : I [field Field1] : Object | -| I.cs:15:9:15:9 | [post] access to local variable i : I [field Field1] : Object | I.cs:16:9:16:9 | access to local variable i : I [field Field1] : Object | -| I.cs:15:20:15:20 | access to local variable o : Object | I.cs:15:9:15:9 | [post] access to local variable i : I [field Field1] : Object | -| I.cs:15:20:15:20 | access to local variable o : Object | I.cs:15:9:15:9 | [post] access to local variable i : I [field Field1] : Object | -| I.cs:16:9:16:9 | access to local variable i : I [field Field1] : Object | I.cs:17:9:17:9 | access to local variable i : I [field Field1] : Object | -| I.cs:16:9:16:9 | access to local variable i : I [field Field1] : Object | I.cs:17:9:17:9 | access to local variable i : I [field Field1] : Object | -| I.cs:17:9:17:9 | access to local variable i : I [field Field1] : Object | I.cs:18:14:18:14 | access to local variable i : I [field Field1] : Object | -| I.cs:17:9:17:9 | access to local variable i : I [field Field1] : Object | I.cs:18:14:18:14 | access to local variable i : I [field Field1] : Object | -| I.cs:18:14:18:14 | access to local variable i : I [field Field1] : Object | I.cs:18:14:18:21 | access to field Field1 | -| I.cs:18:14:18:14 | access to local variable i : I [field Field1] : Object | I.cs:18:14:18:21 | access to field Field1 | -| I.cs:21:13:21:19 | object creation of type I : I [field Field1] : Object | I.cs:22:9:22:9 | access to local variable i : I [field Field1] : Object | -| I.cs:21:13:21:19 | object creation of type I : I [field Field1] : Object | I.cs:22:9:22:9 | access to local variable i : I [field Field1] : Object | -| I.cs:22:9:22:9 | access to local variable i : I [field Field1] : Object | I.cs:23:14:23:14 | access to local variable i : I [field Field1] : Object | -| I.cs:22:9:22:9 | access to local variable i : I [field Field1] : Object | I.cs:23:14:23:14 | access to local variable i : I [field Field1] : Object | -| I.cs:23:14:23:14 | access to local variable i : I [field Field1] : Object | I.cs:23:14:23:21 | access to field Field1 | -| I.cs:23:14:23:14 | access to local variable i : I [field Field1] : Object | I.cs:23:14:23:21 | access to field Field1 | -| I.cs:26:13:26:37 | [pre-initializer] object creation of type I : I [field Field1] : Object | I.cs:27:14:27:14 | access to local variable i : I [field Field1] : Object | -| I.cs:26:13:26:37 | [pre-initializer] object creation of type I : I [field Field1] : Object | I.cs:27:14:27:14 | access to local variable i : I [field Field1] : Object | -| I.cs:27:14:27:14 | access to local variable i : I [field Field1] : Object | I.cs:27:14:27:21 | access to field Field1 | -| I.cs:27:14:27:14 | access to local variable i : I [field Field1] : Object | I.cs:27:14:27:21 | access to field Field1 | -| I.cs:31:13:31:29 | call to method Source : Object | I.cs:32:20:32:20 | access to local variable o : Object | -| I.cs:31:13:31:29 | call to method Source : Object | I.cs:32:20:32:20 | access to local variable o : Object | -| I.cs:32:9:32:9 | [post] access to local variable i : I [field Field1] : Object | I.cs:33:9:33:9 | access to local variable i : I [field Field1] : Object | -| I.cs:32:9:32:9 | [post] access to local variable i : I [field Field1] : Object | I.cs:33:9:33:9 | access to local variable i : I [field Field1] : Object | -| I.cs:32:20:32:20 | access to local variable o : Object | I.cs:32:9:32:9 | [post] access to local variable i : I [field Field1] : Object | -| I.cs:32:20:32:20 | access to local variable o : Object | I.cs:32:9:32:9 | [post] access to local variable i : I [field Field1] : Object | -| I.cs:33:9:33:9 | access to local variable i : I [field Field1] : Object | I.cs:34:12:34:12 | access to local variable i : I [field Field1] : Object | -| I.cs:33:9:33:9 | access to local variable i : I [field Field1] : Object | I.cs:34:12:34:12 | access to local variable i : I [field Field1] : Object | -| I.cs:34:12:34:12 | access to local variable i : I [field Field1] : Object | I.cs:37:23:37:23 | i : I [field Field1] : Object | -| I.cs:34:12:34:12 | access to local variable i : I [field Field1] : Object | I.cs:37:23:37:23 | i : I [field Field1] : Object | -| I.cs:37:23:37:23 | i : I [field Field1] : Object | I.cs:39:9:39:9 | access to parameter i : I [field Field1] : Object | -| I.cs:37:23:37:23 | i : I [field Field1] : Object | I.cs:39:9:39:9 | access to parameter i : I [field Field1] : Object | -| I.cs:39:9:39:9 | access to parameter i : I [field Field1] : Object | I.cs:40:14:40:14 | access to parameter i : I [field Field1] : Object | -| I.cs:39:9:39:9 | access to parameter i : I [field Field1] : Object | I.cs:40:14:40:14 | access to parameter i : I [field Field1] : Object | -| I.cs:40:14:40:14 | access to parameter i : I [field Field1] : Object | I.cs:40:14:40:21 | access to field Field1 | -| I.cs:40:14:40:14 | access to parameter i : I [field Field1] : Object | I.cs:40:14:40:21 | access to field Field1 | -| J.cs:14:26:14:30 | field : Object | J.cs:14:66:14:70 | access to parameter field : Object | -| J.cs:14:26:14:30 | field : Object | J.cs:14:66:14:70 | access to parameter field : Object | -| J.cs:14:40:14:43 | prop : Object | J.cs:14:73:14:76 | access to parameter prop : Object | -| J.cs:14:40:14:43 | prop : Object | J.cs:14:73:14:76 | access to parameter prop : Object | -| J.cs:14:66:14:70 | access to parameter field : Object | J.cs:14:50:14:54 | [post] this access : Struct [field Field] : Object | -| J.cs:14:66:14:70 | access to parameter field : Object | J.cs:14:50:14:54 | [post] this access : Struct [field Field] : Object | -| J.cs:14:73:14:76 | access to parameter prop : Object | J.cs:14:57:14:60 | [post] this access : Struct [property Prop] : Object | -| J.cs:14:73:14:76 | access to parameter prop : Object | J.cs:14:57:14:60 | [post] this access : Struct [property Prop] : Object | -| J.cs:21:17:21:33 | call to method Source : Object | J.cs:22:34:22:34 | access to local variable o : Object | -| J.cs:21:17:21:33 | call to method Source : Object | J.cs:22:34:22:34 | access to local variable o : Object | -| J.cs:22:18:22:41 | object creation of type RecordClass : RecordClass [property Prop1] : Object | J.cs:23:14:23:15 | access to local variable r1 : RecordClass [property Prop1] : Object | -| J.cs:22:18:22:41 | object creation of type RecordClass : RecordClass [property Prop1] : Object | J.cs:23:14:23:15 | access to local variable r1 : RecordClass [property Prop1] : Object | -| J.cs:22:18:22:41 | object creation of type RecordClass : RecordClass [property Prop1] : Object | J.cs:27:14:27:15 | access to local variable r2 : RecordClass [property Prop1] : Object | -| J.cs:22:18:22:41 | object creation of type RecordClass : RecordClass [property Prop1] : Object | J.cs:27:14:27:15 | access to local variable r2 : RecordClass [property Prop1] : Object | -| J.cs:22:18:22:41 | object creation of type RecordClass : RecordClass [property Prop1] : Object | J.cs:31:14:31:15 | access to local variable r3 : RecordClass [property Prop1] : Object | -| J.cs:22:18:22:41 | object creation of type RecordClass : RecordClass [property Prop1] : Object | J.cs:31:14:31:15 | access to local variable r3 : RecordClass [property Prop1] : Object | -| J.cs:22:34:22:34 | access to local variable o : Object | J.cs:22:18:22:41 | object creation of type RecordClass : RecordClass [property Prop1] : Object | -| J.cs:22:34:22:34 | access to local variable o : Object | J.cs:22:18:22:41 | object creation of type RecordClass : RecordClass [property Prop1] : Object | -| J.cs:23:14:23:15 | access to local variable r1 : RecordClass [property Prop1] : Object | J.cs:23:14:23:21 | access to property Prop1 | -| J.cs:23:14:23:15 | access to local variable r1 : RecordClass [property Prop1] : Object | J.cs:23:14:23:21 | access to property Prop1 | -| J.cs:27:14:27:15 | access to local variable r2 : RecordClass [property Prop1] : Object | J.cs:27:14:27:21 | access to property Prop1 | -| J.cs:27:14:27:15 | access to local variable r2 : RecordClass [property Prop1] : Object | J.cs:27:14:27:21 | access to property Prop1 | -| J.cs:30:18:30:54 | ... with { ... } : RecordClass [property Prop2] : Object | J.cs:32:14:32:15 | access to local variable r3 : RecordClass [property Prop2] : Object | -| J.cs:30:18:30:54 | ... with { ... } : RecordClass [property Prop2] : Object | J.cs:32:14:32:15 | access to local variable r3 : RecordClass [property Prop2] : Object | -| J.cs:30:36:30:52 | call to method Source : Object | J.cs:30:18:30:54 | ... with { ... } : RecordClass [property Prop2] : Object | -| J.cs:30:36:30:52 | call to method Source : Object | J.cs:30:18:30:54 | ... with { ... } : RecordClass [property Prop2] : Object | -| J.cs:31:14:31:15 | access to local variable r3 : RecordClass [property Prop1] : Object | J.cs:31:14:31:21 | access to property Prop1 | -| J.cs:31:14:31:15 | access to local variable r3 : RecordClass [property Prop1] : Object | J.cs:31:14:31:21 | access to property Prop1 | -| J.cs:32:14:32:15 | access to local variable r3 : RecordClass [property Prop2] : Object | J.cs:32:14:32:21 | access to property Prop2 | -| J.cs:32:14:32:15 | access to local variable r3 : RecordClass [property Prop2] : Object | J.cs:32:14:32:21 | access to property Prop2 | -| J.cs:41:17:41:33 | call to method Source : Object | J.cs:42:35:42:35 | access to local variable o : Object | -| J.cs:41:17:41:33 | call to method Source : Object | J.cs:42:35:42:35 | access to local variable o : Object | -| J.cs:42:18:42:42 | object creation of type RecordStruct : RecordStruct [property Prop1] : Object | J.cs:43:14:43:15 | access to local variable r1 : RecordStruct [property Prop1] : Object | -| J.cs:42:18:42:42 | object creation of type RecordStruct : RecordStruct [property Prop1] : Object | J.cs:43:14:43:15 | access to local variable r1 : RecordStruct [property Prop1] : Object | -| J.cs:42:18:42:42 | object creation of type RecordStruct : RecordStruct [property Prop1] : Object | J.cs:47:14:47:15 | access to local variable r2 : RecordStruct [property Prop1] : Object | -| J.cs:42:18:42:42 | object creation of type RecordStruct : RecordStruct [property Prop1] : Object | J.cs:47:14:47:15 | access to local variable r2 : RecordStruct [property Prop1] : Object | -| J.cs:42:18:42:42 | object creation of type RecordStruct : RecordStruct [property Prop1] : Object | J.cs:51:14:51:15 | access to local variable r3 : RecordStruct [property Prop1] : Object | -| J.cs:42:18:42:42 | object creation of type RecordStruct : RecordStruct [property Prop1] : Object | J.cs:51:14:51:15 | access to local variable r3 : RecordStruct [property Prop1] : Object | -| J.cs:42:35:42:35 | access to local variable o : Object | J.cs:42:18:42:42 | object creation of type RecordStruct : RecordStruct [property Prop1] : Object | -| J.cs:42:35:42:35 | access to local variable o : Object | J.cs:42:18:42:42 | object creation of type RecordStruct : RecordStruct [property Prop1] : Object | -| J.cs:43:14:43:15 | access to local variable r1 : RecordStruct [property Prop1] : Object | J.cs:43:14:43:21 | access to property Prop1 | -| J.cs:43:14:43:15 | access to local variable r1 : RecordStruct [property Prop1] : Object | J.cs:43:14:43:21 | access to property Prop1 | -| J.cs:47:14:47:15 | access to local variable r2 : RecordStruct [property Prop1] : Object | J.cs:47:14:47:21 | access to property Prop1 | -| J.cs:47:14:47:15 | access to local variable r2 : RecordStruct [property Prop1] : Object | J.cs:47:14:47:21 | access to property Prop1 | -| J.cs:50:18:50:54 | ... with { ... } : RecordStruct [property Prop2] : Object | J.cs:52:14:52:15 | access to local variable r3 : RecordStruct [property Prop2] : Object | -| J.cs:50:18:50:54 | ... with { ... } : RecordStruct [property Prop2] : Object | J.cs:52:14:52:15 | access to local variable r3 : RecordStruct [property Prop2] : Object | -| J.cs:50:36:50:52 | call to method Source : Object | J.cs:50:18:50:54 | ... with { ... } : RecordStruct [property Prop2] : Object | -| J.cs:50:36:50:52 | call to method Source : Object | J.cs:50:18:50:54 | ... with { ... } : RecordStruct [property Prop2] : Object | -| J.cs:51:14:51:15 | access to local variable r3 : RecordStruct [property Prop1] : Object | J.cs:51:14:51:21 | access to property Prop1 | -| J.cs:51:14:51:15 | access to local variable r3 : RecordStruct [property Prop1] : Object | J.cs:51:14:51:21 | access to property Prop1 | -| J.cs:52:14:52:15 | access to local variable r3 : RecordStruct [property Prop2] : Object | J.cs:52:14:52:21 | access to property Prop2 | -| J.cs:52:14:52:15 | access to local variable r3 : RecordStruct [property Prop2] : Object | J.cs:52:14:52:21 | access to property Prop2 | -| J.cs:61:17:61:33 | call to method Source : Object | J.cs:62:29:62:29 | access to local variable o : Object | -| J.cs:61:17:61:33 | call to method Source : Object | J.cs:62:29:62:29 | access to local variable o : Object | -| J.cs:62:18:62:36 | object creation of type Struct : Struct [field Field] : Object | J.cs:65:14:65:15 | access to local variable s2 : Struct [field Field] : Object | -| J.cs:62:18:62:36 | object creation of type Struct : Struct [field Field] : Object | J.cs:65:14:65:15 | access to local variable s2 : Struct [field Field] : Object | -| J.cs:62:18:62:36 | object creation of type Struct : Struct [field Field] : Object | J.cs:69:14:69:15 | access to local variable s3 : Struct [field Field] : Object | -| J.cs:62:18:62:36 | object creation of type Struct : Struct [field Field] : Object | J.cs:69:14:69:15 | access to local variable s3 : Struct [field Field] : Object | -| J.cs:62:29:62:29 | access to local variable o : Object | J.cs:14:26:14:30 | field : Object | -| J.cs:62:29:62:29 | access to local variable o : Object | J.cs:14:26:14:30 | field : Object | -| J.cs:62:29:62:29 | access to local variable o : Object | J.cs:62:18:62:36 | object creation of type Struct : Struct [field Field] : Object | -| J.cs:62:29:62:29 | access to local variable o : Object | J.cs:62:18:62:36 | object creation of type Struct : Struct [field Field] : Object | -| J.cs:65:14:65:15 | access to local variable s2 : Struct [field Field] : Object | J.cs:65:14:65:21 | access to field Field | -| J.cs:65:14:65:15 | access to local variable s2 : Struct [field Field] : Object | J.cs:65:14:65:21 | access to field Field | -| J.cs:68:18:68:53 | ... with { ... } : Struct [property Prop] : Object | J.cs:70:14:70:15 | access to local variable s3 : Struct [property Prop] : Object | -| J.cs:68:18:68:53 | ... with { ... } : Struct [property Prop] : Object | J.cs:70:14:70:15 | access to local variable s3 : Struct [property Prop] : Object | -| J.cs:68:35:68:51 | call to method Source : Object | J.cs:68:18:68:53 | ... with { ... } : Struct [property Prop] : Object | -| J.cs:68:35:68:51 | call to method Source : Object | J.cs:68:18:68:53 | ... with { ... } : Struct [property Prop] : Object | -| J.cs:69:14:69:15 | access to local variable s3 : Struct [field Field] : Object | J.cs:69:14:69:21 | access to field Field | -| J.cs:69:14:69:15 | access to local variable s3 : Struct [field Field] : Object | J.cs:69:14:69:21 | access to field Field | -| J.cs:70:14:70:15 | access to local variable s3 : Struct [property Prop] : Object | J.cs:70:14:70:20 | access to property Prop | -| J.cs:70:14:70:15 | access to local variable s3 : Struct [property Prop] : Object | J.cs:70:14:70:20 | access to property Prop | -| J.cs:79:17:79:33 | call to method Source : Object | J.cs:80:35:80:35 | access to local variable o : Object | -| J.cs:79:17:79:33 | call to method Source : Object | J.cs:80:35:80:35 | access to local variable o : Object | -| J.cs:80:18:80:36 | object creation of type Struct : Struct [property Prop] : Object | J.cs:84:14:84:15 | access to local variable s2 : Struct [property Prop] : Object | -| J.cs:80:18:80:36 | object creation of type Struct : Struct [property Prop] : Object | J.cs:84:14:84:15 | access to local variable s2 : Struct [property Prop] : Object | -| J.cs:80:18:80:36 | object creation of type Struct : Struct [property Prop] : Object | J.cs:88:14:88:15 | access to local variable s3 : Struct [property Prop] : Object | -| J.cs:80:18:80:36 | object creation of type Struct : Struct [property Prop] : Object | J.cs:88:14:88:15 | access to local variable s3 : Struct [property Prop] : Object | -| J.cs:80:35:80:35 | access to local variable o : Object | J.cs:14:40:14:43 | prop : Object | -| J.cs:80:35:80:35 | access to local variable o : Object | J.cs:14:40:14:43 | prop : Object | -| J.cs:80:35:80:35 | access to local variable o : Object | J.cs:80:18:80:36 | object creation of type Struct : Struct [property Prop] : Object | -| J.cs:80:35:80:35 | access to local variable o : Object | J.cs:80:18:80:36 | object creation of type Struct : Struct [property Prop] : Object | -| J.cs:84:14:84:15 | access to local variable s2 : Struct [property Prop] : Object | J.cs:84:14:84:20 | access to property Prop | -| J.cs:84:14:84:15 | access to local variable s2 : Struct [property Prop] : Object | J.cs:84:14:84:20 | access to property Prop | -| J.cs:86:18:86:54 | ... with { ... } : Struct [field Field] : Object | J.cs:87:14:87:15 | access to local variable s3 : Struct [field Field] : Object | -| J.cs:86:18:86:54 | ... with { ... } : Struct [field Field] : Object | J.cs:87:14:87:15 | access to local variable s3 : Struct [field Field] : Object | -| J.cs:86:36:86:52 | call to method Source : Object | J.cs:86:18:86:54 | ... with { ... } : Struct [field Field] : Object | -| J.cs:86:36:86:52 | call to method Source : Object | J.cs:86:18:86:54 | ... with { ... } : Struct [field Field] : Object | -| J.cs:87:14:87:15 | access to local variable s3 : Struct [field Field] : Object | J.cs:87:14:87:21 | access to field Field | -| J.cs:87:14:87:15 | access to local variable s3 : Struct [field Field] : Object | J.cs:87:14:87:21 | access to field Field | -| J.cs:88:14:88:15 | access to local variable s3 : Struct [property Prop] : Object | J.cs:88:14:88:20 | access to property Prop | -| J.cs:88:14:88:15 | access to local variable s3 : Struct [property Prop] : Object | J.cs:88:14:88:20 | access to property Prop | -| J.cs:97:17:97:33 | call to method Source : Object | J.cs:99:28:99:28 | access to local variable o : Object | -| J.cs:97:17:97:33 | call to method Source : Object | J.cs:99:28:99:28 | access to local variable o : Object | -| J.cs:99:18:99:41 | { ..., ... } : <>__AnonType0 [property X] : Object | J.cs:102:14:102:15 | access to local variable a2 : <>__AnonType0 [property X] : Object | -| J.cs:99:18:99:41 | { ..., ... } : <>__AnonType0 [property X] : Object | J.cs:102:14:102:15 | access to local variable a2 : <>__AnonType0 [property X] : Object | -| J.cs:99:18:99:41 | { ..., ... } : <>__AnonType0 [property X] : Object | J.cs:106:14:106:15 | access to local variable a3 : <>__AnonType0 [property X] : Object | -| J.cs:99:18:99:41 | { ..., ... } : <>__AnonType0 [property X] : Object | J.cs:106:14:106:15 | access to local variable a3 : <>__AnonType0 [property X] : Object | -| J.cs:99:28:99:28 | access to local variable o : Object | J.cs:99:18:99:41 | { ..., ... } : <>__AnonType0 [property X] : Object | -| J.cs:99:28:99:28 | access to local variable o : Object | J.cs:99:18:99:41 | { ..., ... } : <>__AnonType0 [property X] : Object | -| J.cs:102:14:102:15 | access to local variable a2 : <>__AnonType0 [property X] : Object | J.cs:102:14:102:17 | access to property X | -| J.cs:102:14:102:15 | access to local variable a2 : <>__AnonType0 [property X] : Object | J.cs:102:14:102:17 | access to property X | -| J.cs:105:18:105:50 | ... with { ... } : <>__AnonType0 [property Y] : Object | J.cs:107:14:107:15 | access to local variable a3 : <>__AnonType0 [property Y] : Object | -| J.cs:105:18:105:50 | ... with { ... } : <>__AnonType0 [property Y] : Object | J.cs:107:14:107:15 | access to local variable a3 : <>__AnonType0 [property Y] : Object | -| J.cs:105:32:105:48 | call to method Source : Object | J.cs:105:18:105:50 | ... with { ... } : <>__AnonType0 [property Y] : Object | -| J.cs:105:32:105:48 | call to method Source : Object | J.cs:105:18:105:50 | ... with { ... } : <>__AnonType0 [property Y] : Object | -| J.cs:106:14:106:15 | access to local variable a3 : <>__AnonType0 [property X] : Object | J.cs:106:14:106:17 | access to property X | -| J.cs:106:14:106:15 | access to local variable a3 : <>__AnonType0 [property X] : Object | J.cs:106:14:106:17 | access to property X | -| J.cs:107:14:107:15 | access to local variable a3 : <>__AnonType0 [property Y] : Object | J.cs:107:14:107:17 | access to property Y | -| J.cs:107:14:107:15 | access to local variable a3 : <>__AnonType0 [property Y] : Object | J.cs:107:14:107:17 | access to property Y | -| J.cs:119:13:119:13 | [post] access to local variable a : Int32[] [element] : Int32 | J.cs:125:14:125:14 | access to local variable a : Int32[] [element] : Int32 | -| J.cs:119:13:119:13 | [post] access to local variable a : Int32[] [element] : Int32 | J.cs:125:14:125:14 | access to local variable a : Int32[] [element] : Int32 | -| J.cs:119:20:119:34 | call to method Source : Int32 | J.cs:119:13:119:13 | [post] access to local variable a : Int32[] [element] : Int32 | -| J.cs:119:20:119:34 | call to method Source : Int32 | J.cs:119:13:119:13 | [post] access to local variable a : Int32[] [element] : Int32 | -| J.cs:125:14:125:14 | access to local variable a : Int32[] [element] : Int32 | J.cs:125:14:125:17 | access to array element : Int32 | -| J.cs:125:14:125:14 | access to local variable a : Int32[] [element] : Int32 | J.cs:125:14:125:17 | access to array element : Int32 | -| J.cs:125:14:125:17 | access to array element : Int32 | J.cs:125:14:125:17 | (...) ... | -| J.cs:125:14:125:17 | access to array element : Int32 | J.cs:125:14:125:17 | (...) ... | +| A.cs:5:17:5:28 | call to method Source : C | A.cs:6:24:6:24 | access to local variable c : C | provenance | | +| A.cs:5:17:5:28 | call to method Source : C | A.cs:6:24:6:24 | access to local variable c : C | provenance | | +| A.cs:6:17:6:25 | call to method Make : B [field c] : C | A.cs:7:14:7:14 | access to local variable b : B [field c] : C | provenance | | +| A.cs:6:17:6:25 | call to method Make : B [field c] : C | A.cs:7:14:7:14 | access to local variable b : B [field c] : C | provenance | | +| A.cs:6:24:6:24 | access to local variable c : C | A.cs:6:17:6:25 | call to method Make : B [field c] : C | provenance | | +| A.cs:6:24:6:24 | access to local variable c : C | A.cs:6:17:6:25 | call to method Make : B [field c] : C | provenance | | +| A.cs:6:24:6:24 | access to local variable c : C | A.cs:147:32:147:32 | c : C | provenance | | +| A.cs:6:24:6:24 | access to local variable c : C | A.cs:147:32:147:32 | c : C | provenance | | +| A.cs:7:14:7:14 | access to local variable b : B [field c] : C | A.cs:7:14:7:16 | access to field c | provenance | | +| A.cs:7:14:7:14 | access to local variable b : B [field c] : C | A.cs:7:14:7:16 | access to field c | provenance | | +| A.cs:13:9:13:9 | [post] access to local variable b : B [field c] : C1 | A.cs:14:14:14:14 | access to local variable b : B [field c] : C1 | provenance | | +| A.cs:13:9:13:9 | [post] access to local variable b : B [field c] : C1 | A.cs:14:14:14:14 | access to local variable b : B [field c] : C1 | provenance | | +| A.cs:13:15:13:29 | call to method Source : C1 | A.cs:13:9:13:9 | [post] access to local variable b : B [field c] : C1 | provenance | | +| A.cs:13:15:13:29 | call to method Source : C1 | A.cs:13:9:13:9 | [post] access to local variable b : B [field c] : C1 | provenance | | +| A.cs:13:15:13:29 | call to method Source : C1 | A.cs:145:27:145:27 | c : C1 | provenance | | +| A.cs:13:15:13:29 | call to method Source : C1 | A.cs:145:27:145:27 | c : C1 | provenance | | +| A.cs:14:14:14:14 | access to local variable b : B [field c] : C1 | A.cs:14:14:14:20 | call to method Get | provenance | | +| A.cs:14:14:14:14 | access to local variable b : B [field c] : C1 | A.cs:14:14:14:20 | call to method Get | provenance | | +| A.cs:14:14:14:14 | access to local variable b : B [field c] : C1 | A.cs:146:18:146:20 | this : B [field c] : C1 | provenance | | +| A.cs:14:14:14:14 | access to local variable b : B [field c] : C1 | A.cs:146:18:146:20 | this : B [field c] : C1 | provenance | | +| A.cs:15:15:15:35 | object creation of type B : B [field c] : C | A.cs:15:14:15:42 | call to method Get | provenance | | +| A.cs:15:15:15:35 | object creation of type B : B [field c] : C | A.cs:15:14:15:42 | call to method Get | provenance | | +| A.cs:15:15:15:35 | object creation of type B : B [field c] : C | A.cs:146:18:146:20 | this : B [field c] : C | provenance | | +| A.cs:15:15:15:35 | object creation of type B : B [field c] : C | A.cs:146:18:146:20 | this : B [field c] : C | provenance | | +| A.cs:15:21:15:34 | call to method Source : C | A.cs:15:15:15:35 | object creation of type B : B [field c] : C | provenance | | +| A.cs:15:21:15:34 | call to method Source : C | A.cs:15:15:15:35 | object creation of type B : B [field c] : C | provenance | | +| A.cs:15:21:15:34 | call to method Source : C | A.cs:141:20:141:20 | c : C | provenance | | +| A.cs:15:21:15:34 | call to method Source : C | A.cs:141:20:141:20 | c : C | provenance | | +| A.cs:22:14:22:38 | call to method SetOnB : B [field c] : C2 | A.cs:24:14:24:15 | access to local variable b2 : B [field c] : C2 | provenance | | +| A.cs:22:14:22:38 | call to method SetOnB : B [field c] : C2 | A.cs:24:14:24:15 | access to local variable b2 : B [field c] : C2 | provenance | | +| A.cs:22:25:22:37 | call to method Source : C2 | A.cs:22:14:22:38 | call to method SetOnB : B [field c] : C2 | provenance | | +| A.cs:22:25:22:37 | call to method Source : C2 | A.cs:22:14:22:38 | call to method SetOnB : B [field c] : C2 | provenance | | +| A.cs:22:25:22:37 | call to method Source : C2 | A.cs:42:29:42:29 | c : C2 | provenance | | +| A.cs:22:25:22:37 | call to method Source : C2 | A.cs:42:29:42:29 | c : C2 | provenance | | +| A.cs:24:14:24:15 | access to local variable b2 : B [field c] : C2 | A.cs:24:14:24:17 | access to field c | provenance | | +| A.cs:24:14:24:15 | access to local variable b2 : B [field c] : C2 | A.cs:24:14:24:17 | access to field c | provenance | | +| A.cs:31:14:31:42 | call to method SetOnBWrap : B [field c] : C2 | A.cs:33:14:33:15 | access to local variable b2 : B [field c] : C2 | provenance | | +| A.cs:31:14:31:42 | call to method SetOnBWrap : B [field c] : C2 | A.cs:33:14:33:15 | access to local variable b2 : B [field c] : C2 | provenance | | +| A.cs:31:29:31:41 | call to method Source : C2 | A.cs:31:14:31:42 | call to method SetOnBWrap : B [field c] : C2 | provenance | | +| A.cs:31:29:31:41 | call to method Source : C2 | A.cs:31:14:31:42 | call to method SetOnBWrap : B [field c] : C2 | provenance | | +| A.cs:31:29:31:41 | call to method Source : C2 | A.cs:36:33:36:33 | c : C2 | provenance | | +| A.cs:31:29:31:41 | call to method Source : C2 | A.cs:36:33:36:33 | c : C2 | provenance | | +| A.cs:33:14:33:15 | access to local variable b2 : B [field c] : C2 | A.cs:33:14:33:17 | access to field c | provenance | | +| A.cs:33:14:33:15 | access to local variable b2 : B [field c] : C2 | A.cs:33:14:33:17 | access to field c | provenance | | +| A.cs:36:33:36:33 | c : C2 | A.cs:38:29:38:29 | access to parameter c : C2 | provenance | | +| A.cs:36:33:36:33 | c : C2 | A.cs:38:29:38:29 | access to parameter c : C2 | provenance | | +| A.cs:38:18:38:30 | call to method SetOnB : B [field c] : C2 | A.cs:39:16:39:28 | ... ? ... : ... : B [field c] : C2 | provenance | | +| A.cs:38:18:38:30 | call to method SetOnB : B [field c] : C2 | A.cs:39:16:39:28 | ... ? ... : ... : B [field c] : C2 | provenance | | +| A.cs:38:29:38:29 | access to parameter c : C2 | A.cs:38:18:38:30 | call to method SetOnB : B [field c] : C2 | provenance | | +| A.cs:38:29:38:29 | access to parameter c : C2 | A.cs:38:18:38:30 | call to method SetOnB : B [field c] : C2 | provenance | | +| A.cs:38:29:38:29 | access to parameter c : C2 | A.cs:42:29:42:29 | c : C2 | provenance | | +| A.cs:38:29:38:29 | access to parameter c : C2 | A.cs:42:29:42:29 | c : C2 | provenance | | +| A.cs:42:29:42:29 | c : C2 | A.cs:47:20:47:20 | access to parameter c : C2 | provenance | | +| A.cs:42:29:42:29 | c : C2 | A.cs:47:20:47:20 | access to parameter c : C2 | provenance | | +| A.cs:47:13:47:14 | [post] access to local variable b2 : B [field c] : C2 | A.cs:48:20:48:21 | access to local variable b2 : B [field c] : C2 | provenance | | +| A.cs:47:13:47:14 | [post] access to local variable b2 : B [field c] : C2 | A.cs:48:20:48:21 | access to local variable b2 : B [field c] : C2 | provenance | | +| A.cs:47:20:47:20 | access to parameter c : C2 | A.cs:47:13:47:14 | [post] access to local variable b2 : B [field c] : C2 | provenance | | +| A.cs:47:20:47:20 | access to parameter c : C2 | A.cs:47:13:47:14 | [post] access to local variable b2 : B [field c] : C2 | provenance | | +| A.cs:47:20:47:20 | access to parameter c : C2 | A.cs:145:27:145:27 | c : C2 | provenance | | +| A.cs:47:20:47:20 | access to parameter c : C2 | A.cs:145:27:145:27 | c : C2 | provenance | | +| A.cs:55:17:55:28 | call to method Source : A | A.cs:57:16:57:16 | access to local variable a : A | provenance | | +| A.cs:55:17:55:28 | call to method Source : A | A.cs:57:16:57:16 | access to local variable a : A | provenance | | +| A.cs:57:9:57:10 | [post] access to local variable c1 : C1 [field a] : A | A.cs:58:12:58:13 | access to local variable c1 : C1 [field a] : A | provenance | | +| A.cs:57:9:57:10 | [post] access to local variable c1 : C1 [field a] : A | A.cs:58:12:58:13 | access to local variable c1 : C1 [field a] : A | provenance | | +| A.cs:57:16:57:16 | access to local variable a : A | A.cs:57:9:57:10 | [post] access to local variable c1 : C1 [field a] : A | provenance | | +| A.cs:57:16:57:16 | access to local variable a : A | A.cs:57:9:57:10 | [post] access to local variable c1 : C1 [field a] : A | provenance | | +| A.cs:58:12:58:13 | access to local variable c1 : C1 [field a] : A | A.cs:60:22:60:22 | c : C1 [field a] : A | provenance | | +| A.cs:58:12:58:13 | access to local variable c1 : C1 [field a] : A | A.cs:60:22:60:22 | c : C1 [field a] : A | provenance | | +| A.cs:60:22:60:22 | c : C1 [field a] : A | A.cs:64:19:64:23 | (...) ... : C1 [field a] : A | provenance | | +| A.cs:60:22:60:22 | c : C1 [field a] : A | A.cs:64:19:64:23 | (...) ... : C1 [field a] : A | provenance | | +| A.cs:64:19:64:23 | (...) ... : C1 [field a] : A | A.cs:64:18:64:26 | access to field a | provenance | | +| A.cs:64:19:64:23 | (...) ... : C1 [field a] : A | A.cs:64:18:64:26 | access to field a | provenance | | +| A.cs:83:9:83:9 | [post] access to parameter b : B [field c] : C | A.cs:88:12:88:12 | [post] access to local variable b : B [field c] : C | provenance | | +| A.cs:83:9:83:9 | [post] access to parameter b : B [field c] : C | A.cs:88:12:88:12 | [post] access to local variable b : B [field c] : C | provenance | | +| A.cs:83:15:83:26 | call to method Source : C | A.cs:83:9:83:9 | [post] access to parameter b : B [field c] : C | provenance | | +| A.cs:83:15:83:26 | call to method Source : C | A.cs:83:9:83:9 | [post] access to parameter b : B [field c] : C | provenance | | +| A.cs:83:15:83:26 | call to method Source : C | A.cs:145:27:145:27 | c : C | provenance | | +| A.cs:83:15:83:26 | call to method Source : C | A.cs:145:27:145:27 | c : C | provenance | | +| A.cs:88:12:88:12 | [post] access to local variable b : B [field c] : C | A.cs:89:14:89:14 | access to local variable b : B [field c] : C | provenance | | +| A.cs:88:12:88:12 | [post] access to local variable b : B [field c] : C | A.cs:89:14:89:14 | access to local variable b : B [field c] : C | provenance | | +| A.cs:89:14:89:14 | access to local variable b : B [field c] : C | A.cs:89:14:89:16 | access to field c | provenance | | +| A.cs:89:14:89:14 | access to local variable b : B [field c] : C | A.cs:89:14:89:16 | access to field c | provenance | | +| A.cs:95:20:95:20 | b : B | A.cs:97:13:97:13 | access to parameter b : B | provenance | | +| A.cs:95:20:95:20 | b : B | A.cs:97:13:97:13 | access to parameter b : B | provenance | | +| A.cs:97:13:97:13 | [post] access to parameter b : B [field c] : C | A.cs:98:22:98:43 | ... ? ... : ... : B [field c] : C | provenance | | +| A.cs:97:13:97:13 | [post] access to parameter b : B [field c] : C | A.cs:98:22:98:43 | ... ? ... : ... : B [field c] : C | provenance | | +| A.cs:97:13:97:13 | [post] access to parameter b : B [field c] : C | A.cs:105:23:105:23 | [post] access to local variable b : B [field c] : C | provenance | | +| A.cs:97:13:97:13 | [post] access to parameter b : B [field c] : C | A.cs:105:23:105:23 | [post] access to local variable b : B [field c] : C | provenance | | +| A.cs:97:13:97:13 | access to parameter b : B | A.cs:98:22:98:43 | ... ? ... : ... : B | provenance | | +| A.cs:97:13:97:13 | access to parameter b : B | A.cs:98:22:98:43 | ... ? ... : ... : B | provenance | | +| A.cs:97:19:97:32 | call to method Source : C | A.cs:97:13:97:13 | [post] access to parameter b : B [field c] : C | provenance | | +| A.cs:97:19:97:32 | call to method Source : C | A.cs:97:13:97:13 | [post] access to parameter b : B [field c] : C | provenance | | +| A.cs:98:13:98:16 | [post] this access : D [field b, field c] : C | A.cs:105:17:105:29 | object creation of type D : D [field b, field c] : C | provenance | | +| A.cs:98:13:98:16 | [post] this access : D [field b, field c] : C | A.cs:105:17:105:29 | object creation of type D : D [field b, field c] : C | provenance | | +| A.cs:98:13:98:16 | [post] this access : D [field b] : B | A.cs:105:17:105:29 | object creation of type D : D [field b] : B | provenance | | +| A.cs:98:13:98:16 | [post] this access : D [field b] : B | A.cs:105:17:105:29 | object creation of type D : D [field b] : B | provenance | | +| A.cs:98:22:98:43 | ... ? ... : ... : B | A.cs:98:13:98:16 | [post] this access : D [field b] : B | provenance | | +| A.cs:98:22:98:43 | ... ? ... : ... : B | A.cs:98:13:98:16 | [post] this access : D [field b] : B | provenance | | +| A.cs:98:22:98:43 | ... ? ... : ... : B | A.cs:98:13:98:16 | [post] this access : D [field b] : B | provenance | | +| A.cs:98:22:98:43 | ... ? ... : ... : B | A.cs:98:13:98:16 | [post] this access : D [field b] : B | provenance | | +| A.cs:98:22:98:43 | ... ? ... : ... : B [field c] : C | A.cs:98:13:98:16 | [post] this access : D [field b, field c] : C | provenance | | +| A.cs:98:22:98:43 | ... ? ... : ... : B [field c] : C | A.cs:98:13:98:16 | [post] this access : D [field b, field c] : C | provenance | | +| A.cs:98:30:98:43 | call to method Source : B | A.cs:98:22:98:43 | ... ? ... : ... : B | provenance | | +| A.cs:98:30:98:43 | call to method Source : B | A.cs:98:22:98:43 | ... ? ... : ... : B | provenance | | +| A.cs:104:17:104:30 | call to method Source : B | A.cs:105:23:105:23 | access to local variable b : B | provenance | | +| A.cs:104:17:104:30 | call to method Source : B | A.cs:105:23:105:23 | access to local variable b : B | provenance | | +| A.cs:105:17:105:29 | object creation of type D : D [field b, field c] : C | A.cs:107:14:107:14 | access to local variable d : D [field b, field c] : C | provenance | | +| A.cs:105:17:105:29 | object creation of type D : D [field b, field c] : C | A.cs:107:14:107:14 | access to local variable d : D [field b, field c] : C | provenance | | +| A.cs:105:17:105:29 | object creation of type D : D [field b] : B | A.cs:106:14:106:14 | access to local variable d : D [field b] : B | provenance | | +| A.cs:105:17:105:29 | object creation of type D : D [field b] : B | A.cs:106:14:106:14 | access to local variable d : D [field b] : B | provenance | | +| A.cs:105:23:105:23 | [post] access to local variable b : B [field c] : C | A.cs:108:14:108:14 | access to local variable b : B [field c] : C | provenance | | +| A.cs:105:23:105:23 | [post] access to local variable b : B [field c] : C | A.cs:108:14:108:14 | access to local variable b : B [field c] : C | provenance | | +| A.cs:105:23:105:23 | access to local variable b : B | A.cs:95:20:95:20 | b : B | provenance | | +| A.cs:105:23:105:23 | access to local variable b : B | A.cs:95:20:95:20 | b : B | provenance | | +| A.cs:105:23:105:23 | access to local variable b : B | A.cs:105:17:105:29 | object creation of type D : D [field b] : B | provenance | | +| A.cs:105:23:105:23 | access to local variable b : B | A.cs:105:17:105:29 | object creation of type D : D [field b] : B | provenance | | +| A.cs:106:14:106:14 | access to local variable d : D [field b] : B | A.cs:106:14:106:16 | access to field b | provenance | | +| A.cs:106:14:106:14 | access to local variable d : D [field b] : B | A.cs:106:14:106:16 | access to field b | provenance | | +| A.cs:107:14:107:14 | access to local variable d : D [field b, field c] : C | A.cs:107:14:107:16 | access to field b : B [field c] : C | provenance | | +| A.cs:107:14:107:14 | access to local variable d : D [field b, field c] : C | A.cs:107:14:107:16 | access to field b : B [field c] : C | provenance | | +| A.cs:107:14:107:16 | access to field b : B [field c] : C | A.cs:107:14:107:18 | access to field c | provenance | | +| A.cs:107:14:107:16 | access to field b : B [field c] : C | A.cs:107:14:107:18 | access to field c | provenance | | +| A.cs:108:14:108:14 | access to local variable b : B [field c] : C | A.cs:108:14:108:16 | access to field c | provenance | | +| A.cs:108:14:108:14 | access to local variable b : B [field c] : C | A.cs:108:14:108:16 | access to field c | provenance | | +| A.cs:113:17:113:29 | call to method Source : B | A.cs:114:29:114:29 | access to local variable b : B | provenance | | +| A.cs:113:17:113:29 | call to method Source : B | A.cs:114:29:114:29 | access to local variable b : B | provenance | | +| A.cs:114:18:114:54 | object creation of type MyList : MyList [field head] : B | A.cs:115:35:115:36 | access to local variable l1 : MyList [field head] : B | provenance | | +| A.cs:114:18:114:54 | object creation of type MyList : MyList [field head] : B | A.cs:115:35:115:36 | access to local variable l1 : MyList [field head] : B | provenance | | +| A.cs:114:29:114:29 | access to local variable b : B | A.cs:114:18:114:54 | object creation of type MyList : MyList [field head] : B | provenance | | +| A.cs:114:29:114:29 | access to local variable b : B | A.cs:114:18:114:54 | object creation of type MyList : MyList [field head] : B | provenance | | +| A.cs:114:29:114:29 | access to local variable b : B | A.cs:157:25:157:28 | head : B | provenance | | +| A.cs:114:29:114:29 | access to local variable b : B | A.cs:157:25:157:28 | head : B | provenance | | +| A.cs:115:18:115:37 | object creation of type MyList : MyList [field next, field head] : B | A.cs:116:35:116:36 | access to local variable l2 : MyList [field next, field head] : B | provenance | | +| A.cs:115:18:115:37 | object creation of type MyList : MyList [field next, field head] : B | A.cs:116:35:116:36 | access to local variable l2 : MyList [field next, field head] : B | provenance | | +| A.cs:115:35:115:36 | access to local variable l1 : MyList [field head] : B | A.cs:115:18:115:37 | object creation of type MyList : MyList [field next, field head] : B | provenance | | +| A.cs:115:35:115:36 | access to local variable l1 : MyList [field head] : B | A.cs:115:18:115:37 | object creation of type MyList : MyList [field next, field head] : B | provenance | | +| A.cs:115:35:115:36 | access to local variable l1 : MyList [field head] : B | A.cs:157:38:157:41 | next : MyList [field head] : B | provenance | | +| A.cs:115:35:115:36 | access to local variable l1 : MyList [field head] : B | A.cs:157:38:157:41 | next : MyList [field head] : B | provenance | | +| A.cs:116:18:116:37 | object creation of type MyList : MyList [field next, field next, field head] : B | A.cs:119:14:119:15 | access to local variable l3 : MyList [field next, field next, field head] : B | provenance | | +| A.cs:116:18:116:37 | object creation of type MyList : MyList [field next, field next, field head] : B | A.cs:119:14:119:15 | access to local variable l3 : MyList [field next, field next, field head] : B | provenance | | +| A.cs:116:18:116:37 | object creation of type MyList : MyList [field next, field next, field head] : B | A.cs:121:41:121:41 | access to local variable l : MyList [field next, field next, field head] : B | provenance | | +| A.cs:116:18:116:37 | object creation of type MyList : MyList [field next, field next, field head] : B | A.cs:121:41:121:41 | access to local variable l : MyList [field next, field next, field head] : B | provenance | | +| A.cs:116:35:116:36 | access to local variable l2 : MyList [field next, field head] : B | A.cs:116:18:116:37 | object creation of type MyList : MyList [field next, field next, field head] : B | provenance | | +| A.cs:116:35:116:36 | access to local variable l2 : MyList [field next, field head] : B | A.cs:116:18:116:37 | object creation of type MyList : MyList [field next, field next, field head] : B | provenance | | +| A.cs:116:35:116:36 | access to local variable l2 : MyList [field next, field head] : B | A.cs:157:38:157:41 | next : MyList [field next, field head] : B | provenance | | +| A.cs:116:35:116:36 | access to local variable l2 : MyList [field next, field head] : B | A.cs:157:38:157:41 | next : MyList [field next, field head] : B | provenance | | +| A.cs:119:14:119:15 | access to local variable l3 : MyList [field next, field next, field head] : B | A.cs:119:14:119:20 | access to field next : MyList [field next, field head] : B | provenance | | +| A.cs:119:14:119:15 | access to local variable l3 : MyList [field next, field next, field head] : B | A.cs:119:14:119:20 | access to field next : MyList [field next, field head] : B | provenance | | +| A.cs:119:14:119:20 | access to field next : MyList [field next, field head] : B | A.cs:119:14:119:25 | access to field next : MyList [field head] : B | provenance | | +| A.cs:119:14:119:20 | access to field next : MyList [field next, field head] : B | A.cs:119:14:119:25 | access to field next : MyList [field head] : B | provenance | | +| A.cs:119:14:119:25 | access to field next : MyList [field head] : B | A.cs:119:14:119:30 | access to field head | provenance | | +| A.cs:119:14:119:25 | access to field next : MyList [field head] : B | A.cs:119:14:119:30 | access to field head | provenance | | +| A.cs:121:41:121:41 | access to local variable l : MyList [field next, field head] : B | A.cs:121:41:121:46 | access to field next : MyList [field head] : B | provenance | | +| A.cs:121:41:121:41 | access to local variable l : MyList [field next, field head] : B | A.cs:121:41:121:46 | access to field next : MyList [field head] : B | provenance | | +| A.cs:121:41:121:41 | access to local variable l : MyList [field next, field next, field head] : B | A.cs:121:41:121:46 | access to field next : MyList [field next, field head] : B | provenance | | +| A.cs:121:41:121:41 | access to local variable l : MyList [field next, field next, field head] : B | A.cs:121:41:121:46 | access to field next : MyList [field next, field head] : B | provenance | | +| A.cs:121:41:121:46 | access to field next : MyList [field head] : B | A.cs:123:18:123:18 | access to local variable l : MyList [field head] : B | provenance | | +| A.cs:121:41:121:46 | access to field next : MyList [field head] : B | A.cs:123:18:123:18 | access to local variable l : MyList [field head] : B | provenance | | +| A.cs:121:41:121:46 | access to field next : MyList [field next, field head] : B | A.cs:121:41:121:41 | access to local variable l : MyList [field next, field head] : B | provenance | | +| A.cs:121:41:121:46 | access to field next : MyList [field next, field head] : B | A.cs:121:41:121:41 | access to local variable l : MyList [field next, field head] : B | provenance | | +| A.cs:123:18:123:18 | access to local variable l : MyList [field head] : B | A.cs:123:18:123:23 | access to field head | provenance | | +| A.cs:123:18:123:18 | access to local variable l : MyList [field head] : B | A.cs:123:18:123:23 | access to field head | provenance | | +| A.cs:141:20:141:20 | c : C | A.cs:143:22:143:22 | access to parameter c : C | provenance | | +| A.cs:141:20:141:20 | c : C | A.cs:143:22:143:22 | access to parameter c : C | provenance | | +| A.cs:143:22:143:22 | access to parameter c : C | A.cs:143:13:143:16 | [post] this access : B [field c] : C | provenance | | +| A.cs:143:22:143:22 | access to parameter c : C | A.cs:143:13:143:16 | [post] this access : B [field c] : C | provenance | | +| A.cs:145:27:145:27 | c : C | A.cs:145:41:145:41 | access to parameter c : C | provenance | | +| A.cs:145:27:145:27 | c : C | A.cs:145:41:145:41 | access to parameter c : C | provenance | | +| A.cs:145:27:145:27 | c : C1 | A.cs:145:41:145:41 | access to parameter c : C1 | provenance | | +| A.cs:145:27:145:27 | c : C1 | A.cs:145:41:145:41 | access to parameter c : C1 | provenance | | +| A.cs:145:27:145:27 | c : C2 | A.cs:145:41:145:41 | access to parameter c : C2 | provenance | | +| A.cs:145:27:145:27 | c : C2 | A.cs:145:41:145:41 | access to parameter c : C2 | provenance | | +| A.cs:145:41:145:41 | access to parameter c : C | A.cs:145:32:145:35 | [post] this access : B [field c] : C | provenance | | +| A.cs:145:41:145:41 | access to parameter c : C | A.cs:145:32:145:35 | [post] this access : B [field c] : C | provenance | | +| A.cs:145:41:145:41 | access to parameter c : C1 | A.cs:145:32:145:35 | [post] this access : B [field c] : C1 | provenance | | +| A.cs:145:41:145:41 | access to parameter c : C1 | A.cs:145:32:145:35 | [post] this access : B [field c] : C1 | provenance | | +| A.cs:145:41:145:41 | access to parameter c : C2 | A.cs:145:32:145:35 | [post] this access : B [field c] : C2 | provenance | | +| A.cs:145:41:145:41 | access to parameter c : C2 | A.cs:145:32:145:35 | [post] this access : B [field c] : C2 | provenance | | +| A.cs:146:18:146:20 | this : B [field c] : C | A.cs:146:33:146:36 | this access : B [field c] : C | provenance | | +| A.cs:146:18:146:20 | this : B [field c] : C | A.cs:146:33:146:36 | this access : B [field c] : C | provenance | | +| A.cs:146:18:146:20 | this : B [field c] : C1 | A.cs:146:33:146:36 | this access : B [field c] : C1 | provenance | | +| A.cs:146:18:146:20 | this : B [field c] : C1 | A.cs:146:33:146:36 | this access : B [field c] : C1 | provenance | | +| A.cs:146:33:146:36 | this access : B [field c] : C | A.cs:146:33:146:38 | access to field c : C | provenance | | +| A.cs:146:33:146:36 | this access : B [field c] : C | A.cs:146:33:146:38 | access to field c : C | provenance | | +| A.cs:146:33:146:36 | this access : B [field c] : C1 | A.cs:146:33:146:38 | access to field c : C1 | provenance | | +| A.cs:146:33:146:36 | this access : B [field c] : C1 | A.cs:146:33:146:38 | access to field c : C1 | provenance | | +| A.cs:147:32:147:32 | c : C | A.cs:149:26:149:26 | access to parameter c : C | provenance | | +| A.cs:147:32:147:32 | c : C | A.cs:149:26:149:26 | access to parameter c : C | provenance | | +| A.cs:149:26:149:26 | access to parameter c : C | A.cs:141:20:141:20 | c : C | provenance | | +| A.cs:149:26:149:26 | access to parameter c : C | A.cs:141:20:141:20 | c : C | provenance | | +| A.cs:149:26:149:26 | access to parameter c : C | A.cs:149:20:149:27 | object creation of type B : B [field c] : C | provenance | | +| A.cs:149:26:149:26 | access to parameter c : C | A.cs:149:20:149:27 | object creation of type B : B [field c] : C | provenance | | +| A.cs:157:25:157:28 | head : B | A.cs:159:25:159:28 | access to parameter head : B | provenance | | +| A.cs:157:25:157:28 | head : B | A.cs:159:25:159:28 | access to parameter head : B | provenance | | +| A.cs:157:38:157:41 | next : MyList [field head] : B | A.cs:160:25:160:28 | access to parameter next : MyList [field head] : B | provenance | | +| A.cs:157:38:157:41 | next : MyList [field head] : B | A.cs:160:25:160:28 | access to parameter next : MyList [field head] : B | provenance | | +| A.cs:157:38:157:41 | next : MyList [field next, field head] : B | A.cs:160:25:160:28 | access to parameter next : MyList [field next, field head] : B | provenance | | +| A.cs:157:38:157:41 | next : MyList [field next, field head] : B | A.cs:160:25:160:28 | access to parameter next : MyList [field next, field head] : B | provenance | | +| A.cs:159:25:159:28 | access to parameter head : B | A.cs:159:13:159:16 | [post] this access : MyList [field head] : B | provenance | | +| A.cs:159:25:159:28 | access to parameter head : B | A.cs:159:13:159:16 | [post] this access : MyList [field head] : B | provenance | | +| A.cs:160:25:160:28 | access to parameter next : MyList [field head] : B | A.cs:160:13:160:16 | [post] this access : MyList [field next, field head] : B | provenance | | +| A.cs:160:25:160:28 | access to parameter next : MyList [field head] : B | A.cs:160:13:160:16 | [post] this access : MyList [field next, field head] : B | provenance | | +| A.cs:160:25:160:28 | access to parameter next : MyList [field next, field head] : B | A.cs:160:13:160:16 | [post] this access : MyList [field next, field next, field head] : B | provenance | | +| A.cs:160:25:160:28 | access to parameter next : MyList [field next, field head] : B | A.cs:160:13:160:16 | [post] this access : MyList [field next, field next, field head] : B | provenance | | +| B.cs:5:17:5:31 | call to method Source : Elem | B.cs:6:27:6:27 | access to local variable e : Elem | provenance | | +| B.cs:5:17:5:31 | call to method Source : Elem | B.cs:6:27:6:27 | access to local variable e : Elem | provenance | | +| B.cs:6:18:6:34 | object creation of type Box1 : Box1 [field elem1] : Elem | B.cs:7:27:7:28 | access to local variable b1 : Box1 [field elem1] : Elem | provenance | | +| B.cs:6:18:6:34 | object creation of type Box1 : Box1 [field elem1] : Elem | B.cs:7:27:7:28 | access to local variable b1 : Box1 [field elem1] : Elem | provenance | | +| B.cs:6:27:6:27 | access to local variable e : Elem | B.cs:6:18:6:34 | object creation of type Box1 : Box1 [field elem1] : Elem | provenance | | +| B.cs:6:27:6:27 | access to local variable e : Elem | B.cs:6:18:6:34 | object creation of type Box1 : Box1 [field elem1] : Elem | provenance | | +| B.cs:6:27:6:27 | access to local variable e : Elem | B.cs:29:26:29:27 | e1 : Elem | provenance | | +| B.cs:6:27:6:27 | access to local variable e : Elem | B.cs:29:26:29:27 | e1 : Elem | provenance | | +| B.cs:7:18:7:29 | object creation of type Box2 : Box2 [field box1, field elem1] : Elem | B.cs:8:14:8:15 | access to local variable b2 : Box2 [field box1, field elem1] : Elem | provenance | | +| B.cs:7:18:7:29 | object creation of type Box2 : Box2 [field box1, field elem1] : Elem | B.cs:8:14:8:15 | access to local variable b2 : Box2 [field box1, field elem1] : Elem | provenance | | +| B.cs:7:27:7:28 | access to local variable b1 : Box1 [field elem1] : Elem | B.cs:7:18:7:29 | object creation of type Box2 : Box2 [field box1, field elem1] : Elem | provenance | | +| B.cs:7:27:7:28 | access to local variable b1 : Box1 [field elem1] : Elem | B.cs:7:18:7:29 | object creation of type Box2 : Box2 [field box1, field elem1] : Elem | provenance | | +| B.cs:7:27:7:28 | access to local variable b1 : Box1 [field elem1] : Elem | B.cs:39:26:39:27 | b1 : Box1 [field elem1] : Elem | provenance | | +| B.cs:7:27:7:28 | access to local variable b1 : Box1 [field elem1] : Elem | B.cs:39:26:39:27 | b1 : Box1 [field elem1] : Elem | provenance | | +| B.cs:8:14:8:15 | access to local variable b2 : Box2 [field box1, field elem1] : Elem | B.cs:8:14:8:20 | access to field box1 : Box1 [field elem1] : Elem | provenance | | +| B.cs:8:14:8:15 | access to local variable b2 : Box2 [field box1, field elem1] : Elem | B.cs:8:14:8:20 | access to field box1 : Box1 [field elem1] : Elem | provenance | | +| B.cs:8:14:8:20 | access to field box1 : Box1 [field elem1] : Elem | B.cs:8:14:8:26 | access to field elem1 | provenance | | +| B.cs:8:14:8:20 | access to field box1 : Box1 [field elem1] : Elem | B.cs:8:14:8:26 | access to field elem1 | provenance | | +| B.cs:14:17:14:31 | call to method Source : Elem | B.cs:15:33:15:33 | access to local variable e : Elem | provenance | | +| B.cs:14:17:14:31 | call to method Source : Elem | B.cs:15:33:15:33 | access to local variable e : Elem | provenance | | +| B.cs:15:18:15:34 | object creation of type Box1 : Box1 [field elem2] : Elem | B.cs:16:27:16:28 | access to local variable b1 : Box1 [field elem2] : Elem | provenance | | +| B.cs:15:18:15:34 | object creation of type Box1 : Box1 [field elem2] : Elem | B.cs:16:27:16:28 | access to local variable b1 : Box1 [field elem2] : Elem | provenance | | +| B.cs:15:33:15:33 | access to local variable e : Elem | B.cs:15:18:15:34 | object creation of type Box1 : Box1 [field elem2] : Elem | provenance | | +| B.cs:15:33:15:33 | access to local variable e : Elem | B.cs:15:18:15:34 | object creation of type Box1 : Box1 [field elem2] : Elem | provenance | | +| B.cs:15:33:15:33 | access to local variable e : Elem | B.cs:29:35:29:36 | e2 : Elem | provenance | | +| B.cs:15:33:15:33 | access to local variable e : Elem | B.cs:29:35:29:36 | e2 : Elem | provenance | | +| B.cs:16:18:16:29 | object creation of type Box2 : Box2 [field box1, field elem2] : Elem | B.cs:18:14:18:15 | access to local variable b2 : Box2 [field box1, field elem2] : Elem | provenance | | +| B.cs:16:18:16:29 | object creation of type Box2 : Box2 [field box1, field elem2] : Elem | B.cs:18:14:18:15 | access to local variable b2 : Box2 [field box1, field elem2] : Elem | provenance | | +| B.cs:16:27:16:28 | access to local variable b1 : Box1 [field elem2] : Elem | B.cs:16:18:16:29 | object creation of type Box2 : Box2 [field box1, field elem2] : Elem | provenance | | +| B.cs:16:27:16:28 | access to local variable b1 : Box1 [field elem2] : Elem | B.cs:16:18:16:29 | object creation of type Box2 : Box2 [field box1, field elem2] : Elem | provenance | | +| B.cs:16:27:16:28 | access to local variable b1 : Box1 [field elem2] : Elem | B.cs:39:26:39:27 | b1 : Box1 [field elem2] : Elem | provenance | | +| B.cs:16:27:16:28 | access to local variable b1 : Box1 [field elem2] : Elem | B.cs:39:26:39:27 | b1 : Box1 [field elem2] : Elem | provenance | | +| B.cs:18:14:18:15 | access to local variable b2 : Box2 [field box1, field elem2] : Elem | B.cs:18:14:18:20 | access to field box1 : Box1 [field elem2] : Elem | provenance | | +| B.cs:18:14:18:15 | access to local variable b2 : Box2 [field box1, field elem2] : Elem | B.cs:18:14:18:20 | access to field box1 : Box1 [field elem2] : Elem | provenance | | +| B.cs:18:14:18:20 | access to field box1 : Box1 [field elem2] : Elem | B.cs:18:14:18:26 | access to field elem2 | provenance | | +| B.cs:18:14:18:20 | access to field box1 : Box1 [field elem2] : Elem | B.cs:18:14:18:26 | access to field elem2 | provenance | | +| B.cs:29:26:29:27 | e1 : Elem | B.cs:31:26:31:27 | access to parameter e1 : Elem | provenance | | +| B.cs:29:26:29:27 | e1 : Elem | B.cs:31:26:31:27 | access to parameter e1 : Elem | provenance | | +| B.cs:29:35:29:36 | e2 : Elem | B.cs:32:26:32:27 | access to parameter e2 : Elem | provenance | | +| B.cs:29:35:29:36 | e2 : Elem | B.cs:32:26:32:27 | access to parameter e2 : Elem | provenance | | +| B.cs:31:26:31:27 | access to parameter e1 : Elem | B.cs:31:13:31:16 | [post] this access : Box1 [field elem1] : Elem | provenance | | +| B.cs:31:26:31:27 | access to parameter e1 : Elem | B.cs:31:13:31:16 | [post] this access : Box1 [field elem1] : Elem | provenance | | +| B.cs:32:26:32:27 | access to parameter e2 : Elem | B.cs:32:13:32:16 | [post] this access : Box1 [field elem2] : Elem | provenance | | +| B.cs:32:26:32:27 | access to parameter e2 : Elem | B.cs:32:13:32:16 | [post] this access : Box1 [field elem2] : Elem | provenance | | +| B.cs:39:26:39:27 | b1 : Box1 [field elem1] : Elem | B.cs:41:25:41:26 | access to parameter b1 : Box1 [field elem1] : Elem | provenance | | +| B.cs:39:26:39:27 | b1 : Box1 [field elem1] : Elem | B.cs:41:25:41:26 | access to parameter b1 : Box1 [field elem1] : Elem | provenance | | +| B.cs:39:26:39:27 | b1 : Box1 [field elem2] : Elem | B.cs:41:25:41:26 | access to parameter b1 : Box1 [field elem2] : Elem | provenance | | +| B.cs:39:26:39:27 | b1 : Box1 [field elem2] : Elem | B.cs:41:25:41:26 | access to parameter b1 : Box1 [field elem2] : Elem | provenance | | +| B.cs:41:25:41:26 | access to parameter b1 : Box1 [field elem1] : Elem | B.cs:41:13:41:16 | [post] this access : Box2 [field box1, field elem1] : Elem | provenance | | +| B.cs:41:25:41:26 | access to parameter b1 : Box1 [field elem1] : Elem | B.cs:41:13:41:16 | [post] this access : Box2 [field box1, field elem1] : Elem | provenance | | +| B.cs:41:25:41:26 | access to parameter b1 : Box1 [field elem2] : Elem | B.cs:41:13:41:16 | [post] this access : Box2 [field box1, field elem2] : Elem | provenance | | +| B.cs:41:25:41:26 | access to parameter b1 : Box1 [field elem2] : Elem | B.cs:41:13:41:16 | [post] this access : Box2 [field box1, field elem2] : Elem | provenance | | +| C.cs:3:18:3:19 | [post] this access : C [field s1] : Elem | C.cs:12:15:12:21 | object creation of type C : C [field s1] : Elem | provenance | | +| C.cs:3:18:3:19 | [post] this access : C [field s1] : Elem | C.cs:12:15:12:21 | object creation of type C : C [field s1] : Elem | provenance | | +| C.cs:3:23:3:37 | call to method Source : Elem | C.cs:3:18:3:19 | [post] this access : C [field s1] : Elem | provenance | | +| C.cs:3:23:3:37 | call to method Source : Elem | C.cs:3:18:3:19 | [post] this access : C [field s1] : Elem | provenance | | +| C.cs:4:27:4:28 | [post] this access : C [field s2] : Elem | C.cs:12:15:12:21 | object creation of type C : C [field s2] : Elem | provenance | | +| C.cs:4:27:4:28 | [post] this access : C [field s2] : Elem | C.cs:12:15:12:21 | object creation of type C : C [field s2] : Elem | provenance | | +| C.cs:4:32:4:46 | call to method Source : Elem | C.cs:4:27:4:28 | [post] this access : C [field s2] : Elem | provenance | | +| C.cs:4:32:4:46 | call to method Source : Elem | C.cs:4:27:4:28 | [post] this access : C [field s2] : Elem | provenance | | +| C.cs:6:30:6:44 | call to method Source : Elem | C.cs:26:14:26:15 | access to field s4 | provenance | | +| C.cs:6:30:6:44 | call to method Source : Elem | C.cs:26:14:26:15 | access to field s4 | provenance | | +| C.cs:7:18:7:19 | [post] this access : C [property s5] : Elem | C.cs:12:15:12:21 | object creation of type C : C [property s5] : Elem | provenance | | +| C.cs:7:18:7:19 | [post] this access : C [property s5] : Elem | C.cs:12:15:12:21 | object creation of type C : C [property s5] : Elem | provenance | | +| C.cs:7:37:7:51 | call to method Source : Elem | C.cs:7:18:7:19 | [post] this access : C [property s5] : Elem | provenance | | +| C.cs:7:37:7:51 | call to method Source : Elem | C.cs:7:18:7:19 | [post] this access : C [property s5] : Elem | provenance | | +| C.cs:8:30:8:44 | call to method Source : Elem | C.cs:28:14:28:15 | access to property s6 | provenance | | +| C.cs:8:30:8:44 | call to method Source : Elem | C.cs:28:14:28:15 | access to property s6 | provenance | | +| C.cs:12:15:12:21 | object creation of type C : C [field s1] : Elem | C.cs:13:9:13:9 | access to local variable c : C [field s1] : Elem | provenance | | +| C.cs:12:15:12:21 | object creation of type C : C [field s1] : Elem | C.cs:13:9:13:9 | access to local variable c : C [field s1] : Elem | provenance | | +| C.cs:12:15:12:21 | object creation of type C : C [field s2] : Elem | C.cs:13:9:13:9 | access to local variable c : C [field s2] : Elem | provenance | | +| C.cs:12:15:12:21 | object creation of type C : C [field s2] : Elem | C.cs:13:9:13:9 | access to local variable c : C [field s2] : Elem | provenance | | +| C.cs:12:15:12:21 | object creation of type C : C [field s3] : Elem | C.cs:13:9:13:9 | access to local variable c : C [field s3] : Elem | provenance | | +| C.cs:12:15:12:21 | object creation of type C : C [field s3] : Elem | C.cs:13:9:13:9 | access to local variable c : C [field s3] : Elem | provenance | | +| C.cs:12:15:12:21 | object creation of type C : C [property s5] : Elem | C.cs:13:9:13:9 | access to local variable c : C [property s5] : Elem | provenance | | +| C.cs:12:15:12:21 | object creation of type C : C [property s5] : Elem | C.cs:13:9:13:9 | access to local variable c : C [property s5] : Elem | provenance | | +| C.cs:13:9:13:9 | access to local variable c : C [field s1] : Elem | C.cs:21:17:21:18 | this : C [field s1] : Elem | provenance | | +| C.cs:13:9:13:9 | access to local variable c : C [field s1] : Elem | C.cs:21:17:21:18 | this : C [field s1] : Elem | provenance | | +| C.cs:13:9:13:9 | access to local variable c : C [field s2] : Elem | C.cs:21:17:21:18 | this : C [field s2] : Elem | provenance | | +| C.cs:13:9:13:9 | access to local variable c : C [field s2] : Elem | C.cs:21:17:21:18 | this : C [field s2] : Elem | provenance | | +| C.cs:13:9:13:9 | access to local variable c : C [field s3] : Elem | C.cs:21:17:21:18 | this : C [field s3] : Elem | provenance | | +| C.cs:13:9:13:9 | access to local variable c : C [field s3] : Elem | C.cs:21:17:21:18 | this : C [field s3] : Elem | provenance | | +| C.cs:13:9:13:9 | access to local variable c : C [property s5] : Elem | C.cs:21:17:21:18 | this : C [property s5] : Elem | provenance | | +| C.cs:13:9:13:9 | access to local variable c : C [property s5] : Elem | C.cs:21:17:21:18 | this : C [property s5] : Elem | provenance | | +| C.cs:18:9:18:12 | [post] this access : C [field s3] : Elem | C.cs:12:15:12:21 | object creation of type C : C [field s3] : Elem | provenance | | +| C.cs:18:9:18:12 | [post] this access : C [field s3] : Elem | C.cs:12:15:12:21 | object creation of type C : C [field s3] : Elem | provenance | | +| C.cs:18:19:18:33 | call to method Source : Elem | C.cs:18:9:18:12 | [post] this access : C [field s3] : Elem | provenance | | +| C.cs:18:19:18:33 | call to method Source : Elem | C.cs:18:9:18:12 | [post] this access : C [field s3] : Elem | provenance | | +| C.cs:21:17:21:18 | this : C [field s1] : Elem | C.cs:23:14:23:15 | this access : C [field s1] : Elem | provenance | | +| C.cs:21:17:21:18 | this : C [field s1] : Elem | C.cs:23:14:23:15 | this access : C [field s1] : Elem | provenance | | +| C.cs:21:17:21:18 | this : C [field s2] : Elem | C.cs:24:14:24:15 | this access : C [field s2] : Elem | provenance | | +| C.cs:21:17:21:18 | this : C [field s2] : Elem | C.cs:24:14:24:15 | this access : C [field s2] : Elem | provenance | | +| C.cs:21:17:21:18 | this : C [field s3] : Elem | C.cs:25:14:25:15 | this access : C [field s3] : Elem | provenance | | +| C.cs:21:17:21:18 | this : C [field s3] : Elem | C.cs:25:14:25:15 | this access : C [field s3] : Elem | provenance | | +| C.cs:21:17:21:18 | this : C [property s5] : Elem | C.cs:27:14:27:15 | this access : C [property s5] : Elem | provenance | | +| C.cs:21:17:21:18 | this : C [property s5] : Elem | C.cs:27:14:27:15 | this access : C [property s5] : Elem | provenance | | +| C.cs:23:14:23:15 | this access : C [field s1] : Elem | C.cs:23:14:23:15 | access to field s1 | provenance | | +| C.cs:23:14:23:15 | this access : C [field s1] : Elem | C.cs:23:14:23:15 | access to field s1 | provenance | | +| C.cs:24:14:24:15 | this access : C [field s2] : Elem | C.cs:24:14:24:15 | access to field s2 | provenance | | +| C.cs:24:14:24:15 | this access : C [field s2] : Elem | C.cs:24:14:24:15 | access to field s2 | provenance | | +| C.cs:25:14:25:15 | this access : C [field s3] : Elem | C.cs:25:14:25:15 | access to field s3 | provenance | | +| C.cs:25:14:25:15 | this access : C [field s3] : Elem | C.cs:25:14:25:15 | access to field s3 | provenance | | +| C.cs:27:14:27:15 | this access : C [property s5] : Elem | C.cs:27:14:27:15 | access to property s5 | provenance | | +| C.cs:27:14:27:15 | this access : C [property s5] : Elem | C.cs:27:14:27:15 | access to property s5 | provenance | | +| C_ctor.cs:3:18:3:19 | [post] this access : C_no_ctor [field s1] : Elem | C_ctor.cs:7:23:7:37 | object creation of type C_no_ctor : C_no_ctor [field s1] : Elem | provenance | | +| C_ctor.cs:3:18:3:19 | [post] this access : C_no_ctor [field s1] : Elem | C_ctor.cs:7:23:7:37 | object creation of type C_no_ctor : C_no_ctor [field s1] : Elem | provenance | | +| C_ctor.cs:3:23:3:42 | call to method Source : Elem | C_ctor.cs:3:18:3:19 | [post] this access : C_no_ctor [field s1] : Elem | provenance | | +| C_ctor.cs:3:23:3:42 | call to method Source : Elem | C_ctor.cs:3:18:3:19 | [post] this access : C_no_ctor [field s1] : Elem | provenance | | +| C_ctor.cs:7:23:7:37 | object creation of type C_no_ctor : C_no_ctor [field s1] : Elem | C_ctor.cs:8:9:8:9 | access to local variable c : C_no_ctor [field s1] : Elem | provenance | | +| C_ctor.cs:7:23:7:37 | object creation of type C_no_ctor : C_no_ctor [field s1] : Elem | C_ctor.cs:8:9:8:9 | access to local variable c : C_no_ctor [field s1] : Elem | provenance | | +| C_ctor.cs:8:9:8:9 | access to local variable c : C_no_ctor [field s1] : Elem | C_ctor.cs:11:17:11:18 | this : C_no_ctor [field s1] : Elem | provenance | | +| C_ctor.cs:8:9:8:9 | access to local variable c : C_no_ctor [field s1] : Elem | C_ctor.cs:11:17:11:18 | this : C_no_ctor [field s1] : Elem | provenance | | +| C_ctor.cs:11:17:11:18 | this : C_no_ctor [field s1] : Elem | C_ctor.cs:13:19:13:20 | this access : C_no_ctor [field s1] : Elem | provenance | | +| C_ctor.cs:11:17:11:18 | this : C_no_ctor [field s1] : Elem | C_ctor.cs:13:19:13:20 | this access : C_no_ctor [field s1] : Elem | provenance | | +| C_ctor.cs:13:19:13:20 | this access : C_no_ctor [field s1] : Elem | C_ctor.cs:13:19:13:20 | access to field s1 | provenance | | +| C_ctor.cs:13:19:13:20 | this access : C_no_ctor [field s1] : Elem | C_ctor.cs:13:19:13:20 | access to field s1 | provenance | | +| C_ctor.cs:19:18:19:19 | [post] this access : C_with_ctor [field s1] : Elem | C_ctor.cs:23:25:23:41 | object creation of type C_with_ctor : C_with_ctor [field s1] : Elem | provenance | | +| C_ctor.cs:19:18:19:19 | [post] this access : C_with_ctor [field s1] : Elem | C_ctor.cs:23:25:23:41 | object creation of type C_with_ctor : C_with_ctor [field s1] : Elem | provenance | | +| C_ctor.cs:19:23:19:42 | call to method Source : Elem | C_ctor.cs:19:18:19:19 | [post] this access : C_with_ctor [field s1] : Elem | provenance | | +| C_ctor.cs:19:23:19:42 | call to method Source : Elem | C_ctor.cs:19:18:19:19 | [post] this access : C_with_ctor [field s1] : Elem | provenance | | +| C_ctor.cs:23:25:23:41 | object creation of type C_with_ctor : C_with_ctor [field s1] : Elem | C_ctor.cs:24:9:24:9 | access to local variable c : C_with_ctor [field s1] : Elem | provenance | | +| C_ctor.cs:23:25:23:41 | object creation of type C_with_ctor : C_with_ctor [field s1] : Elem | C_ctor.cs:24:9:24:9 | access to local variable c : C_with_ctor [field s1] : Elem | provenance | | +| C_ctor.cs:24:9:24:9 | access to local variable c : C_with_ctor [field s1] : Elem | C_ctor.cs:29:17:29:18 | this : C_with_ctor [field s1] : Elem | provenance | | +| C_ctor.cs:24:9:24:9 | access to local variable c : C_with_ctor [field s1] : Elem | C_ctor.cs:29:17:29:18 | this : C_with_ctor [field s1] : Elem | provenance | | +| C_ctor.cs:29:17:29:18 | this : C_with_ctor [field s1] : Elem | C_ctor.cs:31:19:31:20 | this access : C_with_ctor [field s1] : Elem | provenance | | +| C_ctor.cs:29:17:29:18 | this : C_with_ctor [field s1] : Elem | C_ctor.cs:31:19:31:20 | this access : C_with_ctor [field s1] : Elem | provenance | | +| C_ctor.cs:31:19:31:20 | this access : C_with_ctor [field s1] : Elem | C_ctor.cs:31:19:31:20 | access to field s1 | provenance | | +| C_ctor.cs:31:19:31:20 | this access : C_with_ctor [field s1] : Elem | C_ctor.cs:31:19:31:20 | access to field s1 | provenance | | +| D.cs:8:9:8:11 | this : D [field trivialPropField] : Object | D.cs:8:22:8:25 | this access : D [field trivialPropField] : Object | provenance | | +| D.cs:8:9:8:11 | this : D [field trivialPropField] : Object | D.cs:8:22:8:25 | this access : D [field trivialPropField] : Object | provenance | | +| D.cs:8:22:8:25 | this access : D [field trivialPropField] : Object | D.cs:8:22:8:42 | access to field trivialPropField : Object | provenance | | +| D.cs:8:22:8:25 | this access : D [field trivialPropField] : Object | D.cs:8:22:8:42 | access to field trivialPropField : Object | provenance | | +| D.cs:9:9:9:11 | value : Object | D.cs:9:39:9:43 | access to parameter value : Object | provenance | | +| D.cs:9:9:9:11 | value : Object | D.cs:9:39:9:43 | access to parameter value : Object | provenance | | +| D.cs:9:39:9:43 | access to parameter value : Object | D.cs:9:15:9:18 | [post] this access : D [field trivialPropField] : Object | provenance | | +| D.cs:9:39:9:43 | access to parameter value : Object | D.cs:9:15:9:18 | [post] this access : D [field trivialPropField] : Object | provenance | | +| D.cs:14:9:14:11 | this : D [field trivialPropField] : Object | D.cs:14:22:14:25 | this access : D [field trivialPropField] : Object | provenance | | +| D.cs:14:9:14:11 | this : D [field trivialPropField] : Object | D.cs:14:22:14:25 | this access : D [field trivialPropField] : Object | provenance | | +| D.cs:14:22:14:25 | this access : D [field trivialPropField] : Object | D.cs:14:22:14:42 | access to field trivialPropField : Object | provenance | | +| D.cs:14:22:14:25 | this access : D [field trivialPropField] : Object | D.cs:14:22:14:42 | access to field trivialPropField : Object | provenance | | +| D.cs:15:9:15:11 | value : Object | D.cs:15:34:15:38 | access to parameter value : Object | provenance | | +| D.cs:15:9:15:11 | value : Object | D.cs:15:34:15:38 | access to parameter value : Object | provenance | | +| D.cs:15:34:15:38 | access to parameter value : Object | D.cs:9:9:9:11 | value : Object | provenance | | +| D.cs:15:34:15:38 | access to parameter value : Object | D.cs:9:9:9:11 | value : Object | provenance | | +| D.cs:15:34:15:38 | access to parameter value : Object | D.cs:15:15:15:18 | [post] this access : D [field trivialPropField] : Object | provenance | | +| D.cs:15:34:15:38 | access to parameter value : Object | D.cs:15:15:15:18 | [post] this access : D [field trivialPropField] : Object | provenance | | +| D.cs:18:28:18:29 | o1 : Object | D.cs:21:24:21:25 | access to parameter o1 : Object | provenance | | +| D.cs:18:28:18:29 | o1 : Object | D.cs:21:24:21:25 | access to parameter o1 : Object | provenance | | +| D.cs:18:39:18:40 | o2 : Object | D.cs:22:27:22:28 | access to parameter o2 : Object | provenance | | +| D.cs:18:39:18:40 | o2 : Object | D.cs:22:27:22:28 | access to parameter o2 : Object | provenance | | +| D.cs:18:50:18:51 | o3 : Object | D.cs:23:27:23:28 | access to parameter o3 : Object | provenance | | +| D.cs:18:50:18:51 | o3 : Object | D.cs:23:27:23:28 | access to parameter o3 : Object | provenance | | +| D.cs:21:9:21:11 | [post] access to local variable ret : D [property AutoProp] : Object | D.cs:24:16:24:18 | access to local variable ret : D [property AutoProp] : Object | provenance | | +| D.cs:21:9:21:11 | [post] access to local variable ret : D [property AutoProp] : Object | D.cs:24:16:24:18 | access to local variable ret : D [property AutoProp] : Object | provenance | | +| D.cs:21:24:21:25 | access to parameter o1 : Object | D.cs:21:9:21:11 | [post] access to local variable ret : D [property AutoProp] : Object | provenance | | +| D.cs:21:24:21:25 | access to parameter o1 : Object | D.cs:21:9:21:11 | [post] access to local variable ret : D [property AutoProp] : Object | provenance | | +| D.cs:22:9:22:11 | [post] access to local variable ret : D [field trivialPropField] : Object | D.cs:24:16:24:18 | access to local variable ret : D [field trivialPropField] : Object | provenance | | +| D.cs:22:9:22:11 | [post] access to local variable ret : D [field trivialPropField] : Object | D.cs:24:16:24:18 | access to local variable ret : D [field trivialPropField] : Object | provenance | | +| D.cs:22:27:22:28 | access to parameter o2 : Object | D.cs:9:9:9:11 | value : Object | provenance | | +| D.cs:22:27:22:28 | access to parameter o2 : Object | D.cs:9:9:9:11 | value : Object | provenance | | +| D.cs:22:27:22:28 | access to parameter o2 : Object | D.cs:22:9:22:11 | [post] access to local variable ret : D [field trivialPropField] : Object | provenance | | +| D.cs:22:27:22:28 | access to parameter o2 : Object | D.cs:22:9:22:11 | [post] access to local variable ret : D [field trivialPropField] : Object | provenance | | +| D.cs:23:9:23:11 | [post] access to local variable ret : D [field trivialPropField] : Object | D.cs:24:16:24:18 | access to local variable ret : D [field trivialPropField] : Object | provenance | | +| D.cs:23:9:23:11 | [post] access to local variable ret : D [field trivialPropField] : Object | D.cs:24:16:24:18 | access to local variable ret : D [field trivialPropField] : Object | provenance | | +| D.cs:23:27:23:28 | access to parameter o3 : Object | D.cs:15:9:15:11 | value : Object | provenance | | +| D.cs:23:27:23:28 | access to parameter o3 : Object | D.cs:15:9:15:11 | value : Object | provenance | | +| D.cs:23:27:23:28 | access to parameter o3 : Object | D.cs:23:9:23:11 | [post] access to local variable ret : D [field trivialPropField] : Object | provenance | | +| D.cs:23:27:23:28 | access to parameter o3 : Object | D.cs:23:9:23:11 | [post] access to local variable ret : D [field trivialPropField] : Object | provenance | | +| D.cs:29:17:29:33 | call to method Source : Object | D.cs:31:24:31:24 | access to local variable o : Object | provenance | | +| D.cs:29:17:29:33 | call to method Source : Object | D.cs:31:24:31:24 | access to local variable o : Object | provenance | | +| D.cs:31:17:31:37 | call to method Create : D [property AutoProp] : Object | D.cs:32:14:32:14 | access to local variable d : D [property AutoProp] : Object | provenance | | +| D.cs:31:17:31:37 | call to method Create : D [property AutoProp] : Object | D.cs:32:14:32:14 | access to local variable d : D [property AutoProp] : Object | provenance | | +| D.cs:31:24:31:24 | access to local variable o : Object | D.cs:18:28:18:29 | o1 : Object | provenance | | +| D.cs:31:24:31:24 | access to local variable o : Object | D.cs:18:28:18:29 | o1 : Object | provenance | | +| D.cs:31:24:31:24 | access to local variable o : Object | D.cs:31:17:31:37 | call to method Create : D [property AutoProp] : Object | provenance | | +| D.cs:31:24:31:24 | access to local variable o : Object | D.cs:31:17:31:37 | call to method Create : D [property AutoProp] : Object | provenance | | +| D.cs:32:14:32:14 | access to local variable d : D [property AutoProp] : Object | D.cs:32:14:32:23 | access to property AutoProp | provenance | | +| D.cs:32:14:32:14 | access to local variable d : D [property AutoProp] : Object | D.cs:32:14:32:23 | access to property AutoProp | provenance | | +| D.cs:37:13:37:49 | call to method Create : D [field trivialPropField] : Object | D.cs:39:14:39:14 | access to local variable d : D [field trivialPropField] : Object | provenance | | +| D.cs:37:13:37:49 | call to method Create : D [field trivialPropField] : Object | D.cs:39:14:39:14 | access to local variable d : D [field trivialPropField] : Object | provenance | | +| D.cs:37:13:37:49 | call to method Create : D [field trivialPropField] : Object | D.cs:40:14:40:14 | access to local variable d : D [field trivialPropField] : Object | provenance | | +| D.cs:37:13:37:49 | call to method Create : D [field trivialPropField] : Object | D.cs:40:14:40:14 | access to local variable d : D [field trivialPropField] : Object | provenance | | +| D.cs:37:13:37:49 | call to method Create : D [field trivialPropField] : Object | D.cs:41:14:41:14 | access to local variable d : D [field trivialPropField] : Object | provenance | | +| D.cs:37:13:37:49 | call to method Create : D [field trivialPropField] : Object | D.cs:41:14:41:14 | access to local variable d : D [field trivialPropField] : Object | provenance | | +| D.cs:37:26:37:42 | call to method Source : Object | D.cs:18:39:18:40 | o2 : Object | provenance | | +| D.cs:37:26:37:42 | call to method Source : Object | D.cs:18:39:18:40 | o2 : Object | provenance | | +| D.cs:37:26:37:42 | call to method Source : Object | D.cs:37:13:37:49 | call to method Create : D [field trivialPropField] : Object | provenance | | +| D.cs:37:26:37:42 | call to method Source : Object | D.cs:37:13:37:49 | call to method Create : D [field trivialPropField] : Object | provenance | | +| D.cs:39:14:39:14 | access to local variable d : D [field trivialPropField] : Object | D.cs:8:9:8:11 | this : D [field trivialPropField] : Object | provenance | | +| D.cs:39:14:39:14 | access to local variable d : D [field trivialPropField] : Object | D.cs:8:9:8:11 | this : D [field trivialPropField] : Object | provenance | | +| D.cs:39:14:39:14 | access to local variable d : D [field trivialPropField] : Object | D.cs:39:14:39:26 | access to property TrivialProp | provenance | | +| D.cs:39:14:39:14 | access to local variable d : D [field trivialPropField] : Object | D.cs:39:14:39:26 | access to property TrivialProp | provenance | | +| D.cs:40:14:40:14 | access to local variable d : D [field trivialPropField] : Object | D.cs:40:14:40:31 | access to field trivialPropField | provenance | | +| D.cs:40:14:40:14 | access to local variable d : D [field trivialPropField] : Object | D.cs:40:14:40:31 | access to field trivialPropField | provenance | | +| D.cs:41:14:41:14 | access to local variable d : D [field trivialPropField] : Object | D.cs:14:9:14:11 | this : D [field trivialPropField] : Object | provenance | | +| D.cs:41:14:41:14 | access to local variable d : D [field trivialPropField] : Object | D.cs:14:9:14:11 | this : D [field trivialPropField] : Object | provenance | | +| D.cs:41:14:41:14 | access to local variable d : D [field trivialPropField] : Object | D.cs:41:14:41:26 | access to property ComplexProp | provenance | | +| D.cs:41:14:41:14 | access to local variable d : D [field trivialPropField] : Object | D.cs:41:14:41:26 | access to property ComplexProp | provenance | | +| D.cs:43:13:43:49 | call to method Create : D [field trivialPropField] : Object | D.cs:45:14:45:14 | access to local variable d : D [field trivialPropField] : Object | provenance | | +| D.cs:43:13:43:49 | call to method Create : D [field trivialPropField] : Object | D.cs:45:14:45:14 | access to local variable d : D [field trivialPropField] : Object | provenance | | +| D.cs:43:13:43:49 | call to method Create : D [field trivialPropField] : Object | D.cs:46:14:46:14 | access to local variable d : D [field trivialPropField] : Object | provenance | | +| D.cs:43:13:43:49 | call to method Create : D [field trivialPropField] : Object | D.cs:46:14:46:14 | access to local variable d : D [field trivialPropField] : Object | provenance | | +| D.cs:43:13:43:49 | call to method Create : D [field trivialPropField] : Object | D.cs:47:14:47:14 | access to local variable d : D [field trivialPropField] : Object | provenance | | +| D.cs:43:13:43:49 | call to method Create : D [field trivialPropField] : Object | D.cs:47:14:47:14 | access to local variable d : D [field trivialPropField] : Object | provenance | | +| D.cs:43:32:43:48 | call to method Source : Object | D.cs:18:50:18:51 | o3 : Object | provenance | | +| D.cs:43:32:43:48 | call to method Source : Object | D.cs:18:50:18:51 | o3 : Object | provenance | | +| D.cs:43:32:43:48 | call to method Source : Object | D.cs:43:13:43:49 | call to method Create : D [field trivialPropField] : Object | provenance | | +| D.cs:43:32:43:48 | call to method Source : Object | D.cs:43:13:43:49 | call to method Create : D [field trivialPropField] : Object | provenance | | +| D.cs:45:14:45:14 | access to local variable d : D [field trivialPropField] : Object | D.cs:8:9:8:11 | this : D [field trivialPropField] : Object | provenance | | +| D.cs:45:14:45:14 | access to local variable d : D [field trivialPropField] : Object | D.cs:8:9:8:11 | this : D [field trivialPropField] : Object | provenance | | +| D.cs:45:14:45:14 | access to local variable d : D [field trivialPropField] : Object | D.cs:45:14:45:26 | access to property TrivialProp | provenance | | +| D.cs:45:14:45:14 | access to local variable d : D [field trivialPropField] : Object | D.cs:45:14:45:26 | access to property TrivialProp | provenance | | +| D.cs:46:14:46:14 | access to local variable d : D [field trivialPropField] : Object | D.cs:46:14:46:31 | access to field trivialPropField | provenance | | +| D.cs:46:14:46:14 | access to local variable d : D [field trivialPropField] : Object | D.cs:46:14:46:31 | access to field trivialPropField | provenance | | +| D.cs:47:14:47:14 | access to local variable d : D [field trivialPropField] : Object | D.cs:14:9:14:11 | this : D [field trivialPropField] : Object | provenance | | +| D.cs:47:14:47:14 | access to local variable d : D [field trivialPropField] : Object | D.cs:14:9:14:11 | this : D [field trivialPropField] : Object | provenance | | +| D.cs:47:14:47:14 | access to local variable d : D [field trivialPropField] : Object | D.cs:47:14:47:26 | access to property ComplexProp | provenance | | +| D.cs:47:14:47:14 | access to local variable d : D [field trivialPropField] : Object | D.cs:47:14:47:26 | access to property ComplexProp | provenance | | +| E.cs:8:29:8:29 | o : Object | E.cs:11:21:11:21 | access to parameter o : Object | provenance | | +| E.cs:8:29:8:29 | o : Object | E.cs:11:21:11:21 | access to parameter o : Object | provenance | | +| E.cs:11:9:11:11 | [post] access to local variable ret : S [field Field] : Object | E.cs:12:16:12:18 | access to local variable ret : S [field Field] : Object | provenance | | +| E.cs:11:9:11:11 | [post] access to local variable ret : S [field Field] : Object | E.cs:12:16:12:18 | access to local variable ret : S [field Field] : Object | provenance | | +| E.cs:11:21:11:21 | access to parameter o : Object | E.cs:11:9:11:11 | [post] access to local variable ret : S [field Field] : Object | provenance | | +| E.cs:11:21:11:21 | access to parameter o : Object | E.cs:11:9:11:11 | [post] access to local variable ret : S [field Field] : Object | provenance | | +| E.cs:22:17:22:33 | call to method Source : Object | E.cs:23:25:23:25 | access to local variable o : Object | provenance | | +| E.cs:22:17:22:33 | call to method Source : Object | E.cs:23:25:23:25 | access to local variable o : Object | provenance | | +| E.cs:23:17:23:26 | call to method CreateS : S [field Field] : Object | E.cs:24:14:24:14 | access to local variable s : S [field Field] : Object | provenance | | +| E.cs:23:17:23:26 | call to method CreateS : S [field Field] : Object | E.cs:24:14:24:14 | access to local variable s : S [field Field] : Object | provenance | | +| E.cs:23:25:23:25 | access to local variable o : Object | E.cs:8:29:8:29 | o : Object | provenance | | +| E.cs:23:25:23:25 | access to local variable o : Object | E.cs:8:29:8:29 | o : Object | provenance | | +| E.cs:23:25:23:25 | access to local variable o : Object | E.cs:23:17:23:26 | call to method CreateS : S [field Field] : Object | provenance | | +| E.cs:23:25:23:25 | access to local variable o : Object | E.cs:23:17:23:26 | call to method CreateS : S [field Field] : Object | provenance | | +| E.cs:24:14:24:14 | access to local variable s : S [field Field] : Object | E.cs:24:14:24:20 | access to field Field | provenance | | +| E.cs:24:14:24:14 | access to local variable s : S [field Field] : Object | E.cs:24:14:24:20 | access to field Field | provenance | | +| E.cs:43:46:43:46 | o : Object | E.cs:46:22:46:22 | access to parameter o : Object | provenance | | +| E.cs:43:46:43:46 | o : Object | E.cs:46:22:46:22 | access to parameter o : Object | provenance | | +| E.cs:46:22:46:22 | access to parameter o : Object | E.cs:46:9:46:9 | [post] access to parameter s : RefS [field RefField] : Object | provenance | | +| E.cs:46:22:46:22 | access to parameter o : Object | E.cs:46:9:46:9 | [post] access to parameter s : RefS [field RefField] : Object | provenance | | +| E.cs:54:21:54:37 | call to method Source : Object | E.cs:55:29:55:33 | access to local variable taint : Object | provenance | | +| E.cs:54:21:54:37 | call to method Source : Object | E.cs:55:29:55:33 | access to local variable taint : Object | provenance | | +| E.cs:55:23:55:26 | [post] access to local variable refs : RefS [field RefField] : Object | E.cs:57:14:57:17 | access to local variable refs : RefS [field RefField] : Object | provenance | | +| E.cs:55:23:55:26 | [post] access to local variable refs : RefS [field RefField] : Object | E.cs:57:14:57:17 | access to local variable refs : RefS [field RefField] : Object | provenance | | +| E.cs:55:29:55:33 | access to local variable taint : Object | E.cs:43:46:43:46 | o : Object | provenance | | +| E.cs:55:29:55:33 | access to local variable taint : Object | E.cs:43:46:43:46 | o : Object | provenance | | +| E.cs:55:29:55:33 | access to local variable taint : Object | E.cs:55:23:55:26 | [post] access to local variable refs : RefS [field RefField] : Object | provenance | | +| E.cs:55:29:55:33 | access to local variable taint : Object | E.cs:55:23:55:26 | [post] access to local variable refs : RefS [field RefField] : Object | provenance | | +| E.cs:57:14:57:17 | access to local variable refs : RefS [field RefField] : Object | E.cs:57:14:57:26 | access to field RefField | provenance | | +| E.cs:57:14:57:17 | access to local variable refs : RefS [field RefField] : Object | E.cs:57:14:57:26 | access to field RefField | provenance | | +| F.cs:6:28:6:29 | o1 : Object | F.cs:6:65:6:66 | access to parameter o1 : Object | provenance | | +| F.cs:6:28:6:29 | o1 : Object | F.cs:6:65:6:66 | access to parameter o1 : Object | provenance | | +| F.cs:6:39:6:40 | o2 : Object | F.cs:6:78:6:79 | access to parameter o2 : Object | provenance | | +| F.cs:6:39:6:40 | o2 : Object | F.cs:6:78:6:79 | access to parameter o2 : Object | provenance | | +| F.cs:6:54:6:81 | { ..., ... } : F [field Field1] : Object | F.cs:6:46:6:81 | object creation of type F : F [field Field1] : Object | provenance | | +| F.cs:6:54:6:81 | { ..., ... } : F [field Field1] : Object | F.cs:6:46:6:81 | object creation of type F : F [field Field1] : Object | provenance | | +| F.cs:6:54:6:81 | { ..., ... } : F [field Field2] : Object | F.cs:6:46:6:81 | object creation of type F : F [field Field2] : Object | provenance | | +| F.cs:6:54:6:81 | { ..., ... } : F [field Field2] : Object | F.cs:6:46:6:81 | object creation of type F : F [field Field2] : Object | provenance | | +| F.cs:6:65:6:66 | access to parameter o1 : Object | F.cs:6:54:6:81 | { ..., ... } : F [field Field1] : Object | provenance | | +| F.cs:6:65:6:66 | access to parameter o1 : Object | F.cs:6:54:6:81 | { ..., ... } : F [field Field1] : Object | provenance | | +| F.cs:6:78:6:79 | access to parameter o2 : Object | F.cs:6:54:6:81 | { ..., ... } : F [field Field2] : Object | provenance | | +| F.cs:6:78:6:79 | access to parameter o2 : Object | F.cs:6:54:6:81 | { ..., ... } : F [field Field2] : Object | provenance | | +| F.cs:10:17:10:33 | call to method Source : Object | F.cs:11:24:11:24 | access to local variable o : Object | provenance | | +| F.cs:10:17:10:33 | call to method Source : Object | F.cs:11:24:11:24 | access to local variable o : Object | provenance | | +| F.cs:11:17:11:31 | call to method Create : F [field Field1] : Object | F.cs:12:14:12:14 | access to local variable f : F [field Field1] : Object | provenance | | +| F.cs:11:17:11:31 | call to method Create : F [field Field1] : Object | F.cs:12:14:12:14 | access to local variable f : F [field Field1] : Object | provenance | | +| F.cs:11:24:11:24 | access to local variable o : Object | F.cs:6:28:6:29 | o1 : Object | provenance | | +| F.cs:11:24:11:24 | access to local variable o : Object | F.cs:6:28:6:29 | o1 : Object | provenance | | +| F.cs:11:24:11:24 | access to local variable o : Object | F.cs:11:17:11:31 | call to method Create : F [field Field1] : Object | provenance | | +| F.cs:11:24:11:24 | access to local variable o : Object | F.cs:11:17:11:31 | call to method Create : F [field Field1] : Object | provenance | | +| F.cs:12:14:12:14 | access to local variable f : F [field Field1] : Object | F.cs:12:14:12:21 | access to field Field1 | provenance | | +| F.cs:12:14:12:14 | access to local variable f : F [field Field1] : Object | F.cs:12:14:12:21 | access to field Field1 | provenance | | +| F.cs:15:13:15:43 | call to method Create : F [field Field2] : Object | F.cs:17:14:17:14 | access to local variable f : F [field Field2] : Object | provenance | | +| F.cs:15:13:15:43 | call to method Create : F [field Field2] : Object | F.cs:17:14:17:14 | access to local variable f : F [field Field2] : Object | provenance | | +| F.cs:15:26:15:42 | call to method Source : Object | F.cs:6:39:6:40 | o2 : Object | provenance | | +| F.cs:15:26:15:42 | call to method Source : Object | F.cs:6:39:6:40 | o2 : Object | provenance | | +| F.cs:15:26:15:42 | call to method Source : Object | F.cs:15:13:15:43 | call to method Create : F [field Field2] : Object | provenance | | +| F.cs:15:26:15:42 | call to method Source : Object | F.cs:15:13:15:43 | call to method Create : F [field Field2] : Object | provenance | | +| F.cs:17:14:17:14 | access to local variable f : F [field Field2] : Object | F.cs:17:14:17:21 | access to field Field2 | provenance | | +| F.cs:17:14:17:14 | access to local variable f : F [field Field2] : Object | F.cs:17:14:17:21 | access to field Field2 | provenance | | +| F.cs:19:21:19:50 | { ..., ... } : F [field Field1] : Object | F.cs:20:14:20:14 | access to local variable f : F [field Field1] : Object | provenance | | +| F.cs:19:21:19:50 | { ..., ... } : F [field Field1] : Object | F.cs:20:14:20:14 | access to local variable f : F [field Field1] : Object | provenance | | +| F.cs:19:32:19:48 | call to method Source : Object | F.cs:19:21:19:50 | { ..., ... } : F [field Field1] : Object | provenance | | +| F.cs:19:32:19:48 | call to method Source : Object | F.cs:19:21:19:50 | { ..., ... } : F [field Field1] : Object | provenance | | +| F.cs:20:14:20:14 | access to local variable f : F [field Field1] : Object | F.cs:20:14:20:21 | access to field Field1 | provenance | | +| F.cs:20:14:20:14 | access to local variable f : F [field Field1] : Object | F.cs:20:14:20:21 | access to field Field1 | provenance | | +| F.cs:23:21:23:50 | { ..., ... } : F [field Field2] : Object | F.cs:25:14:25:14 | access to local variable f : F [field Field2] : Object | provenance | | +| F.cs:23:21:23:50 | { ..., ... } : F [field Field2] : Object | F.cs:25:14:25:14 | access to local variable f : F [field Field2] : Object | provenance | | +| F.cs:23:32:23:48 | call to method Source : Object | F.cs:23:21:23:50 | { ..., ... } : F [field Field2] : Object | provenance | | +| F.cs:23:32:23:48 | call to method Source : Object | F.cs:23:21:23:50 | { ..., ... } : F [field Field2] : Object | provenance | | +| F.cs:25:14:25:14 | access to local variable f : F [field Field2] : Object | F.cs:25:14:25:21 | access to field Field2 | provenance | | +| F.cs:25:14:25:14 | access to local variable f : F [field Field2] : Object | F.cs:25:14:25:21 | access to field Field2 | provenance | | +| F.cs:30:17:30:33 | call to method Source : Object | F.cs:32:27:32:27 | access to local variable o : Object | provenance | | +| F.cs:30:17:30:33 | call to method Source : Object | F.cs:32:27:32:27 | access to local variable o : Object | provenance | | +| F.cs:32:17:32:40 | { ..., ... } : <>__AnonType0 [property X] : Object | F.cs:33:14:33:14 | access to local variable a : <>__AnonType0 [property X] : Object | provenance | | +| F.cs:32:17:32:40 | { ..., ... } : <>__AnonType0 [property X] : Object | F.cs:33:14:33:14 | access to local variable a : <>__AnonType0 [property X] : Object | provenance | | +| F.cs:32:27:32:27 | access to local variable o : Object | F.cs:32:17:32:40 | { ..., ... } : <>__AnonType0 [property X] : Object | provenance | | +| F.cs:32:27:32:27 | access to local variable o : Object | F.cs:32:17:32:40 | { ..., ... } : <>__AnonType0 [property X] : Object | provenance | | +| F.cs:33:14:33:14 | access to local variable a : <>__AnonType0 [property X] : Object | F.cs:33:14:33:16 | access to property X | provenance | | +| F.cs:33:14:33:14 | access to local variable a : <>__AnonType0 [property X] : Object | F.cs:33:14:33:16 | access to property X | provenance | | +| G.cs:7:18:7:32 | call to method Source : Elem | G.cs:9:23:9:23 | access to local variable e : Elem | provenance | | +| G.cs:7:18:7:32 | call to method Source : Elem | G.cs:9:23:9:23 | access to local variable e : Elem | provenance | | +| G.cs:9:9:9:9 | [post] access to local variable b : Box2 [field Box1, field Elem] : Elem | G.cs:10:18:10:18 | access to local variable b : Box2 [field Box1, field Elem] : Elem | provenance | | +| G.cs:9:9:9:9 | [post] access to local variable b : Box2 [field Box1, field Elem] : Elem | G.cs:10:18:10:18 | access to local variable b : Box2 [field Box1, field Elem] : Elem | provenance | | +| G.cs:9:9:9:14 | [post] access to field Box1 : Box1 [field Elem] : Elem | G.cs:9:9:9:9 | [post] access to local variable b : Box2 [field Box1, field Elem] : Elem | provenance | | +| G.cs:9:9:9:14 | [post] access to field Box1 : Box1 [field Elem] : Elem | G.cs:9:9:9:9 | [post] access to local variable b : Box2 [field Box1, field Elem] : Elem | provenance | | +| G.cs:9:23:9:23 | access to local variable e : Elem | G.cs:9:9:9:14 | [post] access to field Box1 : Box1 [field Elem] : Elem | provenance | | +| G.cs:9:23:9:23 | access to local variable e : Elem | G.cs:9:9:9:14 | [post] access to field Box1 : Box1 [field Elem] : Elem | provenance | | +| G.cs:10:18:10:18 | access to local variable b : Box2 [field Box1, field Elem] : Elem | G.cs:37:38:37:39 | b2 : Box2 [field Box1, field Elem] : Elem | provenance | | +| G.cs:10:18:10:18 | access to local variable b : Box2 [field Box1, field Elem] : Elem | G.cs:37:38:37:39 | b2 : Box2 [field Box1, field Elem] : Elem | provenance | | +| G.cs:15:18:15:32 | call to method Source : Elem | G.cs:17:24:17:24 | access to local variable e : Elem | provenance | | +| G.cs:15:18:15:32 | call to method Source : Elem | G.cs:17:24:17:24 | access to local variable e : Elem | provenance | | +| G.cs:17:9:17:9 | [post] access to local variable b : Box2 [field Box1, field Elem] : Elem | G.cs:18:18:18:18 | access to local variable b : Box2 [field Box1, field Elem] : Elem | provenance | | +| G.cs:17:9:17:9 | [post] access to local variable b : Box2 [field Box1, field Elem] : Elem | G.cs:18:18:18:18 | access to local variable b : Box2 [field Box1, field Elem] : Elem | provenance | | +| G.cs:17:9:17:14 | [post] access to field Box1 : Box1 [field Elem] : Elem | G.cs:17:9:17:9 | [post] access to local variable b : Box2 [field Box1, field Elem] : Elem | provenance | | +| G.cs:17:9:17:14 | [post] access to field Box1 : Box1 [field Elem] : Elem | G.cs:17:9:17:9 | [post] access to local variable b : Box2 [field Box1, field Elem] : Elem | provenance | | +| G.cs:17:24:17:24 | access to local variable e : Elem | G.cs:17:9:17:14 | [post] access to field Box1 : Box1 [field Elem] : Elem | provenance | | +| G.cs:17:24:17:24 | access to local variable e : Elem | G.cs:17:9:17:14 | [post] access to field Box1 : Box1 [field Elem] : Elem | provenance | | +| G.cs:17:24:17:24 | access to local variable e : Elem | G.cs:64:34:64:34 | e : Elem | provenance | | +| G.cs:17:24:17:24 | access to local variable e : Elem | G.cs:64:34:64:34 | e : Elem | provenance | | +| G.cs:18:18:18:18 | access to local variable b : Box2 [field Box1, field Elem] : Elem | G.cs:37:38:37:39 | b2 : Box2 [field Box1, field Elem] : Elem | provenance | | +| G.cs:18:18:18:18 | access to local variable b : Box2 [field Box1, field Elem] : Elem | G.cs:37:38:37:39 | b2 : Box2 [field Box1, field Elem] : Elem | provenance | | +| G.cs:23:18:23:32 | call to method Source : Elem | G.cs:25:28:25:28 | access to local variable e : Elem | provenance | | +| G.cs:23:18:23:32 | call to method Source : Elem | G.cs:25:28:25:28 | access to local variable e : Elem | provenance | | +| G.cs:25:9:25:9 | [post] access to local variable b : Box2 [field Box1, field Elem] : Elem | G.cs:26:18:26:18 | access to local variable b : Box2 [field Box1, field Elem] : Elem | provenance | | +| G.cs:25:9:25:9 | [post] access to local variable b : Box2 [field Box1, field Elem] : Elem | G.cs:26:18:26:18 | access to local variable b : Box2 [field Box1, field Elem] : Elem | provenance | | +| G.cs:25:9:25:19 | [post] call to method GetBox1 : Box1 [field Elem] : Elem | G.cs:25:9:25:9 | [post] access to local variable b : Box2 [field Box1, field Elem] : Elem | provenance | | +| G.cs:25:9:25:19 | [post] call to method GetBox1 : Box1 [field Elem] : Elem | G.cs:25:9:25:9 | [post] access to local variable b : Box2 [field Box1, field Elem] : Elem | provenance | | +| G.cs:25:28:25:28 | access to local variable e : Elem | G.cs:25:9:25:19 | [post] call to method GetBox1 : Box1 [field Elem] : Elem | provenance | | +| G.cs:25:28:25:28 | access to local variable e : Elem | G.cs:25:9:25:19 | [post] call to method GetBox1 : Box1 [field Elem] : Elem | provenance | | +| G.cs:26:18:26:18 | access to local variable b : Box2 [field Box1, field Elem] : Elem | G.cs:37:38:37:39 | b2 : Box2 [field Box1, field Elem] : Elem | provenance | | +| G.cs:26:18:26:18 | access to local variable b : Box2 [field Box1, field Elem] : Elem | G.cs:37:38:37:39 | b2 : Box2 [field Box1, field Elem] : Elem | provenance | | +| G.cs:31:18:31:32 | call to method Source : Elem | G.cs:33:29:33:29 | access to local variable e : Elem | provenance | | +| G.cs:31:18:31:32 | call to method Source : Elem | G.cs:33:29:33:29 | access to local variable e : Elem | provenance | | +| G.cs:33:9:33:9 | [post] access to local variable b : Box2 [field Box1, field Elem] : Elem | G.cs:34:18:34:18 | access to local variable b : Box2 [field Box1, field Elem] : Elem | provenance | | +| G.cs:33:9:33:9 | [post] access to local variable b : Box2 [field Box1, field Elem] : Elem | G.cs:34:18:34:18 | access to local variable b : Box2 [field Box1, field Elem] : Elem | provenance | | +| G.cs:33:9:33:19 | [post] call to method GetBox1 : Box1 [field Elem] : Elem | G.cs:33:9:33:9 | [post] access to local variable b : Box2 [field Box1, field Elem] : Elem | provenance | | +| G.cs:33:9:33:19 | [post] call to method GetBox1 : Box1 [field Elem] : Elem | G.cs:33:9:33:9 | [post] access to local variable b : Box2 [field Box1, field Elem] : Elem | provenance | | +| G.cs:33:29:33:29 | access to local variable e : Elem | G.cs:33:9:33:19 | [post] call to method GetBox1 : Box1 [field Elem] : Elem | provenance | | +| G.cs:33:29:33:29 | access to local variable e : Elem | G.cs:33:9:33:19 | [post] call to method GetBox1 : Box1 [field Elem] : Elem | provenance | | +| G.cs:33:29:33:29 | access to local variable e : Elem | G.cs:64:34:64:34 | e : Elem | provenance | | +| G.cs:33:29:33:29 | access to local variable e : Elem | G.cs:64:34:64:34 | e : Elem | provenance | | +| G.cs:34:18:34:18 | access to local variable b : Box2 [field Box1, field Elem] : Elem | G.cs:37:38:37:39 | b2 : Box2 [field Box1, field Elem] : Elem | provenance | | +| G.cs:34:18:34:18 | access to local variable b : Box2 [field Box1, field Elem] : Elem | G.cs:37:38:37:39 | b2 : Box2 [field Box1, field Elem] : Elem | provenance | | +| G.cs:37:38:37:39 | b2 : Box2 [field Box1, field Elem] : Elem | G.cs:39:14:39:15 | access to parameter b2 : Box2 [field Box1, field Elem] : Elem | provenance | | +| G.cs:37:38:37:39 | b2 : Box2 [field Box1, field Elem] : Elem | G.cs:39:14:39:15 | access to parameter b2 : Box2 [field Box1, field Elem] : Elem | provenance | | +| G.cs:39:14:39:15 | access to parameter b2 : Box2 [field Box1, field Elem] : Elem | G.cs:39:14:39:25 | call to method GetBox1 : Box1 [field Elem] : Elem | provenance | | +| G.cs:39:14:39:15 | access to parameter b2 : Box2 [field Box1, field Elem] : Elem | G.cs:39:14:39:25 | call to method GetBox1 : Box1 [field Elem] : Elem | provenance | | +| G.cs:39:14:39:15 | access to parameter b2 : Box2 [field Box1, field Elem] : Elem | G.cs:71:21:71:27 | this : Box2 [field Box1, field Elem] : Elem | provenance | | +| G.cs:39:14:39:15 | access to parameter b2 : Box2 [field Box1, field Elem] : Elem | G.cs:71:21:71:27 | this : Box2 [field Box1, field Elem] : Elem | provenance | | +| G.cs:39:14:39:25 | call to method GetBox1 : Box1 [field Elem] : Elem | G.cs:39:14:39:35 | call to method GetElem | provenance | | +| G.cs:39:14:39:25 | call to method GetBox1 : Box1 [field Elem] : Elem | G.cs:39:14:39:35 | call to method GetElem | provenance | | +| G.cs:39:14:39:25 | call to method GetBox1 : Box1 [field Elem] : Elem | G.cs:63:21:63:27 | this : Box1 [field Elem] : Elem | provenance | | +| G.cs:39:14:39:25 | call to method GetBox1 : Box1 [field Elem] : Elem | G.cs:63:21:63:27 | this : Box1 [field Elem] : Elem | provenance | | +| G.cs:44:18:44:32 | call to method Source : Elem | G.cs:46:30:46:30 | access to local variable e : Elem | provenance | | +| G.cs:44:18:44:32 | call to method Source : Elem | G.cs:46:30:46:30 | access to local variable e : Elem | provenance | | +| G.cs:46:9:46:16 | [post] access to field boxfield : Box2 [field Box1, field Elem] : Elem | G.cs:46:9:46:16 | [post] this access : G [field boxfield, field Box1, field Elem] : Elem | provenance | | +| G.cs:46:9:46:16 | [post] access to field boxfield : Box2 [field Box1, field Elem] : Elem | G.cs:46:9:46:16 | [post] this access : G [field boxfield, field Box1, field Elem] : Elem | provenance | | +| G.cs:46:9:46:16 | [post] this access : G [field boxfield, field Box1, field Elem] : Elem | G.cs:47:9:47:13 | this access : G [field boxfield, field Box1, field Elem] : Elem | provenance | | +| G.cs:46:9:46:16 | [post] this access : G [field boxfield, field Box1, field Elem] : Elem | G.cs:47:9:47:13 | this access : G [field boxfield, field Box1, field Elem] : Elem | provenance | | +| G.cs:46:9:46:21 | [post] access to field Box1 : Box1 [field Elem] : Elem | G.cs:46:9:46:16 | [post] access to field boxfield : Box2 [field Box1, field Elem] : Elem | provenance | | +| G.cs:46:9:46:21 | [post] access to field Box1 : Box1 [field Elem] : Elem | G.cs:46:9:46:16 | [post] access to field boxfield : Box2 [field Box1, field Elem] : Elem | provenance | | +| G.cs:46:30:46:30 | access to local variable e : Elem | G.cs:46:9:46:21 | [post] access to field Box1 : Box1 [field Elem] : Elem | provenance | | +| G.cs:46:30:46:30 | access to local variable e : Elem | G.cs:46:9:46:21 | [post] access to field Box1 : Box1 [field Elem] : Elem | provenance | | +| G.cs:47:9:47:13 | this access : G [field boxfield, field Box1, field Elem] : Elem | G.cs:50:18:50:20 | this : G [field boxfield, field Box1, field Elem] : Elem | provenance | | +| G.cs:47:9:47:13 | this access : G [field boxfield, field Box1, field Elem] : Elem | G.cs:50:18:50:20 | this : G [field boxfield, field Box1, field Elem] : Elem | provenance | | +| G.cs:50:18:50:20 | this : G [field boxfield, field Box1, field Elem] : Elem | G.cs:52:14:52:21 | this access : G [field boxfield, field Box1, field Elem] : Elem | provenance | | +| G.cs:50:18:50:20 | this : G [field boxfield, field Box1, field Elem] : Elem | G.cs:52:14:52:21 | this access : G [field boxfield, field Box1, field Elem] : Elem | provenance | | +| G.cs:52:14:52:21 | access to field boxfield : Box2 [field Box1, field Elem] : Elem | G.cs:52:14:52:26 | access to field Box1 : Box1 [field Elem] : Elem | provenance | | +| G.cs:52:14:52:21 | access to field boxfield : Box2 [field Box1, field Elem] : Elem | G.cs:52:14:52:26 | access to field Box1 : Box1 [field Elem] : Elem | provenance | | +| G.cs:52:14:52:21 | this access : G [field boxfield, field Box1, field Elem] : Elem | G.cs:52:14:52:21 | access to field boxfield : Box2 [field Box1, field Elem] : Elem | provenance | | +| G.cs:52:14:52:21 | this access : G [field boxfield, field Box1, field Elem] : Elem | G.cs:52:14:52:21 | access to field boxfield : Box2 [field Box1, field Elem] : Elem | provenance | | +| G.cs:52:14:52:26 | access to field Box1 : Box1 [field Elem] : Elem | G.cs:52:14:52:31 | access to field Elem | provenance | | +| G.cs:52:14:52:26 | access to field Box1 : Box1 [field Elem] : Elem | G.cs:52:14:52:31 | access to field Elem | provenance | | +| G.cs:63:21:63:27 | this : Box1 [field Elem] : Elem | G.cs:63:34:63:37 | this access : Box1 [field Elem] : Elem | provenance | | +| G.cs:63:21:63:27 | this : Box1 [field Elem] : Elem | G.cs:63:34:63:37 | this access : Box1 [field Elem] : Elem | provenance | | +| G.cs:63:34:63:37 | this access : Box1 [field Elem] : Elem | G.cs:63:34:63:37 | access to field Elem : Elem | provenance | | +| G.cs:63:34:63:37 | this access : Box1 [field Elem] : Elem | G.cs:63:34:63:37 | access to field Elem : Elem | provenance | | +| G.cs:64:34:64:34 | e : Elem | G.cs:64:46:64:46 | access to parameter e : Elem | provenance | | +| G.cs:64:34:64:34 | e : Elem | G.cs:64:46:64:46 | access to parameter e : Elem | provenance | | +| G.cs:64:46:64:46 | access to parameter e : Elem | G.cs:64:39:64:42 | [post] this access : Box1 [field Elem] : Elem | provenance | | +| G.cs:64:46:64:46 | access to parameter e : Elem | G.cs:64:39:64:42 | [post] this access : Box1 [field Elem] : Elem | provenance | | +| G.cs:71:21:71:27 | this : Box2 [field Box1, field Elem] : Elem | G.cs:71:34:71:37 | this access : Box2 [field Box1, field Elem] : Elem | provenance | | +| G.cs:71:21:71:27 | this : Box2 [field Box1, field Elem] : Elem | G.cs:71:34:71:37 | this access : Box2 [field Box1, field Elem] : Elem | provenance | | +| G.cs:71:34:71:37 | this access : Box2 [field Box1, field Elem] : Elem | G.cs:71:34:71:37 | access to field Box1 : Box1 [field Elem] : Elem | provenance | | +| G.cs:71:34:71:37 | this access : Box2 [field Box1, field Elem] : Elem | G.cs:71:34:71:37 | access to field Box1 : Box1 [field Elem] : Elem | provenance | | +| H.cs:13:15:13:15 | a : A [field FieldA] : Object | H.cs:16:22:16:22 | access to parameter a : A [field FieldA] : Object | provenance | | +| H.cs:13:15:13:15 | a : A [field FieldA] : Object | H.cs:16:22:16:22 | access to parameter a : A [field FieldA] : Object | provenance | | +| H.cs:16:9:16:11 | [post] access to local variable ret : A [field FieldA] : Object | H.cs:17:16:17:18 | access to local variable ret : A [field FieldA] : Object | provenance | | +| H.cs:16:9:16:11 | [post] access to local variable ret : A [field FieldA] : Object | H.cs:17:16:17:18 | access to local variable ret : A [field FieldA] : Object | provenance | | +| H.cs:16:22:16:22 | access to parameter a : A [field FieldA] : Object | H.cs:16:22:16:29 | access to field FieldA : Object | provenance | | +| H.cs:16:22:16:22 | access to parameter a : A [field FieldA] : Object | H.cs:16:22:16:29 | access to field FieldA : Object | provenance | | +| H.cs:16:22:16:29 | access to field FieldA : Object | H.cs:16:9:16:11 | [post] access to local variable ret : A [field FieldA] : Object | provenance | | +| H.cs:16:22:16:29 | access to field FieldA : Object | H.cs:16:9:16:11 | [post] access to local variable ret : A [field FieldA] : Object | provenance | | +| H.cs:23:9:23:9 | [post] access to local variable a : A [field FieldA] : Object | H.cs:24:27:24:27 | access to local variable a : A [field FieldA] : Object | provenance | | +| H.cs:23:9:23:9 | [post] access to local variable a : A [field FieldA] : Object | H.cs:24:27:24:27 | access to local variable a : A [field FieldA] : Object | provenance | | +| H.cs:23:20:23:36 | call to method Source : Object | H.cs:23:9:23:9 | [post] access to local variable a : A [field FieldA] : Object | provenance | | +| H.cs:23:20:23:36 | call to method Source : Object | H.cs:23:9:23:9 | [post] access to local variable a : A [field FieldA] : Object | provenance | | +| H.cs:24:21:24:28 | call to method Clone : A [field FieldA] : Object | H.cs:25:14:25:18 | access to local variable clone : A [field FieldA] : Object | provenance | | +| H.cs:24:21:24:28 | call to method Clone : A [field FieldA] : Object | H.cs:25:14:25:18 | access to local variable clone : A [field FieldA] : Object | provenance | | +| H.cs:24:27:24:27 | access to local variable a : A [field FieldA] : Object | H.cs:13:15:13:15 | a : A [field FieldA] : Object | provenance | | +| H.cs:24:27:24:27 | access to local variable a : A [field FieldA] : Object | H.cs:13:15:13:15 | a : A [field FieldA] : Object | provenance | | +| H.cs:24:27:24:27 | access to local variable a : A [field FieldA] : Object | H.cs:24:21:24:28 | call to method Clone : A [field FieldA] : Object | provenance | | +| H.cs:24:27:24:27 | access to local variable a : A [field FieldA] : Object | H.cs:24:21:24:28 | call to method Clone : A [field FieldA] : Object | provenance | | +| H.cs:25:14:25:18 | access to local variable clone : A [field FieldA] : Object | H.cs:25:14:25:25 | access to field FieldA | provenance | | +| H.cs:25:14:25:18 | access to local variable clone : A [field FieldA] : Object | H.cs:25:14:25:25 | access to field FieldA | provenance | | +| H.cs:33:19:33:19 | a : A [field FieldA] : A | H.cs:36:20:36:20 | access to parameter a : A [field FieldA] : A | provenance | | +| H.cs:33:19:33:19 | a : A [field FieldA] : A | H.cs:36:20:36:20 | access to parameter a : A [field FieldA] : A | provenance | | +| H.cs:33:19:33:19 | a : A [field FieldA] : Object | H.cs:36:20:36:20 | access to parameter a : A [field FieldA] : Object | provenance | | +| H.cs:33:19:33:19 | a : A [field FieldA] : Object | H.cs:36:20:36:20 | access to parameter a : A [field FieldA] : Object | provenance | | +| H.cs:36:9:36:9 | [post] access to local variable b : B [field FieldB] : A | H.cs:37:16:37:16 | access to local variable b : B [field FieldB] : A | provenance | | +| H.cs:36:9:36:9 | [post] access to local variable b : B [field FieldB] : A | H.cs:37:16:37:16 | access to local variable b : B [field FieldB] : A | provenance | | +| H.cs:36:9:36:9 | [post] access to local variable b : B [field FieldB] : Object | H.cs:37:16:37:16 | access to local variable b : B [field FieldB] : Object | provenance | | +| H.cs:36:9:36:9 | [post] access to local variable b : B [field FieldB] : Object | H.cs:37:16:37:16 | access to local variable b : B [field FieldB] : Object | provenance | | +| H.cs:36:20:36:20 | access to parameter a : A [field FieldA] : A | H.cs:36:20:36:27 | access to field FieldA : A | provenance | | +| H.cs:36:20:36:20 | access to parameter a : A [field FieldA] : A | H.cs:36:20:36:27 | access to field FieldA : A | provenance | | +| H.cs:36:20:36:20 | access to parameter a : A [field FieldA] : Object | H.cs:36:20:36:27 | access to field FieldA : Object | provenance | | +| H.cs:36:20:36:20 | access to parameter a : A [field FieldA] : Object | H.cs:36:20:36:27 | access to field FieldA : Object | provenance | | +| H.cs:36:20:36:27 | access to field FieldA : A | H.cs:36:9:36:9 | [post] access to local variable b : B [field FieldB] : A | provenance | | +| H.cs:36:20:36:27 | access to field FieldA : A | H.cs:36:9:36:9 | [post] access to local variable b : B [field FieldB] : A | provenance | | +| H.cs:36:20:36:27 | access to field FieldA : Object | H.cs:36:9:36:9 | [post] access to local variable b : B [field FieldB] : Object | provenance | | +| H.cs:36:20:36:27 | access to field FieldA : Object | H.cs:36:9:36:9 | [post] access to local variable b : B [field FieldB] : Object | provenance | | +| H.cs:43:9:43:9 | [post] access to local variable a : A [field FieldA] : Object | H.cs:44:27:44:27 | access to local variable a : A [field FieldA] : Object | provenance | | +| H.cs:43:9:43:9 | [post] access to local variable a : A [field FieldA] : Object | H.cs:44:27:44:27 | access to local variable a : A [field FieldA] : Object | provenance | | +| H.cs:43:20:43:36 | call to method Source : Object | H.cs:43:9:43:9 | [post] access to local variable a : A [field FieldA] : Object | provenance | | +| H.cs:43:20:43:36 | call to method Source : Object | H.cs:43:9:43:9 | [post] access to local variable a : A [field FieldA] : Object | provenance | | +| H.cs:44:17:44:28 | call to method Transform : B [field FieldB] : Object | H.cs:45:14:45:14 | access to local variable b : B [field FieldB] : Object | provenance | | +| H.cs:44:17:44:28 | call to method Transform : B [field FieldB] : Object | H.cs:45:14:45:14 | access to local variable b : B [field FieldB] : Object | provenance | | +| H.cs:44:27:44:27 | access to local variable a : A [field FieldA] : Object | H.cs:33:19:33:19 | a : A [field FieldA] : Object | provenance | | +| H.cs:44:27:44:27 | access to local variable a : A [field FieldA] : Object | H.cs:33:19:33:19 | a : A [field FieldA] : Object | provenance | | +| H.cs:44:27:44:27 | access to local variable a : A [field FieldA] : Object | H.cs:44:17:44:28 | call to method Transform : B [field FieldB] : Object | provenance | | +| H.cs:44:27:44:27 | access to local variable a : A [field FieldA] : Object | H.cs:44:17:44:28 | call to method Transform : B [field FieldB] : Object | provenance | | +| H.cs:45:14:45:14 | access to local variable b : B [field FieldB] : Object | H.cs:45:14:45:21 | access to field FieldB | provenance | | +| H.cs:45:14:45:14 | access to local variable b : B [field FieldB] : Object | H.cs:45:14:45:21 | access to field FieldB | provenance | | +| H.cs:53:25:53:25 | a : A [field FieldA] : Object | H.cs:55:21:55:21 | access to parameter a : A [field FieldA] : Object | provenance | | +| H.cs:53:25:53:25 | a : A [field FieldA] : Object | H.cs:55:21:55:21 | access to parameter a : A [field FieldA] : Object | provenance | | +| H.cs:55:21:55:21 | access to parameter a : A [field FieldA] : Object | H.cs:55:21:55:28 | access to field FieldA : Object | provenance | | +| H.cs:55:21:55:21 | access to parameter a : A [field FieldA] : Object | H.cs:55:21:55:28 | access to field FieldA : Object | provenance | | +| H.cs:55:21:55:28 | access to field FieldA : Object | H.cs:55:9:55:10 | [post] access to parameter b1 : B [field FieldB] : Object | provenance | | +| H.cs:55:21:55:28 | access to field FieldA : Object | H.cs:55:9:55:10 | [post] access to parameter b1 : B [field FieldB] : Object | provenance | | +| H.cs:63:9:63:9 | [post] access to local variable a : A [field FieldA] : Object | H.cs:64:22:64:22 | access to local variable a : A [field FieldA] : Object | provenance | | +| H.cs:63:9:63:9 | [post] access to local variable a : A [field FieldA] : Object | H.cs:64:22:64:22 | access to local variable a : A [field FieldA] : Object | provenance | | +| H.cs:63:20:63:36 | call to method Source : Object | H.cs:63:9:63:9 | [post] access to local variable a : A [field FieldA] : Object | provenance | | +| H.cs:63:20:63:36 | call to method Source : Object | H.cs:63:9:63:9 | [post] access to local variable a : A [field FieldA] : Object | provenance | | +| H.cs:64:22:64:22 | access to local variable a : A [field FieldA] : Object | H.cs:53:25:53:25 | a : A [field FieldA] : Object | provenance | | +| H.cs:64:22:64:22 | access to local variable a : A [field FieldA] : Object | H.cs:53:25:53:25 | a : A [field FieldA] : Object | provenance | | +| H.cs:64:22:64:22 | access to local variable a : A [field FieldA] : Object | H.cs:64:25:64:26 | [post] access to local variable b1 : B [field FieldB] : Object | provenance | | +| H.cs:64:22:64:22 | access to local variable a : A [field FieldA] : Object | H.cs:64:25:64:26 | [post] access to local variable b1 : B [field FieldB] : Object | provenance | | +| H.cs:64:25:64:26 | [post] access to local variable b1 : B [field FieldB] : Object | H.cs:65:14:65:15 | access to local variable b1 : B [field FieldB] : Object | provenance | | +| H.cs:64:25:64:26 | [post] access to local variable b1 : B [field FieldB] : Object | H.cs:65:14:65:15 | access to local variable b1 : B [field FieldB] : Object | provenance | | +| H.cs:65:14:65:15 | access to local variable b1 : B [field FieldB] : Object | H.cs:65:14:65:22 | access to field FieldB | provenance | | +| H.cs:65:14:65:15 | access to local variable b1 : B [field FieldB] : Object | H.cs:65:14:65:22 | access to field FieldB | provenance | | +| H.cs:77:30:77:30 | o : Object | H.cs:79:20:79:20 | access to parameter o : Object | provenance | | +| H.cs:77:30:77:30 | o : Object | H.cs:79:20:79:20 | access to parameter o : Object | provenance | | +| H.cs:79:9:79:9 | [post] access to parameter a : A [field FieldA] : Object | H.cs:80:22:80:22 | access to parameter a : A [field FieldA] : Object | provenance | | +| H.cs:79:9:79:9 | [post] access to parameter a : A [field FieldA] : Object | H.cs:80:22:80:22 | access to parameter a : A [field FieldA] : Object | provenance | | +| H.cs:79:20:79:20 | access to parameter o : Object | H.cs:79:9:79:9 | [post] access to parameter a : A [field FieldA] : Object | provenance | | +| H.cs:79:20:79:20 | access to parameter o : Object | H.cs:79:9:79:9 | [post] access to parameter a : A [field FieldA] : Object | provenance | | +| H.cs:80:22:80:22 | access to parameter a : A [field FieldA] : Object | H.cs:53:25:53:25 | a : A [field FieldA] : Object | provenance | | +| H.cs:80:22:80:22 | access to parameter a : A [field FieldA] : Object | H.cs:53:25:53:25 | a : A [field FieldA] : Object | provenance | | +| H.cs:80:22:80:22 | access to parameter a : A [field FieldA] : Object | H.cs:80:25:80:26 | [post] access to parameter b1 : B [field FieldB] : Object | provenance | | +| H.cs:80:22:80:22 | access to parameter a : A [field FieldA] : Object | H.cs:80:25:80:26 | [post] access to parameter b1 : B [field FieldB] : Object | provenance | | +| H.cs:88:17:88:17 | [post] access to local variable a : A [field FieldA] : Object | H.cs:89:14:89:14 | access to local variable a : A [field FieldA] : Object | provenance | | +| H.cs:88:17:88:17 | [post] access to local variable a : A [field FieldA] : Object | H.cs:89:14:89:14 | access to local variable a : A [field FieldA] : Object | provenance | | +| H.cs:88:20:88:36 | call to method Source : Object | H.cs:77:30:77:30 | o : Object | provenance | | +| H.cs:88:20:88:36 | call to method Source : Object | H.cs:77:30:77:30 | o : Object | provenance | | +| H.cs:88:20:88:36 | call to method Source : Object | H.cs:88:17:88:17 | [post] access to local variable a : A [field FieldA] : Object | provenance | | +| H.cs:88:20:88:36 | call to method Source : Object | H.cs:88:17:88:17 | [post] access to local variable a : A [field FieldA] : Object | provenance | | +| H.cs:88:20:88:36 | call to method Source : Object | H.cs:88:39:88:40 | [post] access to local variable b1 : B [field FieldB] : Object | provenance | | +| H.cs:88:20:88:36 | call to method Source : Object | H.cs:88:39:88:40 | [post] access to local variable b1 : B [field FieldB] : Object | provenance | | +| H.cs:88:39:88:40 | [post] access to local variable b1 : B [field FieldB] : Object | H.cs:90:14:90:15 | access to local variable b1 : B [field FieldB] : Object | provenance | | +| H.cs:88:39:88:40 | [post] access to local variable b1 : B [field FieldB] : Object | H.cs:90:14:90:15 | access to local variable b1 : B [field FieldB] : Object | provenance | | +| H.cs:89:14:89:14 | access to local variable a : A [field FieldA] : Object | H.cs:89:14:89:21 | access to field FieldA | provenance | | +| H.cs:89:14:89:14 | access to local variable a : A [field FieldA] : Object | H.cs:89:14:89:21 | access to field FieldA | provenance | | +| H.cs:90:14:90:15 | access to local variable b1 : B [field FieldB] : Object | H.cs:90:14:90:22 | access to field FieldB | provenance | | +| H.cs:90:14:90:15 | access to local variable b1 : B [field FieldB] : Object | H.cs:90:14:90:22 | access to field FieldB | provenance | | +| H.cs:102:23:102:23 | a : A [field FieldA] : Object | H.cs:105:23:105:23 | access to parameter a : A [field FieldA] : Object | provenance | | +| H.cs:102:23:102:23 | a : A [field FieldA] : Object | H.cs:105:23:105:23 | access to parameter a : A [field FieldA] : Object | provenance | | +| H.cs:105:9:105:12 | [post] access to local variable temp : B [field FieldB, field FieldA] : Object | H.cs:106:29:106:32 | access to local variable temp : B [field FieldB, field FieldA] : Object | provenance | | +| H.cs:105:9:105:12 | [post] access to local variable temp : B [field FieldB, field FieldA] : Object | H.cs:106:29:106:32 | access to local variable temp : B [field FieldB, field FieldA] : Object | provenance | | +| H.cs:105:23:105:23 | access to parameter a : A [field FieldA] : Object | H.cs:105:9:105:12 | [post] access to local variable temp : B [field FieldB, field FieldA] : Object | provenance | | +| H.cs:105:23:105:23 | access to parameter a : A [field FieldA] : Object | H.cs:105:9:105:12 | [post] access to local variable temp : B [field FieldB, field FieldA] : Object | provenance | | +| H.cs:106:26:106:39 | (...) ... : A [field FieldA] : Object | H.cs:33:19:33:19 | a : A [field FieldA] : Object | provenance | | +| H.cs:106:26:106:39 | (...) ... : A [field FieldA] : Object | H.cs:33:19:33:19 | a : A [field FieldA] : Object | provenance | | +| H.cs:106:26:106:39 | (...) ... : A [field FieldA] : Object | H.cs:106:16:106:40 | call to method Transform : B [field FieldB] : Object | provenance | | +| H.cs:106:26:106:39 | (...) ... : A [field FieldA] : Object | H.cs:106:16:106:40 | call to method Transform : B [field FieldB] : Object | provenance | | +| H.cs:106:29:106:32 | access to local variable temp : B [field FieldB, field FieldA] : Object | H.cs:106:29:106:39 | access to field FieldB : A [field FieldA] : Object | provenance | | +| H.cs:106:29:106:32 | access to local variable temp : B [field FieldB, field FieldA] : Object | H.cs:106:29:106:39 | access to field FieldB : A [field FieldA] : Object | provenance | | +| H.cs:106:29:106:39 | access to field FieldB : A [field FieldA] : Object | H.cs:106:26:106:39 | (...) ... : A [field FieldA] : Object | provenance | | +| H.cs:106:29:106:39 | access to field FieldB : A [field FieldA] : Object | H.cs:106:26:106:39 | (...) ... : A [field FieldA] : Object | provenance | | +| H.cs:112:9:112:9 | [post] access to local variable a : A [field FieldA] : Object | H.cs:113:31:113:31 | access to local variable a : A [field FieldA] : Object | provenance | | +| H.cs:112:9:112:9 | [post] access to local variable a : A [field FieldA] : Object | H.cs:113:31:113:31 | access to local variable a : A [field FieldA] : Object | provenance | | +| H.cs:112:20:112:36 | call to method Source : Object | H.cs:112:9:112:9 | [post] access to local variable a : A [field FieldA] : Object | provenance | | +| H.cs:112:20:112:36 | call to method Source : Object | H.cs:112:9:112:9 | [post] access to local variable a : A [field FieldA] : Object | provenance | | +| H.cs:113:17:113:32 | call to method TransformWrap : B [field FieldB] : Object | H.cs:114:14:114:14 | access to local variable b : B [field FieldB] : Object | provenance | | +| H.cs:113:17:113:32 | call to method TransformWrap : B [field FieldB] : Object | H.cs:114:14:114:14 | access to local variable b : B [field FieldB] : Object | provenance | | +| H.cs:113:31:113:31 | access to local variable a : A [field FieldA] : Object | H.cs:102:23:102:23 | a : A [field FieldA] : Object | provenance | | +| H.cs:113:31:113:31 | access to local variable a : A [field FieldA] : Object | H.cs:102:23:102:23 | a : A [field FieldA] : Object | provenance | | +| H.cs:113:31:113:31 | access to local variable a : A [field FieldA] : Object | H.cs:113:17:113:32 | call to method TransformWrap : B [field FieldB] : Object | provenance | | +| H.cs:113:31:113:31 | access to local variable a : A [field FieldA] : Object | H.cs:113:17:113:32 | call to method TransformWrap : B [field FieldB] : Object | provenance | | +| H.cs:114:14:114:14 | access to local variable b : B [field FieldB] : Object | H.cs:114:14:114:21 | access to field FieldB | provenance | | +| H.cs:114:14:114:14 | access to local variable b : B [field FieldB] : Object | H.cs:114:14:114:21 | access to field FieldB | provenance | | +| H.cs:122:18:122:18 | a : A [field FieldA] : Object | H.cs:124:26:124:26 | access to parameter a : A [field FieldA] : Object | provenance | | +| H.cs:122:18:122:18 | a : A [field FieldA] : Object | H.cs:124:26:124:26 | access to parameter a : A [field FieldA] : Object | provenance | | +| H.cs:124:16:124:27 | call to method Transform : B [field FieldB] : Object | H.cs:124:16:124:34 | access to field FieldB : Object | provenance | | +| H.cs:124:16:124:27 | call to method Transform : B [field FieldB] : Object | H.cs:124:16:124:34 | access to field FieldB : Object | provenance | | +| H.cs:124:26:124:26 | access to parameter a : A [field FieldA] : Object | H.cs:33:19:33:19 | a : A [field FieldA] : Object | provenance | | +| H.cs:124:26:124:26 | access to parameter a : A [field FieldA] : Object | H.cs:33:19:33:19 | a : A [field FieldA] : Object | provenance | | +| H.cs:124:26:124:26 | access to parameter a : A [field FieldA] : Object | H.cs:124:16:124:27 | call to method Transform : B [field FieldB] : Object | provenance | | +| H.cs:124:26:124:26 | access to parameter a : A [field FieldA] : Object | H.cs:124:16:124:27 | call to method Transform : B [field FieldB] : Object | provenance | | +| H.cs:130:9:130:9 | [post] access to local variable a : A [field FieldA] : Object | H.cs:131:18:131:18 | access to local variable a : A [field FieldA] : Object | provenance | | +| H.cs:130:9:130:9 | [post] access to local variable a : A [field FieldA] : Object | H.cs:131:18:131:18 | access to local variable a : A [field FieldA] : Object | provenance | | +| H.cs:130:20:130:36 | call to method Source : Object | H.cs:130:9:130:9 | [post] access to local variable a : A [field FieldA] : Object | provenance | | +| H.cs:130:20:130:36 | call to method Source : Object | H.cs:130:9:130:9 | [post] access to local variable a : A [field FieldA] : Object | provenance | | +| H.cs:131:18:131:18 | access to local variable a : A [field FieldA] : Object | H.cs:122:18:122:18 | a : A [field FieldA] : Object | provenance | | +| H.cs:131:18:131:18 | access to local variable a : A [field FieldA] : Object | H.cs:122:18:122:18 | a : A [field FieldA] : Object | provenance | | +| H.cs:131:18:131:18 | access to local variable a : A [field FieldA] : Object | H.cs:131:14:131:19 | call to method Get | provenance | | +| H.cs:131:18:131:18 | access to local variable a : A [field FieldA] : Object | H.cs:131:14:131:19 | call to method Get | provenance | | +| H.cs:138:27:138:27 | o : A | H.cs:141:20:141:25 | ... as ... : A | provenance | | +| H.cs:138:27:138:27 | o : A | H.cs:141:20:141:25 | ... as ... : A | provenance | | +| H.cs:141:9:141:9 | [post] access to local variable a : A [field FieldA] : A | H.cs:142:26:142:26 | access to local variable a : A [field FieldA] : A | provenance | | +| H.cs:141:9:141:9 | [post] access to local variable a : A [field FieldA] : A | H.cs:142:26:142:26 | access to local variable a : A [field FieldA] : A | provenance | | +| H.cs:141:20:141:25 | ... as ... : A | H.cs:141:9:141:9 | [post] access to local variable a : A [field FieldA] : A | provenance | | +| H.cs:141:20:141:25 | ... as ... : A | H.cs:141:9:141:9 | [post] access to local variable a : A [field FieldA] : A | provenance | | +| H.cs:142:16:142:27 | call to method Transform : B [field FieldB] : A | H.cs:142:16:142:34 | access to field FieldB : A | provenance | | +| H.cs:142:16:142:27 | call to method Transform : B [field FieldB] : A | H.cs:142:16:142:34 | access to field FieldB : A | provenance | | +| H.cs:142:26:142:26 | access to local variable a : A [field FieldA] : A | H.cs:33:19:33:19 | a : A [field FieldA] : A | provenance | | +| H.cs:142:26:142:26 | access to local variable a : A [field FieldA] : A | H.cs:33:19:33:19 | a : A [field FieldA] : A | provenance | | +| H.cs:142:26:142:26 | access to local variable a : A [field FieldA] : A | H.cs:142:16:142:27 | call to method Transform : B [field FieldB] : A | provenance | | +| H.cs:142:26:142:26 | access to local variable a : A [field FieldA] : A | H.cs:142:16:142:27 | call to method Transform : B [field FieldB] : A | provenance | | +| H.cs:147:17:147:39 | call to method Through : A | H.cs:148:14:148:14 | access to local variable a | provenance | | +| H.cs:147:17:147:39 | call to method Through : A | H.cs:148:14:148:14 | access to local variable a | provenance | | +| H.cs:147:25:147:38 | call to method Source : A | H.cs:138:27:138:27 | o : A | provenance | | +| H.cs:147:25:147:38 | call to method Source : A | H.cs:138:27:138:27 | o : A | provenance | | +| H.cs:147:25:147:38 | call to method Source : A | H.cs:147:17:147:39 | call to method Through : A | provenance | | +| H.cs:147:25:147:38 | call to method Source : A | H.cs:147:17:147:39 | call to method Through : A | provenance | | +| H.cs:153:32:153:32 | o : Object | H.cs:156:20:156:20 | access to parameter o : Object | provenance | | +| H.cs:153:32:153:32 | o : Object | H.cs:156:20:156:20 | access to parameter o : Object | provenance | | +| H.cs:155:17:155:30 | call to method Source : B | H.cs:156:9:156:9 | access to local variable b : B | provenance | | +| H.cs:155:17:155:30 | call to method Source : B | H.cs:156:9:156:9 | access to local variable b : B | provenance | | +| H.cs:156:9:156:9 | [post] access to local variable b : B [field FieldB] : Object | H.cs:157:20:157:20 | access to local variable b : B [field FieldB] : Object | provenance | | +| H.cs:156:9:156:9 | [post] access to local variable b : B [field FieldB] : Object | H.cs:157:20:157:20 | access to local variable b : B [field FieldB] : Object | provenance | | +| H.cs:156:9:156:9 | access to local variable b : B | H.cs:157:20:157:20 | access to local variable b : B | provenance | | +| H.cs:156:9:156:9 | access to local variable b : B | H.cs:157:20:157:20 | access to local variable b : B | provenance | | +| H.cs:156:20:156:20 | access to parameter o : Object | H.cs:156:9:156:9 | [post] access to local variable b : B [field FieldB] : Object | provenance | | +| H.cs:156:20:156:20 | access to parameter o : Object | H.cs:156:9:156:9 | [post] access to local variable b : B [field FieldB] : Object | provenance | | +| H.cs:157:9:157:9 | [post] access to parameter a : A [field FieldA] : B | H.cs:164:19:164:19 | [post] access to local variable a : A [field FieldA] : B | provenance | | +| H.cs:157:9:157:9 | [post] access to parameter a : A [field FieldA] : B | H.cs:164:19:164:19 | [post] access to local variable a : A [field FieldA] : B | provenance | | +| H.cs:157:20:157:20 | access to local variable b : B | H.cs:157:9:157:9 | [post] access to parameter a : A [field FieldA] : B | provenance | | +| H.cs:157:20:157:20 | access to local variable b : B | H.cs:157:9:157:9 | [post] access to parameter a : A [field FieldA] : B | provenance | | +| H.cs:157:20:157:20 | access to local variable b : B [field FieldB] : Object | H.cs:157:9:157:9 | [post] access to parameter a : A [field FieldA, field FieldB] : Object | provenance | | +| H.cs:157:20:157:20 | access to local variable b : B [field FieldB] : Object | H.cs:157:9:157:9 | [post] access to parameter a : A [field FieldA, field FieldB] : Object | provenance | | +| H.cs:163:17:163:35 | call to method Source : Object | H.cs:164:22:164:22 | access to local variable o : Object | provenance | | +| H.cs:163:17:163:35 | call to method Source : Object | H.cs:164:22:164:22 | access to local variable o : Object | provenance | | +| H.cs:164:19:164:19 | [post] access to local variable a : A [field FieldA, field FieldB] : Object | H.cs:165:20:165:20 | access to local variable a : A [field FieldA, field FieldB] : Object | provenance | | +| H.cs:164:19:164:19 | [post] access to local variable a : A [field FieldA, field FieldB] : Object | H.cs:165:20:165:20 | access to local variable a : A [field FieldA, field FieldB] : Object | provenance | | +| H.cs:164:19:164:19 | [post] access to local variable a : A [field FieldA] : B | H.cs:165:20:165:20 | access to local variable a : A [field FieldA] : B | provenance | | +| H.cs:164:19:164:19 | [post] access to local variable a : A [field FieldA] : B | H.cs:165:20:165:20 | access to local variable a : A [field FieldA] : B | provenance | | +| H.cs:164:22:164:22 | access to local variable o : Object | H.cs:153:32:153:32 | o : Object | provenance | | +| H.cs:164:22:164:22 | access to local variable o : Object | H.cs:153:32:153:32 | o : Object | provenance | | +| H.cs:164:22:164:22 | access to local variable o : Object | H.cs:164:19:164:19 | [post] access to local variable a : A [field FieldA, field FieldB] : Object | provenance | | +| H.cs:164:22:164:22 | access to local variable o : Object | H.cs:164:19:164:19 | [post] access to local variable a : A [field FieldA, field FieldB] : Object | provenance | | +| H.cs:165:17:165:27 | (...) ... : B | H.cs:166:14:166:14 | access to local variable b | provenance | | +| H.cs:165:17:165:27 | (...) ... : B | H.cs:166:14:166:14 | access to local variable b | provenance | | +| H.cs:165:17:165:27 | (...) ... : B [field FieldB] : Object | H.cs:167:14:167:14 | access to local variable b : B [field FieldB] : Object | provenance | | +| H.cs:165:17:165:27 | (...) ... : B [field FieldB] : Object | H.cs:167:14:167:14 | access to local variable b : B [field FieldB] : Object | provenance | | +| H.cs:165:20:165:20 | access to local variable a : A [field FieldA, field FieldB] : Object | H.cs:165:20:165:27 | access to field FieldA : B [field FieldB] : Object | provenance | | +| H.cs:165:20:165:20 | access to local variable a : A [field FieldA, field FieldB] : Object | H.cs:165:20:165:27 | access to field FieldA : B [field FieldB] : Object | provenance | | +| H.cs:165:20:165:20 | access to local variable a : A [field FieldA] : B | H.cs:165:20:165:27 | access to field FieldA : B | provenance | | +| H.cs:165:20:165:20 | access to local variable a : A [field FieldA] : B | H.cs:165:20:165:27 | access to field FieldA : B | provenance | | +| H.cs:165:20:165:27 | access to field FieldA : B | H.cs:165:17:165:27 | (...) ... : B | provenance | | +| H.cs:165:20:165:27 | access to field FieldA : B | H.cs:165:17:165:27 | (...) ... : B | provenance | | +| H.cs:165:20:165:27 | access to field FieldA : B [field FieldB] : Object | H.cs:165:17:165:27 | (...) ... : B [field FieldB] : Object | provenance | | +| H.cs:165:20:165:27 | access to field FieldA : B [field FieldB] : Object | H.cs:165:17:165:27 | (...) ... : B [field FieldB] : Object | provenance | | +| H.cs:167:14:167:14 | access to local variable b : B [field FieldB] : Object | H.cs:167:14:167:21 | access to field FieldB | provenance | | +| H.cs:167:14:167:14 | access to local variable b : B [field FieldB] : Object | H.cs:167:14:167:21 | access to field FieldB | provenance | | +| I.cs:7:9:7:14 | [post] this access : I [field Field1] : Object | I.cs:21:13:21:19 | object creation of type I : I [field Field1] : Object | provenance | | +| I.cs:7:9:7:14 | [post] this access : I [field Field1] : Object | I.cs:21:13:21:19 | object creation of type I : I [field Field1] : Object | provenance | | +| I.cs:7:9:7:14 | [post] this access : I [field Field1] : Object | I.cs:26:13:26:37 | [pre-initializer] object creation of type I : I [field Field1] : Object | provenance | | +| I.cs:7:9:7:14 | [post] this access : I [field Field1] : Object | I.cs:26:13:26:37 | [pre-initializer] object creation of type I : I [field Field1] : Object | provenance | | +| I.cs:7:18:7:34 | call to method Source : Object | I.cs:7:9:7:14 | [post] this access : I [field Field1] : Object | provenance | | +| I.cs:7:18:7:34 | call to method Source : Object | I.cs:7:9:7:14 | [post] this access : I [field Field1] : Object | provenance | | +| I.cs:13:17:13:33 | call to method Source : Object | I.cs:15:20:15:20 | access to local variable o : Object | provenance | | +| I.cs:13:17:13:33 | call to method Source : Object | I.cs:15:20:15:20 | access to local variable o : Object | provenance | | +| I.cs:15:9:15:9 | [post] access to local variable i : I [field Field1] : Object | I.cs:16:9:16:9 | access to local variable i : I [field Field1] : Object | provenance | | +| I.cs:15:9:15:9 | [post] access to local variable i : I [field Field1] : Object | I.cs:16:9:16:9 | access to local variable i : I [field Field1] : Object | provenance | | +| I.cs:15:20:15:20 | access to local variable o : Object | I.cs:15:9:15:9 | [post] access to local variable i : I [field Field1] : Object | provenance | | +| I.cs:15:20:15:20 | access to local variable o : Object | I.cs:15:9:15:9 | [post] access to local variable i : I [field Field1] : Object | provenance | | +| I.cs:16:9:16:9 | access to local variable i : I [field Field1] : Object | I.cs:17:9:17:9 | access to local variable i : I [field Field1] : Object | provenance | | +| I.cs:16:9:16:9 | access to local variable i : I [field Field1] : Object | I.cs:17:9:17:9 | access to local variable i : I [field Field1] : Object | provenance | | +| I.cs:17:9:17:9 | access to local variable i : I [field Field1] : Object | I.cs:18:14:18:14 | access to local variable i : I [field Field1] : Object | provenance | | +| I.cs:17:9:17:9 | access to local variable i : I [field Field1] : Object | I.cs:18:14:18:14 | access to local variable i : I [field Field1] : Object | provenance | | +| I.cs:18:14:18:14 | access to local variable i : I [field Field1] : Object | I.cs:18:14:18:21 | access to field Field1 | provenance | | +| I.cs:18:14:18:14 | access to local variable i : I [field Field1] : Object | I.cs:18:14:18:21 | access to field Field1 | provenance | | +| I.cs:21:13:21:19 | object creation of type I : I [field Field1] : Object | I.cs:22:9:22:9 | access to local variable i : I [field Field1] : Object | provenance | | +| I.cs:21:13:21:19 | object creation of type I : I [field Field1] : Object | I.cs:22:9:22:9 | access to local variable i : I [field Field1] : Object | provenance | | +| I.cs:22:9:22:9 | access to local variable i : I [field Field1] : Object | I.cs:23:14:23:14 | access to local variable i : I [field Field1] : Object | provenance | | +| I.cs:22:9:22:9 | access to local variable i : I [field Field1] : Object | I.cs:23:14:23:14 | access to local variable i : I [field Field1] : Object | provenance | | +| I.cs:23:14:23:14 | access to local variable i : I [field Field1] : Object | I.cs:23:14:23:21 | access to field Field1 | provenance | | +| I.cs:23:14:23:14 | access to local variable i : I [field Field1] : Object | I.cs:23:14:23:21 | access to field Field1 | provenance | | +| I.cs:26:13:26:37 | [pre-initializer] object creation of type I : I [field Field1] : Object | I.cs:27:14:27:14 | access to local variable i : I [field Field1] : Object | provenance | | +| I.cs:26:13:26:37 | [pre-initializer] object creation of type I : I [field Field1] : Object | I.cs:27:14:27:14 | access to local variable i : I [field Field1] : Object | provenance | | +| I.cs:27:14:27:14 | access to local variable i : I [field Field1] : Object | I.cs:27:14:27:21 | access to field Field1 | provenance | | +| I.cs:27:14:27:14 | access to local variable i : I [field Field1] : Object | I.cs:27:14:27:21 | access to field Field1 | provenance | | +| I.cs:31:13:31:29 | call to method Source : Object | I.cs:32:20:32:20 | access to local variable o : Object | provenance | | +| I.cs:31:13:31:29 | call to method Source : Object | I.cs:32:20:32:20 | access to local variable o : Object | provenance | | +| I.cs:32:9:32:9 | [post] access to local variable i : I [field Field1] : Object | I.cs:33:9:33:9 | access to local variable i : I [field Field1] : Object | provenance | | +| I.cs:32:9:32:9 | [post] access to local variable i : I [field Field1] : Object | I.cs:33:9:33:9 | access to local variable i : I [field Field1] : Object | provenance | | +| I.cs:32:20:32:20 | access to local variable o : Object | I.cs:32:9:32:9 | [post] access to local variable i : I [field Field1] : Object | provenance | | +| I.cs:32:20:32:20 | access to local variable o : Object | I.cs:32:9:32:9 | [post] access to local variable i : I [field Field1] : Object | provenance | | +| I.cs:33:9:33:9 | access to local variable i : I [field Field1] : Object | I.cs:34:12:34:12 | access to local variable i : I [field Field1] : Object | provenance | | +| I.cs:33:9:33:9 | access to local variable i : I [field Field1] : Object | I.cs:34:12:34:12 | access to local variable i : I [field Field1] : Object | provenance | | +| I.cs:34:12:34:12 | access to local variable i : I [field Field1] : Object | I.cs:37:23:37:23 | i : I [field Field1] : Object | provenance | | +| I.cs:34:12:34:12 | access to local variable i : I [field Field1] : Object | I.cs:37:23:37:23 | i : I [field Field1] : Object | provenance | | +| I.cs:37:23:37:23 | i : I [field Field1] : Object | I.cs:39:9:39:9 | access to parameter i : I [field Field1] : Object | provenance | | +| I.cs:37:23:37:23 | i : I [field Field1] : Object | I.cs:39:9:39:9 | access to parameter i : I [field Field1] : Object | provenance | | +| I.cs:39:9:39:9 | access to parameter i : I [field Field1] : Object | I.cs:40:14:40:14 | access to parameter i : I [field Field1] : Object | provenance | | +| I.cs:39:9:39:9 | access to parameter i : I [field Field1] : Object | I.cs:40:14:40:14 | access to parameter i : I [field Field1] : Object | provenance | | +| I.cs:40:14:40:14 | access to parameter i : I [field Field1] : Object | I.cs:40:14:40:21 | access to field Field1 | provenance | | +| I.cs:40:14:40:14 | access to parameter i : I [field Field1] : Object | I.cs:40:14:40:21 | access to field Field1 | provenance | | +| J.cs:14:26:14:30 | field : Object | J.cs:14:66:14:70 | access to parameter field : Object | provenance | | +| J.cs:14:26:14:30 | field : Object | J.cs:14:66:14:70 | access to parameter field : Object | provenance | | +| J.cs:14:40:14:43 | prop : Object | J.cs:14:73:14:76 | access to parameter prop : Object | provenance | | +| J.cs:14:40:14:43 | prop : Object | J.cs:14:73:14:76 | access to parameter prop : Object | provenance | | +| J.cs:14:66:14:70 | access to parameter field : Object | J.cs:14:50:14:54 | [post] this access : Struct [field Field] : Object | provenance | | +| J.cs:14:66:14:70 | access to parameter field : Object | J.cs:14:50:14:54 | [post] this access : Struct [field Field] : Object | provenance | | +| J.cs:14:73:14:76 | access to parameter prop : Object | J.cs:14:57:14:60 | [post] this access : Struct [property Prop] : Object | provenance | | +| J.cs:14:73:14:76 | access to parameter prop : Object | J.cs:14:57:14:60 | [post] this access : Struct [property Prop] : Object | provenance | | +| J.cs:21:17:21:33 | call to method Source : Object | J.cs:22:34:22:34 | access to local variable o : Object | provenance | | +| J.cs:21:17:21:33 | call to method Source : Object | J.cs:22:34:22:34 | access to local variable o : Object | provenance | | +| J.cs:22:18:22:41 | object creation of type RecordClass : RecordClass [property Prop1] : Object | J.cs:23:14:23:15 | access to local variable r1 : RecordClass [property Prop1] : Object | provenance | | +| J.cs:22:18:22:41 | object creation of type RecordClass : RecordClass [property Prop1] : Object | J.cs:23:14:23:15 | access to local variable r1 : RecordClass [property Prop1] : Object | provenance | | +| J.cs:22:18:22:41 | object creation of type RecordClass : RecordClass [property Prop1] : Object | J.cs:27:14:27:15 | access to local variable r2 : RecordClass [property Prop1] : Object | provenance | | +| J.cs:22:18:22:41 | object creation of type RecordClass : RecordClass [property Prop1] : Object | J.cs:27:14:27:15 | access to local variable r2 : RecordClass [property Prop1] : Object | provenance | | +| J.cs:22:18:22:41 | object creation of type RecordClass : RecordClass [property Prop1] : Object | J.cs:31:14:31:15 | access to local variable r3 : RecordClass [property Prop1] : Object | provenance | | +| J.cs:22:18:22:41 | object creation of type RecordClass : RecordClass [property Prop1] : Object | J.cs:31:14:31:15 | access to local variable r3 : RecordClass [property Prop1] : Object | provenance | | +| J.cs:22:34:22:34 | access to local variable o : Object | J.cs:22:18:22:41 | object creation of type RecordClass : RecordClass [property Prop1] : Object | provenance | | +| J.cs:22:34:22:34 | access to local variable o : Object | J.cs:22:18:22:41 | object creation of type RecordClass : RecordClass [property Prop1] : Object | provenance | | +| J.cs:23:14:23:15 | access to local variable r1 : RecordClass [property Prop1] : Object | J.cs:23:14:23:21 | access to property Prop1 | provenance | | +| J.cs:23:14:23:15 | access to local variable r1 : RecordClass [property Prop1] : Object | J.cs:23:14:23:21 | access to property Prop1 | provenance | | +| J.cs:27:14:27:15 | access to local variable r2 : RecordClass [property Prop1] : Object | J.cs:27:14:27:21 | access to property Prop1 | provenance | | +| J.cs:27:14:27:15 | access to local variable r2 : RecordClass [property Prop1] : Object | J.cs:27:14:27:21 | access to property Prop1 | provenance | | +| J.cs:30:18:30:54 | ... with { ... } : RecordClass [property Prop2] : Object | J.cs:32:14:32:15 | access to local variable r3 : RecordClass [property Prop2] : Object | provenance | | +| J.cs:30:18:30:54 | ... with { ... } : RecordClass [property Prop2] : Object | J.cs:32:14:32:15 | access to local variable r3 : RecordClass [property Prop2] : Object | provenance | | +| J.cs:30:36:30:52 | call to method Source : Object | J.cs:30:18:30:54 | ... with { ... } : RecordClass [property Prop2] : Object | provenance | | +| J.cs:30:36:30:52 | call to method Source : Object | J.cs:30:18:30:54 | ... with { ... } : RecordClass [property Prop2] : Object | provenance | | +| J.cs:31:14:31:15 | access to local variable r3 : RecordClass [property Prop1] : Object | J.cs:31:14:31:21 | access to property Prop1 | provenance | | +| J.cs:31:14:31:15 | access to local variable r3 : RecordClass [property Prop1] : Object | J.cs:31:14:31:21 | access to property Prop1 | provenance | | +| J.cs:32:14:32:15 | access to local variable r3 : RecordClass [property Prop2] : Object | J.cs:32:14:32:21 | access to property Prop2 | provenance | | +| J.cs:32:14:32:15 | access to local variable r3 : RecordClass [property Prop2] : Object | J.cs:32:14:32:21 | access to property Prop2 | provenance | | +| J.cs:41:17:41:33 | call to method Source : Object | J.cs:42:35:42:35 | access to local variable o : Object | provenance | | +| J.cs:41:17:41:33 | call to method Source : Object | J.cs:42:35:42:35 | access to local variable o : Object | provenance | | +| J.cs:42:18:42:42 | object creation of type RecordStruct : RecordStruct [property Prop1] : Object | J.cs:43:14:43:15 | access to local variable r1 : RecordStruct [property Prop1] : Object | provenance | | +| J.cs:42:18:42:42 | object creation of type RecordStruct : RecordStruct [property Prop1] : Object | J.cs:43:14:43:15 | access to local variable r1 : RecordStruct [property Prop1] : Object | provenance | | +| J.cs:42:18:42:42 | object creation of type RecordStruct : RecordStruct [property Prop1] : Object | J.cs:47:14:47:15 | access to local variable r2 : RecordStruct [property Prop1] : Object | provenance | | +| J.cs:42:18:42:42 | object creation of type RecordStruct : RecordStruct [property Prop1] : Object | J.cs:47:14:47:15 | access to local variable r2 : RecordStruct [property Prop1] : Object | provenance | | +| J.cs:42:18:42:42 | object creation of type RecordStruct : RecordStruct [property Prop1] : Object | J.cs:51:14:51:15 | access to local variable r3 : RecordStruct [property Prop1] : Object | provenance | | +| J.cs:42:18:42:42 | object creation of type RecordStruct : RecordStruct [property Prop1] : Object | J.cs:51:14:51:15 | access to local variable r3 : RecordStruct [property Prop1] : Object | provenance | | +| J.cs:42:35:42:35 | access to local variable o : Object | J.cs:42:18:42:42 | object creation of type RecordStruct : RecordStruct [property Prop1] : Object | provenance | | +| J.cs:42:35:42:35 | access to local variable o : Object | J.cs:42:18:42:42 | object creation of type RecordStruct : RecordStruct [property Prop1] : Object | provenance | | +| J.cs:43:14:43:15 | access to local variable r1 : RecordStruct [property Prop1] : Object | J.cs:43:14:43:21 | access to property Prop1 | provenance | | +| J.cs:43:14:43:15 | access to local variable r1 : RecordStruct [property Prop1] : Object | J.cs:43:14:43:21 | access to property Prop1 | provenance | | +| J.cs:47:14:47:15 | access to local variable r2 : RecordStruct [property Prop1] : Object | J.cs:47:14:47:21 | access to property Prop1 | provenance | | +| J.cs:47:14:47:15 | access to local variable r2 : RecordStruct [property Prop1] : Object | J.cs:47:14:47:21 | access to property Prop1 | provenance | | +| J.cs:50:18:50:54 | ... with { ... } : RecordStruct [property Prop2] : Object | J.cs:52:14:52:15 | access to local variable r3 : RecordStruct [property Prop2] : Object | provenance | | +| J.cs:50:18:50:54 | ... with { ... } : RecordStruct [property Prop2] : Object | J.cs:52:14:52:15 | access to local variable r3 : RecordStruct [property Prop2] : Object | provenance | | +| J.cs:50:36:50:52 | call to method Source : Object | J.cs:50:18:50:54 | ... with { ... } : RecordStruct [property Prop2] : Object | provenance | | +| J.cs:50:36:50:52 | call to method Source : Object | J.cs:50:18:50:54 | ... with { ... } : RecordStruct [property Prop2] : Object | provenance | | +| J.cs:51:14:51:15 | access to local variable r3 : RecordStruct [property Prop1] : Object | J.cs:51:14:51:21 | access to property Prop1 | provenance | | +| J.cs:51:14:51:15 | access to local variable r3 : RecordStruct [property Prop1] : Object | J.cs:51:14:51:21 | access to property Prop1 | provenance | | +| J.cs:52:14:52:15 | access to local variable r3 : RecordStruct [property Prop2] : Object | J.cs:52:14:52:21 | access to property Prop2 | provenance | | +| J.cs:52:14:52:15 | access to local variable r3 : RecordStruct [property Prop2] : Object | J.cs:52:14:52:21 | access to property Prop2 | provenance | | +| J.cs:61:17:61:33 | call to method Source : Object | J.cs:62:29:62:29 | access to local variable o : Object | provenance | | +| J.cs:61:17:61:33 | call to method Source : Object | J.cs:62:29:62:29 | access to local variable o : Object | provenance | | +| J.cs:62:18:62:36 | object creation of type Struct : Struct [field Field] : Object | J.cs:65:14:65:15 | access to local variable s2 : Struct [field Field] : Object | provenance | | +| J.cs:62:18:62:36 | object creation of type Struct : Struct [field Field] : Object | J.cs:65:14:65:15 | access to local variable s2 : Struct [field Field] : Object | provenance | | +| J.cs:62:18:62:36 | object creation of type Struct : Struct [field Field] : Object | J.cs:69:14:69:15 | access to local variable s3 : Struct [field Field] : Object | provenance | | +| J.cs:62:18:62:36 | object creation of type Struct : Struct [field Field] : Object | J.cs:69:14:69:15 | access to local variable s3 : Struct [field Field] : Object | provenance | | +| J.cs:62:29:62:29 | access to local variable o : Object | J.cs:14:26:14:30 | field : Object | provenance | | +| J.cs:62:29:62:29 | access to local variable o : Object | J.cs:14:26:14:30 | field : Object | provenance | | +| J.cs:62:29:62:29 | access to local variable o : Object | J.cs:62:18:62:36 | object creation of type Struct : Struct [field Field] : Object | provenance | | +| J.cs:62:29:62:29 | access to local variable o : Object | J.cs:62:18:62:36 | object creation of type Struct : Struct [field Field] : Object | provenance | | +| J.cs:65:14:65:15 | access to local variable s2 : Struct [field Field] : Object | J.cs:65:14:65:21 | access to field Field | provenance | | +| J.cs:65:14:65:15 | access to local variable s2 : Struct [field Field] : Object | J.cs:65:14:65:21 | access to field Field | provenance | | +| J.cs:68:18:68:53 | ... with { ... } : Struct [property Prop] : Object | J.cs:70:14:70:15 | access to local variable s3 : Struct [property Prop] : Object | provenance | | +| J.cs:68:18:68:53 | ... with { ... } : Struct [property Prop] : Object | J.cs:70:14:70:15 | access to local variable s3 : Struct [property Prop] : Object | provenance | | +| J.cs:68:35:68:51 | call to method Source : Object | J.cs:68:18:68:53 | ... with { ... } : Struct [property Prop] : Object | provenance | | +| J.cs:68:35:68:51 | call to method Source : Object | J.cs:68:18:68:53 | ... with { ... } : Struct [property Prop] : Object | provenance | | +| J.cs:69:14:69:15 | access to local variable s3 : Struct [field Field] : Object | J.cs:69:14:69:21 | access to field Field | provenance | | +| J.cs:69:14:69:15 | access to local variable s3 : Struct [field Field] : Object | J.cs:69:14:69:21 | access to field Field | provenance | | +| J.cs:70:14:70:15 | access to local variable s3 : Struct [property Prop] : Object | J.cs:70:14:70:20 | access to property Prop | provenance | | +| J.cs:70:14:70:15 | access to local variable s3 : Struct [property Prop] : Object | J.cs:70:14:70:20 | access to property Prop | provenance | | +| J.cs:79:17:79:33 | call to method Source : Object | J.cs:80:35:80:35 | access to local variable o : Object | provenance | | +| J.cs:79:17:79:33 | call to method Source : Object | J.cs:80:35:80:35 | access to local variable o : Object | provenance | | +| J.cs:80:18:80:36 | object creation of type Struct : Struct [property Prop] : Object | J.cs:84:14:84:15 | access to local variable s2 : Struct [property Prop] : Object | provenance | | +| J.cs:80:18:80:36 | object creation of type Struct : Struct [property Prop] : Object | J.cs:84:14:84:15 | access to local variable s2 : Struct [property Prop] : Object | provenance | | +| J.cs:80:18:80:36 | object creation of type Struct : Struct [property Prop] : Object | J.cs:88:14:88:15 | access to local variable s3 : Struct [property Prop] : Object | provenance | | +| J.cs:80:18:80:36 | object creation of type Struct : Struct [property Prop] : Object | J.cs:88:14:88:15 | access to local variable s3 : Struct [property Prop] : Object | provenance | | +| J.cs:80:35:80:35 | access to local variable o : Object | J.cs:14:40:14:43 | prop : Object | provenance | | +| J.cs:80:35:80:35 | access to local variable o : Object | J.cs:14:40:14:43 | prop : Object | provenance | | +| J.cs:80:35:80:35 | access to local variable o : Object | J.cs:80:18:80:36 | object creation of type Struct : Struct [property Prop] : Object | provenance | | +| J.cs:80:35:80:35 | access to local variable o : Object | J.cs:80:18:80:36 | object creation of type Struct : Struct [property Prop] : Object | provenance | | +| J.cs:84:14:84:15 | access to local variable s2 : Struct [property Prop] : Object | J.cs:84:14:84:20 | access to property Prop | provenance | | +| J.cs:84:14:84:15 | access to local variable s2 : Struct [property Prop] : Object | J.cs:84:14:84:20 | access to property Prop | provenance | | +| J.cs:86:18:86:54 | ... with { ... } : Struct [field Field] : Object | J.cs:87:14:87:15 | access to local variable s3 : Struct [field Field] : Object | provenance | | +| J.cs:86:18:86:54 | ... with { ... } : Struct [field Field] : Object | J.cs:87:14:87:15 | access to local variable s3 : Struct [field Field] : Object | provenance | | +| J.cs:86:36:86:52 | call to method Source : Object | J.cs:86:18:86:54 | ... with { ... } : Struct [field Field] : Object | provenance | | +| J.cs:86:36:86:52 | call to method Source : Object | J.cs:86:18:86:54 | ... with { ... } : Struct [field Field] : Object | provenance | | +| J.cs:87:14:87:15 | access to local variable s3 : Struct [field Field] : Object | J.cs:87:14:87:21 | access to field Field | provenance | | +| J.cs:87:14:87:15 | access to local variable s3 : Struct [field Field] : Object | J.cs:87:14:87:21 | access to field Field | provenance | | +| J.cs:88:14:88:15 | access to local variable s3 : Struct [property Prop] : Object | J.cs:88:14:88:20 | access to property Prop | provenance | | +| J.cs:88:14:88:15 | access to local variable s3 : Struct [property Prop] : Object | J.cs:88:14:88:20 | access to property Prop | provenance | | +| J.cs:97:17:97:33 | call to method Source : Object | J.cs:99:28:99:28 | access to local variable o : Object | provenance | | +| J.cs:97:17:97:33 | call to method Source : Object | J.cs:99:28:99:28 | access to local variable o : Object | provenance | | +| J.cs:99:18:99:41 | { ..., ... } : <>__AnonType0 [property X] : Object | J.cs:102:14:102:15 | access to local variable a2 : <>__AnonType0 [property X] : Object | provenance | | +| J.cs:99:18:99:41 | { ..., ... } : <>__AnonType0 [property X] : Object | J.cs:102:14:102:15 | access to local variable a2 : <>__AnonType0 [property X] : Object | provenance | | +| J.cs:99:18:99:41 | { ..., ... } : <>__AnonType0 [property X] : Object | J.cs:106:14:106:15 | access to local variable a3 : <>__AnonType0 [property X] : Object | provenance | | +| J.cs:99:18:99:41 | { ..., ... } : <>__AnonType0 [property X] : Object | J.cs:106:14:106:15 | access to local variable a3 : <>__AnonType0 [property X] : Object | provenance | | +| J.cs:99:28:99:28 | access to local variable o : Object | J.cs:99:18:99:41 | { ..., ... } : <>__AnonType0 [property X] : Object | provenance | | +| J.cs:99:28:99:28 | access to local variable o : Object | J.cs:99:18:99:41 | { ..., ... } : <>__AnonType0 [property X] : Object | provenance | | +| J.cs:102:14:102:15 | access to local variable a2 : <>__AnonType0 [property X] : Object | J.cs:102:14:102:17 | access to property X | provenance | | +| J.cs:102:14:102:15 | access to local variable a2 : <>__AnonType0 [property X] : Object | J.cs:102:14:102:17 | access to property X | provenance | | +| J.cs:105:18:105:50 | ... with { ... } : <>__AnonType0 [property Y] : Object | J.cs:107:14:107:15 | access to local variable a3 : <>__AnonType0 [property Y] : Object | provenance | | +| J.cs:105:18:105:50 | ... with { ... } : <>__AnonType0 [property Y] : Object | J.cs:107:14:107:15 | access to local variable a3 : <>__AnonType0 [property Y] : Object | provenance | | +| J.cs:105:32:105:48 | call to method Source : Object | J.cs:105:18:105:50 | ... with { ... } : <>__AnonType0 [property Y] : Object | provenance | | +| J.cs:105:32:105:48 | call to method Source : Object | J.cs:105:18:105:50 | ... with { ... } : <>__AnonType0 [property Y] : Object | provenance | | +| J.cs:106:14:106:15 | access to local variable a3 : <>__AnonType0 [property X] : Object | J.cs:106:14:106:17 | access to property X | provenance | | +| J.cs:106:14:106:15 | access to local variable a3 : <>__AnonType0 [property X] : Object | J.cs:106:14:106:17 | access to property X | provenance | | +| J.cs:107:14:107:15 | access to local variable a3 : <>__AnonType0 [property Y] : Object | J.cs:107:14:107:17 | access to property Y | provenance | | +| J.cs:107:14:107:15 | access to local variable a3 : <>__AnonType0 [property Y] : Object | J.cs:107:14:107:17 | access to property Y | provenance | | +| J.cs:119:13:119:13 | [post] access to local variable a : Int32[] [element] : Int32 | J.cs:125:14:125:14 | access to local variable a : Int32[] [element] : Int32 | provenance | | +| J.cs:119:13:119:13 | [post] access to local variable a : Int32[] [element] : Int32 | J.cs:125:14:125:14 | access to local variable a : Int32[] [element] : Int32 | provenance | | +| J.cs:119:20:119:34 | call to method Source : Int32 | J.cs:119:13:119:13 | [post] access to local variable a : Int32[] [element] : Int32 | provenance | | +| J.cs:119:20:119:34 | call to method Source : Int32 | J.cs:119:13:119:13 | [post] access to local variable a : Int32[] [element] : Int32 | provenance | | +| J.cs:125:14:125:14 | access to local variable a : Int32[] [element] : Int32 | J.cs:125:14:125:17 | access to array element : Int32 | provenance | | +| J.cs:125:14:125:14 | access to local variable a : Int32[] [element] : Int32 | J.cs:125:14:125:17 | access to array element : Int32 | provenance | | +| J.cs:125:14:125:17 | access to array element : Int32 | J.cs:125:14:125:17 | (...) ... | provenance | | +| J.cs:125:14:125:17 | access to array element : Int32 | J.cs:125:14:125:17 | (...) ... | provenance | | nodes | A.cs:5:17:5:28 | call to method Source : C | semmle.label | call to method Source : C | | A.cs:5:17:5:28 | call to method Source : C | semmle.label | call to method Source : C | diff --git a/csharp/ql/test/library-tests/dataflow/global/DataFlowPath.expected b/csharp/ql/test/library-tests/dataflow/global/DataFlowPath.expected index 00d45708afc8..4d549939f1c2 100644 --- a/csharp/ql/test/library-tests/dataflow/global/DataFlowPath.expected +++ b/csharp/ql/test/library-tests/dataflow/global/DataFlowPath.expected @@ -1,344 +1,344 @@ edges -| Capture.cs:7:20:7:26 | tainted : String | Capture.cs:12:19:12:24 | access to local variable sink27 | -| Capture.cs:7:20:7:26 | tainted : String | Capture.cs:21:23:21:28 | access to local variable sink28 | -| Capture.cs:7:20:7:26 | tainted : String | Capture.cs:30:19:30:24 | access to local variable sink29 | -| Capture.cs:7:20:7:26 | tainted : String | Capture.cs:61:36:61:42 | access to parameter tainted : String | -| Capture.cs:50:50:50:55 | sink39 : String | Capture.cs:57:27:57:32 | access to parameter sink39 | -| Capture.cs:61:36:61:42 | access to parameter tainted : String | Capture.cs:50:50:50:55 | sink39 : String | -| Capture.cs:69:13:69:35 | SSA def(sink30) : String | Capture.cs:72:15:72:20 | access to local variable sink30 | -| Capture.cs:69:22:69:35 | "taint source" : String | Capture.cs:69:13:69:35 | SSA def(sink30) : String | -| Capture.cs:79:17:79:39 | SSA def(sink31) : String | Capture.cs:84:15:84:20 | access to local variable sink31 | -| Capture.cs:79:26:79:39 | "taint source" : String | Capture.cs:79:17:79:39 | SSA def(sink31) : String | -| Capture.cs:89:13:89:35 | SSA def(sink32) : String | Capture.cs:93:15:93:20 | access to local variable sink32 | -| Capture.cs:89:22:89:35 | "taint source" : String | Capture.cs:89:13:89:35 | SSA def(sink32) : String | -| Capture.cs:115:17:115:39 | SSA def(sink40) : String | Capture.cs:122:15:122:20 | access to local variable sink40 | -| Capture.cs:115:26:115:39 | "taint source" : String | Capture.cs:115:17:115:39 | SSA def(sink40) : String | -| Capture.cs:125:25:125:31 | tainted : String | Capture.cs:133:15:133:20 | access to local variable sink33 | -| Capture.cs:125:25:125:31 | tainted : String | Capture.cs:145:15:145:20 | access to local variable sink34 | -| Capture.cs:125:25:125:31 | tainted : String | Capture.cs:154:15:154:20 | access to local variable sink35 | -| Capture.cs:125:25:125:31 | tainted : String | Capture.cs:160:22:160:38 | call to local function CaptureThrough4 : String | -| Capture.cs:125:25:125:31 | tainted : String | Capture.cs:168:25:168:31 | access to parameter tainted : String | -| Capture.cs:125:25:125:31 | tainted : String | Capture.cs:194:25:194:31 | access to parameter tainted : String | -| Capture.cs:160:22:160:38 | call to local function CaptureThrough4 : String | Capture.cs:161:15:161:20 | access to local variable sink36 | -| Capture.cs:168:25:168:31 | access to parameter tainted : String | Capture.cs:169:15:169:20 | access to local variable sink37 | -| Capture.cs:188:26:188:26 | s : String | Capture.cs:191:20:191:22 | call to local function M : String | -| Capture.cs:194:22:194:32 | call to local function Id : String | Capture.cs:195:15:195:20 | access to local variable sink38 | -| Capture.cs:194:25:194:31 | access to parameter tainted : String | Capture.cs:188:26:188:26 | s : String | -| Capture.cs:194:25:194:31 | access to parameter tainted : String | Capture.cs:194:22:194:32 | call to local function Id : String | -| GlobalDataFlow.cs:18:27:18:40 | "taint source" : String | GlobalDataFlow.cs:19:15:19:29 | access to field SinkField0 | -| GlobalDataFlow.cs:18:27:18:40 | "taint source" : String | GlobalDataFlow.cs:27:15:27:32 | access to property SinkProperty0 | -| GlobalDataFlow.cs:18:27:18:40 | "taint source" : String | GlobalDataFlow.cs:27:15:27:32 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:18:27:18:40 | "taint source" : String | GlobalDataFlow.cs:36:13:36:30 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:18:27:18:40 | "taint source" : String | GlobalDataFlow.cs:38:35:38:52 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:18:27:18:40 | "taint source" : String | GlobalDataFlow.cs:46:13:46:30 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:18:27:18:40 | "taint source" : String | GlobalDataFlow.cs:53:20:53:37 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:18:27:18:40 | "taint source" : String | GlobalDataFlow.cs:54:28:54:45 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:18:27:18:40 | "taint source" : String | GlobalDataFlow.cs:55:44:55:61 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:18:27:18:40 | "taint source" : String | GlobalDataFlow.cs:56:28:56:45 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:18:27:18:40 | "taint source" : String | GlobalDataFlow.cs:58:35:58:52 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:18:27:18:40 | "taint source" : String | GlobalDataFlow.cs:65:22:65:39 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:18:27:18:40 | "taint source" : String | GlobalDataFlow.cs:71:28:71:45 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:27:15:27:32 | access to property SinkProperty0 : String | GlobalDataFlow.cs:36:13:36:30 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:27:15:27:32 | access to property SinkProperty0 : String | GlobalDataFlow.cs:38:35:38:52 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:27:15:27:32 | access to property SinkProperty0 : String | GlobalDataFlow.cs:46:13:46:30 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:27:15:27:32 | access to property SinkProperty0 : String | GlobalDataFlow.cs:53:20:53:37 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:27:15:27:32 | access to property SinkProperty0 : String | GlobalDataFlow.cs:54:28:54:45 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:27:15:27:32 | access to property SinkProperty0 : String | GlobalDataFlow.cs:55:44:55:61 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:27:15:27:32 | access to property SinkProperty0 : String | GlobalDataFlow.cs:56:28:56:45 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:27:15:27:32 | access to property SinkProperty0 : String | GlobalDataFlow.cs:58:35:58:52 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:27:15:27:32 | access to property SinkProperty0 : String | GlobalDataFlow.cs:65:22:65:39 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:27:15:27:32 | access to property SinkProperty0 : String | GlobalDataFlow.cs:71:28:71:45 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:36:13:36:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:38:35:38:52 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:36:13:36:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:46:13:46:30 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:36:13:36:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:53:20:53:37 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:36:13:36:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:54:28:54:45 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:36:13:36:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:55:44:55:61 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:36:13:36:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:56:28:56:45 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:36:13:36:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:58:35:58:52 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:36:13:36:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:65:22:65:39 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:36:13:36:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:71:28:71:45 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:36:13:36:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:257:26:257:35 | sinkParam0 : String | -| GlobalDataFlow.cs:38:35:38:52 | access to property SinkProperty0 : String | GlobalDataFlow.cs:46:13:46:30 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:38:35:38:52 | access to property SinkProperty0 : String | GlobalDataFlow.cs:53:20:53:37 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:38:35:38:52 | access to property SinkProperty0 : String | GlobalDataFlow.cs:54:28:54:45 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:38:35:38:52 | access to property SinkProperty0 : String | GlobalDataFlow.cs:55:44:55:61 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:38:35:38:52 | access to property SinkProperty0 : String | GlobalDataFlow.cs:56:28:56:45 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:38:35:38:52 | access to property SinkProperty0 : String | GlobalDataFlow.cs:58:35:58:52 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:38:35:38:52 | access to property SinkProperty0 : String | GlobalDataFlow.cs:65:22:65:39 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:38:35:38:52 | access to property SinkProperty0 : String | GlobalDataFlow.cs:71:28:71:45 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:38:35:38:52 | access to property SinkProperty0 : String | GlobalDataFlow.cs:263:26:263:35 | sinkParam1 : String | -| GlobalDataFlow.cs:45:30:45:39 | sinkParam2 : String | GlobalDataFlow.cs:45:50:45:59 | access to parameter sinkParam2 | -| GlobalDataFlow.cs:46:13:46:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:45:30:45:39 | sinkParam2 : String | -| GlobalDataFlow.cs:46:13:46:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:53:20:53:37 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:46:13:46:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:54:28:54:45 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:46:13:46:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:55:44:55:61 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:46:13:46:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:56:28:56:45 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:46:13:46:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:58:35:58:52 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:46:13:46:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:65:22:65:39 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:46:13:46:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:71:28:71:45 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:53:20:53:37 | access to property SinkProperty0 : String | GlobalDataFlow.cs:54:28:54:45 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:53:20:53:37 | access to property SinkProperty0 : String | GlobalDataFlow.cs:55:44:55:61 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:53:20:53:37 | access to property SinkProperty0 : String | GlobalDataFlow.cs:56:28:56:45 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:53:20:53:37 | access to property SinkProperty0 : String | GlobalDataFlow.cs:58:35:58:52 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:53:20:53:37 | access to property SinkProperty0 : String | GlobalDataFlow.cs:65:22:65:39 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:53:20:53:37 | access to property SinkProperty0 : String | GlobalDataFlow.cs:71:28:71:45 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:53:20:53:37 | access to property SinkProperty0 : String | GlobalDataFlow.cs:382:41:382:41 | x : String | -| GlobalDataFlow.cs:54:15:54:15 | x : String | GlobalDataFlow.cs:54:24:54:24 | access to parameter x : String | -| GlobalDataFlow.cs:54:24:54:24 | access to parameter x : String | GlobalDataFlow.cs:273:26:273:35 | sinkParam4 : String | -| GlobalDataFlow.cs:54:28:54:45 | access to property SinkProperty0 : String | GlobalDataFlow.cs:55:44:55:61 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:54:28:54:45 | access to property SinkProperty0 : String | GlobalDataFlow.cs:56:28:56:45 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:54:28:54:45 | access to property SinkProperty0 : String | GlobalDataFlow.cs:58:35:58:52 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:54:28:54:45 | access to property SinkProperty0 : String | GlobalDataFlow.cs:65:22:65:39 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:54:28:54:45 | access to property SinkProperty0 : String | GlobalDataFlow.cs:71:28:71:45 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:54:28:54:45 | access to property SinkProperty0 : String | GlobalDataFlow.cs:382:41:382:41 | x : String | -| GlobalDataFlow.cs:55:44:55:61 | access to property SinkProperty0 : String | GlobalDataFlow.cs:56:28:56:45 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:55:44:55:61 | access to property SinkProperty0 : String | GlobalDataFlow.cs:58:35:58:52 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:55:44:55:61 | access to property SinkProperty0 : String | GlobalDataFlow.cs:65:22:65:39 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:55:44:55:61 | access to property SinkProperty0 : String | GlobalDataFlow.cs:71:28:71:45 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:55:44:55:61 | access to property SinkProperty0 : String | GlobalDataFlow.cs:396:52:396:52 | x : String | -| GlobalDataFlow.cs:56:28:56:45 | access to property SinkProperty0 : String | GlobalDataFlow.cs:58:35:58:52 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:56:28:56:45 | access to property SinkProperty0 : String | GlobalDataFlow.cs:65:22:65:39 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:56:28:56:45 | access to property SinkProperty0 : String | GlobalDataFlow.cs:71:28:71:45 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:56:28:56:45 | access to property SinkProperty0 : String | GlobalDataFlow.cs:396:52:396:52 | x : String | -| GlobalDataFlow.cs:57:37:57:37 | x : String | GlobalDataFlow.cs:57:46:57:46 | access to parameter x : String | -| GlobalDataFlow.cs:57:46:57:46 | access to parameter x : String | GlobalDataFlow.cs:288:26:288:35 | sinkParam7 : String | -| GlobalDataFlow.cs:58:35:58:52 | access to property SinkProperty0 : String | GlobalDataFlow.cs:65:22:65:39 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:58:35:58:52 | access to property SinkProperty0 : String | GlobalDataFlow.cs:71:28:71:45 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:58:35:58:52 | access to property SinkProperty0 : String | GlobalDataFlow.cs:396:52:396:52 | x : String | -| GlobalDataFlow.cs:65:22:65:39 | access to property SinkProperty0 : String | GlobalDataFlow.cs:71:28:71:45 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:65:22:65:39 | access to property SinkProperty0 : String | GlobalDataFlow.cs:427:9:427:11 | value : String | -| GlobalDataFlow.cs:71:21:71:46 | call to method Return : String | GlobalDataFlow.cs:72:15:72:19 | access to local variable sink0 | -| GlobalDataFlow.cs:71:21:71:46 | call to method Return : String | GlobalDataFlow.cs:73:94:73:98 | access to local variable sink0 : String | -| GlobalDataFlow.cs:71:28:71:45 | access to property SinkProperty0 : String | GlobalDataFlow.cs:71:21:71:46 | call to method Return : String | -| GlobalDataFlow.cs:71:28:71:45 | access to property SinkProperty0 : String | GlobalDataFlow.cs:298:26:298:26 | x : String | -| GlobalDataFlow.cs:73:21:73:101 | (...) ... : String | GlobalDataFlow.cs:74:15:74:19 | access to local variable sink1 | -| GlobalDataFlow.cs:73:21:73:101 | (...) ... : String | GlobalDataFlow.cs:76:19:76:23 | access to local variable sink1 : String | -| GlobalDataFlow.cs:73:29:73:101 | call to method Invoke : String | GlobalDataFlow.cs:73:21:73:101 | (...) ... : String | -| GlobalDataFlow.cs:73:94:73:98 | access to local variable sink0 : String | GlobalDataFlow.cs:73:29:73:101 | call to method Invoke : String | -| GlobalDataFlow.cs:73:94:73:98 | access to local variable sink0 : String | GlobalDataFlow.cs:298:26:298:26 | x : String | -| GlobalDataFlow.cs:76:19:76:23 | access to local variable sink1 : String | GlobalDataFlow.cs:76:30:76:34 | SSA def(sink2) : String | -| GlobalDataFlow.cs:76:19:76:23 | access to local variable sink1 : String | GlobalDataFlow.cs:304:32:304:32 | x : String | -| GlobalDataFlow.cs:76:30:76:34 | SSA def(sink2) : String | GlobalDataFlow.cs:77:15:77:19 | access to local variable sink2 | -| GlobalDataFlow.cs:76:30:76:34 | SSA def(sink2) : String | GlobalDataFlow.cs:79:19:79:23 | access to local variable sink2 : String | -| GlobalDataFlow.cs:79:19:79:23 | access to local variable sink2 : String | GlobalDataFlow.cs:79:30:79:34 | SSA def(sink3) : String | -| GlobalDataFlow.cs:79:19:79:23 | access to local variable sink2 : String | GlobalDataFlow.cs:310:32:310:32 | x : String | -| GlobalDataFlow.cs:79:30:79:34 | SSA def(sink3) : String | GlobalDataFlow.cs:80:15:80:19 | access to local variable sink3 | -| GlobalDataFlow.cs:79:30:79:34 | SSA def(sink3) : String | GlobalDataFlow.cs:81:59:81:63 | access to local variable sink3 : String | -| GlobalDataFlow.cs:79:30:79:34 | SSA def(sink3) : String | GlobalDataFlow.cs:139:29:139:33 | access to local variable sink3 : String | -| GlobalDataFlow.cs:81:22:81:85 | call to method SelectEven : IEnumerable [element] : String | GlobalDataFlow.cs:81:22:81:93 | call to method First : String | -| GlobalDataFlow.cs:81:22:81:93 | call to method First : String | GlobalDataFlow.cs:82:15:82:20 | access to local variable sink13 | -| GlobalDataFlow.cs:81:22:81:93 | call to method First : String | GlobalDataFlow.cs:83:59:83:64 | access to local variable sink13 : String | -| GlobalDataFlow.cs:81:23:81:65 | (...) ... : null [element] : String | GlobalDataFlow.cs:81:22:81:85 | call to method SelectEven : IEnumerable [element] : String | -| GlobalDataFlow.cs:81:23:81:65 | (...) ... : null [element] : String | GlobalDataFlow.cs:553:71:553:71 | e : null [element] : String | -| GlobalDataFlow.cs:81:57:81:65 | { ..., ... } : null [element] : String | GlobalDataFlow.cs:81:23:81:65 | (...) ... : null [element] : String | -| GlobalDataFlow.cs:81:59:81:63 | access to local variable sink3 : String | GlobalDataFlow.cs:81:57:81:65 | { ..., ... } : null [element] : String | -| GlobalDataFlow.cs:81:79:81:79 | x : String | GlobalDataFlow.cs:81:84:81:84 | access to parameter x : String | -| GlobalDataFlow.cs:83:22:83:87 | call to method Select : IEnumerable [element] : String | GlobalDataFlow.cs:83:22:83:95 | call to method First : String | -| GlobalDataFlow.cs:83:22:83:95 | call to method First : String | GlobalDataFlow.cs:84:15:84:20 | access to local variable sink14 | -| GlobalDataFlow.cs:83:22:83:95 | call to method First : String | GlobalDataFlow.cs:85:59:85:64 | access to local variable sink14 : String | -| GlobalDataFlow.cs:83:23:83:66 | (...) ... : null [element] : String | GlobalDataFlow.cs:83:22:83:87 | call to method Select : IEnumerable [element] : String | -| GlobalDataFlow.cs:83:23:83:66 | (...) ... : null [element] : String | GlobalDataFlow.cs:315:31:315:40 | sinkParam8 : String | -| GlobalDataFlow.cs:83:57:83:66 | { ..., ... } : null [element] : String | GlobalDataFlow.cs:83:23:83:66 | (...) ... : null [element] : String | -| GlobalDataFlow.cs:83:59:83:64 | access to local variable sink13 : String | GlobalDataFlow.cs:83:57:83:66 | { ..., ... } : null [element] : String | -| GlobalDataFlow.cs:85:22:85:128 | call to method Zip : IEnumerable [element] : String | GlobalDataFlow.cs:85:22:85:136 | call to method First : String | -| GlobalDataFlow.cs:85:22:85:136 | call to method First : String | GlobalDataFlow.cs:86:15:86:20 | access to local variable sink15 | -| GlobalDataFlow.cs:85:22:85:136 | call to method First : String | GlobalDataFlow.cs:87:106:87:111 | access to local variable sink15 : String | -| GlobalDataFlow.cs:85:23:85:66 | (...) ... : null [element] : String | GlobalDataFlow.cs:85:22:85:128 | call to method Zip : IEnumerable [element] : String | -| GlobalDataFlow.cs:85:57:85:66 | { ..., ... } : null [element] : String | GlobalDataFlow.cs:85:23:85:66 | (...) ... : null [element] : String | -| GlobalDataFlow.cs:85:59:85:64 | access to local variable sink14 : String | GlobalDataFlow.cs:85:57:85:66 | { ..., ... } : null [element] : String | -| GlobalDataFlow.cs:87:22:87:128 | call to method Zip : IEnumerable [element] : String | GlobalDataFlow.cs:87:22:87:136 | call to method First : String | -| GlobalDataFlow.cs:87:22:87:136 | call to method First : String | GlobalDataFlow.cs:88:15:88:20 | access to local variable sink16 | -| GlobalDataFlow.cs:87:70:87:113 | (...) ... : null [element] : String | GlobalDataFlow.cs:87:22:87:128 | call to method Zip : IEnumerable [element] : String | -| GlobalDataFlow.cs:87:104:87:113 | { ..., ... } : null [element] : String | GlobalDataFlow.cs:87:70:87:113 | (...) ... : null [element] : String | -| GlobalDataFlow.cs:87:106:87:111 | access to local variable sink15 : String | GlobalDataFlow.cs:87:104:87:113 | { ..., ... } : null [element] : String | -| GlobalDataFlow.cs:138:40:138:40 | x : String | GlobalDataFlow.cs:138:63:138:63 | access to parameter x : String | -| GlobalDataFlow.cs:138:63:138:63 | access to parameter x : String | GlobalDataFlow.cs:138:45:138:64 | call to method ApplyFunc : String | -| GlobalDataFlow.cs:138:63:138:63 | access to parameter x : String | GlobalDataFlow.cs:387:46:387:46 | x : String | -| GlobalDataFlow.cs:139:21:139:34 | delegate call : String | GlobalDataFlow.cs:140:15:140:19 | access to local variable sink4 | -| GlobalDataFlow.cs:139:21:139:34 | delegate call : String | GlobalDataFlow.cs:147:39:147:43 | access to local variable sink4 : String | -| GlobalDataFlow.cs:139:29:139:33 | access to local variable sink3 : String | GlobalDataFlow.cs:138:40:138:40 | x : String | -| GlobalDataFlow.cs:139:29:139:33 | access to local variable sink3 : String | GlobalDataFlow.cs:139:21:139:34 | delegate call : String | -| GlobalDataFlow.cs:147:21:147:44 | call to method ApplyFunc : String | GlobalDataFlow.cs:148:15:148:19 | access to local variable sink5 | -| GlobalDataFlow.cs:147:39:147:43 | access to local variable sink4 : String | GlobalDataFlow.cs:147:21:147:44 | call to method ApplyFunc : String | -| GlobalDataFlow.cs:147:39:147:43 | access to local variable sink4 : String | GlobalDataFlow.cs:387:46:387:46 | x : String | -| GlobalDataFlow.cs:157:21:157:25 | call to method Out : String | GlobalDataFlow.cs:158:15:158:19 | access to local variable sink6 | -| GlobalDataFlow.cs:160:20:160:24 | SSA def(sink7) : String | GlobalDataFlow.cs:161:15:161:19 | access to local variable sink7 | -| GlobalDataFlow.cs:163:20:163:24 | SSA def(sink8) : String | GlobalDataFlow.cs:164:15:164:19 | access to local variable sink8 | -| GlobalDataFlow.cs:165:22:165:31 | call to method OutYield : IEnumerable [element] : String | GlobalDataFlow.cs:165:22:165:39 | call to method First : String | -| GlobalDataFlow.cs:165:22:165:39 | call to method First : String | GlobalDataFlow.cs:166:15:166:20 | access to local variable sink12 | -| GlobalDataFlow.cs:167:22:167:43 | call to method TaintedParam : String | GlobalDataFlow.cs:168:15:168:20 | access to local variable sink23 | -| GlobalDataFlow.cs:183:35:183:48 | "taint source" : String | GlobalDataFlow.cs:184:21:184:26 | delegate call : String | -| GlobalDataFlow.cs:184:21:184:26 | delegate call : String | GlobalDataFlow.cs:185:15:185:19 | access to local variable sink9 | -| GlobalDataFlow.cs:193:22:193:42 | object creation of type Lazy : Lazy [property Value] : String | GlobalDataFlow.cs:193:22:193:48 | access to property Value : String | -| GlobalDataFlow.cs:193:22:193:48 | access to property Value : String | GlobalDataFlow.cs:194:15:194:20 | access to local variable sink10 | -| GlobalDataFlow.cs:201:22:201:32 | access to property OutProperty : String | GlobalDataFlow.cs:202:15:202:20 | access to local variable sink19 | -| GlobalDataFlow.cs:211:38:211:61 | array creation of type String[] : null [element] : String | GlobalDataFlow.cs:211:38:211:75 | call to method AsQueryable : IQueryable [element] : String | -| GlobalDataFlow.cs:211:38:211:75 | call to method AsQueryable : IQueryable [element] : String | GlobalDataFlow.cs:216:22:216:28 | access to local variable tainted : IQueryable [element] : String | -| GlobalDataFlow.cs:211:38:211:75 | call to method AsQueryable : IQueryable [element] : String | GlobalDataFlow.cs:218:22:218:28 | access to local variable tainted : IQueryable [element] : String | -| GlobalDataFlow.cs:211:38:211:75 | call to method AsQueryable : IQueryable [element] : String | GlobalDataFlow.cs:220:22:220:28 | access to local variable tainted : IQueryable [element] : String | -| GlobalDataFlow.cs:211:44:211:61 | { ..., ... } : null [element] : String | GlobalDataFlow.cs:211:38:211:61 | array creation of type String[] : null [element] : String | -| GlobalDataFlow.cs:211:46:211:59 | "taint source" : String | GlobalDataFlow.cs:211:44:211:61 | { ..., ... } : null [element] : String | -| GlobalDataFlow.cs:214:35:214:45 | sinkParam10 : String | GlobalDataFlow.cs:214:58:214:68 | access to parameter sinkParam10 | -| GlobalDataFlow.cs:215:71:215:71 | x : String | GlobalDataFlow.cs:215:89:215:89 | access to parameter x : String | -| GlobalDataFlow.cs:215:89:215:89 | access to parameter x : String | GlobalDataFlow.cs:321:32:321:41 | sinkParam9 : String | -| GlobalDataFlow.cs:216:22:216:28 | access to local variable tainted : IQueryable [element] : String | GlobalDataFlow.cs:214:35:214:45 | sinkParam10 : String | -| GlobalDataFlow.cs:216:22:216:28 | access to local variable tainted : IQueryable [element] : String | GlobalDataFlow.cs:216:22:216:39 | call to method Select : IEnumerable [element] : String | -| GlobalDataFlow.cs:216:22:216:39 | call to method Select : IEnumerable [element] : String | GlobalDataFlow.cs:216:22:216:47 | call to method First : String | -| GlobalDataFlow.cs:216:22:216:47 | call to method First : String | GlobalDataFlow.cs:217:15:217:20 | access to local variable sink24 | -| GlobalDataFlow.cs:218:22:218:28 | access to local variable tainted : IQueryable [element] : String | GlobalDataFlow.cs:215:71:215:71 | x : String | -| GlobalDataFlow.cs:218:22:218:28 | access to local variable tainted : IQueryable [element] : String | GlobalDataFlow.cs:218:22:218:39 | call to method Select : IQueryable [element] : String | -| GlobalDataFlow.cs:218:22:218:39 | call to method Select : IQueryable [element] : String | GlobalDataFlow.cs:218:22:218:47 | call to method First : String | -| GlobalDataFlow.cs:218:22:218:47 | call to method First : String | GlobalDataFlow.cs:219:15:219:20 | access to local variable sink25 | -| GlobalDataFlow.cs:220:22:220:28 | access to local variable tainted : IQueryable [element] : String | GlobalDataFlow.cs:220:22:220:49 | call to method Select : IEnumerable [element] : String | -| GlobalDataFlow.cs:220:22:220:28 | access to local variable tainted : IQueryable [element] : String | GlobalDataFlow.cs:327:32:327:42 | sinkParam11 : String | -| GlobalDataFlow.cs:220:22:220:49 | call to method Select : IEnumerable [element] : String | GlobalDataFlow.cs:220:22:220:57 | call to method First : String | -| GlobalDataFlow.cs:220:22:220:57 | call to method First : String | GlobalDataFlow.cs:221:15:221:20 | access to local variable sink26 | -| GlobalDataFlow.cs:241:20:241:49 | call to method Run : Task [property Result] : String | GlobalDataFlow.cs:242:22:242:25 | access to local variable task : Task [property Result] : String | -| GlobalDataFlow.cs:241:20:241:49 | call to method Run : Task [property Result] : String | GlobalDataFlow.cs:244:28:244:31 | access to local variable task : Task [property Result] : String | -| GlobalDataFlow.cs:241:35:241:48 | "taint source" : String | GlobalDataFlow.cs:241:20:241:49 | call to method Run : Task [property Result] : String | -| GlobalDataFlow.cs:242:22:242:25 | access to local variable task : Task [property Result] : String | GlobalDataFlow.cs:242:22:242:32 | access to property Result : String | -| GlobalDataFlow.cs:242:22:242:32 | access to property Result : String | GlobalDataFlow.cs:243:15:243:20 | access to local variable sink41 | -| GlobalDataFlow.cs:244:22:244:31 | await ... : String | GlobalDataFlow.cs:245:15:245:20 | access to local variable sink42 | -| GlobalDataFlow.cs:244:28:244:31 | access to local variable task : Task [property Result] : String | GlobalDataFlow.cs:244:22:244:31 | await ... : String | -| GlobalDataFlow.cs:257:26:257:35 | sinkParam0 : String | GlobalDataFlow.cs:259:16:259:25 | access to parameter sinkParam0 : String | -| GlobalDataFlow.cs:257:26:257:35 | sinkParam0 : String | GlobalDataFlow.cs:260:15:260:24 | access to parameter sinkParam0 | -| GlobalDataFlow.cs:259:16:259:25 | access to parameter sinkParam0 : String | GlobalDataFlow.cs:257:26:257:35 | sinkParam0 : String | -| GlobalDataFlow.cs:263:26:263:35 | sinkParam1 : String | GlobalDataFlow.cs:265:15:265:24 | access to parameter sinkParam1 | -| GlobalDataFlow.cs:268:26:268:35 | sinkParam3 : String | GlobalDataFlow.cs:270:15:270:24 | access to parameter sinkParam3 | -| GlobalDataFlow.cs:273:26:273:35 | sinkParam4 : String | GlobalDataFlow.cs:275:15:275:24 | access to parameter sinkParam4 | -| GlobalDataFlow.cs:278:26:278:35 | sinkParam5 : String | GlobalDataFlow.cs:280:15:280:24 | access to parameter sinkParam5 | -| GlobalDataFlow.cs:283:26:283:35 | sinkParam6 : String | GlobalDataFlow.cs:285:15:285:24 | access to parameter sinkParam6 | -| GlobalDataFlow.cs:288:26:288:35 | sinkParam7 : String | GlobalDataFlow.cs:290:15:290:24 | access to parameter sinkParam7 | -| GlobalDataFlow.cs:298:26:298:26 | x : String | GlobalDataFlow.cs:300:37:300:37 | access to parameter x : String | -| GlobalDataFlow.cs:300:17:300:38 | call to method ApplyFunc : String | GlobalDataFlow.cs:301:16:301:41 | ... ? ... : ... : String | -| GlobalDataFlow.cs:300:27:300:28 | x0 : String | GlobalDataFlow.cs:300:33:300:34 | access to parameter x0 : String | -| GlobalDataFlow.cs:300:37:300:37 | access to parameter x : String | GlobalDataFlow.cs:300:17:300:38 | call to method ApplyFunc : String | -| GlobalDataFlow.cs:300:37:300:37 | access to parameter x : String | GlobalDataFlow.cs:387:46:387:46 | x : String | -| GlobalDataFlow.cs:304:32:304:32 | x : String | GlobalDataFlow.cs:306:9:306:13 | SSA def(y) : String | -| GlobalDataFlow.cs:310:32:310:32 | x : String | GlobalDataFlow.cs:312:9:312:13 | SSA def(y) : String | -| GlobalDataFlow.cs:315:31:315:40 | sinkParam8 : String | GlobalDataFlow.cs:317:15:317:24 | access to parameter sinkParam8 | -| GlobalDataFlow.cs:321:32:321:41 | sinkParam9 : String | GlobalDataFlow.cs:323:15:323:24 | access to parameter sinkParam9 | -| GlobalDataFlow.cs:327:32:327:42 | sinkParam11 : String | GlobalDataFlow.cs:329:15:329:25 | access to parameter sinkParam11 | -| GlobalDataFlow.cs:341:16:341:29 | "taint source" : String | GlobalDataFlow.cs:157:21:157:25 | call to method Out : String | -| GlobalDataFlow.cs:341:16:341:29 | "taint source" : String | GlobalDataFlow.cs:193:22:193:42 | object creation of type Lazy : Lazy [property Value] : String | -| GlobalDataFlow.cs:346:9:346:26 | SSA def(x) : String | GlobalDataFlow.cs:160:20:160:24 | SSA def(sink7) : String | -| GlobalDataFlow.cs:346:13:346:26 | "taint source" : String | GlobalDataFlow.cs:346:9:346:26 | SSA def(x) : String | -| GlobalDataFlow.cs:351:9:351:26 | SSA def(x) : String | GlobalDataFlow.cs:163:20:163:24 | SSA def(sink8) : String | -| GlobalDataFlow.cs:351:13:351:26 | "taint source" : String | GlobalDataFlow.cs:351:9:351:26 | SSA def(x) : String | -| GlobalDataFlow.cs:357:22:357:35 | "taint source" : String | GlobalDataFlow.cs:165:22:165:31 | call to method OutYield : IEnumerable [element] : String | -| GlobalDataFlow.cs:382:41:382:41 | x : String | GlobalDataFlow.cs:384:11:384:11 | access to parameter x : String | -| GlobalDataFlow.cs:382:41:382:41 | x : String | GlobalDataFlow.cs:384:11:384:11 | access to parameter x : String | -| GlobalDataFlow.cs:384:11:384:11 | access to parameter x : String | GlobalDataFlow.cs:54:15:54:15 | x : String | -| GlobalDataFlow.cs:384:11:384:11 | access to parameter x : String | GlobalDataFlow.cs:268:26:268:35 | sinkParam3 : String | -| GlobalDataFlow.cs:387:46:387:46 | x : String | GlobalDataFlow.cs:389:18:389:18 | access to parameter x : String | -| GlobalDataFlow.cs:387:46:387:46 | x : String | GlobalDataFlow.cs:389:18:389:18 | access to parameter x : String | -| GlobalDataFlow.cs:387:46:387:46 | x : String | GlobalDataFlow.cs:389:18:389:18 | access to parameter x : String | -| GlobalDataFlow.cs:389:18:389:18 | access to parameter x : String | GlobalDataFlow.cs:298:26:298:26 | x : String | -| GlobalDataFlow.cs:389:18:389:18 | access to parameter x : String | GlobalDataFlow.cs:298:26:298:26 | x : String | -| GlobalDataFlow.cs:389:18:389:18 | access to parameter x : String | GlobalDataFlow.cs:300:27:300:28 | x0 : String | -| GlobalDataFlow.cs:389:18:389:18 | access to parameter x : String | GlobalDataFlow.cs:389:16:389:19 | delegate call : String | -| GlobalDataFlow.cs:389:18:389:18 | access to parameter x : String | GlobalDataFlow.cs:389:16:389:19 | delegate call : String | -| GlobalDataFlow.cs:389:18:389:18 | access to parameter x : String | GlobalDataFlow.cs:389:16:389:19 | delegate call : String | -| GlobalDataFlow.cs:396:52:396:52 | x : String | GlobalDataFlow.cs:398:11:398:11 | access to parameter x : String | -| GlobalDataFlow.cs:396:52:396:52 | x : String | GlobalDataFlow.cs:398:11:398:11 | access to parameter x : String | -| GlobalDataFlow.cs:396:52:396:52 | x : String | GlobalDataFlow.cs:398:11:398:11 | access to parameter x : String | -| GlobalDataFlow.cs:398:11:398:11 | access to parameter x : String | GlobalDataFlow.cs:57:37:57:37 | x : String | -| GlobalDataFlow.cs:398:11:398:11 | access to parameter x : String | GlobalDataFlow.cs:278:26:278:35 | sinkParam5 : String | -| GlobalDataFlow.cs:398:11:398:11 | access to parameter x : String | GlobalDataFlow.cs:283:26:283:35 | sinkParam6 : String | -| GlobalDataFlow.cs:401:39:401:45 | tainted : String | GlobalDataFlow.cs:404:15:404:20 | access to local variable sink11 | -| GlobalDataFlow.cs:401:39:401:45 | tainted : String | GlobalDataFlow.cs:405:16:405:21 | access to local variable sink11 : String | -| GlobalDataFlow.cs:405:16:405:21 | access to local variable sink11 : String | GlobalDataFlow.cs:167:22:167:43 | call to method TaintedParam : String | -| GlobalDataFlow.cs:427:9:427:11 | value : String | GlobalDataFlow.cs:427:41:427:46 | access to local variable sink20 | -| GlobalDataFlow.cs:438:22:438:35 | "taint source" : String | GlobalDataFlow.cs:201:22:201:32 | access to property OutProperty : String | -| GlobalDataFlow.cs:457:20:457:49 | call to method Run : Task [property Result] : String | GlobalDataFlow.cs:458:25:458:28 | access to local variable task : Task [property Result] : String | -| GlobalDataFlow.cs:457:35:457:48 | "taint source" : String | GlobalDataFlow.cs:457:20:457:49 | call to method Run : Task [property Result] : String | -| GlobalDataFlow.cs:458:25:458:28 | access to local variable task : Task [property Result] : String | GlobalDataFlow.cs:458:25:458:50 | call to method ConfigureAwait : ConfiguredTaskAwaitable [synthetic m_configuredTaskAwaiter, synthetic m_task_configured_task_awaitable, property Result] : String | -| GlobalDataFlow.cs:458:25:458:50 | call to method ConfigureAwait : ConfiguredTaskAwaitable [synthetic m_configuredTaskAwaiter, synthetic m_task_configured_task_awaitable, property Result] : String | GlobalDataFlow.cs:459:23:459:31 | access to local variable awaitable : ConfiguredTaskAwaitable [synthetic m_configuredTaskAwaiter, synthetic m_task_configured_task_awaitable, property Result] : String | -| GlobalDataFlow.cs:459:23:459:31 | access to local variable awaitable : ConfiguredTaskAwaitable [synthetic m_configuredTaskAwaiter, synthetic m_task_configured_task_awaitable, property Result] : String | GlobalDataFlow.cs:459:23:459:44 | call to method GetAwaiter : ConfiguredTaskAwaitable.ConfiguredTaskAwaiter [synthetic m_task_configured_task_awaitable, property Result] : String | -| GlobalDataFlow.cs:459:23:459:44 | call to method GetAwaiter : ConfiguredTaskAwaitable.ConfiguredTaskAwaiter [synthetic m_task_configured_task_awaitable, property Result] : String | GlobalDataFlow.cs:460:22:460:28 | access to local variable awaiter : ConfiguredTaskAwaitable.ConfiguredTaskAwaiter [synthetic m_task_configured_task_awaitable, property Result] : String | -| GlobalDataFlow.cs:460:22:460:28 | access to local variable awaiter : ConfiguredTaskAwaitable.ConfiguredTaskAwaiter [synthetic m_task_configured_task_awaitable, property Result] : String | GlobalDataFlow.cs:460:22:460:40 | call to method GetResult : String | -| GlobalDataFlow.cs:460:22:460:40 | call to method GetResult : String | GlobalDataFlow.cs:461:15:461:20 | access to local variable sink45 | -| GlobalDataFlow.cs:466:53:466:55 | arg : String | GlobalDataFlow.cs:470:15:470:17 | access to parameter arg : String | -| GlobalDataFlow.cs:469:21:469:21 | s : String | GlobalDataFlow.cs:469:32:469:32 | access to parameter s | -| GlobalDataFlow.cs:470:15:470:17 | access to parameter arg : String | GlobalDataFlow.cs:469:21:469:21 | s : String | -| GlobalDataFlow.cs:473:28:473:41 | "taint source" : String | GlobalDataFlow.cs:466:53:466:55 | arg : String | -| GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:490:25:490:26 | [post] access to local variable x1 : SimpleClass [field field] : String | -| GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:490:30:490:31 | [post] access to local variable x2 : SimpleClass [field field] : String | -| GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:497:31:497:32 | [post] access to local variable y1 : SimpleClass [field field] : String | -| GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:497:36:497:37 | [post] access to local variable y2 : SimpleClass [field field] : String | -| GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:497:42:497:43 | [post] access to local variable y3 : SimpleClass [field field] : String | -| GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:508:33:508:33 | [post] access to local variable x : SubSimpleClass [field field] : String | -| GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:515:20:515:20 | [post] access to parameter x : SimpleClass [field field] : String | -| GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:515:25:515:25 | [post] access to local variable y : SimpleClass [field field] : String | -| GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:527:20:527:20 | [post] access to local variable x : SimpleClass [field field] : String | -| GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:528:20:528:20 | [post] access to local variable y : SimpleClass [field field] : String | -| GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:529:18:529:18 | [post] access to local variable z : SimpleClass [field field] : String | -| GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:538:20:538:21 | [post] access to parameter sc : SimpleClass [field field] : String | -| GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:546:24:546:24 | [post] access to local variable x : SimpleClass [field field] : String | -| GlobalDataFlow.cs:483:20:483:33 | "taint source" : String | GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | -| GlobalDataFlow.cs:490:25:490:26 | [post] access to local variable x1 : SimpleClass [field field] : String | GlobalDataFlow.cs:491:15:491:16 | access to local variable x1 : SimpleClass [field field] : String | -| GlobalDataFlow.cs:490:30:490:31 | [post] access to local variable x2 : SimpleClass [field field] : String | GlobalDataFlow.cs:492:15:492:16 | access to local variable x2 : SimpleClass [field field] : String | -| GlobalDataFlow.cs:491:15:491:16 | access to local variable x1 : SimpleClass [field field] : String | GlobalDataFlow.cs:491:15:491:22 | access to field field | -| GlobalDataFlow.cs:492:15:492:16 | access to local variable x2 : SimpleClass [field field] : String | GlobalDataFlow.cs:492:15:492:22 | access to field field | -| GlobalDataFlow.cs:497:31:497:32 | [post] access to local variable y1 : SimpleClass [field field] : String | GlobalDataFlow.cs:498:15:498:16 | access to local variable y1 : SimpleClass [field field] : String | -| GlobalDataFlow.cs:497:36:497:37 | [post] access to local variable y2 : SimpleClass [field field] : String | GlobalDataFlow.cs:499:15:499:16 | access to local variable y2 : SimpleClass [field field] : String | -| GlobalDataFlow.cs:497:42:497:43 | [post] access to local variable y3 : SimpleClass [field field] : String | GlobalDataFlow.cs:500:15:500:16 | access to local variable y3 : SimpleClass [field field] : String | -| GlobalDataFlow.cs:498:15:498:16 | access to local variable y1 : SimpleClass [field field] : String | GlobalDataFlow.cs:498:15:498:22 | access to field field | -| GlobalDataFlow.cs:499:15:499:16 | access to local variable y2 : SimpleClass [field field] : String | GlobalDataFlow.cs:499:15:499:22 | access to field field | -| GlobalDataFlow.cs:500:15:500:16 | access to local variable y3 : SimpleClass [field field] : String | GlobalDataFlow.cs:500:15:500:22 | access to field field | -| GlobalDataFlow.cs:508:33:508:33 | [post] access to local variable x : SubSimpleClass [field field] : String | GlobalDataFlow.cs:509:15:509:15 | access to local variable x : SubSimpleClass [field field] : String | -| GlobalDataFlow.cs:509:15:509:15 | access to local variable x : SubSimpleClass [field field] : String | GlobalDataFlow.cs:509:15:509:21 | access to field field | -| GlobalDataFlow.cs:515:20:515:20 | [post] access to parameter x : SimpleClass [field field] : String | GlobalDataFlow.cs:516:15:516:15 | access to parameter x : SimpleClass [field field] : String | -| GlobalDataFlow.cs:515:25:515:25 | [post] access to local variable y : SimpleClass [field field] : String | GlobalDataFlow.cs:517:15:517:15 | access to local variable y : SimpleClass [field field] : String | -| GlobalDataFlow.cs:516:15:516:15 | access to parameter x : SimpleClass [field field] : String | GlobalDataFlow.cs:516:15:516:21 | access to field field | -| GlobalDataFlow.cs:517:15:517:15 | access to local variable y : SimpleClass [field field] : String | GlobalDataFlow.cs:517:15:517:21 | access to field field | -| GlobalDataFlow.cs:527:20:527:20 | [post] access to local variable x : SimpleClass [field field] : String | GlobalDataFlow.cs:531:15:531:15 | access to local variable x : SimpleClass [field field] : String | -| GlobalDataFlow.cs:528:20:528:20 | [post] access to local variable y : SimpleClass [field field] : String | GlobalDataFlow.cs:532:15:532:15 | access to local variable y : SimpleClass [field field] : String | -| GlobalDataFlow.cs:529:18:529:18 | [post] access to local variable z : SimpleClass [field field] : String | GlobalDataFlow.cs:533:15:533:15 | access to local variable z : SimpleClass [field field] : String | -| GlobalDataFlow.cs:531:15:531:15 | access to local variable x : SimpleClass [field field] : String | GlobalDataFlow.cs:531:15:531:21 | access to field field | -| GlobalDataFlow.cs:532:15:532:15 | access to local variable y : SimpleClass [field field] : String | GlobalDataFlow.cs:532:15:532:21 | access to field field | -| GlobalDataFlow.cs:533:15:533:15 | access to local variable z : SimpleClass [field field] : String | GlobalDataFlow.cs:533:15:533:21 | access to field field | -| GlobalDataFlow.cs:538:20:538:21 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:539:15:539:16 | access to parameter sc : SimpleClass [field field] : String | -| GlobalDataFlow.cs:539:15:539:16 | access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:539:15:539:22 | access to field field | -| GlobalDataFlow.cs:546:24:546:24 | [post] access to local variable x : SimpleClass [field field] : String | GlobalDataFlow.cs:547:15:547:15 | access to local variable x : SimpleClass [field field] : String | -| GlobalDataFlow.cs:547:15:547:15 | access to local variable x : SimpleClass [field field] : String | GlobalDataFlow.cs:547:15:547:21 | access to field field | -| GlobalDataFlow.cs:553:71:553:71 | e : null [element] : String | GlobalDataFlow.cs:556:27:556:27 | access to parameter e : null [element] : String | -| GlobalDataFlow.cs:556:22:556:22 | SSA def(x) : String | GlobalDataFlow.cs:558:46:558:46 | access to local variable x : String | -| GlobalDataFlow.cs:556:27:556:27 | access to parameter e : null [element] : String | GlobalDataFlow.cs:556:22:556:22 | SSA def(x) : String | -| GlobalDataFlow.cs:558:46:558:46 | access to local variable x : String | GlobalDataFlow.cs:81:79:81:79 | x : String | -| GlobalDataFlow.cs:558:46:558:46 | access to local variable x : String | GlobalDataFlow.cs:558:44:558:47 | delegate call : String | -| Splitting.cs:3:28:3:34 | tainted : String | Splitting.cs:8:24:8:30 | [b (line 3): false] access to parameter tainted : String | -| Splitting.cs:3:28:3:34 | tainted : String | Splitting.cs:8:24:8:30 | [b (line 3): true] access to parameter tainted : String | -| Splitting.cs:8:17:8:31 | [b (line 3): false] call to method Return : String | Splitting.cs:9:15:9:15 | [b (line 3): false] access to local variable x | -| Splitting.cs:8:17:8:31 | [b (line 3): true] call to method Return : String | Splitting.cs:9:15:9:15 | [b (line 3): true] access to local variable x | -| Splitting.cs:8:17:8:31 | [b (line 3): true] call to method Return : String | Splitting.cs:11:19:11:19 | access to local variable x | -| Splitting.cs:8:24:8:30 | [b (line 3): false] access to parameter tainted : String | Splitting.cs:8:17:8:31 | [b (line 3): false] call to method Return : String | -| Splitting.cs:8:24:8:30 | [b (line 3): false] access to parameter tainted : String | Splitting.cs:16:26:16:26 | x : String | -| Splitting.cs:8:24:8:30 | [b (line 3): true] access to parameter tainted : String | Splitting.cs:8:17:8:31 | [b (line 3): true] call to method Return : String | -| Splitting.cs:8:24:8:30 | [b (line 3): true] access to parameter tainted : String | Splitting.cs:16:26:16:26 | x : String | -| Splitting.cs:16:26:16:26 | x : String | Splitting.cs:16:32:16:32 | access to parameter x : String | -| Splitting.cs:18:24:18:24 | s : String | Splitting.cs:20:29:20:29 | access to parameter s : String | -| Splitting.cs:20:29:20:29 | access to parameter s : String | Splitting.cs:16:26:16:26 | x : String | -| Splitting.cs:20:29:20:29 | access to parameter s : String | Splitting.cs:20:22:20:30 | call to method Return : String | -| Splitting.cs:21:9:21:11 | value : String | Splitting.cs:21:28:21:32 | access to parameter value : String | -| Splitting.cs:21:28:21:32 | access to parameter value : String | Splitting.cs:16:26:16:26 | x : String | -| Splitting.cs:21:28:21:32 | access to parameter value : String | Splitting.cs:21:21:21:33 | call to method Return | -| Splitting.cs:24:28:24:34 | tainted : String | Splitting.cs:30:17:30:23 | [b (line 24): false] access to parameter tainted : String | -| Splitting.cs:24:28:24:34 | tainted : String | Splitting.cs:30:17:30:23 | [b (line 24): true] access to parameter tainted : String | -| Splitting.cs:24:28:24:34 | tainted : String | Splitting.cs:31:19:31:25 | [b (line 24): false] access to parameter tainted : String | -| Splitting.cs:24:28:24:34 | tainted : String | Splitting.cs:31:19:31:25 | [b (line 24): true] access to parameter tainted : String | -| Splitting.cs:30:17:30:23 | [b (line 24): false] access to parameter tainted : String | Splitting.cs:21:9:21:11 | value : String | -| Splitting.cs:30:17:30:23 | [b (line 24): true] access to parameter tainted : String | Splitting.cs:21:9:21:11 | value : String | -| Splitting.cs:31:17:31:26 | [b (line 24): false] dynamic access to element : String | Splitting.cs:32:15:32:15 | [b (line 24): false] access to local variable x | -| Splitting.cs:31:17:31:26 | [b (line 24): true] dynamic access to element : String | Splitting.cs:32:15:32:15 | [b (line 24): true] access to local variable x | -| Splitting.cs:31:17:31:26 | [b (line 24): true] dynamic access to element : String | Splitting.cs:34:19:34:19 | access to local variable x | -| Splitting.cs:31:19:31:25 | [b (line 24): false] access to parameter tainted : String | Splitting.cs:18:24:18:24 | s : String | -| Splitting.cs:31:19:31:25 | [b (line 24): false] access to parameter tainted : String | Splitting.cs:31:17:31:26 | [b (line 24): false] dynamic access to element : String | -| Splitting.cs:31:19:31:25 | [b (line 24): true] access to parameter tainted : String | Splitting.cs:18:24:18:24 | s : String | -| Splitting.cs:31:19:31:25 | [b (line 24): true] access to parameter tainted : String | Splitting.cs:31:17:31:26 | [b (line 24): true] dynamic access to element : String | -| Splitting.cs:39:21:39:34 | [b (line 37): true] "taint source" : String | Splitting.cs:41:19:41:19 | access to local variable s | -| Splitting.cs:48:36:48:49 | "taint source" : String | Splitting.cs:50:19:50:19 | access to local variable s | -| Splitting.cs:48:36:48:49 | "taint source" : String | Splitting.cs:52:19:52:19 | access to local variable s | +| Capture.cs:7:20:7:26 | tainted : String | Capture.cs:12:19:12:24 | access to local variable sink27 | provenance | | +| Capture.cs:7:20:7:26 | tainted : String | Capture.cs:21:23:21:28 | access to local variable sink28 | provenance | | +| Capture.cs:7:20:7:26 | tainted : String | Capture.cs:30:19:30:24 | access to local variable sink29 | provenance | | +| Capture.cs:7:20:7:26 | tainted : String | Capture.cs:61:36:61:42 | access to parameter tainted : String | provenance | | +| Capture.cs:50:50:50:55 | sink39 : String | Capture.cs:57:27:57:32 | access to parameter sink39 | provenance | | +| Capture.cs:61:36:61:42 | access to parameter tainted : String | Capture.cs:50:50:50:55 | sink39 : String | provenance | | +| Capture.cs:69:13:69:35 | SSA def(sink30) : String | Capture.cs:72:15:72:20 | access to local variable sink30 | provenance | | +| Capture.cs:69:22:69:35 | "taint source" : String | Capture.cs:69:13:69:35 | SSA def(sink30) : String | provenance | | +| Capture.cs:79:17:79:39 | SSA def(sink31) : String | Capture.cs:84:15:84:20 | access to local variable sink31 | provenance | | +| Capture.cs:79:26:79:39 | "taint source" : String | Capture.cs:79:17:79:39 | SSA def(sink31) : String | provenance | | +| Capture.cs:89:13:89:35 | SSA def(sink32) : String | Capture.cs:93:15:93:20 | access to local variable sink32 | provenance | | +| Capture.cs:89:22:89:35 | "taint source" : String | Capture.cs:89:13:89:35 | SSA def(sink32) : String | provenance | | +| Capture.cs:115:17:115:39 | SSA def(sink40) : String | Capture.cs:122:15:122:20 | access to local variable sink40 | provenance | | +| Capture.cs:115:26:115:39 | "taint source" : String | Capture.cs:115:17:115:39 | SSA def(sink40) : String | provenance | | +| Capture.cs:125:25:125:31 | tainted : String | Capture.cs:133:15:133:20 | access to local variable sink33 | provenance | | +| Capture.cs:125:25:125:31 | tainted : String | Capture.cs:145:15:145:20 | access to local variable sink34 | provenance | | +| Capture.cs:125:25:125:31 | tainted : String | Capture.cs:154:15:154:20 | access to local variable sink35 | provenance | | +| Capture.cs:125:25:125:31 | tainted : String | Capture.cs:160:22:160:38 | call to local function CaptureThrough4 : String | provenance | | +| Capture.cs:125:25:125:31 | tainted : String | Capture.cs:168:25:168:31 | access to parameter tainted : String | provenance | | +| Capture.cs:125:25:125:31 | tainted : String | Capture.cs:194:25:194:31 | access to parameter tainted : String | provenance | | +| Capture.cs:160:22:160:38 | call to local function CaptureThrough4 : String | Capture.cs:161:15:161:20 | access to local variable sink36 | provenance | | +| Capture.cs:168:25:168:31 | access to parameter tainted : String | Capture.cs:169:15:169:20 | access to local variable sink37 | provenance | | +| Capture.cs:188:26:188:26 | s : String | Capture.cs:191:20:191:22 | call to local function M : String | provenance | | +| Capture.cs:194:22:194:32 | call to local function Id : String | Capture.cs:195:15:195:20 | access to local variable sink38 | provenance | | +| Capture.cs:194:25:194:31 | access to parameter tainted : String | Capture.cs:188:26:188:26 | s : String | provenance | | +| Capture.cs:194:25:194:31 | access to parameter tainted : String | Capture.cs:194:22:194:32 | call to local function Id : String | provenance | | +| GlobalDataFlow.cs:18:27:18:40 | "taint source" : String | GlobalDataFlow.cs:19:15:19:29 | access to field SinkField0 | provenance | | +| GlobalDataFlow.cs:18:27:18:40 | "taint source" : String | GlobalDataFlow.cs:27:15:27:32 | access to property SinkProperty0 | provenance | | +| GlobalDataFlow.cs:18:27:18:40 | "taint source" : String | GlobalDataFlow.cs:27:15:27:32 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:18:27:18:40 | "taint source" : String | GlobalDataFlow.cs:36:13:36:30 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:18:27:18:40 | "taint source" : String | GlobalDataFlow.cs:38:35:38:52 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:18:27:18:40 | "taint source" : String | GlobalDataFlow.cs:46:13:46:30 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:18:27:18:40 | "taint source" : String | GlobalDataFlow.cs:53:20:53:37 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:18:27:18:40 | "taint source" : String | GlobalDataFlow.cs:54:28:54:45 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:18:27:18:40 | "taint source" : String | GlobalDataFlow.cs:55:44:55:61 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:18:27:18:40 | "taint source" : String | GlobalDataFlow.cs:56:28:56:45 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:18:27:18:40 | "taint source" : String | GlobalDataFlow.cs:58:35:58:52 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:18:27:18:40 | "taint source" : String | GlobalDataFlow.cs:65:22:65:39 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:18:27:18:40 | "taint source" : String | GlobalDataFlow.cs:71:28:71:45 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:27:15:27:32 | access to property SinkProperty0 : String | GlobalDataFlow.cs:36:13:36:30 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:27:15:27:32 | access to property SinkProperty0 : String | GlobalDataFlow.cs:38:35:38:52 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:27:15:27:32 | access to property SinkProperty0 : String | GlobalDataFlow.cs:46:13:46:30 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:27:15:27:32 | access to property SinkProperty0 : String | GlobalDataFlow.cs:53:20:53:37 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:27:15:27:32 | access to property SinkProperty0 : String | GlobalDataFlow.cs:54:28:54:45 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:27:15:27:32 | access to property SinkProperty0 : String | GlobalDataFlow.cs:55:44:55:61 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:27:15:27:32 | access to property SinkProperty0 : String | GlobalDataFlow.cs:56:28:56:45 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:27:15:27:32 | access to property SinkProperty0 : String | GlobalDataFlow.cs:58:35:58:52 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:27:15:27:32 | access to property SinkProperty0 : String | GlobalDataFlow.cs:65:22:65:39 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:27:15:27:32 | access to property SinkProperty0 : String | GlobalDataFlow.cs:71:28:71:45 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:36:13:36:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:38:35:38:52 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:36:13:36:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:46:13:46:30 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:36:13:36:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:53:20:53:37 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:36:13:36:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:54:28:54:45 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:36:13:36:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:55:44:55:61 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:36:13:36:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:56:28:56:45 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:36:13:36:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:58:35:58:52 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:36:13:36:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:65:22:65:39 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:36:13:36:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:71:28:71:45 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:36:13:36:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:257:26:257:35 | sinkParam0 : String | provenance | | +| GlobalDataFlow.cs:38:35:38:52 | access to property SinkProperty0 : String | GlobalDataFlow.cs:46:13:46:30 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:38:35:38:52 | access to property SinkProperty0 : String | GlobalDataFlow.cs:53:20:53:37 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:38:35:38:52 | access to property SinkProperty0 : String | GlobalDataFlow.cs:54:28:54:45 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:38:35:38:52 | access to property SinkProperty0 : String | GlobalDataFlow.cs:55:44:55:61 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:38:35:38:52 | access to property SinkProperty0 : String | GlobalDataFlow.cs:56:28:56:45 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:38:35:38:52 | access to property SinkProperty0 : String | GlobalDataFlow.cs:58:35:58:52 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:38:35:38:52 | access to property SinkProperty0 : String | GlobalDataFlow.cs:65:22:65:39 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:38:35:38:52 | access to property SinkProperty0 : String | GlobalDataFlow.cs:71:28:71:45 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:38:35:38:52 | access to property SinkProperty0 : String | GlobalDataFlow.cs:263:26:263:35 | sinkParam1 : String | provenance | | +| GlobalDataFlow.cs:45:30:45:39 | sinkParam2 : String | GlobalDataFlow.cs:45:50:45:59 | access to parameter sinkParam2 | provenance | | +| GlobalDataFlow.cs:46:13:46:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:45:30:45:39 | sinkParam2 : String | provenance | | +| GlobalDataFlow.cs:46:13:46:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:53:20:53:37 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:46:13:46:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:54:28:54:45 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:46:13:46:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:55:44:55:61 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:46:13:46:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:56:28:56:45 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:46:13:46:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:58:35:58:52 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:46:13:46:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:65:22:65:39 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:46:13:46:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:71:28:71:45 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:53:20:53:37 | access to property SinkProperty0 : String | GlobalDataFlow.cs:54:28:54:45 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:53:20:53:37 | access to property SinkProperty0 : String | GlobalDataFlow.cs:55:44:55:61 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:53:20:53:37 | access to property SinkProperty0 : String | GlobalDataFlow.cs:56:28:56:45 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:53:20:53:37 | access to property SinkProperty0 : String | GlobalDataFlow.cs:58:35:58:52 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:53:20:53:37 | access to property SinkProperty0 : String | GlobalDataFlow.cs:65:22:65:39 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:53:20:53:37 | access to property SinkProperty0 : String | GlobalDataFlow.cs:71:28:71:45 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:53:20:53:37 | access to property SinkProperty0 : String | GlobalDataFlow.cs:382:41:382:41 | x : String | provenance | | +| GlobalDataFlow.cs:54:15:54:15 | x : String | GlobalDataFlow.cs:54:24:54:24 | access to parameter x : String | provenance | | +| GlobalDataFlow.cs:54:24:54:24 | access to parameter x : String | GlobalDataFlow.cs:273:26:273:35 | sinkParam4 : String | provenance | | +| GlobalDataFlow.cs:54:28:54:45 | access to property SinkProperty0 : String | GlobalDataFlow.cs:55:44:55:61 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:54:28:54:45 | access to property SinkProperty0 : String | GlobalDataFlow.cs:56:28:56:45 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:54:28:54:45 | access to property SinkProperty0 : String | GlobalDataFlow.cs:58:35:58:52 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:54:28:54:45 | access to property SinkProperty0 : String | GlobalDataFlow.cs:65:22:65:39 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:54:28:54:45 | access to property SinkProperty0 : String | GlobalDataFlow.cs:71:28:71:45 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:54:28:54:45 | access to property SinkProperty0 : String | GlobalDataFlow.cs:382:41:382:41 | x : String | provenance | | +| GlobalDataFlow.cs:55:44:55:61 | access to property SinkProperty0 : String | GlobalDataFlow.cs:56:28:56:45 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:55:44:55:61 | access to property SinkProperty0 : String | GlobalDataFlow.cs:58:35:58:52 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:55:44:55:61 | access to property SinkProperty0 : String | GlobalDataFlow.cs:65:22:65:39 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:55:44:55:61 | access to property SinkProperty0 : String | GlobalDataFlow.cs:71:28:71:45 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:55:44:55:61 | access to property SinkProperty0 : String | GlobalDataFlow.cs:396:52:396:52 | x : String | provenance | | +| GlobalDataFlow.cs:56:28:56:45 | access to property SinkProperty0 : String | GlobalDataFlow.cs:58:35:58:52 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:56:28:56:45 | access to property SinkProperty0 : String | GlobalDataFlow.cs:65:22:65:39 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:56:28:56:45 | access to property SinkProperty0 : String | GlobalDataFlow.cs:71:28:71:45 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:56:28:56:45 | access to property SinkProperty0 : String | GlobalDataFlow.cs:396:52:396:52 | x : String | provenance | | +| GlobalDataFlow.cs:57:37:57:37 | x : String | GlobalDataFlow.cs:57:46:57:46 | access to parameter x : String | provenance | | +| GlobalDataFlow.cs:57:46:57:46 | access to parameter x : String | GlobalDataFlow.cs:288:26:288:35 | sinkParam7 : String | provenance | | +| GlobalDataFlow.cs:58:35:58:52 | access to property SinkProperty0 : String | GlobalDataFlow.cs:65:22:65:39 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:58:35:58:52 | access to property SinkProperty0 : String | GlobalDataFlow.cs:71:28:71:45 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:58:35:58:52 | access to property SinkProperty0 : String | GlobalDataFlow.cs:396:52:396:52 | x : String | provenance | | +| GlobalDataFlow.cs:65:22:65:39 | access to property SinkProperty0 : String | GlobalDataFlow.cs:71:28:71:45 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:65:22:65:39 | access to property SinkProperty0 : String | GlobalDataFlow.cs:427:9:427:11 | value : String | provenance | | +| GlobalDataFlow.cs:71:21:71:46 | call to method Return : String | GlobalDataFlow.cs:72:15:72:19 | access to local variable sink0 | provenance | | +| GlobalDataFlow.cs:71:21:71:46 | call to method Return : String | GlobalDataFlow.cs:73:94:73:98 | access to local variable sink0 : String | provenance | | +| GlobalDataFlow.cs:71:28:71:45 | access to property SinkProperty0 : String | GlobalDataFlow.cs:71:21:71:46 | call to method Return : String | provenance | | +| GlobalDataFlow.cs:71:28:71:45 | access to property SinkProperty0 : String | GlobalDataFlow.cs:298:26:298:26 | x : String | provenance | | +| GlobalDataFlow.cs:73:21:73:101 | (...) ... : String | GlobalDataFlow.cs:74:15:74:19 | access to local variable sink1 | provenance | | +| GlobalDataFlow.cs:73:21:73:101 | (...) ... : String | GlobalDataFlow.cs:76:19:76:23 | access to local variable sink1 : String | provenance | | +| GlobalDataFlow.cs:73:29:73:101 | call to method Invoke : String | GlobalDataFlow.cs:73:21:73:101 | (...) ... : String | provenance | | +| GlobalDataFlow.cs:73:94:73:98 | access to local variable sink0 : String | GlobalDataFlow.cs:73:29:73:101 | call to method Invoke : String | provenance | | +| GlobalDataFlow.cs:73:94:73:98 | access to local variable sink0 : String | GlobalDataFlow.cs:298:26:298:26 | x : String | provenance | | +| GlobalDataFlow.cs:76:19:76:23 | access to local variable sink1 : String | GlobalDataFlow.cs:76:30:76:34 | SSA def(sink2) : String | provenance | | +| GlobalDataFlow.cs:76:19:76:23 | access to local variable sink1 : String | GlobalDataFlow.cs:304:32:304:32 | x : String | provenance | | +| GlobalDataFlow.cs:76:30:76:34 | SSA def(sink2) : String | GlobalDataFlow.cs:77:15:77:19 | access to local variable sink2 | provenance | | +| GlobalDataFlow.cs:76:30:76:34 | SSA def(sink2) : String | GlobalDataFlow.cs:79:19:79:23 | access to local variable sink2 : String | provenance | | +| GlobalDataFlow.cs:79:19:79:23 | access to local variable sink2 : String | GlobalDataFlow.cs:79:30:79:34 | SSA def(sink3) : String | provenance | | +| GlobalDataFlow.cs:79:19:79:23 | access to local variable sink2 : String | GlobalDataFlow.cs:310:32:310:32 | x : String | provenance | | +| GlobalDataFlow.cs:79:30:79:34 | SSA def(sink3) : String | GlobalDataFlow.cs:80:15:80:19 | access to local variable sink3 | provenance | | +| GlobalDataFlow.cs:79:30:79:34 | SSA def(sink3) : String | GlobalDataFlow.cs:81:59:81:63 | access to local variable sink3 : String | provenance | | +| GlobalDataFlow.cs:79:30:79:34 | SSA def(sink3) : String | GlobalDataFlow.cs:139:29:139:33 | access to local variable sink3 : String | provenance | | +| GlobalDataFlow.cs:81:22:81:85 | call to method SelectEven : IEnumerable [element] : String | GlobalDataFlow.cs:81:22:81:93 | call to method First : String | provenance | | +| GlobalDataFlow.cs:81:22:81:93 | call to method First : String | GlobalDataFlow.cs:82:15:82:20 | access to local variable sink13 | provenance | | +| GlobalDataFlow.cs:81:22:81:93 | call to method First : String | GlobalDataFlow.cs:83:59:83:64 | access to local variable sink13 : String | provenance | | +| GlobalDataFlow.cs:81:23:81:65 | (...) ... : null [element] : String | GlobalDataFlow.cs:81:22:81:85 | call to method SelectEven : IEnumerable [element] : String | provenance | | +| GlobalDataFlow.cs:81:23:81:65 | (...) ... : null [element] : String | GlobalDataFlow.cs:553:71:553:71 | e : null [element] : String | provenance | | +| GlobalDataFlow.cs:81:57:81:65 | { ..., ... } : null [element] : String | GlobalDataFlow.cs:81:23:81:65 | (...) ... : null [element] : String | provenance | | +| GlobalDataFlow.cs:81:59:81:63 | access to local variable sink3 : String | GlobalDataFlow.cs:81:57:81:65 | { ..., ... } : null [element] : String | provenance | | +| GlobalDataFlow.cs:81:79:81:79 | x : String | GlobalDataFlow.cs:81:84:81:84 | access to parameter x : String | provenance | | +| GlobalDataFlow.cs:83:22:83:87 | call to method Select : IEnumerable [element] : String | GlobalDataFlow.cs:83:22:83:95 | call to method First : String | provenance | | +| GlobalDataFlow.cs:83:22:83:95 | call to method First : String | GlobalDataFlow.cs:84:15:84:20 | access to local variable sink14 | provenance | | +| GlobalDataFlow.cs:83:22:83:95 | call to method First : String | GlobalDataFlow.cs:85:59:85:64 | access to local variable sink14 : String | provenance | | +| GlobalDataFlow.cs:83:23:83:66 | (...) ... : null [element] : String | GlobalDataFlow.cs:83:22:83:87 | call to method Select : IEnumerable [element] : String | provenance | | +| GlobalDataFlow.cs:83:23:83:66 | (...) ... : null [element] : String | GlobalDataFlow.cs:315:31:315:40 | sinkParam8 : String | provenance | | +| GlobalDataFlow.cs:83:57:83:66 | { ..., ... } : null [element] : String | GlobalDataFlow.cs:83:23:83:66 | (...) ... : null [element] : String | provenance | | +| GlobalDataFlow.cs:83:59:83:64 | access to local variable sink13 : String | GlobalDataFlow.cs:83:57:83:66 | { ..., ... } : null [element] : String | provenance | | +| GlobalDataFlow.cs:85:22:85:128 | call to method Zip : IEnumerable [element] : String | GlobalDataFlow.cs:85:22:85:136 | call to method First : String | provenance | | +| GlobalDataFlow.cs:85:22:85:136 | call to method First : String | GlobalDataFlow.cs:86:15:86:20 | access to local variable sink15 | provenance | | +| GlobalDataFlow.cs:85:22:85:136 | call to method First : String | GlobalDataFlow.cs:87:106:87:111 | access to local variable sink15 : String | provenance | | +| GlobalDataFlow.cs:85:23:85:66 | (...) ... : null [element] : String | GlobalDataFlow.cs:85:22:85:128 | call to method Zip : IEnumerable [element] : String | provenance | | +| GlobalDataFlow.cs:85:57:85:66 | { ..., ... } : null [element] : String | GlobalDataFlow.cs:85:23:85:66 | (...) ... : null [element] : String | provenance | | +| GlobalDataFlow.cs:85:59:85:64 | access to local variable sink14 : String | GlobalDataFlow.cs:85:57:85:66 | { ..., ... } : null [element] : String | provenance | | +| GlobalDataFlow.cs:87:22:87:128 | call to method Zip : IEnumerable [element] : String | GlobalDataFlow.cs:87:22:87:136 | call to method First : String | provenance | | +| GlobalDataFlow.cs:87:22:87:136 | call to method First : String | GlobalDataFlow.cs:88:15:88:20 | access to local variable sink16 | provenance | | +| GlobalDataFlow.cs:87:70:87:113 | (...) ... : null [element] : String | GlobalDataFlow.cs:87:22:87:128 | call to method Zip : IEnumerable [element] : String | provenance | | +| GlobalDataFlow.cs:87:104:87:113 | { ..., ... } : null [element] : String | GlobalDataFlow.cs:87:70:87:113 | (...) ... : null [element] : String | provenance | | +| GlobalDataFlow.cs:87:106:87:111 | access to local variable sink15 : String | GlobalDataFlow.cs:87:104:87:113 | { ..., ... } : null [element] : String | provenance | | +| GlobalDataFlow.cs:138:40:138:40 | x : String | GlobalDataFlow.cs:138:63:138:63 | access to parameter x : String | provenance | | +| GlobalDataFlow.cs:138:63:138:63 | access to parameter x : String | GlobalDataFlow.cs:138:45:138:64 | call to method ApplyFunc : String | provenance | | +| GlobalDataFlow.cs:138:63:138:63 | access to parameter x : String | GlobalDataFlow.cs:387:46:387:46 | x : String | provenance | | +| GlobalDataFlow.cs:139:21:139:34 | delegate call : String | GlobalDataFlow.cs:140:15:140:19 | access to local variable sink4 | provenance | | +| GlobalDataFlow.cs:139:21:139:34 | delegate call : String | GlobalDataFlow.cs:147:39:147:43 | access to local variable sink4 : String | provenance | | +| GlobalDataFlow.cs:139:29:139:33 | access to local variable sink3 : String | GlobalDataFlow.cs:138:40:138:40 | x : String | provenance | | +| GlobalDataFlow.cs:139:29:139:33 | access to local variable sink3 : String | GlobalDataFlow.cs:139:21:139:34 | delegate call : String | provenance | | +| GlobalDataFlow.cs:147:21:147:44 | call to method ApplyFunc : String | GlobalDataFlow.cs:148:15:148:19 | access to local variable sink5 | provenance | | +| GlobalDataFlow.cs:147:39:147:43 | access to local variable sink4 : String | GlobalDataFlow.cs:147:21:147:44 | call to method ApplyFunc : String | provenance | | +| GlobalDataFlow.cs:147:39:147:43 | access to local variable sink4 : String | GlobalDataFlow.cs:387:46:387:46 | x : String | provenance | | +| GlobalDataFlow.cs:157:21:157:25 | call to method Out : String | GlobalDataFlow.cs:158:15:158:19 | access to local variable sink6 | provenance | | +| GlobalDataFlow.cs:160:20:160:24 | SSA def(sink7) : String | GlobalDataFlow.cs:161:15:161:19 | access to local variable sink7 | provenance | | +| GlobalDataFlow.cs:163:20:163:24 | SSA def(sink8) : String | GlobalDataFlow.cs:164:15:164:19 | access to local variable sink8 | provenance | | +| GlobalDataFlow.cs:165:22:165:31 | call to method OutYield : IEnumerable [element] : String | GlobalDataFlow.cs:165:22:165:39 | call to method First : String | provenance | | +| GlobalDataFlow.cs:165:22:165:39 | call to method First : String | GlobalDataFlow.cs:166:15:166:20 | access to local variable sink12 | provenance | | +| GlobalDataFlow.cs:167:22:167:43 | call to method TaintedParam : String | GlobalDataFlow.cs:168:15:168:20 | access to local variable sink23 | provenance | | +| GlobalDataFlow.cs:183:35:183:48 | "taint source" : String | GlobalDataFlow.cs:184:21:184:26 | delegate call : String | provenance | | +| GlobalDataFlow.cs:184:21:184:26 | delegate call : String | GlobalDataFlow.cs:185:15:185:19 | access to local variable sink9 | provenance | | +| GlobalDataFlow.cs:193:22:193:42 | object creation of type Lazy : Lazy [property Value] : String | GlobalDataFlow.cs:193:22:193:48 | access to property Value : String | provenance | | +| GlobalDataFlow.cs:193:22:193:48 | access to property Value : String | GlobalDataFlow.cs:194:15:194:20 | access to local variable sink10 | provenance | | +| GlobalDataFlow.cs:201:22:201:32 | access to property OutProperty : String | GlobalDataFlow.cs:202:15:202:20 | access to local variable sink19 | provenance | | +| GlobalDataFlow.cs:211:38:211:61 | array creation of type String[] : null [element] : String | GlobalDataFlow.cs:211:38:211:75 | call to method AsQueryable : IQueryable [element] : String | provenance | | +| GlobalDataFlow.cs:211:38:211:75 | call to method AsQueryable : IQueryable [element] : String | GlobalDataFlow.cs:216:22:216:28 | access to local variable tainted : IQueryable [element] : String | provenance | | +| GlobalDataFlow.cs:211:38:211:75 | call to method AsQueryable : IQueryable [element] : String | GlobalDataFlow.cs:218:22:218:28 | access to local variable tainted : IQueryable [element] : String | provenance | | +| GlobalDataFlow.cs:211:38:211:75 | call to method AsQueryable : IQueryable [element] : String | GlobalDataFlow.cs:220:22:220:28 | access to local variable tainted : IQueryable [element] : String | provenance | | +| GlobalDataFlow.cs:211:44:211:61 | { ..., ... } : null [element] : String | GlobalDataFlow.cs:211:38:211:61 | array creation of type String[] : null [element] : String | provenance | | +| GlobalDataFlow.cs:211:46:211:59 | "taint source" : String | GlobalDataFlow.cs:211:44:211:61 | { ..., ... } : null [element] : String | provenance | | +| GlobalDataFlow.cs:214:35:214:45 | sinkParam10 : String | GlobalDataFlow.cs:214:58:214:68 | access to parameter sinkParam10 | provenance | | +| GlobalDataFlow.cs:215:71:215:71 | x : String | GlobalDataFlow.cs:215:89:215:89 | access to parameter x : String | provenance | | +| GlobalDataFlow.cs:215:89:215:89 | access to parameter x : String | GlobalDataFlow.cs:321:32:321:41 | sinkParam9 : String | provenance | | +| GlobalDataFlow.cs:216:22:216:28 | access to local variable tainted : IQueryable [element] : String | GlobalDataFlow.cs:214:35:214:45 | sinkParam10 : String | provenance | | +| GlobalDataFlow.cs:216:22:216:28 | access to local variable tainted : IQueryable [element] : String | GlobalDataFlow.cs:216:22:216:39 | call to method Select : IEnumerable [element] : String | provenance | | +| GlobalDataFlow.cs:216:22:216:39 | call to method Select : IEnumerable [element] : String | GlobalDataFlow.cs:216:22:216:47 | call to method First : String | provenance | | +| GlobalDataFlow.cs:216:22:216:47 | call to method First : String | GlobalDataFlow.cs:217:15:217:20 | access to local variable sink24 | provenance | | +| GlobalDataFlow.cs:218:22:218:28 | access to local variable tainted : IQueryable [element] : String | GlobalDataFlow.cs:215:71:215:71 | x : String | provenance | | +| GlobalDataFlow.cs:218:22:218:28 | access to local variable tainted : IQueryable [element] : String | GlobalDataFlow.cs:218:22:218:39 | call to method Select : IQueryable [element] : String | provenance | | +| GlobalDataFlow.cs:218:22:218:39 | call to method Select : IQueryable [element] : String | GlobalDataFlow.cs:218:22:218:47 | call to method First : String | provenance | | +| GlobalDataFlow.cs:218:22:218:47 | call to method First : String | GlobalDataFlow.cs:219:15:219:20 | access to local variable sink25 | provenance | | +| GlobalDataFlow.cs:220:22:220:28 | access to local variable tainted : IQueryable [element] : String | GlobalDataFlow.cs:220:22:220:49 | call to method Select : IEnumerable [element] : String | provenance | | +| GlobalDataFlow.cs:220:22:220:28 | access to local variable tainted : IQueryable [element] : String | GlobalDataFlow.cs:327:32:327:42 | sinkParam11 : String | provenance | | +| GlobalDataFlow.cs:220:22:220:49 | call to method Select : IEnumerable [element] : String | GlobalDataFlow.cs:220:22:220:57 | call to method First : String | provenance | | +| GlobalDataFlow.cs:220:22:220:57 | call to method First : String | GlobalDataFlow.cs:221:15:221:20 | access to local variable sink26 | provenance | | +| GlobalDataFlow.cs:241:20:241:49 | call to method Run : Task [property Result] : String | GlobalDataFlow.cs:242:22:242:25 | access to local variable task : Task [property Result] : String | provenance | | +| GlobalDataFlow.cs:241:20:241:49 | call to method Run : Task [property Result] : String | GlobalDataFlow.cs:244:28:244:31 | access to local variable task : Task [property Result] : String | provenance | | +| GlobalDataFlow.cs:241:35:241:48 | "taint source" : String | GlobalDataFlow.cs:241:20:241:49 | call to method Run : Task [property Result] : String | provenance | | +| GlobalDataFlow.cs:242:22:242:25 | access to local variable task : Task [property Result] : String | GlobalDataFlow.cs:242:22:242:32 | access to property Result : String | provenance | | +| GlobalDataFlow.cs:242:22:242:32 | access to property Result : String | GlobalDataFlow.cs:243:15:243:20 | access to local variable sink41 | provenance | | +| GlobalDataFlow.cs:244:22:244:31 | await ... : String | GlobalDataFlow.cs:245:15:245:20 | access to local variable sink42 | provenance | | +| GlobalDataFlow.cs:244:28:244:31 | access to local variable task : Task [property Result] : String | GlobalDataFlow.cs:244:22:244:31 | await ... : String | provenance | | +| GlobalDataFlow.cs:257:26:257:35 | sinkParam0 : String | GlobalDataFlow.cs:259:16:259:25 | access to parameter sinkParam0 : String | provenance | | +| GlobalDataFlow.cs:257:26:257:35 | sinkParam0 : String | GlobalDataFlow.cs:260:15:260:24 | access to parameter sinkParam0 | provenance | | +| GlobalDataFlow.cs:259:16:259:25 | access to parameter sinkParam0 : String | GlobalDataFlow.cs:257:26:257:35 | sinkParam0 : String | provenance | | +| GlobalDataFlow.cs:263:26:263:35 | sinkParam1 : String | GlobalDataFlow.cs:265:15:265:24 | access to parameter sinkParam1 | provenance | | +| GlobalDataFlow.cs:268:26:268:35 | sinkParam3 : String | GlobalDataFlow.cs:270:15:270:24 | access to parameter sinkParam3 | provenance | | +| GlobalDataFlow.cs:273:26:273:35 | sinkParam4 : String | GlobalDataFlow.cs:275:15:275:24 | access to parameter sinkParam4 | provenance | | +| GlobalDataFlow.cs:278:26:278:35 | sinkParam5 : String | GlobalDataFlow.cs:280:15:280:24 | access to parameter sinkParam5 | provenance | | +| GlobalDataFlow.cs:283:26:283:35 | sinkParam6 : String | GlobalDataFlow.cs:285:15:285:24 | access to parameter sinkParam6 | provenance | | +| GlobalDataFlow.cs:288:26:288:35 | sinkParam7 : String | GlobalDataFlow.cs:290:15:290:24 | access to parameter sinkParam7 | provenance | | +| GlobalDataFlow.cs:298:26:298:26 | x : String | GlobalDataFlow.cs:300:37:300:37 | access to parameter x : String | provenance | | +| GlobalDataFlow.cs:300:17:300:38 | call to method ApplyFunc : String | GlobalDataFlow.cs:301:16:301:41 | ... ? ... : ... : String | provenance | | +| GlobalDataFlow.cs:300:27:300:28 | x0 : String | GlobalDataFlow.cs:300:33:300:34 | access to parameter x0 : String | provenance | | +| GlobalDataFlow.cs:300:37:300:37 | access to parameter x : String | GlobalDataFlow.cs:300:17:300:38 | call to method ApplyFunc : String | provenance | | +| GlobalDataFlow.cs:300:37:300:37 | access to parameter x : String | GlobalDataFlow.cs:387:46:387:46 | x : String | provenance | | +| GlobalDataFlow.cs:304:32:304:32 | x : String | GlobalDataFlow.cs:306:9:306:13 | SSA def(y) : String | provenance | | +| GlobalDataFlow.cs:310:32:310:32 | x : String | GlobalDataFlow.cs:312:9:312:13 | SSA def(y) : String | provenance | | +| GlobalDataFlow.cs:315:31:315:40 | sinkParam8 : String | GlobalDataFlow.cs:317:15:317:24 | access to parameter sinkParam8 | provenance | | +| GlobalDataFlow.cs:321:32:321:41 | sinkParam9 : String | GlobalDataFlow.cs:323:15:323:24 | access to parameter sinkParam9 | provenance | | +| GlobalDataFlow.cs:327:32:327:42 | sinkParam11 : String | GlobalDataFlow.cs:329:15:329:25 | access to parameter sinkParam11 | provenance | | +| GlobalDataFlow.cs:341:16:341:29 | "taint source" : String | GlobalDataFlow.cs:157:21:157:25 | call to method Out : String | provenance | | +| GlobalDataFlow.cs:341:16:341:29 | "taint source" : String | GlobalDataFlow.cs:193:22:193:42 | object creation of type Lazy : Lazy [property Value] : String | provenance | | +| GlobalDataFlow.cs:346:9:346:26 | SSA def(x) : String | GlobalDataFlow.cs:160:20:160:24 | SSA def(sink7) : String | provenance | | +| GlobalDataFlow.cs:346:13:346:26 | "taint source" : String | GlobalDataFlow.cs:346:9:346:26 | SSA def(x) : String | provenance | | +| GlobalDataFlow.cs:351:9:351:26 | SSA def(x) : String | GlobalDataFlow.cs:163:20:163:24 | SSA def(sink8) : String | provenance | | +| GlobalDataFlow.cs:351:13:351:26 | "taint source" : String | GlobalDataFlow.cs:351:9:351:26 | SSA def(x) : String | provenance | | +| GlobalDataFlow.cs:357:22:357:35 | "taint source" : String | GlobalDataFlow.cs:165:22:165:31 | call to method OutYield : IEnumerable [element] : String | provenance | | +| GlobalDataFlow.cs:382:41:382:41 | x : String | GlobalDataFlow.cs:384:11:384:11 | access to parameter x : String | provenance | | +| GlobalDataFlow.cs:382:41:382:41 | x : String | GlobalDataFlow.cs:384:11:384:11 | access to parameter x : String | provenance | | +| GlobalDataFlow.cs:384:11:384:11 | access to parameter x : String | GlobalDataFlow.cs:54:15:54:15 | x : String | provenance | | +| GlobalDataFlow.cs:384:11:384:11 | access to parameter x : String | GlobalDataFlow.cs:268:26:268:35 | sinkParam3 : String | provenance | | +| GlobalDataFlow.cs:387:46:387:46 | x : String | GlobalDataFlow.cs:389:18:389:18 | access to parameter x : String | provenance | | +| GlobalDataFlow.cs:387:46:387:46 | x : String | GlobalDataFlow.cs:389:18:389:18 | access to parameter x : String | provenance | | +| GlobalDataFlow.cs:387:46:387:46 | x : String | GlobalDataFlow.cs:389:18:389:18 | access to parameter x : String | provenance | | +| GlobalDataFlow.cs:389:18:389:18 | access to parameter x : String | GlobalDataFlow.cs:298:26:298:26 | x : String | provenance | | +| GlobalDataFlow.cs:389:18:389:18 | access to parameter x : String | GlobalDataFlow.cs:298:26:298:26 | x : String | provenance | | +| GlobalDataFlow.cs:389:18:389:18 | access to parameter x : String | GlobalDataFlow.cs:300:27:300:28 | x0 : String | provenance | | +| GlobalDataFlow.cs:389:18:389:18 | access to parameter x : String | GlobalDataFlow.cs:389:16:389:19 | delegate call : String | provenance | | +| GlobalDataFlow.cs:389:18:389:18 | access to parameter x : String | GlobalDataFlow.cs:389:16:389:19 | delegate call : String | provenance | | +| GlobalDataFlow.cs:389:18:389:18 | access to parameter x : String | GlobalDataFlow.cs:389:16:389:19 | delegate call : String | provenance | | +| GlobalDataFlow.cs:396:52:396:52 | x : String | GlobalDataFlow.cs:398:11:398:11 | access to parameter x : String | provenance | | +| GlobalDataFlow.cs:396:52:396:52 | x : String | GlobalDataFlow.cs:398:11:398:11 | access to parameter x : String | provenance | | +| GlobalDataFlow.cs:396:52:396:52 | x : String | GlobalDataFlow.cs:398:11:398:11 | access to parameter x : String | provenance | | +| GlobalDataFlow.cs:398:11:398:11 | access to parameter x : String | GlobalDataFlow.cs:57:37:57:37 | x : String | provenance | | +| GlobalDataFlow.cs:398:11:398:11 | access to parameter x : String | GlobalDataFlow.cs:278:26:278:35 | sinkParam5 : String | provenance | | +| GlobalDataFlow.cs:398:11:398:11 | access to parameter x : String | GlobalDataFlow.cs:283:26:283:35 | sinkParam6 : String | provenance | | +| GlobalDataFlow.cs:401:39:401:45 | tainted : String | GlobalDataFlow.cs:404:15:404:20 | access to local variable sink11 | provenance | | +| GlobalDataFlow.cs:401:39:401:45 | tainted : String | GlobalDataFlow.cs:405:16:405:21 | access to local variable sink11 : String | provenance | | +| GlobalDataFlow.cs:405:16:405:21 | access to local variable sink11 : String | GlobalDataFlow.cs:167:22:167:43 | call to method TaintedParam : String | provenance | | +| GlobalDataFlow.cs:427:9:427:11 | value : String | GlobalDataFlow.cs:427:41:427:46 | access to local variable sink20 | provenance | | +| GlobalDataFlow.cs:438:22:438:35 | "taint source" : String | GlobalDataFlow.cs:201:22:201:32 | access to property OutProperty : String | provenance | | +| GlobalDataFlow.cs:457:20:457:49 | call to method Run : Task [property Result] : String | GlobalDataFlow.cs:458:25:458:28 | access to local variable task : Task [property Result] : String | provenance | | +| GlobalDataFlow.cs:457:35:457:48 | "taint source" : String | GlobalDataFlow.cs:457:20:457:49 | call to method Run : Task [property Result] : String | provenance | | +| GlobalDataFlow.cs:458:25:458:28 | access to local variable task : Task [property Result] : String | GlobalDataFlow.cs:458:25:458:50 | call to method ConfigureAwait : ConfiguredTaskAwaitable [synthetic m_configuredTaskAwaiter, synthetic m_task_configured_task_awaitable, property Result] : String | provenance | | +| GlobalDataFlow.cs:458:25:458:50 | call to method ConfigureAwait : ConfiguredTaskAwaitable [synthetic m_configuredTaskAwaiter, synthetic m_task_configured_task_awaitable, property Result] : String | GlobalDataFlow.cs:459:23:459:31 | access to local variable awaitable : ConfiguredTaskAwaitable [synthetic m_configuredTaskAwaiter, synthetic m_task_configured_task_awaitable, property Result] : String | provenance | | +| GlobalDataFlow.cs:459:23:459:31 | access to local variable awaitable : ConfiguredTaskAwaitable [synthetic m_configuredTaskAwaiter, synthetic m_task_configured_task_awaitable, property Result] : String | GlobalDataFlow.cs:459:23:459:44 | call to method GetAwaiter : ConfiguredTaskAwaitable.ConfiguredTaskAwaiter [synthetic m_task_configured_task_awaitable, property Result] : String | provenance | | +| GlobalDataFlow.cs:459:23:459:44 | call to method GetAwaiter : ConfiguredTaskAwaitable.ConfiguredTaskAwaiter [synthetic m_task_configured_task_awaitable, property Result] : String | GlobalDataFlow.cs:460:22:460:28 | access to local variable awaiter : ConfiguredTaskAwaitable.ConfiguredTaskAwaiter [synthetic m_task_configured_task_awaitable, property Result] : String | provenance | | +| GlobalDataFlow.cs:460:22:460:28 | access to local variable awaiter : ConfiguredTaskAwaitable.ConfiguredTaskAwaiter [synthetic m_task_configured_task_awaitable, property Result] : String | GlobalDataFlow.cs:460:22:460:40 | call to method GetResult : String | provenance | | +| GlobalDataFlow.cs:460:22:460:40 | call to method GetResult : String | GlobalDataFlow.cs:461:15:461:20 | access to local variable sink45 | provenance | | +| GlobalDataFlow.cs:466:53:466:55 | arg : String | GlobalDataFlow.cs:470:15:470:17 | access to parameter arg : String | provenance | | +| GlobalDataFlow.cs:469:21:469:21 | s : String | GlobalDataFlow.cs:469:32:469:32 | access to parameter s | provenance | | +| GlobalDataFlow.cs:470:15:470:17 | access to parameter arg : String | GlobalDataFlow.cs:469:21:469:21 | s : String | provenance | | +| GlobalDataFlow.cs:473:28:473:41 | "taint source" : String | GlobalDataFlow.cs:466:53:466:55 | arg : String | provenance | | +| GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:490:25:490:26 | [post] access to local variable x1 : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:490:30:490:31 | [post] access to local variable x2 : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:497:31:497:32 | [post] access to local variable y1 : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:497:36:497:37 | [post] access to local variable y2 : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:497:42:497:43 | [post] access to local variable y3 : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:508:33:508:33 | [post] access to local variable x : SubSimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:515:20:515:20 | [post] access to parameter x : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:515:25:515:25 | [post] access to local variable y : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:527:20:527:20 | [post] access to local variable x : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:528:20:528:20 | [post] access to local variable y : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:529:18:529:18 | [post] access to local variable z : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:538:20:538:21 | [post] access to parameter sc : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:546:24:546:24 | [post] access to local variable x : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:483:20:483:33 | "taint source" : String | GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:490:25:490:26 | [post] access to local variable x1 : SimpleClass [field field] : String | GlobalDataFlow.cs:491:15:491:16 | access to local variable x1 : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:490:30:490:31 | [post] access to local variable x2 : SimpleClass [field field] : String | GlobalDataFlow.cs:492:15:492:16 | access to local variable x2 : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:491:15:491:16 | access to local variable x1 : SimpleClass [field field] : String | GlobalDataFlow.cs:491:15:491:22 | access to field field | provenance | | +| GlobalDataFlow.cs:492:15:492:16 | access to local variable x2 : SimpleClass [field field] : String | GlobalDataFlow.cs:492:15:492:22 | access to field field | provenance | | +| GlobalDataFlow.cs:497:31:497:32 | [post] access to local variable y1 : SimpleClass [field field] : String | GlobalDataFlow.cs:498:15:498:16 | access to local variable y1 : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:497:36:497:37 | [post] access to local variable y2 : SimpleClass [field field] : String | GlobalDataFlow.cs:499:15:499:16 | access to local variable y2 : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:497:42:497:43 | [post] access to local variable y3 : SimpleClass [field field] : String | GlobalDataFlow.cs:500:15:500:16 | access to local variable y3 : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:498:15:498:16 | access to local variable y1 : SimpleClass [field field] : String | GlobalDataFlow.cs:498:15:498:22 | access to field field | provenance | | +| GlobalDataFlow.cs:499:15:499:16 | access to local variable y2 : SimpleClass [field field] : String | GlobalDataFlow.cs:499:15:499:22 | access to field field | provenance | | +| GlobalDataFlow.cs:500:15:500:16 | access to local variable y3 : SimpleClass [field field] : String | GlobalDataFlow.cs:500:15:500:22 | access to field field | provenance | | +| GlobalDataFlow.cs:508:33:508:33 | [post] access to local variable x : SubSimpleClass [field field] : String | GlobalDataFlow.cs:509:15:509:15 | access to local variable x : SubSimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:509:15:509:15 | access to local variable x : SubSimpleClass [field field] : String | GlobalDataFlow.cs:509:15:509:21 | access to field field | provenance | | +| GlobalDataFlow.cs:515:20:515:20 | [post] access to parameter x : SimpleClass [field field] : String | GlobalDataFlow.cs:516:15:516:15 | access to parameter x : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:515:25:515:25 | [post] access to local variable y : SimpleClass [field field] : String | GlobalDataFlow.cs:517:15:517:15 | access to local variable y : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:516:15:516:15 | access to parameter x : SimpleClass [field field] : String | GlobalDataFlow.cs:516:15:516:21 | access to field field | provenance | | +| GlobalDataFlow.cs:517:15:517:15 | access to local variable y : SimpleClass [field field] : String | GlobalDataFlow.cs:517:15:517:21 | access to field field | provenance | | +| GlobalDataFlow.cs:527:20:527:20 | [post] access to local variable x : SimpleClass [field field] : String | GlobalDataFlow.cs:531:15:531:15 | access to local variable x : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:528:20:528:20 | [post] access to local variable y : SimpleClass [field field] : String | GlobalDataFlow.cs:532:15:532:15 | access to local variable y : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:529:18:529:18 | [post] access to local variable z : SimpleClass [field field] : String | GlobalDataFlow.cs:533:15:533:15 | access to local variable z : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:531:15:531:15 | access to local variable x : SimpleClass [field field] : String | GlobalDataFlow.cs:531:15:531:21 | access to field field | provenance | | +| GlobalDataFlow.cs:532:15:532:15 | access to local variable y : SimpleClass [field field] : String | GlobalDataFlow.cs:532:15:532:21 | access to field field | provenance | | +| GlobalDataFlow.cs:533:15:533:15 | access to local variable z : SimpleClass [field field] : String | GlobalDataFlow.cs:533:15:533:21 | access to field field | provenance | | +| GlobalDataFlow.cs:538:20:538:21 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:539:15:539:16 | access to parameter sc : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:539:15:539:16 | access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:539:15:539:22 | access to field field | provenance | | +| GlobalDataFlow.cs:546:24:546:24 | [post] access to local variable x : SimpleClass [field field] : String | GlobalDataFlow.cs:547:15:547:15 | access to local variable x : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:547:15:547:15 | access to local variable x : SimpleClass [field field] : String | GlobalDataFlow.cs:547:15:547:21 | access to field field | provenance | | +| GlobalDataFlow.cs:553:71:553:71 | e : null [element] : String | GlobalDataFlow.cs:556:27:556:27 | access to parameter e : null [element] : String | provenance | | +| GlobalDataFlow.cs:556:22:556:22 | SSA def(x) : String | GlobalDataFlow.cs:558:46:558:46 | access to local variable x : String | provenance | | +| GlobalDataFlow.cs:556:27:556:27 | access to parameter e : null [element] : String | GlobalDataFlow.cs:556:22:556:22 | SSA def(x) : String | provenance | | +| GlobalDataFlow.cs:558:46:558:46 | access to local variable x : String | GlobalDataFlow.cs:81:79:81:79 | x : String | provenance | | +| GlobalDataFlow.cs:558:46:558:46 | access to local variable x : String | GlobalDataFlow.cs:558:44:558:47 | delegate call : String | provenance | | +| Splitting.cs:3:28:3:34 | tainted : String | Splitting.cs:8:24:8:30 | [b (line 3): false] access to parameter tainted : String | provenance | | +| Splitting.cs:3:28:3:34 | tainted : String | Splitting.cs:8:24:8:30 | [b (line 3): true] access to parameter tainted : String | provenance | | +| Splitting.cs:8:17:8:31 | [b (line 3): false] call to method Return : String | Splitting.cs:9:15:9:15 | [b (line 3): false] access to local variable x | provenance | | +| Splitting.cs:8:17:8:31 | [b (line 3): true] call to method Return : String | Splitting.cs:9:15:9:15 | [b (line 3): true] access to local variable x | provenance | | +| Splitting.cs:8:17:8:31 | [b (line 3): true] call to method Return : String | Splitting.cs:11:19:11:19 | access to local variable x | provenance | | +| Splitting.cs:8:24:8:30 | [b (line 3): false] access to parameter tainted : String | Splitting.cs:8:17:8:31 | [b (line 3): false] call to method Return : String | provenance | | +| Splitting.cs:8:24:8:30 | [b (line 3): false] access to parameter tainted : String | Splitting.cs:16:26:16:26 | x : String | provenance | | +| Splitting.cs:8:24:8:30 | [b (line 3): true] access to parameter tainted : String | Splitting.cs:8:17:8:31 | [b (line 3): true] call to method Return : String | provenance | | +| Splitting.cs:8:24:8:30 | [b (line 3): true] access to parameter tainted : String | Splitting.cs:16:26:16:26 | x : String | provenance | | +| Splitting.cs:16:26:16:26 | x : String | Splitting.cs:16:32:16:32 | access to parameter x : String | provenance | | +| Splitting.cs:18:24:18:24 | s : String | Splitting.cs:20:29:20:29 | access to parameter s : String | provenance | | +| Splitting.cs:20:29:20:29 | access to parameter s : String | Splitting.cs:16:26:16:26 | x : String | provenance | | +| Splitting.cs:20:29:20:29 | access to parameter s : String | Splitting.cs:20:22:20:30 | call to method Return : String | provenance | | +| Splitting.cs:21:9:21:11 | value : String | Splitting.cs:21:28:21:32 | access to parameter value : String | provenance | | +| Splitting.cs:21:28:21:32 | access to parameter value : String | Splitting.cs:16:26:16:26 | x : String | provenance | | +| Splitting.cs:21:28:21:32 | access to parameter value : String | Splitting.cs:21:21:21:33 | call to method Return | provenance | | +| Splitting.cs:24:28:24:34 | tainted : String | Splitting.cs:30:17:30:23 | [b (line 24): false] access to parameter tainted : String | provenance | | +| Splitting.cs:24:28:24:34 | tainted : String | Splitting.cs:30:17:30:23 | [b (line 24): true] access to parameter tainted : String | provenance | | +| Splitting.cs:24:28:24:34 | tainted : String | Splitting.cs:31:19:31:25 | [b (line 24): false] access to parameter tainted : String | provenance | | +| Splitting.cs:24:28:24:34 | tainted : String | Splitting.cs:31:19:31:25 | [b (line 24): true] access to parameter tainted : String | provenance | | +| Splitting.cs:30:17:30:23 | [b (line 24): false] access to parameter tainted : String | Splitting.cs:21:9:21:11 | value : String | provenance | | +| Splitting.cs:30:17:30:23 | [b (line 24): true] access to parameter tainted : String | Splitting.cs:21:9:21:11 | value : String | provenance | | +| Splitting.cs:31:17:31:26 | [b (line 24): false] dynamic access to element : String | Splitting.cs:32:15:32:15 | [b (line 24): false] access to local variable x | provenance | | +| Splitting.cs:31:17:31:26 | [b (line 24): true] dynamic access to element : String | Splitting.cs:32:15:32:15 | [b (line 24): true] access to local variable x | provenance | | +| Splitting.cs:31:17:31:26 | [b (line 24): true] dynamic access to element : String | Splitting.cs:34:19:34:19 | access to local variable x | provenance | | +| Splitting.cs:31:19:31:25 | [b (line 24): false] access to parameter tainted : String | Splitting.cs:18:24:18:24 | s : String | provenance | | +| Splitting.cs:31:19:31:25 | [b (line 24): false] access to parameter tainted : String | Splitting.cs:31:17:31:26 | [b (line 24): false] dynamic access to element : String | provenance | | +| Splitting.cs:31:19:31:25 | [b (line 24): true] access to parameter tainted : String | Splitting.cs:18:24:18:24 | s : String | provenance | | +| Splitting.cs:31:19:31:25 | [b (line 24): true] access to parameter tainted : String | Splitting.cs:31:17:31:26 | [b (line 24): true] dynamic access to element : String | provenance | | +| Splitting.cs:39:21:39:34 | [b (line 37): true] "taint source" : String | Splitting.cs:41:19:41:19 | access to local variable s | provenance | | +| Splitting.cs:48:36:48:49 | "taint source" : String | Splitting.cs:50:19:50:19 | access to local variable s | provenance | | +| Splitting.cs:48:36:48:49 | "taint source" : String | Splitting.cs:52:19:52:19 | access to local variable s | provenance | | nodes | Capture.cs:7:20:7:26 | tainted : String | semmle.label | tainted : String | | Capture.cs:12:19:12:24 | access to local variable sink27 | semmle.label | access to local variable sink27 | diff --git a/csharp/ql/test/library-tests/dataflow/global/TaintTrackingPath.expected b/csharp/ql/test/library-tests/dataflow/global/TaintTrackingPath.expected index 8dd706eb671d..ace244f6961c 100644 --- a/csharp/ql/test/library-tests/dataflow/global/TaintTrackingPath.expected +++ b/csharp/ql/test/library-tests/dataflow/global/TaintTrackingPath.expected @@ -1,387 +1,387 @@ edges -| Capture.cs:7:20:7:26 | tainted : String | Capture.cs:12:19:12:24 | access to local variable sink27 | -| Capture.cs:7:20:7:26 | tainted : String | Capture.cs:21:23:21:28 | access to local variable sink28 | -| Capture.cs:7:20:7:26 | tainted : String | Capture.cs:30:19:30:24 | access to local variable sink29 | -| Capture.cs:7:20:7:26 | tainted : String | Capture.cs:61:36:61:42 | access to parameter tainted : String | -| Capture.cs:50:50:50:55 | sink39 : String | Capture.cs:57:27:57:32 | access to parameter sink39 | -| Capture.cs:61:36:61:42 | access to parameter tainted : String | Capture.cs:50:50:50:55 | sink39 : String | -| Capture.cs:69:13:69:35 | SSA def(sink30) : String | Capture.cs:72:15:72:20 | access to local variable sink30 | -| Capture.cs:69:22:69:35 | "taint source" : String | Capture.cs:69:13:69:35 | SSA def(sink30) : String | -| Capture.cs:79:17:79:39 | SSA def(sink31) : String | Capture.cs:84:15:84:20 | access to local variable sink31 | -| Capture.cs:79:26:79:39 | "taint source" : String | Capture.cs:79:17:79:39 | SSA def(sink31) : String | -| Capture.cs:89:13:89:35 | SSA def(sink32) : String | Capture.cs:93:15:93:20 | access to local variable sink32 | -| Capture.cs:89:22:89:35 | "taint source" : String | Capture.cs:89:13:89:35 | SSA def(sink32) : String | -| Capture.cs:115:17:115:39 | SSA def(sink40) : String | Capture.cs:122:15:122:20 | access to local variable sink40 | -| Capture.cs:115:26:115:39 | "taint source" : String | Capture.cs:115:17:115:39 | SSA def(sink40) : String | -| Capture.cs:125:25:125:31 | tainted : String | Capture.cs:133:15:133:20 | access to local variable sink33 | -| Capture.cs:125:25:125:31 | tainted : String | Capture.cs:145:15:145:20 | access to local variable sink34 | -| Capture.cs:125:25:125:31 | tainted : String | Capture.cs:154:15:154:20 | access to local variable sink35 | -| Capture.cs:125:25:125:31 | tainted : String | Capture.cs:160:22:160:38 | call to local function CaptureThrough4 : String | -| Capture.cs:125:25:125:31 | tainted : String | Capture.cs:168:25:168:31 | access to parameter tainted : String | -| Capture.cs:125:25:125:31 | tainted : String | Capture.cs:194:25:194:31 | access to parameter tainted : String | -| Capture.cs:160:22:160:38 | call to local function CaptureThrough4 : String | Capture.cs:161:15:161:20 | access to local variable sink36 | -| Capture.cs:168:25:168:31 | access to parameter tainted : String | Capture.cs:169:15:169:20 | access to local variable sink37 | -| Capture.cs:188:26:188:26 | s : String | Capture.cs:191:20:191:22 | call to local function M : String | -| Capture.cs:194:22:194:32 | call to local function Id : String | Capture.cs:195:15:195:20 | access to local variable sink38 | -| Capture.cs:194:25:194:31 | access to parameter tainted : String | Capture.cs:188:26:188:26 | s : String | -| Capture.cs:194:25:194:31 | access to parameter tainted : String | Capture.cs:194:22:194:32 | call to local function Id : String | -| GlobalDataFlow.cs:18:27:18:40 | "taint source" : String | GlobalDataFlow.cs:19:15:19:29 | access to field SinkField0 | -| GlobalDataFlow.cs:18:27:18:40 | "taint source" : String | GlobalDataFlow.cs:27:15:27:32 | access to property SinkProperty0 | -| GlobalDataFlow.cs:18:27:18:40 | "taint source" : String | GlobalDataFlow.cs:27:15:27:32 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:18:27:18:40 | "taint source" : String | GlobalDataFlow.cs:36:13:36:30 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:18:27:18:40 | "taint source" : String | GlobalDataFlow.cs:38:35:38:52 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:18:27:18:40 | "taint source" : String | GlobalDataFlow.cs:46:13:46:30 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:18:27:18:40 | "taint source" : String | GlobalDataFlow.cs:53:20:53:37 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:18:27:18:40 | "taint source" : String | GlobalDataFlow.cs:54:28:54:45 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:18:27:18:40 | "taint source" : String | GlobalDataFlow.cs:55:44:55:61 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:18:27:18:40 | "taint source" : String | GlobalDataFlow.cs:56:28:56:45 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:18:27:18:40 | "taint source" : String | GlobalDataFlow.cs:58:35:58:52 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:18:27:18:40 | "taint source" : String | GlobalDataFlow.cs:65:22:65:39 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:18:27:18:40 | "taint source" : String | GlobalDataFlow.cs:71:28:71:45 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:27:15:27:32 | access to property SinkProperty0 : String | GlobalDataFlow.cs:36:13:36:30 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:27:15:27:32 | access to property SinkProperty0 : String | GlobalDataFlow.cs:38:35:38:52 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:27:15:27:32 | access to property SinkProperty0 : String | GlobalDataFlow.cs:46:13:46:30 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:27:15:27:32 | access to property SinkProperty0 : String | GlobalDataFlow.cs:53:20:53:37 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:27:15:27:32 | access to property SinkProperty0 : String | GlobalDataFlow.cs:54:28:54:45 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:27:15:27:32 | access to property SinkProperty0 : String | GlobalDataFlow.cs:55:44:55:61 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:27:15:27:32 | access to property SinkProperty0 : String | GlobalDataFlow.cs:56:28:56:45 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:27:15:27:32 | access to property SinkProperty0 : String | GlobalDataFlow.cs:58:35:58:52 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:27:15:27:32 | access to property SinkProperty0 : String | GlobalDataFlow.cs:65:22:65:39 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:27:15:27:32 | access to property SinkProperty0 : String | GlobalDataFlow.cs:71:28:71:45 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:36:13:36:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:38:35:38:52 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:36:13:36:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:46:13:46:30 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:36:13:36:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:53:20:53:37 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:36:13:36:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:54:28:54:45 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:36:13:36:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:55:44:55:61 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:36:13:36:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:56:28:56:45 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:36:13:36:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:58:35:58:52 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:36:13:36:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:65:22:65:39 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:36:13:36:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:71:28:71:45 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:36:13:36:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:257:26:257:35 | sinkParam0 : String | -| GlobalDataFlow.cs:38:35:38:52 | access to property SinkProperty0 : String | GlobalDataFlow.cs:46:13:46:30 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:38:35:38:52 | access to property SinkProperty0 : String | GlobalDataFlow.cs:53:20:53:37 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:38:35:38:52 | access to property SinkProperty0 : String | GlobalDataFlow.cs:54:28:54:45 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:38:35:38:52 | access to property SinkProperty0 : String | GlobalDataFlow.cs:55:44:55:61 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:38:35:38:52 | access to property SinkProperty0 : String | GlobalDataFlow.cs:56:28:56:45 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:38:35:38:52 | access to property SinkProperty0 : String | GlobalDataFlow.cs:58:35:58:52 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:38:35:38:52 | access to property SinkProperty0 : String | GlobalDataFlow.cs:65:22:65:39 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:38:35:38:52 | access to property SinkProperty0 : String | GlobalDataFlow.cs:71:28:71:45 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:38:35:38:52 | access to property SinkProperty0 : String | GlobalDataFlow.cs:263:26:263:35 | sinkParam1 : String | -| GlobalDataFlow.cs:45:30:45:39 | sinkParam2 : String | GlobalDataFlow.cs:45:50:45:59 | access to parameter sinkParam2 | -| GlobalDataFlow.cs:46:13:46:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:45:30:45:39 | sinkParam2 : String | -| GlobalDataFlow.cs:46:13:46:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:53:20:53:37 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:46:13:46:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:54:28:54:45 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:46:13:46:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:55:44:55:61 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:46:13:46:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:56:28:56:45 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:46:13:46:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:58:35:58:52 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:46:13:46:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:65:22:65:39 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:46:13:46:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:71:28:71:45 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:53:20:53:37 | access to property SinkProperty0 : String | GlobalDataFlow.cs:54:28:54:45 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:53:20:53:37 | access to property SinkProperty0 : String | GlobalDataFlow.cs:55:44:55:61 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:53:20:53:37 | access to property SinkProperty0 : String | GlobalDataFlow.cs:56:28:56:45 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:53:20:53:37 | access to property SinkProperty0 : String | GlobalDataFlow.cs:58:35:58:52 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:53:20:53:37 | access to property SinkProperty0 : String | GlobalDataFlow.cs:65:22:65:39 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:53:20:53:37 | access to property SinkProperty0 : String | GlobalDataFlow.cs:71:28:71:45 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:53:20:53:37 | access to property SinkProperty0 : String | GlobalDataFlow.cs:382:41:382:41 | x : String | -| GlobalDataFlow.cs:54:15:54:15 | x : String | GlobalDataFlow.cs:54:24:54:24 | access to parameter x : String | -| GlobalDataFlow.cs:54:24:54:24 | access to parameter x : String | GlobalDataFlow.cs:273:26:273:35 | sinkParam4 : String | -| GlobalDataFlow.cs:54:28:54:45 | access to property SinkProperty0 : String | GlobalDataFlow.cs:55:44:55:61 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:54:28:54:45 | access to property SinkProperty0 : String | GlobalDataFlow.cs:56:28:56:45 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:54:28:54:45 | access to property SinkProperty0 : String | GlobalDataFlow.cs:58:35:58:52 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:54:28:54:45 | access to property SinkProperty0 : String | GlobalDataFlow.cs:65:22:65:39 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:54:28:54:45 | access to property SinkProperty0 : String | GlobalDataFlow.cs:71:28:71:45 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:54:28:54:45 | access to property SinkProperty0 : String | GlobalDataFlow.cs:382:41:382:41 | x : String | -| GlobalDataFlow.cs:55:44:55:61 | access to property SinkProperty0 : String | GlobalDataFlow.cs:56:28:56:45 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:55:44:55:61 | access to property SinkProperty0 : String | GlobalDataFlow.cs:58:35:58:52 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:55:44:55:61 | access to property SinkProperty0 : String | GlobalDataFlow.cs:65:22:65:39 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:55:44:55:61 | access to property SinkProperty0 : String | GlobalDataFlow.cs:71:28:71:45 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:55:44:55:61 | access to property SinkProperty0 : String | GlobalDataFlow.cs:396:52:396:52 | x : String | -| GlobalDataFlow.cs:56:28:56:45 | access to property SinkProperty0 : String | GlobalDataFlow.cs:58:35:58:52 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:56:28:56:45 | access to property SinkProperty0 : String | GlobalDataFlow.cs:65:22:65:39 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:56:28:56:45 | access to property SinkProperty0 : String | GlobalDataFlow.cs:71:28:71:45 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:56:28:56:45 | access to property SinkProperty0 : String | GlobalDataFlow.cs:396:52:396:52 | x : String | -| GlobalDataFlow.cs:57:37:57:37 | x : String | GlobalDataFlow.cs:57:46:57:46 | access to parameter x : String | -| GlobalDataFlow.cs:57:46:57:46 | access to parameter x : String | GlobalDataFlow.cs:288:26:288:35 | sinkParam7 : String | -| GlobalDataFlow.cs:58:35:58:52 | access to property SinkProperty0 : String | GlobalDataFlow.cs:65:22:65:39 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:58:35:58:52 | access to property SinkProperty0 : String | GlobalDataFlow.cs:71:28:71:45 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:58:35:58:52 | access to property SinkProperty0 : String | GlobalDataFlow.cs:396:52:396:52 | x : String | -| GlobalDataFlow.cs:65:22:65:39 | access to property SinkProperty0 : String | GlobalDataFlow.cs:71:28:71:45 | access to property SinkProperty0 : String | -| GlobalDataFlow.cs:65:22:65:39 | access to property SinkProperty0 : String | GlobalDataFlow.cs:427:9:427:11 | value : String | -| GlobalDataFlow.cs:71:21:71:46 | call to method Return : String | GlobalDataFlow.cs:72:15:72:19 | access to local variable sink0 | -| GlobalDataFlow.cs:71:21:71:46 | call to method Return : String | GlobalDataFlow.cs:73:94:73:98 | access to local variable sink0 : String | -| GlobalDataFlow.cs:71:28:71:45 | access to property SinkProperty0 : String | GlobalDataFlow.cs:71:21:71:46 | call to method Return : String | -| GlobalDataFlow.cs:71:28:71:45 | access to property SinkProperty0 : String | GlobalDataFlow.cs:298:26:298:26 | x : String | -| GlobalDataFlow.cs:73:21:73:101 | (...) ... : String | GlobalDataFlow.cs:74:15:74:19 | access to local variable sink1 | -| GlobalDataFlow.cs:73:21:73:101 | (...) ... : String | GlobalDataFlow.cs:76:19:76:23 | access to local variable sink1 : String | -| GlobalDataFlow.cs:73:29:73:101 | call to method Invoke : String | GlobalDataFlow.cs:73:21:73:101 | (...) ... : String | -| GlobalDataFlow.cs:73:94:73:98 | access to local variable sink0 : String | GlobalDataFlow.cs:73:29:73:101 | call to method Invoke : String | -| GlobalDataFlow.cs:73:94:73:98 | access to local variable sink0 : String | GlobalDataFlow.cs:298:26:298:26 | x : String | -| GlobalDataFlow.cs:76:19:76:23 | access to local variable sink1 : String | GlobalDataFlow.cs:76:30:76:34 | SSA def(sink2) : String | -| GlobalDataFlow.cs:76:19:76:23 | access to local variable sink1 : String | GlobalDataFlow.cs:304:32:304:32 | x : String | -| GlobalDataFlow.cs:76:30:76:34 | SSA def(sink2) : String | GlobalDataFlow.cs:77:15:77:19 | access to local variable sink2 | -| GlobalDataFlow.cs:76:30:76:34 | SSA def(sink2) : String | GlobalDataFlow.cs:79:19:79:23 | access to local variable sink2 : String | -| GlobalDataFlow.cs:79:19:79:23 | access to local variable sink2 : String | GlobalDataFlow.cs:79:30:79:34 | SSA def(sink3) : String | -| GlobalDataFlow.cs:79:19:79:23 | access to local variable sink2 : String | GlobalDataFlow.cs:310:32:310:32 | x : String | -| GlobalDataFlow.cs:79:30:79:34 | SSA def(sink3) : String | GlobalDataFlow.cs:80:15:80:19 | access to local variable sink3 | -| GlobalDataFlow.cs:79:30:79:34 | SSA def(sink3) : String | GlobalDataFlow.cs:81:59:81:63 | access to local variable sink3 : String | -| GlobalDataFlow.cs:79:30:79:34 | SSA def(sink3) : String | GlobalDataFlow.cs:139:29:139:33 | access to local variable sink3 : String | -| GlobalDataFlow.cs:81:22:81:85 | call to method SelectEven : IEnumerable [element] : String | GlobalDataFlow.cs:81:22:81:93 | call to method First : String | -| GlobalDataFlow.cs:81:22:81:93 | call to method First : String | GlobalDataFlow.cs:82:15:82:20 | access to local variable sink13 | -| GlobalDataFlow.cs:81:22:81:93 | call to method First : String | GlobalDataFlow.cs:83:59:83:64 | access to local variable sink13 : String | -| GlobalDataFlow.cs:81:23:81:65 | (...) ... : null [element] : String | GlobalDataFlow.cs:81:22:81:85 | call to method SelectEven : IEnumerable [element] : String | -| GlobalDataFlow.cs:81:23:81:65 | (...) ... : null [element] : String | GlobalDataFlow.cs:553:71:553:71 | e : null [element] : String | -| GlobalDataFlow.cs:81:57:81:65 | { ..., ... } : null [element] : String | GlobalDataFlow.cs:81:23:81:65 | (...) ... : null [element] : String | -| GlobalDataFlow.cs:81:59:81:63 | access to local variable sink3 : String | GlobalDataFlow.cs:81:57:81:65 | { ..., ... } : null [element] : String | -| GlobalDataFlow.cs:81:79:81:79 | x : String | GlobalDataFlow.cs:81:84:81:84 | access to parameter x : String | -| GlobalDataFlow.cs:83:22:83:87 | call to method Select : IEnumerable [element] : String | GlobalDataFlow.cs:83:22:83:95 | call to method First : String | -| GlobalDataFlow.cs:83:22:83:95 | call to method First : String | GlobalDataFlow.cs:84:15:84:20 | access to local variable sink14 | -| GlobalDataFlow.cs:83:22:83:95 | call to method First : String | GlobalDataFlow.cs:85:59:85:64 | access to local variable sink14 : String | -| GlobalDataFlow.cs:83:22:83:95 | call to method First : String | GlobalDataFlow.cs:89:59:89:64 | access to local variable sink14 : String | -| GlobalDataFlow.cs:83:22:83:95 | call to method First : String | GlobalDataFlow.cs:91:75:91:80 | access to local variable sink14 : String | -| GlobalDataFlow.cs:83:23:83:66 | (...) ... : null [element] : String | GlobalDataFlow.cs:83:22:83:87 | call to method Select : IEnumerable [element] : String | -| GlobalDataFlow.cs:83:23:83:66 | (...) ... : null [element] : String | GlobalDataFlow.cs:315:31:315:40 | sinkParam8 : String | -| GlobalDataFlow.cs:83:57:83:66 | { ..., ... } : null [element] : String | GlobalDataFlow.cs:83:23:83:66 | (...) ... : null [element] : String | -| GlobalDataFlow.cs:83:59:83:64 | access to local variable sink13 : String | GlobalDataFlow.cs:83:57:83:66 | { ..., ... } : null [element] : String | -| GlobalDataFlow.cs:85:22:85:128 | call to method Zip : IEnumerable [element] : String | GlobalDataFlow.cs:85:22:85:136 | call to method First : String | -| GlobalDataFlow.cs:85:22:85:136 | call to method First : String | GlobalDataFlow.cs:86:15:86:20 | access to local variable sink15 | -| GlobalDataFlow.cs:85:22:85:136 | call to method First : String | GlobalDataFlow.cs:87:106:87:111 | access to local variable sink15 : String | -| GlobalDataFlow.cs:85:23:85:66 | (...) ... : null [element] : String | GlobalDataFlow.cs:85:22:85:128 | call to method Zip : IEnumerable [element] : String | -| GlobalDataFlow.cs:85:57:85:66 | { ..., ... } : null [element] : String | GlobalDataFlow.cs:85:23:85:66 | (...) ... : null [element] : String | -| GlobalDataFlow.cs:85:59:85:64 | access to local variable sink14 : String | GlobalDataFlow.cs:85:57:85:66 | { ..., ... } : null [element] : String | -| GlobalDataFlow.cs:87:22:87:128 | call to method Zip : IEnumerable [element] : String | GlobalDataFlow.cs:87:22:87:136 | call to method First : String | -| GlobalDataFlow.cs:87:22:87:136 | call to method First : String | GlobalDataFlow.cs:88:15:88:20 | access to local variable sink16 | -| GlobalDataFlow.cs:87:70:87:113 | (...) ... : null [element] : String | GlobalDataFlow.cs:87:22:87:128 | call to method Zip : IEnumerable [element] : String | -| GlobalDataFlow.cs:87:104:87:113 | { ..., ... } : null [element] : String | GlobalDataFlow.cs:87:70:87:113 | (...) ... : null [element] : String | -| GlobalDataFlow.cs:87:106:87:111 | access to local variable sink15 : String | GlobalDataFlow.cs:87:104:87:113 | { ..., ... } : null [element] : String | -| GlobalDataFlow.cs:89:22:89:110 | call to method Aggregate : String | GlobalDataFlow.cs:90:15:90:20 | access to local variable sink17 | -| GlobalDataFlow.cs:89:23:89:66 | (...) ... : null [element] : String | GlobalDataFlow.cs:89:22:89:110 | call to method Aggregate : String | -| GlobalDataFlow.cs:89:57:89:66 | { ..., ... } : null [element] : String | GlobalDataFlow.cs:89:23:89:66 | (...) ... : null [element] : String | -| GlobalDataFlow.cs:89:59:89:64 | access to local variable sink14 : String | GlobalDataFlow.cs:89:57:89:66 | { ..., ... } : null [element] : String | -| GlobalDataFlow.cs:91:22:91:110 | call to method Aggregate : String | GlobalDataFlow.cs:92:15:92:20 | access to local variable sink18 | -| GlobalDataFlow.cs:91:22:91:110 | call to method Aggregate : String | GlobalDataFlow.cs:94:24:94:29 | access to local variable sink18 : String | -| GlobalDataFlow.cs:91:22:91:110 | call to method Aggregate : String | GlobalDataFlow.cs:97:23:97:28 | access to local variable sink18 : String | -| GlobalDataFlow.cs:91:22:91:110 | call to method Aggregate : String | GlobalDataFlow.cs:100:24:100:29 | access to local variable sink18 : String | -| GlobalDataFlow.cs:91:75:91:80 | access to local variable sink14 : String | GlobalDataFlow.cs:91:22:91:110 | call to method Aggregate : String | -| GlobalDataFlow.cs:94:24:94:29 | access to local variable sink18 : String | GlobalDataFlow.cs:94:36:94:41 | SSA def(sink21) : Int32 | -| GlobalDataFlow.cs:94:36:94:41 | SSA def(sink21) : Int32 | GlobalDataFlow.cs:95:15:95:20 | access to local variable sink21 | -| GlobalDataFlow.cs:97:23:97:28 | access to local variable sink18 : String | GlobalDataFlow.cs:97:35:97:40 | SSA def(sink22) : Boolean | -| GlobalDataFlow.cs:97:35:97:40 | SSA def(sink22) : Boolean | GlobalDataFlow.cs:98:15:98:20 | access to local variable sink22 | -| GlobalDataFlow.cs:100:24:100:29 | access to local variable sink18 : String | GlobalDataFlow.cs:100:82:100:88 | SSA def(sink21b) : Int32 | -| GlobalDataFlow.cs:100:82:100:88 | SSA def(sink21b) : Int32 | GlobalDataFlow.cs:101:15:101:21 | access to local variable sink21b | -| GlobalDataFlow.cs:138:40:138:40 | x : String | GlobalDataFlow.cs:138:63:138:63 | access to parameter x : String | -| GlobalDataFlow.cs:138:63:138:63 | access to parameter x : String | GlobalDataFlow.cs:138:45:138:64 | call to method ApplyFunc : String | -| GlobalDataFlow.cs:138:63:138:63 | access to parameter x : String | GlobalDataFlow.cs:387:46:387:46 | x : String | -| GlobalDataFlow.cs:139:21:139:34 | delegate call : String | GlobalDataFlow.cs:140:15:140:19 | access to local variable sink4 | -| GlobalDataFlow.cs:139:21:139:34 | delegate call : String | GlobalDataFlow.cs:147:39:147:43 | access to local variable sink4 : String | -| GlobalDataFlow.cs:139:29:139:33 | access to local variable sink3 : String | GlobalDataFlow.cs:138:40:138:40 | x : String | -| GlobalDataFlow.cs:139:29:139:33 | access to local variable sink3 : String | GlobalDataFlow.cs:139:21:139:34 | delegate call : String | -| GlobalDataFlow.cs:147:21:147:44 | call to method ApplyFunc : String | GlobalDataFlow.cs:148:15:148:19 | access to local variable sink5 | -| GlobalDataFlow.cs:147:39:147:43 | access to local variable sink4 : String | GlobalDataFlow.cs:147:21:147:44 | call to method ApplyFunc : String | -| GlobalDataFlow.cs:147:39:147:43 | access to local variable sink4 : String | GlobalDataFlow.cs:387:46:387:46 | x : String | -| GlobalDataFlow.cs:157:21:157:25 | call to method Out : String | GlobalDataFlow.cs:158:15:158:19 | access to local variable sink6 | -| GlobalDataFlow.cs:160:20:160:24 | SSA def(sink7) : String | GlobalDataFlow.cs:161:15:161:19 | access to local variable sink7 | -| GlobalDataFlow.cs:163:20:163:24 | SSA def(sink8) : String | GlobalDataFlow.cs:164:15:164:19 | access to local variable sink8 | -| GlobalDataFlow.cs:165:22:165:31 | call to method OutYield : IEnumerable [element] : String | GlobalDataFlow.cs:165:22:165:39 | call to method First : String | -| GlobalDataFlow.cs:165:22:165:39 | call to method First : String | GlobalDataFlow.cs:166:15:166:20 | access to local variable sink12 | -| GlobalDataFlow.cs:167:22:167:43 | call to method TaintedParam : String | GlobalDataFlow.cs:168:15:168:20 | access to local variable sink23 | -| GlobalDataFlow.cs:183:35:183:48 | "taint source" : String | GlobalDataFlow.cs:184:21:184:26 | delegate call : String | -| GlobalDataFlow.cs:184:21:184:26 | delegate call : String | GlobalDataFlow.cs:185:15:185:19 | access to local variable sink9 | -| GlobalDataFlow.cs:193:22:193:42 | object creation of type Lazy : Lazy [property Value] : String | GlobalDataFlow.cs:193:22:193:48 | access to property Value : String | -| GlobalDataFlow.cs:193:22:193:48 | access to property Value : String | GlobalDataFlow.cs:194:15:194:20 | access to local variable sink10 | -| GlobalDataFlow.cs:201:22:201:32 | access to property OutProperty : String | GlobalDataFlow.cs:202:15:202:20 | access to local variable sink19 | -| GlobalDataFlow.cs:211:38:211:61 | array creation of type String[] : null [element] : String | GlobalDataFlow.cs:211:38:211:75 | call to method AsQueryable : IQueryable [element] : String | -| GlobalDataFlow.cs:211:38:211:75 | call to method AsQueryable : IQueryable [element] : String | GlobalDataFlow.cs:216:22:216:28 | access to local variable tainted : IQueryable [element] : String | -| GlobalDataFlow.cs:211:38:211:75 | call to method AsQueryable : IQueryable [element] : String | GlobalDataFlow.cs:218:22:218:28 | access to local variable tainted : IQueryable [element] : String | -| GlobalDataFlow.cs:211:38:211:75 | call to method AsQueryable : IQueryable [element] : String | GlobalDataFlow.cs:220:22:220:28 | access to local variable tainted : IQueryable [element] : String | -| GlobalDataFlow.cs:211:44:211:61 | { ..., ... } : null [element] : String | GlobalDataFlow.cs:211:38:211:61 | array creation of type String[] : null [element] : String | -| GlobalDataFlow.cs:211:46:211:59 | "taint source" : String | GlobalDataFlow.cs:211:44:211:61 | { ..., ... } : null [element] : String | -| GlobalDataFlow.cs:214:35:214:45 | sinkParam10 : String | GlobalDataFlow.cs:214:58:214:68 | access to parameter sinkParam10 | -| GlobalDataFlow.cs:215:71:215:71 | x : String | GlobalDataFlow.cs:215:89:215:89 | access to parameter x : String | -| GlobalDataFlow.cs:215:89:215:89 | access to parameter x : String | GlobalDataFlow.cs:321:32:321:41 | sinkParam9 : String | -| GlobalDataFlow.cs:216:22:216:28 | access to local variable tainted : IQueryable [element] : String | GlobalDataFlow.cs:214:35:214:45 | sinkParam10 : String | -| GlobalDataFlow.cs:216:22:216:28 | access to local variable tainted : IQueryable [element] : String | GlobalDataFlow.cs:216:22:216:39 | call to method Select : IEnumerable [element] : String | -| GlobalDataFlow.cs:216:22:216:39 | call to method Select : IEnumerable [element] : String | GlobalDataFlow.cs:216:22:216:47 | call to method First : String | -| GlobalDataFlow.cs:216:22:216:47 | call to method First : String | GlobalDataFlow.cs:217:15:217:20 | access to local variable sink24 | -| GlobalDataFlow.cs:218:22:218:28 | access to local variable tainted : IQueryable [element] : String | GlobalDataFlow.cs:215:71:215:71 | x : String | -| GlobalDataFlow.cs:218:22:218:28 | access to local variable tainted : IQueryable [element] : String | GlobalDataFlow.cs:218:22:218:39 | call to method Select : IQueryable [element] : String | -| GlobalDataFlow.cs:218:22:218:39 | call to method Select : IQueryable [element] : String | GlobalDataFlow.cs:218:22:218:47 | call to method First : String | -| GlobalDataFlow.cs:218:22:218:47 | call to method First : String | GlobalDataFlow.cs:219:15:219:20 | access to local variable sink25 | -| GlobalDataFlow.cs:220:22:220:28 | access to local variable tainted : IQueryable [element] : String | GlobalDataFlow.cs:220:22:220:49 | call to method Select : IEnumerable [element] : String | -| GlobalDataFlow.cs:220:22:220:28 | access to local variable tainted : IQueryable [element] : String | GlobalDataFlow.cs:327:32:327:42 | sinkParam11 : String | -| GlobalDataFlow.cs:220:22:220:49 | call to method Select : IEnumerable [element] : String | GlobalDataFlow.cs:220:22:220:57 | call to method First : String | -| GlobalDataFlow.cs:220:22:220:57 | call to method First : String | GlobalDataFlow.cs:221:15:221:20 | access to local variable sink26 | -| GlobalDataFlow.cs:241:20:241:49 | call to method Run : Task [property Result] : String | GlobalDataFlow.cs:242:22:242:25 | access to local variable task : Task [property Result] : String | -| GlobalDataFlow.cs:241:20:241:49 | call to method Run : Task [property Result] : String | GlobalDataFlow.cs:244:28:244:31 | access to local variable task : Task [property Result] : String | -| GlobalDataFlow.cs:241:35:241:48 | "taint source" : String | GlobalDataFlow.cs:241:20:241:49 | call to method Run : Task [property Result] : String | -| GlobalDataFlow.cs:242:22:242:25 | access to local variable task : Task [property Result] : String | GlobalDataFlow.cs:242:22:242:32 | access to property Result : String | -| GlobalDataFlow.cs:242:22:242:32 | access to property Result : String | GlobalDataFlow.cs:243:15:243:20 | access to local variable sink41 | -| GlobalDataFlow.cs:244:22:244:31 | await ... : String | GlobalDataFlow.cs:245:15:245:20 | access to local variable sink42 | -| GlobalDataFlow.cs:244:28:244:31 | access to local variable task : Task [property Result] : String | GlobalDataFlow.cs:244:22:244:31 | await ... : String | -| GlobalDataFlow.cs:257:26:257:35 | sinkParam0 : String | GlobalDataFlow.cs:259:16:259:25 | access to parameter sinkParam0 : String | -| GlobalDataFlow.cs:257:26:257:35 | sinkParam0 : String | GlobalDataFlow.cs:260:15:260:24 | access to parameter sinkParam0 | -| GlobalDataFlow.cs:259:16:259:25 | access to parameter sinkParam0 : String | GlobalDataFlow.cs:257:26:257:35 | sinkParam0 : String | -| GlobalDataFlow.cs:263:26:263:35 | sinkParam1 : String | GlobalDataFlow.cs:265:15:265:24 | access to parameter sinkParam1 | -| GlobalDataFlow.cs:268:26:268:35 | sinkParam3 : String | GlobalDataFlow.cs:270:15:270:24 | access to parameter sinkParam3 | -| GlobalDataFlow.cs:273:26:273:35 | sinkParam4 : String | GlobalDataFlow.cs:275:15:275:24 | access to parameter sinkParam4 | -| GlobalDataFlow.cs:278:26:278:35 | sinkParam5 : String | GlobalDataFlow.cs:280:15:280:24 | access to parameter sinkParam5 | -| GlobalDataFlow.cs:283:26:283:35 | sinkParam6 : String | GlobalDataFlow.cs:285:15:285:24 | access to parameter sinkParam6 | -| GlobalDataFlow.cs:288:26:288:35 | sinkParam7 : String | GlobalDataFlow.cs:290:15:290:24 | access to parameter sinkParam7 | -| GlobalDataFlow.cs:298:26:298:26 | x : String | GlobalDataFlow.cs:300:37:300:37 | access to parameter x : String | -| GlobalDataFlow.cs:300:17:300:38 | call to method ApplyFunc : String | GlobalDataFlow.cs:301:16:301:41 | ... ? ... : ... : String | -| GlobalDataFlow.cs:300:27:300:28 | x0 : String | GlobalDataFlow.cs:300:33:300:34 | access to parameter x0 : String | -| GlobalDataFlow.cs:300:37:300:37 | access to parameter x : String | GlobalDataFlow.cs:300:17:300:38 | call to method ApplyFunc : String | -| GlobalDataFlow.cs:300:37:300:37 | access to parameter x : String | GlobalDataFlow.cs:387:46:387:46 | x : String | -| GlobalDataFlow.cs:304:32:304:32 | x : String | GlobalDataFlow.cs:306:9:306:13 | SSA def(y) : String | -| GlobalDataFlow.cs:310:32:310:32 | x : String | GlobalDataFlow.cs:312:9:312:13 | SSA def(y) : String | -| GlobalDataFlow.cs:315:31:315:40 | sinkParam8 : String | GlobalDataFlow.cs:317:15:317:24 | access to parameter sinkParam8 | -| GlobalDataFlow.cs:321:32:321:41 | sinkParam9 : String | GlobalDataFlow.cs:323:15:323:24 | access to parameter sinkParam9 | -| GlobalDataFlow.cs:327:32:327:42 | sinkParam11 : String | GlobalDataFlow.cs:329:15:329:25 | access to parameter sinkParam11 | -| GlobalDataFlow.cs:341:16:341:29 | "taint source" : String | GlobalDataFlow.cs:157:21:157:25 | call to method Out : String | -| GlobalDataFlow.cs:341:16:341:29 | "taint source" : String | GlobalDataFlow.cs:193:22:193:42 | object creation of type Lazy : Lazy [property Value] : String | -| GlobalDataFlow.cs:346:9:346:26 | SSA def(x) : String | GlobalDataFlow.cs:160:20:160:24 | SSA def(sink7) : String | -| GlobalDataFlow.cs:346:13:346:26 | "taint source" : String | GlobalDataFlow.cs:346:9:346:26 | SSA def(x) : String | -| GlobalDataFlow.cs:351:9:351:26 | SSA def(x) : String | GlobalDataFlow.cs:163:20:163:24 | SSA def(sink8) : String | -| GlobalDataFlow.cs:351:13:351:26 | "taint source" : String | GlobalDataFlow.cs:351:9:351:26 | SSA def(x) : String | -| GlobalDataFlow.cs:357:22:357:35 | "taint source" : String | GlobalDataFlow.cs:165:22:165:31 | call to method OutYield : IEnumerable [element] : String | -| GlobalDataFlow.cs:382:41:382:41 | x : String | GlobalDataFlow.cs:384:11:384:11 | access to parameter x : String | -| GlobalDataFlow.cs:382:41:382:41 | x : String | GlobalDataFlow.cs:384:11:384:11 | access to parameter x : String | -| GlobalDataFlow.cs:384:11:384:11 | access to parameter x : String | GlobalDataFlow.cs:54:15:54:15 | x : String | -| GlobalDataFlow.cs:384:11:384:11 | access to parameter x : String | GlobalDataFlow.cs:268:26:268:35 | sinkParam3 : String | -| GlobalDataFlow.cs:387:46:387:46 | x : String | GlobalDataFlow.cs:389:18:389:18 | access to parameter x : String | -| GlobalDataFlow.cs:387:46:387:46 | x : String | GlobalDataFlow.cs:389:18:389:18 | access to parameter x : String | -| GlobalDataFlow.cs:387:46:387:46 | x : String | GlobalDataFlow.cs:389:18:389:18 | access to parameter x : String | -| GlobalDataFlow.cs:389:18:389:18 | access to parameter x : String | GlobalDataFlow.cs:298:26:298:26 | x : String | -| GlobalDataFlow.cs:389:18:389:18 | access to parameter x : String | GlobalDataFlow.cs:298:26:298:26 | x : String | -| GlobalDataFlow.cs:389:18:389:18 | access to parameter x : String | GlobalDataFlow.cs:300:27:300:28 | x0 : String | -| GlobalDataFlow.cs:389:18:389:18 | access to parameter x : String | GlobalDataFlow.cs:389:16:389:19 | delegate call : String | -| GlobalDataFlow.cs:389:18:389:18 | access to parameter x : String | GlobalDataFlow.cs:389:16:389:19 | delegate call : String | -| GlobalDataFlow.cs:389:18:389:18 | access to parameter x : String | GlobalDataFlow.cs:389:16:389:19 | delegate call : String | -| GlobalDataFlow.cs:396:52:396:52 | x : String | GlobalDataFlow.cs:398:11:398:11 | access to parameter x : String | -| GlobalDataFlow.cs:396:52:396:52 | x : String | GlobalDataFlow.cs:398:11:398:11 | access to parameter x : String | -| GlobalDataFlow.cs:396:52:396:52 | x : String | GlobalDataFlow.cs:398:11:398:11 | access to parameter x : String | -| GlobalDataFlow.cs:398:11:398:11 | access to parameter x : String | GlobalDataFlow.cs:57:37:57:37 | x : String | -| GlobalDataFlow.cs:398:11:398:11 | access to parameter x : String | GlobalDataFlow.cs:278:26:278:35 | sinkParam5 : String | -| GlobalDataFlow.cs:398:11:398:11 | access to parameter x : String | GlobalDataFlow.cs:283:26:283:35 | sinkParam6 : String | -| GlobalDataFlow.cs:401:39:401:45 | tainted : String | GlobalDataFlow.cs:404:15:404:20 | access to local variable sink11 | -| GlobalDataFlow.cs:401:39:401:45 | tainted : String | GlobalDataFlow.cs:405:16:405:21 | access to local variable sink11 : String | -| GlobalDataFlow.cs:405:16:405:21 | access to local variable sink11 : String | GlobalDataFlow.cs:167:22:167:43 | call to method TaintedParam : String | -| GlobalDataFlow.cs:427:9:427:11 | value : String | GlobalDataFlow.cs:427:41:427:46 | access to local variable sink20 | -| GlobalDataFlow.cs:438:22:438:35 | "taint source" : String | GlobalDataFlow.cs:201:22:201:32 | access to property OutProperty : String | -| GlobalDataFlow.cs:448:22:448:65 | call to method Join : String | GlobalDataFlow.cs:449:15:449:20 | access to local variable sink44 | -| GlobalDataFlow.cs:448:51:448:64 | "taint source" : String | GlobalDataFlow.cs:448:22:448:65 | call to method Join : String | -| GlobalDataFlow.cs:457:20:457:49 | call to method Run : Task [property Result] : String | GlobalDataFlow.cs:458:25:458:28 | access to local variable task : Task [property Result] : String | -| GlobalDataFlow.cs:457:35:457:48 | "taint source" : String | GlobalDataFlow.cs:457:20:457:49 | call to method Run : Task [property Result] : String | -| GlobalDataFlow.cs:458:25:458:28 | access to local variable task : Task [property Result] : String | GlobalDataFlow.cs:458:25:458:50 | call to method ConfigureAwait : ConfiguredTaskAwaitable [synthetic m_configuredTaskAwaiter, synthetic m_task_configured_task_awaitable, property Result] : String | -| GlobalDataFlow.cs:458:25:458:50 | call to method ConfigureAwait : ConfiguredTaskAwaitable [synthetic m_configuredTaskAwaiter, synthetic m_task_configured_task_awaitable, property Result] : String | GlobalDataFlow.cs:459:23:459:31 | access to local variable awaitable : ConfiguredTaskAwaitable [synthetic m_configuredTaskAwaiter, synthetic m_task_configured_task_awaitable, property Result] : String | -| GlobalDataFlow.cs:459:23:459:31 | access to local variable awaitable : ConfiguredTaskAwaitable [synthetic m_configuredTaskAwaiter, synthetic m_task_configured_task_awaitable, property Result] : String | GlobalDataFlow.cs:459:23:459:44 | call to method GetAwaiter : ConfiguredTaskAwaitable.ConfiguredTaskAwaiter [synthetic m_task_configured_task_awaitable, property Result] : String | -| GlobalDataFlow.cs:459:23:459:44 | call to method GetAwaiter : ConfiguredTaskAwaitable.ConfiguredTaskAwaiter [synthetic m_task_configured_task_awaitable, property Result] : String | GlobalDataFlow.cs:460:22:460:28 | access to local variable awaiter : ConfiguredTaskAwaitable.ConfiguredTaskAwaiter [synthetic m_task_configured_task_awaitable, property Result] : String | -| GlobalDataFlow.cs:460:22:460:28 | access to local variable awaiter : ConfiguredTaskAwaitable.ConfiguredTaskAwaiter [synthetic m_task_configured_task_awaitable, property Result] : String | GlobalDataFlow.cs:460:22:460:40 | call to method GetResult : String | -| GlobalDataFlow.cs:460:22:460:40 | call to method GetResult : String | GlobalDataFlow.cs:461:15:461:20 | access to local variable sink45 | -| GlobalDataFlow.cs:466:53:466:55 | arg : String | GlobalDataFlow.cs:470:15:470:17 | access to parameter arg : String | -| GlobalDataFlow.cs:469:21:469:21 | s : String | GlobalDataFlow.cs:469:32:469:32 | access to parameter s | -| GlobalDataFlow.cs:470:15:470:17 | access to parameter arg : String | GlobalDataFlow.cs:469:21:469:21 | s : String | -| GlobalDataFlow.cs:473:28:473:41 | "taint source" : String | GlobalDataFlow.cs:466:53:466:55 | arg : String | -| GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:490:25:490:26 | [post] access to local variable x1 : SimpleClass [field field] : String | -| GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:490:30:490:31 | [post] access to local variable x2 : SimpleClass [field field] : String | -| GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:497:31:497:32 | [post] access to local variable y1 : SimpleClass [field field] : String | -| GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:497:36:497:37 | [post] access to local variable y2 : SimpleClass [field field] : String | -| GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:497:42:497:43 | [post] access to local variable y3 : SimpleClass [field field] : String | -| GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:508:33:508:33 | [post] access to local variable x : SubSimpleClass [field field] : String | -| GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:515:20:515:20 | [post] access to parameter x : SimpleClass [field field] : String | -| GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:515:25:515:25 | [post] access to local variable y : SimpleClass [field field] : String | -| GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:527:20:527:20 | [post] access to local variable x : SimpleClass [field field] : String | -| GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:528:20:528:20 | [post] access to local variable y : SimpleClass [field field] : String | -| GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:529:18:529:18 | [post] access to local variable z : SimpleClass [field field] : String | -| GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:538:20:538:21 | [post] access to parameter sc : SimpleClass [field field] : String | -| GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:546:24:546:24 | [post] access to local variable x : SimpleClass [field field] : String | -| GlobalDataFlow.cs:483:20:483:33 | "taint source" : String | GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | -| GlobalDataFlow.cs:490:25:490:26 | [post] access to local variable x1 : SimpleClass [field field] : String | GlobalDataFlow.cs:491:15:491:16 | access to local variable x1 : SimpleClass [field field] : String | -| GlobalDataFlow.cs:490:30:490:31 | [post] access to local variable x2 : SimpleClass [field field] : String | GlobalDataFlow.cs:492:15:492:16 | access to local variable x2 : SimpleClass [field field] : String | -| GlobalDataFlow.cs:491:15:491:16 | access to local variable x1 : SimpleClass [field field] : String | GlobalDataFlow.cs:491:15:491:22 | access to field field | -| GlobalDataFlow.cs:492:15:492:16 | access to local variable x2 : SimpleClass [field field] : String | GlobalDataFlow.cs:492:15:492:22 | access to field field | -| GlobalDataFlow.cs:497:31:497:32 | [post] access to local variable y1 : SimpleClass [field field] : String | GlobalDataFlow.cs:498:15:498:16 | access to local variable y1 : SimpleClass [field field] : String | -| GlobalDataFlow.cs:497:36:497:37 | [post] access to local variable y2 : SimpleClass [field field] : String | GlobalDataFlow.cs:499:15:499:16 | access to local variable y2 : SimpleClass [field field] : String | -| GlobalDataFlow.cs:497:42:497:43 | [post] access to local variable y3 : SimpleClass [field field] : String | GlobalDataFlow.cs:500:15:500:16 | access to local variable y3 : SimpleClass [field field] : String | -| GlobalDataFlow.cs:498:15:498:16 | access to local variable y1 : SimpleClass [field field] : String | GlobalDataFlow.cs:498:15:498:22 | access to field field | -| GlobalDataFlow.cs:499:15:499:16 | access to local variable y2 : SimpleClass [field field] : String | GlobalDataFlow.cs:499:15:499:22 | access to field field | -| GlobalDataFlow.cs:500:15:500:16 | access to local variable y3 : SimpleClass [field field] : String | GlobalDataFlow.cs:500:15:500:22 | access to field field | -| GlobalDataFlow.cs:508:33:508:33 | [post] access to local variable x : SubSimpleClass [field field] : String | GlobalDataFlow.cs:509:15:509:15 | access to local variable x : SubSimpleClass [field field] : String | -| GlobalDataFlow.cs:509:15:509:15 | access to local variable x : SubSimpleClass [field field] : String | GlobalDataFlow.cs:509:15:509:21 | access to field field | -| GlobalDataFlow.cs:515:20:515:20 | [post] access to parameter x : SimpleClass [field field] : String | GlobalDataFlow.cs:516:15:516:15 | access to parameter x : SimpleClass [field field] : String | -| GlobalDataFlow.cs:515:25:515:25 | [post] access to local variable y : SimpleClass [field field] : String | GlobalDataFlow.cs:517:15:517:15 | access to local variable y : SimpleClass [field field] : String | -| GlobalDataFlow.cs:516:15:516:15 | access to parameter x : SimpleClass [field field] : String | GlobalDataFlow.cs:516:15:516:21 | access to field field | -| GlobalDataFlow.cs:517:15:517:15 | access to local variable y : SimpleClass [field field] : String | GlobalDataFlow.cs:517:15:517:21 | access to field field | -| GlobalDataFlow.cs:527:20:527:20 | [post] access to local variable x : SimpleClass [field field] : String | GlobalDataFlow.cs:531:15:531:15 | access to local variable x : SimpleClass [field field] : String | -| GlobalDataFlow.cs:528:20:528:20 | [post] access to local variable y : SimpleClass [field field] : String | GlobalDataFlow.cs:532:15:532:15 | access to local variable y : SimpleClass [field field] : String | -| GlobalDataFlow.cs:529:18:529:18 | [post] access to local variable z : SimpleClass [field field] : String | GlobalDataFlow.cs:533:15:533:15 | access to local variable z : SimpleClass [field field] : String | -| GlobalDataFlow.cs:531:15:531:15 | access to local variable x : SimpleClass [field field] : String | GlobalDataFlow.cs:531:15:531:21 | access to field field | -| GlobalDataFlow.cs:532:15:532:15 | access to local variable y : SimpleClass [field field] : String | GlobalDataFlow.cs:532:15:532:21 | access to field field | -| GlobalDataFlow.cs:533:15:533:15 | access to local variable z : SimpleClass [field field] : String | GlobalDataFlow.cs:533:15:533:21 | access to field field | -| GlobalDataFlow.cs:538:20:538:21 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:539:15:539:16 | access to parameter sc : SimpleClass [field field] : String | -| GlobalDataFlow.cs:539:15:539:16 | access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:539:15:539:22 | access to field field | -| GlobalDataFlow.cs:546:24:546:24 | [post] access to local variable x : SimpleClass [field field] : String | GlobalDataFlow.cs:547:15:547:15 | access to local variable x : SimpleClass [field field] : String | -| GlobalDataFlow.cs:547:15:547:15 | access to local variable x : SimpleClass [field field] : String | GlobalDataFlow.cs:547:15:547:21 | access to field field | -| GlobalDataFlow.cs:553:71:553:71 | e : null [element] : String | GlobalDataFlow.cs:556:27:556:27 | access to parameter e : null [element] : String | -| GlobalDataFlow.cs:556:22:556:22 | SSA def(x) : String | GlobalDataFlow.cs:558:46:558:46 | access to local variable x : String | -| GlobalDataFlow.cs:556:27:556:27 | access to parameter e : null [element] : String | GlobalDataFlow.cs:556:22:556:22 | SSA def(x) : String | -| GlobalDataFlow.cs:558:46:558:46 | access to local variable x : String | GlobalDataFlow.cs:81:79:81:79 | x : String | -| GlobalDataFlow.cs:558:46:558:46 | access to local variable x : String | GlobalDataFlow.cs:558:44:558:47 | delegate call : String | -| GlobalDataFlowStringBuilder.cs:17:64:17:64 | s : String | GlobalDataFlowStringBuilder.cs:19:19:19:19 | access to parameter s : String | -| GlobalDataFlowStringBuilder.cs:19:19:19:19 | access to parameter s : String | GlobalDataFlowStringBuilder.cs:19:9:19:10 | [post] access to parameter sb : StringBuilder | -| GlobalDataFlowStringBuilder.cs:22:76:22:76 | s : String | GlobalDataFlowStringBuilder.cs:24:19:24:26 | (...) ... : AppendInterpolatedStringHandler | -| GlobalDataFlowStringBuilder.cs:24:19:24:26 | (...) ... : AppendInterpolatedStringHandler | GlobalDataFlowStringBuilder.cs:24:9:24:10 | [post] access to parameter sb : StringBuilder | -| GlobalDataFlowStringBuilder.cs:30:31:30:32 | [post] access to local variable sb : StringBuilder | GlobalDataFlowStringBuilder.cs:31:21:31:22 | access to local variable sb : StringBuilder | -| GlobalDataFlowStringBuilder.cs:30:31:30:32 | [post] access to local variable sb : StringBuilder | GlobalDataFlowStringBuilder.cs:35:20:35:21 | access to local variable sb : StringBuilder | -| GlobalDataFlowStringBuilder.cs:30:31:30:32 | [post] access to local variable sb : StringBuilder | GlobalDataFlowStringBuilder.cs:40:20:40:26 | (...) ... : AppendInterpolatedStringHandler | -| GlobalDataFlowStringBuilder.cs:30:35:30:48 | "taint source" : String | GlobalDataFlowStringBuilder.cs:17:64:17:64 | s : String | -| GlobalDataFlowStringBuilder.cs:30:35:30:48 | "taint source" : String | GlobalDataFlowStringBuilder.cs:30:31:30:32 | [post] access to local variable sb : StringBuilder | -| GlobalDataFlowStringBuilder.cs:31:21:31:22 | access to local variable sb : StringBuilder | GlobalDataFlowStringBuilder.cs:31:21:31:33 | call to method ToString : String | -| GlobalDataFlowStringBuilder.cs:31:21:31:33 | call to method ToString : String | GlobalDataFlowStringBuilder.cs:32:15:32:19 | access to local variable sink0 | -| GlobalDataFlowStringBuilder.cs:35:9:35:11 | [post] access to local variable sb1 : StringBuilder | GlobalDataFlowStringBuilder.cs:36:21:36:23 | access to local variable sb1 : StringBuilder | -| GlobalDataFlowStringBuilder.cs:35:20:35:21 | access to local variable sb : StringBuilder | GlobalDataFlowStringBuilder.cs:35:9:35:11 | [post] access to local variable sb1 : StringBuilder | -| GlobalDataFlowStringBuilder.cs:36:21:36:23 | access to local variable sb1 : StringBuilder | GlobalDataFlowStringBuilder.cs:36:21:36:34 | call to method ToString : String | -| GlobalDataFlowStringBuilder.cs:36:21:36:34 | call to method ToString : String | GlobalDataFlowStringBuilder.cs:37:15:37:19 | access to local variable sink1 | -| GlobalDataFlowStringBuilder.cs:40:9:40:11 | [post] access to local variable sb2 : StringBuilder | GlobalDataFlowStringBuilder.cs:41:21:41:23 | access to local variable sb2 : StringBuilder | -| GlobalDataFlowStringBuilder.cs:40:20:40:26 | (...) ... : AppendInterpolatedStringHandler | GlobalDataFlowStringBuilder.cs:40:9:40:11 | [post] access to local variable sb2 : StringBuilder | -| GlobalDataFlowStringBuilder.cs:41:21:41:23 | access to local variable sb2 : StringBuilder | GlobalDataFlowStringBuilder.cs:41:21:41:34 | call to method ToString : String | -| GlobalDataFlowStringBuilder.cs:41:21:41:34 | call to method ToString : String | GlobalDataFlowStringBuilder.cs:42:15:42:19 | access to local variable sink2 | -| GlobalDataFlowStringBuilder.cs:48:43:48:44 | [post] access to local variable sb : StringBuilder | GlobalDataFlowStringBuilder.cs:49:21:49:22 | access to local variable sb : StringBuilder | -| GlobalDataFlowStringBuilder.cs:48:47:48:60 | "taint source" : String | GlobalDataFlowStringBuilder.cs:22:76:22:76 | s : String | -| GlobalDataFlowStringBuilder.cs:48:47:48:60 | "taint source" : String | GlobalDataFlowStringBuilder.cs:48:43:48:44 | [post] access to local variable sb : StringBuilder | -| GlobalDataFlowStringBuilder.cs:49:21:49:22 | access to local variable sb : StringBuilder | GlobalDataFlowStringBuilder.cs:49:21:49:33 | call to method ToString : String | -| GlobalDataFlowStringBuilder.cs:49:21:49:33 | call to method ToString : String | GlobalDataFlowStringBuilder.cs:50:15:50:19 | access to local variable sink3 | -| Splitting.cs:3:28:3:34 | tainted : String | Splitting.cs:8:24:8:30 | [b (line 3): false] access to parameter tainted : String | -| Splitting.cs:3:28:3:34 | tainted : String | Splitting.cs:8:24:8:30 | [b (line 3): true] access to parameter tainted : String | -| Splitting.cs:8:17:8:31 | [b (line 3): false] call to method Return : String | Splitting.cs:9:15:9:15 | [b (line 3): false] access to local variable x | -| Splitting.cs:8:17:8:31 | [b (line 3): true] call to method Return : String | Splitting.cs:9:15:9:15 | [b (line 3): true] access to local variable x | -| Splitting.cs:8:17:8:31 | [b (line 3): true] call to method Return : String | Splitting.cs:11:19:11:19 | access to local variable x | -| Splitting.cs:8:24:8:30 | [b (line 3): false] access to parameter tainted : String | Splitting.cs:8:17:8:31 | [b (line 3): false] call to method Return : String | -| Splitting.cs:8:24:8:30 | [b (line 3): false] access to parameter tainted : String | Splitting.cs:16:26:16:26 | x : String | -| Splitting.cs:8:24:8:30 | [b (line 3): true] access to parameter tainted : String | Splitting.cs:8:17:8:31 | [b (line 3): true] call to method Return : String | -| Splitting.cs:8:24:8:30 | [b (line 3): true] access to parameter tainted : String | Splitting.cs:16:26:16:26 | x : String | -| Splitting.cs:16:26:16:26 | x : String | Splitting.cs:16:32:16:32 | access to parameter x : String | -| Splitting.cs:18:24:18:24 | s : String | Splitting.cs:20:29:20:29 | access to parameter s : String | -| Splitting.cs:20:29:20:29 | access to parameter s : String | Splitting.cs:16:26:16:26 | x : String | -| Splitting.cs:20:29:20:29 | access to parameter s : String | Splitting.cs:20:22:20:30 | call to method Return : String | -| Splitting.cs:21:9:21:11 | value : String | Splitting.cs:21:28:21:32 | access to parameter value : String | -| Splitting.cs:21:28:21:32 | access to parameter value : String | Splitting.cs:16:26:16:26 | x : String | -| Splitting.cs:21:28:21:32 | access to parameter value : String | Splitting.cs:21:21:21:33 | call to method Return | -| Splitting.cs:24:28:24:34 | tainted : String | Splitting.cs:30:17:30:23 | [b (line 24): false] access to parameter tainted : String | -| Splitting.cs:24:28:24:34 | tainted : String | Splitting.cs:30:17:30:23 | [b (line 24): true] access to parameter tainted : String | -| Splitting.cs:24:28:24:34 | tainted : String | Splitting.cs:31:19:31:25 | [b (line 24): false] access to parameter tainted : String | -| Splitting.cs:24:28:24:34 | tainted : String | Splitting.cs:31:19:31:25 | [b (line 24): true] access to parameter tainted : String | -| Splitting.cs:30:17:30:23 | [b (line 24): false] access to parameter tainted : String | Splitting.cs:21:9:21:11 | value : String | -| Splitting.cs:30:17:30:23 | [b (line 24): true] access to parameter tainted : String | Splitting.cs:21:9:21:11 | value : String | -| Splitting.cs:31:17:31:26 | [b (line 24): false] dynamic access to element : String | Splitting.cs:32:15:32:15 | [b (line 24): false] access to local variable x | -| Splitting.cs:31:17:31:26 | [b (line 24): true] dynamic access to element : String | Splitting.cs:32:15:32:15 | [b (line 24): true] access to local variable x | -| Splitting.cs:31:17:31:26 | [b (line 24): true] dynamic access to element : String | Splitting.cs:34:19:34:19 | access to local variable x | -| Splitting.cs:31:19:31:25 | [b (line 24): false] access to parameter tainted : String | Splitting.cs:18:24:18:24 | s : String | -| Splitting.cs:31:19:31:25 | [b (line 24): false] access to parameter tainted : String | Splitting.cs:31:17:31:26 | [b (line 24): false] dynamic access to element : String | -| Splitting.cs:31:19:31:25 | [b (line 24): true] access to parameter tainted : String | Splitting.cs:18:24:18:24 | s : String | -| Splitting.cs:31:19:31:25 | [b (line 24): true] access to parameter tainted : String | Splitting.cs:31:17:31:26 | [b (line 24): true] dynamic access to element : String | -| Splitting.cs:39:21:39:34 | [b (line 37): true] "taint source" : String | Splitting.cs:41:19:41:19 | access to local variable s | -| Splitting.cs:48:36:48:49 | "taint source" : String | Splitting.cs:50:19:50:19 | access to local variable s | -| Splitting.cs:48:36:48:49 | "taint source" : String | Splitting.cs:52:19:52:19 | access to local variable s | +| Capture.cs:7:20:7:26 | tainted : String | Capture.cs:12:19:12:24 | access to local variable sink27 | provenance | | +| Capture.cs:7:20:7:26 | tainted : String | Capture.cs:21:23:21:28 | access to local variable sink28 | provenance | | +| Capture.cs:7:20:7:26 | tainted : String | Capture.cs:30:19:30:24 | access to local variable sink29 | provenance | | +| Capture.cs:7:20:7:26 | tainted : String | Capture.cs:61:36:61:42 | access to parameter tainted : String | provenance | | +| Capture.cs:50:50:50:55 | sink39 : String | Capture.cs:57:27:57:32 | access to parameter sink39 | provenance | | +| Capture.cs:61:36:61:42 | access to parameter tainted : String | Capture.cs:50:50:50:55 | sink39 : String | provenance | | +| Capture.cs:69:13:69:35 | SSA def(sink30) : String | Capture.cs:72:15:72:20 | access to local variable sink30 | provenance | | +| Capture.cs:69:22:69:35 | "taint source" : String | Capture.cs:69:13:69:35 | SSA def(sink30) : String | provenance | | +| Capture.cs:79:17:79:39 | SSA def(sink31) : String | Capture.cs:84:15:84:20 | access to local variable sink31 | provenance | | +| Capture.cs:79:26:79:39 | "taint source" : String | Capture.cs:79:17:79:39 | SSA def(sink31) : String | provenance | | +| Capture.cs:89:13:89:35 | SSA def(sink32) : String | Capture.cs:93:15:93:20 | access to local variable sink32 | provenance | | +| Capture.cs:89:22:89:35 | "taint source" : String | Capture.cs:89:13:89:35 | SSA def(sink32) : String | provenance | | +| Capture.cs:115:17:115:39 | SSA def(sink40) : String | Capture.cs:122:15:122:20 | access to local variable sink40 | provenance | | +| Capture.cs:115:26:115:39 | "taint source" : String | Capture.cs:115:17:115:39 | SSA def(sink40) : String | provenance | | +| Capture.cs:125:25:125:31 | tainted : String | Capture.cs:133:15:133:20 | access to local variable sink33 | provenance | | +| Capture.cs:125:25:125:31 | tainted : String | Capture.cs:145:15:145:20 | access to local variable sink34 | provenance | | +| Capture.cs:125:25:125:31 | tainted : String | Capture.cs:154:15:154:20 | access to local variable sink35 | provenance | | +| Capture.cs:125:25:125:31 | tainted : String | Capture.cs:160:22:160:38 | call to local function CaptureThrough4 : String | provenance | | +| Capture.cs:125:25:125:31 | tainted : String | Capture.cs:168:25:168:31 | access to parameter tainted : String | provenance | | +| Capture.cs:125:25:125:31 | tainted : String | Capture.cs:194:25:194:31 | access to parameter tainted : String | provenance | | +| Capture.cs:160:22:160:38 | call to local function CaptureThrough4 : String | Capture.cs:161:15:161:20 | access to local variable sink36 | provenance | | +| Capture.cs:168:25:168:31 | access to parameter tainted : String | Capture.cs:169:15:169:20 | access to local variable sink37 | provenance | | +| Capture.cs:188:26:188:26 | s : String | Capture.cs:191:20:191:22 | call to local function M : String | provenance | | +| Capture.cs:194:22:194:32 | call to local function Id : String | Capture.cs:195:15:195:20 | access to local variable sink38 | provenance | | +| Capture.cs:194:25:194:31 | access to parameter tainted : String | Capture.cs:188:26:188:26 | s : String | provenance | | +| Capture.cs:194:25:194:31 | access to parameter tainted : String | Capture.cs:194:22:194:32 | call to local function Id : String | provenance | | +| GlobalDataFlow.cs:18:27:18:40 | "taint source" : String | GlobalDataFlow.cs:19:15:19:29 | access to field SinkField0 | provenance | | +| GlobalDataFlow.cs:18:27:18:40 | "taint source" : String | GlobalDataFlow.cs:27:15:27:32 | access to property SinkProperty0 | provenance | | +| GlobalDataFlow.cs:18:27:18:40 | "taint source" : String | GlobalDataFlow.cs:27:15:27:32 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:18:27:18:40 | "taint source" : String | GlobalDataFlow.cs:36:13:36:30 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:18:27:18:40 | "taint source" : String | GlobalDataFlow.cs:38:35:38:52 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:18:27:18:40 | "taint source" : String | GlobalDataFlow.cs:46:13:46:30 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:18:27:18:40 | "taint source" : String | GlobalDataFlow.cs:53:20:53:37 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:18:27:18:40 | "taint source" : String | GlobalDataFlow.cs:54:28:54:45 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:18:27:18:40 | "taint source" : String | GlobalDataFlow.cs:55:44:55:61 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:18:27:18:40 | "taint source" : String | GlobalDataFlow.cs:56:28:56:45 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:18:27:18:40 | "taint source" : String | GlobalDataFlow.cs:58:35:58:52 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:18:27:18:40 | "taint source" : String | GlobalDataFlow.cs:65:22:65:39 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:18:27:18:40 | "taint source" : String | GlobalDataFlow.cs:71:28:71:45 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:27:15:27:32 | access to property SinkProperty0 : String | GlobalDataFlow.cs:36:13:36:30 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:27:15:27:32 | access to property SinkProperty0 : String | GlobalDataFlow.cs:38:35:38:52 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:27:15:27:32 | access to property SinkProperty0 : String | GlobalDataFlow.cs:46:13:46:30 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:27:15:27:32 | access to property SinkProperty0 : String | GlobalDataFlow.cs:53:20:53:37 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:27:15:27:32 | access to property SinkProperty0 : String | GlobalDataFlow.cs:54:28:54:45 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:27:15:27:32 | access to property SinkProperty0 : String | GlobalDataFlow.cs:55:44:55:61 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:27:15:27:32 | access to property SinkProperty0 : String | GlobalDataFlow.cs:56:28:56:45 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:27:15:27:32 | access to property SinkProperty0 : String | GlobalDataFlow.cs:58:35:58:52 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:27:15:27:32 | access to property SinkProperty0 : String | GlobalDataFlow.cs:65:22:65:39 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:27:15:27:32 | access to property SinkProperty0 : String | GlobalDataFlow.cs:71:28:71:45 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:36:13:36:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:38:35:38:52 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:36:13:36:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:46:13:46:30 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:36:13:36:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:53:20:53:37 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:36:13:36:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:54:28:54:45 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:36:13:36:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:55:44:55:61 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:36:13:36:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:56:28:56:45 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:36:13:36:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:58:35:58:52 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:36:13:36:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:65:22:65:39 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:36:13:36:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:71:28:71:45 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:36:13:36:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:257:26:257:35 | sinkParam0 : String | provenance | | +| GlobalDataFlow.cs:38:35:38:52 | access to property SinkProperty0 : String | GlobalDataFlow.cs:46:13:46:30 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:38:35:38:52 | access to property SinkProperty0 : String | GlobalDataFlow.cs:53:20:53:37 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:38:35:38:52 | access to property SinkProperty0 : String | GlobalDataFlow.cs:54:28:54:45 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:38:35:38:52 | access to property SinkProperty0 : String | GlobalDataFlow.cs:55:44:55:61 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:38:35:38:52 | access to property SinkProperty0 : String | GlobalDataFlow.cs:56:28:56:45 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:38:35:38:52 | access to property SinkProperty0 : String | GlobalDataFlow.cs:58:35:58:52 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:38:35:38:52 | access to property SinkProperty0 : String | GlobalDataFlow.cs:65:22:65:39 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:38:35:38:52 | access to property SinkProperty0 : String | GlobalDataFlow.cs:71:28:71:45 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:38:35:38:52 | access to property SinkProperty0 : String | GlobalDataFlow.cs:263:26:263:35 | sinkParam1 : String | provenance | | +| GlobalDataFlow.cs:45:30:45:39 | sinkParam2 : String | GlobalDataFlow.cs:45:50:45:59 | access to parameter sinkParam2 | provenance | | +| GlobalDataFlow.cs:46:13:46:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:45:30:45:39 | sinkParam2 : String | provenance | | +| GlobalDataFlow.cs:46:13:46:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:53:20:53:37 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:46:13:46:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:54:28:54:45 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:46:13:46:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:55:44:55:61 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:46:13:46:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:56:28:56:45 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:46:13:46:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:58:35:58:52 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:46:13:46:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:65:22:65:39 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:46:13:46:30 | access to property SinkProperty0 : String | GlobalDataFlow.cs:71:28:71:45 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:53:20:53:37 | access to property SinkProperty0 : String | GlobalDataFlow.cs:54:28:54:45 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:53:20:53:37 | access to property SinkProperty0 : String | GlobalDataFlow.cs:55:44:55:61 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:53:20:53:37 | access to property SinkProperty0 : String | GlobalDataFlow.cs:56:28:56:45 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:53:20:53:37 | access to property SinkProperty0 : String | GlobalDataFlow.cs:58:35:58:52 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:53:20:53:37 | access to property SinkProperty0 : String | GlobalDataFlow.cs:65:22:65:39 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:53:20:53:37 | access to property SinkProperty0 : String | GlobalDataFlow.cs:71:28:71:45 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:53:20:53:37 | access to property SinkProperty0 : String | GlobalDataFlow.cs:382:41:382:41 | x : String | provenance | | +| GlobalDataFlow.cs:54:15:54:15 | x : String | GlobalDataFlow.cs:54:24:54:24 | access to parameter x : String | provenance | | +| GlobalDataFlow.cs:54:24:54:24 | access to parameter x : String | GlobalDataFlow.cs:273:26:273:35 | sinkParam4 : String | provenance | | +| GlobalDataFlow.cs:54:28:54:45 | access to property SinkProperty0 : String | GlobalDataFlow.cs:55:44:55:61 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:54:28:54:45 | access to property SinkProperty0 : String | GlobalDataFlow.cs:56:28:56:45 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:54:28:54:45 | access to property SinkProperty0 : String | GlobalDataFlow.cs:58:35:58:52 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:54:28:54:45 | access to property SinkProperty0 : String | GlobalDataFlow.cs:65:22:65:39 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:54:28:54:45 | access to property SinkProperty0 : String | GlobalDataFlow.cs:71:28:71:45 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:54:28:54:45 | access to property SinkProperty0 : String | GlobalDataFlow.cs:382:41:382:41 | x : String | provenance | | +| GlobalDataFlow.cs:55:44:55:61 | access to property SinkProperty0 : String | GlobalDataFlow.cs:56:28:56:45 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:55:44:55:61 | access to property SinkProperty0 : String | GlobalDataFlow.cs:58:35:58:52 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:55:44:55:61 | access to property SinkProperty0 : String | GlobalDataFlow.cs:65:22:65:39 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:55:44:55:61 | access to property SinkProperty0 : String | GlobalDataFlow.cs:71:28:71:45 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:55:44:55:61 | access to property SinkProperty0 : String | GlobalDataFlow.cs:396:52:396:52 | x : String | provenance | | +| GlobalDataFlow.cs:56:28:56:45 | access to property SinkProperty0 : String | GlobalDataFlow.cs:58:35:58:52 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:56:28:56:45 | access to property SinkProperty0 : String | GlobalDataFlow.cs:65:22:65:39 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:56:28:56:45 | access to property SinkProperty0 : String | GlobalDataFlow.cs:71:28:71:45 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:56:28:56:45 | access to property SinkProperty0 : String | GlobalDataFlow.cs:396:52:396:52 | x : String | provenance | | +| GlobalDataFlow.cs:57:37:57:37 | x : String | GlobalDataFlow.cs:57:46:57:46 | access to parameter x : String | provenance | | +| GlobalDataFlow.cs:57:46:57:46 | access to parameter x : String | GlobalDataFlow.cs:288:26:288:35 | sinkParam7 : String | provenance | | +| GlobalDataFlow.cs:58:35:58:52 | access to property SinkProperty0 : String | GlobalDataFlow.cs:65:22:65:39 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:58:35:58:52 | access to property SinkProperty0 : String | GlobalDataFlow.cs:71:28:71:45 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:58:35:58:52 | access to property SinkProperty0 : String | GlobalDataFlow.cs:396:52:396:52 | x : String | provenance | | +| GlobalDataFlow.cs:65:22:65:39 | access to property SinkProperty0 : String | GlobalDataFlow.cs:71:28:71:45 | access to property SinkProperty0 : String | provenance | | +| GlobalDataFlow.cs:65:22:65:39 | access to property SinkProperty0 : String | GlobalDataFlow.cs:427:9:427:11 | value : String | provenance | | +| GlobalDataFlow.cs:71:21:71:46 | call to method Return : String | GlobalDataFlow.cs:72:15:72:19 | access to local variable sink0 | provenance | | +| GlobalDataFlow.cs:71:21:71:46 | call to method Return : String | GlobalDataFlow.cs:73:94:73:98 | access to local variable sink0 : String | provenance | | +| GlobalDataFlow.cs:71:28:71:45 | access to property SinkProperty0 : String | GlobalDataFlow.cs:71:21:71:46 | call to method Return : String | provenance | | +| GlobalDataFlow.cs:71:28:71:45 | access to property SinkProperty0 : String | GlobalDataFlow.cs:298:26:298:26 | x : String | provenance | | +| GlobalDataFlow.cs:73:21:73:101 | (...) ... : String | GlobalDataFlow.cs:74:15:74:19 | access to local variable sink1 | provenance | | +| GlobalDataFlow.cs:73:21:73:101 | (...) ... : String | GlobalDataFlow.cs:76:19:76:23 | access to local variable sink1 : String | provenance | | +| GlobalDataFlow.cs:73:29:73:101 | call to method Invoke : String | GlobalDataFlow.cs:73:21:73:101 | (...) ... : String | provenance | | +| GlobalDataFlow.cs:73:94:73:98 | access to local variable sink0 : String | GlobalDataFlow.cs:73:29:73:101 | call to method Invoke : String | provenance | | +| GlobalDataFlow.cs:73:94:73:98 | access to local variable sink0 : String | GlobalDataFlow.cs:298:26:298:26 | x : String | provenance | | +| GlobalDataFlow.cs:76:19:76:23 | access to local variable sink1 : String | GlobalDataFlow.cs:76:30:76:34 | SSA def(sink2) : String | provenance | | +| GlobalDataFlow.cs:76:19:76:23 | access to local variable sink1 : String | GlobalDataFlow.cs:304:32:304:32 | x : String | provenance | | +| GlobalDataFlow.cs:76:30:76:34 | SSA def(sink2) : String | GlobalDataFlow.cs:77:15:77:19 | access to local variable sink2 | provenance | | +| GlobalDataFlow.cs:76:30:76:34 | SSA def(sink2) : String | GlobalDataFlow.cs:79:19:79:23 | access to local variable sink2 : String | provenance | | +| GlobalDataFlow.cs:79:19:79:23 | access to local variable sink2 : String | GlobalDataFlow.cs:79:30:79:34 | SSA def(sink3) : String | provenance | | +| GlobalDataFlow.cs:79:19:79:23 | access to local variable sink2 : String | GlobalDataFlow.cs:310:32:310:32 | x : String | provenance | | +| GlobalDataFlow.cs:79:30:79:34 | SSA def(sink3) : String | GlobalDataFlow.cs:80:15:80:19 | access to local variable sink3 | provenance | | +| GlobalDataFlow.cs:79:30:79:34 | SSA def(sink3) : String | GlobalDataFlow.cs:81:59:81:63 | access to local variable sink3 : String | provenance | | +| GlobalDataFlow.cs:79:30:79:34 | SSA def(sink3) : String | GlobalDataFlow.cs:139:29:139:33 | access to local variable sink3 : String | provenance | | +| GlobalDataFlow.cs:81:22:81:85 | call to method SelectEven : IEnumerable [element] : String | GlobalDataFlow.cs:81:22:81:93 | call to method First : String | provenance | | +| GlobalDataFlow.cs:81:22:81:93 | call to method First : String | GlobalDataFlow.cs:82:15:82:20 | access to local variable sink13 | provenance | | +| GlobalDataFlow.cs:81:22:81:93 | call to method First : String | GlobalDataFlow.cs:83:59:83:64 | access to local variable sink13 : String | provenance | | +| GlobalDataFlow.cs:81:23:81:65 | (...) ... : null [element] : String | GlobalDataFlow.cs:81:22:81:85 | call to method SelectEven : IEnumerable [element] : String | provenance | | +| GlobalDataFlow.cs:81:23:81:65 | (...) ... : null [element] : String | GlobalDataFlow.cs:553:71:553:71 | e : null [element] : String | provenance | | +| GlobalDataFlow.cs:81:57:81:65 | { ..., ... } : null [element] : String | GlobalDataFlow.cs:81:23:81:65 | (...) ... : null [element] : String | provenance | | +| GlobalDataFlow.cs:81:59:81:63 | access to local variable sink3 : String | GlobalDataFlow.cs:81:57:81:65 | { ..., ... } : null [element] : String | provenance | | +| GlobalDataFlow.cs:81:79:81:79 | x : String | GlobalDataFlow.cs:81:84:81:84 | access to parameter x : String | provenance | | +| GlobalDataFlow.cs:83:22:83:87 | call to method Select : IEnumerable [element] : String | GlobalDataFlow.cs:83:22:83:95 | call to method First : String | provenance | | +| GlobalDataFlow.cs:83:22:83:95 | call to method First : String | GlobalDataFlow.cs:84:15:84:20 | access to local variable sink14 | provenance | | +| GlobalDataFlow.cs:83:22:83:95 | call to method First : String | GlobalDataFlow.cs:85:59:85:64 | access to local variable sink14 : String | provenance | | +| GlobalDataFlow.cs:83:22:83:95 | call to method First : String | GlobalDataFlow.cs:89:59:89:64 | access to local variable sink14 : String | provenance | | +| GlobalDataFlow.cs:83:22:83:95 | call to method First : String | GlobalDataFlow.cs:91:75:91:80 | access to local variable sink14 : String | provenance | | +| GlobalDataFlow.cs:83:23:83:66 | (...) ... : null [element] : String | GlobalDataFlow.cs:83:22:83:87 | call to method Select : IEnumerable [element] : String | provenance | | +| GlobalDataFlow.cs:83:23:83:66 | (...) ... : null [element] : String | GlobalDataFlow.cs:315:31:315:40 | sinkParam8 : String | provenance | | +| GlobalDataFlow.cs:83:57:83:66 | { ..., ... } : null [element] : String | GlobalDataFlow.cs:83:23:83:66 | (...) ... : null [element] : String | provenance | | +| GlobalDataFlow.cs:83:59:83:64 | access to local variable sink13 : String | GlobalDataFlow.cs:83:57:83:66 | { ..., ... } : null [element] : String | provenance | | +| GlobalDataFlow.cs:85:22:85:128 | call to method Zip : IEnumerable [element] : String | GlobalDataFlow.cs:85:22:85:136 | call to method First : String | provenance | | +| GlobalDataFlow.cs:85:22:85:136 | call to method First : String | GlobalDataFlow.cs:86:15:86:20 | access to local variable sink15 | provenance | | +| GlobalDataFlow.cs:85:22:85:136 | call to method First : String | GlobalDataFlow.cs:87:106:87:111 | access to local variable sink15 : String | provenance | | +| GlobalDataFlow.cs:85:23:85:66 | (...) ... : null [element] : String | GlobalDataFlow.cs:85:22:85:128 | call to method Zip : IEnumerable [element] : String | provenance | | +| GlobalDataFlow.cs:85:57:85:66 | { ..., ... } : null [element] : String | GlobalDataFlow.cs:85:23:85:66 | (...) ... : null [element] : String | provenance | | +| GlobalDataFlow.cs:85:59:85:64 | access to local variable sink14 : String | GlobalDataFlow.cs:85:57:85:66 | { ..., ... } : null [element] : String | provenance | | +| GlobalDataFlow.cs:87:22:87:128 | call to method Zip : IEnumerable [element] : String | GlobalDataFlow.cs:87:22:87:136 | call to method First : String | provenance | | +| GlobalDataFlow.cs:87:22:87:136 | call to method First : String | GlobalDataFlow.cs:88:15:88:20 | access to local variable sink16 | provenance | | +| GlobalDataFlow.cs:87:70:87:113 | (...) ... : null [element] : String | GlobalDataFlow.cs:87:22:87:128 | call to method Zip : IEnumerable [element] : String | provenance | | +| GlobalDataFlow.cs:87:104:87:113 | { ..., ... } : null [element] : String | GlobalDataFlow.cs:87:70:87:113 | (...) ... : null [element] : String | provenance | | +| GlobalDataFlow.cs:87:106:87:111 | access to local variable sink15 : String | GlobalDataFlow.cs:87:104:87:113 | { ..., ... } : null [element] : String | provenance | | +| GlobalDataFlow.cs:89:22:89:110 | call to method Aggregate : String | GlobalDataFlow.cs:90:15:90:20 | access to local variable sink17 | provenance | | +| GlobalDataFlow.cs:89:23:89:66 | (...) ... : null [element] : String | GlobalDataFlow.cs:89:22:89:110 | call to method Aggregate : String | provenance | | +| GlobalDataFlow.cs:89:57:89:66 | { ..., ... } : null [element] : String | GlobalDataFlow.cs:89:23:89:66 | (...) ... : null [element] : String | provenance | | +| GlobalDataFlow.cs:89:59:89:64 | access to local variable sink14 : String | GlobalDataFlow.cs:89:57:89:66 | { ..., ... } : null [element] : String | provenance | | +| GlobalDataFlow.cs:91:22:91:110 | call to method Aggregate : String | GlobalDataFlow.cs:92:15:92:20 | access to local variable sink18 | provenance | | +| GlobalDataFlow.cs:91:22:91:110 | call to method Aggregate : String | GlobalDataFlow.cs:94:24:94:29 | access to local variable sink18 : String | provenance | | +| GlobalDataFlow.cs:91:22:91:110 | call to method Aggregate : String | GlobalDataFlow.cs:97:23:97:28 | access to local variable sink18 : String | provenance | | +| GlobalDataFlow.cs:91:22:91:110 | call to method Aggregate : String | GlobalDataFlow.cs:100:24:100:29 | access to local variable sink18 : String | provenance | | +| GlobalDataFlow.cs:91:75:91:80 | access to local variable sink14 : String | GlobalDataFlow.cs:91:22:91:110 | call to method Aggregate : String | provenance | | +| GlobalDataFlow.cs:94:24:94:29 | access to local variable sink18 : String | GlobalDataFlow.cs:94:36:94:41 | SSA def(sink21) : Int32 | provenance | | +| GlobalDataFlow.cs:94:36:94:41 | SSA def(sink21) : Int32 | GlobalDataFlow.cs:95:15:95:20 | access to local variable sink21 | provenance | | +| GlobalDataFlow.cs:97:23:97:28 | access to local variable sink18 : String | GlobalDataFlow.cs:97:35:97:40 | SSA def(sink22) : Boolean | provenance | | +| GlobalDataFlow.cs:97:35:97:40 | SSA def(sink22) : Boolean | GlobalDataFlow.cs:98:15:98:20 | access to local variable sink22 | provenance | | +| GlobalDataFlow.cs:100:24:100:29 | access to local variable sink18 : String | GlobalDataFlow.cs:100:82:100:88 | SSA def(sink21b) : Int32 | provenance | | +| GlobalDataFlow.cs:100:82:100:88 | SSA def(sink21b) : Int32 | GlobalDataFlow.cs:101:15:101:21 | access to local variable sink21b | provenance | | +| GlobalDataFlow.cs:138:40:138:40 | x : String | GlobalDataFlow.cs:138:63:138:63 | access to parameter x : String | provenance | | +| GlobalDataFlow.cs:138:63:138:63 | access to parameter x : String | GlobalDataFlow.cs:138:45:138:64 | call to method ApplyFunc : String | provenance | | +| GlobalDataFlow.cs:138:63:138:63 | access to parameter x : String | GlobalDataFlow.cs:387:46:387:46 | x : String | provenance | | +| GlobalDataFlow.cs:139:21:139:34 | delegate call : String | GlobalDataFlow.cs:140:15:140:19 | access to local variable sink4 | provenance | | +| GlobalDataFlow.cs:139:21:139:34 | delegate call : String | GlobalDataFlow.cs:147:39:147:43 | access to local variable sink4 : String | provenance | | +| GlobalDataFlow.cs:139:29:139:33 | access to local variable sink3 : String | GlobalDataFlow.cs:138:40:138:40 | x : String | provenance | | +| GlobalDataFlow.cs:139:29:139:33 | access to local variable sink3 : String | GlobalDataFlow.cs:139:21:139:34 | delegate call : String | provenance | | +| GlobalDataFlow.cs:147:21:147:44 | call to method ApplyFunc : String | GlobalDataFlow.cs:148:15:148:19 | access to local variable sink5 | provenance | | +| GlobalDataFlow.cs:147:39:147:43 | access to local variable sink4 : String | GlobalDataFlow.cs:147:21:147:44 | call to method ApplyFunc : String | provenance | | +| GlobalDataFlow.cs:147:39:147:43 | access to local variable sink4 : String | GlobalDataFlow.cs:387:46:387:46 | x : String | provenance | | +| GlobalDataFlow.cs:157:21:157:25 | call to method Out : String | GlobalDataFlow.cs:158:15:158:19 | access to local variable sink6 | provenance | | +| GlobalDataFlow.cs:160:20:160:24 | SSA def(sink7) : String | GlobalDataFlow.cs:161:15:161:19 | access to local variable sink7 | provenance | | +| GlobalDataFlow.cs:163:20:163:24 | SSA def(sink8) : String | GlobalDataFlow.cs:164:15:164:19 | access to local variable sink8 | provenance | | +| GlobalDataFlow.cs:165:22:165:31 | call to method OutYield : IEnumerable [element] : String | GlobalDataFlow.cs:165:22:165:39 | call to method First : String | provenance | | +| GlobalDataFlow.cs:165:22:165:39 | call to method First : String | GlobalDataFlow.cs:166:15:166:20 | access to local variable sink12 | provenance | | +| GlobalDataFlow.cs:167:22:167:43 | call to method TaintedParam : String | GlobalDataFlow.cs:168:15:168:20 | access to local variable sink23 | provenance | | +| GlobalDataFlow.cs:183:35:183:48 | "taint source" : String | GlobalDataFlow.cs:184:21:184:26 | delegate call : String | provenance | | +| GlobalDataFlow.cs:184:21:184:26 | delegate call : String | GlobalDataFlow.cs:185:15:185:19 | access to local variable sink9 | provenance | | +| GlobalDataFlow.cs:193:22:193:42 | object creation of type Lazy : Lazy [property Value] : String | GlobalDataFlow.cs:193:22:193:48 | access to property Value : String | provenance | | +| GlobalDataFlow.cs:193:22:193:48 | access to property Value : String | GlobalDataFlow.cs:194:15:194:20 | access to local variable sink10 | provenance | | +| GlobalDataFlow.cs:201:22:201:32 | access to property OutProperty : String | GlobalDataFlow.cs:202:15:202:20 | access to local variable sink19 | provenance | | +| GlobalDataFlow.cs:211:38:211:61 | array creation of type String[] : null [element] : String | GlobalDataFlow.cs:211:38:211:75 | call to method AsQueryable : IQueryable [element] : String | provenance | | +| GlobalDataFlow.cs:211:38:211:75 | call to method AsQueryable : IQueryable [element] : String | GlobalDataFlow.cs:216:22:216:28 | access to local variable tainted : IQueryable [element] : String | provenance | | +| GlobalDataFlow.cs:211:38:211:75 | call to method AsQueryable : IQueryable [element] : String | GlobalDataFlow.cs:218:22:218:28 | access to local variable tainted : IQueryable [element] : String | provenance | | +| GlobalDataFlow.cs:211:38:211:75 | call to method AsQueryable : IQueryable [element] : String | GlobalDataFlow.cs:220:22:220:28 | access to local variable tainted : IQueryable [element] : String | provenance | | +| GlobalDataFlow.cs:211:44:211:61 | { ..., ... } : null [element] : String | GlobalDataFlow.cs:211:38:211:61 | array creation of type String[] : null [element] : String | provenance | | +| GlobalDataFlow.cs:211:46:211:59 | "taint source" : String | GlobalDataFlow.cs:211:44:211:61 | { ..., ... } : null [element] : String | provenance | | +| GlobalDataFlow.cs:214:35:214:45 | sinkParam10 : String | GlobalDataFlow.cs:214:58:214:68 | access to parameter sinkParam10 | provenance | | +| GlobalDataFlow.cs:215:71:215:71 | x : String | GlobalDataFlow.cs:215:89:215:89 | access to parameter x : String | provenance | | +| GlobalDataFlow.cs:215:89:215:89 | access to parameter x : String | GlobalDataFlow.cs:321:32:321:41 | sinkParam9 : String | provenance | | +| GlobalDataFlow.cs:216:22:216:28 | access to local variable tainted : IQueryable [element] : String | GlobalDataFlow.cs:214:35:214:45 | sinkParam10 : String | provenance | | +| GlobalDataFlow.cs:216:22:216:28 | access to local variable tainted : IQueryable [element] : String | GlobalDataFlow.cs:216:22:216:39 | call to method Select : IEnumerable [element] : String | provenance | | +| GlobalDataFlow.cs:216:22:216:39 | call to method Select : IEnumerable [element] : String | GlobalDataFlow.cs:216:22:216:47 | call to method First : String | provenance | | +| GlobalDataFlow.cs:216:22:216:47 | call to method First : String | GlobalDataFlow.cs:217:15:217:20 | access to local variable sink24 | provenance | | +| GlobalDataFlow.cs:218:22:218:28 | access to local variable tainted : IQueryable [element] : String | GlobalDataFlow.cs:215:71:215:71 | x : String | provenance | | +| GlobalDataFlow.cs:218:22:218:28 | access to local variable tainted : IQueryable [element] : String | GlobalDataFlow.cs:218:22:218:39 | call to method Select : IQueryable [element] : String | provenance | | +| GlobalDataFlow.cs:218:22:218:39 | call to method Select : IQueryable [element] : String | GlobalDataFlow.cs:218:22:218:47 | call to method First : String | provenance | | +| GlobalDataFlow.cs:218:22:218:47 | call to method First : String | GlobalDataFlow.cs:219:15:219:20 | access to local variable sink25 | provenance | | +| GlobalDataFlow.cs:220:22:220:28 | access to local variable tainted : IQueryable [element] : String | GlobalDataFlow.cs:220:22:220:49 | call to method Select : IEnumerable [element] : String | provenance | | +| GlobalDataFlow.cs:220:22:220:28 | access to local variable tainted : IQueryable [element] : String | GlobalDataFlow.cs:327:32:327:42 | sinkParam11 : String | provenance | | +| GlobalDataFlow.cs:220:22:220:49 | call to method Select : IEnumerable [element] : String | GlobalDataFlow.cs:220:22:220:57 | call to method First : String | provenance | | +| GlobalDataFlow.cs:220:22:220:57 | call to method First : String | GlobalDataFlow.cs:221:15:221:20 | access to local variable sink26 | provenance | | +| GlobalDataFlow.cs:241:20:241:49 | call to method Run : Task [property Result] : String | GlobalDataFlow.cs:242:22:242:25 | access to local variable task : Task [property Result] : String | provenance | | +| GlobalDataFlow.cs:241:20:241:49 | call to method Run : Task [property Result] : String | GlobalDataFlow.cs:244:28:244:31 | access to local variable task : Task [property Result] : String | provenance | | +| GlobalDataFlow.cs:241:35:241:48 | "taint source" : String | GlobalDataFlow.cs:241:20:241:49 | call to method Run : Task [property Result] : String | provenance | | +| GlobalDataFlow.cs:242:22:242:25 | access to local variable task : Task [property Result] : String | GlobalDataFlow.cs:242:22:242:32 | access to property Result : String | provenance | | +| GlobalDataFlow.cs:242:22:242:32 | access to property Result : String | GlobalDataFlow.cs:243:15:243:20 | access to local variable sink41 | provenance | | +| GlobalDataFlow.cs:244:22:244:31 | await ... : String | GlobalDataFlow.cs:245:15:245:20 | access to local variable sink42 | provenance | | +| GlobalDataFlow.cs:244:28:244:31 | access to local variable task : Task [property Result] : String | GlobalDataFlow.cs:244:22:244:31 | await ... : String | provenance | | +| GlobalDataFlow.cs:257:26:257:35 | sinkParam0 : String | GlobalDataFlow.cs:259:16:259:25 | access to parameter sinkParam0 : String | provenance | | +| GlobalDataFlow.cs:257:26:257:35 | sinkParam0 : String | GlobalDataFlow.cs:260:15:260:24 | access to parameter sinkParam0 | provenance | | +| GlobalDataFlow.cs:259:16:259:25 | access to parameter sinkParam0 : String | GlobalDataFlow.cs:257:26:257:35 | sinkParam0 : String | provenance | | +| GlobalDataFlow.cs:263:26:263:35 | sinkParam1 : String | GlobalDataFlow.cs:265:15:265:24 | access to parameter sinkParam1 | provenance | | +| GlobalDataFlow.cs:268:26:268:35 | sinkParam3 : String | GlobalDataFlow.cs:270:15:270:24 | access to parameter sinkParam3 | provenance | | +| GlobalDataFlow.cs:273:26:273:35 | sinkParam4 : String | GlobalDataFlow.cs:275:15:275:24 | access to parameter sinkParam4 | provenance | | +| GlobalDataFlow.cs:278:26:278:35 | sinkParam5 : String | GlobalDataFlow.cs:280:15:280:24 | access to parameter sinkParam5 | provenance | | +| GlobalDataFlow.cs:283:26:283:35 | sinkParam6 : String | GlobalDataFlow.cs:285:15:285:24 | access to parameter sinkParam6 | provenance | | +| GlobalDataFlow.cs:288:26:288:35 | sinkParam7 : String | GlobalDataFlow.cs:290:15:290:24 | access to parameter sinkParam7 | provenance | | +| GlobalDataFlow.cs:298:26:298:26 | x : String | GlobalDataFlow.cs:300:37:300:37 | access to parameter x : String | provenance | | +| GlobalDataFlow.cs:300:17:300:38 | call to method ApplyFunc : String | GlobalDataFlow.cs:301:16:301:41 | ... ? ... : ... : String | provenance | | +| GlobalDataFlow.cs:300:27:300:28 | x0 : String | GlobalDataFlow.cs:300:33:300:34 | access to parameter x0 : String | provenance | | +| GlobalDataFlow.cs:300:37:300:37 | access to parameter x : String | GlobalDataFlow.cs:300:17:300:38 | call to method ApplyFunc : String | provenance | | +| GlobalDataFlow.cs:300:37:300:37 | access to parameter x : String | GlobalDataFlow.cs:387:46:387:46 | x : String | provenance | | +| GlobalDataFlow.cs:304:32:304:32 | x : String | GlobalDataFlow.cs:306:9:306:13 | SSA def(y) : String | provenance | | +| GlobalDataFlow.cs:310:32:310:32 | x : String | GlobalDataFlow.cs:312:9:312:13 | SSA def(y) : String | provenance | | +| GlobalDataFlow.cs:315:31:315:40 | sinkParam8 : String | GlobalDataFlow.cs:317:15:317:24 | access to parameter sinkParam8 | provenance | | +| GlobalDataFlow.cs:321:32:321:41 | sinkParam9 : String | GlobalDataFlow.cs:323:15:323:24 | access to parameter sinkParam9 | provenance | | +| GlobalDataFlow.cs:327:32:327:42 | sinkParam11 : String | GlobalDataFlow.cs:329:15:329:25 | access to parameter sinkParam11 | provenance | | +| GlobalDataFlow.cs:341:16:341:29 | "taint source" : String | GlobalDataFlow.cs:157:21:157:25 | call to method Out : String | provenance | | +| GlobalDataFlow.cs:341:16:341:29 | "taint source" : String | GlobalDataFlow.cs:193:22:193:42 | object creation of type Lazy : Lazy [property Value] : String | provenance | | +| GlobalDataFlow.cs:346:9:346:26 | SSA def(x) : String | GlobalDataFlow.cs:160:20:160:24 | SSA def(sink7) : String | provenance | | +| GlobalDataFlow.cs:346:13:346:26 | "taint source" : String | GlobalDataFlow.cs:346:9:346:26 | SSA def(x) : String | provenance | | +| GlobalDataFlow.cs:351:9:351:26 | SSA def(x) : String | GlobalDataFlow.cs:163:20:163:24 | SSA def(sink8) : String | provenance | | +| GlobalDataFlow.cs:351:13:351:26 | "taint source" : String | GlobalDataFlow.cs:351:9:351:26 | SSA def(x) : String | provenance | | +| GlobalDataFlow.cs:357:22:357:35 | "taint source" : String | GlobalDataFlow.cs:165:22:165:31 | call to method OutYield : IEnumerable [element] : String | provenance | | +| GlobalDataFlow.cs:382:41:382:41 | x : String | GlobalDataFlow.cs:384:11:384:11 | access to parameter x : String | provenance | | +| GlobalDataFlow.cs:382:41:382:41 | x : String | GlobalDataFlow.cs:384:11:384:11 | access to parameter x : String | provenance | | +| GlobalDataFlow.cs:384:11:384:11 | access to parameter x : String | GlobalDataFlow.cs:54:15:54:15 | x : String | provenance | | +| GlobalDataFlow.cs:384:11:384:11 | access to parameter x : String | GlobalDataFlow.cs:268:26:268:35 | sinkParam3 : String | provenance | | +| GlobalDataFlow.cs:387:46:387:46 | x : String | GlobalDataFlow.cs:389:18:389:18 | access to parameter x : String | provenance | | +| GlobalDataFlow.cs:387:46:387:46 | x : String | GlobalDataFlow.cs:389:18:389:18 | access to parameter x : String | provenance | | +| GlobalDataFlow.cs:387:46:387:46 | x : String | GlobalDataFlow.cs:389:18:389:18 | access to parameter x : String | provenance | | +| GlobalDataFlow.cs:389:18:389:18 | access to parameter x : String | GlobalDataFlow.cs:298:26:298:26 | x : String | provenance | | +| GlobalDataFlow.cs:389:18:389:18 | access to parameter x : String | GlobalDataFlow.cs:298:26:298:26 | x : String | provenance | | +| GlobalDataFlow.cs:389:18:389:18 | access to parameter x : String | GlobalDataFlow.cs:300:27:300:28 | x0 : String | provenance | | +| GlobalDataFlow.cs:389:18:389:18 | access to parameter x : String | GlobalDataFlow.cs:389:16:389:19 | delegate call : String | provenance | | +| GlobalDataFlow.cs:389:18:389:18 | access to parameter x : String | GlobalDataFlow.cs:389:16:389:19 | delegate call : String | provenance | | +| GlobalDataFlow.cs:389:18:389:18 | access to parameter x : String | GlobalDataFlow.cs:389:16:389:19 | delegate call : String | provenance | | +| GlobalDataFlow.cs:396:52:396:52 | x : String | GlobalDataFlow.cs:398:11:398:11 | access to parameter x : String | provenance | | +| GlobalDataFlow.cs:396:52:396:52 | x : String | GlobalDataFlow.cs:398:11:398:11 | access to parameter x : String | provenance | | +| GlobalDataFlow.cs:396:52:396:52 | x : String | GlobalDataFlow.cs:398:11:398:11 | access to parameter x : String | provenance | | +| GlobalDataFlow.cs:398:11:398:11 | access to parameter x : String | GlobalDataFlow.cs:57:37:57:37 | x : String | provenance | | +| GlobalDataFlow.cs:398:11:398:11 | access to parameter x : String | GlobalDataFlow.cs:278:26:278:35 | sinkParam5 : String | provenance | | +| GlobalDataFlow.cs:398:11:398:11 | access to parameter x : String | GlobalDataFlow.cs:283:26:283:35 | sinkParam6 : String | provenance | | +| GlobalDataFlow.cs:401:39:401:45 | tainted : String | GlobalDataFlow.cs:404:15:404:20 | access to local variable sink11 | provenance | | +| GlobalDataFlow.cs:401:39:401:45 | tainted : String | GlobalDataFlow.cs:405:16:405:21 | access to local variable sink11 : String | provenance | | +| GlobalDataFlow.cs:405:16:405:21 | access to local variable sink11 : String | GlobalDataFlow.cs:167:22:167:43 | call to method TaintedParam : String | provenance | | +| GlobalDataFlow.cs:427:9:427:11 | value : String | GlobalDataFlow.cs:427:41:427:46 | access to local variable sink20 | provenance | | +| GlobalDataFlow.cs:438:22:438:35 | "taint source" : String | GlobalDataFlow.cs:201:22:201:32 | access to property OutProperty : String | provenance | | +| GlobalDataFlow.cs:448:22:448:65 | call to method Join : String | GlobalDataFlow.cs:449:15:449:20 | access to local variable sink44 | provenance | | +| GlobalDataFlow.cs:448:51:448:64 | "taint source" : String | GlobalDataFlow.cs:448:22:448:65 | call to method Join : String | provenance | | +| GlobalDataFlow.cs:457:20:457:49 | call to method Run : Task [property Result] : String | GlobalDataFlow.cs:458:25:458:28 | access to local variable task : Task [property Result] : String | provenance | | +| GlobalDataFlow.cs:457:35:457:48 | "taint source" : String | GlobalDataFlow.cs:457:20:457:49 | call to method Run : Task [property Result] : String | provenance | | +| GlobalDataFlow.cs:458:25:458:28 | access to local variable task : Task [property Result] : String | GlobalDataFlow.cs:458:25:458:50 | call to method ConfigureAwait : ConfiguredTaskAwaitable [synthetic m_configuredTaskAwaiter, synthetic m_task_configured_task_awaitable, property Result] : String | provenance | | +| GlobalDataFlow.cs:458:25:458:50 | call to method ConfigureAwait : ConfiguredTaskAwaitable [synthetic m_configuredTaskAwaiter, synthetic m_task_configured_task_awaitable, property Result] : String | GlobalDataFlow.cs:459:23:459:31 | access to local variable awaitable : ConfiguredTaskAwaitable [synthetic m_configuredTaskAwaiter, synthetic m_task_configured_task_awaitable, property Result] : String | provenance | | +| GlobalDataFlow.cs:459:23:459:31 | access to local variable awaitable : ConfiguredTaskAwaitable [synthetic m_configuredTaskAwaiter, synthetic m_task_configured_task_awaitable, property Result] : String | GlobalDataFlow.cs:459:23:459:44 | call to method GetAwaiter : ConfiguredTaskAwaitable.ConfiguredTaskAwaiter [synthetic m_task_configured_task_awaitable, property Result] : String | provenance | | +| GlobalDataFlow.cs:459:23:459:44 | call to method GetAwaiter : ConfiguredTaskAwaitable.ConfiguredTaskAwaiter [synthetic m_task_configured_task_awaitable, property Result] : String | GlobalDataFlow.cs:460:22:460:28 | access to local variable awaiter : ConfiguredTaskAwaitable.ConfiguredTaskAwaiter [synthetic m_task_configured_task_awaitable, property Result] : String | provenance | | +| GlobalDataFlow.cs:460:22:460:28 | access to local variable awaiter : ConfiguredTaskAwaitable.ConfiguredTaskAwaiter [synthetic m_task_configured_task_awaitable, property Result] : String | GlobalDataFlow.cs:460:22:460:40 | call to method GetResult : String | provenance | | +| GlobalDataFlow.cs:460:22:460:40 | call to method GetResult : String | GlobalDataFlow.cs:461:15:461:20 | access to local variable sink45 | provenance | | +| GlobalDataFlow.cs:466:53:466:55 | arg : String | GlobalDataFlow.cs:470:15:470:17 | access to parameter arg : String | provenance | | +| GlobalDataFlow.cs:469:21:469:21 | s : String | GlobalDataFlow.cs:469:32:469:32 | access to parameter s | provenance | | +| GlobalDataFlow.cs:470:15:470:17 | access to parameter arg : String | GlobalDataFlow.cs:469:21:469:21 | s : String | provenance | | +| GlobalDataFlow.cs:473:28:473:41 | "taint source" : String | GlobalDataFlow.cs:466:53:466:55 | arg : String | provenance | | +| GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:490:25:490:26 | [post] access to local variable x1 : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:490:30:490:31 | [post] access to local variable x2 : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:497:31:497:32 | [post] access to local variable y1 : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:497:36:497:37 | [post] access to local variable y2 : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:497:42:497:43 | [post] access to local variable y3 : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:508:33:508:33 | [post] access to local variable x : SubSimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:515:20:515:20 | [post] access to parameter x : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:515:25:515:25 | [post] access to local variable y : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:527:20:527:20 | [post] access to local variable x : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:528:20:528:20 | [post] access to local variable y : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:529:18:529:18 | [post] access to local variable z : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:538:20:538:21 | [post] access to parameter sc : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:546:24:546:24 | [post] access to local variable x : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:483:20:483:33 | "taint source" : String | GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:490:25:490:26 | [post] access to local variable x1 : SimpleClass [field field] : String | GlobalDataFlow.cs:491:15:491:16 | access to local variable x1 : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:490:30:490:31 | [post] access to local variable x2 : SimpleClass [field field] : String | GlobalDataFlow.cs:492:15:492:16 | access to local variable x2 : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:491:15:491:16 | access to local variable x1 : SimpleClass [field field] : String | GlobalDataFlow.cs:491:15:491:22 | access to field field | provenance | | +| GlobalDataFlow.cs:492:15:492:16 | access to local variable x2 : SimpleClass [field field] : String | GlobalDataFlow.cs:492:15:492:22 | access to field field | provenance | | +| GlobalDataFlow.cs:497:31:497:32 | [post] access to local variable y1 : SimpleClass [field field] : String | GlobalDataFlow.cs:498:15:498:16 | access to local variable y1 : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:497:36:497:37 | [post] access to local variable y2 : SimpleClass [field field] : String | GlobalDataFlow.cs:499:15:499:16 | access to local variable y2 : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:497:42:497:43 | [post] access to local variable y3 : SimpleClass [field field] : String | GlobalDataFlow.cs:500:15:500:16 | access to local variable y3 : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:498:15:498:16 | access to local variable y1 : SimpleClass [field field] : String | GlobalDataFlow.cs:498:15:498:22 | access to field field | provenance | | +| GlobalDataFlow.cs:499:15:499:16 | access to local variable y2 : SimpleClass [field field] : String | GlobalDataFlow.cs:499:15:499:22 | access to field field | provenance | | +| GlobalDataFlow.cs:500:15:500:16 | access to local variable y3 : SimpleClass [field field] : String | GlobalDataFlow.cs:500:15:500:22 | access to field field | provenance | | +| GlobalDataFlow.cs:508:33:508:33 | [post] access to local variable x : SubSimpleClass [field field] : String | GlobalDataFlow.cs:509:15:509:15 | access to local variable x : SubSimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:509:15:509:15 | access to local variable x : SubSimpleClass [field field] : String | GlobalDataFlow.cs:509:15:509:21 | access to field field | provenance | | +| GlobalDataFlow.cs:515:20:515:20 | [post] access to parameter x : SimpleClass [field field] : String | GlobalDataFlow.cs:516:15:516:15 | access to parameter x : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:515:25:515:25 | [post] access to local variable y : SimpleClass [field field] : String | GlobalDataFlow.cs:517:15:517:15 | access to local variable y : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:516:15:516:15 | access to parameter x : SimpleClass [field field] : String | GlobalDataFlow.cs:516:15:516:21 | access to field field | provenance | | +| GlobalDataFlow.cs:517:15:517:15 | access to local variable y : SimpleClass [field field] : String | GlobalDataFlow.cs:517:15:517:21 | access to field field | provenance | | +| GlobalDataFlow.cs:527:20:527:20 | [post] access to local variable x : SimpleClass [field field] : String | GlobalDataFlow.cs:531:15:531:15 | access to local variable x : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:528:20:528:20 | [post] access to local variable y : SimpleClass [field field] : String | GlobalDataFlow.cs:532:15:532:15 | access to local variable y : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:529:18:529:18 | [post] access to local variable z : SimpleClass [field field] : String | GlobalDataFlow.cs:533:15:533:15 | access to local variable z : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:531:15:531:15 | access to local variable x : SimpleClass [field field] : String | GlobalDataFlow.cs:531:15:531:21 | access to field field | provenance | | +| GlobalDataFlow.cs:532:15:532:15 | access to local variable y : SimpleClass [field field] : String | GlobalDataFlow.cs:532:15:532:21 | access to field field | provenance | | +| GlobalDataFlow.cs:533:15:533:15 | access to local variable z : SimpleClass [field field] : String | GlobalDataFlow.cs:533:15:533:21 | access to field field | provenance | | +| GlobalDataFlow.cs:538:20:538:21 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:539:15:539:16 | access to parameter sc : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:539:15:539:16 | access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:539:15:539:22 | access to field field | provenance | | +| GlobalDataFlow.cs:546:24:546:24 | [post] access to local variable x : SimpleClass [field field] : String | GlobalDataFlow.cs:547:15:547:15 | access to local variable x : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:547:15:547:15 | access to local variable x : SimpleClass [field field] : String | GlobalDataFlow.cs:547:15:547:21 | access to field field | provenance | | +| GlobalDataFlow.cs:553:71:553:71 | e : null [element] : String | GlobalDataFlow.cs:556:27:556:27 | access to parameter e : null [element] : String | provenance | | +| GlobalDataFlow.cs:556:22:556:22 | SSA def(x) : String | GlobalDataFlow.cs:558:46:558:46 | access to local variable x : String | provenance | | +| GlobalDataFlow.cs:556:27:556:27 | access to parameter e : null [element] : String | GlobalDataFlow.cs:556:22:556:22 | SSA def(x) : String | provenance | | +| GlobalDataFlow.cs:558:46:558:46 | access to local variable x : String | GlobalDataFlow.cs:81:79:81:79 | x : String | provenance | | +| GlobalDataFlow.cs:558:46:558:46 | access to local variable x : String | GlobalDataFlow.cs:558:44:558:47 | delegate call : String | provenance | | +| GlobalDataFlowStringBuilder.cs:17:64:17:64 | s : String | GlobalDataFlowStringBuilder.cs:19:19:19:19 | access to parameter s : String | provenance | | +| GlobalDataFlowStringBuilder.cs:19:19:19:19 | access to parameter s : String | GlobalDataFlowStringBuilder.cs:19:9:19:10 | [post] access to parameter sb : StringBuilder | provenance | | +| GlobalDataFlowStringBuilder.cs:22:76:22:76 | s : String | GlobalDataFlowStringBuilder.cs:24:19:24:26 | (...) ... : AppendInterpolatedStringHandler | provenance | | +| GlobalDataFlowStringBuilder.cs:24:19:24:26 | (...) ... : AppendInterpolatedStringHandler | GlobalDataFlowStringBuilder.cs:24:9:24:10 | [post] access to parameter sb : StringBuilder | provenance | | +| GlobalDataFlowStringBuilder.cs:30:31:30:32 | [post] access to local variable sb : StringBuilder | GlobalDataFlowStringBuilder.cs:31:21:31:22 | access to local variable sb : StringBuilder | provenance | | +| GlobalDataFlowStringBuilder.cs:30:31:30:32 | [post] access to local variable sb : StringBuilder | GlobalDataFlowStringBuilder.cs:35:20:35:21 | access to local variable sb : StringBuilder | provenance | | +| GlobalDataFlowStringBuilder.cs:30:31:30:32 | [post] access to local variable sb : StringBuilder | GlobalDataFlowStringBuilder.cs:40:20:40:26 | (...) ... : AppendInterpolatedStringHandler | provenance | | +| GlobalDataFlowStringBuilder.cs:30:35:30:48 | "taint source" : String | GlobalDataFlowStringBuilder.cs:17:64:17:64 | s : String | provenance | | +| GlobalDataFlowStringBuilder.cs:30:35:30:48 | "taint source" : String | GlobalDataFlowStringBuilder.cs:30:31:30:32 | [post] access to local variable sb : StringBuilder | provenance | | +| GlobalDataFlowStringBuilder.cs:31:21:31:22 | access to local variable sb : StringBuilder | GlobalDataFlowStringBuilder.cs:31:21:31:33 | call to method ToString : String | provenance | | +| GlobalDataFlowStringBuilder.cs:31:21:31:33 | call to method ToString : String | GlobalDataFlowStringBuilder.cs:32:15:32:19 | access to local variable sink0 | provenance | | +| GlobalDataFlowStringBuilder.cs:35:9:35:11 | [post] access to local variable sb1 : StringBuilder | GlobalDataFlowStringBuilder.cs:36:21:36:23 | access to local variable sb1 : StringBuilder | provenance | | +| GlobalDataFlowStringBuilder.cs:35:20:35:21 | access to local variable sb : StringBuilder | GlobalDataFlowStringBuilder.cs:35:9:35:11 | [post] access to local variable sb1 : StringBuilder | provenance | | +| GlobalDataFlowStringBuilder.cs:36:21:36:23 | access to local variable sb1 : StringBuilder | GlobalDataFlowStringBuilder.cs:36:21:36:34 | call to method ToString : String | provenance | | +| GlobalDataFlowStringBuilder.cs:36:21:36:34 | call to method ToString : String | GlobalDataFlowStringBuilder.cs:37:15:37:19 | access to local variable sink1 | provenance | | +| GlobalDataFlowStringBuilder.cs:40:9:40:11 | [post] access to local variable sb2 : StringBuilder | GlobalDataFlowStringBuilder.cs:41:21:41:23 | access to local variable sb2 : StringBuilder | provenance | | +| GlobalDataFlowStringBuilder.cs:40:20:40:26 | (...) ... : AppendInterpolatedStringHandler | GlobalDataFlowStringBuilder.cs:40:9:40:11 | [post] access to local variable sb2 : StringBuilder | provenance | | +| GlobalDataFlowStringBuilder.cs:41:21:41:23 | access to local variable sb2 : StringBuilder | GlobalDataFlowStringBuilder.cs:41:21:41:34 | call to method ToString : String | provenance | | +| GlobalDataFlowStringBuilder.cs:41:21:41:34 | call to method ToString : String | GlobalDataFlowStringBuilder.cs:42:15:42:19 | access to local variable sink2 | provenance | | +| GlobalDataFlowStringBuilder.cs:48:43:48:44 | [post] access to local variable sb : StringBuilder | GlobalDataFlowStringBuilder.cs:49:21:49:22 | access to local variable sb : StringBuilder | provenance | | +| GlobalDataFlowStringBuilder.cs:48:47:48:60 | "taint source" : String | GlobalDataFlowStringBuilder.cs:22:76:22:76 | s : String | provenance | | +| GlobalDataFlowStringBuilder.cs:48:47:48:60 | "taint source" : String | GlobalDataFlowStringBuilder.cs:48:43:48:44 | [post] access to local variable sb : StringBuilder | provenance | | +| GlobalDataFlowStringBuilder.cs:49:21:49:22 | access to local variable sb : StringBuilder | GlobalDataFlowStringBuilder.cs:49:21:49:33 | call to method ToString : String | provenance | | +| GlobalDataFlowStringBuilder.cs:49:21:49:33 | call to method ToString : String | GlobalDataFlowStringBuilder.cs:50:15:50:19 | access to local variable sink3 | provenance | | +| Splitting.cs:3:28:3:34 | tainted : String | Splitting.cs:8:24:8:30 | [b (line 3): false] access to parameter tainted : String | provenance | | +| Splitting.cs:3:28:3:34 | tainted : String | Splitting.cs:8:24:8:30 | [b (line 3): true] access to parameter tainted : String | provenance | | +| Splitting.cs:8:17:8:31 | [b (line 3): false] call to method Return : String | Splitting.cs:9:15:9:15 | [b (line 3): false] access to local variable x | provenance | | +| Splitting.cs:8:17:8:31 | [b (line 3): true] call to method Return : String | Splitting.cs:9:15:9:15 | [b (line 3): true] access to local variable x | provenance | | +| Splitting.cs:8:17:8:31 | [b (line 3): true] call to method Return : String | Splitting.cs:11:19:11:19 | access to local variable x | provenance | | +| Splitting.cs:8:24:8:30 | [b (line 3): false] access to parameter tainted : String | Splitting.cs:8:17:8:31 | [b (line 3): false] call to method Return : String | provenance | | +| Splitting.cs:8:24:8:30 | [b (line 3): false] access to parameter tainted : String | Splitting.cs:16:26:16:26 | x : String | provenance | | +| Splitting.cs:8:24:8:30 | [b (line 3): true] access to parameter tainted : String | Splitting.cs:8:17:8:31 | [b (line 3): true] call to method Return : String | provenance | | +| Splitting.cs:8:24:8:30 | [b (line 3): true] access to parameter tainted : String | Splitting.cs:16:26:16:26 | x : String | provenance | | +| Splitting.cs:16:26:16:26 | x : String | Splitting.cs:16:32:16:32 | access to parameter x : String | provenance | | +| Splitting.cs:18:24:18:24 | s : String | Splitting.cs:20:29:20:29 | access to parameter s : String | provenance | | +| Splitting.cs:20:29:20:29 | access to parameter s : String | Splitting.cs:16:26:16:26 | x : String | provenance | | +| Splitting.cs:20:29:20:29 | access to parameter s : String | Splitting.cs:20:22:20:30 | call to method Return : String | provenance | | +| Splitting.cs:21:9:21:11 | value : String | Splitting.cs:21:28:21:32 | access to parameter value : String | provenance | | +| Splitting.cs:21:28:21:32 | access to parameter value : String | Splitting.cs:16:26:16:26 | x : String | provenance | | +| Splitting.cs:21:28:21:32 | access to parameter value : String | Splitting.cs:21:21:21:33 | call to method Return | provenance | | +| Splitting.cs:24:28:24:34 | tainted : String | Splitting.cs:30:17:30:23 | [b (line 24): false] access to parameter tainted : String | provenance | | +| Splitting.cs:24:28:24:34 | tainted : String | Splitting.cs:30:17:30:23 | [b (line 24): true] access to parameter tainted : String | provenance | | +| Splitting.cs:24:28:24:34 | tainted : String | Splitting.cs:31:19:31:25 | [b (line 24): false] access to parameter tainted : String | provenance | | +| Splitting.cs:24:28:24:34 | tainted : String | Splitting.cs:31:19:31:25 | [b (line 24): true] access to parameter tainted : String | provenance | | +| Splitting.cs:30:17:30:23 | [b (line 24): false] access to parameter tainted : String | Splitting.cs:21:9:21:11 | value : String | provenance | | +| Splitting.cs:30:17:30:23 | [b (line 24): true] access to parameter tainted : String | Splitting.cs:21:9:21:11 | value : String | provenance | | +| Splitting.cs:31:17:31:26 | [b (line 24): false] dynamic access to element : String | Splitting.cs:32:15:32:15 | [b (line 24): false] access to local variable x | provenance | | +| Splitting.cs:31:17:31:26 | [b (line 24): true] dynamic access to element : String | Splitting.cs:32:15:32:15 | [b (line 24): true] access to local variable x | provenance | | +| Splitting.cs:31:17:31:26 | [b (line 24): true] dynamic access to element : String | Splitting.cs:34:19:34:19 | access to local variable x | provenance | | +| Splitting.cs:31:19:31:25 | [b (line 24): false] access to parameter tainted : String | Splitting.cs:18:24:18:24 | s : String | provenance | | +| Splitting.cs:31:19:31:25 | [b (line 24): false] access to parameter tainted : String | Splitting.cs:31:17:31:26 | [b (line 24): false] dynamic access to element : String | provenance | | +| Splitting.cs:31:19:31:25 | [b (line 24): true] access to parameter tainted : String | Splitting.cs:18:24:18:24 | s : String | provenance | | +| Splitting.cs:31:19:31:25 | [b (line 24): true] access to parameter tainted : String | Splitting.cs:31:17:31:26 | [b (line 24): true] dynamic access to element : String | provenance | | +| Splitting.cs:39:21:39:34 | [b (line 37): true] "taint source" : String | Splitting.cs:41:19:41:19 | access to local variable s | provenance | | +| Splitting.cs:48:36:48:49 | "taint source" : String | Splitting.cs:50:19:50:19 | access to local variable s | provenance | | +| Splitting.cs:48:36:48:49 | "taint source" : String | Splitting.cs:52:19:52:19 | access to local variable s | provenance | | nodes | Capture.cs:7:20:7:26 | tainted : String | semmle.label | tainted : String | | Capture.cs:12:19:12:24 | access to local variable sink27 | semmle.label | access to local variable sink27 | diff --git a/csharp/ql/test/library-tests/dataflow/operators/operatorFlow.expected b/csharp/ql/test/library-tests/dataflow/operators/operatorFlow.expected index f5f0902b3a8e..d55c099ca4f4 100644 --- a/csharp/ql/test/library-tests/dataflow/operators/operatorFlow.expected +++ b/csharp/ql/test/library-tests/dataflow/operators/operatorFlow.expected @@ -1,77 +1,77 @@ testFailures edges -| Operator.cs:9:39:9:39 | x : C | Operator.cs:9:50:9:50 | access to parameter x : C | -| Operator.cs:9:39:9:39 | x : C | Operator.cs:9:50:9:50 | access to parameter x : C | -| Operator.cs:16:38:16:38 | x : C | Operator.cs:16:49:16:49 | access to parameter x : C | -| Operator.cs:16:38:16:38 | x : C | Operator.cs:16:49:16:49 | access to parameter x : C | -| Operator.cs:18:51:18:51 | y : C | Operator.cs:18:57:18:57 | access to parameter y : C | -| Operator.cs:18:51:18:51 | y : C | Operator.cs:18:57:18:57 | access to parameter y : C | -| Operator.cs:19:38:19:38 | x : C | Operator.cs:19:49:19:49 | access to parameter x : C | -| Operator.cs:19:38:19:38 | x : C | Operator.cs:19:49:19:49 | access to parameter x : C | -| Operator.cs:21:43:21:43 | y : C | Operator.cs:21:49:21:49 | access to parameter y : C | -| Operator.cs:21:43:21:43 | y : C | Operator.cs:21:49:21:49 | access to parameter y : C | -| Operator.cs:22:51:22:51 | y : C | Operator.cs:22:57:22:57 | access to parameter y : C | -| Operator.cs:22:51:22:51 | y : C | Operator.cs:22:57:22:57 | access to parameter y : C | -| Operator.cs:27:17:27:28 | call to method Source : C | Operator.cs:29:17:29:17 | access to local variable x : C | -| Operator.cs:27:17:27:28 | call to method Source : C | Operator.cs:29:17:29:17 | access to local variable x : C | -| Operator.cs:29:17:29:17 | access to local variable x : C | Operator.cs:16:38:16:38 | x : C | -| Operator.cs:29:17:29:17 | access to local variable x : C | Operator.cs:16:38:16:38 | x : C | -| Operator.cs:29:17:29:17 | access to local variable x : C | Operator.cs:29:17:29:21 | call to operator + : C | -| Operator.cs:29:17:29:17 | access to local variable x : C | Operator.cs:29:17:29:21 | call to operator + : C | -| Operator.cs:29:17:29:21 | call to operator + : C | Operator.cs:30:14:30:14 | access to local variable z | -| Operator.cs:29:17:29:21 | call to operator + : C | Operator.cs:30:14:30:14 | access to local variable z | -| Operator.cs:35:17:35:28 | call to method Source : C | Operator.cs:37:27:37:27 | access to local variable x : C | -| Operator.cs:35:17:35:28 | call to method Source : C | Operator.cs:37:27:37:27 | access to local variable x : C | -| Operator.cs:37:27:37:27 | access to local variable x : C | Operator.cs:19:38:19:38 | x : C | -| Operator.cs:37:27:37:27 | access to local variable x : C | Operator.cs:19:38:19:38 | x : C | -| Operator.cs:37:27:37:27 | access to local variable x : C | Operator.cs:37:27:37:31 | call to operator - : C | -| Operator.cs:37:27:37:27 | access to local variable x : C | Operator.cs:37:27:37:31 | call to operator - : C | -| Operator.cs:37:27:37:31 | call to operator - : C | Operator.cs:38:14:38:14 | access to local variable z | -| Operator.cs:37:27:37:31 | call to operator - : C | Operator.cs:38:14:38:14 | access to local variable z | -| Operator.cs:44:17:44:28 | call to method Source : C | Operator.cs:45:29:45:29 | access to local variable y : C | -| Operator.cs:44:17:44:28 | call to method Source : C | Operator.cs:45:29:45:29 | access to local variable y : C | -| Operator.cs:45:25:45:29 | call to operator checked - : C | Operator.cs:46:14:46:14 | access to local variable z | -| Operator.cs:45:25:45:29 | call to operator checked - : C | Operator.cs:46:14:46:14 | access to local variable z | -| Operator.cs:45:29:45:29 | access to local variable y : C | Operator.cs:18:51:18:51 | y : C | -| Operator.cs:45:29:45:29 | access to local variable y : C | Operator.cs:18:51:18:51 | y : C | -| Operator.cs:45:29:45:29 | access to local variable y : C | Operator.cs:45:25:45:29 | call to operator checked - : C | -| Operator.cs:45:29:45:29 | access to local variable y : C | Operator.cs:45:25:45:29 | call to operator checked - : C | -| Operator.cs:49:28:49:28 | x : C | Operator.cs:51:17:51:17 | access to parameter x : C | -| Operator.cs:49:28:49:28 | x : C | Operator.cs:51:17:51:17 | access to parameter x : C | -| Operator.cs:51:17:51:17 | access to parameter x : C | Operator.cs:9:39:9:39 | x : C | -| Operator.cs:51:17:51:17 | access to parameter x : C | Operator.cs:9:39:9:39 | x : C | -| Operator.cs:51:17:51:17 | access to parameter x : C | Operator.cs:51:17:51:21 | call to operator * : C | -| Operator.cs:51:17:51:17 | access to parameter x : C | Operator.cs:51:17:51:21 | call to operator * : C | -| Operator.cs:51:17:51:21 | call to operator * : C | Operator.cs:52:14:52:14 | (...) ... | -| Operator.cs:51:17:51:21 | call to operator * : C | Operator.cs:52:14:52:14 | (...) ... | -| Operator.cs:57:17:57:28 | call to method Source : C | Operator.cs:59:15:59:15 | access to local variable x : C | -| Operator.cs:57:17:57:28 | call to method Source : C | Operator.cs:59:15:59:15 | access to local variable x : C | -| Operator.cs:59:15:59:15 | access to local variable x : C | Operator.cs:49:28:49:28 | x : C | -| Operator.cs:59:15:59:15 | access to local variable x : C | Operator.cs:49:28:49:28 | x : C | -| Operator.cs:62:33:62:33 | y : C | Operator.cs:64:21:64:21 | access to parameter y : C | -| Operator.cs:62:33:62:33 | y : C | Operator.cs:64:21:64:21 | access to parameter y : C | -| Operator.cs:64:17:64:21 | call to operator / : C | Operator.cs:65:14:65:14 | (...) ... | -| Operator.cs:64:17:64:21 | call to operator / : C | Operator.cs:65:14:65:14 | (...) ... | -| Operator.cs:64:21:64:21 | access to parameter y : C | Operator.cs:21:43:21:43 | y : C | -| Operator.cs:64:21:64:21 | access to parameter y : C | Operator.cs:21:43:21:43 | y : C | -| Operator.cs:64:21:64:21 | access to parameter y : C | Operator.cs:64:17:64:21 | call to operator / : C | -| Operator.cs:64:21:64:21 | access to parameter y : C | Operator.cs:64:17:64:21 | call to operator / : C | -| Operator.cs:71:17:71:29 | call to method Source : C | Operator.cs:72:18:72:18 | access to local variable y : C | -| Operator.cs:71:17:71:29 | call to method Source : C | Operator.cs:72:18:72:18 | access to local variable y : C | -| Operator.cs:72:18:72:18 | access to local variable y : C | Operator.cs:62:33:62:33 | y : C | -| Operator.cs:72:18:72:18 | access to local variable y : C | Operator.cs:62:33:62:33 | y : C | -| Operator.cs:75:33:75:33 | y : C | Operator.cs:77:29:77:29 | access to parameter y : C | -| Operator.cs:75:33:75:33 | y : C | Operator.cs:77:29:77:29 | access to parameter y : C | -| Operator.cs:77:25:77:29 | call to operator checked / : C | Operator.cs:78:14:78:14 | (...) ... | -| Operator.cs:77:25:77:29 | call to operator checked / : C | Operator.cs:78:14:78:14 | (...) ... | -| Operator.cs:77:29:77:29 | access to parameter y : C | Operator.cs:22:51:22:51 | y : C | -| Operator.cs:77:29:77:29 | access to parameter y : C | Operator.cs:22:51:22:51 | y : C | -| Operator.cs:77:29:77:29 | access to parameter y : C | Operator.cs:77:25:77:29 | call to operator checked / : C | -| Operator.cs:77:29:77:29 | access to parameter y : C | Operator.cs:77:25:77:29 | call to operator checked / : C | -| Operator.cs:84:17:84:29 | call to method Source : C | Operator.cs:85:18:85:18 | access to local variable y : C | -| Operator.cs:84:17:84:29 | call to method Source : C | Operator.cs:85:18:85:18 | access to local variable y : C | -| Operator.cs:85:18:85:18 | access to local variable y : C | Operator.cs:75:33:75:33 | y : C | -| Operator.cs:85:18:85:18 | access to local variable y : C | Operator.cs:75:33:75:33 | y : C | +| Operator.cs:9:39:9:39 | x : C | Operator.cs:9:50:9:50 | access to parameter x : C | provenance | | +| Operator.cs:9:39:9:39 | x : C | Operator.cs:9:50:9:50 | access to parameter x : C | provenance | | +| Operator.cs:16:38:16:38 | x : C | Operator.cs:16:49:16:49 | access to parameter x : C | provenance | | +| Operator.cs:16:38:16:38 | x : C | Operator.cs:16:49:16:49 | access to parameter x : C | provenance | | +| Operator.cs:18:51:18:51 | y : C | Operator.cs:18:57:18:57 | access to parameter y : C | provenance | | +| Operator.cs:18:51:18:51 | y : C | Operator.cs:18:57:18:57 | access to parameter y : C | provenance | | +| Operator.cs:19:38:19:38 | x : C | Operator.cs:19:49:19:49 | access to parameter x : C | provenance | | +| Operator.cs:19:38:19:38 | x : C | Operator.cs:19:49:19:49 | access to parameter x : C | provenance | | +| Operator.cs:21:43:21:43 | y : C | Operator.cs:21:49:21:49 | access to parameter y : C | provenance | | +| Operator.cs:21:43:21:43 | y : C | Operator.cs:21:49:21:49 | access to parameter y : C | provenance | | +| Operator.cs:22:51:22:51 | y : C | Operator.cs:22:57:22:57 | access to parameter y : C | provenance | | +| Operator.cs:22:51:22:51 | y : C | Operator.cs:22:57:22:57 | access to parameter y : C | provenance | | +| Operator.cs:27:17:27:28 | call to method Source : C | Operator.cs:29:17:29:17 | access to local variable x : C | provenance | | +| Operator.cs:27:17:27:28 | call to method Source : C | Operator.cs:29:17:29:17 | access to local variable x : C | provenance | | +| Operator.cs:29:17:29:17 | access to local variable x : C | Operator.cs:16:38:16:38 | x : C | provenance | | +| Operator.cs:29:17:29:17 | access to local variable x : C | Operator.cs:16:38:16:38 | x : C | provenance | | +| Operator.cs:29:17:29:17 | access to local variable x : C | Operator.cs:29:17:29:21 | call to operator + : C | provenance | | +| Operator.cs:29:17:29:17 | access to local variable x : C | Operator.cs:29:17:29:21 | call to operator + : C | provenance | | +| Operator.cs:29:17:29:21 | call to operator + : C | Operator.cs:30:14:30:14 | access to local variable z | provenance | | +| Operator.cs:29:17:29:21 | call to operator + : C | Operator.cs:30:14:30:14 | access to local variable z | provenance | | +| Operator.cs:35:17:35:28 | call to method Source : C | Operator.cs:37:27:37:27 | access to local variable x : C | provenance | | +| Operator.cs:35:17:35:28 | call to method Source : C | Operator.cs:37:27:37:27 | access to local variable x : C | provenance | | +| Operator.cs:37:27:37:27 | access to local variable x : C | Operator.cs:19:38:19:38 | x : C | provenance | | +| Operator.cs:37:27:37:27 | access to local variable x : C | Operator.cs:19:38:19:38 | x : C | provenance | | +| Operator.cs:37:27:37:27 | access to local variable x : C | Operator.cs:37:27:37:31 | call to operator - : C | provenance | | +| Operator.cs:37:27:37:27 | access to local variable x : C | Operator.cs:37:27:37:31 | call to operator - : C | provenance | | +| Operator.cs:37:27:37:31 | call to operator - : C | Operator.cs:38:14:38:14 | access to local variable z | provenance | | +| Operator.cs:37:27:37:31 | call to operator - : C | Operator.cs:38:14:38:14 | access to local variable z | provenance | | +| Operator.cs:44:17:44:28 | call to method Source : C | Operator.cs:45:29:45:29 | access to local variable y : C | provenance | | +| Operator.cs:44:17:44:28 | call to method Source : C | Operator.cs:45:29:45:29 | access to local variable y : C | provenance | | +| Operator.cs:45:25:45:29 | call to operator checked - : C | Operator.cs:46:14:46:14 | access to local variable z | provenance | | +| Operator.cs:45:25:45:29 | call to operator checked - : C | Operator.cs:46:14:46:14 | access to local variable z | provenance | | +| Operator.cs:45:29:45:29 | access to local variable y : C | Operator.cs:18:51:18:51 | y : C | provenance | | +| Operator.cs:45:29:45:29 | access to local variable y : C | Operator.cs:18:51:18:51 | y : C | provenance | | +| Operator.cs:45:29:45:29 | access to local variable y : C | Operator.cs:45:25:45:29 | call to operator checked - : C | provenance | | +| Operator.cs:45:29:45:29 | access to local variable y : C | Operator.cs:45:25:45:29 | call to operator checked - : C | provenance | | +| Operator.cs:49:28:49:28 | x : C | Operator.cs:51:17:51:17 | access to parameter x : C | provenance | | +| Operator.cs:49:28:49:28 | x : C | Operator.cs:51:17:51:17 | access to parameter x : C | provenance | | +| Operator.cs:51:17:51:17 | access to parameter x : C | Operator.cs:9:39:9:39 | x : C | provenance | | +| Operator.cs:51:17:51:17 | access to parameter x : C | Operator.cs:9:39:9:39 | x : C | provenance | | +| Operator.cs:51:17:51:17 | access to parameter x : C | Operator.cs:51:17:51:21 | call to operator * : C | provenance | | +| Operator.cs:51:17:51:17 | access to parameter x : C | Operator.cs:51:17:51:21 | call to operator * : C | provenance | | +| Operator.cs:51:17:51:21 | call to operator * : C | Operator.cs:52:14:52:14 | (...) ... | provenance | | +| Operator.cs:51:17:51:21 | call to operator * : C | Operator.cs:52:14:52:14 | (...) ... | provenance | | +| Operator.cs:57:17:57:28 | call to method Source : C | Operator.cs:59:15:59:15 | access to local variable x : C | provenance | | +| Operator.cs:57:17:57:28 | call to method Source : C | Operator.cs:59:15:59:15 | access to local variable x : C | provenance | | +| Operator.cs:59:15:59:15 | access to local variable x : C | Operator.cs:49:28:49:28 | x : C | provenance | | +| Operator.cs:59:15:59:15 | access to local variable x : C | Operator.cs:49:28:49:28 | x : C | provenance | | +| Operator.cs:62:33:62:33 | y : C | Operator.cs:64:21:64:21 | access to parameter y : C | provenance | | +| Operator.cs:62:33:62:33 | y : C | Operator.cs:64:21:64:21 | access to parameter y : C | provenance | | +| Operator.cs:64:17:64:21 | call to operator / : C | Operator.cs:65:14:65:14 | (...) ... | provenance | | +| Operator.cs:64:17:64:21 | call to operator / : C | Operator.cs:65:14:65:14 | (...) ... | provenance | | +| Operator.cs:64:21:64:21 | access to parameter y : C | Operator.cs:21:43:21:43 | y : C | provenance | | +| Operator.cs:64:21:64:21 | access to parameter y : C | Operator.cs:21:43:21:43 | y : C | provenance | | +| Operator.cs:64:21:64:21 | access to parameter y : C | Operator.cs:64:17:64:21 | call to operator / : C | provenance | | +| Operator.cs:64:21:64:21 | access to parameter y : C | Operator.cs:64:17:64:21 | call to operator / : C | provenance | | +| Operator.cs:71:17:71:29 | call to method Source : C | Operator.cs:72:18:72:18 | access to local variable y : C | provenance | | +| Operator.cs:71:17:71:29 | call to method Source : C | Operator.cs:72:18:72:18 | access to local variable y : C | provenance | | +| Operator.cs:72:18:72:18 | access to local variable y : C | Operator.cs:62:33:62:33 | y : C | provenance | | +| Operator.cs:72:18:72:18 | access to local variable y : C | Operator.cs:62:33:62:33 | y : C | provenance | | +| Operator.cs:75:33:75:33 | y : C | Operator.cs:77:29:77:29 | access to parameter y : C | provenance | | +| Operator.cs:75:33:75:33 | y : C | Operator.cs:77:29:77:29 | access to parameter y : C | provenance | | +| Operator.cs:77:25:77:29 | call to operator checked / : C | Operator.cs:78:14:78:14 | (...) ... | provenance | | +| Operator.cs:77:25:77:29 | call to operator checked / : C | Operator.cs:78:14:78:14 | (...) ... | provenance | | +| Operator.cs:77:29:77:29 | access to parameter y : C | Operator.cs:22:51:22:51 | y : C | provenance | | +| Operator.cs:77:29:77:29 | access to parameter y : C | Operator.cs:22:51:22:51 | y : C | provenance | | +| Operator.cs:77:29:77:29 | access to parameter y : C | Operator.cs:77:25:77:29 | call to operator checked / : C | provenance | | +| Operator.cs:77:29:77:29 | access to parameter y : C | Operator.cs:77:25:77:29 | call to operator checked / : C | provenance | | +| Operator.cs:84:17:84:29 | call to method Source : C | Operator.cs:85:18:85:18 | access to local variable y : C | provenance | | +| Operator.cs:84:17:84:29 | call to method Source : C | Operator.cs:85:18:85:18 | access to local variable y : C | provenance | | +| Operator.cs:85:18:85:18 | access to local variable y : C | Operator.cs:75:33:75:33 | y : C | provenance | | +| Operator.cs:85:18:85:18 | access to local variable y : C | Operator.cs:75:33:75:33 | y : C | provenance | | nodes | Operator.cs:9:39:9:39 | x : C | semmle.label | x : C | | Operator.cs:9:39:9:39 | x : C | semmle.label | x : C | diff --git a/csharp/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest1.expected b/csharp/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest1.expected index edde57342e5a..2000a735bdbd 100644 --- a/csharp/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest1.expected +++ b/csharp/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest1.expected @@ -1,12 +1,12 @@ edges -| Test.cs:12:45:12:49 | bytes : Byte[] [element] : Object | Test.cs:15:56:15:60 | access to parameter bytes : Byte[] [element] : Object | -| Test.cs:15:56:15:60 | access to parameter bytes : Byte[] [element] : Object | Test.cs:15:20:15:61 | call to method GetString : String | -| Test.cs:23:42:23:59 | call to method GetStream : NetworkStream | Test.cs:25:29:25:34 | access to local variable stream : NetworkStream | -| Test.cs:25:29:25:34 | access to local variable stream : NetworkStream | Test.cs:25:41:25:46 | [post] access to local variable buffer : Byte[] [element] : Object | -| Test.cs:25:41:25:46 | [post] access to local variable buffer : Byte[] [element] : Object | Test.cs:28:99:28:104 | access to local variable buffer : Byte[] [element] : Object | -| Test.cs:28:85:28:105 | call to method BytesToString : String | Test.cs:28:42:28:111 | ... + ... | -| Test.cs:28:99:28:104 | access to local variable buffer : Byte[] [element] : Object | Test.cs:12:45:12:49 | bytes : Byte[] [element] : Object | -| Test.cs:28:99:28:104 | access to local variable buffer : Byte[] [element] : Object | Test.cs:28:85:28:105 | call to method BytesToString : String | +| Test.cs:12:45:12:49 | bytes : Byte[] [element] : Object | Test.cs:15:56:15:60 | access to parameter bytes : Byte[] [element] : Object | provenance | | +| Test.cs:15:56:15:60 | access to parameter bytes : Byte[] [element] : Object | Test.cs:15:20:15:61 | call to method GetString : String | provenance | | +| Test.cs:23:42:23:59 | call to method GetStream : NetworkStream | Test.cs:25:29:25:34 | access to local variable stream : NetworkStream | provenance | | +| Test.cs:25:29:25:34 | access to local variable stream : NetworkStream | Test.cs:25:41:25:46 | [post] access to local variable buffer : Byte[] [element] : Object | provenance | | +| Test.cs:25:41:25:46 | [post] access to local variable buffer : Byte[] [element] : Object | Test.cs:28:99:28:104 | access to local variable buffer : Byte[] [element] : Object | provenance | | +| Test.cs:28:85:28:105 | call to method BytesToString : String | Test.cs:28:42:28:111 | ... + ... | provenance | | +| Test.cs:28:99:28:104 | access to local variable buffer : Byte[] [element] : Object | Test.cs:12:45:12:49 | bytes : Byte[] [element] : Object | provenance | | +| Test.cs:28:99:28:104 | access to local variable buffer : Byte[] [element] : Object | Test.cs:28:85:28:105 | call to method BytesToString : String | provenance | | nodes | Test.cs:12:45:12:49 | bytes : Byte[] [element] : Object | semmle.label | bytes : Byte[] [element] : Object | | Test.cs:15:20:15:61 | call to method GetString : String | semmle.label | call to method GetString : String | diff --git a/csharp/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest2.expected b/csharp/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest2.expected index 38da52c1af5d..85243196a392 100644 --- a/csharp/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest2.expected +++ b/csharp/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest2.expected @@ -1,13 +1,13 @@ edges -| Test.cs:12:45:12:49 | bytes : Byte[] [element] : Object | Test.cs:15:56:15:60 | access to parameter bytes : Byte[] [element] : Object | -| Test.cs:15:56:15:60 | access to parameter bytes : Byte[] [element] : Object | Test.cs:15:20:15:61 | call to method GetString : String | -| Test.cs:23:42:23:59 | call to method GetStream : NetworkStream | Test.cs:25:29:25:34 | access to local variable stream : NetworkStream | -| Test.cs:25:29:25:34 | access to local variable stream : NetworkStream | Test.cs:25:41:25:46 | [post] access to local variable buffer : Byte[] [element] : Object | -| Test.cs:25:41:25:46 | [post] access to local variable buffer : Byte[] [element] : Object | Test.cs:28:99:28:104 | access to local variable buffer : Byte[] [element] : Object | -| Test.cs:28:85:28:105 | call to method BytesToString : String | Test.cs:28:42:28:111 | ... + ... | -| Test.cs:28:99:28:104 | access to local variable buffer : Byte[] [element] : Object | Test.cs:12:45:12:49 | bytes : Byte[] [element] : Object | -| Test.cs:28:99:28:104 | access to local variable buffer : Byte[] [element] : Object | Test.cs:28:85:28:105 | call to method BytesToString : String | -| Test.cs:34:29:34:69 | call to method ExecuteQuery : String | Test.cs:37:42:37:96 | ... + ... | +| Test.cs:12:45:12:49 | bytes : Byte[] [element] : Object | Test.cs:15:56:15:60 | access to parameter bytes : Byte[] [element] : Object | provenance | | +| Test.cs:15:56:15:60 | access to parameter bytes : Byte[] [element] : Object | Test.cs:15:20:15:61 | call to method GetString : String | provenance | | +| Test.cs:23:42:23:59 | call to method GetStream : NetworkStream | Test.cs:25:29:25:34 | access to local variable stream : NetworkStream | provenance | | +| Test.cs:25:29:25:34 | access to local variable stream : NetworkStream | Test.cs:25:41:25:46 | [post] access to local variable buffer : Byte[] [element] : Object | provenance | | +| Test.cs:25:41:25:46 | [post] access to local variable buffer : Byte[] [element] : Object | Test.cs:28:99:28:104 | access to local variable buffer : Byte[] [element] : Object | provenance | | +| Test.cs:28:85:28:105 | call to method BytesToString : String | Test.cs:28:42:28:111 | ... + ... | provenance | | +| Test.cs:28:99:28:104 | access to local variable buffer : Byte[] [element] : Object | Test.cs:12:45:12:49 | bytes : Byte[] [element] : Object | provenance | | +| Test.cs:28:99:28:104 | access to local variable buffer : Byte[] [element] : Object | Test.cs:28:85:28:105 | call to method BytesToString : String | provenance | | +| Test.cs:34:29:34:69 | call to method ExecuteQuery : String | Test.cs:37:42:37:96 | ... + ... | provenance | | nodes | Test.cs:12:45:12:49 | bytes : Byte[] [element] : Object | semmle.label | bytes : Byte[] [element] : Object | | Test.cs:15:20:15:61 | call to method GetString : String | semmle.label | call to method GetString : String | diff --git a/csharp/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest3.expected b/csharp/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest3.expected index 82868f7fce39..a499529d57d3 100644 --- a/csharp/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest3.expected +++ b/csharp/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest3.expected @@ -1,15 +1,15 @@ edges -| Test.cs:12:45:12:49 | bytes : Byte[] [element] : Object | Test.cs:15:56:15:60 | access to parameter bytes : Byte[] [element] : Object | -| Test.cs:15:56:15:60 | access to parameter bytes : Byte[] [element] : Object | Test.cs:15:20:15:61 | call to method GetString : String | -| Test.cs:23:42:23:59 | call to method GetStream : NetworkStream | Test.cs:25:29:25:34 | access to local variable stream : NetworkStream | -| Test.cs:25:29:25:34 | access to local variable stream : NetworkStream | Test.cs:25:41:25:46 | [post] access to local variable buffer : Byte[] [element] : Object | -| Test.cs:25:41:25:46 | [post] access to local variable buffer : Byte[] [element] : Object | Test.cs:28:99:28:104 | access to local variable buffer : Byte[] [element] : Object | -| Test.cs:28:85:28:105 | call to method BytesToString : String | Test.cs:28:42:28:111 | ... + ... | -| Test.cs:28:99:28:104 | access to local variable buffer : Byte[] [element] : Object | Test.cs:12:45:12:49 | bytes : Byte[] [element] : Object | -| Test.cs:28:99:28:104 | access to local variable buffer : Byte[] [element] : Object | Test.cs:28:85:28:105 | call to method BytesToString : String | -| Test.cs:34:29:34:69 | call to method ExecuteQuery : String | Test.cs:37:42:37:96 | ... + ... | -| Test.cs:43:29:43:50 | call to method ReadEnv : String | Test.cs:46:42:46:96 | ... + ... | -| Test.cs:62:29:62:48 | call to method GetCliArg : String | Test.cs:65:42:65:96 | ... + ... | +| Test.cs:12:45:12:49 | bytes : Byte[] [element] : Object | Test.cs:15:56:15:60 | access to parameter bytes : Byte[] [element] : Object | provenance | | +| Test.cs:15:56:15:60 | access to parameter bytes : Byte[] [element] : Object | Test.cs:15:20:15:61 | call to method GetString : String | provenance | | +| Test.cs:23:42:23:59 | call to method GetStream : NetworkStream | Test.cs:25:29:25:34 | access to local variable stream : NetworkStream | provenance | | +| Test.cs:25:29:25:34 | access to local variable stream : NetworkStream | Test.cs:25:41:25:46 | [post] access to local variable buffer : Byte[] [element] : Object | provenance | | +| Test.cs:25:41:25:46 | [post] access to local variable buffer : Byte[] [element] : Object | Test.cs:28:99:28:104 | access to local variable buffer : Byte[] [element] : Object | provenance | | +| Test.cs:28:85:28:105 | call to method BytesToString : String | Test.cs:28:42:28:111 | ... + ... | provenance | | +| Test.cs:28:99:28:104 | access to local variable buffer : Byte[] [element] : Object | Test.cs:12:45:12:49 | bytes : Byte[] [element] : Object | provenance | | +| Test.cs:28:99:28:104 | access to local variable buffer : Byte[] [element] : Object | Test.cs:28:85:28:105 | call to method BytesToString : String | provenance | | +| Test.cs:34:29:34:69 | call to method ExecuteQuery : String | Test.cs:37:42:37:96 | ... + ... | provenance | | +| Test.cs:43:29:43:50 | call to method ReadEnv : String | Test.cs:46:42:46:96 | ... + ... | provenance | | +| Test.cs:62:29:62:48 | call to method GetCliArg : String | Test.cs:65:42:65:96 | ... + ... | provenance | | nodes | Test.cs:12:45:12:49 | bytes : Byte[] [element] : Object | semmle.label | bytes : Byte[] [element] : Object | | Test.cs:15:20:15:61 | call to method GetString : String | semmle.label | call to method GetString : String | diff --git a/csharp/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest4.expected b/csharp/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest4.expected index b4863cc7b123..53b701785113 100644 --- a/csharp/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest4.expected +++ b/csharp/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest4.expected @@ -1,16 +1,16 @@ edges -| Test.cs:12:45:12:49 | bytes : Byte[] [element] : Object | Test.cs:15:56:15:60 | access to parameter bytes : Byte[] [element] : Object | -| Test.cs:15:56:15:60 | access to parameter bytes : Byte[] [element] : Object | Test.cs:15:20:15:61 | call to method GetString : String | -| Test.cs:23:42:23:59 | call to method GetStream : NetworkStream | Test.cs:25:29:25:34 | access to local variable stream : NetworkStream | -| Test.cs:25:29:25:34 | access to local variable stream : NetworkStream | Test.cs:25:41:25:46 | [post] access to local variable buffer : Byte[] [element] : Object | -| Test.cs:25:41:25:46 | [post] access to local variable buffer : Byte[] [element] : Object | Test.cs:28:99:28:104 | access to local variable buffer : Byte[] [element] : Object | -| Test.cs:28:85:28:105 | call to method BytesToString : String | Test.cs:28:42:28:111 | ... + ... | -| Test.cs:28:99:28:104 | access to local variable buffer : Byte[] [element] : Object | Test.cs:12:45:12:49 | bytes : Byte[] [element] : Object | -| Test.cs:28:99:28:104 | access to local variable buffer : Byte[] [element] : Object | Test.cs:28:85:28:105 | call to method BytesToString : String | -| Test.cs:34:29:34:69 | call to method ExecuteQuery : String | Test.cs:37:42:37:96 | ... + ... | -| Test.cs:43:29:43:50 | call to method ReadEnv : String | Test.cs:46:42:46:96 | ... + ... | -| Test.cs:53:29:53:52 | call to method GetCustom : String | Test.cs:56:42:56:96 | ... + ... | -| Test.cs:62:29:62:48 | call to method GetCliArg : String | Test.cs:65:42:65:96 | ... + ... | +| Test.cs:12:45:12:49 | bytes : Byte[] [element] : Object | Test.cs:15:56:15:60 | access to parameter bytes : Byte[] [element] : Object | provenance | | +| Test.cs:15:56:15:60 | access to parameter bytes : Byte[] [element] : Object | Test.cs:15:20:15:61 | call to method GetString : String | provenance | | +| Test.cs:23:42:23:59 | call to method GetStream : NetworkStream | Test.cs:25:29:25:34 | access to local variable stream : NetworkStream | provenance | | +| Test.cs:25:29:25:34 | access to local variable stream : NetworkStream | Test.cs:25:41:25:46 | [post] access to local variable buffer : Byte[] [element] : Object | provenance | | +| Test.cs:25:41:25:46 | [post] access to local variable buffer : Byte[] [element] : Object | Test.cs:28:99:28:104 | access to local variable buffer : Byte[] [element] : Object | provenance | | +| Test.cs:28:85:28:105 | call to method BytesToString : String | Test.cs:28:42:28:111 | ... + ... | provenance | | +| Test.cs:28:99:28:104 | access to local variable buffer : Byte[] [element] : Object | Test.cs:12:45:12:49 | bytes : Byte[] [element] : Object | provenance | | +| Test.cs:28:99:28:104 | access to local variable buffer : Byte[] [element] : Object | Test.cs:28:85:28:105 | call to method BytesToString : String | provenance | | +| Test.cs:34:29:34:69 | call to method ExecuteQuery : String | Test.cs:37:42:37:96 | ... + ... | provenance | | +| Test.cs:43:29:43:50 | call to method ReadEnv : String | Test.cs:46:42:46:96 | ... + ... | provenance | | +| Test.cs:53:29:53:52 | call to method GetCustom : String | Test.cs:56:42:56:96 | ... + ... | provenance | | +| Test.cs:62:29:62:48 | call to method GetCliArg : String | Test.cs:65:42:65:96 | ... + ... | provenance | | nodes | Test.cs:12:45:12:49 | bytes : Byte[] [element] : Object | semmle.label | bytes : Byte[] [element] : Object | | Test.cs:15:20:15:61 | call to method GetString : String | semmle.label | call to method GetString : String | diff --git a/csharp/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest5.expected b/csharp/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest5.expected index 69b547c0bddc..184c4722f80b 100644 --- a/csharp/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest5.expected +++ b/csharp/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest5.expected @@ -1,14 +1,14 @@ edges -| Test.cs:12:45:12:49 | bytes : Byte[] [element] : Object | Test.cs:15:56:15:60 | access to parameter bytes : Byte[] [element] : Object | -| Test.cs:15:56:15:60 | access to parameter bytes : Byte[] [element] : Object | Test.cs:15:20:15:61 | call to method GetString : String | -| Test.cs:23:42:23:59 | call to method GetStream : NetworkStream | Test.cs:25:29:25:34 | access to local variable stream : NetworkStream | -| Test.cs:25:29:25:34 | access to local variable stream : NetworkStream | Test.cs:25:41:25:46 | [post] access to local variable buffer : Byte[] [element] : Object | -| Test.cs:25:41:25:46 | [post] access to local variable buffer : Byte[] [element] : Object | Test.cs:28:99:28:104 | access to local variable buffer : Byte[] [element] : Object | -| Test.cs:28:85:28:105 | call to method BytesToString : String | Test.cs:28:42:28:111 | ... + ... | -| Test.cs:28:99:28:104 | access to local variable buffer : Byte[] [element] : Object | Test.cs:12:45:12:49 | bytes : Byte[] [element] : Object | -| Test.cs:28:99:28:104 | access to local variable buffer : Byte[] [element] : Object | Test.cs:28:85:28:105 | call to method BytesToString : String | -| Test.cs:43:29:43:50 | call to method ReadEnv : String | Test.cs:46:42:46:96 | ... + ... | -| Test.cs:62:29:62:48 | call to method GetCliArg : String | Test.cs:65:42:65:96 | ... + ... | +| Test.cs:12:45:12:49 | bytes : Byte[] [element] : Object | Test.cs:15:56:15:60 | access to parameter bytes : Byte[] [element] : Object | provenance | | +| Test.cs:15:56:15:60 | access to parameter bytes : Byte[] [element] : Object | Test.cs:15:20:15:61 | call to method GetString : String | provenance | | +| Test.cs:23:42:23:59 | call to method GetStream : NetworkStream | Test.cs:25:29:25:34 | access to local variable stream : NetworkStream | provenance | | +| Test.cs:25:29:25:34 | access to local variable stream : NetworkStream | Test.cs:25:41:25:46 | [post] access to local variable buffer : Byte[] [element] : Object | provenance | | +| Test.cs:25:41:25:46 | [post] access to local variable buffer : Byte[] [element] : Object | Test.cs:28:99:28:104 | access to local variable buffer : Byte[] [element] : Object | provenance | | +| Test.cs:28:85:28:105 | call to method BytesToString : String | Test.cs:28:42:28:111 | ... + ... | provenance | | +| Test.cs:28:99:28:104 | access to local variable buffer : Byte[] [element] : Object | Test.cs:12:45:12:49 | bytes : Byte[] [element] : Object | provenance | | +| Test.cs:28:99:28:104 | access to local variable buffer : Byte[] [element] : Object | Test.cs:28:85:28:105 | call to method BytesToString : String | provenance | | +| Test.cs:43:29:43:50 | call to method ReadEnv : String | Test.cs:46:42:46:96 | ... + ... | provenance | | +| Test.cs:62:29:62:48 | call to method GetCliArg : String | Test.cs:65:42:65:96 | ... + ... | provenance | | nodes | Test.cs:12:45:12:49 | bytes : Byte[] [element] : Object | semmle.label | bytes : Byte[] [element] : Object | | Test.cs:15:20:15:61 | call to method GetString : String | semmle.label | call to method GetString : String | diff --git a/csharp/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest6.expected b/csharp/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest6.expected index f48ee60904b1..72271d088367 100644 --- a/csharp/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest6.expected +++ b/csharp/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest6.expected @@ -1,14 +1,14 @@ edges -| Test.cs:12:45:12:49 | bytes : Byte[] [element] : Object | Test.cs:15:56:15:60 | access to parameter bytes : Byte[] [element] : Object | -| Test.cs:15:56:15:60 | access to parameter bytes : Byte[] [element] : Object | Test.cs:15:20:15:61 | call to method GetString : String | -| Test.cs:23:42:23:59 | call to method GetStream : NetworkStream | Test.cs:25:29:25:34 | access to local variable stream : NetworkStream | -| Test.cs:25:29:25:34 | access to local variable stream : NetworkStream | Test.cs:25:41:25:46 | [post] access to local variable buffer : Byte[] [element] : Object | -| Test.cs:25:41:25:46 | [post] access to local variable buffer : Byte[] [element] : Object | Test.cs:28:99:28:104 | access to local variable buffer : Byte[] [element] : Object | -| Test.cs:28:85:28:105 | call to method BytesToString : String | Test.cs:28:42:28:111 | ... + ... | -| Test.cs:28:99:28:104 | access to local variable buffer : Byte[] [element] : Object | Test.cs:12:45:12:49 | bytes : Byte[] [element] : Object | -| Test.cs:28:99:28:104 | access to local variable buffer : Byte[] [element] : Object | Test.cs:28:85:28:105 | call to method BytesToString : String | -| Test.cs:34:29:34:69 | call to method ExecuteQuery : String | Test.cs:37:42:37:96 | ... + ... | -| Test.cs:62:29:62:48 | call to method GetCliArg : String | Test.cs:65:42:65:96 | ... + ... | +| Test.cs:12:45:12:49 | bytes : Byte[] [element] : Object | Test.cs:15:56:15:60 | access to parameter bytes : Byte[] [element] : Object | provenance | | +| Test.cs:15:56:15:60 | access to parameter bytes : Byte[] [element] : Object | Test.cs:15:20:15:61 | call to method GetString : String | provenance | | +| Test.cs:23:42:23:59 | call to method GetStream : NetworkStream | Test.cs:25:29:25:34 | access to local variable stream : NetworkStream | provenance | | +| Test.cs:25:29:25:34 | access to local variable stream : NetworkStream | Test.cs:25:41:25:46 | [post] access to local variable buffer : Byte[] [element] : Object | provenance | | +| Test.cs:25:41:25:46 | [post] access to local variable buffer : Byte[] [element] : Object | Test.cs:28:99:28:104 | access to local variable buffer : Byte[] [element] : Object | provenance | | +| Test.cs:28:85:28:105 | call to method BytesToString : String | Test.cs:28:42:28:111 | ... + ... | provenance | | +| Test.cs:28:99:28:104 | access to local variable buffer : Byte[] [element] : Object | Test.cs:12:45:12:49 | bytes : Byte[] [element] : Object | provenance | | +| Test.cs:28:99:28:104 | access to local variable buffer : Byte[] [element] : Object | Test.cs:28:85:28:105 | call to method BytesToString : String | provenance | | +| Test.cs:34:29:34:69 | call to method ExecuteQuery : String | Test.cs:37:42:37:96 | ... + ... | provenance | | +| Test.cs:62:29:62:48 | call to method GetCliArg : String | Test.cs:65:42:65:96 | ... + ... | provenance | | nodes | Test.cs:12:45:12:49 | bytes : Byte[] [element] : Object | semmle.label | bytes : Byte[] [element] : Object | | Test.cs:15:20:15:61 | call to method GetString : String | semmle.label | call to method GetString : String | diff --git a/csharp/ql/test/library-tests/dataflow/tuples/Tuples.expected b/csharp/ql/test/library-tests/dataflow/tuples/Tuples.expected index 95c39fd302cc..e93d25ad84ab 100644 --- a/csharp/ql/test/library-tests/dataflow/tuples/Tuples.expected +++ b/csharp/ql/test/library-tests/dataflow/tuples/Tuples.expected @@ -1,205 +1,205 @@ testFailures edges -| Tuples.cs:7:18:7:34 | call to method Source : Object | Tuples.cs:10:21:10:22 | access to local variable o1 : Object | -| Tuples.cs:7:18:7:34 | call to method Source : Object | Tuples.cs:10:21:10:22 | access to local variable o1 : Object | -| Tuples.cs:8:18:8:34 | call to method Source : Object | Tuples.cs:10:29:10:30 | access to local variable o2 : Object | -| Tuples.cs:8:18:8:34 | call to method Source : Object | Tuples.cs:10:29:10:30 | access to local variable o2 : Object | -| Tuples.cs:10:17:10:32 | (..., ...) : ValueTuple> [field Item1] : Object | Tuples.cs:11:9:11:23 | (..., ...) : ValueTuple> [field Item1] : Object | -| Tuples.cs:10:17:10:32 | (..., ...) : ValueTuple> [field Item1] : Object | Tuples.cs:11:9:11:23 | (..., ...) : ValueTuple> [field Item1] : Object | -| Tuples.cs:10:17:10:32 | (..., ...) : ValueTuple> [field Item1] : Object | Tuples.cs:16:9:16:19 | (..., ...) : ValueTuple> [field Item1] : Object | -| Tuples.cs:10:17:10:32 | (..., ...) : ValueTuple> [field Item1] : Object | Tuples.cs:16:9:16:19 | (..., ...) : ValueTuple> [field Item1] : Object | -| Tuples.cs:10:17:10:32 | (..., ...) : ValueTuple> [field Item1] : Object | Tuples.cs:21:9:21:22 | (..., ...) : ValueTuple> [field Item1] : Object | -| Tuples.cs:10:17:10:32 | (..., ...) : ValueTuple> [field Item1] : Object | Tuples.cs:21:9:21:22 | (..., ...) : ValueTuple> [field Item1] : Object | -| Tuples.cs:10:17:10:32 | (..., ...) : ValueTuple> [field Item1] : Object | Tuples.cs:26:14:26:14 | access to local variable x : ValueTuple> [field Item1] : Object | -| Tuples.cs:10:17:10:32 | (..., ...) : ValueTuple> [field Item1] : Object | Tuples.cs:26:14:26:14 | access to local variable x : ValueTuple> [field Item1] : Object | -| Tuples.cs:10:17:10:32 | (..., ...) : ValueTuple> [field Item1] : Object | Tuples.cs:27:14:27:14 | access to local variable x : ValueTuple> [field Item1] : Object | -| Tuples.cs:10:17:10:32 | (..., ...) : ValueTuple> [field Item1] : Object | Tuples.cs:27:14:27:14 | access to local variable x : ValueTuple> [field Item1] : Object | -| Tuples.cs:10:17:10:32 | (..., ...) : ValueTuple> [field Item2, field Item2] : Object | Tuples.cs:11:9:11:23 | (..., ...) : ValueTuple> [field Item2, field Item2] : Object | -| Tuples.cs:10:17:10:32 | (..., ...) : ValueTuple> [field Item2, field Item2] : Object | Tuples.cs:11:9:11:23 | (..., ...) : ValueTuple> [field Item2, field Item2] : Object | -| Tuples.cs:10:17:10:32 | (..., ...) : ValueTuple> [field Item2, field Item2] : Object | Tuples.cs:16:9:16:19 | (..., ...) : ValueTuple> [field Item2, field Item2] : Object | -| Tuples.cs:10:17:10:32 | (..., ...) : ValueTuple> [field Item2, field Item2] : Object | Tuples.cs:16:9:16:19 | (..., ...) : ValueTuple> [field Item2, field Item2] : Object | -| Tuples.cs:10:17:10:32 | (..., ...) : ValueTuple> [field Item2, field Item2] : Object | Tuples.cs:21:9:21:22 | (..., ...) : ValueTuple> [field Item2, field Item2] : Object | -| Tuples.cs:10:17:10:32 | (..., ...) : ValueTuple> [field Item2, field Item2] : Object | Tuples.cs:21:9:21:22 | (..., ...) : ValueTuple> [field Item2, field Item2] : Object | -| Tuples.cs:10:17:10:32 | (..., ...) : ValueTuple> [field Item2, field Item2] : Object | Tuples.cs:29:14:29:14 | access to local variable x : ValueTuple> [field Item2, field Item2] : Object | -| Tuples.cs:10:17:10:32 | (..., ...) : ValueTuple> [field Item2, field Item2] : Object | Tuples.cs:29:14:29:14 | access to local variable x : ValueTuple> [field Item2, field Item2] : Object | -| Tuples.cs:10:21:10:22 | access to local variable o1 : Object | Tuples.cs:10:17:10:32 | (..., ...) : ValueTuple> [field Item1] : Object | -| Tuples.cs:10:21:10:22 | access to local variable o1 : Object | Tuples.cs:10:17:10:32 | (..., ...) : ValueTuple> [field Item1] : Object | -| Tuples.cs:10:25:10:31 | (..., ...) : ValueTuple [field Item2] : Object | Tuples.cs:10:17:10:32 | (..., ...) : ValueTuple> [field Item2, field Item2] : Object | -| Tuples.cs:10:25:10:31 | (..., ...) : ValueTuple [field Item2] : Object | Tuples.cs:10:17:10:32 | (..., ...) : ValueTuple> [field Item2, field Item2] : Object | -| Tuples.cs:10:29:10:30 | access to local variable o2 : Object | Tuples.cs:10:25:10:31 | (..., ...) : ValueTuple [field Item2] : Object | -| Tuples.cs:10:29:10:30 | access to local variable o2 : Object | Tuples.cs:10:25:10:31 | (..., ...) : ValueTuple [field Item2] : Object | -| Tuples.cs:11:9:11:23 | (..., ...) : ValueTuple [field Item2] : Object | Tuples.cs:11:9:11:27 | SSA def(c) : Object | -| Tuples.cs:11:9:11:23 | (..., ...) : ValueTuple [field Item2] : Object | Tuples.cs:11:9:11:27 | SSA def(c) : Object | -| Tuples.cs:11:9:11:23 | (..., ...) : ValueTuple> [field Item1] : Object | Tuples.cs:11:9:11:27 | SSA def(a) : Object | -| Tuples.cs:11:9:11:23 | (..., ...) : ValueTuple> [field Item1] : Object | Tuples.cs:11:9:11:27 | SSA def(a) : Object | -| Tuples.cs:11:9:11:23 | (..., ...) : ValueTuple> [field Item2, field Item2] : Object | Tuples.cs:11:9:11:23 | (..., ...) : ValueTuple [field Item2] : Object | -| Tuples.cs:11:9:11:23 | (..., ...) : ValueTuple> [field Item2, field Item2] : Object | Tuples.cs:11:9:11:23 | (..., ...) : ValueTuple [field Item2] : Object | -| Tuples.cs:11:9:11:27 | SSA def(a) : Object | Tuples.cs:12:14:12:14 | access to local variable a | -| Tuples.cs:11:9:11:27 | SSA def(a) : Object | Tuples.cs:12:14:12:14 | access to local variable a | -| Tuples.cs:11:9:11:27 | SSA def(c) : Object | Tuples.cs:14:14:14:14 | access to local variable c | -| Tuples.cs:11:9:11:27 | SSA def(c) : Object | Tuples.cs:14:14:14:14 | access to local variable c | -| Tuples.cs:16:9:16:19 | (..., ...) : ValueTuple> [field Item1] : Object | Tuples.cs:16:9:16:23 | SSA def(a) : Object | -| Tuples.cs:16:9:16:19 | (..., ...) : ValueTuple> [field Item1] : Object | Tuples.cs:16:9:16:23 | SSA def(a) : Object | -| Tuples.cs:16:9:16:19 | (..., ...) : ValueTuple> [field Item2, field Item2] : Object | Tuples.cs:16:13:16:18 | (..., ...) : ValueTuple [field Item2] : Object | -| Tuples.cs:16:9:16:19 | (..., ...) : ValueTuple> [field Item2, field Item2] : Object | Tuples.cs:16:13:16:18 | (..., ...) : ValueTuple [field Item2] : Object | -| Tuples.cs:16:9:16:23 | SSA def(a) : Object | Tuples.cs:17:14:17:14 | access to local variable a | -| Tuples.cs:16:9:16:23 | SSA def(a) : Object | Tuples.cs:17:14:17:14 | access to local variable a | -| Tuples.cs:16:9:16:23 | SSA def(c) : Object | Tuples.cs:19:14:19:14 | access to local variable c | -| Tuples.cs:16:9:16:23 | SSA def(c) : Object | Tuples.cs:19:14:19:14 | access to local variable c | -| Tuples.cs:16:13:16:18 | (..., ...) : ValueTuple [field Item2] : Object | Tuples.cs:16:9:16:23 | SSA def(c) : Object | -| Tuples.cs:16:13:16:18 | (..., ...) : ValueTuple [field Item2] : Object | Tuples.cs:16:9:16:23 | SSA def(c) : Object | -| Tuples.cs:21:9:21:22 | (..., ...) : ValueTuple> [field Item1] : Object | Tuples.cs:21:9:21:26 | SSA def(p) : Object | -| Tuples.cs:21:9:21:22 | (..., ...) : ValueTuple> [field Item1] : Object | Tuples.cs:21:9:21:26 | SSA def(p) : Object | -| Tuples.cs:21:9:21:22 | (..., ...) : ValueTuple> [field Item2, field Item2] : Object | Tuples.cs:21:9:21:26 | SSA def(q) : ValueTuple [field Item2] : Object | -| Tuples.cs:21:9:21:22 | (..., ...) : ValueTuple> [field Item2, field Item2] : Object | Tuples.cs:21:9:21:26 | SSA def(q) : ValueTuple [field Item2] : Object | -| Tuples.cs:21:9:21:26 | SSA def(p) : Object | Tuples.cs:22:14:22:14 | access to local variable p | -| Tuples.cs:21:9:21:26 | SSA def(p) : Object | Tuples.cs:22:14:22:14 | access to local variable p | -| Tuples.cs:21:9:21:26 | SSA def(q) : ValueTuple [field Item2] : Object | Tuples.cs:24:14:24:14 | access to local variable q : ValueTuple [field Item2] : Object | -| Tuples.cs:21:9:21:26 | SSA def(q) : ValueTuple [field Item2] : Object | Tuples.cs:24:14:24:14 | access to local variable q : ValueTuple [field Item2] : Object | -| Tuples.cs:24:14:24:14 | access to local variable q : ValueTuple [field Item2] : Object | Tuples.cs:24:14:24:20 | access to field Item2 | -| Tuples.cs:24:14:24:14 | access to local variable q : ValueTuple [field Item2] : Object | Tuples.cs:24:14:24:20 | access to field Item2 | -| Tuples.cs:26:14:26:14 | access to local variable x : ValueTuple> [field Item1] : Object | Tuples.cs:26:14:26:20 | access to field Item1 | -| Tuples.cs:26:14:26:14 | access to local variable x : ValueTuple> [field Item1] : Object | Tuples.cs:26:14:26:20 | access to field Item1 | -| Tuples.cs:27:14:27:14 | access to local variable x : ValueTuple> [field Item1] : Object | Tuples.cs:27:14:27:16 | access to field Item1 | -| Tuples.cs:27:14:27:14 | access to local variable x : ValueTuple> [field Item1] : Object | Tuples.cs:27:14:27:16 | access to field Item1 | -| Tuples.cs:29:14:29:14 | access to local variable x : ValueTuple> [field Item2, field Item2] : Object | Tuples.cs:29:14:29:20 | access to field Item2 : ValueTuple [field Item2] : Object | -| Tuples.cs:29:14:29:14 | access to local variable x : ValueTuple> [field Item2, field Item2] : Object | Tuples.cs:29:14:29:20 | access to field Item2 : ValueTuple [field Item2] : Object | -| Tuples.cs:29:14:29:20 | access to field Item2 : ValueTuple [field Item2] : Object | Tuples.cs:29:14:29:26 | access to field Item2 | -| Tuples.cs:29:14:29:20 | access to field Item2 : ValueTuple [field Item2] : Object | Tuples.cs:29:14:29:26 | access to field Item2 | -| Tuples.cs:34:18:34:34 | call to method Source : Object | Tuples.cs:37:18:37:19 | access to local variable o1 : Object | -| Tuples.cs:34:18:34:34 | call to method Source : Object | Tuples.cs:37:18:37:19 | access to local variable o1 : Object | -| Tuples.cs:35:18:35:34 | call to method Source : Object | Tuples.cs:37:46:37:47 | access to local variable o2 : Object | -| Tuples.cs:35:18:35:34 | call to method Source : Object | Tuples.cs:37:46:37:47 | access to local variable o2 : Object | -| Tuples.cs:37:17:37:48 | (..., ...) : ValueTuple> [field Item1] : Object | Tuples.cs:38:14:38:14 | access to local variable x : ValueTuple> [field Item1] : Object | -| Tuples.cs:37:17:37:48 | (..., ...) : ValueTuple> [field Item1] : Object | Tuples.cs:38:14:38:14 | access to local variable x : ValueTuple> [field Item1] : Object | -| Tuples.cs:37:17:37:48 | (..., ...) : ValueTuple> [field Item10] : Object | Tuples.cs:40:14:40:14 | access to local variable x : ValueTuple> [field Item10] : Object | -| Tuples.cs:37:17:37:48 | (..., ...) : ValueTuple> [field Item10] : Object | Tuples.cs:40:14:40:14 | access to local variable x : ValueTuple> [field Item10] : Object | -| Tuples.cs:37:18:37:19 | access to local variable o1 : Object | Tuples.cs:37:17:37:48 | (..., ...) : ValueTuple> [field Item1] : Object | -| Tuples.cs:37:18:37:19 | access to local variable o1 : Object | Tuples.cs:37:17:37:48 | (..., ...) : ValueTuple> [field Item1] : Object | -| Tuples.cs:37:46:37:47 | access to local variable o2 : Object | Tuples.cs:37:17:37:48 | (..., ...) : ValueTuple> [field Item10] : Object | -| Tuples.cs:37:46:37:47 | access to local variable o2 : Object | Tuples.cs:37:17:37:48 | (..., ...) : ValueTuple> [field Item10] : Object | -| Tuples.cs:38:14:38:14 | access to local variable x : ValueTuple> [field Item1] : Object | Tuples.cs:38:14:38:20 | access to field Item1 | -| Tuples.cs:38:14:38:14 | access to local variable x : ValueTuple> [field Item1] : Object | Tuples.cs:38:14:38:20 | access to field Item1 | -| Tuples.cs:40:14:40:14 | access to local variable x : ValueTuple> [field Item10] : Object | Tuples.cs:40:14:40:21 | access to field Item10 | -| Tuples.cs:40:14:40:14 | access to local variable x : ValueTuple> [field Item10] : Object | Tuples.cs:40:14:40:21 | access to field Item10 | -| Tuples.cs:45:17:45:33 | call to method Source : String | Tuples.cs:46:48:46:48 | access to local variable o : String | -| Tuples.cs:45:17:45:33 | call to method Source : String | Tuples.cs:46:48:46:48 | access to local variable o : String | -| Tuples.cs:46:17:46:55 | (...) ... : ValueTuple [field Item1] : String | Tuples.cs:47:14:47:14 | access to local variable x : ValueTuple [field Item1] : String | -| Tuples.cs:46:17:46:55 | (...) ... : ValueTuple [field Item1] : String | Tuples.cs:47:14:47:14 | access to local variable x : ValueTuple [field Item1] : String | -| Tuples.cs:46:47:46:55 | (..., ...) : ValueTuple [field Item1] : String | Tuples.cs:46:17:46:55 | (...) ... : ValueTuple [field Item1] : String | -| Tuples.cs:46:47:46:55 | (..., ...) : ValueTuple [field Item1] : String | Tuples.cs:46:17:46:55 | (...) ... : ValueTuple [field Item1] : String | -| Tuples.cs:46:48:46:48 | access to local variable o : String | Tuples.cs:46:47:46:55 | (..., ...) : ValueTuple [field Item1] : String | -| Tuples.cs:46:48:46:48 | access to local variable o : String | Tuples.cs:46:47:46:55 | (..., ...) : ValueTuple [field Item1] : String | -| Tuples.cs:47:14:47:14 | access to local variable x : ValueTuple [field Item1] : String | Tuples.cs:47:14:47:20 | access to field Item1 | -| Tuples.cs:47:14:47:14 | access to local variable x : ValueTuple [field Item1] : String | Tuples.cs:47:14:47:20 | access to field Item1 | -| Tuples.cs:57:18:57:34 | call to method Source : String | Tuples.cs:59:18:59:19 | access to local variable o1 : String | -| Tuples.cs:57:18:57:34 | call to method Source : String | Tuples.cs:59:18:59:19 | access to local variable o1 : String | -| Tuples.cs:58:18:58:34 | call to method Source : String | Tuples.cs:59:26:59:27 | access to local variable o2 : String | -| Tuples.cs:58:18:58:34 | call to method Source : String | Tuples.cs:59:26:59:27 | access to local variable o2 : String | -| Tuples.cs:59:17:59:32 | (..., ...) : ValueTuple,Int32> [field Item1] : String | Tuples.cs:62:18:62:57 | SSA def(t) : ValueTuple,Int32> [field Item1] : String | -| Tuples.cs:59:17:59:32 | (..., ...) : ValueTuple,Int32> [field Item1] : String | Tuples.cs:62:18:62:57 | SSA def(t) : ValueTuple,Int32> [field Item1] : String | -| Tuples.cs:59:17:59:32 | (..., ...) : ValueTuple,Int32> [field Item1] : String | Tuples.cs:67:18:67:35 | (..., ...) : ValueTuple,Int32> [field Item1] : String | -| Tuples.cs:59:17:59:32 | (..., ...) : ValueTuple,Int32> [field Item1] : String | Tuples.cs:67:18:67:35 | (..., ...) : ValueTuple,Int32> [field Item1] : String | -| Tuples.cs:59:17:59:32 | (..., ...) : ValueTuple,Int32> [field Item1] : String | Tuples.cs:87:18:87:35 | (..., ...) : ValueTuple,Int32> [field Item1] : String | -| Tuples.cs:59:17:59:32 | (..., ...) : ValueTuple,Int32> [field Item1] : String | Tuples.cs:87:18:87:35 | (..., ...) : ValueTuple,Int32> [field Item1] : String | -| Tuples.cs:59:17:59:32 | (..., ...) : ValueTuple,Int32> [field Item2, field Item2] : String | Tuples.cs:62:18:62:57 | SSA def(t) : ValueTuple,Int32> [field Item2, field Item2] : String | -| Tuples.cs:59:17:59:32 | (..., ...) : ValueTuple,Int32> [field Item2, field Item2] : String | Tuples.cs:62:18:62:57 | SSA def(t) : ValueTuple,Int32> [field Item2, field Item2] : String | -| Tuples.cs:59:17:59:32 | (..., ...) : ValueTuple,Int32> [field Item2, field Item2] : String | Tuples.cs:67:18:67:35 | (..., ...) : ValueTuple,Int32> [field Item2, field Item2] : String | -| Tuples.cs:59:17:59:32 | (..., ...) : ValueTuple,Int32> [field Item2, field Item2] : String | Tuples.cs:67:18:67:35 | (..., ...) : ValueTuple,Int32> [field Item2, field Item2] : String | -| Tuples.cs:59:17:59:32 | (..., ...) : ValueTuple,Int32> [field Item2, field Item2] : String | Tuples.cs:87:18:87:35 | (..., ...) : ValueTuple,Int32> [field Item2, field Item2] : String | -| Tuples.cs:59:17:59:32 | (..., ...) : ValueTuple,Int32> [field Item2, field Item2] : String | Tuples.cs:87:18:87:35 | (..., ...) : ValueTuple,Int32> [field Item2, field Item2] : String | -| Tuples.cs:59:18:59:19 | access to local variable o1 : String | Tuples.cs:59:17:59:32 | (..., ...) : ValueTuple,Int32> [field Item1] : String | -| Tuples.cs:59:18:59:19 | access to local variable o1 : String | Tuples.cs:59:17:59:32 | (..., ...) : ValueTuple,Int32> [field Item1] : String | -| Tuples.cs:59:22:59:28 | (..., ...) : ValueTuple [field Item2] : String | Tuples.cs:59:17:59:32 | (..., ...) : ValueTuple,Int32> [field Item2, field Item2] : String | -| Tuples.cs:59:22:59:28 | (..., ...) : ValueTuple [field Item2] : String | Tuples.cs:59:17:59:32 | (..., ...) : ValueTuple,Int32> [field Item2, field Item2] : String | -| Tuples.cs:59:26:59:27 | access to local variable o2 : String | Tuples.cs:59:22:59:28 | (..., ...) : ValueTuple [field Item2] : String | -| Tuples.cs:59:26:59:27 | access to local variable o2 : String | Tuples.cs:59:22:59:28 | (..., ...) : ValueTuple [field Item2] : String | -| Tuples.cs:62:18:62:57 | SSA def(t) : ValueTuple,Int32> [field Item1] : String | Tuples.cs:63:22:63:22 | access to local variable t : ValueTuple,Int32> [field Item1] : String | -| Tuples.cs:62:18:62:57 | SSA def(t) : ValueTuple,Int32> [field Item1] : String | Tuples.cs:63:22:63:22 | access to local variable t : ValueTuple,Int32> [field Item1] : String | -| Tuples.cs:62:18:62:57 | SSA def(t) : ValueTuple,Int32> [field Item2, field Item2] : String | Tuples.cs:64:22:64:22 | access to local variable t : ValueTuple,Int32> [field Item2, field Item2] : String | -| Tuples.cs:62:18:62:57 | SSA def(t) : ValueTuple,Int32> [field Item2, field Item2] : String | Tuples.cs:64:22:64:22 | access to local variable t : ValueTuple,Int32> [field Item2, field Item2] : String | -| Tuples.cs:63:22:63:22 | access to local variable t : ValueTuple,Int32> [field Item1] : String | Tuples.cs:63:22:63:28 | access to field Item1 | -| Tuples.cs:63:22:63:22 | access to local variable t : ValueTuple,Int32> [field Item1] : String | Tuples.cs:63:22:63:28 | access to field Item1 | -| Tuples.cs:64:22:64:22 | access to local variable t : ValueTuple,Int32> [field Item2, field Item2] : String | Tuples.cs:64:22:64:28 | access to field Item2 : ValueTuple [field Item2] : String | -| Tuples.cs:64:22:64:22 | access to local variable t : ValueTuple,Int32> [field Item2, field Item2] : String | Tuples.cs:64:22:64:28 | access to field Item2 : ValueTuple [field Item2] : String | -| Tuples.cs:64:22:64:28 | access to field Item2 : ValueTuple [field Item2] : String | Tuples.cs:64:22:64:34 | access to field Item2 | -| Tuples.cs:64:22:64:28 | access to field Item2 : ValueTuple [field Item2] : String | Tuples.cs:64:22:64:34 | access to field Item2 | -| Tuples.cs:67:18:67:35 | (..., ...) : ValueTuple [field Item2] : String | Tuples.cs:67:30:67:30 | SSA def(c) : String | -| Tuples.cs:67:18:67:35 | (..., ...) : ValueTuple [field Item2] : String | Tuples.cs:67:30:67:30 | SSA def(c) : String | -| Tuples.cs:67:18:67:35 | (..., ...) : ValueTuple,Int32> [field Item1] : String | Tuples.cs:67:23:67:23 | SSA def(a) : String | -| Tuples.cs:67:18:67:35 | (..., ...) : ValueTuple,Int32> [field Item1] : String | Tuples.cs:67:23:67:23 | SSA def(a) : String | -| Tuples.cs:67:18:67:35 | (..., ...) : ValueTuple,Int32> [field Item2, field Item2] : String | Tuples.cs:67:18:67:35 | (..., ...) : ValueTuple [field Item2] : String | -| Tuples.cs:67:18:67:35 | (..., ...) : ValueTuple,Int32> [field Item2, field Item2] : String | Tuples.cs:67:18:67:35 | (..., ...) : ValueTuple [field Item2] : String | -| Tuples.cs:67:23:67:23 | SSA def(a) : String | Tuples.cs:68:22:68:22 | access to local variable a | -| Tuples.cs:67:23:67:23 | SSA def(a) : String | Tuples.cs:68:22:68:22 | access to local variable a | -| Tuples.cs:67:30:67:30 | SSA def(c) : String | Tuples.cs:69:22:69:22 | access to local variable c | -| Tuples.cs:67:30:67:30 | SSA def(c) : String | Tuples.cs:69:22:69:22 | access to local variable c | -| Tuples.cs:87:18:87:35 | (..., ...) : ValueTuple [field Item2] : String | Tuples.cs:87:30:87:30 | SSA def(r) : String | -| Tuples.cs:87:18:87:35 | (..., ...) : ValueTuple [field Item2] : String | Tuples.cs:87:30:87:30 | SSA def(r) : String | -| Tuples.cs:87:18:87:35 | (..., ...) : ValueTuple,Int32> [field Item1] : String | Tuples.cs:87:23:87:23 | SSA def(p) : String | -| Tuples.cs:87:18:87:35 | (..., ...) : ValueTuple,Int32> [field Item1] : String | Tuples.cs:87:23:87:23 | SSA def(p) : String | -| Tuples.cs:87:18:87:35 | (..., ...) : ValueTuple,Int32> [field Item2, field Item2] : String | Tuples.cs:87:18:87:35 | (..., ...) : ValueTuple [field Item2] : String | -| Tuples.cs:87:18:87:35 | (..., ...) : ValueTuple,Int32> [field Item2, field Item2] : String | Tuples.cs:87:18:87:35 | (..., ...) : ValueTuple [field Item2] : String | -| Tuples.cs:87:23:87:23 | SSA def(p) : String | Tuples.cs:89:18:89:18 | access to local variable p | -| Tuples.cs:87:23:87:23 | SSA def(p) : String | Tuples.cs:89:18:89:18 | access to local variable p | -| Tuples.cs:87:30:87:30 | SSA def(r) : String | Tuples.cs:90:18:90:18 | access to local variable r | -| Tuples.cs:87:30:87:30 | SSA def(r) : String | Tuples.cs:90:18:90:18 | access to local variable r | -| Tuples.cs:99:17:99:33 | call to method Source : String | Tuples.cs:100:24:100:24 | access to local variable o : String | -| Tuples.cs:99:17:99:33 | call to method Source : String | Tuples.cs:100:24:100:24 | access to local variable o : String | -| Tuples.cs:100:17:100:28 | object creation of type R1 : R1 [property i] : String | Tuples.cs:101:14:101:14 | access to local variable r : R1 [property i] : String | -| Tuples.cs:100:17:100:28 | object creation of type R1 : R1 [property i] : String | Tuples.cs:101:14:101:14 | access to local variable r : R1 [property i] : String | -| Tuples.cs:100:24:100:24 | access to local variable o : String | Tuples.cs:100:17:100:28 | object creation of type R1 : R1 [property i] : String | -| Tuples.cs:100:24:100:24 | access to local variable o : String | Tuples.cs:100:17:100:28 | object creation of type R1 : R1 [property i] : String | -| Tuples.cs:101:14:101:14 | access to local variable r : R1 [property i] : String | Tuples.cs:101:14:101:16 | access to property i | -| Tuples.cs:101:14:101:14 | access to local variable r : R1 [property i] : String | Tuples.cs:101:14:101:16 | access to property i | -| Tuples.cs:118:17:118:33 | call to method Source : Object | Tuples.cs:121:28:121:28 | access to local variable o : Object | -| Tuples.cs:118:17:118:33 | call to method Source : Object | Tuples.cs:121:28:121:28 | access to local variable o : Object | -| Tuples.cs:118:17:118:33 | call to method Source : Object | Tuples.cs:122:14:122:15 | access to local variable x1 | -| Tuples.cs:118:17:118:33 | call to method Source : Object | Tuples.cs:122:14:122:15 | access to local variable x1 | -| Tuples.cs:118:17:118:33 | call to method Source : Object | Tuples.cs:125:25:125:25 | access to local variable o : Object | -| Tuples.cs:118:17:118:33 | call to method Source : Object | Tuples.cs:125:25:125:25 | access to local variable o : Object | -| Tuples.cs:118:17:118:33 | call to method Source : Object | Tuples.cs:126:14:126:15 | access to local variable x2 | -| Tuples.cs:118:17:118:33 | call to method Source : Object | Tuples.cs:126:14:126:15 | access to local variable x2 | -| Tuples.cs:118:17:118:33 | call to method Source : Object | Tuples.cs:129:31:129:31 | access to local variable o : Object | -| Tuples.cs:118:17:118:33 | call to method Source : Object | Tuples.cs:129:31:129:31 | access to local variable o : Object | -| Tuples.cs:118:17:118:33 | call to method Source : Object | Tuples.cs:130:14:130:15 | access to local variable y3 | -| Tuples.cs:118:17:118:33 | call to method Source : Object | Tuples.cs:130:14:130:15 | access to local variable y3 | -| Tuples.cs:118:17:118:33 | call to method Source : Object | Tuples.cs:133:28:133:28 | access to local variable o : Object | -| Tuples.cs:118:17:118:33 | call to method Source : Object | Tuples.cs:133:28:133:28 | access to local variable o : Object | -| Tuples.cs:118:17:118:33 | call to method Source : Object | Tuples.cs:134:14:134:15 | access to local variable y4 | -| Tuples.cs:118:17:118:33 | call to method Source : Object | Tuples.cs:134:14:134:15 | access to local variable y4 | -| Tuples.cs:121:9:121:23 | (..., ...) : ValueTuple [field Item1] : Object | Tuples.cs:121:9:121:32 | SSA def(x1) : Object | -| Tuples.cs:121:9:121:23 | (..., ...) : ValueTuple [field Item1] : Object | Tuples.cs:121:9:121:32 | SSA def(x1) : Object | -| Tuples.cs:121:9:121:32 | SSA def(x1) : Object | Tuples.cs:122:14:122:15 | access to local variable x1 | -| Tuples.cs:121:9:121:32 | SSA def(x1) : Object | Tuples.cs:122:14:122:15 | access to local variable x1 | -| Tuples.cs:121:27:121:32 | (..., ...) : ValueTuple [field Item1] : Object | Tuples.cs:121:9:121:23 | (..., ...) : ValueTuple [field Item1] : Object | -| Tuples.cs:121:27:121:32 | (..., ...) : ValueTuple [field Item1] : Object | Tuples.cs:121:9:121:23 | (..., ...) : ValueTuple [field Item1] : Object | -| Tuples.cs:121:28:121:28 | access to local variable o : Object | Tuples.cs:121:27:121:32 | (..., ...) : ValueTuple [field Item1] : Object | -| Tuples.cs:121:28:121:28 | access to local variable o : Object | Tuples.cs:121:27:121:32 | (..., ...) : ValueTuple [field Item1] : Object | -| Tuples.cs:125:9:125:20 | (..., ...) : ValueTuple [field Item1] : Object | Tuples.cs:125:9:125:29 | SSA def(x2) : Object | -| Tuples.cs:125:9:125:20 | (..., ...) : ValueTuple [field Item1] : Object | Tuples.cs:125:9:125:29 | SSA def(x2) : Object | -| Tuples.cs:125:9:125:29 | SSA def(x2) : Object | Tuples.cs:126:14:126:15 | access to local variable x2 | -| Tuples.cs:125:9:125:29 | SSA def(x2) : Object | Tuples.cs:126:14:126:15 | access to local variable x2 | -| Tuples.cs:125:24:125:29 | (..., ...) : ValueTuple [field Item1] : Object | Tuples.cs:125:9:125:20 | (..., ...) : ValueTuple [field Item1] : Object | -| Tuples.cs:125:24:125:29 | (..., ...) : ValueTuple [field Item1] : Object | Tuples.cs:125:9:125:20 | (..., ...) : ValueTuple [field Item1] : Object | -| Tuples.cs:125:25:125:25 | access to local variable o : Object | Tuples.cs:125:24:125:29 | (..., ...) : ValueTuple [field Item1] : Object | -| Tuples.cs:125:25:125:25 | access to local variable o : Object | Tuples.cs:125:24:125:29 | (..., ...) : ValueTuple [field Item1] : Object | -| Tuples.cs:129:9:129:23 | (..., ...) : ValueTuple [field Item2] : Object | Tuples.cs:129:9:129:32 | SSA def(y3) : Object | -| Tuples.cs:129:9:129:23 | (..., ...) : ValueTuple [field Item2] : Object | Tuples.cs:129:9:129:32 | SSA def(y3) : Object | -| Tuples.cs:129:9:129:32 | SSA def(y3) : Object | Tuples.cs:130:14:130:15 | access to local variable y3 | -| Tuples.cs:129:9:129:32 | SSA def(y3) : Object | Tuples.cs:130:14:130:15 | access to local variable y3 | -| Tuples.cs:129:27:129:32 | (..., ...) : ValueTuple [field Item2] : Object | Tuples.cs:129:9:129:23 | (..., ...) : ValueTuple [field Item2] : Object | -| Tuples.cs:129:27:129:32 | (..., ...) : ValueTuple [field Item2] : Object | Tuples.cs:129:9:129:23 | (..., ...) : ValueTuple [field Item2] : Object | -| Tuples.cs:129:31:129:31 | access to local variable o : Object | Tuples.cs:129:27:129:32 | (..., ...) : ValueTuple [field Item2] : Object | -| Tuples.cs:129:31:129:31 | access to local variable o : Object | Tuples.cs:129:27:129:32 | (..., ...) : ValueTuple [field Item2] : Object | -| Tuples.cs:133:9:133:20 | (..., ...) : ValueTuple [field Item2] : Object | Tuples.cs:133:9:133:29 | SSA def(y4) : Object | -| Tuples.cs:133:9:133:20 | (..., ...) : ValueTuple [field Item2] : Object | Tuples.cs:133:9:133:29 | SSA def(y4) : Object | -| Tuples.cs:133:9:133:29 | SSA def(y4) : Object | Tuples.cs:134:14:134:15 | access to local variable y4 | -| Tuples.cs:133:9:133:29 | SSA def(y4) : Object | Tuples.cs:134:14:134:15 | access to local variable y4 | -| Tuples.cs:133:24:133:29 | (..., ...) : ValueTuple [field Item2] : Object | Tuples.cs:133:9:133:20 | (..., ...) : ValueTuple [field Item2] : Object | -| Tuples.cs:133:24:133:29 | (..., ...) : ValueTuple [field Item2] : Object | Tuples.cs:133:9:133:20 | (..., ...) : ValueTuple [field Item2] : Object | -| Tuples.cs:133:28:133:28 | access to local variable o : Object | Tuples.cs:133:24:133:29 | (..., ...) : ValueTuple [field Item2] : Object | -| Tuples.cs:133:28:133:28 | access to local variable o : Object | Tuples.cs:133:24:133:29 | (..., ...) : ValueTuple [field Item2] : Object | +| Tuples.cs:7:18:7:34 | call to method Source : Object | Tuples.cs:10:21:10:22 | access to local variable o1 : Object | provenance | | +| Tuples.cs:7:18:7:34 | call to method Source : Object | Tuples.cs:10:21:10:22 | access to local variable o1 : Object | provenance | | +| Tuples.cs:8:18:8:34 | call to method Source : Object | Tuples.cs:10:29:10:30 | access to local variable o2 : Object | provenance | | +| Tuples.cs:8:18:8:34 | call to method Source : Object | Tuples.cs:10:29:10:30 | access to local variable o2 : Object | provenance | | +| Tuples.cs:10:17:10:32 | (..., ...) : ValueTuple> [field Item1] : Object | Tuples.cs:11:9:11:23 | (..., ...) : ValueTuple> [field Item1] : Object | provenance | | +| Tuples.cs:10:17:10:32 | (..., ...) : ValueTuple> [field Item1] : Object | Tuples.cs:11:9:11:23 | (..., ...) : ValueTuple> [field Item1] : Object | provenance | | +| Tuples.cs:10:17:10:32 | (..., ...) : ValueTuple> [field Item1] : Object | Tuples.cs:16:9:16:19 | (..., ...) : ValueTuple> [field Item1] : Object | provenance | | +| Tuples.cs:10:17:10:32 | (..., ...) : ValueTuple> [field Item1] : Object | Tuples.cs:16:9:16:19 | (..., ...) : ValueTuple> [field Item1] : Object | provenance | | +| Tuples.cs:10:17:10:32 | (..., ...) : ValueTuple> [field Item1] : Object | Tuples.cs:21:9:21:22 | (..., ...) : ValueTuple> [field Item1] : Object | provenance | | +| Tuples.cs:10:17:10:32 | (..., ...) : ValueTuple> [field Item1] : Object | Tuples.cs:21:9:21:22 | (..., ...) : ValueTuple> [field Item1] : Object | provenance | | +| Tuples.cs:10:17:10:32 | (..., ...) : ValueTuple> [field Item1] : Object | Tuples.cs:26:14:26:14 | access to local variable x : ValueTuple> [field Item1] : Object | provenance | | +| Tuples.cs:10:17:10:32 | (..., ...) : ValueTuple> [field Item1] : Object | Tuples.cs:26:14:26:14 | access to local variable x : ValueTuple> [field Item1] : Object | provenance | | +| Tuples.cs:10:17:10:32 | (..., ...) : ValueTuple> [field Item1] : Object | Tuples.cs:27:14:27:14 | access to local variable x : ValueTuple> [field Item1] : Object | provenance | | +| Tuples.cs:10:17:10:32 | (..., ...) : ValueTuple> [field Item1] : Object | Tuples.cs:27:14:27:14 | access to local variable x : ValueTuple> [field Item1] : Object | provenance | | +| Tuples.cs:10:17:10:32 | (..., ...) : ValueTuple> [field Item2, field Item2] : Object | Tuples.cs:11:9:11:23 | (..., ...) : ValueTuple> [field Item2, field Item2] : Object | provenance | | +| Tuples.cs:10:17:10:32 | (..., ...) : ValueTuple> [field Item2, field Item2] : Object | Tuples.cs:11:9:11:23 | (..., ...) : ValueTuple> [field Item2, field Item2] : Object | provenance | | +| Tuples.cs:10:17:10:32 | (..., ...) : ValueTuple> [field Item2, field Item2] : Object | Tuples.cs:16:9:16:19 | (..., ...) : ValueTuple> [field Item2, field Item2] : Object | provenance | | +| Tuples.cs:10:17:10:32 | (..., ...) : ValueTuple> [field Item2, field Item2] : Object | Tuples.cs:16:9:16:19 | (..., ...) : ValueTuple> [field Item2, field Item2] : Object | provenance | | +| Tuples.cs:10:17:10:32 | (..., ...) : ValueTuple> [field Item2, field Item2] : Object | Tuples.cs:21:9:21:22 | (..., ...) : ValueTuple> [field Item2, field Item2] : Object | provenance | | +| Tuples.cs:10:17:10:32 | (..., ...) : ValueTuple> [field Item2, field Item2] : Object | Tuples.cs:21:9:21:22 | (..., ...) : ValueTuple> [field Item2, field Item2] : Object | provenance | | +| Tuples.cs:10:17:10:32 | (..., ...) : ValueTuple> [field Item2, field Item2] : Object | Tuples.cs:29:14:29:14 | access to local variable x : ValueTuple> [field Item2, field Item2] : Object | provenance | | +| Tuples.cs:10:17:10:32 | (..., ...) : ValueTuple> [field Item2, field Item2] : Object | Tuples.cs:29:14:29:14 | access to local variable x : ValueTuple> [field Item2, field Item2] : Object | provenance | | +| Tuples.cs:10:21:10:22 | access to local variable o1 : Object | Tuples.cs:10:17:10:32 | (..., ...) : ValueTuple> [field Item1] : Object | provenance | | +| Tuples.cs:10:21:10:22 | access to local variable o1 : Object | Tuples.cs:10:17:10:32 | (..., ...) : ValueTuple> [field Item1] : Object | provenance | | +| Tuples.cs:10:25:10:31 | (..., ...) : ValueTuple [field Item2] : Object | Tuples.cs:10:17:10:32 | (..., ...) : ValueTuple> [field Item2, field Item2] : Object | provenance | | +| Tuples.cs:10:25:10:31 | (..., ...) : ValueTuple [field Item2] : Object | Tuples.cs:10:17:10:32 | (..., ...) : ValueTuple> [field Item2, field Item2] : Object | provenance | | +| Tuples.cs:10:29:10:30 | access to local variable o2 : Object | Tuples.cs:10:25:10:31 | (..., ...) : ValueTuple [field Item2] : Object | provenance | | +| Tuples.cs:10:29:10:30 | access to local variable o2 : Object | Tuples.cs:10:25:10:31 | (..., ...) : ValueTuple [field Item2] : Object | provenance | | +| Tuples.cs:11:9:11:23 | (..., ...) : ValueTuple [field Item2] : Object | Tuples.cs:11:9:11:27 | SSA def(c) : Object | provenance | | +| Tuples.cs:11:9:11:23 | (..., ...) : ValueTuple [field Item2] : Object | Tuples.cs:11:9:11:27 | SSA def(c) : Object | provenance | | +| Tuples.cs:11:9:11:23 | (..., ...) : ValueTuple> [field Item1] : Object | Tuples.cs:11:9:11:27 | SSA def(a) : Object | provenance | | +| Tuples.cs:11:9:11:23 | (..., ...) : ValueTuple> [field Item1] : Object | Tuples.cs:11:9:11:27 | SSA def(a) : Object | provenance | | +| Tuples.cs:11:9:11:23 | (..., ...) : ValueTuple> [field Item2, field Item2] : Object | Tuples.cs:11:9:11:23 | (..., ...) : ValueTuple [field Item2] : Object | provenance | | +| Tuples.cs:11:9:11:23 | (..., ...) : ValueTuple> [field Item2, field Item2] : Object | Tuples.cs:11:9:11:23 | (..., ...) : ValueTuple [field Item2] : Object | provenance | | +| Tuples.cs:11:9:11:27 | SSA def(a) : Object | Tuples.cs:12:14:12:14 | access to local variable a | provenance | | +| Tuples.cs:11:9:11:27 | SSA def(a) : Object | Tuples.cs:12:14:12:14 | access to local variable a | provenance | | +| Tuples.cs:11:9:11:27 | SSA def(c) : Object | Tuples.cs:14:14:14:14 | access to local variable c | provenance | | +| Tuples.cs:11:9:11:27 | SSA def(c) : Object | Tuples.cs:14:14:14:14 | access to local variable c | provenance | | +| Tuples.cs:16:9:16:19 | (..., ...) : ValueTuple> [field Item1] : Object | Tuples.cs:16:9:16:23 | SSA def(a) : Object | provenance | | +| Tuples.cs:16:9:16:19 | (..., ...) : ValueTuple> [field Item1] : Object | Tuples.cs:16:9:16:23 | SSA def(a) : Object | provenance | | +| Tuples.cs:16:9:16:19 | (..., ...) : ValueTuple> [field Item2, field Item2] : Object | Tuples.cs:16:13:16:18 | (..., ...) : ValueTuple [field Item2] : Object | provenance | | +| Tuples.cs:16:9:16:19 | (..., ...) : ValueTuple> [field Item2, field Item2] : Object | Tuples.cs:16:13:16:18 | (..., ...) : ValueTuple [field Item2] : Object | provenance | | +| Tuples.cs:16:9:16:23 | SSA def(a) : Object | Tuples.cs:17:14:17:14 | access to local variable a | provenance | | +| Tuples.cs:16:9:16:23 | SSA def(a) : Object | Tuples.cs:17:14:17:14 | access to local variable a | provenance | | +| Tuples.cs:16:9:16:23 | SSA def(c) : Object | Tuples.cs:19:14:19:14 | access to local variable c | provenance | | +| Tuples.cs:16:9:16:23 | SSA def(c) : Object | Tuples.cs:19:14:19:14 | access to local variable c | provenance | | +| Tuples.cs:16:13:16:18 | (..., ...) : ValueTuple [field Item2] : Object | Tuples.cs:16:9:16:23 | SSA def(c) : Object | provenance | | +| Tuples.cs:16:13:16:18 | (..., ...) : ValueTuple [field Item2] : Object | Tuples.cs:16:9:16:23 | SSA def(c) : Object | provenance | | +| Tuples.cs:21:9:21:22 | (..., ...) : ValueTuple> [field Item1] : Object | Tuples.cs:21:9:21:26 | SSA def(p) : Object | provenance | | +| Tuples.cs:21:9:21:22 | (..., ...) : ValueTuple> [field Item1] : Object | Tuples.cs:21:9:21:26 | SSA def(p) : Object | provenance | | +| Tuples.cs:21:9:21:22 | (..., ...) : ValueTuple> [field Item2, field Item2] : Object | Tuples.cs:21:9:21:26 | SSA def(q) : ValueTuple [field Item2] : Object | provenance | | +| Tuples.cs:21:9:21:22 | (..., ...) : ValueTuple> [field Item2, field Item2] : Object | Tuples.cs:21:9:21:26 | SSA def(q) : ValueTuple [field Item2] : Object | provenance | | +| Tuples.cs:21:9:21:26 | SSA def(p) : Object | Tuples.cs:22:14:22:14 | access to local variable p | provenance | | +| Tuples.cs:21:9:21:26 | SSA def(p) : Object | Tuples.cs:22:14:22:14 | access to local variable p | provenance | | +| Tuples.cs:21:9:21:26 | SSA def(q) : ValueTuple [field Item2] : Object | Tuples.cs:24:14:24:14 | access to local variable q : ValueTuple [field Item2] : Object | provenance | | +| Tuples.cs:21:9:21:26 | SSA def(q) : ValueTuple [field Item2] : Object | Tuples.cs:24:14:24:14 | access to local variable q : ValueTuple [field Item2] : Object | provenance | | +| Tuples.cs:24:14:24:14 | access to local variable q : ValueTuple [field Item2] : Object | Tuples.cs:24:14:24:20 | access to field Item2 | provenance | | +| Tuples.cs:24:14:24:14 | access to local variable q : ValueTuple [field Item2] : Object | Tuples.cs:24:14:24:20 | access to field Item2 | provenance | | +| Tuples.cs:26:14:26:14 | access to local variable x : ValueTuple> [field Item1] : Object | Tuples.cs:26:14:26:20 | access to field Item1 | provenance | | +| Tuples.cs:26:14:26:14 | access to local variable x : ValueTuple> [field Item1] : Object | Tuples.cs:26:14:26:20 | access to field Item1 | provenance | | +| Tuples.cs:27:14:27:14 | access to local variable x : ValueTuple> [field Item1] : Object | Tuples.cs:27:14:27:16 | access to field Item1 | provenance | | +| Tuples.cs:27:14:27:14 | access to local variable x : ValueTuple> [field Item1] : Object | Tuples.cs:27:14:27:16 | access to field Item1 | provenance | | +| Tuples.cs:29:14:29:14 | access to local variable x : ValueTuple> [field Item2, field Item2] : Object | Tuples.cs:29:14:29:20 | access to field Item2 : ValueTuple [field Item2] : Object | provenance | | +| Tuples.cs:29:14:29:14 | access to local variable x : ValueTuple> [field Item2, field Item2] : Object | Tuples.cs:29:14:29:20 | access to field Item2 : ValueTuple [field Item2] : Object | provenance | | +| Tuples.cs:29:14:29:20 | access to field Item2 : ValueTuple [field Item2] : Object | Tuples.cs:29:14:29:26 | access to field Item2 | provenance | | +| Tuples.cs:29:14:29:20 | access to field Item2 : ValueTuple [field Item2] : Object | Tuples.cs:29:14:29:26 | access to field Item2 | provenance | | +| Tuples.cs:34:18:34:34 | call to method Source : Object | Tuples.cs:37:18:37:19 | access to local variable o1 : Object | provenance | | +| Tuples.cs:34:18:34:34 | call to method Source : Object | Tuples.cs:37:18:37:19 | access to local variable o1 : Object | provenance | | +| Tuples.cs:35:18:35:34 | call to method Source : Object | Tuples.cs:37:46:37:47 | access to local variable o2 : Object | provenance | | +| Tuples.cs:35:18:35:34 | call to method Source : Object | Tuples.cs:37:46:37:47 | access to local variable o2 : Object | provenance | | +| Tuples.cs:37:17:37:48 | (..., ...) : ValueTuple> [field Item1] : Object | Tuples.cs:38:14:38:14 | access to local variable x : ValueTuple> [field Item1] : Object | provenance | | +| Tuples.cs:37:17:37:48 | (..., ...) : ValueTuple> [field Item1] : Object | Tuples.cs:38:14:38:14 | access to local variable x : ValueTuple> [field Item1] : Object | provenance | | +| Tuples.cs:37:17:37:48 | (..., ...) : ValueTuple> [field Item10] : Object | Tuples.cs:40:14:40:14 | access to local variable x : ValueTuple> [field Item10] : Object | provenance | | +| Tuples.cs:37:17:37:48 | (..., ...) : ValueTuple> [field Item10] : Object | Tuples.cs:40:14:40:14 | access to local variable x : ValueTuple> [field Item10] : Object | provenance | | +| Tuples.cs:37:18:37:19 | access to local variable o1 : Object | Tuples.cs:37:17:37:48 | (..., ...) : ValueTuple> [field Item1] : Object | provenance | | +| Tuples.cs:37:18:37:19 | access to local variable o1 : Object | Tuples.cs:37:17:37:48 | (..., ...) : ValueTuple> [field Item1] : Object | provenance | | +| Tuples.cs:37:46:37:47 | access to local variable o2 : Object | Tuples.cs:37:17:37:48 | (..., ...) : ValueTuple> [field Item10] : Object | provenance | | +| Tuples.cs:37:46:37:47 | access to local variable o2 : Object | Tuples.cs:37:17:37:48 | (..., ...) : ValueTuple> [field Item10] : Object | provenance | | +| Tuples.cs:38:14:38:14 | access to local variable x : ValueTuple> [field Item1] : Object | Tuples.cs:38:14:38:20 | access to field Item1 | provenance | | +| Tuples.cs:38:14:38:14 | access to local variable x : ValueTuple> [field Item1] : Object | Tuples.cs:38:14:38:20 | access to field Item1 | provenance | | +| Tuples.cs:40:14:40:14 | access to local variable x : ValueTuple> [field Item10] : Object | Tuples.cs:40:14:40:21 | access to field Item10 | provenance | | +| Tuples.cs:40:14:40:14 | access to local variable x : ValueTuple> [field Item10] : Object | Tuples.cs:40:14:40:21 | access to field Item10 | provenance | | +| Tuples.cs:45:17:45:33 | call to method Source : String | Tuples.cs:46:48:46:48 | access to local variable o : String | provenance | | +| Tuples.cs:45:17:45:33 | call to method Source : String | Tuples.cs:46:48:46:48 | access to local variable o : String | provenance | | +| Tuples.cs:46:17:46:55 | (...) ... : ValueTuple [field Item1] : String | Tuples.cs:47:14:47:14 | access to local variable x : ValueTuple [field Item1] : String | provenance | | +| Tuples.cs:46:17:46:55 | (...) ... : ValueTuple [field Item1] : String | Tuples.cs:47:14:47:14 | access to local variable x : ValueTuple [field Item1] : String | provenance | | +| Tuples.cs:46:47:46:55 | (..., ...) : ValueTuple [field Item1] : String | Tuples.cs:46:17:46:55 | (...) ... : ValueTuple [field Item1] : String | provenance | | +| Tuples.cs:46:47:46:55 | (..., ...) : ValueTuple [field Item1] : String | Tuples.cs:46:17:46:55 | (...) ... : ValueTuple [field Item1] : String | provenance | | +| Tuples.cs:46:48:46:48 | access to local variable o : String | Tuples.cs:46:47:46:55 | (..., ...) : ValueTuple [field Item1] : String | provenance | | +| Tuples.cs:46:48:46:48 | access to local variable o : String | Tuples.cs:46:47:46:55 | (..., ...) : ValueTuple [field Item1] : String | provenance | | +| Tuples.cs:47:14:47:14 | access to local variable x : ValueTuple [field Item1] : String | Tuples.cs:47:14:47:20 | access to field Item1 | provenance | | +| Tuples.cs:47:14:47:14 | access to local variable x : ValueTuple [field Item1] : String | Tuples.cs:47:14:47:20 | access to field Item1 | provenance | | +| Tuples.cs:57:18:57:34 | call to method Source : String | Tuples.cs:59:18:59:19 | access to local variable o1 : String | provenance | | +| Tuples.cs:57:18:57:34 | call to method Source : String | Tuples.cs:59:18:59:19 | access to local variable o1 : String | provenance | | +| Tuples.cs:58:18:58:34 | call to method Source : String | Tuples.cs:59:26:59:27 | access to local variable o2 : String | provenance | | +| Tuples.cs:58:18:58:34 | call to method Source : String | Tuples.cs:59:26:59:27 | access to local variable o2 : String | provenance | | +| Tuples.cs:59:17:59:32 | (..., ...) : ValueTuple,Int32> [field Item1] : String | Tuples.cs:62:18:62:57 | SSA def(t) : ValueTuple,Int32> [field Item1] : String | provenance | | +| Tuples.cs:59:17:59:32 | (..., ...) : ValueTuple,Int32> [field Item1] : String | Tuples.cs:62:18:62:57 | SSA def(t) : ValueTuple,Int32> [field Item1] : String | provenance | | +| Tuples.cs:59:17:59:32 | (..., ...) : ValueTuple,Int32> [field Item1] : String | Tuples.cs:67:18:67:35 | (..., ...) : ValueTuple,Int32> [field Item1] : String | provenance | | +| Tuples.cs:59:17:59:32 | (..., ...) : ValueTuple,Int32> [field Item1] : String | Tuples.cs:67:18:67:35 | (..., ...) : ValueTuple,Int32> [field Item1] : String | provenance | | +| Tuples.cs:59:17:59:32 | (..., ...) : ValueTuple,Int32> [field Item1] : String | Tuples.cs:87:18:87:35 | (..., ...) : ValueTuple,Int32> [field Item1] : String | provenance | | +| Tuples.cs:59:17:59:32 | (..., ...) : ValueTuple,Int32> [field Item1] : String | Tuples.cs:87:18:87:35 | (..., ...) : ValueTuple,Int32> [field Item1] : String | provenance | | +| Tuples.cs:59:17:59:32 | (..., ...) : ValueTuple,Int32> [field Item2, field Item2] : String | Tuples.cs:62:18:62:57 | SSA def(t) : ValueTuple,Int32> [field Item2, field Item2] : String | provenance | | +| Tuples.cs:59:17:59:32 | (..., ...) : ValueTuple,Int32> [field Item2, field Item2] : String | Tuples.cs:62:18:62:57 | SSA def(t) : ValueTuple,Int32> [field Item2, field Item2] : String | provenance | | +| Tuples.cs:59:17:59:32 | (..., ...) : ValueTuple,Int32> [field Item2, field Item2] : String | Tuples.cs:67:18:67:35 | (..., ...) : ValueTuple,Int32> [field Item2, field Item2] : String | provenance | | +| Tuples.cs:59:17:59:32 | (..., ...) : ValueTuple,Int32> [field Item2, field Item2] : String | Tuples.cs:67:18:67:35 | (..., ...) : ValueTuple,Int32> [field Item2, field Item2] : String | provenance | | +| Tuples.cs:59:17:59:32 | (..., ...) : ValueTuple,Int32> [field Item2, field Item2] : String | Tuples.cs:87:18:87:35 | (..., ...) : ValueTuple,Int32> [field Item2, field Item2] : String | provenance | | +| Tuples.cs:59:17:59:32 | (..., ...) : ValueTuple,Int32> [field Item2, field Item2] : String | Tuples.cs:87:18:87:35 | (..., ...) : ValueTuple,Int32> [field Item2, field Item2] : String | provenance | | +| Tuples.cs:59:18:59:19 | access to local variable o1 : String | Tuples.cs:59:17:59:32 | (..., ...) : ValueTuple,Int32> [field Item1] : String | provenance | | +| Tuples.cs:59:18:59:19 | access to local variable o1 : String | Tuples.cs:59:17:59:32 | (..., ...) : ValueTuple,Int32> [field Item1] : String | provenance | | +| Tuples.cs:59:22:59:28 | (..., ...) : ValueTuple [field Item2] : String | Tuples.cs:59:17:59:32 | (..., ...) : ValueTuple,Int32> [field Item2, field Item2] : String | provenance | | +| Tuples.cs:59:22:59:28 | (..., ...) : ValueTuple [field Item2] : String | Tuples.cs:59:17:59:32 | (..., ...) : ValueTuple,Int32> [field Item2, field Item2] : String | provenance | | +| Tuples.cs:59:26:59:27 | access to local variable o2 : String | Tuples.cs:59:22:59:28 | (..., ...) : ValueTuple [field Item2] : String | provenance | | +| Tuples.cs:59:26:59:27 | access to local variable o2 : String | Tuples.cs:59:22:59:28 | (..., ...) : ValueTuple [field Item2] : String | provenance | | +| Tuples.cs:62:18:62:57 | SSA def(t) : ValueTuple,Int32> [field Item1] : String | Tuples.cs:63:22:63:22 | access to local variable t : ValueTuple,Int32> [field Item1] : String | provenance | | +| Tuples.cs:62:18:62:57 | SSA def(t) : ValueTuple,Int32> [field Item1] : String | Tuples.cs:63:22:63:22 | access to local variable t : ValueTuple,Int32> [field Item1] : String | provenance | | +| Tuples.cs:62:18:62:57 | SSA def(t) : ValueTuple,Int32> [field Item2, field Item2] : String | Tuples.cs:64:22:64:22 | access to local variable t : ValueTuple,Int32> [field Item2, field Item2] : String | provenance | | +| Tuples.cs:62:18:62:57 | SSA def(t) : ValueTuple,Int32> [field Item2, field Item2] : String | Tuples.cs:64:22:64:22 | access to local variable t : ValueTuple,Int32> [field Item2, field Item2] : String | provenance | | +| Tuples.cs:63:22:63:22 | access to local variable t : ValueTuple,Int32> [field Item1] : String | Tuples.cs:63:22:63:28 | access to field Item1 | provenance | | +| Tuples.cs:63:22:63:22 | access to local variable t : ValueTuple,Int32> [field Item1] : String | Tuples.cs:63:22:63:28 | access to field Item1 | provenance | | +| Tuples.cs:64:22:64:22 | access to local variable t : ValueTuple,Int32> [field Item2, field Item2] : String | Tuples.cs:64:22:64:28 | access to field Item2 : ValueTuple [field Item2] : String | provenance | | +| Tuples.cs:64:22:64:22 | access to local variable t : ValueTuple,Int32> [field Item2, field Item2] : String | Tuples.cs:64:22:64:28 | access to field Item2 : ValueTuple [field Item2] : String | provenance | | +| Tuples.cs:64:22:64:28 | access to field Item2 : ValueTuple [field Item2] : String | Tuples.cs:64:22:64:34 | access to field Item2 | provenance | | +| Tuples.cs:64:22:64:28 | access to field Item2 : ValueTuple [field Item2] : String | Tuples.cs:64:22:64:34 | access to field Item2 | provenance | | +| Tuples.cs:67:18:67:35 | (..., ...) : ValueTuple [field Item2] : String | Tuples.cs:67:30:67:30 | SSA def(c) : String | provenance | | +| Tuples.cs:67:18:67:35 | (..., ...) : ValueTuple [field Item2] : String | Tuples.cs:67:30:67:30 | SSA def(c) : String | provenance | | +| Tuples.cs:67:18:67:35 | (..., ...) : ValueTuple,Int32> [field Item1] : String | Tuples.cs:67:23:67:23 | SSA def(a) : String | provenance | | +| Tuples.cs:67:18:67:35 | (..., ...) : ValueTuple,Int32> [field Item1] : String | Tuples.cs:67:23:67:23 | SSA def(a) : String | provenance | | +| Tuples.cs:67:18:67:35 | (..., ...) : ValueTuple,Int32> [field Item2, field Item2] : String | Tuples.cs:67:18:67:35 | (..., ...) : ValueTuple [field Item2] : String | provenance | | +| Tuples.cs:67:18:67:35 | (..., ...) : ValueTuple,Int32> [field Item2, field Item2] : String | Tuples.cs:67:18:67:35 | (..., ...) : ValueTuple [field Item2] : String | provenance | | +| Tuples.cs:67:23:67:23 | SSA def(a) : String | Tuples.cs:68:22:68:22 | access to local variable a | provenance | | +| Tuples.cs:67:23:67:23 | SSA def(a) : String | Tuples.cs:68:22:68:22 | access to local variable a | provenance | | +| Tuples.cs:67:30:67:30 | SSA def(c) : String | Tuples.cs:69:22:69:22 | access to local variable c | provenance | | +| Tuples.cs:67:30:67:30 | SSA def(c) : String | Tuples.cs:69:22:69:22 | access to local variable c | provenance | | +| Tuples.cs:87:18:87:35 | (..., ...) : ValueTuple [field Item2] : String | Tuples.cs:87:30:87:30 | SSA def(r) : String | provenance | | +| Tuples.cs:87:18:87:35 | (..., ...) : ValueTuple [field Item2] : String | Tuples.cs:87:30:87:30 | SSA def(r) : String | provenance | | +| Tuples.cs:87:18:87:35 | (..., ...) : ValueTuple,Int32> [field Item1] : String | Tuples.cs:87:23:87:23 | SSA def(p) : String | provenance | | +| Tuples.cs:87:18:87:35 | (..., ...) : ValueTuple,Int32> [field Item1] : String | Tuples.cs:87:23:87:23 | SSA def(p) : String | provenance | | +| Tuples.cs:87:18:87:35 | (..., ...) : ValueTuple,Int32> [field Item2, field Item2] : String | Tuples.cs:87:18:87:35 | (..., ...) : ValueTuple [field Item2] : String | provenance | | +| Tuples.cs:87:18:87:35 | (..., ...) : ValueTuple,Int32> [field Item2, field Item2] : String | Tuples.cs:87:18:87:35 | (..., ...) : ValueTuple [field Item2] : String | provenance | | +| Tuples.cs:87:23:87:23 | SSA def(p) : String | Tuples.cs:89:18:89:18 | access to local variable p | provenance | | +| Tuples.cs:87:23:87:23 | SSA def(p) : String | Tuples.cs:89:18:89:18 | access to local variable p | provenance | | +| Tuples.cs:87:30:87:30 | SSA def(r) : String | Tuples.cs:90:18:90:18 | access to local variable r | provenance | | +| Tuples.cs:87:30:87:30 | SSA def(r) : String | Tuples.cs:90:18:90:18 | access to local variable r | provenance | | +| Tuples.cs:99:17:99:33 | call to method Source : String | Tuples.cs:100:24:100:24 | access to local variable o : String | provenance | | +| Tuples.cs:99:17:99:33 | call to method Source : String | Tuples.cs:100:24:100:24 | access to local variable o : String | provenance | | +| Tuples.cs:100:17:100:28 | object creation of type R1 : R1 [property i] : String | Tuples.cs:101:14:101:14 | access to local variable r : R1 [property i] : String | provenance | | +| Tuples.cs:100:17:100:28 | object creation of type R1 : R1 [property i] : String | Tuples.cs:101:14:101:14 | access to local variable r : R1 [property i] : String | provenance | | +| Tuples.cs:100:24:100:24 | access to local variable o : String | Tuples.cs:100:17:100:28 | object creation of type R1 : R1 [property i] : String | provenance | | +| Tuples.cs:100:24:100:24 | access to local variable o : String | Tuples.cs:100:17:100:28 | object creation of type R1 : R1 [property i] : String | provenance | | +| Tuples.cs:101:14:101:14 | access to local variable r : R1 [property i] : String | Tuples.cs:101:14:101:16 | access to property i | provenance | | +| Tuples.cs:101:14:101:14 | access to local variable r : R1 [property i] : String | Tuples.cs:101:14:101:16 | access to property i | provenance | | +| Tuples.cs:118:17:118:33 | call to method Source : Object | Tuples.cs:121:28:121:28 | access to local variable o : Object | provenance | | +| Tuples.cs:118:17:118:33 | call to method Source : Object | Tuples.cs:121:28:121:28 | access to local variable o : Object | provenance | | +| Tuples.cs:118:17:118:33 | call to method Source : Object | Tuples.cs:122:14:122:15 | access to local variable x1 | provenance | | +| Tuples.cs:118:17:118:33 | call to method Source : Object | Tuples.cs:122:14:122:15 | access to local variable x1 | provenance | | +| Tuples.cs:118:17:118:33 | call to method Source : Object | Tuples.cs:125:25:125:25 | access to local variable o : Object | provenance | | +| Tuples.cs:118:17:118:33 | call to method Source : Object | Tuples.cs:125:25:125:25 | access to local variable o : Object | provenance | | +| Tuples.cs:118:17:118:33 | call to method Source : Object | Tuples.cs:126:14:126:15 | access to local variable x2 | provenance | | +| Tuples.cs:118:17:118:33 | call to method Source : Object | Tuples.cs:126:14:126:15 | access to local variable x2 | provenance | | +| Tuples.cs:118:17:118:33 | call to method Source : Object | Tuples.cs:129:31:129:31 | access to local variable o : Object | provenance | | +| Tuples.cs:118:17:118:33 | call to method Source : Object | Tuples.cs:129:31:129:31 | access to local variable o : Object | provenance | | +| Tuples.cs:118:17:118:33 | call to method Source : Object | Tuples.cs:130:14:130:15 | access to local variable y3 | provenance | | +| Tuples.cs:118:17:118:33 | call to method Source : Object | Tuples.cs:130:14:130:15 | access to local variable y3 | provenance | | +| Tuples.cs:118:17:118:33 | call to method Source : Object | Tuples.cs:133:28:133:28 | access to local variable o : Object | provenance | | +| Tuples.cs:118:17:118:33 | call to method Source : Object | Tuples.cs:133:28:133:28 | access to local variable o : Object | provenance | | +| Tuples.cs:118:17:118:33 | call to method Source : Object | Tuples.cs:134:14:134:15 | access to local variable y4 | provenance | | +| Tuples.cs:118:17:118:33 | call to method Source : Object | Tuples.cs:134:14:134:15 | access to local variable y4 | provenance | | +| Tuples.cs:121:9:121:23 | (..., ...) : ValueTuple [field Item1] : Object | Tuples.cs:121:9:121:32 | SSA def(x1) : Object | provenance | | +| Tuples.cs:121:9:121:23 | (..., ...) : ValueTuple [field Item1] : Object | Tuples.cs:121:9:121:32 | SSA def(x1) : Object | provenance | | +| Tuples.cs:121:9:121:32 | SSA def(x1) : Object | Tuples.cs:122:14:122:15 | access to local variable x1 | provenance | | +| Tuples.cs:121:9:121:32 | SSA def(x1) : Object | Tuples.cs:122:14:122:15 | access to local variable x1 | provenance | | +| Tuples.cs:121:27:121:32 | (..., ...) : ValueTuple [field Item1] : Object | Tuples.cs:121:9:121:23 | (..., ...) : ValueTuple [field Item1] : Object | provenance | | +| Tuples.cs:121:27:121:32 | (..., ...) : ValueTuple [field Item1] : Object | Tuples.cs:121:9:121:23 | (..., ...) : ValueTuple [field Item1] : Object | provenance | | +| Tuples.cs:121:28:121:28 | access to local variable o : Object | Tuples.cs:121:27:121:32 | (..., ...) : ValueTuple [field Item1] : Object | provenance | | +| Tuples.cs:121:28:121:28 | access to local variable o : Object | Tuples.cs:121:27:121:32 | (..., ...) : ValueTuple [field Item1] : Object | provenance | | +| Tuples.cs:125:9:125:20 | (..., ...) : ValueTuple [field Item1] : Object | Tuples.cs:125:9:125:29 | SSA def(x2) : Object | provenance | | +| Tuples.cs:125:9:125:20 | (..., ...) : ValueTuple [field Item1] : Object | Tuples.cs:125:9:125:29 | SSA def(x2) : Object | provenance | | +| Tuples.cs:125:9:125:29 | SSA def(x2) : Object | Tuples.cs:126:14:126:15 | access to local variable x2 | provenance | | +| Tuples.cs:125:9:125:29 | SSA def(x2) : Object | Tuples.cs:126:14:126:15 | access to local variable x2 | provenance | | +| Tuples.cs:125:24:125:29 | (..., ...) : ValueTuple [field Item1] : Object | Tuples.cs:125:9:125:20 | (..., ...) : ValueTuple [field Item1] : Object | provenance | | +| Tuples.cs:125:24:125:29 | (..., ...) : ValueTuple [field Item1] : Object | Tuples.cs:125:9:125:20 | (..., ...) : ValueTuple [field Item1] : Object | provenance | | +| Tuples.cs:125:25:125:25 | access to local variable o : Object | Tuples.cs:125:24:125:29 | (..., ...) : ValueTuple [field Item1] : Object | provenance | | +| Tuples.cs:125:25:125:25 | access to local variable o : Object | Tuples.cs:125:24:125:29 | (..., ...) : ValueTuple [field Item1] : Object | provenance | | +| Tuples.cs:129:9:129:23 | (..., ...) : ValueTuple [field Item2] : Object | Tuples.cs:129:9:129:32 | SSA def(y3) : Object | provenance | | +| Tuples.cs:129:9:129:23 | (..., ...) : ValueTuple [field Item2] : Object | Tuples.cs:129:9:129:32 | SSA def(y3) : Object | provenance | | +| Tuples.cs:129:9:129:32 | SSA def(y3) : Object | Tuples.cs:130:14:130:15 | access to local variable y3 | provenance | | +| Tuples.cs:129:9:129:32 | SSA def(y3) : Object | Tuples.cs:130:14:130:15 | access to local variable y3 | provenance | | +| Tuples.cs:129:27:129:32 | (..., ...) : ValueTuple [field Item2] : Object | Tuples.cs:129:9:129:23 | (..., ...) : ValueTuple [field Item2] : Object | provenance | | +| Tuples.cs:129:27:129:32 | (..., ...) : ValueTuple [field Item2] : Object | Tuples.cs:129:9:129:23 | (..., ...) : ValueTuple [field Item2] : Object | provenance | | +| Tuples.cs:129:31:129:31 | access to local variable o : Object | Tuples.cs:129:27:129:32 | (..., ...) : ValueTuple [field Item2] : Object | provenance | | +| Tuples.cs:129:31:129:31 | access to local variable o : Object | Tuples.cs:129:27:129:32 | (..., ...) : ValueTuple [field Item2] : Object | provenance | | +| Tuples.cs:133:9:133:20 | (..., ...) : ValueTuple [field Item2] : Object | Tuples.cs:133:9:133:29 | SSA def(y4) : Object | provenance | | +| Tuples.cs:133:9:133:20 | (..., ...) : ValueTuple [field Item2] : Object | Tuples.cs:133:9:133:29 | SSA def(y4) : Object | provenance | | +| Tuples.cs:133:9:133:29 | SSA def(y4) : Object | Tuples.cs:134:14:134:15 | access to local variable y4 | provenance | | +| Tuples.cs:133:9:133:29 | SSA def(y4) : Object | Tuples.cs:134:14:134:15 | access to local variable y4 | provenance | | +| Tuples.cs:133:24:133:29 | (..., ...) : ValueTuple [field Item2] : Object | Tuples.cs:133:9:133:20 | (..., ...) : ValueTuple [field Item2] : Object | provenance | | +| Tuples.cs:133:24:133:29 | (..., ...) : ValueTuple [field Item2] : Object | Tuples.cs:133:9:133:20 | (..., ...) : ValueTuple [field Item2] : Object | provenance | | +| Tuples.cs:133:28:133:28 | access to local variable o : Object | Tuples.cs:133:24:133:29 | (..., ...) : ValueTuple [field Item2] : Object | provenance | | +| Tuples.cs:133:28:133:28 | access to local variable o : Object | Tuples.cs:133:24:133:29 | (..., ...) : ValueTuple [field Item2] : Object | provenance | | nodes | Tuples.cs:7:18:7:34 | call to method Source : Object | semmle.label | call to method Source : Object | | Tuples.cs:7:18:7:34 | call to method Source : Object | semmle.label | call to method Source : Object | diff --git a/csharp/ql/test/library-tests/dataflow/typeflow-dispatch/TypeFlowDispatch.expected b/csharp/ql/test/library-tests/dataflow/typeflow-dispatch/TypeFlowDispatch.expected index 51286b90578c..cb7792957a80 100644 --- a/csharp/ql/test/library-tests/dataflow/typeflow-dispatch/TypeFlowDispatch.expected +++ b/csharp/ql/test/library-tests/dataflow/typeflow-dispatch/TypeFlowDispatch.expected @@ -1,59 +1,59 @@ testFailures edges -| TypeFlowDispatch.cs:11:42:11:42 | x : String | TypeFlowDispatch.cs:13:11:13:11 | access to parameter x : String | -| TypeFlowDispatch.cs:11:42:11:42 | x : String | TypeFlowDispatch.cs:13:11:13:11 | access to parameter x : String | -| TypeFlowDispatch.cs:13:11:13:11 | access to parameter x : String | TypeFlowDispatch.cs:23:20:23:20 | x : String | -| TypeFlowDispatch.cs:13:11:13:11 | access to parameter x : String | TypeFlowDispatch.cs:23:20:23:20 | x : String | -| TypeFlowDispatch.cs:16:46:16:46 | x : String | TypeFlowDispatch.cs:18:19:18:19 | access to parameter x : String | -| TypeFlowDispatch.cs:16:46:16:46 | x : String | TypeFlowDispatch.cs:18:19:18:19 | access to parameter x : String | -| TypeFlowDispatch.cs:18:19:18:19 | access to parameter x : String | TypeFlowDispatch.cs:11:42:11:42 | x : String | -| TypeFlowDispatch.cs:18:19:18:19 | access to parameter x : String | TypeFlowDispatch.cs:11:42:11:42 | x : String | -| TypeFlowDispatch.cs:23:20:23:20 | x : String | TypeFlowDispatch.cs:23:32:23:32 | access to parameter x | -| TypeFlowDispatch.cs:23:20:23:20 | x : String | TypeFlowDispatch.cs:23:32:23:32 | access to parameter x | -| TypeFlowDispatch.cs:23:39:23:49 | call to method Source : String | TypeFlowDispatch.cs:16:46:16:46 | x : String | -| TypeFlowDispatch.cs:23:39:23:49 | call to method Source : String | TypeFlowDispatch.cs:16:46:16:46 | x : String | -| TypeFlowDispatch.cs:29:37:29:37 | l : List [element] : String | TypeFlowDispatch.cs:31:9:31:9 | access to parameter l : List [element] : String | -| TypeFlowDispatch.cs:29:37:29:37 | l : List [element] : String | TypeFlowDispatch.cs:31:9:31:9 | access to parameter l : List [element] : String | -| TypeFlowDispatch.cs:31:9:31:9 | access to parameter l : List [element] : String | TypeFlowDispatch.cs:39:34:39:34 | x : String | -| TypeFlowDispatch.cs:31:9:31:9 | access to parameter l : List [element] : String | TypeFlowDispatch.cs:39:34:39:34 | x : String | -| TypeFlowDispatch.cs:36:23:36:54 | object creation of type List : List [element] : String | TypeFlowDispatch.cs:39:25:39:31 | access to local variable tainted : List [element] : String | -| TypeFlowDispatch.cs:36:23:36:54 | object creation of type List : List [element] : String | TypeFlowDispatch.cs:39:25:39:31 | access to local variable tainted : List [element] : String | -| TypeFlowDispatch.cs:36:42:36:52 | call to method Source : String | TypeFlowDispatch.cs:36:23:36:54 | object creation of type List : List [element] : String | -| TypeFlowDispatch.cs:36:42:36:52 | call to method Source : String | TypeFlowDispatch.cs:36:23:36:54 | object creation of type List : List [element] : String | -| TypeFlowDispatch.cs:39:25:39:31 | access to local variable tainted : List [element] : String | TypeFlowDispatch.cs:29:37:29:37 | l : List [element] : String | -| TypeFlowDispatch.cs:39:25:39:31 | access to local variable tainted : List [element] : String | TypeFlowDispatch.cs:29:37:29:37 | l : List [element] : String | -| TypeFlowDispatch.cs:39:34:39:34 | x : String | TypeFlowDispatch.cs:39:46:39:46 | access to parameter x | -| TypeFlowDispatch.cs:39:34:39:34 | x : String | TypeFlowDispatch.cs:39:46:39:46 | access to parameter x | -| TypeFlowDispatch.cs:42:42:42:42 | x : String | TypeFlowDispatch.cs:44:11:44:11 | access to parameter x : String | -| TypeFlowDispatch.cs:42:42:42:42 | x : String | TypeFlowDispatch.cs:44:11:44:11 | access to parameter x : String | -| TypeFlowDispatch.cs:44:11:44:11 | access to parameter x : String | TypeFlowDispatch.cs:52:32:52:32 | t : String | -| TypeFlowDispatch.cs:44:11:44:11 | access to parameter x : String | TypeFlowDispatch.cs:52:32:52:32 | t : String | -| TypeFlowDispatch.cs:47:46:47:46 | x : String | TypeFlowDispatch.cs:49:19:49:19 | access to parameter x : String | -| TypeFlowDispatch.cs:47:46:47:46 | x : String | TypeFlowDispatch.cs:49:19:49:19 | access to parameter x : String | -| TypeFlowDispatch.cs:49:19:49:19 | access to parameter x : String | TypeFlowDispatch.cs:42:42:42:42 | x : String | -| TypeFlowDispatch.cs:49:19:49:19 | access to parameter x : String | TypeFlowDispatch.cs:42:42:42:42 | x : String | -| TypeFlowDispatch.cs:52:32:52:32 | t : String | TypeFlowDispatch.cs:52:43:52:43 | access to parameter t | -| TypeFlowDispatch.cs:52:32:52:32 | t : String | TypeFlowDispatch.cs:52:43:52:43 | access to parameter t | -| TypeFlowDispatch.cs:57:38:57:48 | call to method Source : String | TypeFlowDispatch.cs:47:46:47:46 | x : String | -| TypeFlowDispatch.cs:57:38:57:48 | call to method Source : String | TypeFlowDispatch.cs:47:46:47:46 | x : String | -| TypeFlowDispatch.cs:61:29:61:29 | l : List [element] : String | TypeFlowDispatch.cs:63:27:63:27 | access to parameter l : List [element] : String | -| TypeFlowDispatch.cs:61:29:61:29 | l : List [element] : String | TypeFlowDispatch.cs:63:27:63:27 | access to parameter l : List [element] : String | -| TypeFlowDispatch.cs:63:22:63:22 | SSA def(x) : String | TypeFlowDispatch.cs:64:15:64:15 | access to local variable x : String | -| TypeFlowDispatch.cs:63:22:63:22 | SSA def(x) : String | TypeFlowDispatch.cs:64:15:64:15 | access to local variable x : String | -| TypeFlowDispatch.cs:63:27:63:27 | access to parameter l : List [element] : String | TypeFlowDispatch.cs:63:22:63:22 | SSA def(x) : String | -| TypeFlowDispatch.cs:63:27:63:27 | access to parameter l : List [element] : String | TypeFlowDispatch.cs:63:22:63:22 | SSA def(x) : String | -| TypeFlowDispatch.cs:64:15:64:15 | access to local variable x : String | TypeFlowDispatch.cs:52:32:52:32 | t : String | -| TypeFlowDispatch.cs:64:15:64:15 | access to local variable x : String | TypeFlowDispatch.cs:52:32:52:32 | t : String | -| TypeFlowDispatch.cs:67:33:67:33 | l : List [element] : String | TypeFlowDispatch.cs:69:17:69:17 | access to parameter l : List [element] : String | -| TypeFlowDispatch.cs:67:33:67:33 | l : List [element] : String | TypeFlowDispatch.cs:69:17:69:17 | access to parameter l : List [element] : String | -| TypeFlowDispatch.cs:69:17:69:17 | access to parameter l : List [element] : String | TypeFlowDispatch.cs:61:29:61:29 | l : List [element] : String | -| TypeFlowDispatch.cs:69:17:69:17 | access to parameter l : List [element] : String | TypeFlowDispatch.cs:61:29:61:29 | l : List [element] : String | -| TypeFlowDispatch.cs:74:23:74:54 | object creation of type List : List [element] : String | TypeFlowDispatch.cs:77:21:77:27 | access to local variable tainted : List [element] : String | -| TypeFlowDispatch.cs:74:23:74:54 | object creation of type List : List [element] : String | TypeFlowDispatch.cs:77:21:77:27 | access to local variable tainted : List [element] : String | -| TypeFlowDispatch.cs:74:42:74:52 | call to method Source : String | TypeFlowDispatch.cs:74:23:74:54 | object creation of type List : List [element] : String | -| TypeFlowDispatch.cs:74:42:74:52 | call to method Source : String | TypeFlowDispatch.cs:74:23:74:54 | object creation of type List : List [element] : String | -| TypeFlowDispatch.cs:77:21:77:27 | access to local variable tainted : List [element] : String | TypeFlowDispatch.cs:67:33:67:33 | l : List [element] : String | -| TypeFlowDispatch.cs:77:21:77:27 | access to local variable tainted : List [element] : String | TypeFlowDispatch.cs:67:33:67:33 | l : List [element] : String | +| TypeFlowDispatch.cs:11:42:11:42 | x : String | TypeFlowDispatch.cs:13:11:13:11 | access to parameter x : String | provenance | | +| TypeFlowDispatch.cs:11:42:11:42 | x : String | TypeFlowDispatch.cs:13:11:13:11 | access to parameter x : String | provenance | | +| TypeFlowDispatch.cs:13:11:13:11 | access to parameter x : String | TypeFlowDispatch.cs:23:20:23:20 | x : String | provenance | | +| TypeFlowDispatch.cs:13:11:13:11 | access to parameter x : String | TypeFlowDispatch.cs:23:20:23:20 | x : String | provenance | | +| TypeFlowDispatch.cs:16:46:16:46 | x : String | TypeFlowDispatch.cs:18:19:18:19 | access to parameter x : String | provenance | | +| TypeFlowDispatch.cs:16:46:16:46 | x : String | TypeFlowDispatch.cs:18:19:18:19 | access to parameter x : String | provenance | | +| TypeFlowDispatch.cs:18:19:18:19 | access to parameter x : String | TypeFlowDispatch.cs:11:42:11:42 | x : String | provenance | | +| TypeFlowDispatch.cs:18:19:18:19 | access to parameter x : String | TypeFlowDispatch.cs:11:42:11:42 | x : String | provenance | | +| TypeFlowDispatch.cs:23:20:23:20 | x : String | TypeFlowDispatch.cs:23:32:23:32 | access to parameter x | provenance | | +| TypeFlowDispatch.cs:23:20:23:20 | x : String | TypeFlowDispatch.cs:23:32:23:32 | access to parameter x | provenance | | +| TypeFlowDispatch.cs:23:39:23:49 | call to method Source : String | TypeFlowDispatch.cs:16:46:16:46 | x : String | provenance | | +| TypeFlowDispatch.cs:23:39:23:49 | call to method Source : String | TypeFlowDispatch.cs:16:46:16:46 | x : String | provenance | | +| TypeFlowDispatch.cs:29:37:29:37 | l : List [element] : String | TypeFlowDispatch.cs:31:9:31:9 | access to parameter l : List [element] : String | provenance | | +| TypeFlowDispatch.cs:29:37:29:37 | l : List [element] : String | TypeFlowDispatch.cs:31:9:31:9 | access to parameter l : List [element] : String | provenance | | +| TypeFlowDispatch.cs:31:9:31:9 | access to parameter l : List [element] : String | TypeFlowDispatch.cs:39:34:39:34 | x : String | provenance | | +| TypeFlowDispatch.cs:31:9:31:9 | access to parameter l : List [element] : String | TypeFlowDispatch.cs:39:34:39:34 | x : String | provenance | | +| TypeFlowDispatch.cs:36:23:36:54 | object creation of type List : List [element] : String | TypeFlowDispatch.cs:39:25:39:31 | access to local variable tainted : List [element] : String | provenance | | +| TypeFlowDispatch.cs:36:23:36:54 | object creation of type List : List [element] : String | TypeFlowDispatch.cs:39:25:39:31 | access to local variable tainted : List [element] : String | provenance | | +| TypeFlowDispatch.cs:36:42:36:52 | call to method Source : String | TypeFlowDispatch.cs:36:23:36:54 | object creation of type List : List [element] : String | provenance | | +| TypeFlowDispatch.cs:36:42:36:52 | call to method Source : String | TypeFlowDispatch.cs:36:23:36:54 | object creation of type List : List [element] : String | provenance | | +| TypeFlowDispatch.cs:39:25:39:31 | access to local variable tainted : List [element] : String | TypeFlowDispatch.cs:29:37:29:37 | l : List [element] : String | provenance | | +| TypeFlowDispatch.cs:39:25:39:31 | access to local variable tainted : List [element] : String | TypeFlowDispatch.cs:29:37:29:37 | l : List [element] : String | provenance | | +| TypeFlowDispatch.cs:39:34:39:34 | x : String | TypeFlowDispatch.cs:39:46:39:46 | access to parameter x | provenance | | +| TypeFlowDispatch.cs:39:34:39:34 | x : String | TypeFlowDispatch.cs:39:46:39:46 | access to parameter x | provenance | | +| TypeFlowDispatch.cs:42:42:42:42 | x : String | TypeFlowDispatch.cs:44:11:44:11 | access to parameter x : String | provenance | | +| TypeFlowDispatch.cs:42:42:42:42 | x : String | TypeFlowDispatch.cs:44:11:44:11 | access to parameter x : String | provenance | | +| TypeFlowDispatch.cs:44:11:44:11 | access to parameter x : String | TypeFlowDispatch.cs:52:32:52:32 | t : String | provenance | | +| TypeFlowDispatch.cs:44:11:44:11 | access to parameter x : String | TypeFlowDispatch.cs:52:32:52:32 | t : String | provenance | | +| TypeFlowDispatch.cs:47:46:47:46 | x : String | TypeFlowDispatch.cs:49:19:49:19 | access to parameter x : String | provenance | | +| TypeFlowDispatch.cs:47:46:47:46 | x : String | TypeFlowDispatch.cs:49:19:49:19 | access to parameter x : String | provenance | | +| TypeFlowDispatch.cs:49:19:49:19 | access to parameter x : String | TypeFlowDispatch.cs:42:42:42:42 | x : String | provenance | | +| TypeFlowDispatch.cs:49:19:49:19 | access to parameter x : String | TypeFlowDispatch.cs:42:42:42:42 | x : String | provenance | | +| TypeFlowDispatch.cs:52:32:52:32 | t : String | TypeFlowDispatch.cs:52:43:52:43 | access to parameter t | provenance | | +| TypeFlowDispatch.cs:52:32:52:32 | t : String | TypeFlowDispatch.cs:52:43:52:43 | access to parameter t | provenance | | +| TypeFlowDispatch.cs:57:38:57:48 | call to method Source : String | TypeFlowDispatch.cs:47:46:47:46 | x : String | provenance | | +| TypeFlowDispatch.cs:57:38:57:48 | call to method Source : String | TypeFlowDispatch.cs:47:46:47:46 | x : String | provenance | | +| TypeFlowDispatch.cs:61:29:61:29 | l : List [element] : String | TypeFlowDispatch.cs:63:27:63:27 | access to parameter l : List [element] : String | provenance | | +| TypeFlowDispatch.cs:61:29:61:29 | l : List [element] : String | TypeFlowDispatch.cs:63:27:63:27 | access to parameter l : List [element] : String | provenance | | +| TypeFlowDispatch.cs:63:22:63:22 | SSA def(x) : String | TypeFlowDispatch.cs:64:15:64:15 | access to local variable x : String | provenance | | +| TypeFlowDispatch.cs:63:22:63:22 | SSA def(x) : String | TypeFlowDispatch.cs:64:15:64:15 | access to local variable x : String | provenance | | +| TypeFlowDispatch.cs:63:27:63:27 | access to parameter l : List [element] : String | TypeFlowDispatch.cs:63:22:63:22 | SSA def(x) : String | provenance | | +| TypeFlowDispatch.cs:63:27:63:27 | access to parameter l : List [element] : String | TypeFlowDispatch.cs:63:22:63:22 | SSA def(x) : String | provenance | | +| TypeFlowDispatch.cs:64:15:64:15 | access to local variable x : String | TypeFlowDispatch.cs:52:32:52:32 | t : String | provenance | | +| TypeFlowDispatch.cs:64:15:64:15 | access to local variable x : String | TypeFlowDispatch.cs:52:32:52:32 | t : String | provenance | | +| TypeFlowDispatch.cs:67:33:67:33 | l : List [element] : String | TypeFlowDispatch.cs:69:17:69:17 | access to parameter l : List [element] : String | provenance | | +| TypeFlowDispatch.cs:67:33:67:33 | l : List [element] : String | TypeFlowDispatch.cs:69:17:69:17 | access to parameter l : List [element] : String | provenance | | +| TypeFlowDispatch.cs:69:17:69:17 | access to parameter l : List [element] : String | TypeFlowDispatch.cs:61:29:61:29 | l : List [element] : String | provenance | | +| TypeFlowDispatch.cs:69:17:69:17 | access to parameter l : List [element] : String | TypeFlowDispatch.cs:61:29:61:29 | l : List [element] : String | provenance | | +| TypeFlowDispatch.cs:74:23:74:54 | object creation of type List : List [element] : String | TypeFlowDispatch.cs:77:21:77:27 | access to local variable tainted : List [element] : String | provenance | | +| TypeFlowDispatch.cs:74:23:74:54 | object creation of type List : List [element] : String | TypeFlowDispatch.cs:77:21:77:27 | access to local variable tainted : List [element] : String | provenance | | +| TypeFlowDispatch.cs:74:42:74:52 | call to method Source : String | TypeFlowDispatch.cs:74:23:74:54 | object creation of type List : List [element] : String | provenance | | +| TypeFlowDispatch.cs:74:42:74:52 | call to method Source : String | TypeFlowDispatch.cs:74:23:74:54 | object creation of type List : List [element] : String | provenance | | +| TypeFlowDispatch.cs:77:21:77:27 | access to local variable tainted : List [element] : String | TypeFlowDispatch.cs:67:33:67:33 | l : List [element] : String | provenance | | +| TypeFlowDispatch.cs:77:21:77:27 | access to local variable tainted : List [element] : String | TypeFlowDispatch.cs:67:33:67:33 | l : List [element] : String | provenance | | nodes | TypeFlowDispatch.cs:11:42:11:42 | x : String | semmle.label | x : String | | TypeFlowDispatch.cs:11:42:11:42 | x : String | semmle.label | x : String | diff --git a/csharp/ql/test/library-tests/dataflow/types/Types.expected b/csharp/ql/test/library-tests/dataflow/types/Types.expected index 76628874c488..1c35152bc261 100644 --- a/csharp/ql/test/library-tests/dataflow/types/Types.expected +++ b/csharp/ql/test/library-tests/dataflow/types/Types.expected @@ -1,63 +1,63 @@ testFailures edges -| Types.cs:7:21:7:25 | this : D | Types.cs:7:32:7:35 | this access : D | -| Types.cs:7:32:7:35 | this access : D | Types.cs:16:30:16:30 | this : D | -| Types.cs:16:30:16:30 | this : D | Types.cs:16:42:16:45 | this access | -| Types.cs:23:12:23:18 | object creation of type C : C | Types.cs:47:22:47:22 | a : C | -| Types.cs:25:12:25:18 | object creation of type C : C | Types.cs:63:22:63:22 | a : C | -| Types.cs:26:12:26:18 | object creation of type C : C | Types.cs:65:25:65:25 | x : C | -| Types.cs:27:12:27:18 | object creation of type C : C | Types.cs:67:25:67:25 | x : C | -| Types.cs:28:12:28:18 | object creation of type C : C | Types.cs:69:25:69:25 | x : C | -| Types.cs:30:12:30:18 | object creation of type C : C | Types.cs:77:22:77:22 | a : C | -| Types.cs:32:9:32:15 | object creation of type D : D | Types.cs:16:30:16:30 | this : D | -| Types.cs:33:9:33:15 | object creation of type D : D | Types.cs:7:21:7:25 | this : D | -| Types.cs:35:12:35:18 | object creation of type D : D | Types.cs:53:22:53:22 | a : D | -| Types.cs:37:12:37:18 | object creation of type D : D | Types.cs:65:25:65:25 | x : D | -| Types.cs:38:12:38:18 | object creation of type D : D | Types.cs:67:25:67:25 | x : D | -| Types.cs:39:12:39:18 | object creation of type D : D | Types.cs:69:25:69:25 | x : D | -| Types.cs:40:12:40:18 | object creation of type D : D | Types.cs:71:25:71:25 | x : D | -| Types.cs:43:20:43:23 | null : null | Types.cs:44:14:44:14 | access to local variable o | -| Types.cs:47:22:47:22 | a : C | Types.cs:49:18:49:20 | SSA def(c) : C | -| Types.cs:49:18:49:20 | SSA def(c) : C | Types.cs:50:18:50:18 | access to local variable c | -| Types.cs:53:22:53:22 | a : D | Types.cs:57:18:57:20 | SSA def(d) : D | -| Types.cs:57:18:57:20 | SSA def(d) : D | Types.cs:58:22:58:22 | access to local variable d | -| Types.cs:63:22:63:22 | a : C | Types.cs:63:33:63:36 | (...) ... | -| Types.cs:65:25:65:25 | x : C | Types.cs:65:36:65:36 | access to parameter x | -| Types.cs:65:25:65:25 | x : D | Types.cs:65:36:65:36 | access to parameter x | -| Types.cs:67:25:67:25 | x : C | Types.cs:67:48:67:48 | access to parameter x | -| Types.cs:67:25:67:25 | x : D | Types.cs:67:48:67:48 | access to parameter x | -| Types.cs:69:25:69:25 | x : C | Types.cs:69:52:69:52 | access to parameter x | -| Types.cs:69:25:69:25 | x : D | Types.cs:69:52:69:52 | access to parameter x | -| Types.cs:71:25:71:25 | x : D | Types.cs:73:21:73:21 | (...) ... : D | -| Types.cs:73:21:73:21 | (...) ... : D | Types.cs:74:9:74:9 | access to local variable d : D | -| Types.cs:74:9:74:9 | access to local variable d : D | Types.cs:16:30:16:30 | this : D | -| Types.cs:77:22:77:22 | a : C | Types.cs:79:18:79:25 | SSA def(b) : C | -| Types.cs:79:18:79:25 | SSA def(b) : C | Types.cs:80:18:80:18 | access to local variable b | -| Types.cs:90:22:90:22 | e : Types+E.E2 | Types.cs:92:26:92:26 | access to parameter e : Types+E.E2 | -| Types.cs:92:13:92:16 | [post] this access : Types+E [field Field] : Types+E.E2 | Types.cs:93:13:93:16 | this access : Types+E [field Field] : Types+E.E2 | -| Types.cs:92:26:92:26 | access to parameter e : Types+E.E2 | Types.cs:92:13:92:16 | [post] this access : Types+E [field Field] : Types+E.E2 | -| Types.cs:93:13:93:16 | this access : Types+E [field Field] : Types+E.E2 | Types.cs:113:34:113:34 | this : Types+E [field Field] : Types+E.E2 | -| Types.cs:110:25:110:32 | object creation of type E2 : Types+E.E2 | Types.cs:90:22:90:22 | e : Types+E.E2 | -| Types.cs:113:34:113:34 | this : Types+E [field Field] : Types+E.E2 | Types.cs:115:22:115:25 | this access : Types+E [field Field] : Types+E.E2 | -| Types.cs:115:22:115:25 | this access : Types+E [field Field] : Types+E.E2 | Types.cs:115:22:115:31 | access to field Field | -| Types.cs:120:25:120:31 | object creation of type A : A | Types.cs:122:30:122:30 | access to local variable a : A | -| Types.cs:121:26:121:33 | object creation of type E2 : Types+E.E2 | Types.cs:123:30:123:31 | access to local variable e2 : Types+E.E2 | -| Types.cs:122:30:122:30 | access to local variable a : A | Types.cs:122:22:122:31 | call to method Through | -| Types.cs:122:30:122:30 | access to local variable a : A | Types.cs:130:34:130:34 | x : A | -| Types.cs:123:30:123:31 | access to local variable e2 : Types+E.E2 | Types.cs:123:22:123:32 | call to method Through | -| Types.cs:123:30:123:31 | access to local variable e2 : Types+E.E2 | Types.cs:130:34:130:34 | x : Types+E.E2 | -| Types.cs:130:34:130:34 | x : A | Types.cs:130:40:130:40 | access to parameter x : A | -| Types.cs:130:34:130:34 | x : Types+E.E2 | Types.cs:130:40:130:40 | access to parameter x : Types+E.E2 | -| Types.cs:138:21:138:25 | this : FieldC [field Field] : Object | Types.cs:138:32:138:35 | this access : FieldC [field Field] : Object | -| Types.cs:138:32:138:35 | this access : FieldC [field Field] : Object | Types.cs:153:30:153:30 | this : FieldC [field Field] : Object | -| Types.cs:144:13:144:13 | [post] access to parameter c : FieldC [field Field] : Object | Types.cs:145:13:145:13 | access to parameter c : FieldC [field Field] : Object | -| Types.cs:144:23:144:34 | object creation of type Object : Object | Types.cs:144:13:144:13 | [post] access to parameter c : FieldC [field Field] : Object | -| Types.cs:145:13:145:13 | access to parameter c : FieldC [field Field] : Object | Types.cs:138:21:138:25 | this : FieldC [field Field] : Object | -| Types.cs:153:30:153:30 | this : FieldC [field Field] : Object | Types.cs:153:42:153:45 | this access : FieldC [field Field] : Object | -| Types.cs:153:42:153:45 | this access : FieldC [field Field] : Object | Types.cs:153:42:153:51 | access to field Field | -| Types.cs:162:34:162:34 | this : Types+F+F1 | Types.cs:162:46:162:49 | this access | -| Types.cs:167:22:167:34 | object creation of type F1 : Types+F+F1 | Types.cs:173:13:173:19 | call to method GetF1 : Types+F+F1 | -| Types.cs:173:13:173:19 | call to method GetF1 : Types+F+F1 | Types.cs:162:34:162:34 | this : Types+F+F1 | +| Types.cs:7:21:7:25 | this : D | Types.cs:7:32:7:35 | this access : D | provenance | | +| Types.cs:7:32:7:35 | this access : D | Types.cs:16:30:16:30 | this : D | provenance | | +| Types.cs:16:30:16:30 | this : D | Types.cs:16:42:16:45 | this access | provenance | | +| Types.cs:23:12:23:18 | object creation of type C : C | Types.cs:47:22:47:22 | a : C | provenance | | +| Types.cs:25:12:25:18 | object creation of type C : C | Types.cs:63:22:63:22 | a : C | provenance | | +| Types.cs:26:12:26:18 | object creation of type C : C | Types.cs:65:25:65:25 | x : C | provenance | | +| Types.cs:27:12:27:18 | object creation of type C : C | Types.cs:67:25:67:25 | x : C | provenance | | +| Types.cs:28:12:28:18 | object creation of type C : C | Types.cs:69:25:69:25 | x : C | provenance | | +| Types.cs:30:12:30:18 | object creation of type C : C | Types.cs:77:22:77:22 | a : C | provenance | | +| Types.cs:32:9:32:15 | object creation of type D : D | Types.cs:16:30:16:30 | this : D | provenance | | +| Types.cs:33:9:33:15 | object creation of type D : D | Types.cs:7:21:7:25 | this : D | provenance | | +| Types.cs:35:12:35:18 | object creation of type D : D | Types.cs:53:22:53:22 | a : D | provenance | | +| Types.cs:37:12:37:18 | object creation of type D : D | Types.cs:65:25:65:25 | x : D | provenance | | +| Types.cs:38:12:38:18 | object creation of type D : D | Types.cs:67:25:67:25 | x : D | provenance | | +| Types.cs:39:12:39:18 | object creation of type D : D | Types.cs:69:25:69:25 | x : D | provenance | | +| Types.cs:40:12:40:18 | object creation of type D : D | Types.cs:71:25:71:25 | x : D | provenance | | +| Types.cs:43:20:43:23 | null : null | Types.cs:44:14:44:14 | access to local variable o | provenance | | +| Types.cs:47:22:47:22 | a : C | Types.cs:49:18:49:20 | SSA def(c) : C | provenance | | +| Types.cs:49:18:49:20 | SSA def(c) : C | Types.cs:50:18:50:18 | access to local variable c | provenance | | +| Types.cs:53:22:53:22 | a : D | Types.cs:57:18:57:20 | SSA def(d) : D | provenance | | +| Types.cs:57:18:57:20 | SSA def(d) : D | Types.cs:58:22:58:22 | access to local variable d | provenance | | +| Types.cs:63:22:63:22 | a : C | Types.cs:63:33:63:36 | (...) ... | provenance | | +| Types.cs:65:25:65:25 | x : C | Types.cs:65:36:65:36 | access to parameter x | provenance | | +| Types.cs:65:25:65:25 | x : D | Types.cs:65:36:65:36 | access to parameter x | provenance | | +| Types.cs:67:25:67:25 | x : C | Types.cs:67:48:67:48 | access to parameter x | provenance | | +| Types.cs:67:25:67:25 | x : D | Types.cs:67:48:67:48 | access to parameter x | provenance | | +| Types.cs:69:25:69:25 | x : C | Types.cs:69:52:69:52 | access to parameter x | provenance | | +| Types.cs:69:25:69:25 | x : D | Types.cs:69:52:69:52 | access to parameter x | provenance | | +| Types.cs:71:25:71:25 | x : D | Types.cs:73:21:73:21 | (...) ... : D | provenance | | +| Types.cs:73:21:73:21 | (...) ... : D | Types.cs:74:9:74:9 | access to local variable d : D | provenance | | +| Types.cs:74:9:74:9 | access to local variable d : D | Types.cs:16:30:16:30 | this : D | provenance | | +| Types.cs:77:22:77:22 | a : C | Types.cs:79:18:79:25 | SSA def(b) : C | provenance | | +| Types.cs:79:18:79:25 | SSA def(b) : C | Types.cs:80:18:80:18 | access to local variable b | provenance | | +| Types.cs:90:22:90:22 | e : Types+E.E2 | Types.cs:92:26:92:26 | access to parameter e : Types+E.E2 | provenance | | +| Types.cs:92:13:92:16 | [post] this access : Types+E [field Field] : Types+E.E2 | Types.cs:93:13:93:16 | this access : Types+E [field Field] : Types+E.E2 | provenance | | +| Types.cs:92:26:92:26 | access to parameter e : Types+E.E2 | Types.cs:92:13:92:16 | [post] this access : Types+E [field Field] : Types+E.E2 | provenance | | +| Types.cs:93:13:93:16 | this access : Types+E [field Field] : Types+E.E2 | Types.cs:113:34:113:34 | this : Types+E [field Field] : Types+E.E2 | provenance | | +| Types.cs:110:25:110:32 | object creation of type E2 : Types+E.E2 | Types.cs:90:22:90:22 | e : Types+E.E2 | provenance | | +| Types.cs:113:34:113:34 | this : Types+E [field Field] : Types+E.E2 | Types.cs:115:22:115:25 | this access : Types+E [field Field] : Types+E.E2 | provenance | | +| Types.cs:115:22:115:25 | this access : Types+E [field Field] : Types+E.E2 | Types.cs:115:22:115:31 | access to field Field | provenance | | +| Types.cs:120:25:120:31 | object creation of type A : A | Types.cs:122:30:122:30 | access to local variable a : A | provenance | | +| Types.cs:121:26:121:33 | object creation of type E2 : Types+E.E2 | Types.cs:123:30:123:31 | access to local variable e2 : Types+E.E2 | provenance | | +| Types.cs:122:30:122:30 | access to local variable a : A | Types.cs:122:22:122:31 | call to method Through | provenance | | +| Types.cs:122:30:122:30 | access to local variable a : A | Types.cs:130:34:130:34 | x : A | provenance | | +| Types.cs:123:30:123:31 | access to local variable e2 : Types+E.E2 | Types.cs:123:22:123:32 | call to method Through | provenance | | +| Types.cs:123:30:123:31 | access to local variable e2 : Types+E.E2 | Types.cs:130:34:130:34 | x : Types+E.E2 | provenance | | +| Types.cs:130:34:130:34 | x : A | Types.cs:130:40:130:40 | access to parameter x : A | provenance | | +| Types.cs:130:34:130:34 | x : Types+E.E2 | Types.cs:130:40:130:40 | access to parameter x : Types+E.E2 | provenance | | +| Types.cs:138:21:138:25 | this : FieldC [field Field] : Object | Types.cs:138:32:138:35 | this access : FieldC [field Field] : Object | provenance | | +| Types.cs:138:32:138:35 | this access : FieldC [field Field] : Object | Types.cs:153:30:153:30 | this : FieldC [field Field] : Object | provenance | | +| Types.cs:144:13:144:13 | [post] access to parameter c : FieldC [field Field] : Object | Types.cs:145:13:145:13 | access to parameter c : FieldC [field Field] : Object | provenance | | +| Types.cs:144:23:144:34 | object creation of type Object : Object | Types.cs:144:13:144:13 | [post] access to parameter c : FieldC [field Field] : Object | provenance | | +| Types.cs:145:13:145:13 | access to parameter c : FieldC [field Field] : Object | Types.cs:138:21:138:25 | this : FieldC [field Field] : Object | provenance | | +| Types.cs:153:30:153:30 | this : FieldC [field Field] : Object | Types.cs:153:42:153:45 | this access : FieldC [field Field] : Object | provenance | | +| Types.cs:153:42:153:45 | this access : FieldC [field Field] : Object | Types.cs:153:42:153:51 | access to field Field | provenance | | +| Types.cs:162:34:162:34 | this : Types+F+F1 | Types.cs:162:46:162:49 | this access | provenance | | +| Types.cs:167:22:167:34 | object creation of type F1 : Types+F+F1 | Types.cs:173:13:173:19 | call to method GetF1 : Types+F+F1 | provenance | | +| Types.cs:173:13:173:19 | call to method GetF1 : Types+F+F1 | Types.cs:162:34:162:34 | this : Types+F+F1 | provenance | | nodes | Types.cs:7:21:7:25 | this : D | semmle.label | this : D | | Types.cs:7:32:7:35 | this access : D | semmle.label | this access : D | diff --git a/csharp/ql/test/library-tests/frameworks/EntityFramework/Dataflow.expected b/csharp/ql/test/library-tests/frameworks/EntityFramework/Dataflow.expected index a9d4895fb469..b4b4cf6f1297 100644 --- a/csharp/ql/test/library-tests/frameworks/EntityFramework/Dataflow.expected +++ b/csharp/ql/test/library-tests/frameworks/EntityFramework/Dataflow.expected @@ -1,178 +1,178 @@ edges -| EntityFramework.cs:59:13:62:13 | { ..., ... } : Person [property Name] : String | EntityFramework.cs:66:29:66:30 | access to local variable p1 : Person [property Name] : String | -| EntityFramework.cs:61:24:61:32 | "tainted" : String | EntityFramework.cs:59:13:62:13 | { ..., ... } : Person [property Name] : String | -| EntityFramework.cs:66:13:66:15 | [post] access to local variable ctx : MyContext [property Persons, element, property Name] : String | EntityFramework.cs:68:13:68:15 | access to local variable ctx : MyContext [property Persons, element, property Name] : String | -| EntityFramework.cs:66:13:66:23 | [post] access to property Persons : DbSet [element, property Name] : String | EntityFramework.cs:66:13:66:15 | [post] access to local variable ctx : MyContext [property Persons, element, property Name] : String | -| EntityFramework.cs:66:29:66:30 | access to local variable p1 : Person [property Name] : String | EntityFramework.cs:66:13:66:23 | [post] access to property Persons : DbSet [element, property Name] : String | -| EntityFramework.cs:68:13:68:15 | access to local variable ctx : MyContext [property Persons, element, property Name] : String | EntityFramework.cs:204:18:204:28 | access to property Persons : DbSet [element, property Name] : String | -| EntityFramework.cs:81:13:84:13 | { ..., ... } : Person [property Name] : String | EntityFramework.cs:88:29:88:30 | access to local variable p1 : Person [property Name] : String | -| EntityFramework.cs:83:24:83:32 | "tainted" : String | EntityFramework.cs:81:13:84:13 | { ..., ... } : Person [property Name] : String | -| EntityFramework.cs:88:13:88:15 | [post] access to local variable ctx : MyContext [property Persons, element, property Name] : String | EntityFramework.cs:90:19:90:21 | access to local variable ctx : MyContext [property Persons, element, property Name] : String | -| EntityFramework.cs:88:13:88:23 | [post] access to property Persons : DbSet [element, property Name] : String | EntityFramework.cs:88:13:88:15 | [post] access to local variable ctx : MyContext [property Persons, element, property Name] : String | -| EntityFramework.cs:88:29:88:30 | access to local variable p1 : Person [property Name] : String | EntityFramework.cs:88:13:88:23 | [post] access to property Persons : DbSet [element, property Name] : String | -| EntityFramework.cs:90:19:90:21 | access to local variable ctx : MyContext [property Persons, element, property Name] : String | EntityFramework.cs:204:18:204:28 | access to property Persons : DbSet [element, property Name] : String | -| EntityFramework.cs:103:13:106:13 | { ..., ... } : Person [property Name] : String | EntityFramework.cs:109:27:109:28 | access to local variable p1 : Person [property Name] : String | -| EntityFramework.cs:105:24:105:32 | "tainted" : String | EntityFramework.cs:103:13:106:13 | { ..., ... } : Person [property Name] : String | -| EntityFramework.cs:109:27:109:28 | access to local variable p1 : Person [property Name] : String | EntityFramework.cs:193:35:193:35 | p : Person [property Name] : String | -| EntityFramework.cs:122:13:125:13 | { ..., ... } : Person [property Title] : String | EntityFramework.cs:129:18:129:19 | access to local variable p1 : Person [property Title] : String | -| EntityFramework.cs:124:25:124:33 | "tainted" : String | EntityFramework.cs:122:13:125:13 | { ..., ... } : Person [property Title] : String | -| EntityFramework.cs:129:18:129:19 | access to local variable p1 : Person [property Title] : String | EntityFramework.cs:129:18:129:25 | access to property Title | -| EntityFramework.cs:141:13:148:13 | { ..., ... } : Person [property Addresses, element, property Street] : String | EntityFramework.cs:149:29:149:30 | access to local variable p1 : Person [property Addresses, element, property Street] : String | -| EntityFramework.cs:142:29:147:17 | array creation of type Address[] : null [element, property Street] : String | EntityFramework.cs:141:13:148:13 | { ..., ... } : Person [property Addresses, element, property Street] : String | -| EntityFramework.cs:142:35:147:17 | { ..., ... } : null [element, property Street] : String | EntityFramework.cs:142:29:147:17 | array creation of type Address[] : null [element, property Street] : String | -| EntityFramework.cs:143:21:146:21 | object creation of type Address : Address [property Street] : String | EntityFramework.cs:142:35:147:17 | { ..., ... } : null [element, property Street] : String | -| EntityFramework.cs:143:33:146:21 | { ..., ... } : Address [property Street] : String | EntityFramework.cs:143:21:146:21 | object creation of type Address : Address [property Street] : String | -| EntityFramework.cs:145:34:145:42 | "tainted" : String | EntityFramework.cs:143:33:146:21 | { ..., ... } : Address [property Street] : String | -| EntityFramework.cs:149:13:149:15 | [post] access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | EntityFramework.cs:150:13:150:15 | access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | -| EntityFramework.cs:149:13:149:15 | [post] access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | EntityFramework.cs:154:13:154:15 | access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | -| EntityFramework.cs:149:13:149:15 | [post] access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | EntityFramework.cs:162:13:162:15 | access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | -| EntityFramework.cs:149:13:149:15 | [post] access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | EntityFramework.cs:166:13:166:15 | access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | -| EntityFramework.cs:149:13:149:23 | [post] access to property Persons : DbSet [element, property Addresses, element, property Street] : String | EntityFramework.cs:149:13:149:15 | [post] access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | -| EntityFramework.cs:149:29:149:30 | access to local variable p1 : Person [property Addresses, element, property Street] : String | EntityFramework.cs:149:13:149:23 | [post] access to property Persons : DbSet [element, property Addresses, element, property Street] : String | -| EntityFramework.cs:150:13:150:15 | access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | EntityFramework.cs:212:18:212:30 | access to property Addresses : DbSet
[element, property Street] : String | -| EntityFramework.cs:150:13:150:15 | access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | EntityFramework.cs:219:18:219:28 | access to property Persons : DbSet [element, property Addresses, element, property Street] : String | -| EntityFramework.cs:154:13:154:15 | access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | EntityFramework.cs:212:18:212:30 | access to property Addresses : DbSet
[element, property Street] : String | -| EntityFramework.cs:154:13:154:15 | access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | EntityFramework.cs:219:18:219:28 | access to property Persons : DbSet [element, property Addresses, element, property Street] : String | -| EntityFramework.cs:157:13:160:13 | { ..., ... } : Address [property Street] : String | EntityFramework.cs:161:31:161:32 | access to local variable a1 : Address [property Street] : String | -| EntityFramework.cs:159:26:159:34 | "tainted" : String | EntityFramework.cs:157:13:160:13 | { ..., ... } : Address [property Street] : String | -| EntityFramework.cs:161:13:161:15 | [post] access to local variable ctx : MyContext [property Addresses, element, property Street] : String | EntityFramework.cs:162:13:162:15 | access to local variable ctx : MyContext [property Addresses, element, property Street] : String | -| EntityFramework.cs:161:13:161:15 | [post] access to local variable ctx : MyContext [property Addresses, element, property Street] : String | EntityFramework.cs:166:13:166:15 | access to local variable ctx : MyContext [property Addresses, element, property Street] : String | -| EntityFramework.cs:161:13:161:25 | [post] access to property Addresses : DbSet [element, property Street] : String | EntityFramework.cs:161:13:161:15 | [post] access to local variable ctx : MyContext [property Addresses, element, property Street] : String | -| EntityFramework.cs:161:31:161:32 | access to local variable a1 : Address [property Street] : String | EntityFramework.cs:161:13:161:25 | [post] access to property Addresses : DbSet [element, property Street] : String | -| EntityFramework.cs:162:13:162:15 | access to local variable ctx : MyContext [property Addresses, element, property Street] : String | EntityFramework.cs:212:18:212:30 | access to property Addresses : DbSet
[element, property Street] : String | -| EntityFramework.cs:162:13:162:15 | access to local variable ctx : MyContext [property Addresses, element, property Street] : String | EntityFramework.cs:219:18:219:28 | access to property Persons : DbSet [element, property Addresses, element, property Street] : String | -| EntityFramework.cs:162:13:162:15 | access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | EntityFramework.cs:212:18:212:30 | access to property Addresses : DbSet
[element, property Street] : String | -| EntityFramework.cs:162:13:162:15 | access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | EntityFramework.cs:219:18:219:28 | access to property Persons : DbSet [element, property Addresses, element, property Street] : String | -| EntityFramework.cs:166:13:166:15 | access to local variable ctx : MyContext [property Addresses, element, property Street] : String | EntityFramework.cs:212:18:212:30 | access to property Addresses : DbSet
[element, property Street] : String | -| EntityFramework.cs:166:13:166:15 | access to local variable ctx : MyContext [property Addresses, element, property Street] : String | EntityFramework.cs:219:18:219:28 | access to property Persons : DbSet [element, property Addresses, element, property Street] : String | -| EntityFramework.cs:166:13:166:15 | access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | EntityFramework.cs:212:18:212:30 | access to property Addresses : DbSet
[element, property Street] : String | -| EntityFramework.cs:166:13:166:15 | access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | EntityFramework.cs:219:18:219:28 | access to property Persons : DbSet [element, property Addresses, element, property Street] : String | -| EntityFramework.cs:173:13:176:13 | { ..., ... } : Person [property Name] : String | EntityFramework.cs:182:71:182:72 | access to local variable p1 : Person [property Name] : String | -| EntityFramework.cs:175:24:175:32 | "tainted" : String | EntityFramework.cs:173:13:176:13 | { ..., ... } : Person [property Name] : String | -| EntityFramework.cs:178:13:181:13 | { ..., ... } : Address [property Street] : String | EntityFramework.cs:182:85:182:86 | access to local variable a1 : Address [property Street] : String | -| EntityFramework.cs:180:26:180:34 | "tainted" : String | EntityFramework.cs:178:13:181:13 | { ..., ... } : Address [property Street] : String | -| EntityFramework.cs:182:60:182:88 | { ..., ... } : PersonAddressMap [property Address, property Street] : String | EntityFramework.cs:183:37:183:53 | access to local variable personAddressMap1 : PersonAddressMap [property Address, property Street] : String | -| EntityFramework.cs:182:60:182:88 | { ..., ... } : PersonAddressMap [property Person, property Name] : String | EntityFramework.cs:183:37:183:53 | access to local variable personAddressMap1 : PersonAddressMap [property Person, property Name] : String | -| EntityFramework.cs:182:71:182:72 | access to local variable p1 : Person [property Name] : String | EntityFramework.cs:182:60:182:88 | { ..., ... } : PersonAddressMap [property Person, property Name] : String | -| EntityFramework.cs:182:85:182:86 | access to local variable a1 : Address [property Street] : String | EntityFramework.cs:182:60:182:88 | { ..., ... } : PersonAddressMap [property Address, property Street] : String | -| EntityFramework.cs:183:13:183:15 | [post] access to local variable ctx : MyContext [property PersonAddresses, element, property Address, property Street] : String | EntityFramework.cs:184:13:184:15 | access to local variable ctx : MyContext [property PersonAddresses, element, property Address, property Street] : String | -| EntityFramework.cs:183:13:183:15 | [post] access to local variable ctx : MyContext [property PersonAddresses, element, property Address, property Street] : String | EntityFramework.cs:190:13:190:15 | access to local variable ctx : MyContext [property PersonAddresses, element, property Address, property Street] : String | -| EntityFramework.cs:183:13:183:15 | [post] access to local variable ctx : MyContext [property PersonAddresses, element, property Person, property Name] : String | EntityFramework.cs:184:13:184:15 | access to local variable ctx : MyContext [property PersonAddresses, element, property Person, property Name] : String | -| EntityFramework.cs:183:13:183:15 | [post] access to local variable ctx : MyContext [property PersonAddresses, element, property Person, property Name] : String | EntityFramework.cs:190:13:190:15 | access to local variable ctx : MyContext [property PersonAddresses, element, property Person, property Name] : String | -| EntityFramework.cs:183:13:183:31 | [post] access to property PersonAddresses : DbSet [element, property Address, property Street] : String | EntityFramework.cs:183:13:183:15 | [post] access to local variable ctx : MyContext [property PersonAddresses, element, property Address, property Street] : String | -| EntityFramework.cs:183:13:183:31 | [post] access to property PersonAddresses : DbSet [element, property Person, property Name] : String | EntityFramework.cs:183:13:183:15 | [post] access to local variable ctx : MyContext [property PersonAddresses, element, property Person, property Name] : String | -| EntityFramework.cs:183:37:183:53 | access to local variable personAddressMap1 : PersonAddressMap [property Address, property Street] : String | EntityFramework.cs:183:13:183:31 | [post] access to property PersonAddresses : DbSet [element, property Address, property Street] : String | -| EntityFramework.cs:183:37:183:53 | access to local variable personAddressMap1 : PersonAddressMap [property Person, property Name] : String | EntityFramework.cs:183:13:183:31 | [post] access to property PersonAddresses : DbSet [element, property Person, property Name] : String | -| EntityFramework.cs:184:13:184:15 | access to local variable ctx : MyContext [property PersonAddresses, element, property Address, property Street] : String | EntityFramework.cs:212:18:212:30 | access to property Addresses : DbSet
[element, property Street] : String | -| EntityFramework.cs:184:13:184:15 | access to local variable ctx : MyContext [property PersonAddresses, element, property Address, property Street] : String | EntityFramework.cs:219:18:219:28 | access to property Persons : DbSet [element, property Addresses, element, property Street] : String | -| EntityFramework.cs:184:13:184:15 | access to local variable ctx : MyContext [property PersonAddresses, element, property Person, property Name] : String | EntityFramework.cs:204:18:204:28 | access to property Persons : DbSet [element, property Name] : String | -| EntityFramework.cs:190:13:190:15 | access to local variable ctx : MyContext [property PersonAddresses, element, property Address, property Street] : String | EntityFramework.cs:212:18:212:30 | access to property Addresses : DbSet
[element, property Street] : String | -| EntityFramework.cs:190:13:190:15 | access to local variable ctx : MyContext [property PersonAddresses, element, property Address, property Street] : String | EntityFramework.cs:219:18:219:28 | access to property Persons : DbSet [element, property Addresses, element, property Street] : String | -| EntityFramework.cs:190:13:190:15 | access to local variable ctx : MyContext [property PersonAddresses, element, property Person, property Name] : String | EntityFramework.cs:204:18:204:28 | access to property Persons : DbSet [element, property Name] : String | -| EntityFramework.cs:193:35:193:35 | p : Person [property Name] : String | EntityFramework.cs:196:29:196:29 | access to parameter p : Person [property Name] : String | -| EntityFramework.cs:196:13:196:15 | [post] access to local variable ctx : MyContext [property Persons, element, property Name] : String | EntityFramework.cs:197:13:197:15 | access to local variable ctx : MyContext [property Persons, element, property Name] : String | -| EntityFramework.cs:196:13:196:23 | [post] access to property Persons : DbSet [element, property Name] : String | EntityFramework.cs:196:13:196:15 | [post] access to local variable ctx : MyContext [property Persons, element, property Name] : String | -| EntityFramework.cs:196:29:196:29 | access to parameter p : Person [property Name] : String | EntityFramework.cs:196:13:196:23 | [post] access to property Persons : DbSet [element, property Name] : String | -| EntityFramework.cs:197:13:197:15 | access to local variable ctx : MyContext [property Persons, element, property Name] : String | EntityFramework.cs:204:18:204:28 | access to property Persons : DbSet [element, property Name] : String | -| EntityFramework.cs:204:18:204:28 | access to property Persons : DbSet [element, property Name] : String | EntityFramework.cs:204:18:204:36 | call to method First : Person [property Name] : String | -| EntityFramework.cs:204:18:204:36 | call to method First : Person [property Name] : String | EntityFramework.cs:204:18:204:41 | access to property Name | -| EntityFramework.cs:212:18:212:30 | access to property Addresses : DbSet
[element, property Street] : String | EntityFramework.cs:212:18:212:38 | call to method First
: Address [property Street] : String | -| EntityFramework.cs:212:18:212:38 | call to method First
: Address [property Street] : String | EntityFramework.cs:212:18:212:45 | access to property Street | -| EntityFramework.cs:219:18:219:28 | access to property Persons : DbSet [element, property Addresses, element, property Street] : String | EntityFramework.cs:219:18:219:36 | call to method First : Person [property Addresses, element, property Street] : String | -| EntityFramework.cs:219:18:219:36 | call to method First : Person [property Addresses, element, property Street] : String | EntityFramework.cs:219:18:219:46 | access to property Addresses : ICollection
[element, property Street] : String | -| EntityFramework.cs:219:18:219:46 | access to property Addresses : ICollection
[element, property Street] : String | EntityFramework.cs:219:18:219:54 | call to method First
: Address [property Street] : String | -| EntityFramework.cs:219:18:219:54 | call to method First
: Address [property Street] : String | EntityFramework.cs:219:18:219:61 | access to property Street | -| EntityFrameworkCore.cs:82:31:82:39 | "tainted" : String | EntityFrameworkCore.cs:83:18:83:28 | access to local variable taintSource | -| EntityFrameworkCore.cs:82:31:82:39 | "tainted" : String | EntityFrameworkCore.cs:84:35:84:45 | access to local variable taintSource : String | -| EntityFrameworkCore.cs:82:31:82:39 | "tainted" : String | EntityFrameworkCore.cs:85:18:85:42 | (...) ... | -| EntityFrameworkCore.cs:82:31:82:39 | "tainted" : String | EntityFrameworkCore.cs:85:32:85:42 | access to local variable taintSource : String | -| EntityFrameworkCore.cs:84:18:84:46 | object creation of type RawSqlString : RawSqlString | EntityFrameworkCore.cs:84:18:84:46 | (...) ... | -| EntityFrameworkCore.cs:84:35:84:45 | access to local variable taintSource : String | EntityFrameworkCore.cs:84:18:84:46 | object creation of type RawSqlString : RawSqlString | -| EntityFrameworkCore.cs:85:18:85:42 | call to operator implicit conversion : RawSqlString | EntityFrameworkCore.cs:85:18:85:42 | (...) ... | -| EntityFrameworkCore.cs:85:32:85:42 | access to local variable taintSource : String | EntityFrameworkCore.cs:85:18:85:42 | call to operator implicit conversion : RawSqlString | -| EntityFrameworkCore.cs:92:13:95:13 | { ..., ... } : Person [property Name] : String | EntityFrameworkCore.cs:99:29:99:30 | access to local variable p1 : Person [property Name] : String | -| EntityFrameworkCore.cs:94:24:94:32 | "tainted" : String | EntityFrameworkCore.cs:92:13:95:13 | { ..., ... } : Person [property Name] : String | -| EntityFrameworkCore.cs:99:13:99:15 | [post] access to local variable ctx : MyContext [property Persons, element, property Name] : String | EntityFrameworkCore.cs:101:13:101:15 | access to local variable ctx : MyContext [property Persons, element, property Name] : String | -| EntityFrameworkCore.cs:99:13:99:23 | [post] access to property Persons : DbSet [element, property Name] : String | EntityFrameworkCore.cs:99:13:99:15 | [post] access to local variable ctx : MyContext [property Persons, element, property Name] : String | -| EntityFrameworkCore.cs:99:29:99:30 | access to local variable p1 : Person [property Name] : String | EntityFrameworkCore.cs:99:13:99:23 | [post] access to property Persons : DbSet [element, property Name] : String | -| EntityFrameworkCore.cs:101:13:101:15 | access to local variable ctx : MyContext [property Persons, element, property Name] : String | EntityFrameworkCore.cs:237:18:237:28 | access to property Persons : DbSet [element, property Name] : String | -| EntityFrameworkCore.cs:114:13:117:13 | { ..., ... } : Person [property Name] : String | EntityFrameworkCore.cs:121:29:121:30 | access to local variable p1 : Person [property Name] : String | -| EntityFrameworkCore.cs:116:24:116:32 | "tainted" : String | EntityFrameworkCore.cs:114:13:117:13 | { ..., ... } : Person [property Name] : String | -| EntityFrameworkCore.cs:121:13:121:15 | [post] access to local variable ctx : MyContext [property Persons, element, property Name] : String | EntityFrameworkCore.cs:123:19:123:21 | access to local variable ctx : MyContext [property Persons, element, property Name] : String | -| EntityFrameworkCore.cs:121:13:121:23 | [post] access to property Persons : DbSet [element, property Name] : String | EntityFrameworkCore.cs:121:13:121:15 | [post] access to local variable ctx : MyContext [property Persons, element, property Name] : String | -| EntityFrameworkCore.cs:121:29:121:30 | access to local variable p1 : Person [property Name] : String | EntityFrameworkCore.cs:121:13:121:23 | [post] access to property Persons : DbSet [element, property Name] : String | -| EntityFrameworkCore.cs:123:19:123:21 | access to local variable ctx : MyContext [property Persons, element, property Name] : String | EntityFrameworkCore.cs:237:18:237:28 | access to property Persons : DbSet [element, property Name] : String | -| EntityFrameworkCore.cs:136:13:139:13 | { ..., ... } : Person [property Name] : String | EntityFrameworkCore.cs:142:27:142:28 | access to local variable p1 : Person [property Name] : String | -| EntityFrameworkCore.cs:138:24:138:32 | "tainted" : String | EntityFrameworkCore.cs:136:13:139:13 | { ..., ... } : Person [property Name] : String | -| EntityFrameworkCore.cs:142:27:142:28 | access to local variable p1 : Person [property Name] : String | EntityFrameworkCore.cs:226:35:226:35 | p : Person [property Name] : String | -| EntityFrameworkCore.cs:155:13:158:13 | { ..., ... } : Person [property Title] : String | EntityFrameworkCore.cs:162:18:162:19 | access to local variable p1 : Person [property Title] : String | -| EntityFrameworkCore.cs:157:25:157:33 | "tainted" : String | EntityFrameworkCore.cs:155:13:158:13 | { ..., ... } : Person [property Title] : String | -| EntityFrameworkCore.cs:162:18:162:19 | access to local variable p1 : Person [property Title] : String | EntityFrameworkCore.cs:162:18:162:25 | access to property Title | -| EntityFrameworkCore.cs:174:13:181:13 | { ..., ... } : Person [property Addresses, element, property Street] : String | EntityFrameworkCore.cs:182:29:182:30 | access to local variable p1 : Person [property Addresses, element, property Street] : String | -| EntityFrameworkCore.cs:175:29:180:17 | array creation of type Address[] : null [element, property Street] : String | EntityFrameworkCore.cs:174:13:181:13 | { ..., ... } : Person [property Addresses, element, property Street] : String | -| EntityFrameworkCore.cs:175:35:180:17 | { ..., ... } : null [element, property Street] : String | EntityFrameworkCore.cs:175:29:180:17 | array creation of type Address[] : null [element, property Street] : String | -| EntityFrameworkCore.cs:176:21:179:21 | object creation of type Address : Address [property Street] : String | EntityFrameworkCore.cs:175:35:180:17 | { ..., ... } : null [element, property Street] : String | -| EntityFrameworkCore.cs:176:33:179:21 | { ..., ... } : Address [property Street] : String | EntityFrameworkCore.cs:176:21:179:21 | object creation of type Address : Address [property Street] : String | -| EntityFrameworkCore.cs:178:34:178:42 | "tainted" : String | EntityFrameworkCore.cs:176:33:179:21 | { ..., ... } : Address [property Street] : String | -| EntityFrameworkCore.cs:182:13:182:15 | [post] access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | EntityFrameworkCore.cs:183:13:183:15 | access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | -| EntityFrameworkCore.cs:182:13:182:15 | [post] access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | EntityFrameworkCore.cs:187:13:187:15 | access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | -| EntityFrameworkCore.cs:182:13:182:15 | [post] access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | EntityFrameworkCore.cs:195:13:195:15 | access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | -| EntityFrameworkCore.cs:182:13:182:15 | [post] access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | EntityFrameworkCore.cs:199:13:199:15 | access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | -| EntityFrameworkCore.cs:182:13:182:23 | [post] access to property Persons : DbSet [element, property Addresses, element, property Street] : String | EntityFrameworkCore.cs:182:13:182:15 | [post] access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | -| EntityFrameworkCore.cs:182:29:182:30 | access to local variable p1 : Person [property Addresses, element, property Street] : String | EntityFrameworkCore.cs:182:13:182:23 | [post] access to property Persons : DbSet [element, property Addresses, element, property Street] : String | -| EntityFrameworkCore.cs:183:13:183:15 | access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | EntityFrameworkCore.cs:245:18:245:30 | access to property Addresses : DbSet
[element, property Street] : String | -| EntityFrameworkCore.cs:183:13:183:15 | access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | EntityFrameworkCore.cs:252:18:252:28 | access to property Persons : DbSet [element, property Addresses, element, property Street] : String | -| EntityFrameworkCore.cs:187:13:187:15 | access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | EntityFrameworkCore.cs:245:18:245:30 | access to property Addresses : DbSet
[element, property Street] : String | -| EntityFrameworkCore.cs:187:13:187:15 | access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | EntityFrameworkCore.cs:252:18:252:28 | access to property Persons : DbSet [element, property Addresses, element, property Street] : String | -| EntityFrameworkCore.cs:190:13:193:13 | { ..., ... } : Address [property Street] : String | EntityFrameworkCore.cs:194:31:194:32 | access to local variable a1 : Address [property Street] : String | -| EntityFrameworkCore.cs:192:26:192:34 | "tainted" : String | EntityFrameworkCore.cs:190:13:193:13 | { ..., ... } : Address [property Street] : String | -| EntityFrameworkCore.cs:194:13:194:15 | [post] access to local variable ctx : MyContext [property Addresses, element, property Street] : String | EntityFrameworkCore.cs:195:13:195:15 | access to local variable ctx : MyContext [property Addresses, element, property Street] : String | -| EntityFrameworkCore.cs:194:13:194:15 | [post] access to local variable ctx : MyContext [property Addresses, element, property Street] : String | EntityFrameworkCore.cs:199:13:199:15 | access to local variable ctx : MyContext [property Addresses, element, property Street] : String | -| EntityFrameworkCore.cs:194:13:194:25 | [post] access to property Addresses : DbSet [element, property Street] : String | EntityFrameworkCore.cs:194:13:194:15 | [post] access to local variable ctx : MyContext [property Addresses, element, property Street] : String | -| EntityFrameworkCore.cs:194:31:194:32 | access to local variable a1 : Address [property Street] : String | EntityFrameworkCore.cs:194:13:194:25 | [post] access to property Addresses : DbSet [element, property Street] : String | -| EntityFrameworkCore.cs:195:13:195:15 | access to local variable ctx : MyContext [property Addresses, element, property Street] : String | EntityFrameworkCore.cs:245:18:245:30 | access to property Addresses : DbSet
[element, property Street] : String | -| EntityFrameworkCore.cs:195:13:195:15 | access to local variable ctx : MyContext [property Addresses, element, property Street] : String | EntityFrameworkCore.cs:252:18:252:28 | access to property Persons : DbSet [element, property Addresses, element, property Street] : String | -| EntityFrameworkCore.cs:195:13:195:15 | access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | EntityFrameworkCore.cs:245:18:245:30 | access to property Addresses : DbSet
[element, property Street] : String | -| EntityFrameworkCore.cs:195:13:195:15 | access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | EntityFrameworkCore.cs:252:18:252:28 | access to property Persons : DbSet [element, property Addresses, element, property Street] : String | -| EntityFrameworkCore.cs:199:13:199:15 | access to local variable ctx : MyContext [property Addresses, element, property Street] : String | EntityFrameworkCore.cs:245:18:245:30 | access to property Addresses : DbSet
[element, property Street] : String | -| EntityFrameworkCore.cs:199:13:199:15 | access to local variable ctx : MyContext [property Addresses, element, property Street] : String | EntityFrameworkCore.cs:252:18:252:28 | access to property Persons : DbSet [element, property Addresses, element, property Street] : String | -| EntityFrameworkCore.cs:199:13:199:15 | access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | EntityFrameworkCore.cs:245:18:245:30 | access to property Addresses : DbSet
[element, property Street] : String | -| EntityFrameworkCore.cs:199:13:199:15 | access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | EntityFrameworkCore.cs:252:18:252:28 | access to property Persons : DbSet [element, property Addresses, element, property Street] : String | -| EntityFrameworkCore.cs:206:13:209:13 | { ..., ... } : Person [property Name] : String | EntityFrameworkCore.cs:215:71:215:72 | access to local variable p1 : Person [property Name] : String | -| EntityFrameworkCore.cs:208:24:208:32 | "tainted" : String | EntityFrameworkCore.cs:206:13:209:13 | { ..., ... } : Person [property Name] : String | -| EntityFrameworkCore.cs:211:13:214:13 | { ..., ... } : Address [property Street] : String | EntityFrameworkCore.cs:215:85:215:86 | access to local variable a1 : Address [property Street] : String | -| EntityFrameworkCore.cs:213:26:213:34 | "tainted" : String | EntityFrameworkCore.cs:211:13:214:13 | { ..., ... } : Address [property Street] : String | -| EntityFrameworkCore.cs:215:60:215:88 | { ..., ... } : PersonAddressMap [property Address, property Street] : String | EntityFrameworkCore.cs:216:37:216:53 | access to local variable personAddressMap1 : PersonAddressMap [property Address, property Street] : String | -| EntityFrameworkCore.cs:215:60:215:88 | { ..., ... } : PersonAddressMap [property Person, property Name] : String | EntityFrameworkCore.cs:216:37:216:53 | access to local variable personAddressMap1 : PersonAddressMap [property Person, property Name] : String | -| EntityFrameworkCore.cs:215:71:215:72 | access to local variable p1 : Person [property Name] : String | EntityFrameworkCore.cs:215:60:215:88 | { ..., ... } : PersonAddressMap [property Person, property Name] : String | -| EntityFrameworkCore.cs:215:85:215:86 | access to local variable a1 : Address [property Street] : String | EntityFrameworkCore.cs:215:60:215:88 | { ..., ... } : PersonAddressMap [property Address, property Street] : String | -| EntityFrameworkCore.cs:216:13:216:15 | [post] access to local variable ctx : MyContext [property PersonAddresses, element, property Address, property Street] : String | EntityFrameworkCore.cs:217:13:217:15 | access to local variable ctx : MyContext [property PersonAddresses, element, property Address, property Street] : String | -| EntityFrameworkCore.cs:216:13:216:15 | [post] access to local variable ctx : MyContext [property PersonAddresses, element, property Address, property Street] : String | EntityFrameworkCore.cs:223:13:223:15 | access to local variable ctx : MyContext [property PersonAddresses, element, property Address, property Street] : String | -| EntityFrameworkCore.cs:216:13:216:15 | [post] access to local variable ctx : MyContext [property PersonAddresses, element, property Person, property Name] : String | EntityFrameworkCore.cs:217:13:217:15 | access to local variable ctx : MyContext [property PersonAddresses, element, property Person, property Name] : String | -| EntityFrameworkCore.cs:216:13:216:15 | [post] access to local variable ctx : MyContext [property PersonAddresses, element, property Person, property Name] : String | EntityFrameworkCore.cs:223:13:223:15 | access to local variable ctx : MyContext [property PersonAddresses, element, property Person, property Name] : String | -| EntityFrameworkCore.cs:216:13:216:31 | [post] access to property PersonAddresses : DbSet [element, property Address, property Street] : String | EntityFrameworkCore.cs:216:13:216:15 | [post] access to local variable ctx : MyContext [property PersonAddresses, element, property Address, property Street] : String | -| EntityFrameworkCore.cs:216:13:216:31 | [post] access to property PersonAddresses : DbSet [element, property Person, property Name] : String | EntityFrameworkCore.cs:216:13:216:15 | [post] access to local variable ctx : MyContext [property PersonAddresses, element, property Person, property Name] : String | -| EntityFrameworkCore.cs:216:37:216:53 | access to local variable personAddressMap1 : PersonAddressMap [property Address, property Street] : String | EntityFrameworkCore.cs:216:13:216:31 | [post] access to property PersonAddresses : DbSet [element, property Address, property Street] : String | -| EntityFrameworkCore.cs:216:37:216:53 | access to local variable personAddressMap1 : PersonAddressMap [property Person, property Name] : String | EntityFrameworkCore.cs:216:13:216:31 | [post] access to property PersonAddresses : DbSet [element, property Person, property Name] : String | -| EntityFrameworkCore.cs:217:13:217:15 | access to local variable ctx : MyContext [property PersonAddresses, element, property Address, property Street] : String | EntityFrameworkCore.cs:245:18:245:30 | access to property Addresses : DbSet
[element, property Street] : String | -| EntityFrameworkCore.cs:217:13:217:15 | access to local variable ctx : MyContext [property PersonAddresses, element, property Address, property Street] : String | EntityFrameworkCore.cs:252:18:252:28 | access to property Persons : DbSet [element, property Addresses, element, property Street] : String | -| EntityFrameworkCore.cs:217:13:217:15 | access to local variable ctx : MyContext [property PersonAddresses, element, property Person, property Name] : String | EntityFrameworkCore.cs:237:18:237:28 | access to property Persons : DbSet [element, property Name] : String | -| EntityFrameworkCore.cs:223:13:223:15 | access to local variable ctx : MyContext [property PersonAddresses, element, property Address, property Street] : String | EntityFrameworkCore.cs:245:18:245:30 | access to property Addresses : DbSet
[element, property Street] : String | -| EntityFrameworkCore.cs:223:13:223:15 | access to local variable ctx : MyContext [property PersonAddresses, element, property Address, property Street] : String | EntityFrameworkCore.cs:252:18:252:28 | access to property Persons : DbSet [element, property Addresses, element, property Street] : String | -| EntityFrameworkCore.cs:223:13:223:15 | access to local variable ctx : MyContext [property PersonAddresses, element, property Person, property Name] : String | EntityFrameworkCore.cs:237:18:237:28 | access to property Persons : DbSet [element, property Name] : String | -| EntityFrameworkCore.cs:226:35:226:35 | p : Person [property Name] : String | EntityFrameworkCore.cs:229:29:229:29 | access to parameter p : Person [property Name] : String | -| EntityFrameworkCore.cs:229:13:229:15 | [post] access to local variable ctx : MyContext [property Persons, element, property Name] : String | EntityFrameworkCore.cs:230:13:230:15 | access to local variable ctx : MyContext [property Persons, element, property Name] : String | -| EntityFrameworkCore.cs:229:13:229:23 | [post] access to property Persons : DbSet [element, property Name] : String | EntityFrameworkCore.cs:229:13:229:15 | [post] access to local variable ctx : MyContext [property Persons, element, property Name] : String | -| EntityFrameworkCore.cs:229:29:229:29 | access to parameter p : Person [property Name] : String | EntityFrameworkCore.cs:229:13:229:23 | [post] access to property Persons : DbSet [element, property Name] : String | -| EntityFrameworkCore.cs:230:13:230:15 | access to local variable ctx : MyContext [property Persons, element, property Name] : String | EntityFrameworkCore.cs:237:18:237:28 | access to property Persons : DbSet [element, property Name] : String | -| EntityFrameworkCore.cs:237:18:237:28 | access to property Persons : DbSet [element, property Name] : String | EntityFrameworkCore.cs:237:18:237:36 | call to method First : Person [property Name] : String | -| EntityFrameworkCore.cs:237:18:237:36 | call to method First : Person [property Name] : String | EntityFrameworkCore.cs:237:18:237:41 | access to property Name | -| EntityFrameworkCore.cs:245:18:245:30 | access to property Addresses : DbSet
[element, property Street] : String | EntityFrameworkCore.cs:245:18:245:38 | call to method First
: Address [property Street] : String | -| EntityFrameworkCore.cs:245:18:245:38 | call to method First
: Address [property Street] : String | EntityFrameworkCore.cs:245:18:245:45 | access to property Street | -| EntityFrameworkCore.cs:252:18:252:28 | access to property Persons : DbSet [element, property Addresses, element, property Street] : String | EntityFrameworkCore.cs:252:18:252:36 | call to method First : Person [property Addresses, element, property Street] : String | -| EntityFrameworkCore.cs:252:18:252:36 | call to method First : Person [property Addresses, element, property Street] : String | EntityFrameworkCore.cs:252:18:252:46 | access to property Addresses : ICollection
[element, property Street] : String | -| EntityFrameworkCore.cs:252:18:252:46 | access to property Addresses : ICollection
[element, property Street] : String | EntityFrameworkCore.cs:252:18:252:54 | call to method First
: Address [property Street] : String | -| EntityFrameworkCore.cs:252:18:252:54 | call to method First
: Address [property Street] : String | EntityFrameworkCore.cs:252:18:252:61 | access to property Street | +| EntityFramework.cs:59:13:62:13 | { ..., ... } : Person [property Name] : String | EntityFramework.cs:66:29:66:30 | access to local variable p1 : Person [property Name] : String | provenance | | +| EntityFramework.cs:61:24:61:32 | "tainted" : String | EntityFramework.cs:59:13:62:13 | { ..., ... } : Person [property Name] : String | provenance | | +| EntityFramework.cs:66:13:66:15 | [post] access to local variable ctx : MyContext [property Persons, element, property Name] : String | EntityFramework.cs:68:13:68:15 | access to local variable ctx : MyContext [property Persons, element, property Name] : String | provenance | | +| EntityFramework.cs:66:13:66:23 | [post] access to property Persons : DbSet [element, property Name] : String | EntityFramework.cs:66:13:66:15 | [post] access to local variable ctx : MyContext [property Persons, element, property Name] : String | provenance | | +| EntityFramework.cs:66:29:66:30 | access to local variable p1 : Person [property Name] : String | EntityFramework.cs:66:13:66:23 | [post] access to property Persons : DbSet [element, property Name] : String | provenance | | +| EntityFramework.cs:68:13:68:15 | access to local variable ctx : MyContext [property Persons, element, property Name] : String | EntityFramework.cs:204:18:204:28 | access to property Persons : DbSet [element, property Name] : String | provenance | | +| EntityFramework.cs:81:13:84:13 | { ..., ... } : Person [property Name] : String | EntityFramework.cs:88:29:88:30 | access to local variable p1 : Person [property Name] : String | provenance | | +| EntityFramework.cs:83:24:83:32 | "tainted" : String | EntityFramework.cs:81:13:84:13 | { ..., ... } : Person [property Name] : String | provenance | | +| EntityFramework.cs:88:13:88:15 | [post] access to local variable ctx : MyContext [property Persons, element, property Name] : String | EntityFramework.cs:90:19:90:21 | access to local variable ctx : MyContext [property Persons, element, property Name] : String | provenance | | +| EntityFramework.cs:88:13:88:23 | [post] access to property Persons : DbSet [element, property Name] : String | EntityFramework.cs:88:13:88:15 | [post] access to local variable ctx : MyContext [property Persons, element, property Name] : String | provenance | | +| EntityFramework.cs:88:29:88:30 | access to local variable p1 : Person [property Name] : String | EntityFramework.cs:88:13:88:23 | [post] access to property Persons : DbSet [element, property Name] : String | provenance | | +| EntityFramework.cs:90:19:90:21 | access to local variable ctx : MyContext [property Persons, element, property Name] : String | EntityFramework.cs:204:18:204:28 | access to property Persons : DbSet [element, property Name] : String | provenance | | +| EntityFramework.cs:103:13:106:13 | { ..., ... } : Person [property Name] : String | EntityFramework.cs:109:27:109:28 | access to local variable p1 : Person [property Name] : String | provenance | | +| EntityFramework.cs:105:24:105:32 | "tainted" : String | EntityFramework.cs:103:13:106:13 | { ..., ... } : Person [property Name] : String | provenance | | +| EntityFramework.cs:109:27:109:28 | access to local variable p1 : Person [property Name] : String | EntityFramework.cs:193:35:193:35 | p : Person [property Name] : String | provenance | | +| EntityFramework.cs:122:13:125:13 | { ..., ... } : Person [property Title] : String | EntityFramework.cs:129:18:129:19 | access to local variable p1 : Person [property Title] : String | provenance | | +| EntityFramework.cs:124:25:124:33 | "tainted" : String | EntityFramework.cs:122:13:125:13 | { ..., ... } : Person [property Title] : String | provenance | | +| EntityFramework.cs:129:18:129:19 | access to local variable p1 : Person [property Title] : String | EntityFramework.cs:129:18:129:25 | access to property Title | provenance | | +| EntityFramework.cs:141:13:148:13 | { ..., ... } : Person [property Addresses, element, property Street] : String | EntityFramework.cs:149:29:149:30 | access to local variable p1 : Person [property Addresses, element, property Street] : String | provenance | | +| EntityFramework.cs:142:29:147:17 | array creation of type Address[] : null [element, property Street] : String | EntityFramework.cs:141:13:148:13 | { ..., ... } : Person [property Addresses, element, property Street] : String | provenance | | +| EntityFramework.cs:142:35:147:17 | { ..., ... } : null [element, property Street] : String | EntityFramework.cs:142:29:147:17 | array creation of type Address[] : null [element, property Street] : String | provenance | | +| EntityFramework.cs:143:21:146:21 | object creation of type Address : Address [property Street] : String | EntityFramework.cs:142:35:147:17 | { ..., ... } : null [element, property Street] : String | provenance | | +| EntityFramework.cs:143:33:146:21 | { ..., ... } : Address [property Street] : String | EntityFramework.cs:143:21:146:21 | object creation of type Address : Address [property Street] : String | provenance | | +| EntityFramework.cs:145:34:145:42 | "tainted" : String | EntityFramework.cs:143:33:146:21 | { ..., ... } : Address [property Street] : String | provenance | | +| EntityFramework.cs:149:13:149:15 | [post] access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | EntityFramework.cs:150:13:150:15 | access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | provenance | | +| EntityFramework.cs:149:13:149:15 | [post] access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | EntityFramework.cs:154:13:154:15 | access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | provenance | | +| EntityFramework.cs:149:13:149:15 | [post] access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | EntityFramework.cs:162:13:162:15 | access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | provenance | | +| EntityFramework.cs:149:13:149:15 | [post] access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | EntityFramework.cs:166:13:166:15 | access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | provenance | | +| EntityFramework.cs:149:13:149:23 | [post] access to property Persons : DbSet [element, property Addresses, element, property Street] : String | EntityFramework.cs:149:13:149:15 | [post] access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | provenance | | +| EntityFramework.cs:149:29:149:30 | access to local variable p1 : Person [property Addresses, element, property Street] : String | EntityFramework.cs:149:13:149:23 | [post] access to property Persons : DbSet [element, property Addresses, element, property Street] : String | provenance | | +| EntityFramework.cs:150:13:150:15 | access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | EntityFramework.cs:212:18:212:30 | access to property Addresses : DbSet
[element, property Street] : String | provenance | | +| EntityFramework.cs:150:13:150:15 | access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | EntityFramework.cs:219:18:219:28 | access to property Persons : DbSet [element, property Addresses, element, property Street] : String | provenance | | +| EntityFramework.cs:154:13:154:15 | access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | EntityFramework.cs:212:18:212:30 | access to property Addresses : DbSet
[element, property Street] : String | provenance | | +| EntityFramework.cs:154:13:154:15 | access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | EntityFramework.cs:219:18:219:28 | access to property Persons : DbSet [element, property Addresses, element, property Street] : String | provenance | | +| EntityFramework.cs:157:13:160:13 | { ..., ... } : Address [property Street] : String | EntityFramework.cs:161:31:161:32 | access to local variable a1 : Address [property Street] : String | provenance | | +| EntityFramework.cs:159:26:159:34 | "tainted" : String | EntityFramework.cs:157:13:160:13 | { ..., ... } : Address [property Street] : String | provenance | | +| EntityFramework.cs:161:13:161:15 | [post] access to local variable ctx : MyContext [property Addresses, element, property Street] : String | EntityFramework.cs:162:13:162:15 | access to local variable ctx : MyContext [property Addresses, element, property Street] : String | provenance | | +| EntityFramework.cs:161:13:161:15 | [post] access to local variable ctx : MyContext [property Addresses, element, property Street] : String | EntityFramework.cs:166:13:166:15 | access to local variable ctx : MyContext [property Addresses, element, property Street] : String | provenance | | +| EntityFramework.cs:161:13:161:25 | [post] access to property Addresses : DbSet [element, property Street] : String | EntityFramework.cs:161:13:161:15 | [post] access to local variable ctx : MyContext [property Addresses, element, property Street] : String | provenance | | +| EntityFramework.cs:161:31:161:32 | access to local variable a1 : Address [property Street] : String | EntityFramework.cs:161:13:161:25 | [post] access to property Addresses : DbSet [element, property Street] : String | provenance | | +| EntityFramework.cs:162:13:162:15 | access to local variable ctx : MyContext [property Addresses, element, property Street] : String | EntityFramework.cs:212:18:212:30 | access to property Addresses : DbSet
[element, property Street] : String | provenance | | +| EntityFramework.cs:162:13:162:15 | access to local variable ctx : MyContext [property Addresses, element, property Street] : String | EntityFramework.cs:219:18:219:28 | access to property Persons : DbSet [element, property Addresses, element, property Street] : String | provenance | | +| EntityFramework.cs:162:13:162:15 | access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | EntityFramework.cs:212:18:212:30 | access to property Addresses : DbSet
[element, property Street] : String | provenance | | +| EntityFramework.cs:162:13:162:15 | access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | EntityFramework.cs:219:18:219:28 | access to property Persons : DbSet [element, property Addresses, element, property Street] : String | provenance | | +| EntityFramework.cs:166:13:166:15 | access to local variable ctx : MyContext [property Addresses, element, property Street] : String | EntityFramework.cs:212:18:212:30 | access to property Addresses : DbSet
[element, property Street] : String | provenance | | +| EntityFramework.cs:166:13:166:15 | access to local variable ctx : MyContext [property Addresses, element, property Street] : String | EntityFramework.cs:219:18:219:28 | access to property Persons : DbSet [element, property Addresses, element, property Street] : String | provenance | | +| EntityFramework.cs:166:13:166:15 | access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | EntityFramework.cs:212:18:212:30 | access to property Addresses : DbSet
[element, property Street] : String | provenance | | +| EntityFramework.cs:166:13:166:15 | access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | EntityFramework.cs:219:18:219:28 | access to property Persons : DbSet [element, property Addresses, element, property Street] : String | provenance | | +| EntityFramework.cs:173:13:176:13 | { ..., ... } : Person [property Name] : String | EntityFramework.cs:182:71:182:72 | access to local variable p1 : Person [property Name] : String | provenance | | +| EntityFramework.cs:175:24:175:32 | "tainted" : String | EntityFramework.cs:173:13:176:13 | { ..., ... } : Person [property Name] : String | provenance | | +| EntityFramework.cs:178:13:181:13 | { ..., ... } : Address [property Street] : String | EntityFramework.cs:182:85:182:86 | access to local variable a1 : Address [property Street] : String | provenance | | +| EntityFramework.cs:180:26:180:34 | "tainted" : String | EntityFramework.cs:178:13:181:13 | { ..., ... } : Address [property Street] : String | provenance | | +| EntityFramework.cs:182:60:182:88 | { ..., ... } : PersonAddressMap [property Address, property Street] : String | EntityFramework.cs:183:37:183:53 | access to local variable personAddressMap1 : PersonAddressMap [property Address, property Street] : String | provenance | | +| EntityFramework.cs:182:60:182:88 | { ..., ... } : PersonAddressMap [property Person, property Name] : String | EntityFramework.cs:183:37:183:53 | access to local variable personAddressMap1 : PersonAddressMap [property Person, property Name] : String | provenance | | +| EntityFramework.cs:182:71:182:72 | access to local variable p1 : Person [property Name] : String | EntityFramework.cs:182:60:182:88 | { ..., ... } : PersonAddressMap [property Person, property Name] : String | provenance | | +| EntityFramework.cs:182:85:182:86 | access to local variable a1 : Address [property Street] : String | EntityFramework.cs:182:60:182:88 | { ..., ... } : PersonAddressMap [property Address, property Street] : String | provenance | | +| EntityFramework.cs:183:13:183:15 | [post] access to local variable ctx : MyContext [property PersonAddresses, element, property Address, property Street] : String | EntityFramework.cs:184:13:184:15 | access to local variable ctx : MyContext [property PersonAddresses, element, property Address, property Street] : String | provenance | | +| EntityFramework.cs:183:13:183:15 | [post] access to local variable ctx : MyContext [property PersonAddresses, element, property Address, property Street] : String | EntityFramework.cs:190:13:190:15 | access to local variable ctx : MyContext [property PersonAddresses, element, property Address, property Street] : String | provenance | | +| EntityFramework.cs:183:13:183:15 | [post] access to local variable ctx : MyContext [property PersonAddresses, element, property Person, property Name] : String | EntityFramework.cs:184:13:184:15 | access to local variable ctx : MyContext [property PersonAddresses, element, property Person, property Name] : String | provenance | | +| EntityFramework.cs:183:13:183:15 | [post] access to local variable ctx : MyContext [property PersonAddresses, element, property Person, property Name] : String | EntityFramework.cs:190:13:190:15 | access to local variable ctx : MyContext [property PersonAddresses, element, property Person, property Name] : String | provenance | | +| EntityFramework.cs:183:13:183:31 | [post] access to property PersonAddresses : DbSet [element, property Address, property Street] : String | EntityFramework.cs:183:13:183:15 | [post] access to local variable ctx : MyContext [property PersonAddresses, element, property Address, property Street] : String | provenance | | +| EntityFramework.cs:183:13:183:31 | [post] access to property PersonAddresses : DbSet [element, property Person, property Name] : String | EntityFramework.cs:183:13:183:15 | [post] access to local variable ctx : MyContext [property PersonAddresses, element, property Person, property Name] : String | provenance | | +| EntityFramework.cs:183:37:183:53 | access to local variable personAddressMap1 : PersonAddressMap [property Address, property Street] : String | EntityFramework.cs:183:13:183:31 | [post] access to property PersonAddresses : DbSet [element, property Address, property Street] : String | provenance | | +| EntityFramework.cs:183:37:183:53 | access to local variable personAddressMap1 : PersonAddressMap [property Person, property Name] : String | EntityFramework.cs:183:13:183:31 | [post] access to property PersonAddresses : DbSet [element, property Person, property Name] : String | provenance | | +| EntityFramework.cs:184:13:184:15 | access to local variable ctx : MyContext [property PersonAddresses, element, property Address, property Street] : String | EntityFramework.cs:212:18:212:30 | access to property Addresses : DbSet
[element, property Street] : String | provenance | | +| EntityFramework.cs:184:13:184:15 | access to local variable ctx : MyContext [property PersonAddresses, element, property Address, property Street] : String | EntityFramework.cs:219:18:219:28 | access to property Persons : DbSet [element, property Addresses, element, property Street] : String | provenance | | +| EntityFramework.cs:184:13:184:15 | access to local variable ctx : MyContext [property PersonAddresses, element, property Person, property Name] : String | EntityFramework.cs:204:18:204:28 | access to property Persons : DbSet [element, property Name] : String | provenance | | +| EntityFramework.cs:190:13:190:15 | access to local variable ctx : MyContext [property PersonAddresses, element, property Address, property Street] : String | EntityFramework.cs:212:18:212:30 | access to property Addresses : DbSet
[element, property Street] : String | provenance | | +| EntityFramework.cs:190:13:190:15 | access to local variable ctx : MyContext [property PersonAddresses, element, property Address, property Street] : String | EntityFramework.cs:219:18:219:28 | access to property Persons : DbSet [element, property Addresses, element, property Street] : String | provenance | | +| EntityFramework.cs:190:13:190:15 | access to local variable ctx : MyContext [property PersonAddresses, element, property Person, property Name] : String | EntityFramework.cs:204:18:204:28 | access to property Persons : DbSet [element, property Name] : String | provenance | | +| EntityFramework.cs:193:35:193:35 | p : Person [property Name] : String | EntityFramework.cs:196:29:196:29 | access to parameter p : Person [property Name] : String | provenance | | +| EntityFramework.cs:196:13:196:15 | [post] access to local variable ctx : MyContext [property Persons, element, property Name] : String | EntityFramework.cs:197:13:197:15 | access to local variable ctx : MyContext [property Persons, element, property Name] : String | provenance | | +| EntityFramework.cs:196:13:196:23 | [post] access to property Persons : DbSet [element, property Name] : String | EntityFramework.cs:196:13:196:15 | [post] access to local variable ctx : MyContext [property Persons, element, property Name] : String | provenance | | +| EntityFramework.cs:196:29:196:29 | access to parameter p : Person [property Name] : String | EntityFramework.cs:196:13:196:23 | [post] access to property Persons : DbSet [element, property Name] : String | provenance | | +| EntityFramework.cs:197:13:197:15 | access to local variable ctx : MyContext [property Persons, element, property Name] : String | EntityFramework.cs:204:18:204:28 | access to property Persons : DbSet [element, property Name] : String | provenance | | +| EntityFramework.cs:204:18:204:28 | access to property Persons : DbSet [element, property Name] : String | EntityFramework.cs:204:18:204:36 | call to method First : Person [property Name] : String | provenance | | +| EntityFramework.cs:204:18:204:36 | call to method First : Person [property Name] : String | EntityFramework.cs:204:18:204:41 | access to property Name | provenance | | +| EntityFramework.cs:212:18:212:30 | access to property Addresses : DbSet
[element, property Street] : String | EntityFramework.cs:212:18:212:38 | call to method First
: Address [property Street] : String | provenance | | +| EntityFramework.cs:212:18:212:38 | call to method First
: Address [property Street] : String | EntityFramework.cs:212:18:212:45 | access to property Street | provenance | | +| EntityFramework.cs:219:18:219:28 | access to property Persons : DbSet [element, property Addresses, element, property Street] : String | EntityFramework.cs:219:18:219:36 | call to method First : Person [property Addresses, element, property Street] : String | provenance | | +| EntityFramework.cs:219:18:219:36 | call to method First : Person [property Addresses, element, property Street] : String | EntityFramework.cs:219:18:219:46 | access to property Addresses : ICollection
[element, property Street] : String | provenance | | +| EntityFramework.cs:219:18:219:46 | access to property Addresses : ICollection
[element, property Street] : String | EntityFramework.cs:219:18:219:54 | call to method First
: Address [property Street] : String | provenance | | +| EntityFramework.cs:219:18:219:54 | call to method First
: Address [property Street] : String | EntityFramework.cs:219:18:219:61 | access to property Street | provenance | | +| EntityFrameworkCore.cs:82:31:82:39 | "tainted" : String | EntityFrameworkCore.cs:83:18:83:28 | access to local variable taintSource | provenance | | +| EntityFrameworkCore.cs:82:31:82:39 | "tainted" : String | EntityFrameworkCore.cs:84:35:84:45 | access to local variable taintSource : String | provenance | | +| EntityFrameworkCore.cs:82:31:82:39 | "tainted" : String | EntityFrameworkCore.cs:85:18:85:42 | (...) ... | provenance | | +| EntityFrameworkCore.cs:82:31:82:39 | "tainted" : String | EntityFrameworkCore.cs:85:32:85:42 | access to local variable taintSource : String | provenance | | +| EntityFrameworkCore.cs:84:18:84:46 | object creation of type RawSqlString : RawSqlString | EntityFrameworkCore.cs:84:18:84:46 | (...) ... | provenance | | +| EntityFrameworkCore.cs:84:35:84:45 | access to local variable taintSource : String | EntityFrameworkCore.cs:84:18:84:46 | object creation of type RawSqlString : RawSqlString | provenance | | +| EntityFrameworkCore.cs:85:18:85:42 | call to operator implicit conversion : RawSqlString | EntityFrameworkCore.cs:85:18:85:42 | (...) ... | provenance | | +| EntityFrameworkCore.cs:85:32:85:42 | access to local variable taintSource : String | EntityFrameworkCore.cs:85:18:85:42 | call to operator implicit conversion : RawSqlString | provenance | | +| EntityFrameworkCore.cs:92:13:95:13 | { ..., ... } : Person [property Name] : String | EntityFrameworkCore.cs:99:29:99:30 | access to local variable p1 : Person [property Name] : String | provenance | | +| EntityFrameworkCore.cs:94:24:94:32 | "tainted" : String | EntityFrameworkCore.cs:92:13:95:13 | { ..., ... } : Person [property Name] : String | provenance | | +| EntityFrameworkCore.cs:99:13:99:15 | [post] access to local variable ctx : MyContext [property Persons, element, property Name] : String | EntityFrameworkCore.cs:101:13:101:15 | access to local variable ctx : MyContext [property Persons, element, property Name] : String | provenance | | +| EntityFrameworkCore.cs:99:13:99:23 | [post] access to property Persons : DbSet [element, property Name] : String | EntityFrameworkCore.cs:99:13:99:15 | [post] access to local variable ctx : MyContext [property Persons, element, property Name] : String | provenance | | +| EntityFrameworkCore.cs:99:29:99:30 | access to local variable p1 : Person [property Name] : String | EntityFrameworkCore.cs:99:13:99:23 | [post] access to property Persons : DbSet [element, property Name] : String | provenance | | +| EntityFrameworkCore.cs:101:13:101:15 | access to local variable ctx : MyContext [property Persons, element, property Name] : String | EntityFrameworkCore.cs:237:18:237:28 | access to property Persons : DbSet [element, property Name] : String | provenance | | +| EntityFrameworkCore.cs:114:13:117:13 | { ..., ... } : Person [property Name] : String | EntityFrameworkCore.cs:121:29:121:30 | access to local variable p1 : Person [property Name] : String | provenance | | +| EntityFrameworkCore.cs:116:24:116:32 | "tainted" : String | EntityFrameworkCore.cs:114:13:117:13 | { ..., ... } : Person [property Name] : String | provenance | | +| EntityFrameworkCore.cs:121:13:121:15 | [post] access to local variable ctx : MyContext [property Persons, element, property Name] : String | EntityFrameworkCore.cs:123:19:123:21 | access to local variable ctx : MyContext [property Persons, element, property Name] : String | provenance | | +| EntityFrameworkCore.cs:121:13:121:23 | [post] access to property Persons : DbSet [element, property Name] : String | EntityFrameworkCore.cs:121:13:121:15 | [post] access to local variable ctx : MyContext [property Persons, element, property Name] : String | provenance | | +| EntityFrameworkCore.cs:121:29:121:30 | access to local variable p1 : Person [property Name] : String | EntityFrameworkCore.cs:121:13:121:23 | [post] access to property Persons : DbSet [element, property Name] : String | provenance | | +| EntityFrameworkCore.cs:123:19:123:21 | access to local variable ctx : MyContext [property Persons, element, property Name] : String | EntityFrameworkCore.cs:237:18:237:28 | access to property Persons : DbSet [element, property Name] : String | provenance | | +| EntityFrameworkCore.cs:136:13:139:13 | { ..., ... } : Person [property Name] : String | EntityFrameworkCore.cs:142:27:142:28 | access to local variable p1 : Person [property Name] : String | provenance | | +| EntityFrameworkCore.cs:138:24:138:32 | "tainted" : String | EntityFrameworkCore.cs:136:13:139:13 | { ..., ... } : Person [property Name] : String | provenance | | +| EntityFrameworkCore.cs:142:27:142:28 | access to local variable p1 : Person [property Name] : String | EntityFrameworkCore.cs:226:35:226:35 | p : Person [property Name] : String | provenance | | +| EntityFrameworkCore.cs:155:13:158:13 | { ..., ... } : Person [property Title] : String | EntityFrameworkCore.cs:162:18:162:19 | access to local variable p1 : Person [property Title] : String | provenance | | +| EntityFrameworkCore.cs:157:25:157:33 | "tainted" : String | EntityFrameworkCore.cs:155:13:158:13 | { ..., ... } : Person [property Title] : String | provenance | | +| EntityFrameworkCore.cs:162:18:162:19 | access to local variable p1 : Person [property Title] : String | EntityFrameworkCore.cs:162:18:162:25 | access to property Title | provenance | | +| EntityFrameworkCore.cs:174:13:181:13 | { ..., ... } : Person [property Addresses, element, property Street] : String | EntityFrameworkCore.cs:182:29:182:30 | access to local variable p1 : Person [property Addresses, element, property Street] : String | provenance | | +| EntityFrameworkCore.cs:175:29:180:17 | array creation of type Address[] : null [element, property Street] : String | EntityFrameworkCore.cs:174:13:181:13 | { ..., ... } : Person [property Addresses, element, property Street] : String | provenance | | +| EntityFrameworkCore.cs:175:35:180:17 | { ..., ... } : null [element, property Street] : String | EntityFrameworkCore.cs:175:29:180:17 | array creation of type Address[] : null [element, property Street] : String | provenance | | +| EntityFrameworkCore.cs:176:21:179:21 | object creation of type Address : Address [property Street] : String | EntityFrameworkCore.cs:175:35:180:17 | { ..., ... } : null [element, property Street] : String | provenance | | +| EntityFrameworkCore.cs:176:33:179:21 | { ..., ... } : Address [property Street] : String | EntityFrameworkCore.cs:176:21:179:21 | object creation of type Address : Address [property Street] : String | provenance | | +| EntityFrameworkCore.cs:178:34:178:42 | "tainted" : String | EntityFrameworkCore.cs:176:33:179:21 | { ..., ... } : Address [property Street] : String | provenance | | +| EntityFrameworkCore.cs:182:13:182:15 | [post] access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | EntityFrameworkCore.cs:183:13:183:15 | access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | provenance | | +| EntityFrameworkCore.cs:182:13:182:15 | [post] access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | EntityFrameworkCore.cs:187:13:187:15 | access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | provenance | | +| EntityFrameworkCore.cs:182:13:182:15 | [post] access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | EntityFrameworkCore.cs:195:13:195:15 | access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | provenance | | +| EntityFrameworkCore.cs:182:13:182:15 | [post] access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | EntityFrameworkCore.cs:199:13:199:15 | access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | provenance | | +| EntityFrameworkCore.cs:182:13:182:23 | [post] access to property Persons : DbSet [element, property Addresses, element, property Street] : String | EntityFrameworkCore.cs:182:13:182:15 | [post] access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | provenance | | +| EntityFrameworkCore.cs:182:29:182:30 | access to local variable p1 : Person [property Addresses, element, property Street] : String | EntityFrameworkCore.cs:182:13:182:23 | [post] access to property Persons : DbSet [element, property Addresses, element, property Street] : String | provenance | | +| EntityFrameworkCore.cs:183:13:183:15 | access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | EntityFrameworkCore.cs:245:18:245:30 | access to property Addresses : DbSet
[element, property Street] : String | provenance | | +| EntityFrameworkCore.cs:183:13:183:15 | access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | EntityFrameworkCore.cs:252:18:252:28 | access to property Persons : DbSet [element, property Addresses, element, property Street] : String | provenance | | +| EntityFrameworkCore.cs:187:13:187:15 | access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | EntityFrameworkCore.cs:245:18:245:30 | access to property Addresses : DbSet
[element, property Street] : String | provenance | | +| EntityFrameworkCore.cs:187:13:187:15 | access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | EntityFrameworkCore.cs:252:18:252:28 | access to property Persons : DbSet [element, property Addresses, element, property Street] : String | provenance | | +| EntityFrameworkCore.cs:190:13:193:13 | { ..., ... } : Address [property Street] : String | EntityFrameworkCore.cs:194:31:194:32 | access to local variable a1 : Address [property Street] : String | provenance | | +| EntityFrameworkCore.cs:192:26:192:34 | "tainted" : String | EntityFrameworkCore.cs:190:13:193:13 | { ..., ... } : Address [property Street] : String | provenance | | +| EntityFrameworkCore.cs:194:13:194:15 | [post] access to local variable ctx : MyContext [property Addresses, element, property Street] : String | EntityFrameworkCore.cs:195:13:195:15 | access to local variable ctx : MyContext [property Addresses, element, property Street] : String | provenance | | +| EntityFrameworkCore.cs:194:13:194:15 | [post] access to local variable ctx : MyContext [property Addresses, element, property Street] : String | EntityFrameworkCore.cs:199:13:199:15 | access to local variable ctx : MyContext [property Addresses, element, property Street] : String | provenance | | +| EntityFrameworkCore.cs:194:13:194:25 | [post] access to property Addresses : DbSet [element, property Street] : String | EntityFrameworkCore.cs:194:13:194:15 | [post] access to local variable ctx : MyContext [property Addresses, element, property Street] : String | provenance | | +| EntityFrameworkCore.cs:194:31:194:32 | access to local variable a1 : Address [property Street] : String | EntityFrameworkCore.cs:194:13:194:25 | [post] access to property Addresses : DbSet [element, property Street] : String | provenance | | +| EntityFrameworkCore.cs:195:13:195:15 | access to local variable ctx : MyContext [property Addresses, element, property Street] : String | EntityFrameworkCore.cs:245:18:245:30 | access to property Addresses : DbSet
[element, property Street] : String | provenance | | +| EntityFrameworkCore.cs:195:13:195:15 | access to local variable ctx : MyContext [property Addresses, element, property Street] : String | EntityFrameworkCore.cs:252:18:252:28 | access to property Persons : DbSet [element, property Addresses, element, property Street] : String | provenance | | +| EntityFrameworkCore.cs:195:13:195:15 | access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | EntityFrameworkCore.cs:245:18:245:30 | access to property Addresses : DbSet
[element, property Street] : String | provenance | | +| EntityFrameworkCore.cs:195:13:195:15 | access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | EntityFrameworkCore.cs:252:18:252:28 | access to property Persons : DbSet [element, property Addresses, element, property Street] : String | provenance | | +| EntityFrameworkCore.cs:199:13:199:15 | access to local variable ctx : MyContext [property Addresses, element, property Street] : String | EntityFrameworkCore.cs:245:18:245:30 | access to property Addresses : DbSet
[element, property Street] : String | provenance | | +| EntityFrameworkCore.cs:199:13:199:15 | access to local variable ctx : MyContext [property Addresses, element, property Street] : String | EntityFrameworkCore.cs:252:18:252:28 | access to property Persons : DbSet [element, property Addresses, element, property Street] : String | provenance | | +| EntityFrameworkCore.cs:199:13:199:15 | access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | EntityFrameworkCore.cs:245:18:245:30 | access to property Addresses : DbSet
[element, property Street] : String | provenance | | +| EntityFrameworkCore.cs:199:13:199:15 | access to local variable ctx : MyContext [property Persons, element, property Addresses, element, property Street] : String | EntityFrameworkCore.cs:252:18:252:28 | access to property Persons : DbSet [element, property Addresses, element, property Street] : String | provenance | | +| EntityFrameworkCore.cs:206:13:209:13 | { ..., ... } : Person [property Name] : String | EntityFrameworkCore.cs:215:71:215:72 | access to local variable p1 : Person [property Name] : String | provenance | | +| EntityFrameworkCore.cs:208:24:208:32 | "tainted" : String | EntityFrameworkCore.cs:206:13:209:13 | { ..., ... } : Person [property Name] : String | provenance | | +| EntityFrameworkCore.cs:211:13:214:13 | { ..., ... } : Address [property Street] : String | EntityFrameworkCore.cs:215:85:215:86 | access to local variable a1 : Address [property Street] : String | provenance | | +| EntityFrameworkCore.cs:213:26:213:34 | "tainted" : String | EntityFrameworkCore.cs:211:13:214:13 | { ..., ... } : Address [property Street] : String | provenance | | +| EntityFrameworkCore.cs:215:60:215:88 | { ..., ... } : PersonAddressMap [property Address, property Street] : String | EntityFrameworkCore.cs:216:37:216:53 | access to local variable personAddressMap1 : PersonAddressMap [property Address, property Street] : String | provenance | | +| EntityFrameworkCore.cs:215:60:215:88 | { ..., ... } : PersonAddressMap [property Person, property Name] : String | EntityFrameworkCore.cs:216:37:216:53 | access to local variable personAddressMap1 : PersonAddressMap [property Person, property Name] : String | provenance | | +| EntityFrameworkCore.cs:215:71:215:72 | access to local variable p1 : Person [property Name] : String | EntityFrameworkCore.cs:215:60:215:88 | { ..., ... } : PersonAddressMap [property Person, property Name] : String | provenance | | +| EntityFrameworkCore.cs:215:85:215:86 | access to local variable a1 : Address [property Street] : String | EntityFrameworkCore.cs:215:60:215:88 | { ..., ... } : PersonAddressMap [property Address, property Street] : String | provenance | | +| EntityFrameworkCore.cs:216:13:216:15 | [post] access to local variable ctx : MyContext [property PersonAddresses, element, property Address, property Street] : String | EntityFrameworkCore.cs:217:13:217:15 | access to local variable ctx : MyContext [property PersonAddresses, element, property Address, property Street] : String | provenance | | +| EntityFrameworkCore.cs:216:13:216:15 | [post] access to local variable ctx : MyContext [property PersonAddresses, element, property Address, property Street] : String | EntityFrameworkCore.cs:223:13:223:15 | access to local variable ctx : MyContext [property PersonAddresses, element, property Address, property Street] : String | provenance | | +| EntityFrameworkCore.cs:216:13:216:15 | [post] access to local variable ctx : MyContext [property PersonAddresses, element, property Person, property Name] : String | EntityFrameworkCore.cs:217:13:217:15 | access to local variable ctx : MyContext [property PersonAddresses, element, property Person, property Name] : String | provenance | | +| EntityFrameworkCore.cs:216:13:216:15 | [post] access to local variable ctx : MyContext [property PersonAddresses, element, property Person, property Name] : String | EntityFrameworkCore.cs:223:13:223:15 | access to local variable ctx : MyContext [property PersonAddresses, element, property Person, property Name] : String | provenance | | +| EntityFrameworkCore.cs:216:13:216:31 | [post] access to property PersonAddresses : DbSet [element, property Address, property Street] : String | EntityFrameworkCore.cs:216:13:216:15 | [post] access to local variable ctx : MyContext [property PersonAddresses, element, property Address, property Street] : String | provenance | | +| EntityFrameworkCore.cs:216:13:216:31 | [post] access to property PersonAddresses : DbSet [element, property Person, property Name] : String | EntityFrameworkCore.cs:216:13:216:15 | [post] access to local variable ctx : MyContext [property PersonAddresses, element, property Person, property Name] : String | provenance | | +| EntityFrameworkCore.cs:216:37:216:53 | access to local variable personAddressMap1 : PersonAddressMap [property Address, property Street] : String | EntityFrameworkCore.cs:216:13:216:31 | [post] access to property PersonAddresses : DbSet [element, property Address, property Street] : String | provenance | | +| EntityFrameworkCore.cs:216:37:216:53 | access to local variable personAddressMap1 : PersonAddressMap [property Person, property Name] : String | EntityFrameworkCore.cs:216:13:216:31 | [post] access to property PersonAddresses : DbSet [element, property Person, property Name] : String | provenance | | +| EntityFrameworkCore.cs:217:13:217:15 | access to local variable ctx : MyContext [property PersonAddresses, element, property Address, property Street] : String | EntityFrameworkCore.cs:245:18:245:30 | access to property Addresses : DbSet
[element, property Street] : String | provenance | | +| EntityFrameworkCore.cs:217:13:217:15 | access to local variable ctx : MyContext [property PersonAddresses, element, property Address, property Street] : String | EntityFrameworkCore.cs:252:18:252:28 | access to property Persons : DbSet [element, property Addresses, element, property Street] : String | provenance | | +| EntityFrameworkCore.cs:217:13:217:15 | access to local variable ctx : MyContext [property PersonAddresses, element, property Person, property Name] : String | EntityFrameworkCore.cs:237:18:237:28 | access to property Persons : DbSet [element, property Name] : String | provenance | | +| EntityFrameworkCore.cs:223:13:223:15 | access to local variable ctx : MyContext [property PersonAddresses, element, property Address, property Street] : String | EntityFrameworkCore.cs:245:18:245:30 | access to property Addresses : DbSet
[element, property Street] : String | provenance | | +| EntityFrameworkCore.cs:223:13:223:15 | access to local variable ctx : MyContext [property PersonAddresses, element, property Address, property Street] : String | EntityFrameworkCore.cs:252:18:252:28 | access to property Persons : DbSet [element, property Addresses, element, property Street] : String | provenance | | +| EntityFrameworkCore.cs:223:13:223:15 | access to local variable ctx : MyContext [property PersonAddresses, element, property Person, property Name] : String | EntityFrameworkCore.cs:237:18:237:28 | access to property Persons : DbSet [element, property Name] : String | provenance | | +| EntityFrameworkCore.cs:226:35:226:35 | p : Person [property Name] : String | EntityFrameworkCore.cs:229:29:229:29 | access to parameter p : Person [property Name] : String | provenance | | +| EntityFrameworkCore.cs:229:13:229:15 | [post] access to local variable ctx : MyContext [property Persons, element, property Name] : String | EntityFrameworkCore.cs:230:13:230:15 | access to local variable ctx : MyContext [property Persons, element, property Name] : String | provenance | | +| EntityFrameworkCore.cs:229:13:229:23 | [post] access to property Persons : DbSet [element, property Name] : String | EntityFrameworkCore.cs:229:13:229:15 | [post] access to local variable ctx : MyContext [property Persons, element, property Name] : String | provenance | | +| EntityFrameworkCore.cs:229:29:229:29 | access to parameter p : Person [property Name] : String | EntityFrameworkCore.cs:229:13:229:23 | [post] access to property Persons : DbSet [element, property Name] : String | provenance | | +| EntityFrameworkCore.cs:230:13:230:15 | access to local variable ctx : MyContext [property Persons, element, property Name] : String | EntityFrameworkCore.cs:237:18:237:28 | access to property Persons : DbSet [element, property Name] : String | provenance | | +| EntityFrameworkCore.cs:237:18:237:28 | access to property Persons : DbSet [element, property Name] : String | EntityFrameworkCore.cs:237:18:237:36 | call to method First : Person [property Name] : String | provenance | | +| EntityFrameworkCore.cs:237:18:237:36 | call to method First : Person [property Name] : String | EntityFrameworkCore.cs:237:18:237:41 | access to property Name | provenance | | +| EntityFrameworkCore.cs:245:18:245:30 | access to property Addresses : DbSet
[element, property Street] : String | EntityFrameworkCore.cs:245:18:245:38 | call to method First
: Address [property Street] : String | provenance | | +| EntityFrameworkCore.cs:245:18:245:38 | call to method First
: Address [property Street] : String | EntityFrameworkCore.cs:245:18:245:45 | access to property Street | provenance | | +| EntityFrameworkCore.cs:252:18:252:28 | access to property Persons : DbSet [element, property Addresses, element, property Street] : String | EntityFrameworkCore.cs:252:18:252:36 | call to method First : Person [property Addresses, element, property Street] : String | provenance | | +| EntityFrameworkCore.cs:252:18:252:36 | call to method First : Person [property Addresses, element, property Street] : String | EntityFrameworkCore.cs:252:18:252:46 | access to property Addresses : ICollection
[element, property Street] : String | provenance | | +| EntityFrameworkCore.cs:252:18:252:46 | access to property Addresses : ICollection
[element, property Street] : String | EntityFrameworkCore.cs:252:18:252:54 | call to method First
: Address [property Street] : String | provenance | | +| EntityFrameworkCore.cs:252:18:252:54 | call to method First
: Address [property Street] : String | EntityFrameworkCore.cs:252:18:252:61 | access to property Street | provenance | | nodes | EntityFramework.cs:59:13:62:13 | { ..., ... } : Person [property Name] : String | semmle.label | { ..., ... } : Person [property Name] : String | | EntityFramework.cs:61:24:61:32 | "tainted" : String | semmle.label | "tainted" : String | diff --git a/csharp/ql/test/query-tests/API Abuse/FormatInvalid/FormatInvalid.expected b/csharp/ql/test/query-tests/API Abuse/FormatInvalid/FormatInvalid.expected index f3525d8bd47d..a1c5e9254370 100644 --- a/csharp/ql/test/query-tests/API Abuse/FormatInvalid/FormatInvalid.expected +++ b/csharp/ql/test/query-tests/API Abuse/FormatInvalid/FormatInvalid.expected @@ -1,6 +1,6 @@ edges -| FormatMissingArgument.cs:22:16:22:20 | "{1}" : String | FormatMissingArgument.cs:28:24:28:29 | format : String | -| FormatMissingArgument.cs:28:24:28:29 | format : String | FormatMissingArgument.cs:31:23:31:28 | access to parameter format | +| FormatMissingArgument.cs:22:16:22:20 | "{1}" : String | FormatMissingArgument.cs:28:24:28:29 | format : String | provenance | | +| FormatMissingArgument.cs:28:24:28:29 | format : String | FormatMissingArgument.cs:31:23:31:28 | access to parameter format | provenance | | nodes | FormatInvalid.cs:9:23:9:27 | "{0}" | semmle.label | "{0}" | | FormatInvalid.cs:12:23:12:29 | "{0,1}" | semmle.label | "{0,1}" | diff --git a/csharp/ql/test/query-tests/Likely Bugs/UnsafeYearConstruction/UnsafeYearConstruction.expected b/csharp/ql/test/query-tests/Likely Bugs/UnsafeYearConstruction/UnsafeYearConstruction.expected index bf23b05a35a9..5ff0ff32c213 100644 --- a/csharp/ql/test/query-tests/Likely Bugs/UnsafeYearConstruction/UnsafeYearConstruction.expected +++ b/csharp/ql/test/query-tests/Likely Bugs/UnsafeYearConstruction/UnsafeYearConstruction.expected @@ -1,7 +1,7 @@ edges -| Program.cs:15:27:15:38 | ... + ... : Int32 | Program.cs:17:37:17:43 | access to local variable endYear | -| Program.cs:23:31:23:34 | year : Int32 | Program.cs:26:39:26:42 | access to parameter year | -| Program.cs:33:18:33:29 | ... - ... : Int32 | Program.cs:23:31:23:34 | year : Int32 | +| Program.cs:15:27:15:38 | ... + ... : Int32 | Program.cs:17:37:17:43 | access to local variable endYear | provenance | | +| Program.cs:23:31:23:34 | year : Int32 | Program.cs:26:39:26:42 | access to parameter year | provenance | | +| Program.cs:33:18:33:29 | ... - ... : Int32 | Program.cs:23:31:23:34 | year : Int32 | provenance | | nodes | Program.cs:13:39:13:50 | ... - ... | semmle.label | ... - ... | | Program.cs:15:27:15:38 | ... + ... : Int32 | semmle.label | ... + ... : Int32 | diff --git a/csharp/ql/test/query-tests/Security Features/CWE-020/UntrustedDataToExternalAPI.expected b/csharp/ql/test/query-tests/Security Features/CWE-020/UntrustedDataToExternalAPI.expected index 4135e7ce5d61..10a233c2c824 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-020/UntrustedDataToExternalAPI.expected +++ b/csharp/ql/test/query-tests/Security Features/CWE-020/UntrustedDataToExternalAPI.expected @@ -1,7 +1,7 @@ edges -| UntrustedData.cs:9:20:9:42 | access to property QueryString : NameValueCollection | UntrustedData.cs:9:20:9:50 | access to indexer : String | -| UntrustedData.cs:9:20:9:42 | access to property QueryString : NameValueCollection | UntrustedData.cs:13:28:13:31 | access to local variable name | -| UntrustedData.cs:9:20:9:50 | access to indexer : String | UntrustedData.cs:13:28:13:31 | access to local variable name | +| UntrustedData.cs:9:20:9:42 | access to property QueryString : NameValueCollection | UntrustedData.cs:9:20:9:50 | access to indexer : String | provenance | | +| UntrustedData.cs:9:20:9:42 | access to property QueryString : NameValueCollection | UntrustedData.cs:13:28:13:31 | access to local variable name | provenance | | +| UntrustedData.cs:9:20:9:50 | access to indexer : String | UntrustedData.cs:13:28:13:31 | access to local variable name | provenance | | nodes | UntrustedData.cs:9:20:9:30 | access to property Request | semmle.label | access to property Request | | UntrustedData.cs:9:20:9:42 | access to property QueryString : NameValueCollection | semmle.label | access to property QueryString : NameValueCollection | diff --git a/csharp/ql/test/query-tests/Security Features/CWE-022/TaintedPath/TaintedPath.expected b/csharp/ql/test/query-tests/Security Features/CWE-022/TaintedPath/TaintedPath.expected index 77e55c484e73..e3bc1c2dd1b3 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-022/TaintedPath/TaintedPath.expected +++ b/csharp/ql/test/query-tests/Security Features/CWE-022/TaintedPath/TaintedPath.expected @@ -1,19 +1,19 @@ edges -| TaintedPath.cs:10:23:10:45 | access to property QueryString : NameValueCollection | TaintedPath.cs:10:23:10:53 | access to indexer : String | -| TaintedPath.cs:10:23:10:45 | access to property QueryString : NameValueCollection | TaintedPath.cs:12:50:12:53 | access to local variable path | -| TaintedPath.cs:10:23:10:45 | access to property QueryString : NameValueCollection | TaintedPath.cs:17:51:17:54 | access to local variable path | -| TaintedPath.cs:10:23:10:45 | access to property QueryString : NameValueCollection | TaintedPath.cs:25:30:25:33 | access to local variable path | -| TaintedPath.cs:10:23:10:45 | access to property QueryString : NameValueCollection | TaintedPath.cs:31:30:31:33 | access to local variable path | -| TaintedPath.cs:10:23:10:45 | access to property QueryString : NameValueCollection | TaintedPath.cs:36:25:36:31 | access to local variable badPath | -| TaintedPath.cs:10:23:10:45 | access to property QueryString : NameValueCollection | TaintedPath.cs:38:49:38:55 | access to local variable badPath | -| TaintedPath.cs:10:23:10:45 | access to property QueryString : NameValueCollection | TaintedPath.cs:51:26:51:29 | access to local variable path | -| TaintedPath.cs:10:23:10:53 | access to indexer : String | TaintedPath.cs:12:50:12:53 | access to local variable path | -| TaintedPath.cs:10:23:10:53 | access to indexer : String | TaintedPath.cs:17:51:17:54 | access to local variable path | -| TaintedPath.cs:10:23:10:53 | access to indexer : String | TaintedPath.cs:25:30:25:33 | access to local variable path | -| TaintedPath.cs:10:23:10:53 | access to indexer : String | TaintedPath.cs:31:30:31:33 | access to local variable path | -| TaintedPath.cs:10:23:10:53 | access to indexer : String | TaintedPath.cs:36:25:36:31 | access to local variable badPath | -| TaintedPath.cs:10:23:10:53 | access to indexer : String | TaintedPath.cs:38:49:38:55 | access to local variable badPath | -| TaintedPath.cs:10:23:10:53 | access to indexer : String | TaintedPath.cs:51:26:51:29 | access to local variable path | +| TaintedPath.cs:10:23:10:45 | access to property QueryString : NameValueCollection | TaintedPath.cs:10:23:10:53 | access to indexer : String | provenance | | +| TaintedPath.cs:10:23:10:45 | access to property QueryString : NameValueCollection | TaintedPath.cs:12:50:12:53 | access to local variable path | provenance | | +| TaintedPath.cs:10:23:10:45 | access to property QueryString : NameValueCollection | TaintedPath.cs:17:51:17:54 | access to local variable path | provenance | | +| TaintedPath.cs:10:23:10:45 | access to property QueryString : NameValueCollection | TaintedPath.cs:25:30:25:33 | access to local variable path | provenance | | +| TaintedPath.cs:10:23:10:45 | access to property QueryString : NameValueCollection | TaintedPath.cs:31:30:31:33 | access to local variable path | provenance | | +| TaintedPath.cs:10:23:10:45 | access to property QueryString : NameValueCollection | TaintedPath.cs:36:25:36:31 | access to local variable badPath | provenance | | +| TaintedPath.cs:10:23:10:45 | access to property QueryString : NameValueCollection | TaintedPath.cs:38:49:38:55 | access to local variable badPath | provenance | | +| TaintedPath.cs:10:23:10:45 | access to property QueryString : NameValueCollection | TaintedPath.cs:51:26:51:29 | access to local variable path | provenance | | +| TaintedPath.cs:10:23:10:53 | access to indexer : String | TaintedPath.cs:12:50:12:53 | access to local variable path | provenance | | +| TaintedPath.cs:10:23:10:53 | access to indexer : String | TaintedPath.cs:17:51:17:54 | access to local variable path | provenance | | +| TaintedPath.cs:10:23:10:53 | access to indexer : String | TaintedPath.cs:25:30:25:33 | access to local variable path | provenance | | +| TaintedPath.cs:10:23:10:53 | access to indexer : String | TaintedPath.cs:31:30:31:33 | access to local variable path | provenance | | +| TaintedPath.cs:10:23:10:53 | access to indexer : String | TaintedPath.cs:36:25:36:31 | access to local variable badPath | provenance | | +| TaintedPath.cs:10:23:10:53 | access to indexer : String | TaintedPath.cs:38:49:38:55 | access to local variable badPath | provenance | | +| TaintedPath.cs:10:23:10:53 | access to indexer : String | TaintedPath.cs:51:26:51:29 | access to local variable path | provenance | | nodes | TaintedPath.cs:10:23:10:45 | access to property QueryString : NameValueCollection | semmle.label | access to property QueryString : NameValueCollection | | TaintedPath.cs:10:23:10:53 | access to indexer : String | semmle.label | access to indexer : String | diff --git a/csharp/ql/test/query-tests/Security Features/CWE-022/ZipSlip/ZipSlip.expected b/csharp/ql/test/query-tests/Security Features/CWE-022/ZipSlip/ZipSlip.expected index a5b2d7166f77..3443ea23f8ee 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-022/ZipSlip/ZipSlip.expected +++ b/csharp/ql/test/query-tests/Security Features/CWE-022/ZipSlip/ZipSlip.expected @@ -1,23 +1,23 @@ edges -| ZipSlip.cs:15:35:15:66 | call to method GetFullPath : String | ZipSlip.cs:30:71:30:78 | access to local variable fullPath : String | -| ZipSlip.cs:15:35:15:66 | call to method GetFullPath : String | ZipSlip.cs:38:81:38:88 | access to local variable fullPath : String | -| ZipSlip.cs:15:52:15:65 | access to property FullName : String | ZipSlip.cs:15:35:15:66 | call to method GetFullPath : String | -| ZipSlip.cs:18:31:18:44 | access to property FullName : String | ZipSlip.cs:22:71:22:74 | access to local variable file : String | -| ZipSlip.cs:22:43:22:75 | call to method Combine : String | ZipSlip.cs:23:41:23:52 | access to local variable destFileName | -| ZipSlip.cs:22:71:22:74 | access to local variable file : String | ZipSlip.cs:22:43:22:75 | call to method Combine : String | -| ZipSlip.cs:30:43:30:79 | call to method Combine : String | ZipSlip.cs:31:41:31:52 | access to local variable destFilePath | -| ZipSlip.cs:30:43:30:79 | call to method Combine : String | ZipSlip.cs:35:45:35:56 | access to local variable destFilePath | -| ZipSlip.cs:30:71:30:78 | access to local variable fullPath : String | ZipSlip.cs:30:43:30:79 | call to method Combine : String | -| ZipSlip.cs:38:36:38:90 | call to method GetFullPath : String | ZipSlip.cs:39:41:39:52 | access to local variable destFilePath | -| ZipSlip.cs:38:53:38:89 | call to method Combine : String | ZipSlip.cs:38:36:38:90 | call to method GetFullPath : String | -| ZipSlip.cs:38:81:38:88 | access to local variable fullPath : String | ZipSlip.cs:38:53:38:89 | call to method Combine : String | -| ZipSlip.cs:61:47:61:86 | call to method Combine : String | ZipSlip.cs:68:74:68:85 | access to local variable destFilePath | -| ZipSlip.cs:61:47:61:86 | call to method Combine : String | ZipSlip.cs:75:71:75:82 | access to local variable destFilePath | -| ZipSlip.cs:61:47:61:86 | call to method Combine : String | ZipSlip.cs:82:57:82:68 | access to local variable destFilePath | -| ZipSlip.cs:61:47:61:86 | call to method Combine : String | ZipSlip.cs:90:58:90:69 | access to local variable destFilePath | -| ZipSlip.cs:61:72:61:85 | access to property FullName : String | ZipSlip.cs:61:47:61:86 | call to method Combine : String | -| ZipSlipBad.cs:9:31:9:73 | call to method Combine : String | ZipSlipBad.cs:10:29:10:40 | access to local variable destFileName | -| ZipSlipBad.cs:9:59:9:72 | access to property FullName : String | ZipSlipBad.cs:9:31:9:73 | call to method Combine : String | +| ZipSlip.cs:15:35:15:66 | call to method GetFullPath : String | ZipSlip.cs:30:71:30:78 | access to local variable fullPath : String | provenance | | +| ZipSlip.cs:15:35:15:66 | call to method GetFullPath : String | ZipSlip.cs:38:81:38:88 | access to local variable fullPath : String | provenance | | +| ZipSlip.cs:15:52:15:65 | access to property FullName : String | ZipSlip.cs:15:35:15:66 | call to method GetFullPath : String | provenance | | +| ZipSlip.cs:18:31:18:44 | access to property FullName : String | ZipSlip.cs:22:71:22:74 | access to local variable file : String | provenance | | +| ZipSlip.cs:22:43:22:75 | call to method Combine : String | ZipSlip.cs:23:41:23:52 | access to local variable destFileName | provenance | | +| ZipSlip.cs:22:71:22:74 | access to local variable file : String | ZipSlip.cs:22:43:22:75 | call to method Combine : String | provenance | | +| ZipSlip.cs:30:43:30:79 | call to method Combine : String | ZipSlip.cs:31:41:31:52 | access to local variable destFilePath | provenance | | +| ZipSlip.cs:30:43:30:79 | call to method Combine : String | ZipSlip.cs:35:45:35:56 | access to local variable destFilePath | provenance | | +| ZipSlip.cs:30:71:30:78 | access to local variable fullPath : String | ZipSlip.cs:30:43:30:79 | call to method Combine : String | provenance | | +| ZipSlip.cs:38:36:38:90 | call to method GetFullPath : String | ZipSlip.cs:39:41:39:52 | access to local variable destFilePath | provenance | | +| ZipSlip.cs:38:53:38:89 | call to method Combine : String | ZipSlip.cs:38:36:38:90 | call to method GetFullPath : String | provenance | | +| ZipSlip.cs:38:81:38:88 | access to local variable fullPath : String | ZipSlip.cs:38:53:38:89 | call to method Combine : String | provenance | | +| ZipSlip.cs:61:47:61:86 | call to method Combine : String | ZipSlip.cs:68:74:68:85 | access to local variable destFilePath | provenance | | +| ZipSlip.cs:61:47:61:86 | call to method Combine : String | ZipSlip.cs:75:71:75:82 | access to local variable destFilePath | provenance | | +| ZipSlip.cs:61:47:61:86 | call to method Combine : String | ZipSlip.cs:82:57:82:68 | access to local variable destFilePath | provenance | | +| ZipSlip.cs:61:47:61:86 | call to method Combine : String | ZipSlip.cs:90:58:90:69 | access to local variable destFilePath | provenance | | +| ZipSlip.cs:61:72:61:85 | access to property FullName : String | ZipSlip.cs:61:47:61:86 | call to method Combine : String | provenance | | +| ZipSlipBad.cs:9:31:9:73 | call to method Combine : String | ZipSlipBad.cs:10:29:10:40 | access to local variable destFileName | provenance | | +| ZipSlipBad.cs:9:59:9:72 | access to property FullName : String | ZipSlipBad.cs:9:31:9:73 | call to method Combine : String | provenance | | nodes | ZipSlip.cs:15:35:15:66 | call to method GetFullPath : String | semmle.label | call to method GetFullPath : String | | ZipSlip.cs:15:52:15:65 | access to property FullName : String | semmle.label | access to property FullName : String | diff --git a/csharp/ql/test/query-tests/Security Features/CWE-078/CommandInjection.expected b/csharp/ql/test/query-tests/Security Features/CWE-078/CommandInjection.expected index 336342b9747d..fc1da3ba7c66 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-078/CommandInjection.expected +++ b/csharp/ql/test/query-tests/Security Features/CWE-078/CommandInjection.expected @@ -1,26 +1,26 @@ edges -| CommandInjection.cs:25:32:25:46 | access to field categoryTextBox : TextBox | CommandInjection.cs:25:32:25:51 | access to property Text : String | -| CommandInjection.cs:25:32:25:51 | access to property Text : String | CommandInjection.cs:26:27:26:47 | ... + ... | -| CommandInjection.cs:25:32:25:51 | access to property Text : String | CommandInjection.cs:26:50:26:66 | ... + ... | -| CommandInjection.cs:25:32:25:51 | access to property Text : String | CommandInjection.cs:28:63:28:71 | access to local variable userInput | -| CommandInjection.cs:25:32:25:51 | access to property Text : String | CommandInjection.cs:28:63:28:71 | access to local variable userInput : String | -| CommandInjection.cs:25:32:25:51 | access to property Text : String | CommandInjection.cs:28:74:28:82 | access to local variable userInput | -| CommandInjection.cs:25:32:25:51 | access to property Text : String | CommandInjection.cs:28:74:28:82 | access to local variable userInput : String | -| CommandInjection.cs:25:32:25:51 | access to property Text : String | CommandInjection.cs:32:39:32:47 | access to local variable userInput | -| CommandInjection.cs:25:32:25:51 | access to property Text : String | CommandInjection.cs:32:39:32:47 | access to local variable userInput : String | -| CommandInjection.cs:25:32:25:51 | access to property Text : String | CommandInjection.cs:33:40:33:48 | access to local variable userInput | -| CommandInjection.cs:25:32:25:51 | access to property Text : String | CommandInjection.cs:33:40:33:48 | access to local variable userInput : String | -| CommandInjection.cs:25:32:25:51 | access to property Text : String | CommandInjection.cs:34:47:34:55 | access to local variable userInput | -| CommandInjection.cs:25:32:25:51 | access to property Text : String | CommandInjection.cs:34:47:34:55 | access to local variable userInput : String | -| CommandInjection.cs:28:42:28:83 | object creation of type ProcessStartInfo : ProcessStartInfo | CommandInjection.cs:29:27:29:35 | access to local variable startInfo | -| CommandInjection.cs:28:63:28:71 | access to local variable userInput : String | CommandInjection.cs:28:42:28:83 | object creation of type ProcessStartInfo : ProcessStartInfo | -| CommandInjection.cs:28:74:28:82 | access to local variable userInput : String | CommandInjection.cs:28:42:28:83 | object creation of type ProcessStartInfo : ProcessStartInfo | -| CommandInjection.cs:32:13:32:26 | [post] access to local variable startInfoProps : ProcessStartInfo | CommandInjection.cs:35:27:35:40 | access to local variable startInfoProps | -| CommandInjection.cs:32:39:32:47 | access to local variable userInput : String | CommandInjection.cs:32:13:32:26 | [post] access to local variable startInfoProps : ProcessStartInfo | -| CommandInjection.cs:33:13:33:26 | [post] access to local variable startInfoProps : ProcessStartInfo | CommandInjection.cs:35:27:35:40 | access to local variable startInfoProps | -| CommandInjection.cs:33:40:33:48 | access to local variable userInput : String | CommandInjection.cs:33:13:33:26 | [post] access to local variable startInfoProps : ProcessStartInfo | -| CommandInjection.cs:34:13:34:26 | [post] access to local variable startInfoProps : ProcessStartInfo | CommandInjection.cs:35:27:35:40 | access to local variable startInfoProps | -| CommandInjection.cs:34:47:34:55 | access to local variable userInput : String | CommandInjection.cs:34:13:34:26 | [post] access to local variable startInfoProps : ProcessStartInfo | +| CommandInjection.cs:25:32:25:46 | access to field categoryTextBox : TextBox | CommandInjection.cs:25:32:25:51 | access to property Text : String | provenance | | +| CommandInjection.cs:25:32:25:51 | access to property Text : String | CommandInjection.cs:26:27:26:47 | ... + ... | provenance | | +| CommandInjection.cs:25:32:25:51 | access to property Text : String | CommandInjection.cs:26:50:26:66 | ... + ... | provenance | | +| CommandInjection.cs:25:32:25:51 | access to property Text : String | CommandInjection.cs:28:63:28:71 | access to local variable userInput | provenance | | +| CommandInjection.cs:25:32:25:51 | access to property Text : String | CommandInjection.cs:28:63:28:71 | access to local variable userInput : String | provenance | | +| CommandInjection.cs:25:32:25:51 | access to property Text : String | CommandInjection.cs:28:74:28:82 | access to local variable userInput | provenance | | +| CommandInjection.cs:25:32:25:51 | access to property Text : String | CommandInjection.cs:28:74:28:82 | access to local variable userInput : String | provenance | | +| CommandInjection.cs:25:32:25:51 | access to property Text : String | CommandInjection.cs:32:39:32:47 | access to local variable userInput | provenance | | +| CommandInjection.cs:25:32:25:51 | access to property Text : String | CommandInjection.cs:32:39:32:47 | access to local variable userInput : String | provenance | | +| CommandInjection.cs:25:32:25:51 | access to property Text : String | CommandInjection.cs:33:40:33:48 | access to local variable userInput | provenance | | +| CommandInjection.cs:25:32:25:51 | access to property Text : String | CommandInjection.cs:33:40:33:48 | access to local variable userInput : String | provenance | | +| CommandInjection.cs:25:32:25:51 | access to property Text : String | CommandInjection.cs:34:47:34:55 | access to local variable userInput | provenance | | +| CommandInjection.cs:25:32:25:51 | access to property Text : String | CommandInjection.cs:34:47:34:55 | access to local variable userInput : String | provenance | | +| CommandInjection.cs:28:42:28:83 | object creation of type ProcessStartInfo : ProcessStartInfo | CommandInjection.cs:29:27:29:35 | access to local variable startInfo | provenance | | +| CommandInjection.cs:28:63:28:71 | access to local variable userInput : String | CommandInjection.cs:28:42:28:83 | object creation of type ProcessStartInfo : ProcessStartInfo | provenance | | +| CommandInjection.cs:28:74:28:82 | access to local variable userInput : String | CommandInjection.cs:28:42:28:83 | object creation of type ProcessStartInfo : ProcessStartInfo | provenance | | +| CommandInjection.cs:32:13:32:26 | [post] access to local variable startInfoProps : ProcessStartInfo | CommandInjection.cs:35:27:35:40 | access to local variable startInfoProps | provenance | | +| CommandInjection.cs:32:39:32:47 | access to local variable userInput : String | CommandInjection.cs:32:13:32:26 | [post] access to local variable startInfoProps : ProcessStartInfo | provenance | | +| CommandInjection.cs:33:13:33:26 | [post] access to local variable startInfoProps : ProcessStartInfo | CommandInjection.cs:35:27:35:40 | access to local variable startInfoProps | provenance | | +| CommandInjection.cs:33:40:33:48 | access to local variable userInput : String | CommandInjection.cs:33:13:33:26 | [post] access to local variable startInfoProps : ProcessStartInfo | provenance | | +| CommandInjection.cs:34:13:34:26 | [post] access to local variable startInfoProps : ProcessStartInfo | CommandInjection.cs:35:27:35:40 | access to local variable startInfoProps | provenance | | +| CommandInjection.cs:34:47:34:55 | access to local variable userInput : String | CommandInjection.cs:34:13:34:26 | [post] access to local variable startInfoProps : ProcessStartInfo | provenance | | nodes | CommandInjection.cs:25:32:25:46 | access to field categoryTextBox : TextBox | semmle.label | access to field categoryTextBox : TextBox | | CommandInjection.cs:25:32:25:51 | access to property Text : String | semmle.label | access to property Text : String | diff --git a/csharp/ql/test/query-tests/Security Features/CWE-078/StoredCommandInjection.expected b/csharp/ql/test/query-tests/Security Features/CWE-078/StoredCommandInjection.expected index 0c166565a832..46c85f7abbe6 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-078/StoredCommandInjection.expected +++ b/csharp/ql/test/query-tests/Security Features/CWE-078/StoredCommandInjection.expected @@ -1,5 +1,5 @@ edges -| StoredCommandInjection.cs:22:54:22:80 | call to method GetString : String | StoredCommandInjection.cs:22:46:22:80 | ... + ... | +| StoredCommandInjection.cs:22:54:22:80 | call to method GetString : String | StoredCommandInjection.cs:22:46:22:80 | ... + ... | provenance | | nodes | StoredCommandInjection.cs:22:46:22:80 | ... + ... | semmle.label | ... + ... | | StoredCommandInjection.cs:22:54:22:80 | call to method GetString : String | semmle.label | call to method GetString : String | diff --git a/csharp/ql/test/query-tests/Security Features/CWE-079/StoredXSS/StoredXSS.expected b/csharp/ql/test/query-tests/Security Features/CWE-079/StoredXSS/StoredXSS.expected index beef5ec29682..488df85e1c4f 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-079/StoredXSS/StoredXSS.expected +++ b/csharp/ql/test/query-tests/Security Features/CWE-079/StoredXSS/StoredXSS.expected @@ -1,5 +1,5 @@ edges -| StoredXSS.cs:22:60:22:86 | call to method GetString : String | StoredXSS.cs:22:44:22:86 | ... + ... | +| StoredXSS.cs:22:60:22:86 | call to method GetString : String | StoredXSS.cs:22:44:22:86 | ... + ... | provenance | | nodes | StoredXSS.cs:22:44:22:86 | ... + ... | semmle.label | ... + ... | | StoredXSS.cs:22:60:22:86 | call to method GetString : String | semmle.label | call to method GetString : String | diff --git a/csharp/ql/test/query-tests/Security Features/CWE-079/XSS/XSS.expected b/csharp/ql/test/query-tests/Security Features/CWE-079/XSS/XSS.expected index added4434000..1e1c6258c898 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-079/XSS/XSS.expected +++ b/csharp/ql/test/query-tests/Security Features/CWE-079/XSS/XSS.expected @@ -1,19 +1,19 @@ edges -| Index.cshtml:5:19:5:31 | access to property Query : IQueryCollection | Index.cshtml:14:16:14:22 | call to operator implicit conversion | -| XSSAspNet.cs:19:25:19:43 | access to property QueryString : NameValueCollection | XSSAspNet.cs:19:25:19:52 | access to indexer : String | -| XSSAspNet.cs:19:25:19:43 | access to property QueryString : NameValueCollection | XSSAspNet.cs:26:30:26:34 | access to local variable sayHi | -| XSSAspNet.cs:19:25:19:43 | access to property QueryString : NameValueCollection | XSSAspNet.cs:36:40:36:44 | access to local variable sayHi | -| XSSAspNet.cs:19:25:19:52 | access to indexer : String | XSSAspNet.cs:26:30:26:34 | access to local variable sayHi | -| XSSAspNet.cs:19:25:19:52 | access to indexer : String | XSSAspNet.cs:36:40:36:44 | access to local variable sayHi | -| XSSAspNet.cs:43:28:43:46 | access to property QueryString : NameValueCollection | XSSAspNet.cs:43:28:43:55 | access to indexer | -| XSSAspNetCore.cs:21:52:21:64 | access to property Query : IQueryCollection | XSSAspNetCore.cs:21:52:21:76 | call to operator implicit conversion | -| XSSAspNetCore.cs:40:56:40:58 | foo : String | XSSAspNetCore.cs:44:51:44:53 | access to parameter foo | -| XSSAspNetCore.cs:58:43:58:55 | access to property Query : IQueryCollection | XSSAspNetCore.cs:58:43:58:62 | access to indexer : StringValues | -| XSSAspNetCore.cs:58:43:58:62 | access to indexer : StringValues | XSSAspNetCore.cs:58:43:58:73 | call to method ToString | -| XSSAspNetCore.cs:61:44:61:56 | access to property Query : IQueryCollection | XSSAspNetCore.cs:61:44:61:63 | access to indexer : StringValues | -| XSSAspNetCore.cs:61:44:61:56 | access to property Query : IQueryCollection | XSSAspNetCore.cs:61:44:61:66 | access to indexer | -| XSSAspNetCore.cs:61:44:61:63 | access to indexer : StringValues | XSSAspNetCore.cs:61:44:61:66 | access to indexer | -| XSSAspNetCore.cs:72:51:72:65 | access to property Headers : IHeaderDictionary | XSSAspNetCore.cs:72:51:72:72 | call to operator implicit conversion | +| Index.cshtml:5:19:5:31 | access to property Query : IQueryCollection | Index.cshtml:14:16:14:22 | call to operator implicit conversion | provenance | | +| XSSAspNet.cs:19:25:19:43 | access to property QueryString : NameValueCollection | XSSAspNet.cs:19:25:19:52 | access to indexer : String | provenance | | +| XSSAspNet.cs:19:25:19:43 | access to property QueryString : NameValueCollection | XSSAspNet.cs:26:30:26:34 | access to local variable sayHi | provenance | | +| XSSAspNet.cs:19:25:19:43 | access to property QueryString : NameValueCollection | XSSAspNet.cs:36:40:36:44 | access to local variable sayHi | provenance | | +| XSSAspNet.cs:19:25:19:52 | access to indexer : String | XSSAspNet.cs:26:30:26:34 | access to local variable sayHi | provenance | | +| XSSAspNet.cs:19:25:19:52 | access to indexer : String | XSSAspNet.cs:36:40:36:44 | access to local variable sayHi | provenance | | +| XSSAspNet.cs:43:28:43:46 | access to property QueryString : NameValueCollection | XSSAspNet.cs:43:28:43:55 | access to indexer | provenance | | +| XSSAspNetCore.cs:21:52:21:64 | access to property Query : IQueryCollection | XSSAspNetCore.cs:21:52:21:76 | call to operator implicit conversion | provenance | | +| XSSAspNetCore.cs:40:56:40:58 | foo : String | XSSAspNetCore.cs:44:51:44:53 | access to parameter foo | provenance | | +| XSSAspNetCore.cs:58:43:58:55 | access to property Query : IQueryCollection | XSSAspNetCore.cs:58:43:58:62 | access to indexer : StringValues | provenance | | +| XSSAspNetCore.cs:58:43:58:62 | access to indexer : StringValues | XSSAspNetCore.cs:58:43:58:73 | call to method ToString | provenance | | +| XSSAspNetCore.cs:61:44:61:56 | access to property Query : IQueryCollection | XSSAspNetCore.cs:61:44:61:63 | access to indexer : StringValues | provenance | | +| XSSAspNetCore.cs:61:44:61:56 | access to property Query : IQueryCollection | XSSAspNetCore.cs:61:44:61:66 | access to indexer | provenance | | +| XSSAspNetCore.cs:61:44:61:63 | access to indexer : StringValues | XSSAspNetCore.cs:61:44:61:66 | access to indexer | provenance | | +| XSSAspNetCore.cs:72:51:72:65 | access to property Headers : IHeaderDictionary | XSSAspNetCore.cs:72:51:72:72 | call to operator implicit conversion | provenance | | nodes | Index.cshtml:5:19:5:31 | access to property Query : IQueryCollection | semmle.label | access to property Query : IQueryCollection | | Index.cshtml:14:16:14:22 | call to operator implicit conversion | semmle.label | call to operator implicit conversion | diff --git a/csharp/ql/test/query-tests/Security Features/CWE-079/XSSAsp/XSS.expected b/csharp/ql/test/query-tests/Security Features/CWE-079/XSSAsp/XSS.expected index 941b4b359a9c..e3c29b083161 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-079/XSSAsp/XSS.expected +++ b/csharp/ql/test/query-tests/Security Features/CWE-079/XSSAsp/XSS.expected @@ -1,33 +1,33 @@ edges -| XSS.cs:25:13:25:21 | [post] access to local variable userInput : StringBuilder | XSS.cs:26:32:26:40 | access to local variable userInput : StringBuilder | -| XSS.cs:25:13:25:21 | [post] access to local variable userInput : StringBuilder | XSS.cs:27:29:27:37 | access to local variable userInput : StringBuilder | -| XSS.cs:25:13:25:21 | [post] access to local variable userInput : StringBuilder | XSS.cs:28:26:28:34 | access to local variable userInput : StringBuilder | -| XSS.cs:25:48:25:62 | access to field categoryTextBox : TextBox | XSS.cs:25:48:25:67 | access to property Text : String | -| XSS.cs:25:48:25:67 | access to property Text : String | XSS.cs:25:13:25:21 | [post] access to local variable userInput : StringBuilder | -| XSS.cs:26:32:26:40 | access to local variable userInput : StringBuilder | XSS.cs:26:32:26:51 | call to method ToString | -| XSS.cs:27:29:27:37 | access to local variable userInput : StringBuilder | XSS.cs:27:29:27:48 | call to method ToString | -| XSS.cs:28:26:28:34 | access to local variable userInput : StringBuilder | XSS.cs:28:26:28:45 | call to method ToString | -| XSS.cs:37:27:37:53 | access to property QueryString : NameValueCollection | XSS.cs:37:27:37:61 | access to indexer : String | -| XSS.cs:37:27:37:53 | access to property QueryString : NameValueCollection | XSS.cs:38:36:38:39 | access to local variable name | -| XSS.cs:37:27:37:61 | access to indexer : String | XSS.cs:38:36:38:39 | access to local variable name | -| XSS.cs:57:27:57:65 | access to property QueryString : NameValueCollection | XSS.cs:57:27:57:73 | access to indexer : String | -| XSS.cs:57:27:57:65 | access to property QueryString : NameValueCollection | XSS.cs:59:22:59:25 | access to local variable name | -| XSS.cs:57:27:57:73 | access to indexer : String | XSS.cs:59:22:59:25 | access to local variable name | -| XSS.cs:75:27:75:53 | access to property QueryString : NameValueCollection | XSS.cs:75:27:75:61 | access to indexer : String | -| XSS.cs:75:27:75:53 | access to property QueryString : NameValueCollection | XSS.cs:76:36:76:39 | access to local variable name | -| XSS.cs:75:27:75:61 | access to indexer : String | XSS.cs:76:36:76:39 | access to local variable name | -| XSS.cs:78:28:78:42 | access to property Request : HttpRequestBase | XSS.cs:79:36:79:40 | access to local variable name2 | -| XSS.cs:85:27:85:53 | access to property QueryString : NameValueCollection | XSS.cs:85:27:85:61 | access to indexer : String | -| XSS.cs:85:27:85:53 | access to property QueryString : NameValueCollection | XSS.cs:86:28:86:31 | access to local variable name | -| XSS.cs:85:27:85:53 | access to property QueryString : NameValueCollection | XSS.cs:87:31:87:34 | access to local variable name | -| XSS.cs:85:27:85:61 | access to indexer : String | XSS.cs:86:28:86:31 | access to local variable name | -| XSS.cs:85:27:85:61 | access to indexer : String | XSS.cs:87:31:87:34 | access to local variable name | -| XSS.cs:94:27:94:53 | access to property QueryString : NameValueCollection | XSS.cs:94:27:94:61 | access to indexer : String | -| XSS.cs:94:27:94:53 | access to property QueryString : NameValueCollection | XSS.cs:95:31:95:34 | access to local variable name | -| XSS.cs:94:27:94:61 | access to indexer : String | XSS.cs:95:31:95:34 | access to local variable name | -| script.aspx:12:1:12:14 | <%= ... %> | script.aspx:12:1:12:14 | <%= ... %> | -| script.aspx:16:1:16:34 | <%= ... %> | script.aspx:16:1:16:34 | <%= ... %> | -| script.aspx:20:1:20:41 | <%= ... %> | script.aspx:20:1:20:41 | <%= ... %> | +| XSS.cs:25:13:25:21 | [post] access to local variable userInput : StringBuilder | XSS.cs:26:32:26:40 | access to local variable userInput : StringBuilder | provenance | | +| XSS.cs:25:13:25:21 | [post] access to local variable userInput : StringBuilder | XSS.cs:27:29:27:37 | access to local variable userInput : StringBuilder | provenance | | +| XSS.cs:25:13:25:21 | [post] access to local variable userInput : StringBuilder | XSS.cs:28:26:28:34 | access to local variable userInput : StringBuilder | provenance | | +| XSS.cs:25:48:25:62 | access to field categoryTextBox : TextBox | XSS.cs:25:48:25:67 | access to property Text : String | provenance | | +| XSS.cs:25:48:25:67 | access to property Text : String | XSS.cs:25:13:25:21 | [post] access to local variable userInput : StringBuilder | provenance | | +| XSS.cs:26:32:26:40 | access to local variable userInput : StringBuilder | XSS.cs:26:32:26:51 | call to method ToString | provenance | | +| XSS.cs:27:29:27:37 | access to local variable userInput : StringBuilder | XSS.cs:27:29:27:48 | call to method ToString | provenance | | +| XSS.cs:28:26:28:34 | access to local variable userInput : StringBuilder | XSS.cs:28:26:28:45 | call to method ToString | provenance | | +| XSS.cs:37:27:37:53 | access to property QueryString : NameValueCollection | XSS.cs:37:27:37:61 | access to indexer : String | provenance | | +| XSS.cs:37:27:37:53 | access to property QueryString : NameValueCollection | XSS.cs:38:36:38:39 | access to local variable name | provenance | | +| XSS.cs:37:27:37:61 | access to indexer : String | XSS.cs:38:36:38:39 | access to local variable name | provenance | | +| XSS.cs:57:27:57:65 | access to property QueryString : NameValueCollection | XSS.cs:57:27:57:73 | access to indexer : String | provenance | | +| XSS.cs:57:27:57:65 | access to property QueryString : NameValueCollection | XSS.cs:59:22:59:25 | access to local variable name | provenance | | +| XSS.cs:57:27:57:73 | access to indexer : String | XSS.cs:59:22:59:25 | access to local variable name | provenance | | +| XSS.cs:75:27:75:53 | access to property QueryString : NameValueCollection | XSS.cs:75:27:75:61 | access to indexer : String | provenance | | +| XSS.cs:75:27:75:53 | access to property QueryString : NameValueCollection | XSS.cs:76:36:76:39 | access to local variable name | provenance | | +| XSS.cs:75:27:75:61 | access to indexer : String | XSS.cs:76:36:76:39 | access to local variable name | provenance | | +| XSS.cs:78:28:78:42 | access to property Request : HttpRequestBase | XSS.cs:79:36:79:40 | access to local variable name2 | provenance | | +| XSS.cs:85:27:85:53 | access to property QueryString : NameValueCollection | XSS.cs:85:27:85:61 | access to indexer : String | provenance | | +| XSS.cs:85:27:85:53 | access to property QueryString : NameValueCollection | XSS.cs:86:28:86:31 | access to local variable name | provenance | | +| XSS.cs:85:27:85:53 | access to property QueryString : NameValueCollection | XSS.cs:87:31:87:34 | access to local variable name | provenance | | +| XSS.cs:85:27:85:61 | access to indexer : String | XSS.cs:86:28:86:31 | access to local variable name | provenance | | +| XSS.cs:85:27:85:61 | access to indexer : String | XSS.cs:87:31:87:34 | access to local variable name | provenance | | +| XSS.cs:94:27:94:53 | access to property QueryString : NameValueCollection | XSS.cs:94:27:94:61 | access to indexer : String | provenance | | +| XSS.cs:94:27:94:53 | access to property QueryString : NameValueCollection | XSS.cs:95:31:95:34 | access to local variable name | provenance | | +| XSS.cs:94:27:94:61 | access to indexer : String | XSS.cs:95:31:95:34 | access to local variable name | provenance | | +| script.aspx:12:1:12:14 | <%= ... %> | script.aspx:12:1:12:14 | <%= ... %> | provenance | | +| script.aspx:16:1:16:34 | <%= ... %> | script.aspx:16:1:16:34 | <%= ... %> | provenance | | +| script.aspx:20:1:20:41 | <%= ... %> | script.aspx:20:1:20:41 | <%= ... %> | provenance | | nodes | XSS.cs:25:13:25:21 | [post] access to local variable userInput : StringBuilder | semmle.label | [post] access to local variable userInput : StringBuilder | | XSS.cs:25:48:25:62 | access to field categoryTextBox : TextBox | semmle.label | access to field categoryTextBox : TextBox | diff --git a/csharp/ql/test/query-tests/Security Features/CWE-079/XSSRazorPages/XSS.expected b/csharp/ql/test/query-tests/Security Features/CWE-079/XSSRazorPages/XSS.expected index 19413509bcb4..70c8dcfbd111 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-079/XSSRazorPages/XSS.expected +++ b/csharp/ql/test/query-tests/Security Features/CWE-079/XSSRazorPages/XSS.expected @@ -1,72 +1,72 @@ edges -| Areas/TestArea/Views/Shared/Test18.cshtml:8:16:8:20 | access to property Model : UserData | Areas/TestArea/Views/Shared/Test18.cshtml:8:16:8:25 | access to property Name | -| Areas/TestArea/Views/Test4/Test17.cshtml:8:16:8:20 | access to property Model : UserData | Areas/TestArea/Views/Test4/Test17.cshtml:8:16:8:25 | access to property Name | -| Controllers/TestController.cs:13:41:13:48 | tainted1 : UserData | Controllers/TestController.cs:15:30:15:37 | access to parameter tainted1 : UserData | -| Controllers/TestController.cs:15:30:15:37 | access to parameter tainted1 : UserData | Views/Test/Test1.cshtml:8:16:8:20 | access to property Model : UserData | -| Controllers/TestController.cs:18:41:18:48 | tainted2 : UserData | Controllers/TestController.cs:20:30:20:37 | access to parameter tainted2 : UserData | -| Controllers/TestController.cs:20:30:20:37 | access to parameter tainted2 : UserData | Views/Shared/Test2.cshtml:8:16:8:20 | access to property Model : UserData | -| Controllers/TestController.cs:23:41:23:48 | tainted3 : UserData | Controllers/TestController.cs:25:30:25:37 | access to parameter tainted3 : UserData | -| Controllers/TestController.cs:25:30:25:37 | access to parameter tainted3 : UserData | Views/Test/Test3.cshtml:8:16:8:20 | access to property Model : UserData | -| Controllers/TestController.cs:28:41:28:48 | tainted4 : UserData | Controllers/TestController.cs:30:32:30:39 | access to parameter tainted4 : UserData | -| Controllers/TestController.cs:30:32:30:39 | access to parameter tainted4 : UserData | Views/Test/Test4.cshtml:8:16:8:20 | access to property Model : UserData | -| Controllers/TestController.cs:33:41:33:48 | tainted5 : UserData | Controllers/TestController.cs:35:39:35:46 | access to parameter tainted5 : UserData | -| Controllers/TestController.cs:35:39:35:46 | access to parameter tainted5 : UserData | Views/Other/Test5.cshtml:8:16:8:20 | access to property Model : UserData | -| Controllers/TestController.cs:38:41:38:48 | tainted6 : UserData | Controllers/TestController.cs:40:64:40:71 | access to parameter tainted6 : UserData | -| Controllers/TestController.cs:40:64:40:71 | access to parameter tainted6 : UserData | Views/Other/Test6.cshtml:8:16:8:20 | access to property Model : UserData | -| Controllers/TestController.cs:43:41:43:48 | tainted7 : UserData | Controllers/TestController.cs:45:21:45:28 | access to parameter tainted7 : UserData | -| Controllers/TestController.cs:45:21:45:28 | access to parameter tainted7 : UserData | Views/Test/Test7.cshtml:8:16:8:20 | access to property Model : UserData | -| Controllers/TestController.cs:48:41:48:48 | tainted8 : UserData | Controllers/TestController.cs:50:50:50:57 | access to parameter tainted8 : UserData | -| Controllers/TestController.cs:50:50:50:57 | access to parameter tainted8 : UserData | Views/Other/Test8.cshtml:8:16:8:20 | access to property Model : UserData | -| Controllers/TestController.cs:53:41:53:48 | tainted9 : UserData | Controllers/TestController.cs:55:51:55:58 | access to parameter tainted9 : UserData | -| Controllers/TestController.cs:55:51:55:58 | access to parameter tainted9 : UserData | Views/Other/Test9.cshtml:8:16:8:20 | access to property Model : UserData | -| Controllers/TestController.cs:60:42:60:50 | tainted10 : UserData | Controllers/TestController.cs:62:31:62:39 | access to parameter tainted10 : UserData | -| Controllers/TestController.cs:62:31:62:39 | access to parameter tainted10 : UserData | Views/Test2/Test10.cshtml:8:16:8:20 | access to property Model : UserData | -| Controllers/TestController.cs:65:42:65:50 | tainted11 : UserData | Controllers/TestController.cs:67:23:67:31 | access to parameter tainted11 : UserData | -| Controllers/TestController.cs:67:23:67:31 | access to parameter tainted11 : UserData | Controllers/TestController.cs:70:43:70:43 | x : UserData | -| Controllers/TestController.cs:70:43:70:43 | x : UserData | Controllers/TestController.cs:70:70:70:70 | access to parameter x : UserData | -| Controllers/TestController.cs:70:70:70:70 | access to parameter x : UserData | Views/Test2/Test11.cshtml:8:16:8:20 | access to property Model : UserData | -| Controllers/TestController.cs:81:42:81:50 | tainted13 : UserData | Controllers/TestController.cs:83:37:83:45 | access to parameter tainted13 : UserData | -| Controllers/TestController.cs:83:37:83:45 | access to parameter tainted13 : UserData | Controllers/TestController.cs:94:64:94:64 | x : UserData | -| Controllers/TestController.cs:86:42:86:50 | tainted14 : UserData | Controllers/TestController.cs:88:37:88:45 | access to parameter tainted14 : UserData | -| Controllers/TestController.cs:88:37:88:45 | access to parameter tainted14 : UserData | Controllers/TestController.cs:96:64:96:64 | x : UserData | -| Controllers/TestController.cs:94:64:94:64 | x : UserData | Controllers/TestController.cs:94:113:94:113 | access to parameter x : UserData | -| Controllers/TestController.cs:94:113:94:113 | access to parameter x : UserData | Views/Other/Test13.cshtml:8:16:8:20 | access to property Model : UserData | -| Controllers/TestController.cs:96:64:96:64 | x : UserData | Controllers/TestController.cs:96:93:96:93 | access to parameter x : UserData | -| Controllers/TestController.cs:96:93:96:93 | access to parameter x : UserData | Views/Shared/Test14.cshtml:8:16:8:20 | access to property Model : UserData | -| Controllers/TestController.cs:106:42:106:50 | tainted15 : UserData | Controllers/TestController.cs:108:21:108:29 | access to parameter tainted15 : UserData | -| Controllers/TestController.cs:108:21:108:29 | access to parameter tainted15 : UserData | Views/Custom/Test3/Test15.cshtml:8:16:8:20 | access to property Model : UserData | -| Controllers/TestController.cs:111:42:111:50 | tainted16 : UserData | Controllers/TestController.cs:113:31:113:39 | access to parameter tainted16 : UserData | -| Controllers/TestController.cs:113:31:113:39 | access to parameter tainted16 : UserData | Views/Custom2/Test16.cshtml:8:16:8:20 | access to property Model : UserData | -| Controllers/TestController.cs:119:42:119:50 | tainted17 : UserData | Controllers/TestController.cs:121:31:121:39 | access to parameter tainted17 : UserData | -| Controllers/TestController.cs:121:31:121:39 | access to parameter tainted17 : UserData | Areas/TestArea/Views/Test4/Test17.cshtml:8:16:8:20 | access to property Model : UserData | -| Controllers/TestController.cs:124:42:124:50 | tainted18 : UserData | Controllers/TestController.cs:126:31:126:39 | access to parameter tainted18 : UserData | -| Controllers/TestController.cs:126:31:126:39 | access to parameter tainted18 : UserData | Areas/TestArea/Views/Shared/Test18.cshtml:8:16:8:20 | access to property Model : UserData | -| Controllers/TestController.cs:129:42:129:50 | tainted19 : UserData | Controllers/TestController.cs:131:31:131:39 | access to parameter tainted19 : UserData | -| Controllers/TestController.cs:131:31:131:39 | access to parameter tainted19 : UserData | Views/Shared/Test19.cshtml:8:16:8:20 | access to property Model : UserData | -| Controllers/TestController.cs:139:42:139:50 | tainted21 : UserData | Controllers/TestController.cs:141:31:141:39 | access to parameter tainted21 : UserData | -| Controllers/TestController.cs:141:31:141:39 | access to parameter tainted21 : UserData | Pages/Shared/Test21.cshtml:8:16:8:20 | access to property Model : UserData | -| Controllers/TestController.cs:149:40:149:48 | tainted23 : String | Controllers/TestController.cs:152:18:152:26 | access to parameter tainted23 : String | -| Controllers/TestController.cs:152:9:152:9 | [post] access to local variable x : UserData [property Name] : String | Controllers/TestController.cs:153:31:153:31 | access to local variable x : UserData [property Name] : String | -| Controllers/TestController.cs:152:18:152:26 | access to parameter tainted23 : String | Controllers/TestController.cs:152:9:152:9 | [post] access to local variable x : UserData [property Name] : String | -| Controllers/TestController.cs:153:31:153:31 | access to local variable x : UserData [property Name] : String | Views/Shared/Test23.cshtml:8:16:8:20 | access to property Model : UserData [property Name] : String | -| Pages/Shared/Test21.cshtml:8:16:8:20 | access to property Model : UserData | Pages/Shared/Test21.cshtml:8:16:8:25 | access to property Name | -| Views/Custom2/Test16.cshtml:8:16:8:20 | access to property Model : UserData | Views/Custom2/Test16.cshtml:8:16:8:25 | access to property Name | -| Views/Custom/Test3/Test15.cshtml:8:16:8:20 | access to property Model : UserData | Views/Custom/Test3/Test15.cshtml:8:16:8:25 | access to property Name | -| Views/Other/Test5.cshtml:8:16:8:20 | access to property Model : UserData | Views/Other/Test5.cshtml:8:16:8:25 | access to property Name | -| Views/Other/Test6.cshtml:8:16:8:20 | access to property Model : UserData | Views/Other/Test6.cshtml:8:16:8:25 | access to property Name | -| Views/Other/Test8.cshtml:8:16:8:20 | access to property Model : UserData | Views/Other/Test8.cshtml:8:16:8:25 | access to property Name | -| Views/Other/Test9.cshtml:8:16:8:20 | access to property Model : UserData | Views/Other/Test9.cshtml:8:16:8:25 | access to property Name | -| Views/Other/Test13.cshtml:8:16:8:20 | access to property Model : UserData | Views/Other/Test13.cshtml:8:16:8:25 | access to property Name | -| Views/Shared/Test2.cshtml:8:16:8:20 | access to property Model : UserData | Views/Shared/Test2.cshtml:8:16:8:25 | access to property Name | -| Views/Shared/Test14.cshtml:8:16:8:20 | access to property Model : UserData | Views/Shared/Test14.cshtml:8:16:8:25 | access to property Name | -| Views/Shared/Test19.cshtml:8:16:8:20 | access to property Model : UserData | Views/Shared/Test19.cshtml:8:16:8:25 | access to property Name | -| Views/Shared/Test23.cshtml:8:16:8:20 | access to property Model : UserData [property Name] : String | Views/Shared/Test23.cshtml:8:16:8:25 | access to property Name | -| Views/Test2/Test10.cshtml:8:16:8:20 | access to property Model : UserData | Views/Test2/Test10.cshtml:8:16:8:25 | access to property Name | -| Views/Test2/Test11.cshtml:8:16:8:20 | access to property Model : UserData | Views/Test2/Test11.cshtml:8:16:8:25 | access to property Name | -| Views/Test/Test1.cshtml:8:16:8:20 | access to property Model : UserData | Views/Test/Test1.cshtml:8:16:8:25 | access to property Name | -| Views/Test/Test3.cshtml:8:16:8:20 | access to property Model : UserData | Views/Test/Test3.cshtml:8:16:8:25 | access to property Name | -| Views/Test/Test4.cshtml:8:16:8:20 | access to property Model : UserData | Views/Test/Test4.cshtml:8:16:8:25 | access to property Name | -| Views/Test/Test7.cshtml:8:16:8:20 | access to property Model : UserData | Views/Test/Test7.cshtml:8:16:8:25 | access to property Name | +| Areas/TestArea/Views/Shared/Test18.cshtml:8:16:8:20 | access to property Model : UserData | Areas/TestArea/Views/Shared/Test18.cshtml:8:16:8:25 | access to property Name | provenance | | +| Areas/TestArea/Views/Test4/Test17.cshtml:8:16:8:20 | access to property Model : UserData | Areas/TestArea/Views/Test4/Test17.cshtml:8:16:8:25 | access to property Name | provenance | | +| Controllers/TestController.cs:13:41:13:48 | tainted1 : UserData | Controllers/TestController.cs:15:30:15:37 | access to parameter tainted1 : UserData | provenance | | +| Controllers/TestController.cs:15:30:15:37 | access to parameter tainted1 : UserData | Views/Test/Test1.cshtml:8:16:8:20 | access to property Model : UserData | provenance | | +| Controllers/TestController.cs:18:41:18:48 | tainted2 : UserData | Controllers/TestController.cs:20:30:20:37 | access to parameter tainted2 : UserData | provenance | | +| Controllers/TestController.cs:20:30:20:37 | access to parameter tainted2 : UserData | Views/Shared/Test2.cshtml:8:16:8:20 | access to property Model : UserData | provenance | | +| Controllers/TestController.cs:23:41:23:48 | tainted3 : UserData | Controllers/TestController.cs:25:30:25:37 | access to parameter tainted3 : UserData | provenance | | +| Controllers/TestController.cs:25:30:25:37 | access to parameter tainted3 : UserData | Views/Test/Test3.cshtml:8:16:8:20 | access to property Model : UserData | provenance | | +| Controllers/TestController.cs:28:41:28:48 | tainted4 : UserData | Controllers/TestController.cs:30:32:30:39 | access to parameter tainted4 : UserData | provenance | | +| Controllers/TestController.cs:30:32:30:39 | access to parameter tainted4 : UserData | Views/Test/Test4.cshtml:8:16:8:20 | access to property Model : UserData | provenance | | +| Controllers/TestController.cs:33:41:33:48 | tainted5 : UserData | Controllers/TestController.cs:35:39:35:46 | access to parameter tainted5 : UserData | provenance | | +| Controllers/TestController.cs:35:39:35:46 | access to parameter tainted5 : UserData | Views/Other/Test5.cshtml:8:16:8:20 | access to property Model : UserData | provenance | | +| Controllers/TestController.cs:38:41:38:48 | tainted6 : UserData | Controllers/TestController.cs:40:64:40:71 | access to parameter tainted6 : UserData | provenance | | +| Controllers/TestController.cs:40:64:40:71 | access to parameter tainted6 : UserData | Views/Other/Test6.cshtml:8:16:8:20 | access to property Model : UserData | provenance | | +| Controllers/TestController.cs:43:41:43:48 | tainted7 : UserData | Controllers/TestController.cs:45:21:45:28 | access to parameter tainted7 : UserData | provenance | | +| Controllers/TestController.cs:45:21:45:28 | access to parameter tainted7 : UserData | Views/Test/Test7.cshtml:8:16:8:20 | access to property Model : UserData | provenance | | +| Controllers/TestController.cs:48:41:48:48 | tainted8 : UserData | Controllers/TestController.cs:50:50:50:57 | access to parameter tainted8 : UserData | provenance | | +| Controllers/TestController.cs:50:50:50:57 | access to parameter tainted8 : UserData | Views/Other/Test8.cshtml:8:16:8:20 | access to property Model : UserData | provenance | | +| Controllers/TestController.cs:53:41:53:48 | tainted9 : UserData | Controllers/TestController.cs:55:51:55:58 | access to parameter tainted9 : UserData | provenance | | +| Controllers/TestController.cs:55:51:55:58 | access to parameter tainted9 : UserData | Views/Other/Test9.cshtml:8:16:8:20 | access to property Model : UserData | provenance | | +| Controllers/TestController.cs:60:42:60:50 | tainted10 : UserData | Controllers/TestController.cs:62:31:62:39 | access to parameter tainted10 : UserData | provenance | | +| Controllers/TestController.cs:62:31:62:39 | access to parameter tainted10 : UserData | Views/Test2/Test10.cshtml:8:16:8:20 | access to property Model : UserData | provenance | | +| Controllers/TestController.cs:65:42:65:50 | tainted11 : UserData | Controllers/TestController.cs:67:23:67:31 | access to parameter tainted11 : UserData | provenance | | +| Controllers/TestController.cs:67:23:67:31 | access to parameter tainted11 : UserData | Controllers/TestController.cs:70:43:70:43 | x : UserData | provenance | | +| Controllers/TestController.cs:70:43:70:43 | x : UserData | Controllers/TestController.cs:70:70:70:70 | access to parameter x : UserData | provenance | | +| Controllers/TestController.cs:70:70:70:70 | access to parameter x : UserData | Views/Test2/Test11.cshtml:8:16:8:20 | access to property Model : UserData | provenance | | +| Controllers/TestController.cs:81:42:81:50 | tainted13 : UserData | Controllers/TestController.cs:83:37:83:45 | access to parameter tainted13 : UserData | provenance | | +| Controllers/TestController.cs:83:37:83:45 | access to parameter tainted13 : UserData | Controllers/TestController.cs:94:64:94:64 | x : UserData | provenance | | +| Controllers/TestController.cs:86:42:86:50 | tainted14 : UserData | Controllers/TestController.cs:88:37:88:45 | access to parameter tainted14 : UserData | provenance | | +| Controllers/TestController.cs:88:37:88:45 | access to parameter tainted14 : UserData | Controllers/TestController.cs:96:64:96:64 | x : UserData | provenance | | +| Controllers/TestController.cs:94:64:94:64 | x : UserData | Controllers/TestController.cs:94:113:94:113 | access to parameter x : UserData | provenance | | +| Controllers/TestController.cs:94:113:94:113 | access to parameter x : UserData | Views/Other/Test13.cshtml:8:16:8:20 | access to property Model : UserData | provenance | | +| Controllers/TestController.cs:96:64:96:64 | x : UserData | Controllers/TestController.cs:96:93:96:93 | access to parameter x : UserData | provenance | | +| Controllers/TestController.cs:96:93:96:93 | access to parameter x : UserData | Views/Shared/Test14.cshtml:8:16:8:20 | access to property Model : UserData | provenance | | +| Controllers/TestController.cs:106:42:106:50 | tainted15 : UserData | Controllers/TestController.cs:108:21:108:29 | access to parameter tainted15 : UserData | provenance | | +| Controllers/TestController.cs:108:21:108:29 | access to parameter tainted15 : UserData | Views/Custom/Test3/Test15.cshtml:8:16:8:20 | access to property Model : UserData | provenance | | +| Controllers/TestController.cs:111:42:111:50 | tainted16 : UserData | Controllers/TestController.cs:113:31:113:39 | access to parameter tainted16 : UserData | provenance | | +| Controllers/TestController.cs:113:31:113:39 | access to parameter tainted16 : UserData | Views/Custom2/Test16.cshtml:8:16:8:20 | access to property Model : UserData | provenance | | +| Controllers/TestController.cs:119:42:119:50 | tainted17 : UserData | Controllers/TestController.cs:121:31:121:39 | access to parameter tainted17 : UserData | provenance | | +| Controllers/TestController.cs:121:31:121:39 | access to parameter tainted17 : UserData | Areas/TestArea/Views/Test4/Test17.cshtml:8:16:8:20 | access to property Model : UserData | provenance | | +| Controllers/TestController.cs:124:42:124:50 | tainted18 : UserData | Controllers/TestController.cs:126:31:126:39 | access to parameter tainted18 : UserData | provenance | | +| Controllers/TestController.cs:126:31:126:39 | access to parameter tainted18 : UserData | Areas/TestArea/Views/Shared/Test18.cshtml:8:16:8:20 | access to property Model : UserData | provenance | | +| Controllers/TestController.cs:129:42:129:50 | tainted19 : UserData | Controllers/TestController.cs:131:31:131:39 | access to parameter tainted19 : UserData | provenance | | +| Controllers/TestController.cs:131:31:131:39 | access to parameter tainted19 : UserData | Views/Shared/Test19.cshtml:8:16:8:20 | access to property Model : UserData | provenance | | +| Controllers/TestController.cs:139:42:139:50 | tainted21 : UserData | Controllers/TestController.cs:141:31:141:39 | access to parameter tainted21 : UserData | provenance | | +| Controllers/TestController.cs:141:31:141:39 | access to parameter tainted21 : UserData | Pages/Shared/Test21.cshtml:8:16:8:20 | access to property Model : UserData | provenance | | +| Controllers/TestController.cs:149:40:149:48 | tainted23 : String | Controllers/TestController.cs:152:18:152:26 | access to parameter tainted23 : String | provenance | | +| Controllers/TestController.cs:152:9:152:9 | [post] access to local variable x : UserData [property Name] : String | Controllers/TestController.cs:153:31:153:31 | access to local variable x : UserData [property Name] : String | provenance | | +| Controllers/TestController.cs:152:18:152:26 | access to parameter tainted23 : String | Controllers/TestController.cs:152:9:152:9 | [post] access to local variable x : UserData [property Name] : String | provenance | | +| Controllers/TestController.cs:153:31:153:31 | access to local variable x : UserData [property Name] : String | Views/Shared/Test23.cshtml:8:16:8:20 | access to property Model : UserData [property Name] : String | provenance | | +| Pages/Shared/Test21.cshtml:8:16:8:20 | access to property Model : UserData | Pages/Shared/Test21.cshtml:8:16:8:25 | access to property Name | provenance | | +| Views/Custom2/Test16.cshtml:8:16:8:20 | access to property Model : UserData | Views/Custom2/Test16.cshtml:8:16:8:25 | access to property Name | provenance | | +| Views/Custom/Test3/Test15.cshtml:8:16:8:20 | access to property Model : UserData | Views/Custom/Test3/Test15.cshtml:8:16:8:25 | access to property Name | provenance | | +| Views/Other/Test5.cshtml:8:16:8:20 | access to property Model : UserData | Views/Other/Test5.cshtml:8:16:8:25 | access to property Name | provenance | | +| Views/Other/Test6.cshtml:8:16:8:20 | access to property Model : UserData | Views/Other/Test6.cshtml:8:16:8:25 | access to property Name | provenance | | +| Views/Other/Test8.cshtml:8:16:8:20 | access to property Model : UserData | Views/Other/Test8.cshtml:8:16:8:25 | access to property Name | provenance | | +| Views/Other/Test9.cshtml:8:16:8:20 | access to property Model : UserData | Views/Other/Test9.cshtml:8:16:8:25 | access to property Name | provenance | | +| Views/Other/Test13.cshtml:8:16:8:20 | access to property Model : UserData | Views/Other/Test13.cshtml:8:16:8:25 | access to property Name | provenance | | +| Views/Shared/Test2.cshtml:8:16:8:20 | access to property Model : UserData | Views/Shared/Test2.cshtml:8:16:8:25 | access to property Name | provenance | | +| Views/Shared/Test14.cshtml:8:16:8:20 | access to property Model : UserData | Views/Shared/Test14.cshtml:8:16:8:25 | access to property Name | provenance | | +| Views/Shared/Test19.cshtml:8:16:8:20 | access to property Model : UserData | Views/Shared/Test19.cshtml:8:16:8:25 | access to property Name | provenance | | +| Views/Shared/Test23.cshtml:8:16:8:20 | access to property Model : UserData [property Name] : String | Views/Shared/Test23.cshtml:8:16:8:25 | access to property Name | provenance | | +| Views/Test2/Test10.cshtml:8:16:8:20 | access to property Model : UserData | Views/Test2/Test10.cshtml:8:16:8:25 | access to property Name | provenance | | +| Views/Test2/Test11.cshtml:8:16:8:20 | access to property Model : UserData | Views/Test2/Test11.cshtml:8:16:8:25 | access to property Name | provenance | | +| Views/Test/Test1.cshtml:8:16:8:20 | access to property Model : UserData | Views/Test/Test1.cshtml:8:16:8:25 | access to property Name | provenance | | +| Views/Test/Test3.cshtml:8:16:8:20 | access to property Model : UserData | Views/Test/Test3.cshtml:8:16:8:25 | access to property Name | provenance | | +| Views/Test/Test4.cshtml:8:16:8:20 | access to property Model : UserData | Views/Test/Test4.cshtml:8:16:8:25 | access to property Name | provenance | | +| Views/Test/Test7.cshtml:8:16:8:20 | access to property Model : UserData | Views/Test/Test7.cshtml:8:16:8:25 | access to property Name | provenance | | nodes | Areas/TestArea/Views/Shared/Test18.cshtml:8:16:8:20 | access to property Model : UserData | semmle.label | access to property Model : UserData | | Areas/TestArea/Views/Shared/Test18.cshtml:8:16:8:25 | access to property Name | semmle.label | access to property Name | diff --git a/csharp/ql/test/query-tests/Security Features/CWE-079/XssPageModels/test.expected b/csharp/ql/test/query-tests/Security Features/CWE-079/XssPageModels/test.expected index 6806ff9abe41..b939e45a0820 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-079/XssPageModels/test.expected +++ b/csharp/ql/test/query-tests/Security Features/CWE-079/XssPageModels/test.expected @@ -1,13 +1,13 @@ edges -| TestModel.cs:13:9:13:12 | [post] this access : TestModel [property Name] : String | TestModel.cs:14:16:14:21 | this access : TestModel [property Name] : String | -| TestModel.cs:13:21:13:28 | call to method source : String | TestModel.cs:13:9:13:12 | [post] this access : TestModel [property Name] : String | -| TestModel.cs:14:16:14:21 | this access : TestModel [property Name] : String | TestPage.cshtml.g.cs:63:35:63:48 | access to property Model : TestModel [property Name] : String | -| TestModel.cs:14:16:14:21 | this access : TestModel [property Name] : String | TestPage.cshtml:5:16:5:20 | access to property Model : TestModel [property Name] : String | -| TestModel.cs:18:9:18:12 | [post] this access : TestModel [property Name] : String | TestPage.cshtml.g.cs:63:35:63:48 | access to property Model : TestModel [property Name] : String | -| TestModel.cs:18:9:18:12 | [post] this access : TestModel [property Name] : String | TestPage.cshtml:5:16:5:20 | access to property Model : TestModel [property Name] : String | -| TestModel.cs:18:16:18:23 | call to method source : String | TestModel.cs:18:9:18:12 | [post] this access : TestModel [property Name] : String | -| TestPage.cshtml.g.cs:63:35:63:48 | access to property Model : TestModel [property Name] : String | TestPage.cshtml:5:16:5:20 | access to property Model : TestModel [property Name] : String | -| TestPage.cshtml:5:16:5:20 | access to property Model : TestModel [property Name] : String | TestPage.cshtml:5:16:5:25 | access to property Name | +| TestModel.cs:13:9:13:12 | [post] this access : TestModel [property Name] : String | TestModel.cs:14:16:14:21 | this access : TestModel [property Name] : String | provenance | | +| TestModel.cs:13:21:13:28 | call to method source : String | TestModel.cs:13:9:13:12 | [post] this access : TestModel [property Name] : String | provenance | | +| TestModel.cs:14:16:14:21 | this access : TestModel [property Name] : String | TestPage.cshtml.g.cs:63:35:63:48 | access to property Model : TestModel [property Name] : String | provenance | | +| TestModel.cs:14:16:14:21 | this access : TestModel [property Name] : String | TestPage.cshtml:5:16:5:20 | access to property Model : TestModel [property Name] : String | provenance | | +| TestModel.cs:18:9:18:12 | [post] this access : TestModel [property Name] : String | TestPage.cshtml.g.cs:63:35:63:48 | access to property Model : TestModel [property Name] : String | provenance | | +| TestModel.cs:18:9:18:12 | [post] this access : TestModel [property Name] : String | TestPage.cshtml:5:16:5:20 | access to property Model : TestModel [property Name] : String | provenance | | +| TestModel.cs:18:16:18:23 | call to method source : String | TestModel.cs:18:9:18:12 | [post] this access : TestModel [property Name] : String | provenance | | +| TestPage.cshtml.g.cs:63:35:63:48 | access to property Model : TestModel [property Name] : String | TestPage.cshtml:5:16:5:20 | access to property Model : TestModel [property Name] : String | provenance | | +| TestPage.cshtml:5:16:5:20 | access to property Model : TestModel [property Name] : String | TestPage.cshtml:5:16:5:25 | access to property Name | provenance | | nodes | TestModel.cs:13:9:13:12 | [post] this access : TestModel [property Name] : String | semmle.label | [post] this access : TestModel [property Name] : String | | TestModel.cs:13:21:13:28 | call to method source : String | semmle.label | call to method source : String | diff --git a/csharp/ql/test/query-tests/Security Features/CWE-089/SecondOrderSqlInjection.expected b/csharp/ql/test/query-tests/Security Features/CWE-089/SecondOrderSqlInjection.expected index e6048fc656e8..c2ce4a209f62 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-089/SecondOrderSqlInjection.expected +++ b/csharp/ql/test/query-tests/Security Features/CWE-089/SecondOrderSqlInjection.expected @@ -1,19 +1,19 @@ edges -| SecondOrderSqlInjection.cs:25:119:25:145 | call to method GetString : String | SecondOrderSqlInjection.cs:25:71:25:145 | ... + ... | -| SecondOrderSqlInjection.cs:33:36:33:78 | object creation of type FileStream : FileStream | SecondOrderSqlInjection.cs:35:59:35:60 | access to local variable fs : FileStream | -| SecondOrderSqlInjection.cs:35:42:35:76 | object creation of type StreamReader : StreamReader | SecondOrderSqlInjection.cs:38:35:38:36 | access to local variable sr : StreamReader | -| SecondOrderSqlInjection.cs:35:59:35:60 | access to local variable fs : FileStream | SecondOrderSqlInjection.cs:35:42:35:76 | object creation of type StreamReader : StreamReader | -| SecondOrderSqlInjection.cs:38:35:38:36 | access to local variable sr : StreamReader | SecondOrderSqlInjection.cs:38:35:38:47 | call to method ReadLine : String | -| SecondOrderSqlInjection.cs:38:35:38:47 | call to method ReadLine : String | SecondOrderSqlInjection.cs:40:31:40:33 | access to local variable sql : String | -| SecondOrderSqlInjection.cs:40:31:40:33 | access to local variable sql : String | SecondOrderSqlInjection.cs:40:31:40:40 | call to method Trim : String | -| SecondOrderSqlInjection.cs:40:31:40:40 | call to method Trim : String | SecondOrderSqlInjection.cs:45:57:45:59 | access to local variable sql | -| SqlInjectionSqlite.cs:49:36:49:84 | object creation of type FileStream : FileStream | SqlInjectionSqlite.cs:51:59:51:60 | access to local variable fs : FileStream | -| SqlInjectionSqlite.cs:51:42:51:76 | object creation of type StreamReader : StreamReader | SqlInjectionSqlite.cs:54:35:54:36 | access to local variable sr : StreamReader | -| SqlInjectionSqlite.cs:51:59:51:60 | access to local variable fs : FileStream | SqlInjectionSqlite.cs:51:42:51:76 | object creation of type StreamReader : StreamReader | -| SqlInjectionSqlite.cs:54:35:54:36 | access to local variable sr : StreamReader | SqlInjectionSqlite.cs:54:35:54:47 | call to method ReadLine : String | -| SqlInjectionSqlite.cs:54:35:54:47 | call to method ReadLine : String | SqlInjectionSqlite.cs:56:31:56:33 | access to local variable sql : String | -| SqlInjectionSqlite.cs:56:31:56:33 | access to local variable sql : String | SqlInjectionSqlite.cs:56:31:56:40 | call to method Trim : String | -| SqlInjectionSqlite.cs:56:31:56:40 | call to method Trim : String | SqlInjectionSqlite.cs:61:53:61:55 | access to local variable sql | +| SecondOrderSqlInjection.cs:25:119:25:145 | call to method GetString : String | SecondOrderSqlInjection.cs:25:71:25:145 | ... + ... | provenance | | +| SecondOrderSqlInjection.cs:33:36:33:78 | object creation of type FileStream : FileStream | SecondOrderSqlInjection.cs:35:59:35:60 | access to local variable fs : FileStream | provenance | | +| SecondOrderSqlInjection.cs:35:42:35:76 | object creation of type StreamReader : StreamReader | SecondOrderSqlInjection.cs:38:35:38:36 | access to local variable sr : StreamReader | provenance | | +| SecondOrderSqlInjection.cs:35:59:35:60 | access to local variable fs : FileStream | SecondOrderSqlInjection.cs:35:42:35:76 | object creation of type StreamReader : StreamReader | provenance | | +| SecondOrderSqlInjection.cs:38:35:38:36 | access to local variable sr : StreamReader | SecondOrderSqlInjection.cs:38:35:38:47 | call to method ReadLine : String | provenance | | +| SecondOrderSqlInjection.cs:38:35:38:47 | call to method ReadLine : String | SecondOrderSqlInjection.cs:40:31:40:33 | access to local variable sql : String | provenance | | +| SecondOrderSqlInjection.cs:40:31:40:33 | access to local variable sql : String | SecondOrderSqlInjection.cs:40:31:40:40 | call to method Trim : String | provenance | | +| SecondOrderSqlInjection.cs:40:31:40:40 | call to method Trim : String | SecondOrderSqlInjection.cs:45:57:45:59 | access to local variable sql | provenance | | +| SqlInjectionSqlite.cs:49:36:49:84 | object creation of type FileStream : FileStream | SqlInjectionSqlite.cs:51:59:51:60 | access to local variable fs : FileStream | provenance | | +| SqlInjectionSqlite.cs:51:42:51:76 | object creation of type StreamReader : StreamReader | SqlInjectionSqlite.cs:54:35:54:36 | access to local variable sr : StreamReader | provenance | | +| SqlInjectionSqlite.cs:51:59:51:60 | access to local variable fs : FileStream | SqlInjectionSqlite.cs:51:42:51:76 | object creation of type StreamReader : StreamReader | provenance | | +| SqlInjectionSqlite.cs:54:35:54:36 | access to local variable sr : StreamReader | SqlInjectionSqlite.cs:54:35:54:47 | call to method ReadLine : String | provenance | | +| SqlInjectionSqlite.cs:54:35:54:47 | call to method ReadLine : String | SqlInjectionSqlite.cs:56:31:56:33 | access to local variable sql : String | provenance | | +| SqlInjectionSqlite.cs:56:31:56:33 | access to local variable sql : String | SqlInjectionSqlite.cs:56:31:56:40 | call to method Trim : String | provenance | | +| SqlInjectionSqlite.cs:56:31:56:40 | call to method Trim : String | SqlInjectionSqlite.cs:61:53:61:55 | access to local variable sql | provenance | | nodes | SecondOrderSqlInjection.cs:25:71:25:145 | ... + ... | semmle.label | ... + ... | | SecondOrderSqlInjection.cs:25:119:25:145 | call to method GetString : String | semmle.label | call to method GetString : String | diff --git a/csharp/ql/test/query-tests/Security Features/CWE-089/SqlInjection.expected b/csharp/ql/test/query-tests/Security Features/CWE-089/SqlInjection.expected index 888573d86b65..9ef1a073fbe1 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-089/SqlInjection.expected +++ b/csharp/ql/test/query-tests/Security Features/CWE-089/SqlInjection.expected @@ -1,37 +1,37 @@ edges -| SqlInjection.cs:33:21:33:35 | access to field categoryTextBox : TextBox | SqlInjection.cs:33:21:33:40 | access to property Text : String | -| SqlInjection.cs:33:21:33:40 | access to property Text : String | SqlInjection.cs:34:50:34:55 | access to local variable query1 | -| SqlInjection.cs:68:33:68:47 | access to field categoryTextBox : TextBox | SqlInjection.cs:68:33:68:52 | access to property Text : String | -| SqlInjection.cs:68:33:68:52 | access to property Text : String | SqlInjection.cs:69:56:69:61 | access to local variable query1 | -| SqlInjection.cs:68:33:68:52 | access to property Text : String | SqlInjection.cs:70:55:70:60 | access to local variable query1 | -| SqlInjection.cs:82:21:82:29 | access to property Text : String | SqlInjection.cs:83:50:83:55 | access to local variable query1 | -| SqlInjection.cs:92:21:92:29 | access to property Text : String | SqlInjection.cs:93:42:93:52 | access to local variable queryString | -| SqlInjection.cs:92:21:92:29 | access to property Text : String | SqlInjection.cs:93:42:93:52 | access to local variable queryString : String | -| SqlInjection.cs:93:27:93:53 | object creation of type SqlCommand : SqlCommand | SqlInjection.cs:94:50:94:52 | access to local variable cmd | -| SqlInjection.cs:93:42:93:52 | access to local variable queryString : String | SqlInjection.cs:93:27:93:53 | object creation of type SqlCommand : SqlCommand | -| SqlInjectionDapper.cs:20:86:20:94 | access to property Text : String | SqlInjectionDapper.cs:21:55:21:59 | access to local variable query | -| SqlInjectionDapper.cs:29:86:29:94 | access to property Text : String | SqlInjectionDapper.cs:30:66:30:70 | access to local variable query | -| SqlInjectionDapper.cs:38:86:38:94 | access to property Text : String | SqlInjectionDapper.cs:39:63:39:67 | access to local variable query | -| SqlInjectionDapper.cs:47:86:47:94 | access to property Text : String | SqlInjectionDapper.cs:49:47:49:51 | access to local variable query | -| SqlInjectionDapper.cs:57:86:57:94 | access to property Text : String | SqlInjectionDapper.cs:58:42:58:46 | access to local variable query | -| SqlInjectionDapper.cs:66:86:66:94 | access to property Text : String | SqlInjectionDapper.cs:67:42:67:46 | access to local variable query | -| SqlInjectionDapper.cs:75:86:75:94 | access to property Text : String | SqlInjectionDapper.cs:77:52:77:56 | access to local variable query | -| SqlInjectionSqlite.cs:19:51:19:63 | access to field untrustedData : TextBox | SqlInjectionSqlite.cs:19:51:19:68 | access to property Text | -| SqlInjectionSqlite.cs:24:23:24:71 | object creation of type SQLiteCommand : SQLiteCommand | SqlInjectionSqlite.cs:44:45:44:47 | access to local variable cmd | -| SqlInjectionSqlite.cs:24:41:24:53 | access to field untrustedData : TextBox | SqlInjectionSqlite.cs:24:41:24:58 | access to property Text | -| SqlInjectionSqlite.cs:24:41:24:53 | access to field untrustedData : TextBox | SqlInjectionSqlite.cs:24:41:24:58 | access to property Text : String | -| SqlInjectionSqlite.cs:24:41:24:58 | access to property Text : String | SqlInjectionSqlite.cs:24:23:24:71 | object creation of type SQLiteCommand : SQLiteCommand | -| SqlInjectionSqlite.cs:33:49:33:61 | access to field untrustedData : TextBox | SqlInjectionSqlite.cs:33:49:33:66 | access to property Text | -| SqlInjectionSqlite.cs:39:45:39:57 | access to field untrustedData : TextBox | SqlInjectionSqlite.cs:39:45:39:62 | access to property Text | -| SqlInjectionSqlite.cs:49:36:49:84 | object creation of type FileStream : FileStream | SqlInjectionSqlite.cs:51:59:51:60 | access to local variable fs : FileStream | -| SqlInjectionSqlite.cs:49:51:49:63 | access to field untrustedData : TextBox | SqlInjectionSqlite.cs:49:51:49:68 | access to property Text : String | -| SqlInjectionSqlite.cs:49:51:49:68 | access to property Text : String | SqlInjectionSqlite.cs:49:36:49:84 | object creation of type FileStream : FileStream | -| SqlInjectionSqlite.cs:51:42:51:76 | object creation of type StreamReader : StreamReader | SqlInjectionSqlite.cs:54:35:54:36 | access to local variable sr : StreamReader | -| SqlInjectionSqlite.cs:51:59:51:60 | access to local variable fs : FileStream | SqlInjectionSqlite.cs:51:42:51:76 | object creation of type StreamReader : StreamReader | -| SqlInjectionSqlite.cs:54:35:54:36 | access to local variable sr : StreamReader | SqlInjectionSqlite.cs:54:35:54:47 | call to method ReadLine : String | -| SqlInjectionSqlite.cs:54:35:54:47 | call to method ReadLine : String | SqlInjectionSqlite.cs:56:31:56:33 | access to local variable sql : String | -| SqlInjectionSqlite.cs:56:31:56:33 | access to local variable sql : String | SqlInjectionSqlite.cs:56:31:56:40 | call to method Trim : String | -| SqlInjectionSqlite.cs:56:31:56:40 | call to method Trim : String | SqlInjectionSqlite.cs:61:53:61:55 | access to local variable sql | +| SqlInjection.cs:33:21:33:35 | access to field categoryTextBox : TextBox | SqlInjection.cs:33:21:33:40 | access to property Text : String | provenance | | +| SqlInjection.cs:33:21:33:40 | access to property Text : String | SqlInjection.cs:34:50:34:55 | access to local variable query1 | provenance | | +| SqlInjection.cs:68:33:68:47 | access to field categoryTextBox : TextBox | SqlInjection.cs:68:33:68:52 | access to property Text : String | provenance | | +| SqlInjection.cs:68:33:68:52 | access to property Text : String | SqlInjection.cs:69:56:69:61 | access to local variable query1 | provenance | | +| SqlInjection.cs:68:33:68:52 | access to property Text : String | SqlInjection.cs:70:55:70:60 | access to local variable query1 | provenance | | +| SqlInjection.cs:82:21:82:29 | access to property Text : String | SqlInjection.cs:83:50:83:55 | access to local variable query1 | provenance | | +| SqlInjection.cs:92:21:92:29 | access to property Text : String | SqlInjection.cs:93:42:93:52 | access to local variable queryString | provenance | | +| SqlInjection.cs:92:21:92:29 | access to property Text : String | SqlInjection.cs:93:42:93:52 | access to local variable queryString : String | provenance | | +| SqlInjection.cs:93:27:93:53 | object creation of type SqlCommand : SqlCommand | SqlInjection.cs:94:50:94:52 | access to local variable cmd | provenance | | +| SqlInjection.cs:93:42:93:52 | access to local variable queryString : String | SqlInjection.cs:93:27:93:53 | object creation of type SqlCommand : SqlCommand | provenance | | +| SqlInjectionDapper.cs:20:86:20:94 | access to property Text : String | SqlInjectionDapper.cs:21:55:21:59 | access to local variable query | provenance | | +| SqlInjectionDapper.cs:29:86:29:94 | access to property Text : String | SqlInjectionDapper.cs:30:66:30:70 | access to local variable query | provenance | | +| SqlInjectionDapper.cs:38:86:38:94 | access to property Text : String | SqlInjectionDapper.cs:39:63:39:67 | access to local variable query | provenance | | +| SqlInjectionDapper.cs:47:86:47:94 | access to property Text : String | SqlInjectionDapper.cs:49:47:49:51 | access to local variable query | provenance | | +| SqlInjectionDapper.cs:57:86:57:94 | access to property Text : String | SqlInjectionDapper.cs:58:42:58:46 | access to local variable query | provenance | | +| SqlInjectionDapper.cs:66:86:66:94 | access to property Text : String | SqlInjectionDapper.cs:67:42:67:46 | access to local variable query | provenance | | +| SqlInjectionDapper.cs:75:86:75:94 | access to property Text : String | SqlInjectionDapper.cs:77:52:77:56 | access to local variable query | provenance | | +| SqlInjectionSqlite.cs:19:51:19:63 | access to field untrustedData : TextBox | SqlInjectionSqlite.cs:19:51:19:68 | access to property Text | provenance | | +| SqlInjectionSqlite.cs:24:23:24:71 | object creation of type SQLiteCommand : SQLiteCommand | SqlInjectionSqlite.cs:44:45:44:47 | access to local variable cmd | provenance | | +| SqlInjectionSqlite.cs:24:41:24:53 | access to field untrustedData : TextBox | SqlInjectionSqlite.cs:24:41:24:58 | access to property Text | provenance | | +| SqlInjectionSqlite.cs:24:41:24:53 | access to field untrustedData : TextBox | SqlInjectionSqlite.cs:24:41:24:58 | access to property Text : String | provenance | | +| SqlInjectionSqlite.cs:24:41:24:58 | access to property Text : String | SqlInjectionSqlite.cs:24:23:24:71 | object creation of type SQLiteCommand : SQLiteCommand | provenance | | +| SqlInjectionSqlite.cs:33:49:33:61 | access to field untrustedData : TextBox | SqlInjectionSqlite.cs:33:49:33:66 | access to property Text | provenance | | +| SqlInjectionSqlite.cs:39:45:39:57 | access to field untrustedData : TextBox | SqlInjectionSqlite.cs:39:45:39:62 | access to property Text | provenance | | +| SqlInjectionSqlite.cs:49:36:49:84 | object creation of type FileStream : FileStream | SqlInjectionSqlite.cs:51:59:51:60 | access to local variable fs : FileStream | provenance | | +| SqlInjectionSqlite.cs:49:51:49:63 | access to field untrustedData : TextBox | SqlInjectionSqlite.cs:49:51:49:68 | access to property Text : String | provenance | | +| SqlInjectionSqlite.cs:49:51:49:68 | access to property Text : String | SqlInjectionSqlite.cs:49:36:49:84 | object creation of type FileStream : FileStream | provenance | | +| SqlInjectionSqlite.cs:51:42:51:76 | object creation of type StreamReader : StreamReader | SqlInjectionSqlite.cs:54:35:54:36 | access to local variable sr : StreamReader | provenance | | +| SqlInjectionSqlite.cs:51:59:51:60 | access to local variable fs : FileStream | SqlInjectionSqlite.cs:51:42:51:76 | object creation of type StreamReader : StreamReader | provenance | | +| SqlInjectionSqlite.cs:54:35:54:36 | access to local variable sr : StreamReader | SqlInjectionSqlite.cs:54:35:54:47 | call to method ReadLine : String | provenance | | +| SqlInjectionSqlite.cs:54:35:54:47 | call to method ReadLine : String | SqlInjectionSqlite.cs:56:31:56:33 | access to local variable sql : String | provenance | | +| SqlInjectionSqlite.cs:56:31:56:33 | access to local variable sql : String | SqlInjectionSqlite.cs:56:31:56:40 | call to method Trim : String | provenance | | +| SqlInjectionSqlite.cs:56:31:56:40 | call to method Trim : String | SqlInjectionSqlite.cs:61:53:61:55 | access to local variable sql | provenance | | nodes | SqlInjection.cs:33:21:33:35 | access to field categoryTextBox : TextBox | semmle.label | access to field categoryTextBox : TextBox | | SqlInjection.cs:33:21:33:40 | access to property Text : String | semmle.label | access to property Text : String | diff --git a/csharp/ql/test/query-tests/Security Features/CWE-090/LDAPInjection.expected b/csharp/ql/test/query-tests/Security Features/CWE-090/LDAPInjection.expected index 0699a17d531f..ec812749311c 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-090/LDAPInjection.expected +++ b/csharp/ql/test/query-tests/Security Features/CWE-090/LDAPInjection.expected @@ -1,17 +1,17 @@ edges -| LDAPInjection.cs:11:27:11:49 | access to property QueryString : NameValueCollection | LDAPInjection.cs:11:27:11:61 | access to indexer : String | -| LDAPInjection.cs:11:27:11:49 | access to property QueryString : NameValueCollection | LDAPInjection.cs:14:54:14:78 | ... + ... | -| LDAPInjection.cs:11:27:11:49 | access to property QueryString : NameValueCollection | LDAPInjection.cs:16:21:16:45 | ... + ... | -| LDAPInjection.cs:11:27:11:49 | access to property QueryString : NameValueCollection | LDAPInjection.cs:23:21:23:45 | ... + ... | -| LDAPInjection.cs:11:27:11:49 | access to property QueryString : NameValueCollection | LDAPInjection.cs:24:53:24:77 | ... + ... | -| LDAPInjection.cs:11:27:11:49 | access to property QueryString : NameValueCollection | LDAPInjection.cs:27:48:27:70 | ... + ... | -| LDAPInjection.cs:11:27:11:49 | access to property QueryString : NameValueCollection | LDAPInjection.cs:29:20:29:42 | ... + ... | -| LDAPInjection.cs:11:27:11:61 | access to indexer : String | LDAPInjection.cs:14:54:14:78 | ... + ... | -| LDAPInjection.cs:11:27:11:61 | access to indexer : String | LDAPInjection.cs:16:21:16:45 | ... + ... | -| LDAPInjection.cs:11:27:11:61 | access to indexer : String | LDAPInjection.cs:23:21:23:45 | ... + ... | -| LDAPInjection.cs:11:27:11:61 | access to indexer : String | LDAPInjection.cs:24:53:24:77 | ... + ... | -| LDAPInjection.cs:11:27:11:61 | access to indexer : String | LDAPInjection.cs:27:48:27:70 | ... + ... | -| LDAPInjection.cs:11:27:11:61 | access to indexer : String | LDAPInjection.cs:29:20:29:42 | ... + ... | +| LDAPInjection.cs:11:27:11:49 | access to property QueryString : NameValueCollection | LDAPInjection.cs:11:27:11:61 | access to indexer : String | provenance | | +| LDAPInjection.cs:11:27:11:49 | access to property QueryString : NameValueCollection | LDAPInjection.cs:14:54:14:78 | ... + ... | provenance | | +| LDAPInjection.cs:11:27:11:49 | access to property QueryString : NameValueCollection | LDAPInjection.cs:16:21:16:45 | ... + ... | provenance | | +| LDAPInjection.cs:11:27:11:49 | access to property QueryString : NameValueCollection | LDAPInjection.cs:23:21:23:45 | ... + ... | provenance | | +| LDAPInjection.cs:11:27:11:49 | access to property QueryString : NameValueCollection | LDAPInjection.cs:24:53:24:77 | ... + ... | provenance | | +| LDAPInjection.cs:11:27:11:49 | access to property QueryString : NameValueCollection | LDAPInjection.cs:27:48:27:70 | ... + ... | provenance | | +| LDAPInjection.cs:11:27:11:49 | access to property QueryString : NameValueCollection | LDAPInjection.cs:29:20:29:42 | ... + ... | provenance | | +| LDAPInjection.cs:11:27:11:61 | access to indexer : String | LDAPInjection.cs:14:54:14:78 | ... + ... | provenance | | +| LDAPInjection.cs:11:27:11:61 | access to indexer : String | LDAPInjection.cs:16:21:16:45 | ... + ... | provenance | | +| LDAPInjection.cs:11:27:11:61 | access to indexer : String | LDAPInjection.cs:23:21:23:45 | ... + ... | provenance | | +| LDAPInjection.cs:11:27:11:61 | access to indexer : String | LDAPInjection.cs:24:53:24:77 | ... + ... | provenance | | +| LDAPInjection.cs:11:27:11:61 | access to indexer : String | LDAPInjection.cs:27:48:27:70 | ... + ... | provenance | | +| LDAPInjection.cs:11:27:11:61 | access to indexer : String | LDAPInjection.cs:29:20:29:42 | ... + ... | provenance | | nodes | LDAPInjection.cs:11:27:11:49 | access to property QueryString : NameValueCollection | semmle.label | access to property QueryString : NameValueCollection | | LDAPInjection.cs:11:27:11:61 | access to indexer : String | semmle.label | access to indexer : String | diff --git a/csharp/ql/test/query-tests/Security Features/CWE-090/StoredLDAPInjection.expected b/csharp/ql/test/query-tests/Security Features/CWE-090/StoredLDAPInjection.expected index 34e5ef3dc99f..d66714c82cc5 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-090/StoredLDAPInjection.expected +++ b/csharp/ql/test/query-tests/Security Features/CWE-090/StoredLDAPInjection.expected @@ -1,5 +1,5 @@ edges -| StoredLDAPInjection.cs:22:83:22:109 | call to method GetString : String | StoredLDAPInjection.cs:22:66:22:109 | ... + ... | +| StoredLDAPInjection.cs:22:83:22:109 | call to method GetString : String | StoredLDAPInjection.cs:22:66:22:109 | ... + ... | provenance | | nodes | StoredLDAPInjection.cs:22:66:22:109 | ... + ... | semmle.label | ... + ... | | StoredLDAPInjection.cs:22:83:22:109 | call to method GetString : String | semmle.label | call to method GetString : String | diff --git a/csharp/ql/test/query-tests/Security Features/CWE-091/XMLInjection/XMLInjection.expected b/csharp/ql/test/query-tests/Security Features/CWE-091/XMLInjection/XMLInjection.expected index 63b1d336449d..028af79c5dff 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-091/XMLInjection/XMLInjection.expected +++ b/csharp/ql/test/query-tests/Security Features/CWE-091/XMLInjection/XMLInjection.expected @@ -1,7 +1,7 @@ edges -| Test.cs:8:27:8:49 | access to property QueryString : NameValueCollection | Test.cs:8:27:8:65 | access to indexer : String | -| Test.cs:8:27:8:49 | access to property QueryString : NameValueCollection | Test.cs:15:25:15:80 | ... + ... | -| Test.cs:8:27:8:65 | access to indexer : String | Test.cs:15:25:15:80 | ... + ... | +| Test.cs:8:27:8:49 | access to property QueryString : NameValueCollection | Test.cs:8:27:8:65 | access to indexer : String | provenance | | +| Test.cs:8:27:8:49 | access to property QueryString : NameValueCollection | Test.cs:15:25:15:80 | ... + ... | provenance | | +| Test.cs:8:27:8:65 | access to indexer : String | Test.cs:15:25:15:80 | ... + ... | provenance | | nodes | Test.cs:8:27:8:49 | access to property QueryString : NameValueCollection | semmle.label | access to property QueryString : NameValueCollection | | Test.cs:8:27:8:65 | access to indexer : String | semmle.label | access to indexer : String | diff --git a/csharp/ql/test/query-tests/Security Features/CWE-094/CodeInjection.expected b/csharp/ql/test/query-tests/Security Features/CWE-094/CodeInjection.expected index 006ca27fdd72..f247e97bc359 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-094/CodeInjection.expected +++ b/csharp/ql/test/query-tests/Security Features/CWE-094/CodeInjection.expected @@ -1,9 +1,9 @@ edges -| CodeInjection.cs:23:23:23:45 | access to property QueryString : NameValueCollection | CodeInjection.cs:23:23:23:53 | access to indexer : String | -| CodeInjection.cs:23:23:23:45 | access to property QueryString : NameValueCollection | CodeInjection.cs:29:64:29:67 | access to local variable code | -| CodeInjection.cs:23:23:23:45 | access to property QueryString : NameValueCollection | CodeInjection.cs:40:36:40:39 | access to local variable code | -| CodeInjection.cs:23:23:23:53 | access to indexer : String | CodeInjection.cs:29:64:29:67 | access to local variable code | -| CodeInjection.cs:23:23:23:53 | access to indexer : String | CodeInjection.cs:40:36:40:39 | access to local variable code | +| CodeInjection.cs:23:23:23:45 | access to property QueryString : NameValueCollection | CodeInjection.cs:23:23:23:53 | access to indexer : String | provenance | | +| CodeInjection.cs:23:23:23:45 | access to property QueryString : NameValueCollection | CodeInjection.cs:29:64:29:67 | access to local variable code | provenance | | +| CodeInjection.cs:23:23:23:45 | access to property QueryString : NameValueCollection | CodeInjection.cs:40:36:40:39 | access to local variable code | provenance | | +| CodeInjection.cs:23:23:23:53 | access to indexer : String | CodeInjection.cs:29:64:29:67 | access to local variable code | provenance | | +| CodeInjection.cs:23:23:23:53 | access to indexer : String | CodeInjection.cs:40:36:40:39 | access to local variable code | provenance | | nodes | CodeInjection.cs:23:23:23:45 | access to property QueryString : NameValueCollection | semmle.label | access to property QueryString : NameValueCollection | | CodeInjection.cs:23:23:23:53 | access to indexer : String | semmle.label | access to indexer : String | diff --git a/csharp/ql/test/query-tests/Security Features/CWE-099/ResourceInjection.expected b/csharp/ql/test/query-tests/Security Features/CWE-099/ResourceInjection.expected index 75ef72855575..cc089c9898ba 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-099/ResourceInjection.expected +++ b/csharp/ql/test/query-tests/Security Features/CWE-099/ResourceInjection.expected @@ -1,9 +1,9 @@ edges -| ResourceInjection.cs:8:27:8:49 | access to property QueryString : NameValueCollection | ResourceInjection.cs:8:27:8:61 | access to indexer : String | -| ResourceInjection.cs:8:27:8:49 | access to property QueryString : NameValueCollection | ResourceInjection.cs:11:57:11:72 | access to local variable connectionString | -| ResourceInjection.cs:8:27:8:49 | access to property QueryString : NameValueCollection | ResourceInjection.cs:13:42:13:57 | access to local variable connectionString | -| ResourceInjection.cs:8:27:8:61 | access to indexer : String | ResourceInjection.cs:11:57:11:72 | access to local variable connectionString | -| ResourceInjection.cs:8:27:8:61 | access to indexer : String | ResourceInjection.cs:13:42:13:57 | access to local variable connectionString | +| ResourceInjection.cs:8:27:8:49 | access to property QueryString : NameValueCollection | ResourceInjection.cs:8:27:8:61 | access to indexer : String | provenance | | +| ResourceInjection.cs:8:27:8:49 | access to property QueryString : NameValueCollection | ResourceInjection.cs:11:57:11:72 | access to local variable connectionString | provenance | | +| ResourceInjection.cs:8:27:8:49 | access to property QueryString : NameValueCollection | ResourceInjection.cs:13:42:13:57 | access to local variable connectionString | provenance | | +| ResourceInjection.cs:8:27:8:61 | access to indexer : String | ResourceInjection.cs:11:57:11:72 | access to local variable connectionString | provenance | | +| ResourceInjection.cs:8:27:8:61 | access to indexer : String | ResourceInjection.cs:13:42:13:57 | access to local variable connectionString | provenance | | nodes | ResourceInjection.cs:8:27:8:49 | access to property QueryString : NameValueCollection | semmle.label | access to property QueryString : NameValueCollection | | ResourceInjection.cs:8:27:8:61 | access to indexer : String | semmle.label | access to indexer : String | diff --git a/csharp/ql/test/query-tests/Security Features/CWE-112/MissingXMLValidation.expected b/csharp/ql/test/query-tests/Security Features/CWE-112/MissingXMLValidation.expected index 869daaa60cb1..72d5d4978209 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-112/MissingXMLValidation.expected +++ b/csharp/ql/test/query-tests/Security Features/CWE-112/MissingXMLValidation.expected @@ -1,20 +1,20 @@ edges -| MissingXMLValidation.cs:12:34:12:56 | access to property QueryString : NameValueCollection | MissingXMLValidation.cs:12:34:12:75 | access to indexer : String | -| MissingXMLValidation.cs:12:34:12:56 | access to property QueryString : NameValueCollection | MissingXMLValidation.cs:16:43:16:57 | access to local variable userProvidedXml : String | -| MissingXMLValidation.cs:12:34:12:56 | access to property QueryString : NameValueCollection | MissingXMLValidation.cs:21:43:21:57 | access to local variable userProvidedXml : String | -| MissingXMLValidation.cs:12:34:12:56 | access to property QueryString : NameValueCollection | MissingXMLValidation.cs:27:43:27:57 | access to local variable userProvidedXml : String | -| MissingXMLValidation.cs:12:34:12:56 | access to property QueryString : NameValueCollection | MissingXMLValidation.cs:35:43:35:57 | access to local variable userProvidedXml : String | -| MissingXMLValidation.cs:12:34:12:56 | access to property QueryString : NameValueCollection | MissingXMLValidation.cs:45:43:45:57 | access to local variable userProvidedXml : String | -| MissingXMLValidation.cs:12:34:12:75 | access to indexer : String | MissingXMLValidation.cs:16:43:16:57 | access to local variable userProvidedXml : String | -| MissingXMLValidation.cs:12:34:12:75 | access to indexer : String | MissingXMLValidation.cs:21:43:21:57 | access to local variable userProvidedXml : String | -| MissingXMLValidation.cs:12:34:12:75 | access to indexer : String | MissingXMLValidation.cs:27:43:27:57 | access to local variable userProvidedXml : String | -| MissingXMLValidation.cs:12:34:12:75 | access to indexer : String | MissingXMLValidation.cs:35:43:35:57 | access to local variable userProvidedXml : String | -| MissingXMLValidation.cs:12:34:12:75 | access to indexer : String | MissingXMLValidation.cs:45:43:45:57 | access to local variable userProvidedXml : String | -| MissingXMLValidation.cs:16:43:16:57 | access to local variable userProvidedXml : String | MissingXMLValidation.cs:16:26:16:58 | object creation of type StringReader | -| MissingXMLValidation.cs:21:43:21:57 | access to local variable userProvidedXml : String | MissingXMLValidation.cs:21:26:21:58 | object creation of type StringReader | -| MissingXMLValidation.cs:27:43:27:57 | access to local variable userProvidedXml : String | MissingXMLValidation.cs:27:26:27:58 | object creation of type StringReader | -| MissingXMLValidation.cs:35:43:35:57 | access to local variable userProvidedXml : String | MissingXMLValidation.cs:35:26:35:58 | object creation of type StringReader | -| MissingXMLValidation.cs:45:43:45:57 | access to local variable userProvidedXml : String | MissingXMLValidation.cs:45:26:45:58 | object creation of type StringReader | +| MissingXMLValidation.cs:12:34:12:56 | access to property QueryString : NameValueCollection | MissingXMLValidation.cs:12:34:12:75 | access to indexer : String | provenance | | +| MissingXMLValidation.cs:12:34:12:56 | access to property QueryString : NameValueCollection | MissingXMLValidation.cs:16:43:16:57 | access to local variable userProvidedXml : String | provenance | | +| MissingXMLValidation.cs:12:34:12:56 | access to property QueryString : NameValueCollection | MissingXMLValidation.cs:21:43:21:57 | access to local variable userProvidedXml : String | provenance | | +| MissingXMLValidation.cs:12:34:12:56 | access to property QueryString : NameValueCollection | MissingXMLValidation.cs:27:43:27:57 | access to local variable userProvidedXml : String | provenance | | +| MissingXMLValidation.cs:12:34:12:56 | access to property QueryString : NameValueCollection | MissingXMLValidation.cs:35:43:35:57 | access to local variable userProvidedXml : String | provenance | | +| MissingXMLValidation.cs:12:34:12:56 | access to property QueryString : NameValueCollection | MissingXMLValidation.cs:45:43:45:57 | access to local variable userProvidedXml : String | provenance | | +| MissingXMLValidation.cs:12:34:12:75 | access to indexer : String | MissingXMLValidation.cs:16:43:16:57 | access to local variable userProvidedXml : String | provenance | | +| MissingXMLValidation.cs:12:34:12:75 | access to indexer : String | MissingXMLValidation.cs:21:43:21:57 | access to local variable userProvidedXml : String | provenance | | +| MissingXMLValidation.cs:12:34:12:75 | access to indexer : String | MissingXMLValidation.cs:27:43:27:57 | access to local variable userProvidedXml : String | provenance | | +| MissingXMLValidation.cs:12:34:12:75 | access to indexer : String | MissingXMLValidation.cs:35:43:35:57 | access to local variable userProvidedXml : String | provenance | | +| MissingXMLValidation.cs:12:34:12:75 | access to indexer : String | MissingXMLValidation.cs:45:43:45:57 | access to local variable userProvidedXml : String | provenance | | +| MissingXMLValidation.cs:16:43:16:57 | access to local variable userProvidedXml : String | MissingXMLValidation.cs:16:26:16:58 | object creation of type StringReader | provenance | | +| MissingXMLValidation.cs:21:43:21:57 | access to local variable userProvidedXml : String | MissingXMLValidation.cs:21:26:21:58 | object creation of type StringReader | provenance | | +| MissingXMLValidation.cs:27:43:27:57 | access to local variable userProvidedXml : String | MissingXMLValidation.cs:27:26:27:58 | object creation of type StringReader | provenance | | +| MissingXMLValidation.cs:35:43:35:57 | access to local variable userProvidedXml : String | MissingXMLValidation.cs:35:26:35:58 | object creation of type StringReader | provenance | | +| MissingXMLValidation.cs:45:43:45:57 | access to local variable userProvidedXml : String | MissingXMLValidation.cs:45:26:45:58 | object creation of type StringReader | provenance | | nodes | MissingXMLValidation.cs:12:34:12:56 | access to property QueryString : NameValueCollection | semmle.label | access to property QueryString : NameValueCollection | | MissingXMLValidation.cs:12:34:12:75 | access to indexer : String | semmle.label | access to indexer : String | diff --git a/csharp/ql/test/query-tests/Security Features/CWE-114/AssemblyPathInjection/AssemblyPathInjection.expected b/csharp/ql/test/query-tests/Security Features/CWE-114/AssemblyPathInjection/AssemblyPathInjection.expected index 396d766c3e6b..a13b0d640044 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-114/AssemblyPathInjection/AssemblyPathInjection.expected +++ b/csharp/ql/test/query-tests/Security Features/CWE-114/AssemblyPathInjection/AssemblyPathInjection.expected @@ -1,7 +1,7 @@ edges -| Test.cs:7:26:7:48 | access to property QueryString : NameValueCollection | Test.cs:7:26:7:63 | access to indexer : String | -| Test.cs:7:26:7:48 | access to property QueryString : NameValueCollection | Test.cs:10:36:10:46 | access to local variable libraryName | -| Test.cs:7:26:7:63 | access to indexer : String | Test.cs:10:36:10:46 | access to local variable libraryName | +| Test.cs:7:26:7:48 | access to property QueryString : NameValueCollection | Test.cs:7:26:7:63 | access to indexer : String | provenance | | +| Test.cs:7:26:7:48 | access to property QueryString : NameValueCollection | Test.cs:10:36:10:46 | access to local variable libraryName | provenance | | +| Test.cs:7:26:7:63 | access to indexer : String | Test.cs:10:36:10:46 | access to local variable libraryName | provenance | | nodes | Test.cs:7:26:7:48 | access to property QueryString : NameValueCollection | semmle.label | access to property QueryString : NameValueCollection | | Test.cs:7:26:7:63 | access to indexer : String | semmle.label | access to indexer : String | diff --git a/csharp/ql/test/query-tests/Security Features/CWE-117/LogForging.expected b/csharp/ql/test/query-tests/Security Features/CWE-117/LogForging.expected index 4e863739f340..b01941c6d396 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-117/LogForging.expected +++ b/csharp/ql/test/query-tests/Security Features/CWE-117/LogForging.expected @@ -1,12 +1,12 @@ edges -| LogForging.cs:18:27:18:49 | access to property QueryString : NameValueCollection | LogForging.cs:18:27:18:61 | access to indexer : String | -| LogForging.cs:18:27:18:49 | access to property QueryString : NameValueCollection | LogForging.cs:21:21:21:43 | ... + ... | -| LogForging.cs:18:27:18:49 | access to property QueryString : NameValueCollection | LogForging.cs:29:50:29:72 | ... + ... | -| LogForging.cs:18:27:18:49 | access to property QueryString : NameValueCollection | LogForging.cs:33:26:33:33 | access to local variable username | -| LogForging.cs:18:27:18:61 | access to indexer : String | LogForging.cs:21:21:21:43 | ... + ... | -| LogForging.cs:18:27:18:61 | access to indexer : String | LogForging.cs:29:50:29:72 | ... + ... | -| LogForging.cs:18:27:18:61 | access to indexer : String | LogForging.cs:33:26:33:33 | access to local variable username | -| LogForgingAsp.cs:8:32:8:39 | username : String | LogForgingAsp.cs:12:21:12:43 | ... + ... | +| LogForging.cs:18:27:18:49 | access to property QueryString : NameValueCollection | LogForging.cs:18:27:18:61 | access to indexer : String | provenance | | +| LogForging.cs:18:27:18:49 | access to property QueryString : NameValueCollection | LogForging.cs:21:21:21:43 | ... + ... | provenance | | +| LogForging.cs:18:27:18:49 | access to property QueryString : NameValueCollection | LogForging.cs:29:50:29:72 | ... + ... | provenance | | +| LogForging.cs:18:27:18:49 | access to property QueryString : NameValueCollection | LogForging.cs:33:26:33:33 | access to local variable username | provenance | | +| LogForging.cs:18:27:18:61 | access to indexer : String | LogForging.cs:21:21:21:43 | ... + ... | provenance | | +| LogForging.cs:18:27:18:61 | access to indexer : String | LogForging.cs:29:50:29:72 | ... + ... | provenance | | +| LogForging.cs:18:27:18:61 | access to indexer : String | LogForging.cs:33:26:33:33 | access to local variable username | provenance | | +| LogForgingAsp.cs:8:32:8:39 | username : String | LogForgingAsp.cs:12:21:12:43 | ... + ... | provenance | | nodes | LogForging.cs:18:27:18:49 | access to property QueryString : NameValueCollection | semmle.label | access to property QueryString : NameValueCollection | | LogForging.cs:18:27:18:61 | access to indexer : String | semmle.label | access to indexer : String | diff --git a/csharp/ql/test/query-tests/Security Features/CWE-134/UncontrolledFormatString.expected b/csharp/ql/test/query-tests/Security Features/CWE-134/UncontrolledFormatString.expected index 5945b83d6352..9ae706885f6a 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-134/UncontrolledFormatString.expected +++ b/csharp/ql/test/query-tests/Security Features/CWE-134/UncontrolledFormatString.expected @@ -1,13 +1,13 @@ edges -| ConsoleUncontrolledFormatString.cs:8:22:8:39 | call to method ReadLine : String | ConsoleUncontrolledFormatString.cs:11:31:11:36 | access to local variable format | -| UncontrolledFormatString.cs:9:23:9:45 | access to property QueryString : NameValueCollection | UncontrolledFormatString.cs:9:23:9:53 | access to indexer : String | -| UncontrolledFormatString.cs:9:23:9:45 | access to property QueryString : NameValueCollection | UncontrolledFormatString.cs:12:23:12:26 | access to local variable path | -| UncontrolledFormatString.cs:9:23:9:45 | access to property QueryString : NameValueCollection | UncontrolledFormatString.cs:15:46:15:49 | access to local variable path | -| UncontrolledFormatString.cs:9:23:9:53 | access to indexer : String | UncontrolledFormatString.cs:12:23:12:26 | access to local variable path | -| UncontrolledFormatString.cs:9:23:9:53 | access to indexer : String | UncontrolledFormatString.cs:15:46:15:49 | access to local variable path | -| UncontrolledFormatStringBad.cs:9:25:9:47 | access to property QueryString : NameValueCollection | UncontrolledFormatStringBad.cs:9:25:9:61 | access to indexer : String | -| UncontrolledFormatStringBad.cs:9:25:9:47 | access to property QueryString : NameValueCollection | UncontrolledFormatStringBad.cs:12:39:12:44 | access to local variable format | -| UncontrolledFormatStringBad.cs:9:25:9:61 | access to indexer : String | UncontrolledFormatStringBad.cs:12:39:12:44 | access to local variable format | +| ConsoleUncontrolledFormatString.cs:8:22:8:39 | call to method ReadLine : String | ConsoleUncontrolledFormatString.cs:11:31:11:36 | access to local variable format | provenance | | +| UncontrolledFormatString.cs:9:23:9:45 | access to property QueryString : NameValueCollection | UncontrolledFormatString.cs:9:23:9:53 | access to indexer : String | provenance | | +| UncontrolledFormatString.cs:9:23:9:45 | access to property QueryString : NameValueCollection | UncontrolledFormatString.cs:12:23:12:26 | access to local variable path | provenance | | +| UncontrolledFormatString.cs:9:23:9:45 | access to property QueryString : NameValueCollection | UncontrolledFormatString.cs:15:46:15:49 | access to local variable path | provenance | | +| UncontrolledFormatString.cs:9:23:9:53 | access to indexer : String | UncontrolledFormatString.cs:12:23:12:26 | access to local variable path | provenance | | +| UncontrolledFormatString.cs:9:23:9:53 | access to indexer : String | UncontrolledFormatString.cs:15:46:15:49 | access to local variable path | provenance | | +| UncontrolledFormatStringBad.cs:9:25:9:47 | access to property QueryString : NameValueCollection | UncontrolledFormatStringBad.cs:9:25:9:61 | access to indexer : String | provenance | | +| UncontrolledFormatStringBad.cs:9:25:9:47 | access to property QueryString : NameValueCollection | UncontrolledFormatStringBad.cs:12:39:12:44 | access to local variable format | provenance | | +| UncontrolledFormatStringBad.cs:9:25:9:61 | access to indexer : String | UncontrolledFormatStringBad.cs:12:39:12:44 | access to local variable format | provenance | | nodes | ConsoleUncontrolledFormatString.cs:8:22:8:39 | call to method ReadLine : String | semmle.label | call to method ReadLine : String | | ConsoleUncontrolledFormatString.cs:11:31:11:36 | access to local variable format | semmle.label | access to local variable format | diff --git a/csharp/ql/test/query-tests/Security Features/CWE-201/ExposureInTransmittedData/ExposureInTransmittedData.expected b/csharp/ql/test/query-tests/Security Features/CWE-201/ExposureInTransmittedData/ExposureInTransmittedData.expected index 9399dd0a6ebd..9a1d6036ad7f 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-201/ExposureInTransmittedData/ExposureInTransmittedData.expected +++ b/csharp/ql/test/query-tests/Security Features/CWE-201/ExposureInTransmittedData/ExposureInTransmittedData.expected @@ -1,9 +1,9 @@ edges -| ExposureInTransmittedData.cs:24:32:24:38 | access to property Data : IDictionary | ExposureInTransmittedData.cs:24:32:24:50 | access to indexer | -| ExposureInTransmittedData.cs:30:17:30:36 | call to method GetField : String | ExposureInTransmittedData.cs:31:53:31:53 | access to local variable p | -| ExposureInTransmittedData.cs:30:17:30:36 | call to method GetField : String | ExposureInTransmittedData.cs:31:56:31:56 | access to local variable p | -| ExposureInTransmittedData.cs:30:17:30:36 | call to method GetField : String | ExposureInTransmittedData.cs:32:24:32:52 | ... + ... | -| ExposureInTransmittedData.cs:30:17:30:36 | call to method GetField : String | ExposureInTransmittedData.cs:33:27:33:27 | access to local variable p | +| ExposureInTransmittedData.cs:24:32:24:38 | access to property Data : IDictionary | ExposureInTransmittedData.cs:24:32:24:50 | access to indexer | provenance | | +| ExposureInTransmittedData.cs:30:17:30:36 | call to method GetField : String | ExposureInTransmittedData.cs:31:53:31:53 | access to local variable p | provenance | | +| ExposureInTransmittedData.cs:30:17:30:36 | call to method GetField : String | ExposureInTransmittedData.cs:31:56:31:56 | access to local variable p | provenance | | +| ExposureInTransmittedData.cs:30:17:30:36 | call to method GetField : String | ExposureInTransmittedData.cs:32:24:32:52 | ... + ... | provenance | | +| ExposureInTransmittedData.cs:30:17:30:36 | call to method GetField : String | ExposureInTransmittedData.cs:33:27:33:27 | access to local variable p | provenance | | nodes | ExposureInTransmittedData.cs:14:32:14:39 | access to local variable password | semmle.label | access to local variable password | | ExposureInTransmittedData.cs:18:32:18:44 | call to method ToString | semmle.label | call to method ToString | diff --git a/csharp/ql/test/query-tests/Security Features/CWE-209/ExceptionInformationExposure.expected b/csharp/ql/test/query-tests/Security Features/CWE-209/ExceptionInformationExposure.expected index 3e273ef83b89..4ba1ed42f1d0 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-209/ExceptionInformationExposure.expected +++ b/csharp/ql/test/query-tests/Security Features/CWE-209/ExceptionInformationExposure.expected @@ -1,10 +1,10 @@ edges -| ExceptionInformationExposure.cs:19:32:19:33 | access to local variable ex : Exception | ExceptionInformationExposure.cs:19:32:19:44 | call to method ToString | -| ExceptionInformationExposure.cs:23:32:23:33 | access to local variable ex : Exception | ExceptionInformationExposure.cs:23:32:23:44 | access to property StackTrace | -| ExceptionInformationExposure.cs:39:28:39:44 | access to property InnerException : Exception | ExceptionInformationExposure.cs:39:28:39:55 | access to property StackTrace | -| ExceptionInformationExposure.cs:40:28:40:29 | access to local variable ex : Exception | ExceptionInformationExposure.cs:40:28:40:40 | access to property StackTrace | -| ExceptionInformationExposure.cs:41:28:41:29 | access to local variable ex : Exception | ExceptionInformationExposure.cs:41:28:41:40 | call to method ToString | -| ExceptionInformationExposure.cs:47:28:47:44 | object creation of type MyException : MyException | ExceptionInformationExposure.cs:47:28:47:55 | call to method ToString | +| ExceptionInformationExposure.cs:19:32:19:33 | access to local variable ex : Exception | ExceptionInformationExposure.cs:19:32:19:44 | call to method ToString | provenance | | +| ExceptionInformationExposure.cs:23:32:23:33 | access to local variable ex : Exception | ExceptionInformationExposure.cs:23:32:23:44 | access to property StackTrace | provenance | | +| ExceptionInformationExposure.cs:39:28:39:44 | access to property InnerException : Exception | ExceptionInformationExposure.cs:39:28:39:55 | access to property StackTrace | provenance | | +| ExceptionInformationExposure.cs:40:28:40:29 | access to local variable ex : Exception | ExceptionInformationExposure.cs:40:28:40:40 | access to property StackTrace | provenance | | +| ExceptionInformationExposure.cs:41:28:41:29 | access to local variable ex : Exception | ExceptionInformationExposure.cs:41:28:41:40 | call to method ToString | provenance | | +| ExceptionInformationExposure.cs:47:28:47:44 | object creation of type MyException : MyException | ExceptionInformationExposure.cs:47:28:47:55 | call to method ToString | provenance | | nodes | ExceptionInformationExposure.cs:19:32:19:33 | access to local variable ex : Exception | semmle.label | access to local variable ex : Exception | | ExceptionInformationExposure.cs:19:32:19:44 | call to method ToString | semmle.label | call to method ToString | diff --git a/csharp/ql/test/query-tests/Security Features/CWE-321/HardcodedSymmetricEncryptionKey/HardcodedSymmetricEncryptionKey.expected b/csharp/ql/test/query-tests/Security Features/CWE-321/HardcodedSymmetricEncryptionKey/HardcodedSymmetricEncryptionKey.expected index 10cb82ff67e4..8fcc865b54c0 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-321/HardcodedSymmetricEncryptionKey/HardcodedSymmetricEncryptionKey.expected +++ b/csharp/ql/test/query-tests/Security Features/CWE-321/HardcodedSymmetricEncryptionKey/HardcodedSymmetricEncryptionKey.expected @@ -1,17 +1,17 @@ edges -| HardcodedSymmetricEncryptionKey.cs:25:21:25:97 | array creation of type Byte[] : Byte[] | HardcodedSymmetricEncryptionKey.cs:31:21:31:21 | access to local variable d | -| HardcodedSymmetricEncryptionKey.cs:25:21:25:97 | array creation of type Byte[] : Byte[] | HardcodedSymmetricEncryptionKey.cs:36:37:36:37 | access to local variable d : Byte[] | -| HardcodedSymmetricEncryptionKey.cs:25:21:25:97 | array creation of type Byte[] : Byte[] | HardcodedSymmetricEncryptionKey.cs:41:50:41:50 | access to local variable c : Byte[] | -| HardcodedSymmetricEncryptionKey.cs:25:21:25:97 | array creation of type Byte[] : Byte[] | HardcodedSymmetricEncryptionKey.cs:50:35:50:35 | access to local variable c : Byte[] | -| HardcodedSymmetricEncryptionKey.cs:28:39:28:116 | call to method GetBytes : Byte[] | HardcodedSymmetricEncryptionKey.cs:44:51:44:69 | access to local variable byteArrayFromString : Byte[] | -| HardcodedSymmetricEncryptionKey.cs:28:62:28:115 | "Hello, world: here is a very bad way to create a key" : String | HardcodedSymmetricEncryptionKey.cs:28:39:28:116 | call to method GetBytes : Byte[] | -| HardcodedSymmetricEncryptionKey.cs:36:37:36:37 | access to local variable d : Byte[] | HardcodedSymmetricEncryptionKey.cs:103:57:103:59 | key : Byte[] | -| HardcodedSymmetricEncryptionKey.cs:41:50:41:50 | access to local variable c : Byte[] | HardcodedSymmetricEncryptionKey.cs:112:63:112:65 | key : Byte[] | -| HardcodedSymmetricEncryptionKey.cs:44:51:44:69 | access to local variable byteArrayFromString : Byte[] | HardcodedSymmetricEncryptionKey.cs:112:63:112:65 | key : Byte[] | -| HardcodedSymmetricEncryptionKey.cs:50:35:50:35 | access to local variable c : Byte[] | HardcodedSymmetricEncryptionKey.cs:59:64:59:71 | password : Byte[] | -| HardcodedSymmetricEncryptionKey.cs:59:64:59:71 | password : Byte[] | HardcodedSymmetricEncryptionKey.cs:68:87:68:94 | access to parameter password | -| HardcodedSymmetricEncryptionKey.cs:103:57:103:59 | key : Byte[] | HardcodedSymmetricEncryptionKey.cs:108:23:108:25 | access to parameter key | -| HardcodedSymmetricEncryptionKey.cs:112:63:112:65 | key : Byte[] | HardcodedSymmetricEncryptionKey.cs:121:87:121:89 | access to parameter key | +| HardcodedSymmetricEncryptionKey.cs:25:21:25:97 | array creation of type Byte[] : Byte[] | HardcodedSymmetricEncryptionKey.cs:31:21:31:21 | access to local variable d | provenance | | +| HardcodedSymmetricEncryptionKey.cs:25:21:25:97 | array creation of type Byte[] : Byte[] | HardcodedSymmetricEncryptionKey.cs:36:37:36:37 | access to local variable d : Byte[] | provenance | | +| HardcodedSymmetricEncryptionKey.cs:25:21:25:97 | array creation of type Byte[] : Byte[] | HardcodedSymmetricEncryptionKey.cs:41:50:41:50 | access to local variable c : Byte[] | provenance | | +| HardcodedSymmetricEncryptionKey.cs:25:21:25:97 | array creation of type Byte[] : Byte[] | HardcodedSymmetricEncryptionKey.cs:50:35:50:35 | access to local variable c : Byte[] | provenance | | +| HardcodedSymmetricEncryptionKey.cs:28:39:28:116 | call to method GetBytes : Byte[] | HardcodedSymmetricEncryptionKey.cs:44:51:44:69 | access to local variable byteArrayFromString : Byte[] | provenance | | +| HardcodedSymmetricEncryptionKey.cs:28:62:28:115 | "Hello, world: here is a very bad way to create a key" : String | HardcodedSymmetricEncryptionKey.cs:28:39:28:116 | call to method GetBytes : Byte[] | provenance | | +| HardcodedSymmetricEncryptionKey.cs:36:37:36:37 | access to local variable d : Byte[] | HardcodedSymmetricEncryptionKey.cs:103:57:103:59 | key : Byte[] | provenance | | +| HardcodedSymmetricEncryptionKey.cs:41:50:41:50 | access to local variable c : Byte[] | HardcodedSymmetricEncryptionKey.cs:112:63:112:65 | key : Byte[] | provenance | | +| HardcodedSymmetricEncryptionKey.cs:44:51:44:69 | access to local variable byteArrayFromString : Byte[] | HardcodedSymmetricEncryptionKey.cs:112:63:112:65 | key : Byte[] | provenance | | +| HardcodedSymmetricEncryptionKey.cs:50:35:50:35 | access to local variable c : Byte[] | HardcodedSymmetricEncryptionKey.cs:59:64:59:71 | password : Byte[] | provenance | | +| HardcodedSymmetricEncryptionKey.cs:59:64:59:71 | password : Byte[] | HardcodedSymmetricEncryptionKey.cs:68:87:68:94 | access to parameter password | provenance | | +| HardcodedSymmetricEncryptionKey.cs:103:57:103:59 | key : Byte[] | HardcodedSymmetricEncryptionKey.cs:108:23:108:25 | access to parameter key | provenance | | +| HardcodedSymmetricEncryptionKey.cs:112:63:112:65 | key : Byte[] | HardcodedSymmetricEncryptionKey.cs:121:87:121:89 | access to parameter key | provenance | | nodes | HardcodedSymmetricEncryptionKey.cs:17:21:17:97 | array creation of type Byte[] | semmle.label | array creation of type Byte[] | | HardcodedSymmetricEncryptionKey.cs:22:23:22:99 | array creation of type Byte[] | semmle.label | array creation of type Byte[] | diff --git a/csharp/ql/test/query-tests/Security Features/CWE-327/DontInstallRootCert/DontInstallRootCert.expected b/csharp/ql/test/query-tests/Security Features/CWE-327/DontInstallRootCert/DontInstallRootCert.expected index 9f20b582a86d..616fe890da8e 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-327/DontInstallRootCert/DontInstallRootCert.expected +++ b/csharp/ql/test/query-tests/Security Features/CWE-327/DontInstallRootCert/DontInstallRootCert.expected @@ -1,7 +1,7 @@ edges -| Test.cs:15:31:15:59 | object creation of type X509Store : X509Store | Test.cs:18:13:18:17 | access to local variable store | -| Test.cs:25:31:25:86 | object creation of type X509Store : X509Store | Test.cs:28:13:28:17 | access to local variable store | -| Test.cs:70:31:70:86 | object creation of type X509Store : X509Store | Test.cs:73:13:73:17 | access to local variable store | +| Test.cs:15:31:15:59 | object creation of type X509Store : X509Store | Test.cs:18:13:18:17 | access to local variable store | provenance | | +| Test.cs:25:31:25:86 | object creation of type X509Store : X509Store | Test.cs:28:13:28:17 | access to local variable store | provenance | | +| Test.cs:70:31:70:86 | object creation of type X509Store : X509Store | Test.cs:73:13:73:17 | access to local variable store | provenance | | nodes | Test.cs:15:31:15:59 | object creation of type X509Store : X509Store | semmle.label | object creation of type X509Store : X509Store | | Test.cs:18:13:18:17 | access to local variable store | semmle.label | access to local variable store | diff --git a/csharp/ql/test/query-tests/Security Features/CWE-327/InsecureSQLConnection/InsecureSQLConnection.expected b/csharp/ql/test/query-tests/Security Features/CWE-327/InsecureSQLConnection/InsecureSQLConnection.expected index 14d9e9213c62..fc657fcde1d1 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-327/InsecureSQLConnection/InsecureSQLConnection.expected +++ b/csharp/ql/test/query-tests/Security Features/CWE-327/InsecureSQLConnection/InsecureSQLConnection.expected @@ -1,6 +1,6 @@ edges -| InsecureSQLConnection.cs:44:17:44:64 | "Server=1.2.3.4;Database=Anything;UID=ab;Pwd=cd" : String | InsecureSQLConnection.cs:46:81:46:93 | access to local variable connectString | -| InsecureSQLConnection.cs:53:17:53:78 | "Server=1.2.3.4;Database=Anything;UID=ab;Pwd=cd;Encrypt=false" : String | InsecureSQLConnection.cs:55:81:55:93 | access to local variable connectString | +| InsecureSQLConnection.cs:44:17:44:64 | "Server=1.2.3.4;Database=Anything;UID=ab;Pwd=cd" : String | InsecureSQLConnection.cs:46:81:46:93 | access to local variable connectString | provenance | | +| InsecureSQLConnection.cs:53:17:53:78 | "Server=1.2.3.4;Database=Anything;UID=ab;Pwd=cd;Encrypt=false" : String | InsecureSQLConnection.cs:55:81:55:93 | access to local variable connectString | provenance | | nodes | InsecureSQLConnection.cs:38:52:38:128 | "Server=myServerName\\myInstanceName;Database=myDataBase;User Id=myUsername;" | semmle.label | "Server=myServerName\\myInstanceName;Database=myDataBase;User Id=myUsername;" | | InsecureSQLConnection.cs:44:17:44:64 | "Server=1.2.3.4;Database=Anything;UID=ab;Pwd=cd" : String | semmle.label | "Server=1.2.3.4;Database=Anything;UID=ab;Pwd=cd" : String | diff --git a/csharp/ql/test/query-tests/Security Features/CWE-338/InsecureRandomness.expected b/csharp/ql/test/query-tests/Security Features/CWE-338/InsecureRandomness.expected index 20312f4c17be..b0c0dbae40f8 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-338/InsecureRandomness.expected +++ b/csharp/ql/test/query-tests/Security Features/CWE-338/InsecureRandomness.expected @@ -1,19 +1,19 @@ edges -| InsecureRandomness.cs:28:13:28:16 | [post] access to local variable data : Byte[] [element] : Byte | InsecureRandomness.cs:29:57:29:60 | access to local variable data : Byte[] [element] : Byte | -| InsecureRandomness.cs:28:23:28:43 | (...) ... : Byte | InsecureRandomness.cs:28:13:28:16 | [post] access to local variable data : Byte[] [element] : Byte | -| InsecureRandomness.cs:28:29:28:43 | call to method Next : Int32 | InsecureRandomness.cs:28:23:28:43 | (...) ... : Byte | -| InsecureRandomness.cs:29:13:29:18 | [post] access to local variable result : StringBuilder | InsecureRandomness.cs:31:16:31:21 | access to local variable result : StringBuilder | -| InsecureRandomness.cs:29:27:29:61 | call to method GetString : String | InsecureRandomness.cs:29:13:29:18 | [post] access to local variable result : StringBuilder | -| InsecureRandomness.cs:29:57:29:60 | access to local variable data : Byte[] [element] : Byte | InsecureRandomness.cs:29:27:29:61 | call to method GetString : String | -| InsecureRandomness.cs:31:16:31:21 | access to local variable result : StringBuilder | InsecureRandomness.cs:31:16:31:32 | call to method ToString : String | -| InsecureRandomness.cs:31:16:31:32 | call to method ToString : String | InsecureRandomness.cs:12:27:12:50 | call to method InsecureRandomString | -| InsecureRandomness.cs:60:23:60:40 | access to array element : String | InsecureRandomness.cs:62:16:62:21 | access to local variable result : String | -| InsecureRandomness.cs:60:31:60:39 | call to method Next : Int32 | InsecureRandomness.cs:60:23:60:40 | access to array element : String | -| InsecureRandomness.cs:62:16:62:21 | access to local variable result : String | InsecureRandomness.cs:62:16:62:32 | call to method ToString : String | -| InsecureRandomness.cs:62:16:62:32 | call to method ToString : String | InsecureRandomness.cs:13:20:13:56 | call to method InsecureRandomStringFromSelection | -| InsecureRandomness.cs:72:23:72:40 | access to indexer : String | InsecureRandomness.cs:74:16:74:21 | access to local variable result : String | -| InsecureRandomness.cs:72:31:72:39 | call to method Next : Int32 | InsecureRandomness.cs:72:23:72:40 | access to indexer : String | -| InsecureRandomness.cs:74:16:74:21 | access to local variable result : String | InsecureRandomness.cs:14:20:14:54 | call to method InsecureRandomStringFromIndexer | +| InsecureRandomness.cs:28:13:28:16 | [post] access to local variable data : Byte[] [element] : Byte | InsecureRandomness.cs:29:57:29:60 | access to local variable data : Byte[] [element] : Byte | provenance | | +| InsecureRandomness.cs:28:23:28:43 | (...) ... : Byte | InsecureRandomness.cs:28:13:28:16 | [post] access to local variable data : Byte[] [element] : Byte | provenance | | +| InsecureRandomness.cs:28:29:28:43 | call to method Next : Int32 | InsecureRandomness.cs:28:23:28:43 | (...) ... : Byte | provenance | | +| InsecureRandomness.cs:29:13:29:18 | [post] access to local variable result : StringBuilder | InsecureRandomness.cs:31:16:31:21 | access to local variable result : StringBuilder | provenance | | +| InsecureRandomness.cs:29:27:29:61 | call to method GetString : String | InsecureRandomness.cs:29:13:29:18 | [post] access to local variable result : StringBuilder | provenance | | +| InsecureRandomness.cs:29:57:29:60 | access to local variable data : Byte[] [element] : Byte | InsecureRandomness.cs:29:27:29:61 | call to method GetString : String | provenance | | +| InsecureRandomness.cs:31:16:31:21 | access to local variable result : StringBuilder | InsecureRandomness.cs:31:16:31:32 | call to method ToString : String | provenance | | +| InsecureRandomness.cs:31:16:31:32 | call to method ToString : String | InsecureRandomness.cs:12:27:12:50 | call to method InsecureRandomString | provenance | | +| InsecureRandomness.cs:60:23:60:40 | access to array element : String | InsecureRandomness.cs:62:16:62:21 | access to local variable result : String | provenance | | +| InsecureRandomness.cs:60:31:60:39 | call to method Next : Int32 | InsecureRandomness.cs:60:23:60:40 | access to array element : String | provenance | | +| InsecureRandomness.cs:62:16:62:21 | access to local variable result : String | InsecureRandomness.cs:62:16:62:32 | call to method ToString : String | provenance | | +| InsecureRandomness.cs:62:16:62:32 | call to method ToString : String | InsecureRandomness.cs:13:20:13:56 | call to method InsecureRandomStringFromSelection | provenance | | +| InsecureRandomness.cs:72:23:72:40 | access to indexer : String | InsecureRandomness.cs:74:16:74:21 | access to local variable result : String | provenance | | +| InsecureRandomness.cs:72:31:72:39 | call to method Next : Int32 | InsecureRandomness.cs:72:23:72:40 | access to indexer : String | provenance | | +| InsecureRandomness.cs:74:16:74:21 | access to local variable result : String | InsecureRandomness.cs:14:20:14:54 | call to method InsecureRandomStringFromIndexer | provenance | | nodes | InsecureRandomness.cs:12:27:12:50 | call to method InsecureRandomString | semmle.label | call to method InsecureRandomString | | InsecureRandomness.cs:13:20:13:56 | call to method InsecureRandomStringFromSelection | semmle.label | call to method InsecureRandomStringFromSelection | diff --git a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInput/UnsafeDeserializationUntrustedInput.expected b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInput/UnsafeDeserializationUntrustedInput.expected index 0761f950feb5..d9ee462e64ac 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInput/UnsafeDeserializationUntrustedInput.expected +++ b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInput/UnsafeDeserializationUntrustedInput.expected @@ -1,23 +1,23 @@ edges -| BinaryFormatterUntrustedInputBad.cs:12:48:12:83 | call to method GetBytes : Byte[] | BinaryFormatterUntrustedInputBad.cs:12:31:12:84 | object creation of type MemoryStream | -| BinaryFormatterUntrustedInputBad.cs:12:71:12:77 | access to parameter textBox : TextBox | BinaryFormatterUntrustedInputBad.cs:12:71:12:82 | access to property Text : String | -| BinaryFormatterUntrustedInputBad.cs:12:71:12:82 | access to property Text : String | BinaryFormatterUntrustedInputBad.cs:12:48:12:83 | call to method GetBytes : Byte[] | -| DataContractJsonSerializerUntrustedInputBad.cs:13:47:13:79 | call to method GetBytes : Byte[] | DataContractJsonSerializerUntrustedInputBad.cs:13:30:13:80 | object creation of type MemoryStream | -| DataContractJsonSerializerUntrustedInputBad.cs:13:70:13:73 | access to parameter data : TextBox | DataContractJsonSerializerUntrustedInputBad.cs:13:70:13:78 | access to property Text : String | -| DataContractJsonSerializerUntrustedInputBad.cs:13:70:13:78 | access to property Text : String | DataContractJsonSerializerUntrustedInputBad.cs:13:47:13:79 | call to method GetBytes : Byte[] | -| DataContractSerializerUntrustedInputBad.cs:13:47:13:79 | call to method GetBytes : Byte[] | DataContractSerializerUntrustedInputBad.cs:13:30:13:80 | object creation of type MemoryStream | -| DataContractSerializerUntrustedInputBad.cs:13:70:13:73 | access to parameter data : TextBox | DataContractSerializerUntrustedInputBad.cs:13:70:13:78 | access to property Text : String | -| DataContractSerializerUntrustedInputBad.cs:13:70:13:78 | access to property Text : String | DataContractSerializerUntrustedInputBad.cs:13:47:13:79 | call to method GetBytes : Byte[] | -| ResourceReaderUntrustedInputBad.cs:11:54:11:86 | call to method GetBytes : Byte[] | ResourceReaderUntrustedInputBad.cs:11:37:11:87 | object creation of type MemoryStream | -| ResourceReaderUntrustedInputBad.cs:11:77:11:80 | access to parameter data : TextBox | ResourceReaderUntrustedInputBad.cs:11:77:11:85 | access to property Text : String | -| ResourceReaderUntrustedInputBad.cs:11:77:11:85 | access to property Text : String | ResourceReaderUntrustedInputBad.cs:11:54:11:86 | call to method GetBytes : Byte[] | -| UnsafeDeserializationUntrustedInputBad.cs:10:37:10:43 | access to parameter textBox : TextBox | UnsafeDeserializationUntrustedInputBad.cs:10:37:10:48 | access to property Text | -| XmlObjectSerializerUntrustedInputBad.cs:13:47:13:79 | call to method GetBytes : Byte[] | XmlObjectSerializerUntrustedInputBad.cs:13:30:13:80 | object creation of type MemoryStream | -| XmlObjectSerializerUntrustedInputBad.cs:13:70:13:73 | access to parameter data : TextBox | XmlObjectSerializerUntrustedInputBad.cs:13:70:13:78 | access to property Text : String | -| XmlObjectSerializerUntrustedInputBad.cs:13:70:13:78 | access to property Text : String | XmlObjectSerializerUntrustedInputBad.cs:13:47:13:79 | call to method GetBytes : Byte[] | -| XmlSerializerUntrustedInputBad.cs:13:48:13:80 | call to method GetBytes : Byte[] | XmlSerializerUntrustedInputBad.cs:13:31:13:81 | object creation of type MemoryStream | -| XmlSerializerUntrustedInputBad.cs:13:71:13:74 | access to parameter data : TextBox | XmlSerializerUntrustedInputBad.cs:13:71:13:79 | access to property Text : String | -| XmlSerializerUntrustedInputBad.cs:13:71:13:79 | access to property Text : String | XmlSerializerUntrustedInputBad.cs:13:48:13:80 | call to method GetBytes : Byte[] | +| BinaryFormatterUntrustedInputBad.cs:12:48:12:83 | call to method GetBytes : Byte[] | BinaryFormatterUntrustedInputBad.cs:12:31:12:84 | object creation of type MemoryStream | provenance | | +| BinaryFormatterUntrustedInputBad.cs:12:71:12:77 | access to parameter textBox : TextBox | BinaryFormatterUntrustedInputBad.cs:12:71:12:82 | access to property Text : String | provenance | | +| BinaryFormatterUntrustedInputBad.cs:12:71:12:82 | access to property Text : String | BinaryFormatterUntrustedInputBad.cs:12:48:12:83 | call to method GetBytes : Byte[] | provenance | | +| DataContractJsonSerializerUntrustedInputBad.cs:13:47:13:79 | call to method GetBytes : Byte[] | DataContractJsonSerializerUntrustedInputBad.cs:13:30:13:80 | object creation of type MemoryStream | provenance | | +| DataContractJsonSerializerUntrustedInputBad.cs:13:70:13:73 | access to parameter data : TextBox | DataContractJsonSerializerUntrustedInputBad.cs:13:70:13:78 | access to property Text : String | provenance | | +| DataContractJsonSerializerUntrustedInputBad.cs:13:70:13:78 | access to property Text : String | DataContractJsonSerializerUntrustedInputBad.cs:13:47:13:79 | call to method GetBytes : Byte[] | provenance | | +| DataContractSerializerUntrustedInputBad.cs:13:47:13:79 | call to method GetBytes : Byte[] | DataContractSerializerUntrustedInputBad.cs:13:30:13:80 | object creation of type MemoryStream | provenance | | +| DataContractSerializerUntrustedInputBad.cs:13:70:13:73 | access to parameter data : TextBox | DataContractSerializerUntrustedInputBad.cs:13:70:13:78 | access to property Text : String | provenance | | +| DataContractSerializerUntrustedInputBad.cs:13:70:13:78 | access to property Text : String | DataContractSerializerUntrustedInputBad.cs:13:47:13:79 | call to method GetBytes : Byte[] | provenance | | +| ResourceReaderUntrustedInputBad.cs:11:54:11:86 | call to method GetBytes : Byte[] | ResourceReaderUntrustedInputBad.cs:11:37:11:87 | object creation of type MemoryStream | provenance | | +| ResourceReaderUntrustedInputBad.cs:11:77:11:80 | access to parameter data : TextBox | ResourceReaderUntrustedInputBad.cs:11:77:11:85 | access to property Text : String | provenance | | +| ResourceReaderUntrustedInputBad.cs:11:77:11:85 | access to property Text : String | ResourceReaderUntrustedInputBad.cs:11:54:11:86 | call to method GetBytes : Byte[] | provenance | | +| UnsafeDeserializationUntrustedInputBad.cs:10:37:10:43 | access to parameter textBox : TextBox | UnsafeDeserializationUntrustedInputBad.cs:10:37:10:48 | access to property Text | provenance | | +| XmlObjectSerializerUntrustedInputBad.cs:13:47:13:79 | call to method GetBytes : Byte[] | XmlObjectSerializerUntrustedInputBad.cs:13:30:13:80 | object creation of type MemoryStream | provenance | | +| XmlObjectSerializerUntrustedInputBad.cs:13:70:13:73 | access to parameter data : TextBox | XmlObjectSerializerUntrustedInputBad.cs:13:70:13:78 | access to property Text : String | provenance | | +| XmlObjectSerializerUntrustedInputBad.cs:13:70:13:78 | access to property Text : String | XmlObjectSerializerUntrustedInputBad.cs:13:47:13:79 | call to method GetBytes : Byte[] | provenance | | +| XmlSerializerUntrustedInputBad.cs:13:48:13:80 | call to method GetBytes : Byte[] | XmlSerializerUntrustedInputBad.cs:13:31:13:81 | object creation of type MemoryStream | provenance | | +| XmlSerializerUntrustedInputBad.cs:13:71:13:74 | access to parameter data : TextBox | XmlSerializerUntrustedInputBad.cs:13:71:13:79 | access to property Text : String | provenance | | +| XmlSerializerUntrustedInputBad.cs:13:71:13:79 | access to property Text : String | XmlSerializerUntrustedInputBad.cs:13:48:13:80 | call to method GetBytes : Byte[] | provenance | | nodes | BinaryFormatterUntrustedInputBad.cs:12:31:12:84 | object creation of type MemoryStream | semmle.label | object creation of type MemoryStream | | BinaryFormatterUntrustedInputBad.cs:12:48:12:83 | call to method GetBytes : Byte[] | semmle.label | call to method GetBytes : Byte[] | diff --git a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInputNewtonsoftJson/UnsafeDeserializationUntrustedInput.expected b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInputNewtonsoftJson/UnsafeDeserializationUntrustedInput.expected index c73b31226884..c50a361dac7f 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInputNewtonsoftJson/UnsafeDeserializationUntrustedInput.expected +++ b/csharp/ql/test/query-tests/Security Features/CWE-502/UnsafeDeserializationUntrustedInputNewtonsoftJson/UnsafeDeserializationUntrustedInput.expected @@ -1,7 +1,7 @@ edges -| Test.cs:9:46:9:49 | access to parameter data : TextBox | Test.cs:9:46:9:54 | access to property Text | -| Test.cs:17:46:17:49 | access to parameter data : TextBox | Test.cs:17:46:17:54 | access to property Text | -| Test.cs:25:46:25:49 | access to parameter data : TextBox | Test.cs:25:46:25:54 | access to property Text | +| Test.cs:9:46:9:49 | access to parameter data : TextBox | Test.cs:9:46:9:54 | access to property Text | provenance | | +| Test.cs:17:46:17:49 | access to parameter data : TextBox | Test.cs:17:46:17:54 | access to property Text | provenance | | +| Test.cs:25:46:25:49 | access to parameter data : TextBox | Test.cs:25:46:25:54 | access to property Text | provenance | | nodes | Test.cs:9:46:9:49 | access to parameter data : TextBox | semmle.label | access to parameter data : TextBox | | Test.cs:9:46:9:54 | access to property Text | semmle.label | access to property Text | diff --git a/csharp/ql/test/query-tests/Security Features/CWE-601/UrlRedirect/UrlRedirect.expected b/csharp/ql/test/query-tests/Security Features/CWE-601/UrlRedirect/UrlRedirect.expected index ff1cac032fe3..33e634145589 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-601/UrlRedirect/UrlRedirect.expected +++ b/csharp/ql/test/query-tests/Security Features/CWE-601/UrlRedirect/UrlRedirect.expected @@ -1,32 +1,32 @@ edges -| UrlRedirect.cs:13:31:13:53 | access to property QueryString : NameValueCollection | UrlRedirect.cs:13:31:13:61 | access to indexer | -| UrlRedirect.cs:23:22:23:44 | access to property QueryString : NameValueCollection | UrlRedirect.cs:23:22:23:52 | access to indexer : String | -| UrlRedirect.cs:23:22:23:44 | access to property QueryString : NameValueCollection | UrlRedirect.cs:48:29:48:31 | access to local variable url | -| UrlRedirect.cs:23:22:23:44 | access to property QueryString : NameValueCollection | UrlRedirect.cs:64:31:64:52 | $"..." | -| UrlRedirect.cs:23:22:23:44 | access to property QueryString : NameValueCollection | UrlRedirect.cs:70:66:70:68 | access to local variable url : String | -| UrlRedirect.cs:23:22:23:44 | access to property QueryString : NameValueCollection | UrlRedirect.cs:76:69:76:71 | access to local variable url : String | -| UrlRedirect.cs:23:22:23:44 | access to property QueryString : NameValueCollection | UrlRedirect.cs:76:74:76:76 | access to local variable url : String | -| UrlRedirect.cs:23:22:23:52 | access to indexer : String | UrlRedirect.cs:48:29:48:31 | access to local variable url | -| UrlRedirect.cs:23:22:23:52 | access to indexer : String | UrlRedirect.cs:64:31:64:52 | $"..." | -| UrlRedirect.cs:23:22:23:52 | access to indexer : String | UrlRedirect.cs:70:66:70:68 | access to local variable url : String | -| UrlRedirect.cs:23:22:23:52 | access to indexer : String | UrlRedirect.cs:76:69:76:71 | access to local variable url : String | -| UrlRedirect.cs:23:22:23:52 | access to indexer : String | UrlRedirect.cs:76:74:76:76 | access to local variable url : String | -| UrlRedirect.cs:38:44:38:66 | access to property QueryString : NameValueCollection | UrlRedirect.cs:38:44:38:74 | access to indexer | -| UrlRedirect.cs:39:47:39:69 | access to property QueryString : NameValueCollection | UrlRedirect.cs:39:47:39:77 | access to indexer | -| UrlRedirect.cs:70:66:70:68 | access to local variable url : String | UrlRedirect.cs:70:31:70:69 | call to method Format | -| UrlRedirect.cs:76:69:76:71 | access to local variable url : String | UrlRedirect.cs:76:31:76:77 | call to method Format | -| UrlRedirect.cs:76:74:76:76 | access to local variable url : String | UrlRedirect.cs:76:31:76:77 | call to method Format | -| UrlRedirectCore.cs:13:44:13:48 | value : String | UrlRedirectCore.cs:16:22:16:26 | access to parameter value | -| UrlRedirectCore.cs:13:44:13:48 | value : String | UrlRedirectCore.cs:19:44:19:48 | call to operator implicit conversion | -| UrlRedirectCore.cs:13:44:13:48 | value : String | UrlRedirectCore.cs:25:46:25:50 | call to operator implicit conversion | -| UrlRedirectCore.cs:13:44:13:48 | value : String | UrlRedirectCore.cs:31:66:31:70 | access to parameter value | -| UrlRedirectCore.cs:13:44:13:48 | value : String | UrlRedirectCore.cs:34:49:34:53 | call to operator implicit conversion | -| UrlRedirectCore.cs:13:44:13:48 | value : String | UrlRedirectCore.cs:37:69:37:73 | access to parameter value | -| UrlRedirectCore.cs:13:44:13:48 | value : String | UrlRedirectCore.cs:40:39:40:53 | ... + ... | -| UrlRedirectCore.cs:45:51:45:55 | value : String | UrlRedirectCore.cs:48:28:48:32 | access to parameter value | -| UrlRedirectCore.cs:45:51:45:55 | value : String | UrlRedirectCore.cs:53:40:53:44 | access to parameter value : String | -| UrlRedirectCore.cs:45:51:45:55 | value : String | UrlRedirectCore.cs:56:31:56:35 | access to parameter value | -| UrlRedirectCore.cs:53:40:53:44 | access to parameter value : String | UrlRedirectCore.cs:53:32:53:45 | object creation of type Uri | +| UrlRedirect.cs:13:31:13:53 | access to property QueryString : NameValueCollection | UrlRedirect.cs:13:31:13:61 | access to indexer | provenance | | +| UrlRedirect.cs:23:22:23:44 | access to property QueryString : NameValueCollection | UrlRedirect.cs:23:22:23:52 | access to indexer : String | provenance | | +| UrlRedirect.cs:23:22:23:44 | access to property QueryString : NameValueCollection | UrlRedirect.cs:48:29:48:31 | access to local variable url | provenance | | +| UrlRedirect.cs:23:22:23:44 | access to property QueryString : NameValueCollection | UrlRedirect.cs:64:31:64:52 | $"..." | provenance | | +| UrlRedirect.cs:23:22:23:44 | access to property QueryString : NameValueCollection | UrlRedirect.cs:70:66:70:68 | access to local variable url : String | provenance | | +| UrlRedirect.cs:23:22:23:44 | access to property QueryString : NameValueCollection | UrlRedirect.cs:76:69:76:71 | access to local variable url : String | provenance | | +| UrlRedirect.cs:23:22:23:44 | access to property QueryString : NameValueCollection | UrlRedirect.cs:76:74:76:76 | access to local variable url : String | provenance | | +| UrlRedirect.cs:23:22:23:52 | access to indexer : String | UrlRedirect.cs:48:29:48:31 | access to local variable url | provenance | | +| UrlRedirect.cs:23:22:23:52 | access to indexer : String | UrlRedirect.cs:64:31:64:52 | $"..." | provenance | | +| UrlRedirect.cs:23:22:23:52 | access to indexer : String | UrlRedirect.cs:70:66:70:68 | access to local variable url : String | provenance | | +| UrlRedirect.cs:23:22:23:52 | access to indexer : String | UrlRedirect.cs:76:69:76:71 | access to local variable url : String | provenance | | +| UrlRedirect.cs:23:22:23:52 | access to indexer : String | UrlRedirect.cs:76:74:76:76 | access to local variable url : String | provenance | | +| UrlRedirect.cs:38:44:38:66 | access to property QueryString : NameValueCollection | UrlRedirect.cs:38:44:38:74 | access to indexer | provenance | | +| UrlRedirect.cs:39:47:39:69 | access to property QueryString : NameValueCollection | UrlRedirect.cs:39:47:39:77 | access to indexer | provenance | | +| UrlRedirect.cs:70:66:70:68 | access to local variable url : String | UrlRedirect.cs:70:31:70:69 | call to method Format | provenance | | +| UrlRedirect.cs:76:69:76:71 | access to local variable url : String | UrlRedirect.cs:76:31:76:77 | call to method Format | provenance | | +| UrlRedirect.cs:76:74:76:76 | access to local variable url : String | UrlRedirect.cs:76:31:76:77 | call to method Format | provenance | | +| UrlRedirectCore.cs:13:44:13:48 | value : String | UrlRedirectCore.cs:16:22:16:26 | access to parameter value | provenance | | +| UrlRedirectCore.cs:13:44:13:48 | value : String | UrlRedirectCore.cs:19:44:19:48 | call to operator implicit conversion | provenance | | +| UrlRedirectCore.cs:13:44:13:48 | value : String | UrlRedirectCore.cs:25:46:25:50 | call to operator implicit conversion | provenance | | +| UrlRedirectCore.cs:13:44:13:48 | value : String | UrlRedirectCore.cs:31:66:31:70 | access to parameter value | provenance | | +| UrlRedirectCore.cs:13:44:13:48 | value : String | UrlRedirectCore.cs:34:49:34:53 | call to operator implicit conversion | provenance | | +| UrlRedirectCore.cs:13:44:13:48 | value : String | UrlRedirectCore.cs:37:69:37:73 | access to parameter value | provenance | | +| UrlRedirectCore.cs:13:44:13:48 | value : String | UrlRedirectCore.cs:40:39:40:53 | ... + ... | provenance | | +| UrlRedirectCore.cs:45:51:45:55 | value : String | UrlRedirectCore.cs:48:28:48:32 | access to parameter value | provenance | | +| UrlRedirectCore.cs:45:51:45:55 | value : String | UrlRedirectCore.cs:53:40:53:44 | access to parameter value : String | provenance | | +| UrlRedirectCore.cs:45:51:45:55 | value : String | UrlRedirectCore.cs:56:31:56:35 | access to parameter value | provenance | | +| UrlRedirectCore.cs:53:40:53:44 | access to parameter value : String | UrlRedirectCore.cs:53:32:53:45 | object creation of type Uri | provenance | | nodes | UrlRedirect.cs:13:31:13:53 | access to property QueryString : NameValueCollection | semmle.label | access to property QueryString : NameValueCollection | | UrlRedirect.cs:13:31:13:61 | access to indexer | semmle.label | access to indexer | diff --git a/csharp/ql/test/query-tests/Security Features/CWE-611/UntrustedDataInsecureXml.expected b/csharp/ql/test/query-tests/Security Features/CWE-611/UntrustedDataInsecureXml.expected index c6e463428a64..4a3a88b7a746 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-611/UntrustedDataInsecureXml.expected +++ b/csharp/ql/test/query-tests/Security Features/CWE-611/UntrustedDataInsecureXml.expected @@ -1,5 +1,5 @@ edges -| Test.cs:11:50:11:72 | access to property QueryString : NameValueCollection | Test.cs:11:50:11:84 | access to indexer | +| Test.cs:11:50:11:72 | access to property QueryString : NameValueCollection | Test.cs:11:50:11:84 | access to indexer | provenance | | nodes | Test.cs:11:50:11:72 | access to property QueryString : NameValueCollection | semmle.label | access to property QueryString : NameValueCollection | | Test.cs:11:50:11:84 | access to indexer | semmle.label | access to indexer | diff --git a/csharp/ql/test/query-tests/Security Features/CWE-643/StoredXPathInjection.expected b/csharp/ql/test/query-tests/Security Features/CWE-643/StoredXPathInjection.expected index 63235e25c927..daaca6c5d3a7 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-643/StoredXPathInjection.expected +++ b/csharp/ql/test/query-tests/Security Features/CWE-643/StoredXPathInjection.expected @@ -1,8 +1,8 @@ edges -| StoredXPathInjection.cs:22:39:22:65 | call to method GetString : String | StoredXPathInjection.cs:25:45:25:148 | ... + ... | -| StoredXPathInjection.cs:22:39:22:65 | call to method GetString : String | StoredXPathInjection.cs:28:41:28:144 | ... + ... | -| StoredXPathInjection.cs:23:39:23:65 | call to method GetString : String | StoredXPathInjection.cs:25:45:25:148 | ... + ... | -| StoredXPathInjection.cs:23:39:23:65 | call to method GetString : String | StoredXPathInjection.cs:28:41:28:144 | ... + ... | +| StoredXPathInjection.cs:22:39:22:65 | call to method GetString : String | StoredXPathInjection.cs:25:45:25:148 | ... + ... | provenance | | +| StoredXPathInjection.cs:22:39:22:65 | call to method GetString : String | StoredXPathInjection.cs:28:41:28:144 | ... + ... | provenance | | +| StoredXPathInjection.cs:23:39:23:65 | call to method GetString : String | StoredXPathInjection.cs:25:45:25:148 | ... + ... | provenance | | +| StoredXPathInjection.cs:23:39:23:65 | call to method GetString : String | StoredXPathInjection.cs:28:41:28:144 | ... + ... | provenance | | nodes | StoredXPathInjection.cs:22:39:22:65 | call to method GetString : String | semmle.label | call to method GetString : String | | StoredXPathInjection.cs:23:39:23:65 | call to method GetString : String | semmle.label | call to method GetString : String | diff --git a/csharp/ql/test/query-tests/Security Features/CWE-643/XPathInjection.expected b/csharp/ql/test/query-tests/Security Features/CWE-643/XPathInjection.expected index fa812c210eda..78652e8ea9d6 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-643/XPathInjection.expected +++ b/csharp/ql/test/query-tests/Security Features/CWE-643/XPathInjection.expected @@ -1,34 +1,34 @@ edges -| XPathInjection.cs:10:27:10:49 | access to property QueryString : NameValueCollection | XPathInjection.cs:10:27:10:61 | access to indexer : String | -| XPathInjection.cs:10:27:10:49 | access to property QueryString : NameValueCollection | XPathInjection.cs:16:33:16:33 | access to local variable s | -| XPathInjection.cs:10:27:10:49 | access to property QueryString : NameValueCollection | XPathInjection.cs:19:29:19:29 | access to local variable s | -| XPathInjection.cs:10:27:10:49 | access to property QueryString : NameValueCollection | XPathInjection.cs:28:20:28:20 | access to local variable s | -| XPathInjection.cs:10:27:10:49 | access to property QueryString : NameValueCollection | XPathInjection.cs:34:30:34:30 | access to local variable s | -| XPathInjection.cs:10:27:10:49 | access to property QueryString : NameValueCollection | XPathInjection.cs:40:21:40:21 | access to local variable s | -| XPathInjection.cs:10:27:10:49 | access to property QueryString : NameValueCollection | XPathInjection.cs:46:22:46:22 | access to local variable s | -| XPathInjection.cs:10:27:10:49 | access to property QueryString : NameValueCollection | XPathInjection.cs:52:21:52:21 | access to local variable s | -| XPathInjection.cs:10:27:10:61 | access to indexer : String | XPathInjection.cs:16:33:16:33 | access to local variable s | -| XPathInjection.cs:10:27:10:61 | access to indexer : String | XPathInjection.cs:19:29:19:29 | access to local variable s | -| XPathInjection.cs:10:27:10:61 | access to indexer : String | XPathInjection.cs:28:20:28:20 | access to local variable s | -| XPathInjection.cs:10:27:10:61 | access to indexer : String | XPathInjection.cs:34:30:34:30 | access to local variable s | -| XPathInjection.cs:10:27:10:61 | access to indexer : String | XPathInjection.cs:40:21:40:21 | access to local variable s | -| XPathInjection.cs:10:27:10:61 | access to indexer : String | XPathInjection.cs:46:22:46:22 | access to local variable s | -| XPathInjection.cs:10:27:10:61 | access to indexer : String | XPathInjection.cs:52:21:52:21 | access to local variable s | -| XPathInjection.cs:11:27:11:49 | access to property QueryString : NameValueCollection | XPathInjection.cs:11:27:11:61 | access to indexer : String | -| XPathInjection.cs:11:27:11:49 | access to property QueryString : NameValueCollection | XPathInjection.cs:16:33:16:33 | access to local variable s | -| XPathInjection.cs:11:27:11:49 | access to property QueryString : NameValueCollection | XPathInjection.cs:19:29:19:29 | access to local variable s | -| XPathInjection.cs:11:27:11:49 | access to property QueryString : NameValueCollection | XPathInjection.cs:28:20:28:20 | access to local variable s | -| XPathInjection.cs:11:27:11:49 | access to property QueryString : NameValueCollection | XPathInjection.cs:34:30:34:30 | access to local variable s | -| XPathInjection.cs:11:27:11:49 | access to property QueryString : NameValueCollection | XPathInjection.cs:40:21:40:21 | access to local variable s | -| XPathInjection.cs:11:27:11:49 | access to property QueryString : NameValueCollection | XPathInjection.cs:46:22:46:22 | access to local variable s | -| XPathInjection.cs:11:27:11:49 | access to property QueryString : NameValueCollection | XPathInjection.cs:52:21:52:21 | access to local variable s | -| XPathInjection.cs:11:27:11:61 | access to indexer : String | XPathInjection.cs:16:33:16:33 | access to local variable s | -| XPathInjection.cs:11:27:11:61 | access to indexer : String | XPathInjection.cs:19:29:19:29 | access to local variable s | -| XPathInjection.cs:11:27:11:61 | access to indexer : String | XPathInjection.cs:28:20:28:20 | access to local variable s | -| XPathInjection.cs:11:27:11:61 | access to indexer : String | XPathInjection.cs:34:30:34:30 | access to local variable s | -| XPathInjection.cs:11:27:11:61 | access to indexer : String | XPathInjection.cs:40:21:40:21 | access to local variable s | -| XPathInjection.cs:11:27:11:61 | access to indexer : String | XPathInjection.cs:46:22:46:22 | access to local variable s | -| XPathInjection.cs:11:27:11:61 | access to indexer : String | XPathInjection.cs:52:21:52:21 | access to local variable s | +| XPathInjection.cs:10:27:10:49 | access to property QueryString : NameValueCollection | XPathInjection.cs:10:27:10:61 | access to indexer : String | provenance | | +| XPathInjection.cs:10:27:10:49 | access to property QueryString : NameValueCollection | XPathInjection.cs:16:33:16:33 | access to local variable s | provenance | | +| XPathInjection.cs:10:27:10:49 | access to property QueryString : NameValueCollection | XPathInjection.cs:19:29:19:29 | access to local variable s | provenance | | +| XPathInjection.cs:10:27:10:49 | access to property QueryString : NameValueCollection | XPathInjection.cs:28:20:28:20 | access to local variable s | provenance | | +| XPathInjection.cs:10:27:10:49 | access to property QueryString : NameValueCollection | XPathInjection.cs:34:30:34:30 | access to local variable s | provenance | | +| XPathInjection.cs:10:27:10:49 | access to property QueryString : NameValueCollection | XPathInjection.cs:40:21:40:21 | access to local variable s | provenance | | +| XPathInjection.cs:10:27:10:49 | access to property QueryString : NameValueCollection | XPathInjection.cs:46:22:46:22 | access to local variable s | provenance | | +| XPathInjection.cs:10:27:10:49 | access to property QueryString : NameValueCollection | XPathInjection.cs:52:21:52:21 | access to local variable s | provenance | | +| XPathInjection.cs:10:27:10:61 | access to indexer : String | XPathInjection.cs:16:33:16:33 | access to local variable s | provenance | | +| XPathInjection.cs:10:27:10:61 | access to indexer : String | XPathInjection.cs:19:29:19:29 | access to local variable s | provenance | | +| XPathInjection.cs:10:27:10:61 | access to indexer : String | XPathInjection.cs:28:20:28:20 | access to local variable s | provenance | | +| XPathInjection.cs:10:27:10:61 | access to indexer : String | XPathInjection.cs:34:30:34:30 | access to local variable s | provenance | | +| XPathInjection.cs:10:27:10:61 | access to indexer : String | XPathInjection.cs:40:21:40:21 | access to local variable s | provenance | | +| XPathInjection.cs:10:27:10:61 | access to indexer : String | XPathInjection.cs:46:22:46:22 | access to local variable s | provenance | | +| XPathInjection.cs:10:27:10:61 | access to indexer : String | XPathInjection.cs:52:21:52:21 | access to local variable s | provenance | | +| XPathInjection.cs:11:27:11:49 | access to property QueryString : NameValueCollection | XPathInjection.cs:11:27:11:61 | access to indexer : String | provenance | | +| XPathInjection.cs:11:27:11:49 | access to property QueryString : NameValueCollection | XPathInjection.cs:16:33:16:33 | access to local variable s | provenance | | +| XPathInjection.cs:11:27:11:49 | access to property QueryString : NameValueCollection | XPathInjection.cs:19:29:19:29 | access to local variable s | provenance | | +| XPathInjection.cs:11:27:11:49 | access to property QueryString : NameValueCollection | XPathInjection.cs:28:20:28:20 | access to local variable s | provenance | | +| XPathInjection.cs:11:27:11:49 | access to property QueryString : NameValueCollection | XPathInjection.cs:34:30:34:30 | access to local variable s | provenance | | +| XPathInjection.cs:11:27:11:49 | access to property QueryString : NameValueCollection | XPathInjection.cs:40:21:40:21 | access to local variable s | provenance | | +| XPathInjection.cs:11:27:11:49 | access to property QueryString : NameValueCollection | XPathInjection.cs:46:22:46:22 | access to local variable s | provenance | | +| XPathInjection.cs:11:27:11:49 | access to property QueryString : NameValueCollection | XPathInjection.cs:52:21:52:21 | access to local variable s | provenance | | +| XPathInjection.cs:11:27:11:61 | access to indexer : String | XPathInjection.cs:16:33:16:33 | access to local variable s | provenance | | +| XPathInjection.cs:11:27:11:61 | access to indexer : String | XPathInjection.cs:19:29:19:29 | access to local variable s | provenance | | +| XPathInjection.cs:11:27:11:61 | access to indexer : String | XPathInjection.cs:28:20:28:20 | access to local variable s | provenance | | +| XPathInjection.cs:11:27:11:61 | access to indexer : String | XPathInjection.cs:34:30:34:30 | access to local variable s | provenance | | +| XPathInjection.cs:11:27:11:61 | access to indexer : String | XPathInjection.cs:40:21:40:21 | access to local variable s | provenance | | +| XPathInjection.cs:11:27:11:61 | access to indexer : String | XPathInjection.cs:46:22:46:22 | access to local variable s | provenance | | +| XPathInjection.cs:11:27:11:61 | access to indexer : String | XPathInjection.cs:52:21:52:21 | access to local variable s | provenance | | nodes | XPathInjection.cs:10:27:10:49 | access to property QueryString : NameValueCollection | semmle.label | access to property QueryString : NameValueCollection | | XPathInjection.cs:10:27:10:61 | access to indexer : String | semmle.label | access to indexer : String | diff --git a/csharp/ql/test/query-tests/Security Features/CWE-730/ReDoS/ReDoS.expected b/csharp/ql/test/query-tests/Security Features/CWE-730/ReDoS/ReDoS.expected index 8f378704ce54..ed14c44e2af4 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-730/ReDoS/ReDoS.expected +++ b/csharp/ql/test/query-tests/Security Features/CWE-730/ReDoS/ReDoS.expected @@ -1,15 +1,15 @@ edges -| ExponentialRegex.cs:11:28:11:50 | access to property QueryString : NameValueCollection | ExponentialRegex.cs:11:28:11:63 | access to indexer : String | -| ExponentialRegex.cs:11:28:11:50 | access to property QueryString : NameValueCollection | ExponentialRegex.cs:15:40:15:48 | access to local variable userInput | -| ExponentialRegex.cs:11:28:11:50 | access to property QueryString : NameValueCollection | ExponentialRegex.cs:16:42:16:50 | access to local variable userInput | -| ExponentialRegex.cs:11:28:11:50 | access to property QueryString : NameValueCollection | ExponentialRegex.cs:19:139:19:147 | access to local variable userInput | -| ExponentialRegex.cs:11:28:11:50 | access to property QueryString : NameValueCollection | ExponentialRegex.cs:22:43:22:51 | access to local variable userInput | -| ExponentialRegex.cs:11:28:11:50 | access to property QueryString : NameValueCollection | ExponentialRegex.cs:24:21:24:29 | access to local variable userInput | -| ExponentialRegex.cs:11:28:11:63 | access to indexer : String | ExponentialRegex.cs:15:40:15:48 | access to local variable userInput | -| ExponentialRegex.cs:11:28:11:63 | access to indexer : String | ExponentialRegex.cs:16:42:16:50 | access to local variable userInput | -| ExponentialRegex.cs:11:28:11:63 | access to indexer : String | ExponentialRegex.cs:19:139:19:147 | access to local variable userInput | -| ExponentialRegex.cs:11:28:11:63 | access to indexer : String | ExponentialRegex.cs:22:43:22:51 | access to local variable userInput | -| ExponentialRegex.cs:11:28:11:63 | access to indexer : String | ExponentialRegex.cs:24:21:24:29 | access to local variable userInput | +| ExponentialRegex.cs:11:28:11:50 | access to property QueryString : NameValueCollection | ExponentialRegex.cs:11:28:11:63 | access to indexer : String | provenance | | +| ExponentialRegex.cs:11:28:11:50 | access to property QueryString : NameValueCollection | ExponentialRegex.cs:15:40:15:48 | access to local variable userInput | provenance | | +| ExponentialRegex.cs:11:28:11:50 | access to property QueryString : NameValueCollection | ExponentialRegex.cs:16:42:16:50 | access to local variable userInput | provenance | | +| ExponentialRegex.cs:11:28:11:50 | access to property QueryString : NameValueCollection | ExponentialRegex.cs:19:139:19:147 | access to local variable userInput | provenance | | +| ExponentialRegex.cs:11:28:11:50 | access to property QueryString : NameValueCollection | ExponentialRegex.cs:22:43:22:51 | access to local variable userInput | provenance | | +| ExponentialRegex.cs:11:28:11:50 | access to property QueryString : NameValueCollection | ExponentialRegex.cs:24:21:24:29 | access to local variable userInput | provenance | | +| ExponentialRegex.cs:11:28:11:63 | access to indexer : String | ExponentialRegex.cs:15:40:15:48 | access to local variable userInput | provenance | | +| ExponentialRegex.cs:11:28:11:63 | access to indexer : String | ExponentialRegex.cs:16:42:16:50 | access to local variable userInput | provenance | | +| ExponentialRegex.cs:11:28:11:63 | access to indexer : String | ExponentialRegex.cs:19:139:19:147 | access to local variable userInput | provenance | | +| ExponentialRegex.cs:11:28:11:63 | access to indexer : String | ExponentialRegex.cs:22:43:22:51 | access to local variable userInput | provenance | | +| ExponentialRegex.cs:11:28:11:63 | access to indexer : String | ExponentialRegex.cs:24:21:24:29 | access to local variable userInput | provenance | | nodes | ExponentialRegex.cs:11:28:11:50 | access to property QueryString : NameValueCollection | semmle.label | access to property QueryString : NameValueCollection | | ExponentialRegex.cs:11:28:11:63 | access to indexer : String | semmle.label | access to indexer : String | diff --git a/csharp/ql/test/query-tests/Security Features/CWE-730/ReDoSGlobalTimeout/ReDoS.expected b/csharp/ql/test/query-tests/Security Features/CWE-730/ReDoSGlobalTimeout/ReDoS.expected index 100f4fc61cc5..989d0648f484 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-730/ReDoSGlobalTimeout/ReDoS.expected +++ b/csharp/ql/test/query-tests/Security Features/CWE-730/ReDoSGlobalTimeout/ReDoS.expected @@ -1,7 +1,7 @@ edges -| ExponentialRegex.cs:13:28:13:50 | access to property QueryString : NameValueCollection | ExponentialRegex.cs:13:28:13:63 | access to indexer : String | -| ExponentialRegex.cs:13:28:13:50 | access to property QueryString : NameValueCollection | ExponentialRegex.cs:16:40:16:48 | access to local variable userInput | -| ExponentialRegex.cs:13:28:13:63 | access to indexer : String | ExponentialRegex.cs:16:40:16:48 | access to local variable userInput | +| ExponentialRegex.cs:13:28:13:50 | access to property QueryString : NameValueCollection | ExponentialRegex.cs:13:28:13:63 | access to indexer : String | provenance | | +| ExponentialRegex.cs:13:28:13:50 | access to property QueryString : NameValueCollection | ExponentialRegex.cs:16:40:16:48 | access to local variable userInput | provenance | | +| ExponentialRegex.cs:13:28:13:63 | access to indexer : String | ExponentialRegex.cs:16:40:16:48 | access to local variable userInput | provenance | | nodes | ExponentialRegex.cs:13:28:13:50 | access to property QueryString : NameValueCollection | semmle.label | access to property QueryString : NameValueCollection | | ExponentialRegex.cs:13:28:13:63 | access to indexer : String | semmle.label | access to indexer : String | diff --git a/csharp/ql/test/query-tests/Security Features/CWE-730/RegexInjection/RegexInjection.expected b/csharp/ql/test/query-tests/Security Features/CWE-730/RegexInjection/RegexInjection.expected index 01b1dcfb67f9..7fa9f7428f43 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-730/RegexInjection/RegexInjection.expected +++ b/csharp/ql/test/query-tests/Security Features/CWE-730/RegexInjection/RegexInjection.expected @@ -1,7 +1,7 @@ edges -| RegexInjection.cs:10:24:10:46 | access to property QueryString : NameValueCollection | RegexInjection.cs:10:24:10:55 | access to indexer : String | -| RegexInjection.cs:10:24:10:46 | access to property QueryString : NameValueCollection | RegexInjection.cs:14:19:14:23 | access to local variable regex | -| RegexInjection.cs:10:24:10:55 | access to indexer : String | RegexInjection.cs:14:19:14:23 | access to local variable regex | +| RegexInjection.cs:10:24:10:46 | access to property QueryString : NameValueCollection | RegexInjection.cs:10:24:10:55 | access to indexer : String | provenance | | +| RegexInjection.cs:10:24:10:46 | access to property QueryString : NameValueCollection | RegexInjection.cs:14:19:14:23 | access to local variable regex | provenance | | +| RegexInjection.cs:10:24:10:55 | access to indexer : String | RegexInjection.cs:14:19:14:23 | access to local variable regex | provenance | | nodes | RegexInjection.cs:10:24:10:46 | access to property QueryString : NameValueCollection | semmle.label | access to property QueryString : NameValueCollection | | RegexInjection.cs:10:24:10:55 | access to indexer : String | semmle.label | access to indexer : String | diff --git a/csharp/ql/test/query-tests/Security Features/CWE-798/HardcodedCredentials.expected b/csharp/ql/test/query-tests/Security Features/CWE-798/HardcodedCredentials.expected index 4dc81537e206..5c707971384e 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-798/HardcodedCredentials.expected +++ b/csharp/ql/test/query-tests/Security Features/CWE-798/HardcodedCredentials.expected @@ -1,5 +1,5 @@ edges -| HardcodedCredentials.cs:48:30:48:60 | array creation of type Byte[] : Byte[] | HardcodedCredentials.cs:51:13:51:23 | access to local variable rawCertData | +| HardcodedCredentials.cs:48:30:48:60 | array creation of type Byte[] : Byte[] | HardcodedCredentials.cs:51:13:51:23 | access to local variable rawCertData | provenance | | nodes | HardcodedCredentials.cs:16:25:16:36 | "myPa55word" | semmle.label | "myPa55word" | | HardcodedCredentials.cs:32:19:32:28 | "username" | semmle.label | "username" | diff --git a/csharp/ql/test/query-tests/Security Features/CWE-807/ConditionalBypass.expected b/csharp/ql/test/query-tests/Security Features/CWE-807/ConditionalBypass.expected index 3f985cd5eff9..86f4167bd757 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-807/ConditionalBypass.expected +++ b/csharp/ql/test/query-tests/Security Features/CWE-807/ConditionalBypass.expected @@ -1,24 +1,24 @@ edges -| ConditionalBypass.cs:12:26:12:48 | access to property QueryString : NameValueCollection | ConditionalBypass.cs:12:26:12:59 | access to indexer : String | -| ConditionalBypass.cs:12:26:12:48 | access to property QueryString : NameValueCollection | ConditionalBypass.cs:16:13:16:30 | ... == ... | -| ConditionalBypass.cs:12:26:12:59 | access to indexer : String | ConditionalBypass.cs:16:13:16:30 | ... == ... | -| ConditionalBypass.cs:19:34:19:52 | access to property Cookies : HttpCookieCollection | ConditionalBypass.cs:22:13:22:23 | access to local variable adminCookie : HttpCookie | -| ConditionalBypass.cs:19:34:19:52 | access to property Cookies : HttpCookieCollection | ConditionalBypass.cs:27:13:27:23 | access to local variable adminCookie : HttpCookie | -| ConditionalBypass.cs:22:13:22:23 | access to local variable adminCookie : HttpCookie | ConditionalBypass.cs:22:13:22:29 | access to property Value : String | -| ConditionalBypass.cs:22:13:22:29 | access to property Value : String | ConditionalBypass.cs:22:13:22:45 | call to method Equals | -| ConditionalBypass.cs:27:13:27:23 | access to local variable adminCookie : HttpCookie | ConditionalBypass.cs:27:13:27:29 | access to property Value : String | -| ConditionalBypass.cs:27:13:27:29 | access to property Value : String | ConditionalBypass.cs:27:13:27:40 | ... == ... | -| ConditionalBypass.cs:42:32:42:66 | call to method GetHostByAddress : IPHostEntry | ConditionalBypass.cs:44:13:44:20 | access to local variable hostInfo : IPHostEntry | -| ConditionalBypass.cs:42:32:42:66 | call to method GetHostByAddress : IPHostEntry | ConditionalBypass.cs:49:13:49:20 | access to local variable hostInfo : IPHostEntry | -| ConditionalBypass.cs:44:13:44:20 | access to local variable hostInfo : IPHostEntry | ConditionalBypass.cs:44:13:44:29 | access to property HostName : String | -| ConditionalBypass.cs:44:13:44:29 | access to property HostName : String | ConditionalBypass.cs:44:13:44:46 | ... == ... | -| ConditionalBypass.cs:49:13:49:20 | access to local variable hostInfo : IPHostEntry | ConditionalBypass.cs:49:13:49:29 | access to property HostName | -| ConditionalBypass.cs:70:34:70:52 | access to property Cookies : HttpCookieCollection | ConditionalBypass.cs:72:13:72:23 | access to local variable adminCookie : HttpCookie | -| ConditionalBypass.cs:72:13:72:23 | access to local variable adminCookie : HttpCookie | ConditionalBypass.cs:72:13:72:29 | access to property Value : String | -| ConditionalBypass.cs:72:13:72:29 | access to property Value : String | ConditionalBypass.cs:72:13:72:40 | ... == ... | -| ConditionalBypass.cs:83:34:83:52 | access to property Cookies : HttpCookieCollection | ConditionalBypass.cs:84:13:84:23 | access to local variable adminCookie : HttpCookie | -| ConditionalBypass.cs:84:13:84:23 | access to local variable adminCookie : HttpCookie | ConditionalBypass.cs:84:13:84:29 | access to property Value : String | -| ConditionalBypass.cs:84:13:84:29 | access to property Value : String | ConditionalBypass.cs:84:13:84:40 | ... == ... | +| ConditionalBypass.cs:12:26:12:48 | access to property QueryString : NameValueCollection | ConditionalBypass.cs:12:26:12:59 | access to indexer : String | provenance | | +| ConditionalBypass.cs:12:26:12:48 | access to property QueryString : NameValueCollection | ConditionalBypass.cs:16:13:16:30 | ... == ... | provenance | | +| ConditionalBypass.cs:12:26:12:59 | access to indexer : String | ConditionalBypass.cs:16:13:16:30 | ... == ... | provenance | | +| ConditionalBypass.cs:19:34:19:52 | access to property Cookies : HttpCookieCollection | ConditionalBypass.cs:22:13:22:23 | access to local variable adminCookie : HttpCookie | provenance | | +| ConditionalBypass.cs:19:34:19:52 | access to property Cookies : HttpCookieCollection | ConditionalBypass.cs:27:13:27:23 | access to local variable adminCookie : HttpCookie | provenance | | +| ConditionalBypass.cs:22:13:22:23 | access to local variable adminCookie : HttpCookie | ConditionalBypass.cs:22:13:22:29 | access to property Value : String | provenance | | +| ConditionalBypass.cs:22:13:22:29 | access to property Value : String | ConditionalBypass.cs:22:13:22:45 | call to method Equals | provenance | | +| ConditionalBypass.cs:27:13:27:23 | access to local variable adminCookie : HttpCookie | ConditionalBypass.cs:27:13:27:29 | access to property Value : String | provenance | | +| ConditionalBypass.cs:27:13:27:29 | access to property Value : String | ConditionalBypass.cs:27:13:27:40 | ... == ... | provenance | | +| ConditionalBypass.cs:42:32:42:66 | call to method GetHostByAddress : IPHostEntry | ConditionalBypass.cs:44:13:44:20 | access to local variable hostInfo : IPHostEntry | provenance | | +| ConditionalBypass.cs:42:32:42:66 | call to method GetHostByAddress : IPHostEntry | ConditionalBypass.cs:49:13:49:20 | access to local variable hostInfo : IPHostEntry | provenance | | +| ConditionalBypass.cs:44:13:44:20 | access to local variable hostInfo : IPHostEntry | ConditionalBypass.cs:44:13:44:29 | access to property HostName : String | provenance | | +| ConditionalBypass.cs:44:13:44:29 | access to property HostName : String | ConditionalBypass.cs:44:13:44:46 | ... == ... | provenance | | +| ConditionalBypass.cs:49:13:49:20 | access to local variable hostInfo : IPHostEntry | ConditionalBypass.cs:49:13:49:29 | access to property HostName | provenance | | +| ConditionalBypass.cs:70:34:70:52 | access to property Cookies : HttpCookieCollection | ConditionalBypass.cs:72:13:72:23 | access to local variable adminCookie : HttpCookie | provenance | | +| ConditionalBypass.cs:72:13:72:23 | access to local variable adminCookie : HttpCookie | ConditionalBypass.cs:72:13:72:29 | access to property Value : String | provenance | | +| ConditionalBypass.cs:72:13:72:29 | access to property Value : String | ConditionalBypass.cs:72:13:72:40 | ... == ... | provenance | | +| ConditionalBypass.cs:83:34:83:52 | access to property Cookies : HttpCookieCollection | ConditionalBypass.cs:84:13:84:23 | access to local variable adminCookie : HttpCookie | provenance | | +| ConditionalBypass.cs:84:13:84:23 | access to local variable adminCookie : HttpCookie | ConditionalBypass.cs:84:13:84:29 | access to property Value : String | provenance | | +| ConditionalBypass.cs:84:13:84:29 | access to property Value : String | ConditionalBypass.cs:84:13:84:40 | ... == ... | provenance | | nodes | ConditionalBypass.cs:12:26:12:48 | access to property QueryString : NameValueCollection | semmle.label | access to property QueryString : NameValueCollection | | ConditionalBypass.cs:12:26:12:59 | access to indexer : String | semmle.label | access to indexer : String | diff --git a/csharp/ql/test/query-tests/Security Features/CWE-838/InappropriateEncoding.expected b/csharp/ql/test/query-tests/Security Features/CWE-838/InappropriateEncoding.expected index 2f33a932e3d8..4958966f788f 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-838/InappropriateEncoding.expected +++ b/csharp/ql/test/query-tests/Security Features/CWE-838/InappropriateEncoding.expected @@ -1,14 +1,14 @@ edges -| HtmlEncode.cs:10:40:10:65 | call to method UrlEncode : String | HtmlEncode.cs:10:28:10:65 | ... + ... | -| InappropriateEncoding.cs:13:28:13:40 | call to method Encode : String | InappropriateEncoding.cs:18:46:18:51 | access to local variable query1 | -| InappropriateEncoding.cs:34:28:34:55 | call to method UrlEncode : String | InappropriateEncoding.cs:35:32:35:43 | access to local variable encodedValue | -| InappropriateEncoding.cs:34:28:34:55 | call to method UrlEncode : String | InappropriateEncoding.cs:36:22:36:59 | ... + ... | -| InappropriateEncoding.cs:34:28:34:55 | call to method UrlEncode : String | InappropriateEncoding.cs:37:59:37:70 | access to local variable encodedValue : String | -| InappropriateEncoding.cs:37:59:37:70 | access to local variable encodedValue : String | InappropriateEncoding.cs:37:22:37:71 | call to method Format | -| InappropriateEncoding.cs:55:28:55:56 | call to method HtmlEncode : String | InappropriateEncoding.cs:56:31:56:42 | access to local variable encodedValue | -| InappropriateEncoding.cs:66:16:66:42 | call to method Replace : String | InappropriateEncoding.cs:13:28:13:40 | call to method Encode : String | -| SqlEncode.cs:14:62:14:87 | call to method Replace : String | SqlEncode.cs:15:46:15:50 | access to local variable query | -| UrlEncode.cs:10:43:10:69 | call to method HtmlEncode : String | UrlEncode.cs:10:31:10:69 | ... + ... | +| HtmlEncode.cs:10:40:10:65 | call to method UrlEncode : String | HtmlEncode.cs:10:28:10:65 | ... + ... | provenance | | +| InappropriateEncoding.cs:13:28:13:40 | call to method Encode : String | InappropriateEncoding.cs:18:46:18:51 | access to local variable query1 | provenance | | +| InappropriateEncoding.cs:34:28:34:55 | call to method UrlEncode : String | InappropriateEncoding.cs:35:32:35:43 | access to local variable encodedValue | provenance | | +| InappropriateEncoding.cs:34:28:34:55 | call to method UrlEncode : String | InappropriateEncoding.cs:36:22:36:59 | ... + ... | provenance | | +| InappropriateEncoding.cs:34:28:34:55 | call to method UrlEncode : String | InappropriateEncoding.cs:37:59:37:70 | access to local variable encodedValue : String | provenance | | +| InappropriateEncoding.cs:37:59:37:70 | access to local variable encodedValue : String | InappropriateEncoding.cs:37:22:37:71 | call to method Format | provenance | | +| InappropriateEncoding.cs:55:28:55:56 | call to method HtmlEncode : String | InappropriateEncoding.cs:56:31:56:42 | access to local variable encodedValue | provenance | | +| InappropriateEncoding.cs:66:16:66:42 | call to method Replace : String | InappropriateEncoding.cs:13:28:13:40 | call to method Encode : String | provenance | | +| SqlEncode.cs:14:62:14:87 | call to method Replace : String | SqlEncode.cs:15:46:15:50 | access to local variable query | provenance | | +| UrlEncode.cs:10:43:10:69 | call to method HtmlEncode : String | UrlEncode.cs:10:31:10:69 | ... + ... | provenance | | nodes | HtmlEncode.cs:10:28:10:65 | ... + ... | semmle.label | ... + ... | | HtmlEncode.cs:10:40:10:65 | call to method UrlEncode : String | semmle.label | call to method UrlEncode : String | diff --git a/go/ql/test/experimental/CWE-090/LDAPInjection.expected b/go/ql/test/experimental/CWE-090/LDAPInjection.expected index 8e1165fab60f..2815643c014f 100644 --- a/go/ql/test/experimental/CWE-090/LDAPInjection.expected +++ b/go/ql/test/experimental/CWE-090/LDAPInjection.expected @@ -1,24 +1,24 @@ edges -| LDAPInjection.go:57:15:57:29 | call to UserAgent | LDAPInjection.go:59:3:59:11 | untrusted | -| LDAPInjection.go:57:15:57:29 | call to UserAgent | LDAPInjection.go:61:3:61:51 | ...+... | -| LDAPInjection.go:57:15:57:29 | call to UserAgent | LDAPInjection.go:62:3:62:33 | slice literal | -| LDAPInjection.go:57:15:57:29 | call to UserAgent | LDAPInjection.go:62:24:62:32 | untrusted | -| LDAPInjection.go:57:15:57:29 | call to UserAgent | LDAPInjection.go:66:3:66:11 | untrusted | -| LDAPInjection.go:57:15:57:29 | call to UserAgent | LDAPInjection.go:68:3:68:51 | ...+... | -| LDAPInjection.go:57:15:57:29 | call to UserAgent | LDAPInjection.go:69:3:69:33 | slice literal | -| LDAPInjection.go:57:15:57:29 | call to UserAgent | LDAPInjection.go:69:24:69:32 | untrusted | -| LDAPInjection.go:57:15:57:29 | call to UserAgent | LDAPInjection.go:73:3:73:11 | untrusted | -| LDAPInjection.go:57:15:57:29 | call to UserAgent | LDAPInjection.go:75:3:75:51 | ...+... | -| LDAPInjection.go:57:15:57:29 | call to UserAgent | LDAPInjection.go:76:3:76:33 | slice literal | -| LDAPInjection.go:57:15:57:29 | call to UserAgent | LDAPInjection.go:76:24:76:32 | untrusted | -| LDAPInjection.go:57:15:57:29 | call to UserAgent | LDAPInjection.go:80:22:80:30 | untrusted | -| LDAPInjection.go:57:15:57:29 | call to UserAgent | LDAPInjection.go:81:25:81:33 | untrusted | -| LDAPInjection.go:62:3:62:33 | slice literal [array] | LDAPInjection.go:62:3:62:33 | slice literal | -| LDAPInjection.go:62:24:62:32 | untrusted | LDAPInjection.go:62:3:62:33 | slice literal [array] | -| LDAPInjection.go:69:3:69:33 | slice literal [array] | LDAPInjection.go:69:3:69:33 | slice literal | -| LDAPInjection.go:69:24:69:32 | untrusted | LDAPInjection.go:69:3:69:33 | slice literal [array] | -| LDAPInjection.go:76:3:76:33 | slice literal [array] | LDAPInjection.go:76:3:76:33 | slice literal | -| LDAPInjection.go:76:24:76:32 | untrusted | LDAPInjection.go:76:3:76:33 | slice literal [array] | +| LDAPInjection.go:57:15:57:29 | call to UserAgent | LDAPInjection.go:59:3:59:11 | untrusted | provenance | | +| LDAPInjection.go:57:15:57:29 | call to UserAgent | LDAPInjection.go:61:3:61:51 | ...+... | provenance | | +| LDAPInjection.go:57:15:57:29 | call to UserAgent | LDAPInjection.go:62:3:62:33 | slice literal | provenance | | +| LDAPInjection.go:57:15:57:29 | call to UserAgent | LDAPInjection.go:62:24:62:32 | untrusted | provenance | | +| LDAPInjection.go:57:15:57:29 | call to UserAgent | LDAPInjection.go:66:3:66:11 | untrusted | provenance | | +| LDAPInjection.go:57:15:57:29 | call to UserAgent | LDAPInjection.go:68:3:68:51 | ...+... | provenance | | +| LDAPInjection.go:57:15:57:29 | call to UserAgent | LDAPInjection.go:69:3:69:33 | slice literal | provenance | | +| LDAPInjection.go:57:15:57:29 | call to UserAgent | LDAPInjection.go:69:24:69:32 | untrusted | provenance | | +| LDAPInjection.go:57:15:57:29 | call to UserAgent | LDAPInjection.go:73:3:73:11 | untrusted | provenance | | +| LDAPInjection.go:57:15:57:29 | call to UserAgent | LDAPInjection.go:75:3:75:51 | ...+... | provenance | | +| LDAPInjection.go:57:15:57:29 | call to UserAgent | LDAPInjection.go:76:3:76:33 | slice literal | provenance | | +| LDAPInjection.go:57:15:57:29 | call to UserAgent | LDAPInjection.go:76:24:76:32 | untrusted | provenance | | +| LDAPInjection.go:57:15:57:29 | call to UserAgent | LDAPInjection.go:80:22:80:30 | untrusted | provenance | | +| LDAPInjection.go:57:15:57:29 | call to UserAgent | LDAPInjection.go:81:25:81:33 | untrusted | provenance | | +| LDAPInjection.go:62:3:62:33 | slice literal [array] | LDAPInjection.go:62:3:62:33 | slice literal | provenance | | +| LDAPInjection.go:62:24:62:32 | untrusted | LDAPInjection.go:62:3:62:33 | slice literal [array] | provenance | | +| LDAPInjection.go:69:3:69:33 | slice literal [array] | LDAPInjection.go:69:3:69:33 | slice literal | provenance | | +| LDAPInjection.go:69:24:69:32 | untrusted | LDAPInjection.go:69:3:69:33 | slice literal [array] | provenance | | +| LDAPInjection.go:76:3:76:33 | slice literal [array] | LDAPInjection.go:76:3:76:33 | slice literal | provenance | | +| LDAPInjection.go:76:24:76:32 | untrusted | LDAPInjection.go:76:3:76:33 | slice literal [array] | provenance | | nodes | LDAPInjection.go:57:15:57:29 | call to UserAgent | semmle.label | call to UserAgent | | LDAPInjection.go:59:3:59:11 | untrusted | semmle.label | untrusted | diff --git a/go/ql/test/experimental/CWE-1004/CookieWithoutHttpOnly.expected b/go/ql/test/experimental/CWE-1004/CookieWithoutHttpOnly.expected index c7618b3108fa..e00daf0294f6 100644 --- a/go/ql/test/experimental/CWE-1004/CookieWithoutHttpOnly.expected +++ b/go/ql/test/experimental/CWE-1004/CookieWithoutHttpOnly.expected @@ -1,412 +1,412 @@ edges -| CookieWithoutHttpOnly.go:11:7:14:2 | struct literal | CookieWithoutHttpOnly.go:15:20:15:21 | &... | -| CookieWithoutHttpOnly.go:11:7:14:2 | struct literal | CookieWithoutHttpOnly.go:15:20:15:21 | &... | -| CookieWithoutHttpOnly.go:11:7:14:2 | struct literal | CookieWithoutHttpOnly.go:15:21:15:21 | c | -| CookieWithoutHttpOnly.go:12:10:12:18 | "session" | CookieWithoutHttpOnly.go:11:7:14:2 | struct literal | -| CookieWithoutHttpOnly.go:15:20:15:21 | &... | CookieWithoutHttpOnly.go:15:20:15:21 | &... | -| CookieWithoutHttpOnly.go:15:20:15:21 | &... | CookieWithoutHttpOnly.go:15:20:15:21 | &... | -| CookieWithoutHttpOnly.go:15:20:15:21 | &... | CookieWithoutHttpOnly.go:15:21:15:21 | c | -| CookieWithoutHttpOnly.go:15:20:15:21 | &... [pointer] | CookieWithoutHttpOnly.go:15:20:15:21 | &... | -| CookieWithoutHttpOnly.go:15:20:15:21 | &... [pointer] | CookieWithoutHttpOnly.go:15:20:15:21 | &... | -| CookieWithoutHttpOnly.go:15:20:15:21 | &... [pointer] | CookieWithoutHttpOnly.go:15:21:15:21 | c | -| CookieWithoutHttpOnly.go:15:21:15:21 | c | CookieWithoutHttpOnly.go:15:20:15:21 | &... [pointer] | -| CookieWithoutHttpOnly.go:19:7:23:2 | struct literal | CookieWithoutHttpOnly.go:24:20:24:21 | &... | -| CookieWithoutHttpOnly.go:19:7:23:2 | struct literal | CookieWithoutHttpOnly.go:24:20:24:21 | &... | -| CookieWithoutHttpOnly.go:19:7:23:2 | struct literal | CookieWithoutHttpOnly.go:24:20:24:21 | &... | -| CookieWithoutHttpOnly.go:19:7:23:2 | struct literal | CookieWithoutHttpOnly.go:24:20:24:21 | &... | -| CookieWithoutHttpOnly.go:19:7:23:2 | struct literal | CookieWithoutHttpOnly.go:24:21:24:21 | c | -| CookieWithoutHttpOnly.go:19:7:23:2 | struct literal | CookieWithoutHttpOnly.go:24:21:24:21 | c | -| CookieWithoutHttpOnly.go:20:13:20:21 | "session" | CookieWithoutHttpOnly.go:19:7:23:2 | struct literal | -| CookieWithoutHttpOnly.go:22:13:22:17 | false | CookieWithoutHttpOnly.go:19:7:23:2 | struct literal | -| CookieWithoutHttpOnly.go:24:20:24:21 | &... | CookieWithoutHttpOnly.go:24:20:24:21 | &... | -| CookieWithoutHttpOnly.go:24:20:24:21 | &... | CookieWithoutHttpOnly.go:24:20:24:21 | &... | -| CookieWithoutHttpOnly.go:24:20:24:21 | &... | CookieWithoutHttpOnly.go:24:20:24:21 | &... | -| CookieWithoutHttpOnly.go:24:20:24:21 | &... | CookieWithoutHttpOnly.go:24:20:24:21 | &... | -| CookieWithoutHttpOnly.go:24:20:24:21 | &... | CookieWithoutHttpOnly.go:24:21:24:21 | c | -| CookieWithoutHttpOnly.go:24:20:24:21 | &... | CookieWithoutHttpOnly.go:24:21:24:21 | c | -| CookieWithoutHttpOnly.go:24:20:24:21 | &... [pointer] | CookieWithoutHttpOnly.go:24:20:24:21 | &... | -| CookieWithoutHttpOnly.go:24:20:24:21 | &... [pointer] | CookieWithoutHttpOnly.go:24:20:24:21 | &... | -| CookieWithoutHttpOnly.go:24:20:24:21 | &... [pointer] | CookieWithoutHttpOnly.go:24:20:24:21 | &... | -| CookieWithoutHttpOnly.go:24:20:24:21 | &... [pointer] | CookieWithoutHttpOnly.go:24:20:24:21 | &... | -| CookieWithoutHttpOnly.go:24:20:24:21 | &... [pointer] | CookieWithoutHttpOnly.go:24:21:24:21 | c | -| CookieWithoutHttpOnly.go:24:20:24:21 | &... [pointer] | CookieWithoutHttpOnly.go:24:21:24:21 | c | -| CookieWithoutHttpOnly.go:24:21:24:21 | c | CookieWithoutHttpOnly.go:24:20:24:21 | &... [pointer] | -| CookieWithoutHttpOnly.go:24:21:24:21 | c | CookieWithoutHttpOnly.go:24:20:24:21 | &... [pointer] | -| CookieWithoutHttpOnly.go:28:7:32:2 | struct literal | CookieWithoutHttpOnly.go:33:20:33:21 | &... | -| CookieWithoutHttpOnly.go:28:7:32:2 | struct literal | CookieWithoutHttpOnly.go:33:20:33:21 | &... | -| CookieWithoutHttpOnly.go:28:7:32:2 | struct literal | CookieWithoutHttpOnly.go:33:20:33:21 | &... | -| CookieWithoutHttpOnly.go:28:7:32:2 | struct literal | CookieWithoutHttpOnly.go:33:20:33:21 | &... | -| CookieWithoutHttpOnly.go:28:7:32:2 | struct literal | CookieWithoutHttpOnly.go:33:21:33:21 | c | -| CookieWithoutHttpOnly.go:28:7:32:2 | struct literal | CookieWithoutHttpOnly.go:33:21:33:21 | c | -| CookieWithoutHttpOnly.go:29:13:29:21 | "session" | CookieWithoutHttpOnly.go:28:7:32:2 | struct literal | -| CookieWithoutHttpOnly.go:31:13:31:16 | true | CookieWithoutHttpOnly.go:28:7:32:2 | struct literal | -| CookieWithoutHttpOnly.go:33:20:33:21 | &... | CookieWithoutHttpOnly.go:33:20:33:21 | &... | -| CookieWithoutHttpOnly.go:33:20:33:21 | &... | CookieWithoutHttpOnly.go:33:20:33:21 | &... | -| CookieWithoutHttpOnly.go:33:20:33:21 | &... | CookieWithoutHttpOnly.go:33:20:33:21 | &... | -| CookieWithoutHttpOnly.go:33:20:33:21 | &... | CookieWithoutHttpOnly.go:33:20:33:21 | &... | -| CookieWithoutHttpOnly.go:33:20:33:21 | &... | CookieWithoutHttpOnly.go:33:21:33:21 | c | -| CookieWithoutHttpOnly.go:33:20:33:21 | &... | CookieWithoutHttpOnly.go:33:21:33:21 | c | -| CookieWithoutHttpOnly.go:33:20:33:21 | &... [pointer] | CookieWithoutHttpOnly.go:33:20:33:21 | &... | -| CookieWithoutHttpOnly.go:33:20:33:21 | &... [pointer] | CookieWithoutHttpOnly.go:33:20:33:21 | &... | -| CookieWithoutHttpOnly.go:33:20:33:21 | &... [pointer] | CookieWithoutHttpOnly.go:33:20:33:21 | &... | -| CookieWithoutHttpOnly.go:33:20:33:21 | &... [pointer] | CookieWithoutHttpOnly.go:33:20:33:21 | &... | -| CookieWithoutHttpOnly.go:33:20:33:21 | &... [pointer] | CookieWithoutHttpOnly.go:33:21:33:21 | c | -| CookieWithoutHttpOnly.go:33:20:33:21 | &... [pointer] | CookieWithoutHttpOnly.go:33:21:33:21 | c | -| CookieWithoutHttpOnly.go:33:21:33:21 | c | CookieWithoutHttpOnly.go:33:20:33:21 | &... [pointer] | -| CookieWithoutHttpOnly.go:33:21:33:21 | c | CookieWithoutHttpOnly.go:33:20:33:21 | &... [pointer] | -| CookieWithoutHttpOnly.go:37:7:40:2 | struct literal | CookieWithoutHttpOnly.go:42:20:42:21 | &... | -| CookieWithoutHttpOnly.go:37:7:40:2 | struct literal | CookieWithoutHttpOnly.go:42:20:42:21 | &... | -| CookieWithoutHttpOnly.go:37:7:40:2 | struct literal | CookieWithoutHttpOnly.go:42:20:42:21 | &... | -| CookieWithoutHttpOnly.go:37:7:40:2 | struct literal | CookieWithoutHttpOnly.go:42:20:42:21 | &... | -| CookieWithoutHttpOnly.go:37:7:40:2 | struct literal | CookieWithoutHttpOnly.go:42:21:42:21 | c | -| CookieWithoutHttpOnly.go:37:7:40:2 | struct literal | CookieWithoutHttpOnly.go:42:21:42:21 | c | -| CookieWithoutHttpOnly.go:38:10:38:18 | "session" | CookieWithoutHttpOnly.go:37:7:40:2 | struct literal | -| CookieWithoutHttpOnly.go:41:15:41:18 | true | CookieWithoutHttpOnly.go:37:7:40:2 | struct literal | -| CookieWithoutHttpOnly.go:42:20:42:21 | &... | CookieWithoutHttpOnly.go:42:20:42:21 | &... | -| CookieWithoutHttpOnly.go:42:20:42:21 | &... | CookieWithoutHttpOnly.go:42:20:42:21 | &... | -| CookieWithoutHttpOnly.go:42:20:42:21 | &... | CookieWithoutHttpOnly.go:42:20:42:21 | &... | -| CookieWithoutHttpOnly.go:42:20:42:21 | &... | CookieWithoutHttpOnly.go:42:20:42:21 | &... | -| CookieWithoutHttpOnly.go:42:20:42:21 | &... | CookieWithoutHttpOnly.go:42:21:42:21 | c | -| CookieWithoutHttpOnly.go:42:20:42:21 | &... | CookieWithoutHttpOnly.go:42:21:42:21 | c | -| CookieWithoutHttpOnly.go:42:20:42:21 | &... [pointer] | CookieWithoutHttpOnly.go:42:20:42:21 | &... | -| CookieWithoutHttpOnly.go:42:20:42:21 | &... [pointer] | CookieWithoutHttpOnly.go:42:20:42:21 | &... | -| CookieWithoutHttpOnly.go:42:20:42:21 | &... [pointer] | CookieWithoutHttpOnly.go:42:20:42:21 | &... | -| CookieWithoutHttpOnly.go:42:20:42:21 | &... [pointer] | CookieWithoutHttpOnly.go:42:20:42:21 | &... | -| CookieWithoutHttpOnly.go:42:20:42:21 | &... [pointer] | CookieWithoutHttpOnly.go:42:21:42:21 | c | -| CookieWithoutHttpOnly.go:42:20:42:21 | &... [pointer] | CookieWithoutHttpOnly.go:42:21:42:21 | c | -| CookieWithoutHttpOnly.go:42:21:42:21 | c | CookieWithoutHttpOnly.go:42:20:42:21 | &... [pointer] | -| CookieWithoutHttpOnly.go:42:21:42:21 | c | CookieWithoutHttpOnly.go:42:20:42:21 | &... [pointer] | -| CookieWithoutHttpOnly.go:46:7:49:2 | struct literal | CookieWithoutHttpOnly.go:51:20:51:21 | &... | -| CookieWithoutHttpOnly.go:46:7:49:2 | struct literal | CookieWithoutHttpOnly.go:51:20:51:21 | &... | -| CookieWithoutHttpOnly.go:46:7:49:2 | struct literal | CookieWithoutHttpOnly.go:51:20:51:21 | &... | -| CookieWithoutHttpOnly.go:46:7:49:2 | struct literal | CookieWithoutHttpOnly.go:51:20:51:21 | &... | -| CookieWithoutHttpOnly.go:46:7:49:2 | struct literal | CookieWithoutHttpOnly.go:51:21:51:21 | c | -| CookieWithoutHttpOnly.go:46:7:49:2 | struct literal | CookieWithoutHttpOnly.go:51:21:51:21 | c | -| CookieWithoutHttpOnly.go:47:10:47:18 | "session" | CookieWithoutHttpOnly.go:46:7:49:2 | struct literal | -| CookieWithoutHttpOnly.go:50:15:50:19 | false | CookieWithoutHttpOnly.go:46:7:49:2 | struct literal | -| CookieWithoutHttpOnly.go:51:20:51:21 | &... | CookieWithoutHttpOnly.go:51:20:51:21 | &... | -| CookieWithoutHttpOnly.go:51:20:51:21 | &... | CookieWithoutHttpOnly.go:51:20:51:21 | &... | -| CookieWithoutHttpOnly.go:51:20:51:21 | &... | CookieWithoutHttpOnly.go:51:20:51:21 | &... | -| CookieWithoutHttpOnly.go:51:20:51:21 | &... | CookieWithoutHttpOnly.go:51:20:51:21 | &... | -| CookieWithoutHttpOnly.go:51:20:51:21 | &... | CookieWithoutHttpOnly.go:51:21:51:21 | c | -| CookieWithoutHttpOnly.go:51:20:51:21 | &... | CookieWithoutHttpOnly.go:51:21:51:21 | c | -| CookieWithoutHttpOnly.go:51:20:51:21 | &... [pointer] | CookieWithoutHttpOnly.go:51:20:51:21 | &... | -| CookieWithoutHttpOnly.go:51:20:51:21 | &... [pointer] | CookieWithoutHttpOnly.go:51:20:51:21 | &... | -| CookieWithoutHttpOnly.go:51:20:51:21 | &... [pointer] | CookieWithoutHttpOnly.go:51:20:51:21 | &... | -| CookieWithoutHttpOnly.go:51:20:51:21 | &... [pointer] | CookieWithoutHttpOnly.go:51:20:51:21 | &... | -| CookieWithoutHttpOnly.go:51:20:51:21 | &... [pointer] | CookieWithoutHttpOnly.go:51:21:51:21 | c | -| CookieWithoutHttpOnly.go:51:20:51:21 | &... [pointer] | CookieWithoutHttpOnly.go:51:21:51:21 | c | -| CookieWithoutHttpOnly.go:51:21:51:21 | c | CookieWithoutHttpOnly.go:51:20:51:21 | &... [pointer] | -| CookieWithoutHttpOnly.go:51:21:51:21 | c | CookieWithoutHttpOnly.go:51:20:51:21 | &... [pointer] | -| CookieWithoutHttpOnly.go:55:2:55:4 | definition of val | CookieWithoutHttpOnly.go:59:13:59:15 | val | -| CookieWithoutHttpOnly.go:55:9:55:13 | false | CookieWithoutHttpOnly.go:59:13:59:15 | val | -| CookieWithoutHttpOnly.go:56:7:60:2 | struct literal | CookieWithoutHttpOnly.go:61:20:61:21 | &... | -| CookieWithoutHttpOnly.go:56:7:60:2 | struct literal | CookieWithoutHttpOnly.go:61:20:61:21 | &... | -| CookieWithoutHttpOnly.go:56:7:60:2 | struct literal | CookieWithoutHttpOnly.go:61:20:61:21 | &... | -| CookieWithoutHttpOnly.go:56:7:60:2 | struct literal | CookieWithoutHttpOnly.go:61:20:61:21 | &... | -| CookieWithoutHttpOnly.go:56:7:60:2 | struct literal | CookieWithoutHttpOnly.go:61:21:61:21 | c | -| CookieWithoutHttpOnly.go:56:7:60:2 | struct literal | CookieWithoutHttpOnly.go:61:21:61:21 | c | -| CookieWithoutHttpOnly.go:57:13:57:21 | "session" | CookieWithoutHttpOnly.go:56:7:60:2 | struct literal | -| CookieWithoutHttpOnly.go:59:13:59:15 | val | CookieWithoutHttpOnly.go:56:7:60:2 | struct literal | -| CookieWithoutHttpOnly.go:61:20:61:21 | &... | CookieWithoutHttpOnly.go:61:20:61:21 | &... | -| CookieWithoutHttpOnly.go:61:20:61:21 | &... | CookieWithoutHttpOnly.go:61:20:61:21 | &... | -| CookieWithoutHttpOnly.go:61:20:61:21 | &... | CookieWithoutHttpOnly.go:61:20:61:21 | &... | -| CookieWithoutHttpOnly.go:61:20:61:21 | &... | CookieWithoutHttpOnly.go:61:20:61:21 | &... | -| CookieWithoutHttpOnly.go:61:20:61:21 | &... | CookieWithoutHttpOnly.go:61:21:61:21 | c | -| CookieWithoutHttpOnly.go:61:20:61:21 | &... | CookieWithoutHttpOnly.go:61:21:61:21 | c | -| CookieWithoutHttpOnly.go:61:20:61:21 | &... [pointer] | CookieWithoutHttpOnly.go:61:20:61:21 | &... | -| CookieWithoutHttpOnly.go:61:20:61:21 | &... [pointer] | CookieWithoutHttpOnly.go:61:20:61:21 | &... | -| CookieWithoutHttpOnly.go:61:20:61:21 | &... [pointer] | CookieWithoutHttpOnly.go:61:20:61:21 | &... | -| CookieWithoutHttpOnly.go:61:20:61:21 | &... [pointer] | CookieWithoutHttpOnly.go:61:20:61:21 | &... | -| CookieWithoutHttpOnly.go:61:20:61:21 | &... [pointer] | CookieWithoutHttpOnly.go:61:21:61:21 | c | -| CookieWithoutHttpOnly.go:61:20:61:21 | &... [pointer] | CookieWithoutHttpOnly.go:61:21:61:21 | c | -| CookieWithoutHttpOnly.go:61:21:61:21 | c | CookieWithoutHttpOnly.go:61:20:61:21 | &... [pointer] | -| CookieWithoutHttpOnly.go:61:21:61:21 | c | CookieWithoutHttpOnly.go:61:20:61:21 | &... [pointer] | -| CookieWithoutHttpOnly.go:65:2:65:4 | definition of val | CookieWithoutHttpOnly.go:69:13:69:15 | val | -| CookieWithoutHttpOnly.go:65:9:65:12 | true | CookieWithoutHttpOnly.go:69:13:69:15 | val | -| CookieWithoutHttpOnly.go:66:7:70:2 | struct literal | CookieWithoutHttpOnly.go:71:20:71:21 | &... | -| CookieWithoutHttpOnly.go:66:7:70:2 | struct literal | CookieWithoutHttpOnly.go:71:20:71:21 | &... | -| CookieWithoutHttpOnly.go:66:7:70:2 | struct literal | CookieWithoutHttpOnly.go:71:20:71:21 | &... | -| CookieWithoutHttpOnly.go:66:7:70:2 | struct literal | CookieWithoutHttpOnly.go:71:20:71:21 | &... | -| CookieWithoutHttpOnly.go:66:7:70:2 | struct literal | CookieWithoutHttpOnly.go:71:21:71:21 | c | -| CookieWithoutHttpOnly.go:66:7:70:2 | struct literal | CookieWithoutHttpOnly.go:71:21:71:21 | c | -| CookieWithoutHttpOnly.go:67:13:67:21 | "session" | CookieWithoutHttpOnly.go:66:7:70:2 | struct literal | -| CookieWithoutHttpOnly.go:69:13:69:15 | val | CookieWithoutHttpOnly.go:66:7:70:2 | struct literal | -| CookieWithoutHttpOnly.go:71:20:71:21 | &... | CookieWithoutHttpOnly.go:71:20:71:21 | &... | -| CookieWithoutHttpOnly.go:71:20:71:21 | &... | CookieWithoutHttpOnly.go:71:20:71:21 | &... | -| CookieWithoutHttpOnly.go:71:20:71:21 | &... | CookieWithoutHttpOnly.go:71:20:71:21 | &... | -| CookieWithoutHttpOnly.go:71:20:71:21 | &... | CookieWithoutHttpOnly.go:71:20:71:21 | &... | -| CookieWithoutHttpOnly.go:71:20:71:21 | &... | CookieWithoutHttpOnly.go:71:21:71:21 | c | -| CookieWithoutHttpOnly.go:71:20:71:21 | &... | CookieWithoutHttpOnly.go:71:21:71:21 | c | -| CookieWithoutHttpOnly.go:71:20:71:21 | &... [pointer] | CookieWithoutHttpOnly.go:71:20:71:21 | &... | -| CookieWithoutHttpOnly.go:71:20:71:21 | &... [pointer] | CookieWithoutHttpOnly.go:71:20:71:21 | &... | -| CookieWithoutHttpOnly.go:71:20:71:21 | &... [pointer] | CookieWithoutHttpOnly.go:71:20:71:21 | &... | -| CookieWithoutHttpOnly.go:71:20:71:21 | &... [pointer] | CookieWithoutHttpOnly.go:71:20:71:21 | &... | -| CookieWithoutHttpOnly.go:71:20:71:21 | &... [pointer] | CookieWithoutHttpOnly.go:71:21:71:21 | c | -| CookieWithoutHttpOnly.go:71:20:71:21 | &... [pointer] | CookieWithoutHttpOnly.go:71:21:71:21 | c | -| CookieWithoutHttpOnly.go:71:21:71:21 | c | CookieWithoutHttpOnly.go:71:20:71:21 | &... [pointer] | -| CookieWithoutHttpOnly.go:71:21:71:21 | c | CookieWithoutHttpOnly.go:71:20:71:21 | &... [pointer] | -| CookieWithoutHttpOnly.go:75:2:75:4 | definition of val | CookieWithoutHttpOnly.go:80:15:80:17 | val | -| CookieWithoutHttpOnly.go:75:9:75:12 | true | CookieWithoutHttpOnly.go:80:15:80:17 | val | -| CookieWithoutHttpOnly.go:76:7:79:2 | struct literal | CookieWithoutHttpOnly.go:81:20:81:21 | &... | -| CookieWithoutHttpOnly.go:76:7:79:2 | struct literal | CookieWithoutHttpOnly.go:81:20:81:21 | &... | -| CookieWithoutHttpOnly.go:76:7:79:2 | struct literal | CookieWithoutHttpOnly.go:81:20:81:21 | &... | -| CookieWithoutHttpOnly.go:76:7:79:2 | struct literal | CookieWithoutHttpOnly.go:81:20:81:21 | &... | -| CookieWithoutHttpOnly.go:76:7:79:2 | struct literal | CookieWithoutHttpOnly.go:81:21:81:21 | c | -| CookieWithoutHttpOnly.go:76:7:79:2 | struct literal | CookieWithoutHttpOnly.go:81:21:81:21 | c | -| CookieWithoutHttpOnly.go:77:10:77:18 | "session" | CookieWithoutHttpOnly.go:76:7:79:2 | struct literal | -| CookieWithoutHttpOnly.go:80:15:80:17 | val | CookieWithoutHttpOnly.go:76:7:79:2 | struct literal | -| CookieWithoutHttpOnly.go:81:20:81:21 | &... | CookieWithoutHttpOnly.go:81:20:81:21 | &... | -| CookieWithoutHttpOnly.go:81:20:81:21 | &... | CookieWithoutHttpOnly.go:81:20:81:21 | &... | -| CookieWithoutHttpOnly.go:81:20:81:21 | &... | CookieWithoutHttpOnly.go:81:20:81:21 | &... | -| CookieWithoutHttpOnly.go:81:20:81:21 | &... | CookieWithoutHttpOnly.go:81:20:81:21 | &... | -| CookieWithoutHttpOnly.go:81:20:81:21 | &... | CookieWithoutHttpOnly.go:81:21:81:21 | c | -| CookieWithoutHttpOnly.go:81:20:81:21 | &... | CookieWithoutHttpOnly.go:81:21:81:21 | c | -| CookieWithoutHttpOnly.go:81:20:81:21 | &... [pointer] | CookieWithoutHttpOnly.go:81:20:81:21 | &... | -| CookieWithoutHttpOnly.go:81:20:81:21 | &... [pointer] | CookieWithoutHttpOnly.go:81:20:81:21 | &... | -| CookieWithoutHttpOnly.go:81:20:81:21 | &... [pointer] | CookieWithoutHttpOnly.go:81:20:81:21 | &... | -| CookieWithoutHttpOnly.go:81:20:81:21 | &... [pointer] | CookieWithoutHttpOnly.go:81:20:81:21 | &... | -| CookieWithoutHttpOnly.go:81:20:81:21 | &... [pointer] | CookieWithoutHttpOnly.go:81:21:81:21 | c | -| CookieWithoutHttpOnly.go:81:20:81:21 | &... [pointer] | CookieWithoutHttpOnly.go:81:21:81:21 | c | -| CookieWithoutHttpOnly.go:81:21:81:21 | c | CookieWithoutHttpOnly.go:81:20:81:21 | &... [pointer] | -| CookieWithoutHttpOnly.go:81:21:81:21 | c | CookieWithoutHttpOnly.go:81:20:81:21 | &... [pointer] | -| CookieWithoutHttpOnly.go:85:2:85:4 | definition of val | CookieWithoutHttpOnly.go:90:15:90:17 | val | -| CookieWithoutHttpOnly.go:85:9:85:13 | false | CookieWithoutHttpOnly.go:90:15:90:17 | val | -| CookieWithoutHttpOnly.go:86:7:89:2 | struct literal | CookieWithoutHttpOnly.go:91:20:91:21 | &... | -| CookieWithoutHttpOnly.go:86:7:89:2 | struct literal | CookieWithoutHttpOnly.go:91:20:91:21 | &... | -| CookieWithoutHttpOnly.go:86:7:89:2 | struct literal | CookieWithoutHttpOnly.go:91:20:91:21 | &... | -| CookieWithoutHttpOnly.go:86:7:89:2 | struct literal | CookieWithoutHttpOnly.go:91:20:91:21 | &... | -| CookieWithoutHttpOnly.go:86:7:89:2 | struct literal | CookieWithoutHttpOnly.go:91:21:91:21 | c | -| CookieWithoutHttpOnly.go:86:7:89:2 | struct literal | CookieWithoutHttpOnly.go:91:21:91:21 | c | -| CookieWithoutHttpOnly.go:87:10:87:18 | "session" | CookieWithoutHttpOnly.go:86:7:89:2 | struct literal | -| CookieWithoutHttpOnly.go:90:15:90:17 | val | CookieWithoutHttpOnly.go:86:7:89:2 | struct literal | -| CookieWithoutHttpOnly.go:91:20:91:21 | &... | CookieWithoutHttpOnly.go:91:20:91:21 | &... | -| CookieWithoutHttpOnly.go:91:20:91:21 | &... | CookieWithoutHttpOnly.go:91:20:91:21 | &... | -| CookieWithoutHttpOnly.go:91:20:91:21 | &... | CookieWithoutHttpOnly.go:91:20:91:21 | &... | -| CookieWithoutHttpOnly.go:91:20:91:21 | &... | CookieWithoutHttpOnly.go:91:20:91:21 | &... | -| CookieWithoutHttpOnly.go:91:20:91:21 | &... | CookieWithoutHttpOnly.go:91:21:91:21 | c | -| CookieWithoutHttpOnly.go:91:20:91:21 | &... | CookieWithoutHttpOnly.go:91:21:91:21 | c | -| CookieWithoutHttpOnly.go:91:20:91:21 | &... [pointer] | CookieWithoutHttpOnly.go:91:20:91:21 | &... | -| CookieWithoutHttpOnly.go:91:20:91:21 | &... [pointer] | CookieWithoutHttpOnly.go:91:20:91:21 | &... | -| CookieWithoutHttpOnly.go:91:20:91:21 | &... [pointer] | CookieWithoutHttpOnly.go:91:20:91:21 | &... | -| CookieWithoutHttpOnly.go:91:20:91:21 | &... [pointer] | CookieWithoutHttpOnly.go:91:20:91:21 | &... | -| CookieWithoutHttpOnly.go:91:20:91:21 | &... [pointer] | CookieWithoutHttpOnly.go:91:21:91:21 | c | -| CookieWithoutHttpOnly.go:91:20:91:21 | &... [pointer] | CookieWithoutHttpOnly.go:91:21:91:21 | c | -| CookieWithoutHttpOnly.go:91:21:91:21 | c | CookieWithoutHttpOnly.go:91:20:91:21 | &... [pointer] | -| CookieWithoutHttpOnly.go:91:21:91:21 | c | CookieWithoutHttpOnly.go:91:20:91:21 | &... [pointer] | -| CookieWithoutHttpOnly.go:95:7:98:2 | struct literal | CookieWithoutHttpOnly.go:100:20:100:21 | &... | -| CookieWithoutHttpOnly.go:95:7:98:2 | struct literal | CookieWithoutHttpOnly.go:100:20:100:21 | &... | -| CookieWithoutHttpOnly.go:95:7:98:2 | struct literal | CookieWithoutHttpOnly.go:100:21:100:21 | c | -| CookieWithoutHttpOnly.go:99:15:99:19 | false | CookieWithoutHttpOnly.go:95:7:98:2 | struct literal | -| CookieWithoutHttpOnly.go:100:20:100:21 | &... | CookieWithoutHttpOnly.go:100:20:100:21 | &... | -| CookieWithoutHttpOnly.go:100:20:100:21 | &... | CookieWithoutHttpOnly.go:100:20:100:21 | &... | -| CookieWithoutHttpOnly.go:100:20:100:21 | &... | CookieWithoutHttpOnly.go:100:21:100:21 | c | -| CookieWithoutHttpOnly.go:100:20:100:21 | &... [pointer] | CookieWithoutHttpOnly.go:100:20:100:21 | &... | -| CookieWithoutHttpOnly.go:100:20:100:21 | &... [pointer] | CookieWithoutHttpOnly.go:100:20:100:21 | &... | -| CookieWithoutHttpOnly.go:100:20:100:21 | &... [pointer] | CookieWithoutHttpOnly.go:100:21:100:21 | c | -| CookieWithoutHttpOnly.go:100:21:100:21 | c | CookieWithoutHttpOnly.go:100:20:100:21 | &... [pointer] | -| CookieWithoutHttpOnly.go:104:10:104:18 | "session" | CookieWithoutHttpOnly.go:106:10:106:13 | name | -| CookieWithoutHttpOnly.go:105:7:108:2 | struct literal | CookieWithoutHttpOnly.go:110:20:110:21 | &... | -| CookieWithoutHttpOnly.go:105:7:108:2 | struct literal | CookieWithoutHttpOnly.go:110:20:110:21 | &... | -| CookieWithoutHttpOnly.go:105:7:108:2 | struct literal | CookieWithoutHttpOnly.go:110:20:110:21 | &... | -| CookieWithoutHttpOnly.go:105:7:108:2 | struct literal | CookieWithoutHttpOnly.go:110:20:110:21 | &... | -| CookieWithoutHttpOnly.go:105:7:108:2 | struct literal | CookieWithoutHttpOnly.go:110:21:110:21 | c | -| CookieWithoutHttpOnly.go:105:7:108:2 | struct literal | CookieWithoutHttpOnly.go:110:21:110:21 | c | -| CookieWithoutHttpOnly.go:106:10:106:13 | name | CookieWithoutHttpOnly.go:105:7:108:2 | struct literal | -| CookieWithoutHttpOnly.go:109:15:109:19 | false | CookieWithoutHttpOnly.go:105:7:108:2 | struct literal | -| CookieWithoutHttpOnly.go:110:20:110:21 | &... | CookieWithoutHttpOnly.go:110:20:110:21 | &... | -| CookieWithoutHttpOnly.go:110:20:110:21 | &... | CookieWithoutHttpOnly.go:110:20:110:21 | &... | -| CookieWithoutHttpOnly.go:110:20:110:21 | &... | CookieWithoutHttpOnly.go:110:20:110:21 | &... | -| CookieWithoutHttpOnly.go:110:20:110:21 | &... | CookieWithoutHttpOnly.go:110:20:110:21 | &... | -| CookieWithoutHttpOnly.go:110:20:110:21 | &... | CookieWithoutHttpOnly.go:110:21:110:21 | c | -| CookieWithoutHttpOnly.go:110:20:110:21 | &... | CookieWithoutHttpOnly.go:110:21:110:21 | c | -| CookieWithoutHttpOnly.go:110:20:110:21 | &... [pointer] | CookieWithoutHttpOnly.go:110:20:110:21 | &... | -| CookieWithoutHttpOnly.go:110:20:110:21 | &... [pointer] | CookieWithoutHttpOnly.go:110:20:110:21 | &... | -| CookieWithoutHttpOnly.go:110:20:110:21 | &... [pointer] | CookieWithoutHttpOnly.go:110:20:110:21 | &... | -| CookieWithoutHttpOnly.go:110:20:110:21 | &... [pointer] | CookieWithoutHttpOnly.go:110:20:110:21 | &... | -| CookieWithoutHttpOnly.go:110:20:110:21 | &... [pointer] | CookieWithoutHttpOnly.go:110:21:110:21 | c | -| CookieWithoutHttpOnly.go:110:20:110:21 | &... [pointer] | CookieWithoutHttpOnly.go:110:21:110:21 | c | -| CookieWithoutHttpOnly.go:110:21:110:21 | c | CookieWithoutHttpOnly.go:110:20:110:21 | &... [pointer] | -| CookieWithoutHttpOnly.go:110:21:110:21 | c | CookieWithoutHttpOnly.go:110:20:110:21 | &... [pointer] | -| CookieWithoutHttpOnly.go:114:13:114:24 | "login_name" | CookieWithoutHttpOnly.go:116:10:116:16 | session | -| CookieWithoutHttpOnly.go:115:7:118:2 | struct literal | CookieWithoutHttpOnly.go:120:20:120:21 | &... | -| CookieWithoutHttpOnly.go:115:7:118:2 | struct literal | CookieWithoutHttpOnly.go:120:20:120:21 | &... | -| CookieWithoutHttpOnly.go:115:7:118:2 | struct literal | CookieWithoutHttpOnly.go:120:20:120:21 | &... | -| CookieWithoutHttpOnly.go:115:7:118:2 | struct literal | CookieWithoutHttpOnly.go:120:20:120:21 | &... | -| CookieWithoutHttpOnly.go:115:7:118:2 | struct literal | CookieWithoutHttpOnly.go:120:21:120:21 | c | -| CookieWithoutHttpOnly.go:115:7:118:2 | struct literal | CookieWithoutHttpOnly.go:120:21:120:21 | c | -| CookieWithoutHttpOnly.go:116:10:116:16 | session | CookieWithoutHttpOnly.go:115:7:118:2 | struct literal | -| CookieWithoutHttpOnly.go:119:15:119:19 | false | CookieWithoutHttpOnly.go:115:7:118:2 | struct literal | -| CookieWithoutHttpOnly.go:120:20:120:21 | &... | CookieWithoutHttpOnly.go:120:20:120:21 | &... | -| CookieWithoutHttpOnly.go:120:20:120:21 | &... | CookieWithoutHttpOnly.go:120:20:120:21 | &... | -| CookieWithoutHttpOnly.go:120:20:120:21 | &... | CookieWithoutHttpOnly.go:120:20:120:21 | &... | -| CookieWithoutHttpOnly.go:120:20:120:21 | &... | CookieWithoutHttpOnly.go:120:20:120:21 | &... | -| CookieWithoutHttpOnly.go:120:20:120:21 | &... | CookieWithoutHttpOnly.go:120:21:120:21 | c | -| CookieWithoutHttpOnly.go:120:20:120:21 | &... | CookieWithoutHttpOnly.go:120:21:120:21 | c | -| CookieWithoutHttpOnly.go:120:20:120:21 | &... [pointer] | CookieWithoutHttpOnly.go:120:20:120:21 | &... | -| CookieWithoutHttpOnly.go:120:20:120:21 | &... [pointer] | CookieWithoutHttpOnly.go:120:20:120:21 | &... | -| CookieWithoutHttpOnly.go:120:20:120:21 | &... [pointer] | CookieWithoutHttpOnly.go:120:20:120:21 | &... | -| CookieWithoutHttpOnly.go:120:20:120:21 | &... [pointer] | CookieWithoutHttpOnly.go:120:20:120:21 | &... | -| CookieWithoutHttpOnly.go:120:20:120:21 | &... [pointer] | CookieWithoutHttpOnly.go:120:21:120:21 | c | -| CookieWithoutHttpOnly.go:120:20:120:21 | &... [pointer] | CookieWithoutHttpOnly.go:120:21:120:21 | c | -| CookieWithoutHttpOnly.go:120:21:120:21 | c | CookieWithoutHttpOnly.go:120:20:120:21 | &... [pointer] | -| CookieWithoutHttpOnly.go:120:21:120:21 | c | CookieWithoutHttpOnly.go:120:20:120:21 | &... [pointer] | -| CookieWithoutHttpOnly.go:123:13:123:49 | call to NewCookieStore | CookieWithoutHttpOnly.go:126:16:126:20 | store | -| CookieWithoutHttpOnly.go:123:13:123:49 | call to NewCookieStore | CookieWithoutHttpOnly.go:134:16:134:20 | store | -| CookieWithoutHttpOnly.go:123:13:123:49 | call to NewCookieStore | CookieWithoutHttpOnly.go:146:16:146:20 | store | -| CookieWithoutHttpOnly.go:123:13:123:49 | call to NewCookieStore | CookieWithoutHttpOnly.go:158:16:158:20 | store | -| CookieWithoutHttpOnly.go:123:13:123:49 | call to NewCookieStore | CookieWithoutHttpOnly.go:170:16:170:20 | store | -| CookieWithoutHttpOnly.go:123:13:123:49 | call to NewCookieStore | CookieWithoutHttpOnly.go:183:16:183:20 | store | -| CookieWithoutHttpOnly.go:123:13:123:49 | call to NewCookieStore | CookieWithoutHttpOnly.go:195:16:195:20 | store | -| CookieWithoutHttpOnly.go:126:2:126:43 | ... := ...[0] | CookieWithoutHttpOnly.go:129:2:129:8 | session | -| CookieWithoutHttpOnly.go:126:16:126:20 | store | CookieWithoutHttpOnly.go:126:2:126:43 | ... := ...[0] | -| CookieWithoutHttpOnly.go:133:2:133:9 | definition of httpOnly | CookieWithoutHttpOnly.go:139:13:139:20 | httpOnly | -| CookieWithoutHttpOnly.go:133:14:133:18 | false | CookieWithoutHttpOnly.go:139:13:139:20 | httpOnly | -| CookieWithoutHttpOnly.go:134:2:134:8 | definition of session [pointer] | CookieWithoutHttpOnly.go:135:2:135:8 | session [pointer] | -| CookieWithoutHttpOnly.go:134:2:134:8 | definition of session [pointer] | CookieWithoutHttpOnly.go:135:2:135:8 | session [pointer] | -| CookieWithoutHttpOnly.go:134:2:134:8 | definition of session [pointer] | CookieWithoutHttpOnly.go:137:2:137:8 | session [pointer] | -| CookieWithoutHttpOnly.go:134:2:134:8 | definition of session [pointer] | CookieWithoutHttpOnly.go:137:2:137:8 | session [pointer] | -| CookieWithoutHttpOnly.go:134:2:134:8 | definition of session [pointer] | CookieWithoutHttpOnly.go:142:2:142:8 | session | -| CookieWithoutHttpOnly.go:134:2:134:8 | definition of session [pointer] | CookieWithoutHttpOnly.go:142:2:142:8 | session | -| CookieWithoutHttpOnly.go:134:2:134:43 | ... := ...[0] | CookieWithoutHttpOnly.go:142:2:142:8 | session | -| CookieWithoutHttpOnly.go:134:16:134:20 | store | CookieWithoutHttpOnly.go:134:2:134:43 | ... := ...[0] | -| CookieWithoutHttpOnly.go:135:2:135:8 | implicit dereference | CookieWithoutHttpOnly.go:134:2:134:8 | definition of session [pointer] | -| CookieWithoutHttpOnly.go:135:2:135:8 | implicit dereference | CookieWithoutHttpOnly.go:134:2:134:8 | definition of session [pointer] | -| CookieWithoutHttpOnly.go:135:2:135:8 | implicit dereference | CookieWithoutHttpOnly.go:135:2:135:8 | implicit dereference | -| CookieWithoutHttpOnly.go:135:2:135:8 | implicit dereference | CookieWithoutHttpOnly.go:135:2:135:8 | implicit dereference | -| CookieWithoutHttpOnly.go:135:2:135:8 | implicit dereference | CookieWithoutHttpOnly.go:137:2:137:8 | session | -| CookieWithoutHttpOnly.go:135:2:135:8 | implicit dereference | CookieWithoutHttpOnly.go:137:2:137:8 | session | -| CookieWithoutHttpOnly.go:135:2:135:8 | implicit dereference | CookieWithoutHttpOnly.go:142:2:142:8 | session | -| CookieWithoutHttpOnly.go:135:2:135:8 | implicit dereference | CookieWithoutHttpOnly.go:142:2:142:8 | session | -| CookieWithoutHttpOnly.go:135:2:135:8 | session [pointer] | CookieWithoutHttpOnly.go:135:2:135:8 | implicit dereference | -| CookieWithoutHttpOnly.go:135:2:135:8 | session [pointer] | CookieWithoutHttpOnly.go:135:2:135:8 | implicit dereference | -| CookieWithoutHttpOnly.go:137:2:137:8 | implicit dereference | CookieWithoutHttpOnly.go:134:2:134:8 | definition of session [pointer] | -| CookieWithoutHttpOnly.go:137:2:137:8 | implicit dereference | CookieWithoutHttpOnly.go:134:2:134:8 | definition of session [pointer] | -| CookieWithoutHttpOnly.go:137:2:137:8 | implicit dereference | CookieWithoutHttpOnly.go:135:2:135:8 | implicit dereference | -| CookieWithoutHttpOnly.go:137:2:137:8 | implicit dereference | CookieWithoutHttpOnly.go:135:2:135:8 | implicit dereference | -| CookieWithoutHttpOnly.go:137:2:137:8 | implicit dereference | CookieWithoutHttpOnly.go:137:2:137:8 | session | -| CookieWithoutHttpOnly.go:137:2:137:8 | implicit dereference | CookieWithoutHttpOnly.go:137:2:137:8 | session | -| CookieWithoutHttpOnly.go:137:2:137:8 | implicit dereference | CookieWithoutHttpOnly.go:142:2:142:8 | session | -| CookieWithoutHttpOnly.go:137:2:137:8 | implicit dereference | CookieWithoutHttpOnly.go:142:2:142:8 | session | -| CookieWithoutHttpOnly.go:137:2:137:8 | session | CookieWithoutHttpOnly.go:137:2:137:8 | implicit dereference | -| CookieWithoutHttpOnly.go:137:2:137:8 | session | CookieWithoutHttpOnly.go:137:2:137:8 | implicit dereference | -| CookieWithoutHttpOnly.go:137:2:137:8 | session [pointer] | CookieWithoutHttpOnly.go:137:2:137:8 | implicit dereference | -| CookieWithoutHttpOnly.go:137:2:137:8 | session [pointer] | CookieWithoutHttpOnly.go:137:2:137:8 | implicit dereference | -| CookieWithoutHttpOnly.go:137:20:140:2 | &... | CookieWithoutHttpOnly.go:137:2:137:8 | implicit dereference | -| CookieWithoutHttpOnly.go:137:20:140:2 | &... | CookieWithoutHttpOnly.go:137:2:137:8 | implicit dereference | -| CookieWithoutHttpOnly.go:137:20:140:2 | &... | CookieWithoutHttpOnly.go:137:2:137:8 | session | -| CookieWithoutHttpOnly.go:137:20:140:2 | &... | CookieWithoutHttpOnly.go:137:2:137:8 | session | -| CookieWithoutHttpOnly.go:137:20:140:2 | &... | CookieWithoutHttpOnly.go:137:20:140:2 | &... | -| CookieWithoutHttpOnly.go:137:20:140:2 | &... | CookieWithoutHttpOnly.go:137:21:140:2 | struct literal | -| CookieWithoutHttpOnly.go:137:21:140:2 | struct literal | CookieWithoutHttpOnly.go:137:20:140:2 | &... | -| CookieWithoutHttpOnly.go:137:21:140:2 | struct literal | CookieWithoutHttpOnly.go:137:20:140:2 | &... | -| CookieWithoutHttpOnly.go:139:13:139:20 | httpOnly | CookieWithoutHttpOnly.go:137:21:140:2 | struct literal | -| CookieWithoutHttpOnly.go:146:2:146:8 | definition of session [pointer] | CookieWithoutHttpOnly.go:147:2:147:8 | session [pointer] | -| CookieWithoutHttpOnly.go:146:2:146:8 | definition of session [pointer] | CookieWithoutHttpOnly.go:149:2:149:8 | session [pointer] | -| CookieWithoutHttpOnly.go:146:2:146:8 | definition of session [pointer] | CookieWithoutHttpOnly.go:153:2:153:8 | session | -| CookieWithoutHttpOnly.go:146:2:146:43 | ... := ...[0] | CookieWithoutHttpOnly.go:153:2:153:8 | session | -| CookieWithoutHttpOnly.go:146:16:146:20 | store | CookieWithoutHttpOnly.go:146:2:146:43 | ... := ...[0] | -| CookieWithoutHttpOnly.go:147:2:147:8 | implicit dereference | CookieWithoutHttpOnly.go:146:2:146:8 | definition of session [pointer] | -| CookieWithoutHttpOnly.go:147:2:147:8 | implicit dereference | CookieWithoutHttpOnly.go:147:2:147:8 | implicit dereference | -| CookieWithoutHttpOnly.go:147:2:147:8 | implicit dereference | CookieWithoutHttpOnly.go:149:2:149:8 | session | -| CookieWithoutHttpOnly.go:147:2:147:8 | implicit dereference | CookieWithoutHttpOnly.go:153:2:153:8 | session | -| CookieWithoutHttpOnly.go:147:2:147:8 | session [pointer] | CookieWithoutHttpOnly.go:147:2:147:8 | implicit dereference | -| CookieWithoutHttpOnly.go:149:2:149:8 | implicit dereference | CookieWithoutHttpOnly.go:146:2:146:8 | definition of session [pointer] | -| CookieWithoutHttpOnly.go:149:2:149:8 | implicit dereference | CookieWithoutHttpOnly.go:147:2:147:8 | implicit dereference | -| CookieWithoutHttpOnly.go:149:2:149:8 | implicit dereference | CookieWithoutHttpOnly.go:149:2:149:8 | session | -| CookieWithoutHttpOnly.go:149:2:149:8 | implicit dereference | CookieWithoutHttpOnly.go:153:2:153:8 | session | -| CookieWithoutHttpOnly.go:149:2:149:8 | session | CookieWithoutHttpOnly.go:149:2:149:8 | implicit dereference | -| CookieWithoutHttpOnly.go:149:2:149:8 | session [pointer] | CookieWithoutHttpOnly.go:149:2:149:8 | implicit dereference | -| CookieWithoutHttpOnly.go:149:20:151:2 | &... | CookieWithoutHttpOnly.go:149:2:149:8 | implicit dereference | -| CookieWithoutHttpOnly.go:149:20:151:2 | &... | CookieWithoutHttpOnly.go:149:2:149:8 | session | -| CookieWithoutHttpOnly.go:149:20:151:2 | &... | CookieWithoutHttpOnly.go:149:20:151:2 | &... | -| CookieWithoutHttpOnly.go:149:21:151:2 | struct literal | CookieWithoutHttpOnly.go:149:20:151:2 | &... | -| CookieWithoutHttpOnly.go:157:2:157:9 | definition of httpOnly | CookieWithoutHttpOnly.go:163:13:163:20 | httpOnly | -| CookieWithoutHttpOnly.go:157:14:157:17 | true | CookieWithoutHttpOnly.go:163:13:163:20 | httpOnly | -| CookieWithoutHttpOnly.go:158:2:158:8 | definition of session [pointer] | CookieWithoutHttpOnly.go:159:2:159:8 | session [pointer] | -| CookieWithoutHttpOnly.go:158:2:158:8 | definition of session [pointer] | CookieWithoutHttpOnly.go:159:2:159:8 | session [pointer] | -| CookieWithoutHttpOnly.go:158:2:158:8 | definition of session [pointer] | CookieWithoutHttpOnly.go:161:2:161:8 | session [pointer] | -| CookieWithoutHttpOnly.go:158:2:158:8 | definition of session [pointer] | CookieWithoutHttpOnly.go:161:2:161:8 | session [pointer] | -| CookieWithoutHttpOnly.go:158:2:158:8 | definition of session [pointer] | CookieWithoutHttpOnly.go:166:2:166:8 | session | -| CookieWithoutHttpOnly.go:158:2:158:8 | definition of session [pointer] | CookieWithoutHttpOnly.go:166:2:166:8 | session | -| CookieWithoutHttpOnly.go:158:2:158:43 | ... := ...[0] | CookieWithoutHttpOnly.go:166:2:166:8 | session | -| CookieWithoutHttpOnly.go:158:16:158:20 | store | CookieWithoutHttpOnly.go:158:2:158:43 | ... := ...[0] | -| CookieWithoutHttpOnly.go:159:2:159:8 | implicit dereference | CookieWithoutHttpOnly.go:158:2:158:8 | definition of session [pointer] | -| CookieWithoutHttpOnly.go:159:2:159:8 | implicit dereference | CookieWithoutHttpOnly.go:158:2:158:8 | definition of session [pointer] | -| CookieWithoutHttpOnly.go:159:2:159:8 | implicit dereference | CookieWithoutHttpOnly.go:159:2:159:8 | implicit dereference | -| CookieWithoutHttpOnly.go:159:2:159:8 | implicit dereference | CookieWithoutHttpOnly.go:159:2:159:8 | implicit dereference | -| CookieWithoutHttpOnly.go:159:2:159:8 | implicit dereference | CookieWithoutHttpOnly.go:161:2:161:8 | session | -| CookieWithoutHttpOnly.go:159:2:159:8 | implicit dereference | CookieWithoutHttpOnly.go:161:2:161:8 | session | -| CookieWithoutHttpOnly.go:159:2:159:8 | implicit dereference | CookieWithoutHttpOnly.go:166:2:166:8 | session | -| CookieWithoutHttpOnly.go:159:2:159:8 | implicit dereference | CookieWithoutHttpOnly.go:166:2:166:8 | session | -| CookieWithoutHttpOnly.go:159:2:159:8 | session [pointer] | CookieWithoutHttpOnly.go:159:2:159:8 | implicit dereference | -| CookieWithoutHttpOnly.go:159:2:159:8 | session [pointer] | CookieWithoutHttpOnly.go:159:2:159:8 | implicit dereference | -| CookieWithoutHttpOnly.go:161:2:161:8 | implicit dereference | CookieWithoutHttpOnly.go:158:2:158:8 | definition of session [pointer] | -| CookieWithoutHttpOnly.go:161:2:161:8 | implicit dereference | CookieWithoutHttpOnly.go:158:2:158:8 | definition of session [pointer] | -| CookieWithoutHttpOnly.go:161:2:161:8 | implicit dereference | CookieWithoutHttpOnly.go:159:2:159:8 | implicit dereference | -| CookieWithoutHttpOnly.go:161:2:161:8 | implicit dereference | CookieWithoutHttpOnly.go:159:2:159:8 | implicit dereference | -| CookieWithoutHttpOnly.go:161:2:161:8 | implicit dereference | CookieWithoutHttpOnly.go:161:2:161:8 | session | -| CookieWithoutHttpOnly.go:161:2:161:8 | implicit dereference | CookieWithoutHttpOnly.go:161:2:161:8 | session | -| CookieWithoutHttpOnly.go:161:2:161:8 | implicit dereference | CookieWithoutHttpOnly.go:166:2:166:8 | session | -| CookieWithoutHttpOnly.go:161:2:161:8 | implicit dereference | CookieWithoutHttpOnly.go:166:2:166:8 | session | -| CookieWithoutHttpOnly.go:161:2:161:8 | session | CookieWithoutHttpOnly.go:161:2:161:8 | implicit dereference | -| CookieWithoutHttpOnly.go:161:2:161:8 | session | CookieWithoutHttpOnly.go:161:2:161:8 | implicit dereference | -| CookieWithoutHttpOnly.go:161:2:161:8 | session [pointer] | CookieWithoutHttpOnly.go:161:2:161:8 | implicit dereference | -| CookieWithoutHttpOnly.go:161:2:161:8 | session [pointer] | CookieWithoutHttpOnly.go:161:2:161:8 | implicit dereference | -| CookieWithoutHttpOnly.go:161:20:164:2 | &... | CookieWithoutHttpOnly.go:161:2:161:8 | implicit dereference | -| CookieWithoutHttpOnly.go:161:20:164:2 | &... | CookieWithoutHttpOnly.go:161:2:161:8 | implicit dereference | -| CookieWithoutHttpOnly.go:161:20:164:2 | &... | CookieWithoutHttpOnly.go:161:2:161:8 | session | -| CookieWithoutHttpOnly.go:161:20:164:2 | &... | CookieWithoutHttpOnly.go:161:2:161:8 | session | -| CookieWithoutHttpOnly.go:161:20:164:2 | &... | CookieWithoutHttpOnly.go:161:20:164:2 | &... | -| CookieWithoutHttpOnly.go:161:20:164:2 | &... | CookieWithoutHttpOnly.go:161:21:164:2 | struct literal | -| CookieWithoutHttpOnly.go:161:21:164:2 | struct literal | CookieWithoutHttpOnly.go:161:20:164:2 | &... | -| CookieWithoutHttpOnly.go:161:21:164:2 | struct literal | CookieWithoutHttpOnly.go:161:20:164:2 | &... | -| CookieWithoutHttpOnly.go:163:13:163:20 | httpOnly | CookieWithoutHttpOnly.go:161:21:164:2 | struct literal | -| CookieWithoutHttpOnly.go:169:56:169:63 | argument corresponding to httpOnly | CookieWithoutHttpOnly.go:175:13:175:20 | httpOnly | -| CookieWithoutHttpOnly.go:169:56:169:63 | definition of httpOnly | CookieWithoutHttpOnly.go:175:13:175:20 | httpOnly | -| CookieWithoutHttpOnly.go:170:2:170:8 | definition of session [pointer] | CookieWithoutHttpOnly.go:171:2:171:8 | session [pointer] | -| CookieWithoutHttpOnly.go:170:2:170:8 | definition of session [pointer] | CookieWithoutHttpOnly.go:171:2:171:8 | session [pointer] | -| CookieWithoutHttpOnly.go:170:2:170:8 | definition of session [pointer] | CookieWithoutHttpOnly.go:173:2:173:8 | session [pointer] | -| CookieWithoutHttpOnly.go:170:2:170:8 | definition of session [pointer] | CookieWithoutHttpOnly.go:173:2:173:8 | session [pointer] | -| CookieWithoutHttpOnly.go:170:2:170:8 | definition of session [pointer] | CookieWithoutHttpOnly.go:178:2:178:8 | session | -| CookieWithoutHttpOnly.go:170:2:170:8 | definition of session [pointer] | CookieWithoutHttpOnly.go:178:2:178:8 | session | -| CookieWithoutHttpOnly.go:170:2:170:43 | ... := ...[0] | CookieWithoutHttpOnly.go:178:2:178:8 | session | -| CookieWithoutHttpOnly.go:170:16:170:20 | store | CookieWithoutHttpOnly.go:170:2:170:43 | ... := ...[0] | -| CookieWithoutHttpOnly.go:171:2:171:8 | implicit dereference | CookieWithoutHttpOnly.go:170:2:170:8 | definition of session [pointer] | -| CookieWithoutHttpOnly.go:171:2:171:8 | implicit dereference | CookieWithoutHttpOnly.go:170:2:170:8 | definition of session [pointer] | -| CookieWithoutHttpOnly.go:171:2:171:8 | implicit dereference | CookieWithoutHttpOnly.go:171:2:171:8 | implicit dereference | -| CookieWithoutHttpOnly.go:171:2:171:8 | implicit dereference | CookieWithoutHttpOnly.go:171:2:171:8 | implicit dereference | -| CookieWithoutHttpOnly.go:171:2:171:8 | implicit dereference | CookieWithoutHttpOnly.go:173:2:173:8 | session | -| CookieWithoutHttpOnly.go:171:2:171:8 | implicit dereference | CookieWithoutHttpOnly.go:173:2:173:8 | session | -| CookieWithoutHttpOnly.go:171:2:171:8 | implicit dereference | CookieWithoutHttpOnly.go:178:2:178:8 | session | -| CookieWithoutHttpOnly.go:171:2:171:8 | implicit dereference | CookieWithoutHttpOnly.go:178:2:178:8 | session | -| CookieWithoutHttpOnly.go:171:2:171:8 | session [pointer] | CookieWithoutHttpOnly.go:171:2:171:8 | implicit dereference | -| CookieWithoutHttpOnly.go:171:2:171:8 | session [pointer] | CookieWithoutHttpOnly.go:171:2:171:8 | implicit dereference | -| CookieWithoutHttpOnly.go:173:2:173:8 | implicit dereference | CookieWithoutHttpOnly.go:170:2:170:8 | definition of session [pointer] | -| CookieWithoutHttpOnly.go:173:2:173:8 | implicit dereference | CookieWithoutHttpOnly.go:170:2:170:8 | definition of session [pointer] | -| CookieWithoutHttpOnly.go:173:2:173:8 | implicit dereference | CookieWithoutHttpOnly.go:171:2:171:8 | implicit dereference | -| CookieWithoutHttpOnly.go:173:2:173:8 | implicit dereference | CookieWithoutHttpOnly.go:171:2:171:8 | implicit dereference | -| CookieWithoutHttpOnly.go:173:2:173:8 | implicit dereference | CookieWithoutHttpOnly.go:173:2:173:8 | session | -| CookieWithoutHttpOnly.go:173:2:173:8 | implicit dereference | CookieWithoutHttpOnly.go:173:2:173:8 | session | -| CookieWithoutHttpOnly.go:173:2:173:8 | implicit dereference | CookieWithoutHttpOnly.go:178:2:178:8 | session | -| CookieWithoutHttpOnly.go:173:2:173:8 | implicit dereference | CookieWithoutHttpOnly.go:178:2:178:8 | session | -| CookieWithoutHttpOnly.go:173:2:173:8 | session | CookieWithoutHttpOnly.go:173:2:173:8 | implicit dereference | -| CookieWithoutHttpOnly.go:173:2:173:8 | session | CookieWithoutHttpOnly.go:173:2:173:8 | implicit dereference | -| CookieWithoutHttpOnly.go:173:2:173:8 | session [pointer] | CookieWithoutHttpOnly.go:173:2:173:8 | implicit dereference | -| CookieWithoutHttpOnly.go:173:2:173:8 | session [pointer] | CookieWithoutHttpOnly.go:173:2:173:8 | implicit dereference | -| CookieWithoutHttpOnly.go:173:20:176:2 | &... | CookieWithoutHttpOnly.go:173:2:173:8 | implicit dereference | -| CookieWithoutHttpOnly.go:173:20:176:2 | &... | CookieWithoutHttpOnly.go:173:2:173:8 | implicit dereference | -| CookieWithoutHttpOnly.go:173:20:176:2 | &... | CookieWithoutHttpOnly.go:173:2:173:8 | session | -| CookieWithoutHttpOnly.go:173:20:176:2 | &... | CookieWithoutHttpOnly.go:173:2:173:8 | session | -| CookieWithoutHttpOnly.go:173:20:176:2 | &... | CookieWithoutHttpOnly.go:173:20:176:2 | &... | -| CookieWithoutHttpOnly.go:173:20:176:2 | &... | CookieWithoutHttpOnly.go:173:21:176:2 | struct literal | -| CookieWithoutHttpOnly.go:173:21:176:2 | struct literal | CookieWithoutHttpOnly.go:173:20:176:2 | &... | -| CookieWithoutHttpOnly.go:173:21:176:2 | struct literal | CookieWithoutHttpOnly.go:173:20:176:2 | &... | -| CookieWithoutHttpOnly.go:175:13:175:20 | httpOnly | CookieWithoutHttpOnly.go:173:21:176:2 | struct literal | -| CookieWithoutHttpOnly.go:183:2:183:43 | ... := ...[0] | CookieWithoutHttpOnly.go:191:19:191:25 | session | -| CookieWithoutHttpOnly.go:183:16:183:20 | store | CookieWithoutHttpOnly.go:183:2:183:43 | ... := ...[0] | -| CookieWithoutHttpOnly.go:195:2:195:43 | ... := ...[0] | CookieWithoutHttpOnly.go:202:19:202:25 | session | -| CookieWithoutHttpOnly.go:195:16:195:20 | store | CookieWithoutHttpOnly.go:195:2:195:43 | ... := ...[0] | +| CookieWithoutHttpOnly.go:11:7:14:2 | struct literal | CookieWithoutHttpOnly.go:15:20:15:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:11:7:14:2 | struct literal | CookieWithoutHttpOnly.go:15:20:15:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:11:7:14:2 | struct literal | CookieWithoutHttpOnly.go:15:21:15:21 | c | provenance | | +| CookieWithoutHttpOnly.go:12:10:12:18 | "session" | CookieWithoutHttpOnly.go:11:7:14:2 | struct literal | provenance | | +| CookieWithoutHttpOnly.go:15:20:15:21 | &... | CookieWithoutHttpOnly.go:15:20:15:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:15:20:15:21 | &... | CookieWithoutHttpOnly.go:15:20:15:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:15:20:15:21 | &... | CookieWithoutHttpOnly.go:15:21:15:21 | c | provenance | | +| CookieWithoutHttpOnly.go:15:20:15:21 | &... [pointer] | CookieWithoutHttpOnly.go:15:20:15:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:15:20:15:21 | &... [pointer] | CookieWithoutHttpOnly.go:15:20:15:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:15:20:15:21 | &... [pointer] | CookieWithoutHttpOnly.go:15:21:15:21 | c | provenance | | +| CookieWithoutHttpOnly.go:15:21:15:21 | c | CookieWithoutHttpOnly.go:15:20:15:21 | &... [pointer] | provenance | | +| CookieWithoutHttpOnly.go:19:7:23:2 | struct literal | CookieWithoutHttpOnly.go:24:20:24:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:19:7:23:2 | struct literal | CookieWithoutHttpOnly.go:24:20:24:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:19:7:23:2 | struct literal | CookieWithoutHttpOnly.go:24:20:24:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:19:7:23:2 | struct literal | CookieWithoutHttpOnly.go:24:20:24:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:19:7:23:2 | struct literal | CookieWithoutHttpOnly.go:24:21:24:21 | c | provenance | | +| CookieWithoutHttpOnly.go:19:7:23:2 | struct literal | CookieWithoutHttpOnly.go:24:21:24:21 | c | provenance | | +| CookieWithoutHttpOnly.go:20:13:20:21 | "session" | CookieWithoutHttpOnly.go:19:7:23:2 | struct literal | provenance | | +| CookieWithoutHttpOnly.go:22:13:22:17 | false | CookieWithoutHttpOnly.go:19:7:23:2 | struct literal | provenance | | +| CookieWithoutHttpOnly.go:24:20:24:21 | &... | CookieWithoutHttpOnly.go:24:20:24:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:24:20:24:21 | &... | CookieWithoutHttpOnly.go:24:20:24:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:24:20:24:21 | &... | CookieWithoutHttpOnly.go:24:20:24:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:24:20:24:21 | &... | CookieWithoutHttpOnly.go:24:20:24:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:24:20:24:21 | &... | CookieWithoutHttpOnly.go:24:21:24:21 | c | provenance | | +| CookieWithoutHttpOnly.go:24:20:24:21 | &... | CookieWithoutHttpOnly.go:24:21:24:21 | c | provenance | | +| CookieWithoutHttpOnly.go:24:20:24:21 | &... [pointer] | CookieWithoutHttpOnly.go:24:20:24:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:24:20:24:21 | &... [pointer] | CookieWithoutHttpOnly.go:24:20:24:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:24:20:24:21 | &... [pointer] | CookieWithoutHttpOnly.go:24:20:24:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:24:20:24:21 | &... [pointer] | CookieWithoutHttpOnly.go:24:20:24:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:24:20:24:21 | &... [pointer] | CookieWithoutHttpOnly.go:24:21:24:21 | c | provenance | | +| CookieWithoutHttpOnly.go:24:20:24:21 | &... [pointer] | CookieWithoutHttpOnly.go:24:21:24:21 | c | provenance | | +| CookieWithoutHttpOnly.go:24:21:24:21 | c | CookieWithoutHttpOnly.go:24:20:24:21 | &... [pointer] | provenance | | +| CookieWithoutHttpOnly.go:24:21:24:21 | c | CookieWithoutHttpOnly.go:24:20:24:21 | &... [pointer] | provenance | | +| CookieWithoutHttpOnly.go:28:7:32:2 | struct literal | CookieWithoutHttpOnly.go:33:20:33:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:28:7:32:2 | struct literal | CookieWithoutHttpOnly.go:33:20:33:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:28:7:32:2 | struct literal | CookieWithoutHttpOnly.go:33:20:33:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:28:7:32:2 | struct literal | CookieWithoutHttpOnly.go:33:20:33:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:28:7:32:2 | struct literal | CookieWithoutHttpOnly.go:33:21:33:21 | c | provenance | | +| CookieWithoutHttpOnly.go:28:7:32:2 | struct literal | CookieWithoutHttpOnly.go:33:21:33:21 | c | provenance | | +| CookieWithoutHttpOnly.go:29:13:29:21 | "session" | CookieWithoutHttpOnly.go:28:7:32:2 | struct literal | provenance | | +| CookieWithoutHttpOnly.go:31:13:31:16 | true | CookieWithoutHttpOnly.go:28:7:32:2 | struct literal | provenance | | +| CookieWithoutHttpOnly.go:33:20:33:21 | &... | CookieWithoutHttpOnly.go:33:20:33:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:33:20:33:21 | &... | CookieWithoutHttpOnly.go:33:20:33:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:33:20:33:21 | &... | CookieWithoutHttpOnly.go:33:20:33:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:33:20:33:21 | &... | CookieWithoutHttpOnly.go:33:20:33:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:33:20:33:21 | &... | CookieWithoutHttpOnly.go:33:21:33:21 | c | provenance | | +| CookieWithoutHttpOnly.go:33:20:33:21 | &... | CookieWithoutHttpOnly.go:33:21:33:21 | c | provenance | | +| CookieWithoutHttpOnly.go:33:20:33:21 | &... [pointer] | CookieWithoutHttpOnly.go:33:20:33:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:33:20:33:21 | &... [pointer] | CookieWithoutHttpOnly.go:33:20:33:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:33:20:33:21 | &... [pointer] | CookieWithoutHttpOnly.go:33:20:33:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:33:20:33:21 | &... [pointer] | CookieWithoutHttpOnly.go:33:20:33:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:33:20:33:21 | &... [pointer] | CookieWithoutHttpOnly.go:33:21:33:21 | c | provenance | | +| CookieWithoutHttpOnly.go:33:20:33:21 | &... [pointer] | CookieWithoutHttpOnly.go:33:21:33:21 | c | provenance | | +| CookieWithoutHttpOnly.go:33:21:33:21 | c | CookieWithoutHttpOnly.go:33:20:33:21 | &... [pointer] | provenance | | +| CookieWithoutHttpOnly.go:33:21:33:21 | c | CookieWithoutHttpOnly.go:33:20:33:21 | &... [pointer] | provenance | | +| CookieWithoutHttpOnly.go:37:7:40:2 | struct literal | CookieWithoutHttpOnly.go:42:20:42:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:37:7:40:2 | struct literal | CookieWithoutHttpOnly.go:42:20:42:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:37:7:40:2 | struct literal | CookieWithoutHttpOnly.go:42:20:42:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:37:7:40:2 | struct literal | CookieWithoutHttpOnly.go:42:20:42:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:37:7:40:2 | struct literal | CookieWithoutHttpOnly.go:42:21:42:21 | c | provenance | | +| CookieWithoutHttpOnly.go:37:7:40:2 | struct literal | CookieWithoutHttpOnly.go:42:21:42:21 | c | provenance | | +| CookieWithoutHttpOnly.go:38:10:38:18 | "session" | CookieWithoutHttpOnly.go:37:7:40:2 | struct literal | provenance | | +| CookieWithoutHttpOnly.go:41:15:41:18 | true | CookieWithoutHttpOnly.go:37:7:40:2 | struct literal | provenance | | +| CookieWithoutHttpOnly.go:42:20:42:21 | &... | CookieWithoutHttpOnly.go:42:20:42:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:42:20:42:21 | &... | CookieWithoutHttpOnly.go:42:20:42:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:42:20:42:21 | &... | CookieWithoutHttpOnly.go:42:20:42:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:42:20:42:21 | &... | CookieWithoutHttpOnly.go:42:20:42:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:42:20:42:21 | &... | CookieWithoutHttpOnly.go:42:21:42:21 | c | provenance | | +| CookieWithoutHttpOnly.go:42:20:42:21 | &... | CookieWithoutHttpOnly.go:42:21:42:21 | c | provenance | | +| CookieWithoutHttpOnly.go:42:20:42:21 | &... [pointer] | CookieWithoutHttpOnly.go:42:20:42:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:42:20:42:21 | &... [pointer] | CookieWithoutHttpOnly.go:42:20:42:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:42:20:42:21 | &... [pointer] | CookieWithoutHttpOnly.go:42:20:42:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:42:20:42:21 | &... [pointer] | CookieWithoutHttpOnly.go:42:20:42:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:42:20:42:21 | &... [pointer] | CookieWithoutHttpOnly.go:42:21:42:21 | c | provenance | | +| CookieWithoutHttpOnly.go:42:20:42:21 | &... [pointer] | CookieWithoutHttpOnly.go:42:21:42:21 | c | provenance | | +| CookieWithoutHttpOnly.go:42:21:42:21 | c | CookieWithoutHttpOnly.go:42:20:42:21 | &... [pointer] | provenance | | +| CookieWithoutHttpOnly.go:42:21:42:21 | c | CookieWithoutHttpOnly.go:42:20:42:21 | &... [pointer] | provenance | | +| CookieWithoutHttpOnly.go:46:7:49:2 | struct literal | CookieWithoutHttpOnly.go:51:20:51:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:46:7:49:2 | struct literal | CookieWithoutHttpOnly.go:51:20:51:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:46:7:49:2 | struct literal | CookieWithoutHttpOnly.go:51:20:51:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:46:7:49:2 | struct literal | CookieWithoutHttpOnly.go:51:20:51:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:46:7:49:2 | struct literal | CookieWithoutHttpOnly.go:51:21:51:21 | c | provenance | | +| CookieWithoutHttpOnly.go:46:7:49:2 | struct literal | CookieWithoutHttpOnly.go:51:21:51:21 | c | provenance | | +| CookieWithoutHttpOnly.go:47:10:47:18 | "session" | CookieWithoutHttpOnly.go:46:7:49:2 | struct literal | provenance | | +| CookieWithoutHttpOnly.go:50:15:50:19 | false | CookieWithoutHttpOnly.go:46:7:49:2 | struct literal | provenance | | +| CookieWithoutHttpOnly.go:51:20:51:21 | &... | CookieWithoutHttpOnly.go:51:20:51:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:51:20:51:21 | &... | CookieWithoutHttpOnly.go:51:20:51:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:51:20:51:21 | &... | CookieWithoutHttpOnly.go:51:20:51:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:51:20:51:21 | &... | CookieWithoutHttpOnly.go:51:20:51:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:51:20:51:21 | &... | CookieWithoutHttpOnly.go:51:21:51:21 | c | provenance | | +| CookieWithoutHttpOnly.go:51:20:51:21 | &... | CookieWithoutHttpOnly.go:51:21:51:21 | c | provenance | | +| CookieWithoutHttpOnly.go:51:20:51:21 | &... [pointer] | CookieWithoutHttpOnly.go:51:20:51:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:51:20:51:21 | &... [pointer] | CookieWithoutHttpOnly.go:51:20:51:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:51:20:51:21 | &... [pointer] | CookieWithoutHttpOnly.go:51:20:51:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:51:20:51:21 | &... [pointer] | CookieWithoutHttpOnly.go:51:20:51:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:51:20:51:21 | &... [pointer] | CookieWithoutHttpOnly.go:51:21:51:21 | c | provenance | | +| CookieWithoutHttpOnly.go:51:20:51:21 | &... [pointer] | CookieWithoutHttpOnly.go:51:21:51:21 | c | provenance | | +| CookieWithoutHttpOnly.go:51:21:51:21 | c | CookieWithoutHttpOnly.go:51:20:51:21 | &... [pointer] | provenance | | +| CookieWithoutHttpOnly.go:51:21:51:21 | c | CookieWithoutHttpOnly.go:51:20:51:21 | &... [pointer] | provenance | | +| CookieWithoutHttpOnly.go:55:2:55:4 | definition of val | CookieWithoutHttpOnly.go:59:13:59:15 | val | provenance | | +| CookieWithoutHttpOnly.go:55:9:55:13 | false | CookieWithoutHttpOnly.go:59:13:59:15 | val | provenance | | +| CookieWithoutHttpOnly.go:56:7:60:2 | struct literal | CookieWithoutHttpOnly.go:61:20:61:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:56:7:60:2 | struct literal | CookieWithoutHttpOnly.go:61:20:61:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:56:7:60:2 | struct literal | CookieWithoutHttpOnly.go:61:20:61:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:56:7:60:2 | struct literal | CookieWithoutHttpOnly.go:61:20:61:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:56:7:60:2 | struct literal | CookieWithoutHttpOnly.go:61:21:61:21 | c | provenance | | +| CookieWithoutHttpOnly.go:56:7:60:2 | struct literal | CookieWithoutHttpOnly.go:61:21:61:21 | c | provenance | | +| CookieWithoutHttpOnly.go:57:13:57:21 | "session" | CookieWithoutHttpOnly.go:56:7:60:2 | struct literal | provenance | | +| CookieWithoutHttpOnly.go:59:13:59:15 | val | CookieWithoutHttpOnly.go:56:7:60:2 | struct literal | provenance | | +| CookieWithoutHttpOnly.go:61:20:61:21 | &... | CookieWithoutHttpOnly.go:61:20:61:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:61:20:61:21 | &... | CookieWithoutHttpOnly.go:61:20:61:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:61:20:61:21 | &... | CookieWithoutHttpOnly.go:61:20:61:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:61:20:61:21 | &... | CookieWithoutHttpOnly.go:61:20:61:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:61:20:61:21 | &... | CookieWithoutHttpOnly.go:61:21:61:21 | c | provenance | | +| CookieWithoutHttpOnly.go:61:20:61:21 | &... | CookieWithoutHttpOnly.go:61:21:61:21 | c | provenance | | +| CookieWithoutHttpOnly.go:61:20:61:21 | &... [pointer] | CookieWithoutHttpOnly.go:61:20:61:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:61:20:61:21 | &... [pointer] | CookieWithoutHttpOnly.go:61:20:61:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:61:20:61:21 | &... [pointer] | CookieWithoutHttpOnly.go:61:20:61:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:61:20:61:21 | &... [pointer] | CookieWithoutHttpOnly.go:61:20:61:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:61:20:61:21 | &... [pointer] | CookieWithoutHttpOnly.go:61:21:61:21 | c | provenance | | +| CookieWithoutHttpOnly.go:61:20:61:21 | &... [pointer] | CookieWithoutHttpOnly.go:61:21:61:21 | c | provenance | | +| CookieWithoutHttpOnly.go:61:21:61:21 | c | CookieWithoutHttpOnly.go:61:20:61:21 | &... [pointer] | provenance | | +| CookieWithoutHttpOnly.go:61:21:61:21 | c | CookieWithoutHttpOnly.go:61:20:61:21 | &... [pointer] | provenance | | +| CookieWithoutHttpOnly.go:65:2:65:4 | definition of val | CookieWithoutHttpOnly.go:69:13:69:15 | val | provenance | | +| CookieWithoutHttpOnly.go:65:9:65:12 | true | CookieWithoutHttpOnly.go:69:13:69:15 | val | provenance | | +| CookieWithoutHttpOnly.go:66:7:70:2 | struct literal | CookieWithoutHttpOnly.go:71:20:71:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:66:7:70:2 | struct literal | CookieWithoutHttpOnly.go:71:20:71:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:66:7:70:2 | struct literal | CookieWithoutHttpOnly.go:71:20:71:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:66:7:70:2 | struct literal | CookieWithoutHttpOnly.go:71:20:71:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:66:7:70:2 | struct literal | CookieWithoutHttpOnly.go:71:21:71:21 | c | provenance | | +| CookieWithoutHttpOnly.go:66:7:70:2 | struct literal | CookieWithoutHttpOnly.go:71:21:71:21 | c | provenance | | +| CookieWithoutHttpOnly.go:67:13:67:21 | "session" | CookieWithoutHttpOnly.go:66:7:70:2 | struct literal | provenance | | +| CookieWithoutHttpOnly.go:69:13:69:15 | val | CookieWithoutHttpOnly.go:66:7:70:2 | struct literal | provenance | | +| CookieWithoutHttpOnly.go:71:20:71:21 | &... | CookieWithoutHttpOnly.go:71:20:71:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:71:20:71:21 | &... | CookieWithoutHttpOnly.go:71:20:71:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:71:20:71:21 | &... | CookieWithoutHttpOnly.go:71:20:71:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:71:20:71:21 | &... | CookieWithoutHttpOnly.go:71:20:71:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:71:20:71:21 | &... | CookieWithoutHttpOnly.go:71:21:71:21 | c | provenance | | +| CookieWithoutHttpOnly.go:71:20:71:21 | &... | CookieWithoutHttpOnly.go:71:21:71:21 | c | provenance | | +| CookieWithoutHttpOnly.go:71:20:71:21 | &... [pointer] | CookieWithoutHttpOnly.go:71:20:71:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:71:20:71:21 | &... [pointer] | CookieWithoutHttpOnly.go:71:20:71:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:71:20:71:21 | &... [pointer] | CookieWithoutHttpOnly.go:71:20:71:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:71:20:71:21 | &... [pointer] | CookieWithoutHttpOnly.go:71:20:71:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:71:20:71:21 | &... [pointer] | CookieWithoutHttpOnly.go:71:21:71:21 | c | provenance | | +| CookieWithoutHttpOnly.go:71:20:71:21 | &... [pointer] | CookieWithoutHttpOnly.go:71:21:71:21 | c | provenance | | +| CookieWithoutHttpOnly.go:71:21:71:21 | c | CookieWithoutHttpOnly.go:71:20:71:21 | &... [pointer] | provenance | | +| CookieWithoutHttpOnly.go:71:21:71:21 | c | CookieWithoutHttpOnly.go:71:20:71:21 | &... [pointer] | provenance | | +| CookieWithoutHttpOnly.go:75:2:75:4 | definition of val | CookieWithoutHttpOnly.go:80:15:80:17 | val | provenance | | +| CookieWithoutHttpOnly.go:75:9:75:12 | true | CookieWithoutHttpOnly.go:80:15:80:17 | val | provenance | | +| CookieWithoutHttpOnly.go:76:7:79:2 | struct literal | CookieWithoutHttpOnly.go:81:20:81:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:76:7:79:2 | struct literal | CookieWithoutHttpOnly.go:81:20:81:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:76:7:79:2 | struct literal | CookieWithoutHttpOnly.go:81:20:81:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:76:7:79:2 | struct literal | CookieWithoutHttpOnly.go:81:20:81:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:76:7:79:2 | struct literal | CookieWithoutHttpOnly.go:81:21:81:21 | c | provenance | | +| CookieWithoutHttpOnly.go:76:7:79:2 | struct literal | CookieWithoutHttpOnly.go:81:21:81:21 | c | provenance | | +| CookieWithoutHttpOnly.go:77:10:77:18 | "session" | CookieWithoutHttpOnly.go:76:7:79:2 | struct literal | provenance | | +| CookieWithoutHttpOnly.go:80:15:80:17 | val | CookieWithoutHttpOnly.go:76:7:79:2 | struct literal | provenance | | +| CookieWithoutHttpOnly.go:81:20:81:21 | &... | CookieWithoutHttpOnly.go:81:20:81:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:81:20:81:21 | &... | CookieWithoutHttpOnly.go:81:20:81:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:81:20:81:21 | &... | CookieWithoutHttpOnly.go:81:20:81:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:81:20:81:21 | &... | CookieWithoutHttpOnly.go:81:20:81:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:81:20:81:21 | &... | CookieWithoutHttpOnly.go:81:21:81:21 | c | provenance | | +| CookieWithoutHttpOnly.go:81:20:81:21 | &... | CookieWithoutHttpOnly.go:81:21:81:21 | c | provenance | | +| CookieWithoutHttpOnly.go:81:20:81:21 | &... [pointer] | CookieWithoutHttpOnly.go:81:20:81:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:81:20:81:21 | &... [pointer] | CookieWithoutHttpOnly.go:81:20:81:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:81:20:81:21 | &... [pointer] | CookieWithoutHttpOnly.go:81:20:81:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:81:20:81:21 | &... [pointer] | CookieWithoutHttpOnly.go:81:20:81:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:81:20:81:21 | &... [pointer] | CookieWithoutHttpOnly.go:81:21:81:21 | c | provenance | | +| CookieWithoutHttpOnly.go:81:20:81:21 | &... [pointer] | CookieWithoutHttpOnly.go:81:21:81:21 | c | provenance | | +| CookieWithoutHttpOnly.go:81:21:81:21 | c | CookieWithoutHttpOnly.go:81:20:81:21 | &... [pointer] | provenance | | +| CookieWithoutHttpOnly.go:81:21:81:21 | c | CookieWithoutHttpOnly.go:81:20:81:21 | &... [pointer] | provenance | | +| CookieWithoutHttpOnly.go:85:2:85:4 | definition of val | CookieWithoutHttpOnly.go:90:15:90:17 | val | provenance | | +| CookieWithoutHttpOnly.go:85:9:85:13 | false | CookieWithoutHttpOnly.go:90:15:90:17 | val | provenance | | +| CookieWithoutHttpOnly.go:86:7:89:2 | struct literal | CookieWithoutHttpOnly.go:91:20:91:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:86:7:89:2 | struct literal | CookieWithoutHttpOnly.go:91:20:91:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:86:7:89:2 | struct literal | CookieWithoutHttpOnly.go:91:20:91:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:86:7:89:2 | struct literal | CookieWithoutHttpOnly.go:91:20:91:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:86:7:89:2 | struct literal | CookieWithoutHttpOnly.go:91:21:91:21 | c | provenance | | +| CookieWithoutHttpOnly.go:86:7:89:2 | struct literal | CookieWithoutHttpOnly.go:91:21:91:21 | c | provenance | | +| CookieWithoutHttpOnly.go:87:10:87:18 | "session" | CookieWithoutHttpOnly.go:86:7:89:2 | struct literal | provenance | | +| CookieWithoutHttpOnly.go:90:15:90:17 | val | CookieWithoutHttpOnly.go:86:7:89:2 | struct literal | provenance | | +| CookieWithoutHttpOnly.go:91:20:91:21 | &... | CookieWithoutHttpOnly.go:91:20:91:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:91:20:91:21 | &... | CookieWithoutHttpOnly.go:91:20:91:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:91:20:91:21 | &... | CookieWithoutHttpOnly.go:91:20:91:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:91:20:91:21 | &... | CookieWithoutHttpOnly.go:91:20:91:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:91:20:91:21 | &... | CookieWithoutHttpOnly.go:91:21:91:21 | c | provenance | | +| CookieWithoutHttpOnly.go:91:20:91:21 | &... | CookieWithoutHttpOnly.go:91:21:91:21 | c | provenance | | +| CookieWithoutHttpOnly.go:91:20:91:21 | &... [pointer] | CookieWithoutHttpOnly.go:91:20:91:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:91:20:91:21 | &... [pointer] | CookieWithoutHttpOnly.go:91:20:91:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:91:20:91:21 | &... [pointer] | CookieWithoutHttpOnly.go:91:20:91:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:91:20:91:21 | &... [pointer] | CookieWithoutHttpOnly.go:91:20:91:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:91:20:91:21 | &... [pointer] | CookieWithoutHttpOnly.go:91:21:91:21 | c | provenance | | +| CookieWithoutHttpOnly.go:91:20:91:21 | &... [pointer] | CookieWithoutHttpOnly.go:91:21:91:21 | c | provenance | | +| CookieWithoutHttpOnly.go:91:21:91:21 | c | CookieWithoutHttpOnly.go:91:20:91:21 | &... [pointer] | provenance | | +| CookieWithoutHttpOnly.go:91:21:91:21 | c | CookieWithoutHttpOnly.go:91:20:91:21 | &... [pointer] | provenance | | +| CookieWithoutHttpOnly.go:95:7:98:2 | struct literal | CookieWithoutHttpOnly.go:100:20:100:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:95:7:98:2 | struct literal | CookieWithoutHttpOnly.go:100:20:100:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:95:7:98:2 | struct literal | CookieWithoutHttpOnly.go:100:21:100:21 | c | provenance | | +| CookieWithoutHttpOnly.go:99:15:99:19 | false | CookieWithoutHttpOnly.go:95:7:98:2 | struct literal | provenance | | +| CookieWithoutHttpOnly.go:100:20:100:21 | &... | CookieWithoutHttpOnly.go:100:20:100:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:100:20:100:21 | &... | CookieWithoutHttpOnly.go:100:20:100:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:100:20:100:21 | &... | CookieWithoutHttpOnly.go:100:21:100:21 | c | provenance | | +| CookieWithoutHttpOnly.go:100:20:100:21 | &... [pointer] | CookieWithoutHttpOnly.go:100:20:100:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:100:20:100:21 | &... [pointer] | CookieWithoutHttpOnly.go:100:20:100:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:100:20:100:21 | &... [pointer] | CookieWithoutHttpOnly.go:100:21:100:21 | c | provenance | | +| CookieWithoutHttpOnly.go:100:21:100:21 | c | CookieWithoutHttpOnly.go:100:20:100:21 | &... [pointer] | provenance | | +| CookieWithoutHttpOnly.go:104:10:104:18 | "session" | CookieWithoutHttpOnly.go:106:10:106:13 | name | provenance | | +| CookieWithoutHttpOnly.go:105:7:108:2 | struct literal | CookieWithoutHttpOnly.go:110:20:110:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:105:7:108:2 | struct literal | CookieWithoutHttpOnly.go:110:20:110:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:105:7:108:2 | struct literal | CookieWithoutHttpOnly.go:110:20:110:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:105:7:108:2 | struct literal | CookieWithoutHttpOnly.go:110:20:110:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:105:7:108:2 | struct literal | CookieWithoutHttpOnly.go:110:21:110:21 | c | provenance | | +| CookieWithoutHttpOnly.go:105:7:108:2 | struct literal | CookieWithoutHttpOnly.go:110:21:110:21 | c | provenance | | +| CookieWithoutHttpOnly.go:106:10:106:13 | name | CookieWithoutHttpOnly.go:105:7:108:2 | struct literal | provenance | | +| CookieWithoutHttpOnly.go:109:15:109:19 | false | CookieWithoutHttpOnly.go:105:7:108:2 | struct literal | provenance | | +| CookieWithoutHttpOnly.go:110:20:110:21 | &... | CookieWithoutHttpOnly.go:110:20:110:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:110:20:110:21 | &... | CookieWithoutHttpOnly.go:110:20:110:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:110:20:110:21 | &... | CookieWithoutHttpOnly.go:110:20:110:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:110:20:110:21 | &... | CookieWithoutHttpOnly.go:110:20:110:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:110:20:110:21 | &... | CookieWithoutHttpOnly.go:110:21:110:21 | c | provenance | | +| CookieWithoutHttpOnly.go:110:20:110:21 | &... | CookieWithoutHttpOnly.go:110:21:110:21 | c | provenance | | +| CookieWithoutHttpOnly.go:110:20:110:21 | &... [pointer] | CookieWithoutHttpOnly.go:110:20:110:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:110:20:110:21 | &... [pointer] | CookieWithoutHttpOnly.go:110:20:110:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:110:20:110:21 | &... [pointer] | CookieWithoutHttpOnly.go:110:20:110:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:110:20:110:21 | &... [pointer] | CookieWithoutHttpOnly.go:110:20:110:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:110:20:110:21 | &... [pointer] | CookieWithoutHttpOnly.go:110:21:110:21 | c | provenance | | +| CookieWithoutHttpOnly.go:110:20:110:21 | &... [pointer] | CookieWithoutHttpOnly.go:110:21:110:21 | c | provenance | | +| CookieWithoutHttpOnly.go:110:21:110:21 | c | CookieWithoutHttpOnly.go:110:20:110:21 | &... [pointer] | provenance | | +| CookieWithoutHttpOnly.go:110:21:110:21 | c | CookieWithoutHttpOnly.go:110:20:110:21 | &... [pointer] | provenance | | +| CookieWithoutHttpOnly.go:114:13:114:24 | "login_name" | CookieWithoutHttpOnly.go:116:10:116:16 | session | provenance | | +| CookieWithoutHttpOnly.go:115:7:118:2 | struct literal | CookieWithoutHttpOnly.go:120:20:120:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:115:7:118:2 | struct literal | CookieWithoutHttpOnly.go:120:20:120:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:115:7:118:2 | struct literal | CookieWithoutHttpOnly.go:120:20:120:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:115:7:118:2 | struct literal | CookieWithoutHttpOnly.go:120:20:120:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:115:7:118:2 | struct literal | CookieWithoutHttpOnly.go:120:21:120:21 | c | provenance | | +| CookieWithoutHttpOnly.go:115:7:118:2 | struct literal | CookieWithoutHttpOnly.go:120:21:120:21 | c | provenance | | +| CookieWithoutHttpOnly.go:116:10:116:16 | session | CookieWithoutHttpOnly.go:115:7:118:2 | struct literal | provenance | | +| CookieWithoutHttpOnly.go:119:15:119:19 | false | CookieWithoutHttpOnly.go:115:7:118:2 | struct literal | provenance | | +| CookieWithoutHttpOnly.go:120:20:120:21 | &... | CookieWithoutHttpOnly.go:120:20:120:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:120:20:120:21 | &... | CookieWithoutHttpOnly.go:120:20:120:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:120:20:120:21 | &... | CookieWithoutHttpOnly.go:120:20:120:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:120:20:120:21 | &... | CookieWithoutHttpOnly.go:120:20:120:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:120:20:120:21 | &... | CookieWithoutHttpOnly.go:120:21:120:21 | c | provenance | | +| CookieWithoutHttpOnly.go:120:20:120:21 | &... | CookieWithoutHttpOnly.go:120:21:120:21 | c | provenance | | +| CookieWithoutHttpOnly.go:120:20:120:21 | &... [pointer] | CookieWithoutHttpOnly.go:120:20:120:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:120:20:120:21 | &... [pointer] | CookieWithoutHttpOnly.go:120:20:120:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:120:20:120:21 | &... [pointer] | CookieWithoutHttpOnly.go:120:20:120:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:120:20:120:21 | &... [pointer] | CookieWithoutHttpOnly.go:120:20:120:21 | &... | provenance | | +| CookieWithoutHttpOnly.go:120:20:120:21 | &... [pointer] | CookieWithoutHttpOnly.go:120:21:120:21 | c | provenance | | +| CookieWithoutHttpOnly.go:120:20:120:21 | &... [pointer] | CookieWithoutHttpOnly.go:120:21:120:21 | c | provenance | | +| CookieWithoutHttpOnly.go:120:21:120:21 | c | CookieWithoutHttpOnly.go:120:20:120:21 | &... [pointer] | provenance | | +| CookieWithoutHttpOnly.go:120:21:120:21 | c | CookieWithoutHttpOnly.go:120:20:120:21 | &... [pointer] | provenance | | +| CookieWithoutHttpOnly.go:123:13:123:49 | call to NewCookieStore | CookieWithoutHttpOnly.go:126:16:126:20 | store | provenance | | +| CookieWithoutHttpOnly.go:123:13:123:49 | call to NewCookieStore | CookieWithoutHttpOnly.go:134:16:134:20 | store | provenance | | +| CookieWithoutHttpOnly.go:123:13:123:49 | call to NewCookieStore | CookieWithoutHttpOnly.go:146:16:146:20 | store | provenance | | +| CookieWithoutHttpOnly.go:123:13:123:49 | call to NewCookieStore | CookieWithoutHttpOnly.go:158:16:158:20 | store | provenance | | +| CookieWithoutHttpOnly.go:123:13:123:49 | call to NewCookieStore | CookieWithoutHttpOnly.go:170:16:170:20 | store | provenance | | +| CookieWithoutHttpOnly.go:123:13:123:49 | call to NewCookieStore | CookieWithoutHttpOnly.go:183:16:183:20 | store | provenance | | +| CookieWithoutHttpOnly.go:123:13:123:49 | call to NewCookieStore | CookieWithoutHttpOnly.go:195:16:195:20 | store | provenance | | +| CookieWithoutHttpOnly.go:126:2:126:43 | ... := ...[0] | CookieWithoutHttpOnly.go:129:2:129:8 | session | provenance | | +| CookieWithoutHttpOnly.go:126:16:126:20 | store | CookieWithoutHttpOnly.go:126:2:126:43 | ... := ...[0] | provenance | | +| CookieWithoutHttpOnly.go:133:2:133:9 | definition of httpOnly | CookieWithoutHttpOnly.go:139:13:139:20 | httpOnly | provenance | | +| CookieWithoutHttpOnly.go:133:14:133:18 | false | CookieWithoutHttpOnly.go:139:13:139:20 | httpOnly | provenance | | +| CookieWithoutHttpOnly.go:134:2:134:8 | definition of session [pointer] | CookieWithoutHttpOnly.go:135:2:135:8 | session [pointer] | provenance | | +| CookieWithoutHttpOnly.go:134:2:134:8 | definition of session [pointer] | CookieWithoutHttpOnly.go:135:2:135:8 | session [pointer] | provenance | | +| CookieWithoutHttpOnly.go:134:2:134:8 | definition of session [pointer] | CookieWithoutHttpOnly.go:137:2:137:8 | session [pointer] | provenance | | +| CookieWithoutHttpOnly.go:134:2:134:8 | definition of session [pointer] | CookieWithoutHttpOnly.go:137:2:137:8 | session [pointer] | provenance | | +| CookieWithoutHttpOnly.go:134:2:134:8 | definition of session [pointer] | CookieWithoutHttpOnly.go:142:2:142:8 | session | provenance | | +| CookieWithoutHttpOnly.go:134:2:134:8 | definition of session [pointer] | CookieWithoutHttpOnly.go:142:2:142:8 | session | provenance | | +| CookieWithoutHttpOnly.go:134:2:134:43 | ... := ...[0] | CookieWithoutHttpOnly.go:142:2:142:8 | session | provenance | | +| CookieWithoutHttpOnly.go:134:16:134:20 | store | CookieWithoutHttpOnly.go:134:2:134:43 | ... := ...[0] | provenance | | +| CookieWithoutHttpOnly.go:135:2:135:8 | implicit dereference | CookieWithoutHttpOnly.go:134:2:134:8 | definition of session [pointer] | provenance | | +| CookieWithoutHttpOnly.go:135:2:135:8 | implicit dereference | CookieWithoutHttpOnly.go:134:2:134:8 | definition of session [pointer] | provenance | | +| CookieWithoutHttpOnly.go:135:2:135:8 | implicit dereference | CookieWithoutHttpOnly.go:135:2:135:8 | implicit dereference | provenance | | +| CookieWithoutHttpOnly.go:135:2:135:8 | implicit dereference | CookieWithoutHttpOnly.go:135:2:135:8 | implicit dereference | provenance | | +| CookieWithoutHttpOnly.go:135:2:135:8 | implicit dereference | CookieWithoutHttpOnly.go:137:2:137:8 | session | provenance | | +| CookieWithoutHttpOnly.go:135:2:135:8 | implicit dereference | CookieWithoutHttpOnly.go:137:2:137:8 | session | provenance | | +| CookieWithoutHttpOnly.go:135:2:135:8 | implicit dereference | CookieWithoutHttpOnly.go:142:2:142:8 | session | provenance | | +| CookieWithoutHttpOnly.go:135:2:135:8 | implicit dereference | CookieWithoutHttpOnly.go:142:2:142:8 | session | provenance | | +| CookieWithoutHttpOnly.go:135:2:135:8 | session [pointer] | CookieWithoutHttpOnly.go:135:2:135:8 | implicit dereference | provenance | | +| CookieWithoutHttpOnly.go:135:2:135:8 | session [pointer] | CookieWithoutHttpOnly.go:135:2:135:8 | implicit dereference | provenance | | +| CookieWithoutHttpOnly.go:137:2:137:8 | implicit dereference | CookieWithoutHttpOnly.go:134:2:134:8 | definition of session [pointer] | provenance | | +| CookieWithoutHttpOnly.go:137:2:137:8 | implicit dereference | CookieWithoutHttpOnly.go:134:2:134:8 | definition of session [pointer] | provenance | | +| CookieWithoutHttpOnly.go:137:2:137:8 | implicit dereference | CookieWithoutHttpOnly.go:135:2:135:8 | implicit dereference | provenance | | +| CookieWithoutHttpOnly.go:137:2:137:8 | implicit dereference | CookieWithoutHttpOnly.go:135:2:135:8 | implicit dereference | provenance | | +| CookieWithoutHttpOnly.go:137:2:137:8 | implicit dereference | CookieWithoutHttpOnly.go:137:2:137:8 | session | provenance | | +| CookieWithoutHttpOnly.go:137:2:137:8 | implicit dereference | CookieWithoutHttpOnly.go:137:2:137:8 | session | provenance | | +| CookieWithoutHttpOnly.go:137:2:137:8 | implicit dereference | CookieWithoutHttpOnly.go:142:2:142:8 | session | provenance | | +| CookieWithoutHttpOnly.go:137:2:137:8 | implicit dereference | CookieWithoutHttpOnly.go:142:2:142:8 | session | provenance | | +| CookieWithoutHttpOnly.go:137:2:137:8 | session | CookieWithoutHttpOnly.go:137:2:137:8 | implicit dereference | provenance | | +| CookieWithoutHttpOnly.go:137:2:137:8 | session | CookieWithoutHttpOnly.go:137:2:137:8 | implicit dereference | provenance | | +| CookieWithoutHttpOnly.go:137:2:137:8 | session [pointer] | CookieWithoutHttpOnly.go:137:2:137:8 | implicit dereference | provenance | | +| CookieWithoutHttpOnly.go:137:2:137:8 | session [pointer] | CookieWithoutHttpOnly.go:137:2:137:8 | implicit dereference | provenance | | +| CookieWithoutHttpOnly.go:137:20:140:2 | &... | CookieWithoutHttpOnly.go:137:2:137:8 | implicit dereference | provenance | | +| CookieWithoutHttpOnly.go:137:20:140:2 | &... | CookieWithoutHttpOnly.go:137:2:137:8 | implicit dereference | provenance | | +| CookieWithoutHttpOnly.go:137:20:140:2 | &... | CookieWithoutHttpOnly.go:137:2:137:8 | session | provenance | | +| CookieWithoutHttpOnly.go:137:20:140:2 | &... | CookieWithoutHttpOnly.go:137:2:137:8 | session | provenance | | +| CookieWithoutHttpOnly.go:137:20:140:2 | &... | CookieWithoutHttpOnly.go:137:20:140:2 | &... | provenance | | +| CookieWithoutHttpOnly.go:137:20:140:2 | &... | CookieWithoutHttpOnly.go:137:21:140:2 | struct literal | provenance | | +| CookieWithoutHttpOnly.go:137:21:140:2 | struct literal | CookieWithoutHttpOnly.go:137:20:140:2 | &... | provenance | | +| CookieWithoutHttpOnly.go:137:21:140:2 | struct literal | CookieWithoutHttpOnly.go:137:20:140:2 | &... | provenance | | +| CookieWithoutHttpOnly.go:139:13:139:20 | httpOnly | CookieWithoutHttpOnly.go:137:21:140:2 | struct literal | provenance | | +| CookieWithoutHttpOnly.go:146:2:146:8 | definition of session [pointer] | CookieWithoutHttpOnly.go:147:2:147:8 | session [pointer] | provenance | | +| CookieWithoutHttpOnly.go:146:2:146:8 | definition of session [pointer] | CookieWithoutHttpOnly.go:149:2:149:8 | session [pointer] | provenance | | +| CookieWithoutHttpOnly.go:146:2:146:8 | definition of session [pointer] | CookieWithoutHttpOnly.go:153:2:153:8 | session | provenance | | +| CookieWithoutHttpOnly.go:146:2:146:43 | ... := ...[0] | CookieWithoutHttpOnly.go:153:2:153:8 | session | provenance | | +| CookieWithoutHttpOnly.go:146:16:146:20 | store | CookieWithoutHttpOnly.go:146:2:146:43 | ... := ...[0] | provenance | | +| CookieWithoutHttpOnly.go:147:2:147:8 | implicit dereference | CookieWithoutHttpOnly.go:146:2:146:8 | definition of session [pointer] | provenance | | +| CookieWithoutHttpOnly.go:147:2:147:8 | implicit dereference | CookieWithoutHttpOnly.go:147:2:147:8 | implicit dereference | provenance | | +| CookieWithoutHttpOnly.go:147:2:147:8 | implicit dereference | CookieWithoutHttpOnly.go:149:2:149:8 | session | provenance | | +| CookieWithoutHttpOnly.go:147:2:147:8 | implicit dereference | CookieWithoutHttpOnly.go:153:2:153:8 | session | provenance | | +| CookieWithoutHttpOnly.go:147:2:147:8 | session [pointer] | CookieWithoutHttpOnly.go:147:2:147:8 | implicit dereference | provenance | | +| CookieWithoutHttpOnly.go:149:2:149:8 | implicit dereference | CookieWithoutHttpOnly.go:146:2:146:8 | definition of session [pointer] | provenance | | +| CookieWithoutHttpOnly.go:149:2:149:8 | implicit dereference | CookieWithoutHttpOnly.go:147:2:147:8 | implicit dereference | provenance | | +| CookieWithoutHttpOnly.go:149:2:149:8 | implicit dereference | CookieWithoutHttpOnly.go:149:2:149:8 | session | provenance | | +| CookieWithoutHttpOnly.go:149:2:149:8 | implicit dereference | CookieWithoutHttpOnly.go:153:2:153:8 | session | provenance | | +| CookieWithoutHttpOnly.go:149:2:149:8 | session | CookieWithoutHttpOnly.go:149:2:149:8 | implicit dereference | provenance | | +| CookieWithoutHttpOnly.go:149:2:149:8 | session [pointer] | CookieWithoutHttpOnly.go:149:2:149:8 | implicit dereference | provenance | | +| CookieWithoutHttpOnly.go:149:20:151:2 | &... | CookieWithoutHttpOnly.go:149:2:149:8 | implicit dereference | provenance | | +| CookieWithoutHttpOnly.go:149:20:151:2 | &... | CookieWithoutHttpOnly.go:149:2:149:8 | session | provenance | | +| CookieWithoutHttpOnly.go:149:20:151:2 | &... | CookieWithoutHttpOnly.go:149:20:151:2 | &... | provenance | | +| CookieWithoutHttpOnly.go:149:21:151:2 | struct literal | CookieWithoutHttpOnly.go:149:20:151:2 | &... | provenance | | +| CookieWithoutHttpOnly.go:157:2:157:9 | definition of httpOnly | CookieWithoutHttpOnly.go:163:13:163:20 | httpOnly | provenance | | +| CookieWithoutHttpOnly.go:157:14:157:17 | true | CookieWithoutHttpOnly.go:163:13:163:20 | httpOnly | provenance | | +| CookieWithoutHttpOnly.go:158:2:158:8 | definition of session [pointer] | CookieWithoutHttpOnly.go:159:2:159:8 | session [pointer] | provenance | | +| CookieWithoutHttpOnly.go:158:2:158:8 | definition of session [pointer] | CookieWithoutHttpOnly.go:159:2:159:8 | session [pointer] | provenance | | +| CookieWithoutHttpOnly.go:158:2:158:8 | definition of session [pointer] | CookieWithoutHttpOnly.go:161:2:161:8 | session [pointer] | provenance | | +| CookieWithoutHttpOnly.go:158:2:158:8 | definition of session [pointer] | CookieWithoutHttpOnly.go:161:2:161:8 | session [pointer] | provenance | | +| CookieWithoutHttpOnly.go:158:2:158:8 | definition of session [pointer] | CookieWithoutHttpOnly.go:166:2:166:8 | session | provenance | | +| CookieWithoutHttpOnly.go:158:2:158:8 | definition of session [pointer] | CookieWithoutHttpOnly.go:166:2:166:8 | session | provenance | | +| CookieWithoutHttpOnly.go:158:2:158:43 | ... := ...[0] | CookieWithoutHttpOnly.go:166:2:166:8 | session | provenance | | +| CookieWithoutHttpOnly.go:158:16:158:20 | store | CookieWithoutHttpOnly.go:158:2:158:43 | ... := ...[0] | provenance | | +| CookieWithoutHttpOnly.go:159:2:159:8 | implicit dereference | CookieWithoutHttpOnly.go:158:2:158:8 | definition of session [pointer] | provenance | | +| CookieWithoutHttpOnly.go:159:2:159:8 | implicit dereference | CookieWithoutHttpOnly.go:158:2:158:8 | definition of session [pointer] | provenance | | +| CookieWithoutHttpOnly.go:159:2:159:8 | implicit dereference | CookieWithoutHttpOnly.go:159:2:159:8 | implicit dereference | provenance | | +| CookieWithoutHttpOnly.go:159:2:159:8 | implicit dereference | CookieWithoutHttpOnly.go:159:2:159:8 | implicit dereference | provenance | | +| CookieWithoutHttpOnly.go:159:2:159:8 | implicit dereference | CookieWithoutHttpOnly.go:161:2:161:8 | session | provenance | | +| CookieWithoutHttpOnly.go:159:2:159:8 | implicit dereference | CookieWithoutHttpOnly.go:161:2:161:8 | session | provenance | | +| CookieWithoutHttpOnly.go:159:2:159:8 | implicit dereference | CookieWithoutHttpOnly.go:166:2:166:8 | session | provenance | | +| CookieWithoutHttpOnly.go:159:2:159:8 | implicit dereference | CookieWithoutHttpOnly.go:166:2:166:8 | session | provenance | | +| CookieWithoutHttpOnly.go:159:2:159:8 | session [pointer] | CookieWithoutHttpOnly.go:159:2:159:8 | implicit dereference | provenance | | +| CookieWithoutHttpOnly.go:159:2:159:8 | session [pointer] | CookieWithoutHttpOnly.go:159:2:159:8 | implicit dereference | provenance | | +| CookieWithoutHttpOnly.go:161:2:161:8 | implicit dereference | CookieWithoutHttpOnly.go:158:2:158:8 | definition of session [pointer] | provenance | | +| CookieWithoutHttpOnly.go:161:2:161:8 | implicit dereference | CookieWithoutHttpOnly.go:158:2:158:8 | definition of session [pointer] | provenance | | +| CookieWithoutHttpOnly.go:161:2:161:8 | implicit dereference | CookieWithoutHttpOnly.go:159:2:159:8 | implicit dereference | provenance | | +| CookieWithoutHttpOnly.go:161:2:161:8 | implicit dereference | CookieWithoutHttpOnly.go:159:2:159:8 | implicit dereference | provenance | | +| CookieWithoutHttpOnly.go:161:2:161:8 | implicit dereference | CookieWithoutHttpOnly.go:161:2:161:8 | session | provenance | | +| CookieWithoutHttpOnly.go:161:2:161:8 | implicit dereference | CookieWithoutHttpOnly.go:161:2:161:8 | session | provenance | | +| CookieWithoutHttpOnly.go:161:2:161:8 | implicit dereference | CookieWithoutHttpOnly.go:166:2:166:8 | session | provenance | | +| CookieWithoutHttpOnly.go:161:2:161:8 | implicit dereference | CookieWithoutHttpOnly.go:166:2:166:8 | session | provenance | | +| CookieWithoutHttpOnly.go:161:2:161:8 | session | CookieWithoutHttpOnly.go:161:2:161:8 | implicit dereference | provenance | | +| CookieWithoutHttpOnly.go:161:2:161:8 | session | CookieWithoutHttpOnly.go:161:2:161:8 | implicit dereference | provenance | | +| CookieWithoutHttpOnly.go:161:2:161:8 | session [pointer] | CookieWithoutHttpOnly.go:161:2:161:8 | implicit dereference | provenance | | +| CookieWithoutHttpOnly.go:161:2:161:8 | session [pointer] | CookieWithoutHttpOnly.go:161:2:161:8 | implicit dereference | provenance | | +| CookieWithoutHttpOnly.go:161:20:164:2 | &... | CookieWithoutHttpOnly.go:161:2:161:8 | implicit dereference | provenance | | +| CookieWithoutHttpOnly.go:161:20:164:2 | &... | CookieWithoutHttpOnly.go:161:2:161:8 | implicit dereference | provenance | | +| CookieWithoutHttpOnly.go:161:20:164:2 | &... | CookieWithoutHttpOnly.go:161:2:161:8 | session | provenance | | +| CookieWithoutHttpOnly.go:161:20:164:2 | &... | CookieWithoutHttpOnly.go:161:2:161:8 | session | provenance | | +| CookieWithoutHttpOnly.go:161:20:164:2 | &... | CookieWithoutHttpOnly.go:161:20:164:2 | &... | provenance | | +| CookieWithoutHttpOnly.go:161:20:164:2 | &... | CookieWithoutHttpOnly.go:161:21:164:2 | struct literal | provenance | | +| CookieWithoutHttpOnly.go:161:21:164:2 | struct literal | CookieWithoutHttpOnly.go:161:20:164:2 | &... | provenance | | +| CookieWithoutHttpOnly.go:161:21:164:2 | struct literal | CookieWithoutHttpOnly.go:161:20:164:2 | &... | provenance | | +| CookieWithoutHttpOnly.go:163:13:163:20 | httpOnly | CookieWithoutHttpOnly.go:161:21:164:2 | struct literal | provenance | | +| CookieWithoutHttpOnly.go:169:56:169:63 | argument corresponding to httpOnly | CookieWithoutHttpOnly.go:175:13:175:20 | httpOnly | provenance | | +| CookieWithoutHttpOnly.go:169:56:169:63 | definition of httpOnly | CookieWithoutHttpOnly.go:175:13:175:20 | httpOnly | provenance | | +| CookieWithoutHttpOnly.go:170:2:170:8 | definition of session [pointer] | CookieWithoutHttpOnly.go:171:2:171:8 | session [pointer] | provenance | | +| CookieWithoutHttpOnly.go:170:2:170:8 | definition of session [pointer] | CookieWithoutHttpOnly.go:171:2:171:8 | session [pointer] | provenance | | +| CookieWithoutHttpOnly.go:170:2:170:8 | definition of session [pointer] | CookieWithoutHttpOnly.go:173:2:173:8 | session [pointer] | provenance | | +| CookieWithoutHttpOnly.go:170:2:170:8 | definition of session [pointer] | CookieWithoutHttpOnly.go:173:2:173:8 | session [pointer] | provenance | | +| CookieWithoutHttpOnly.go:170:2:170:8 | definition of session [pointer] | CookieWithoutHttpOnly.go:178:2:178:8 | session | provenance | | +| CookieWithoutHttpOnly.go:170:2:170:8 | definition of session [pointer] | CookieWithoutHttpOnly.go:178:2:178:8 | session | provenance | | +| CookieWithoutHttpOnly.go:170:2:170:43 | ... := ...[0] | CookieWithoutHttpOnly.go:178:2:178:8 | session | provenance | | +| CookieWithoutHttpOnly.go:170:16:170:20 | store | CookieWithoutHttpOnly.go:170:2:170:43 | ... := ...[0] | provenance | | +| CookieWithoutHttpOnly.go:171:2:171:8 | implicit dereference | CookieWithoutHttpOnly.go:170:2:170:8 | definition of session [pointer] | provenance | | +| CookieWithoutHttpOnly.go:171:2:171:8 | implicit dereference | CookieWithoutHttpOnly.go:170:2:170:8 | definition of session [pointer] | provenance | | +| CookieWithoutHttpOnly.go:171:2:171:8 | implicit dereference | CookieWithoutHttpOnly.go:171:2:171:8 | implicit dereference | provenance | | +| CookieWithoutHttpOnly.go:171:2:171:8 | implicit dereference | CookieWithoutHttpOnly.go:171:2:171:8 | implicit dereference | provenance | | +| CookieWithoutHttpOnly.go:171:2:171:8 | implicit dereference | CookieWithoutHttpOnly.go:173:2:173:8 | session | provenance | | +| CookieWithoutHttpOnly.go:171:2:171:8 | implicit dereference | CookieWithoutHttpOnly.go:173:2:173:8 | session | provenance | | +| CookieWithoutHttpOnly.go:171:2:171:8 | implicit dereference | CookieWithoutHttpOnly.go:178:2:178:8 | session | provenance | | +| CookieWithoutHttpOnly.go:171:2:171:8 | implicit dereference | CookieWithoutHttpOnly.go:178:2:178:8 | session | provenance | | +| CookieWithoutHttpOnly.go:171:2:171:8 | session [pointer] | CookieWithoutHttpOnly.go:171:2:171:8 | implicit dereference | provenance | | +| CookieWithoutHttpOnly.go:171:2:171:8 | session [pointer] | CookieWithoutHttpOnly.go:171:2:171:8 | implicit dereference | provenance | | +| CookieWithoutHttpOnly.go:173:2:173:8 | implicit dereference | CookieWithoutHttpOnly.go:170:2:170:8 | definition of session [pointer] | provenance | | +| CookieWithoutHttpOnly.go:173:2:173:8 | implicit dereference | CookieWithoutHttpOnly.go:170:2:170:8 | definition of session [pointer] | provenance | | +| CookieWithoutHttpOnly.go:173:2:173:8 | implicit dereference | CookieWithoutHttpOnly.go:171:2:171:8 | implicit dereference | provenance | | +| CookieWithoutHttpOnly.go:173:2:173:8 | implicit dereference | CookieWithoutHttpOnly.go:171:2:171:8 | implicit dereference | provenance | | +| CookieWithoutHttpOnly.go:173:2:173:8 | implicit dereference | CookieWithoutHttpOnly.go:173:2:173:8 | session | provenance | | +| CookieWithoutHttpOnly.go:173:2:173:8 | implicit dereference | CookieWithoutHttpOnly.go:173:2:173:8 | session | provenance | | +| CookieWithoutHttpOnly.go:173:2:173:8 | implicit dereference | CookieWithoutHttpOnly.go:178:2:178:8 | session | provenance | | +| CookieWithoutHttpOnly.go:173:2:173:8 | implicit dereference | CookieWithoutHttpOnly.go:178:2:178:8 | session | provenance | | +| CookieWithoutHttpOnly.go:173:2:173:8 | session | CookieWithoutHttpOnly.go:173:2:173:8 | implicit dereference | provenance | | +| CookieWithoutHttpOnly.go:173:2:173:8 | session | CookieWithoutHttpOnly.go:173:2:173:8 | implicit dereference | provenance | | +| CookieWithoutHttpOnly.go:173:2:173:8 | session [pointer] | CookieWithoutHttpOnly.go:173:2:173:8 | implicit dereference | provenance | | +| CookieWithoutHttpOnly.go:173:2:173:8 | session [pointer] | CookieWithoutHttpOnly.go:173:2:173:8 | implicit dereference | provenance | | +| CookieWithoutHttpOnly.go:173:20:176:2 | &... | CookieWithoutHttpOnly.go:173:2:173:8 | implicit dereference | provenance | | +| CookieWithoutHttpOnly.go:173:20:176:2 | &... | CookieWithoutHttpOnly.go:173:2:173:8 | implicit dereference | provenance | | +| CookieWithoutHttpOnly.go:173:20:176:2 | &... | CookieWithoutHttpOnly.go:173:2:173:8 | session | provenance | | +| CookieWithoutHttpOnly.go:173:20:176:2 | &... | CookieWithoutHttpOnly.go:173:2:173:8 | session | provenance | | +| CookieWithoutHttpOnly.go:173:20:176:2 | &... | CookieWithoutHttpOnly.go:173:20:176:2 | &... | provenance | | +| CookieWithoutHttpOnly.go:173:20:176:2 | &... | CookieWithoutHttpOnly.go:173:21:176:2 | struct literal | provenance | | +| CookieWithoutHttpOnly.go:173:21:176:2 | struct literal | CookieWithoutHttpOnly.go:173:20:176:2 | &... | provenance | | +| CookieWithoutHttpOnly.go:173:21:176:2 | struct literal | CookieWithoutHttpOnly.go:173:20:176:2 | &... | provenance | | +| CookieWithoutHttpOnly.go:175:13:175:20 | httpOnly | CookieWithoutHttpOnly.go:173:21:176:2 | struct literal | provenance | | +| CookieWithoutHttpOnly.go:183:2:183:43 | ... := ...[0] | CookieWithoutHttpOnly.go:191:19:191:25 | session | provenance | | +| CookieWithoutHttpOnly.go:183:16:183:20 | store | CookieWithoutHttpOnly.go:183:2:183:43 | ... := ...[0] | provenance | | +| CookieWithoutHttpOnly.go:195:2:195:43 | ... := ...[0] | CookieWithoutHttpOnly.go:202:19:202:25 | session | provenance | | +| CookieWithoutHttpOnly.go:195:16:195:20 | store | CookieWithoutHttpOnly.go:195:2:195:43 | ... := ...[0] | provenance | | nodes | CookieWithoutHttpOnly.go:11:7:14:2 | struct literal | semmle.label | struct literal | | CookieWithoutHttpOnly.go:12:10:12:18 | "session" | semmle.label | "session" | diff --git a/go/ql/test/experimental/CWE-203/Timing.expected b/go/ql/test/experimental/CWE-203/Timing.expected index 05e19774dbcf..b1aa5487aa97 100644 --- a/go/ql/test/experimental/CWE-203/Timing.expected +++ b/go/ql/test/experimental/CWE-203/Timing.expected @@ -1,10 +1,10 @@ edges -| timing.go:15:18:15:27 | selection of Header | timing.go:15:18:15:45 | call to Get | -| timing.go:15:18:15:45 | call to Get | timing.go:17:31:17:42 | headerSecret | -| timing.go:28:18:28:27 | selection of Header | timing.go:28:18:28:45 | call to Get | -| timing.go:28:18:28:45 | call to Get | timing.go:30:47:30:58 | headerSecret | -| timing.go:41:18:41:27 | selection of Header | timing.go:41:18:41:45 | call to Get | -| timing.go:41:18:41:45 | call to Get | timing.go:42:25:42:36 | headerSecret | +| timing.go:15:18:15:27 | selection of Header | timing.go:15:18:15:45 | call to Get | provenance | | +| timing.go:15:18:15:45 | call to Get | timing.go:17:31:17:42 | headerSecret | provenance | | +| timing.go:28:18:28:27 | selection of Header | timing.go:28:18:28:45 | call to Get | provenance | | +| timing.go:28:18:28:45 | call to Get | timing.go:30:47:30:58 | headerSecret | provenance | | +| timing.go:41:18:41:27 | selection of Header | timing.go:41:18:41:45 | call to Get | provenance | | +| timing.go:41:18:41:45 | call to Get | timing.go:42:25:42:36 | headerSecret | provenance | | nodes | timing.go:15:18:15:27 | selection of Header | semmle.label | selection of Header | | timing.go:15:18:15:45 | call to Get | semmle.label | call to Get | diff --git a/go/ql/test/experimental/CWE-287/ImproperLdapAuth.expected b/go/ql/test/experimental/CWE-287/ImproperLdapAuth.expected index 16d32e489375..14629dfec2e0 100644 --- a/go/ql/test/experimental/CWE-287/ImproperLdapAuth.expected +++ b/go/ql/test/experimental/CWE-287/ImproperLdapAuth.expected @@ -1,7 +1,7 @@ edges -| ImproperLdapAuth.go:18:18:18:24 | selection of URL | ImproperLdapAuth.go:18:18:18:32 | call to Query | -| ImproperLdapAuth.go:18:18:18:32 | call to Query | ImproperLdapAuth.go:28:23:28:34 | bindPassword | -| ImproperLdapAuth.go:87:18:87:19 | "" | ImproperLdapAuth.go:97:23:97:34 | bindPassword | +| ImproperLdapAuth.go:18:18:18:24 | selection of URL | ImproperLdapAuth.go:18:18:18:32 | call to Query | provenance | | +| ImproperLdapAuth.go:18:18:18:32 | call to Query | ImproperLdapAuth.go:28:23:28:34 | bindPassword | provenance | | +| ImproperLdapAuth.go:87:18:87:19 | "" | ImproperLdapAuth.go:97:23:97:34 | bindPassword | provenance | | nodes | ImproperLdapAuth.go:18:18:18:24 | selection of URL | semmle.label | selection of URL | | ImproperLdapAuth.go:18:18:18:32 | call to Query | semmle.label | call to Query | diff --git a/go/ql/test/experimental/CWE-321-V2/HardCodedKeys.expected b/go/ql/test/experimental/CWE-321-V2/HardCodedKeys.expected index 6d1d1693ab71..5b26a2a9b369 100644 --- a/go/ql/test/experimental/CWE-321-V2/HardCodedKeys.expected +++ b/go/ql/test/experimental/CWE-321-V2/HardCodedKeys.expected @@ -1,8 +1,8 @@ edges -| go-jose.v3.go:13:14:13:34 | type conversion | go-jose.v3.go:24:32:24:37 | JwtKey | -| go-jose.v3.go:13:21:13:33 | "AllYourBase" | go-jose.v3.go:13:14:13:34 | type conversion | -| golang-jwt-v5.go:19:15:19:35 | type conversion | golang-jwt-v5.go:27:9:27:15 | JwtKey1 | -| golang-jwt-v5.go:19:22:19:34 | "AllYourBase" | golang-jwt-v5.go:19:15:19:35 | type conversion | +| go-jose.v3.go:13:14:13:34 | type conversion | go-jose.v3.go:24:32:24:37 | JwtKey | provenance | | +| go-jose.v3.go:13:21:13:33 | "AllYourBase" | go-jose.v3.go:13:14:13:34 | type conversion | provenance | | +| golang-jwt-v5.go:19:15:19:35 | type conversion | golang-jwt-v5.go:27:9:27:15 | JwtKey1 | provenance | | +| golang-jwt-v5.go:19:22:19:34 | "AllYourBase" | golang-jwt-v5.go:19:15:19:35 | type conversion | provenance | | nodes | go-jose.v3.go:13:14:13:34 | type conversion | semmle.label | type conversion | | go-jose.v3.go:13:21:13:33 | "AllYourBase" | semmle.label | "AllYourBase" | diff --git a/go/ql/test/experimental/CWE-321/HardcodedKeys.expected b/go/ql/test/experimental/CWE-321/HardcodedKeys.expected index 873bb55b7c2c..bcc40eacb231 100644 --- a/go/ql/test/experimental/CWE-321/HardcodedKeys.expected +++ b/go/ql/test/experimental/CWE-321/HardcodedKeys.expected @@ -1,44 +1,44 @@ edges -| HardcodedKeysBad.go:11:18:11:38 | type conversion | HardcodedKeysBad.go:19:28:19:39 | mySigningKey | -| HardcodedKeysBad.go:11:25:11:37 | "AllYourBase" | HardcodedKeysBad.go:11:18:11:38 | type conversion | -| main.go:33:18:33:31 | type conversion | main.go:42:28:42:39 | mySigningKey | -| main.go:33:25:33:30 | "key1" | main.go:33:18:33:31 | type conversion | -| main.go:50:23:50:28 | "key2" | main.go:50:16:50:29 | type conversion | -| main.go:68:9:68:22 | type conversion | main.go:69:44:69:46 | key | -| main.go:68:16:68:21 | `key3` | main.go:68:9:68:22 | type conversion | -| main.go:73:9:73:22 | type conversion | main.go:74:66:74:68 | key | -| main.go:73:16:73:21 | "key4" | main.go:73:9:73:22 | type conversion | -| main.go:77:10:77:23 | type conversion | main.go:82:15:82:18 | key2 | -| main.go:77:17:77:22 | "key5" | main.go:77:10:77:23 | type conversion | -| main.go:88:9:88:22 | type conversion | main.go:92:41:92:43 | key | -| main.go:88:16:88:21 | "key6" | main.go:88:9:88:22 | type conversion | -| main.go:97:10:97:23 | type conversion | main.go:99:66:99:69 | key2 | -| main.go:97:17:97:22 | "key7" | main.go:97:10:97:23 | type conversion | -| main.go:105:9:105:22 | type conversion | main.go:110:30:110:32 | key | -| main.go:105:16:105:21 | "key8" | main.go:105:9:105:22 | type conversion | -| main.go:114:15:114:28 | type conversion | main.go:115:16:115:24 | sharedKey | -| main.go:114:22:114:27 | "key9" | main.go:114:15:114:28 | type conversion | -| main.go:118:23:118:37 | type conversion | main.go:121:16:121:30 | sharedKeyglobal | -| main.go:118:30:118:36 | "key10" | main.go:118:23:118:37 | type conversion | -| main.go:127:27:127:33 | "key11" | main.go:127:20:127:34 | type conversion | -| main.go:142:14:142:28 | type conversion | main.go:144:39:144:46 | mySecret | -| main.go:142:21:142:27 | "key12" | main.go:142:14:142:28 | type conversion | -| main.go:149:14:149:28 | type conversion | main.go:153:11:153:18 | mySecret | -| main.go:149:21:149:27 | "key13" | main.go:149:14:149:28 | type conversion | -| main.go:160:12:160:26 | type conversion | main.go:161:34:161:39 | secret | -| main.go:160:19:160:25 | "key14" | main.go:160:12:160:26 | type conversion | -| main.go:166:12:166:26 | type conversion | main.go:167:32:167:37 | secret | -| main.go:166:19:166:25 | "key15" | main.go:166:12:166:26 | type conversion | -| main.go:172:12:172:26 | type conversion | main.go:173:41:173:46 | secret | -| main.go:172:19:172:25 | "key16" | main.go:172:12:172:26 | type conversion | -| main.go:178:12:178:26 | type conversion | main.go:179:51:179:56 | secret | -| main.go:178:19:178:25 | "key17" | main.go:178:12:178:26 | type conversion | -| main.go:184:12:184:26 | type conversion | main.go:185:42:185:47 | secret | -| main.go:184:19:184:25 | "key18" | main.go:184:12:184:26 | type conversion | -| main.go:190:12:190:26 | type conversion | main.go:193:33:193:38 | secret | -| main.go:190:19:190:25 | "key19" | main.go:190:12:190:26 | type conversion | -| sanitizer.go:17:9:17:21 | type conversion | sanitizer.go:18:44:18:46 | key | -| sanitizer.go:17:16:17:20 | `key` | sanitizer.go:17:9:17:21 | type conversion | +| HardcodedKeysBad.go:11:18:11:38 | type conversion | HardcodedKeysBad.go:19:28:19:39 | mySigningKey | provenance | | +| HardcodedKeysBad.go:11:25:11:37 | "AllYourBase" | HardcodedKeysBad.go:11:18:11:38 | type conversion | provenance | | +| main.go:33:18:33:31 | type conversion | main.go:42:28:42:39 | mySigningKey | provenance | | +| main.go:33:25:33:30 | "key1" | main.go:33:18:33:31 | type conversion | provenance | | +| main.go:50:23:50:28 | "key2" | main.go:50:16:50:29 | type conversion | provenance | | +| main.go:68:9:68:22 | type conversion | main.go:69:44:69:46 | key | provenance | | +| main.go:68:16:68:21 | `key3` | main.go:68:9:68:22 | type conversion | provenance | | +| main.go:73:9:73:22 | type conversion | main.go:74:66:74:68 | key | provenance | | +| main.go:73:16:73:21 | "key4" | main.go:73:9:73:22 | type conversion | provenance | | +| main.go:77:10:77:23 | type conversion | main.go:82:15:82:18 | key2 | provenance | | +| main.go:77:17:77:22 | "key5" | main.go:77:10:77:23 | type conversion | provenance | | +| main.go:88:9:88:22 | type conversion | main.go:92:41:92:43 | key | provenance | | +| main.go:88:16:88:21 | "key6" | main.go:88:9:88:22 | type conversion | provenance | | +| main.go:97:10:97:23 | type conversion | main.go:99:66:99:69 | key2 | provenance | | +| main.go:97:17:97:22 | "key7" | main.go:97:10:97:23 | type conversion | provenance | | +| main.go:105:9:105:22 | type conversion | main.go:110:30:110:32 | key | provenance | | +| main.go:105:16:105:21 | "key8" | main.go:105:9:105:22 | type conversion | provenance | | +| main.go:114:15:114:28 | type conversion | main.go:115:16:115:24 | sharedKey | provenance | | +| main.go:114:22:114:27 | "key9" | main.go:114:15:114:28 | type conversion | provenance | | +| main.go:118:23:118:37 | type conversion | main.go:121:16:121:30 | sharedKeyglobal | provenance | | +| main.go:118:30:118:36 | "key10" | main.go:118:23:118:37 | type conversion | provenance | | +| main.go:127:27:127:33 | "key11" | main.go:127:20:127:34 | type conversion | provenance | | +| main.go:142:14:142:28 | type conversion | main.go:144:39:144:46 | mySecret | provenance | | +| main.go:142:21:142:27 | "key12" | main.go:142:14:142:28 | type conversion | provenance | | +| main.go:149:14:149:28 | type conversion | main.go:153:11:153:18 | mySecret | provenance | | +| main.go:149:21:149:27 | "key13" | main.go:149:14:149:28 | type conversion | provenance | | +| main.go:160:12:160:26 | type conversion | main.go:161:34:161:39 | secret | provenance | | +| main.go:160:19:160:25 | "key14" | main.go:160:12:160:26 | type conversion | provenance | | +| main.go:166:12:166:26 | type conversion | main.go:167:32:167:37 | secret | provenance | | +| main.go:166:19:166:25 | "key15" | main.go:166:12:166:26 | type conversion | provenance | | +| main.go:172:12:172:26 | type conversion | main.go:173:41:173:46 | secret | provenance | | +| main.go:172:19:172:25 | "key16" | main.go:172:12:172:26 | type conversion | provenance | | +| main.go:178:12:178:26 | type conversion | main.go:179:51:179:56 | secret | provenance | | +| main.go:178:19:178:25 | "key17" | main.go:178:12:178:26 | type conversion | provenance | | +| main.go:184:12:184:26 | type conversion | main.go:185:42:185:47 | secret | provenance | | +| main.go:184:19:184:25 | "key18" | main.go:184:12:184:26 | type conversion | provenance | | +| main.go:190:12:190:26 | type conversion | main.go:193:33:193:38 | secret | provenance | | +| main.go:190:19:190:25 | "key19" | main.go:190:12:190:26 | type conversion | provenance | | +| sanitizer.go:17:9:17:21 | type conversion | sanitizer.go:18:44:18:46 | key | provenance | | +| sanitizer.go:17:16:17:20 | `key` | sanitizer.go:17:9:17:21 | type conversion | provenance | | nodes | HardcodedKeysBad.go:11:18:11:38 | type conversion | semmle.label | type conversion | | HardcodedKeysBad.go:11:25:11:37 | "AllYourBase" | semmle.label | "AllYourBase" | diff --git a/go/ql/test/experimental/CWE-347/ParseJWTWithoutVerification.expected b/go/ql/test/experimental/CWE-347/ParseJWTWithoutVerification.expected index 7162ed5802f2..d067b5eb83dc 100644 --- a/go/ql/test/experimental/CWE-347/ParseJWTWithoutVerification.expected +++ b/go/ql/test/experimental/CWE-347/ParseJWTWithoutVerification.expected @@ -1,16 +1,16 @@ edges -| go-jose.v3.go:25:16:25:20 | selection of URL | go-jose.v3.go:25:16:25:28 | call to Query | -| go-jose.v3.go:25:16:25:28 | call to Query | go-jose.v3.go:25:16:25:47 | call to Get | -| go-jose.v3.go:25:16:25:47 | call to Get | go-jose.v3.go:26:15:26:25 | signedToken | -| go-jose.v3.go:26:15:26:25 | signedToken | go-jose.v3.go:29:19:29:29 | definition of signedToken | -| go-jose.v3.go:29:19:29:29 | definition of signedToken | go-jose.v3.go:31:37:31:47 | signedToken | -| go-jose.v3.go:31:2:31:48 | ... := ...[0] | go-jose.v3.go:33:12:33:23 | DecodedToken | -| go-jose.v3.go:31:37:31:47 | signedToken | go-jose.v3.go:31:2:31:48 | ... := ...[0] | -| golang-jwt-v5.go:28:16:28:20 | selection of URL | golang-jwt-v5.go:28:16:28:28 | call to Query | -| golang-jwt-v5.go:28:16:28:28 | call to Query | golang-jwt-v5.go:28:16:28:47 | call to Get | -| golang-jwt-v5.go:28:16:28:47 | call to Get | golang-jwt-v5.go:29:25:29:35 | signedToken | -| golang-jwt-v5.go:29:25:29:35 | signedToken | golang-jwt-v5.go:32:29:32:39 | definition of signedToken | -| golang-jwt-v5.go:32:29:32:39 | definition of signedToken | golang-jwt-v5.go:34:58:34:68 | signedToken | +| go-jose.v3.go:25:16:25:20 | selection of URL | go-jose.v3.go:25:16:25:28 | call to Query | provenance | | +| go-jose.v3.go:25:16:25:28 | call to Query | go-jose.v3.go:25:16:25:47 | call to Get | provenance | | +| go-jose.v3.go:25:16:25:47 | call to Get | go-jose.v3.go:26:15:26:25 | signedToken | provenance | | +| go-jose.v3.go:26:15:26:25 | signedToken | go-jose.v3.go:29:19:29:29 | definition of signedToken | provenance | | +| go-jose.v3.go:29:19:29:29 | definition of signedToken | go-jose.v3.go:31:37:31:47 | signedToken | provenance | | +| go-jose.v3.go:31:2:31:48 | ... := ...[0] | go-jose.v3.go:33:12:33:23 | DecodedToken | provenance | | +| go-jose.v3.go:31:37:31:47 | signedToken | go-jose.v3.go:31:2:31:48 | ... := ...[0] | provenance | | +| golang-jwt-v5.go:28:16:28:20 | selection of URL | golang-jwt-v5.go:28:16:28:28 | call to Query | provenance | | +| golang-jwt-v5.go:28:16:28:28 | call to Query | golang-jwt-v5.go:28:16:28:47 | call to Get | provenance | | +| golang-jwt-v5.go:28:16:28:47 | call to Get | golang-jwt-v5.go:29:25:29:35 | signedToken | provenance | | +| golang-jwt-v5.go:29:25:29:35 | signedToken | golang-jwt-v5.go:32:29:32:39 | definition of signedToken | provenance | | +| golang-jwt-v5.go:32:29:32:39 | definition of signedToken | golang-jwt-v5.go:34:58:34:68 | signedToken | provenance | | nodes | go-jose.v3.go:25:16:25:20 | selection of URL | semmle.label | selection of URL | | go-jose.v3.go:25:16:25:28 | call to Query | semmle.label | call to Query | diff --git a/go/ql/test/experimental/CWE-369/DivideByZero.expected b/go/ql/test/experimental/CWE-369/DivideByZero.expected index 0d979a79790d..0b6eeb933176 100644 --- a/go/ql/test/experimental/CWE-369/DivideByZero.expected +++ b/go/ql/test/experimental/CWE-369/DivideByZero.expected @@ -1,26 +1,26 @@ edges -| DivideByZero.go:10:12:10:16 | selection of URL | DivideByZero.go:10:12:10:24 | call to Query | -| DivideByZero.go:10:12:10:24 | call to Query | DivideByZero.go:11:27:11:32 | param1 | -| DivideByZero.go:11:2:11:33 | ... := ...[0] | DivideByZero.go:12:16:12:20 | value | -| DivideByZero.go:11:27:11:32 | param1 | DivideByZero.go:11:2:11:33 | ... := ...[0] | -| DivideByZero.go:17:12:17:16 | selection of URL | DivideByZero.go:17:12:17:24 | call to Query | -| DivideByZero.go:17:12:17:24 | call to Query | DivideByZero.go:18:11:18:24 | type conversion | -| DivideByZero.go:18:11:18:24 | type conversion | DivideByZero.go:19:16:19:20 | value | -| DivideByZero.go:24:12:24:16 | selection of URL | DivideByZero.go:24:12:24:24 | call to Query | -| DivideByZero.go:24:12:24:24 | call to Query | DivideByZero.go:25:31:25:36 | param1 | -| DivideByZero.go:25:2:25:45 | ... := ...[0] | DivideByZero.go:26:16:26:20 | value | -| DivideByZero.go:25:31:25:36 | param1 | DivideByZero.go:25:2:25:45 | ... := ...[0] | -| DivideByZero.go:31:12:31:16 | selection of URL | DivideByZero.go:31:12:31:24 | call to Query | -| DivideByZero.go:31:12:31:24 | call to Query | DivideByZero.go:32:33:32:38 | param1 | -| DivideByZero.go:32:2:32:43 | ... := ...[0] | DivideByZero.go:33:16:33:20 | value | -| DivideByZero.go:32:33:32:38 | param1 | DivideByZero.go:32:2:32:43 | ... := ...[0] | -| DivideByZero.go:38:12:38:16 | selection of URL | DivideByZero.go:38:12:38:24 | call to Query | -| DivideByZero.go:38:12:38:24 | call to Query | DivideByZero.go:39:32:39:37 | param1 | -| DivideByZero.go:39:2:39:46 | ... := ...[0] | DivideByZero.go:40:16:40:20 | value | -| DivideByZero.go:39:32:39:37 | param1 | DivideByZero.go:39:2:39:46 | ... := ...[0] | -| DivideByZero.go:54:12:54:16 | selection of URL | DivideByZero.go:54:12:54:24 | call to Query | -| DivideByZero.go:54:12:54:24 | call to Query | DivideByZero.go:55:11:55:24 | type conversion | -| DivideByZero.go:55:11:55:24 | type conversion | DivideByZero.go:57:17:57:21 | value | +| DivideByZero.go:10:12:10:16 | selection of URL | DivideByZero.go:10:12:10:24 | call to Query | provenance | | +| DivideByZero.go:10:12:10:24 | call to Query | DivideByZero.go:11:27:11:32 | param1 | provenance | | +| DivideByZero.go:11:2:11:33 | ... := ...[0] | DivideByZero.go:12:16:12:20 | value | provenance | | +| DivideByZero.go:11:27:11:32 | param1 | DivideByZero.go:11:2:11:33 | ... := ...[0] | provenance | | +| DivideByZero.go:17:12:17:16 | selection of URL | DivideByZero.go:17:12:17:24 | call to Query | provenance | | +| DivideByZero.go:17:12:17:24 | call to Query | DivideByZero.go:18:11:18:24 | type conversion | provenance | | +| DivideByZero.go:18:11:18:24 | type conversion | DivideByZero.go:19:16:19:20 | value | provenance | | +| DivideByZero.go:24:12:24:16 | selection of URL | DivideByZero.go:24:12:24:24 | call to Query | provenance | | +| DivideByZero.go:24:12:24:24 | call to Query | DivideByZero.go:25:31:25:36 | param1 | provenance | | +| DivideByZero.go:25:2:25:45 | ... := ...[0] | DivideByZero.go:26:16:26:20 | value | provenance | | +| DivideByZero.go:25:31:25:36 | param1 | DivideByZero.go:25:2:25:45 | ... := ...[0] | provenance | | +| DivideByZero.go:31:12:31:16 | selection of URL | DivideByZero.go:31:12:31:24 | call to Query | provenance | | +| DivideByZero.go:31:12:31:24 | call to Query | DivideByZero.go:32:33:32:38 | param1 | provenance | | +| DivideByZero.go:32:2:32:43 | ... := ...[0] | DivideByZero.go:33:16:33:20 | value | provenance | | +| DivideByZero.go:32:33:32:38 | param1 | DivideByZero.go:32:2:32:43 | ... := ...[0] | provenance | | +| DivideByZero.go:38:12:38:16 | selection of URL | DivideByZero.go:38:12:38:24 | call to Query | provenance | | +| DivideByZero.go:38:12:38:24 | call to Query | DivideByZero.go:39:32:39:37 | param1 | provenance | | +| DivideByZero.go:39:2:39:46 | ... := ...[0] | DivideByZero.go:40:16:40:20 | value | provenance | | +| DivideByZero.go:39:32:39:37 | param1 | DivideByZero.go:39:2:39:46 | ... := ...[0] | provenance | | +| DivideByZero.go:54:12:54:16 | selection of URL | DivideByZero.go:54:12:54:24 | call to Query | provenance | | +| DivideByZero.go:54:12:54:24 | call to Query | DivideByZero.go:55:11:55:24 | type conversion | provenance | | +| DivideByZero.go:55:11:55:24 | type conversion | DivideByZero.go:57:17:57:21 | value | provenance | | nodes | DivideByZero.go:10:12:10:16 | selection of URL | semmle.label | selection of URL | | DivideByZero.go:10:12:10:24 | call to Query | semmle.label | call to Query | diff --git a/go/ql/test/experimental/CWE-74/DsnInjection.expected b/go/ql/test/experimental/CWE-74/DsnInjection.expected index 9859f05b50c8..2788c186d006 100644 --- a/go/ql/test/experimental/CWE-74/DsnInjection.expected +++ b/go/ql/test/experimental/CWE-74/DsnInjection.expected @@ -1,9 +1,9 @@ edges -| Dsn.go:47:10:47:30 | call to FormValue | Dsn.go:49:102:49:105 | name | -| Dsn.go:49:11:49:106 | []type{args} [array] | Dsn.go:49:11:49:106 | call to Sprintf | -| Dsn.go:49:11:49:106 | call to Sprintf | Dsn.go:50:29:50:33 | dbDSN | -| Dsn.go:49:102:49:105 | name | Dsn.go:49:11:49:106 | []type{args} [array] | -| Dsn.go:49:102:49:105 | name | Dsn.go:49:11:49:106 | call to Sprintf | +| Dsn.go:47:10:47:30 | call to FormValue | Dsn.go:49:102:49:105 | name | provenance | | +| Dsn.go:49:11:49:106 | []type{args} [array] | Dsn.go:49:11:49:106 | call to Sprintf | provenance | | +| Dsn.go:49:11:49:106 | call to Sprintf | Dsn.go:50:29:50:33 | dbDSN | provenance | | +| Dsn.go:49:102:49:105 | name | Dsn.go:49:11:49:106 | []type{args} [array] | provenance | | +| Dsn.go:49:102:49:105 | name | Dsn.go:49:11:49:106 | call to Sprintf | provenance | | nodes | Dsn.go:47:10:47:30 | call to FormValue | semmle.label | call to FormValue | | Dsn.go:49:11:49:106 | []type{args} [array] | semmle.label | []type{args} [array] | diff --git a/go/ql/test/experimental/CWE-74/DsnInjectionLocal.expected b/go/ql/test/experimental/CWE-74/DsnInjectionLocal.expected index 09143c4cab9d..ffe20d053f7a 100644 --- a/go/ql/test/experimental/CWE-74/DsnInjectionLocal.expected +++ b/go/ql/test/experimental/CWE-74/DsnInjectionLocal.expected @@ -1,24 +1,24 @@ edges -| Dsn.go:26:11:26:17 | selection of Args | Dsn.go:28:102:28:109 | index expression | -| Dsn.go:28:11:28:110 | []type{args} [array] | Dsn.go:28:11:28:110 | call to Sprintf | -| Dsn.go:28:11:28:110 | call to Sprintf | Dsn.go:29:29:29:33 | dbDSN | -| Dsn.go:28:102:28:109 | index expression | Dsn.go:28:11:28:110 | []type{args} [array] | -| Dsn.go:28:102:28:109 | index expression | Dsn.go:28:11:28:110 | call to Sprintf | -| Dsn.go:62:2:62:4 | definition of cfg [pointer] | Dsn.go:63:9:63:11 | cfg [pointer] | -| Dsn.go:62:2:62:4 | definition of cfg [pointer] | Dsn.go:67:102:67:104 | cfg [pointer] | -| Dsn.go:63:9:63:11 | cfg [pointer] | Dsn.go:63:9:63:11 | implicit dereference | -| Dsn.go:63:9:63:11 | implicit dereference | Dsn.go:62:2:62:4 | definition of cfg [pointer] | -| Dsn.go:63:9:63:11 | implicit dereference | Dsn.go:63:9:63:11 | implicit dereference | -| Dsn.go:63:9:63:11 | implicit dereference | Dsn.go:67:102:67:108 | selection of dsn | -| Dsn.go:63:19:63:25 | selection of Args | Dsn.go:63:19:63:29 | slice expression | -| Dsn.go:63:19:63:29 | slice expression | Dsn.go:63:9:63:11 | implicit dereference | -| Dsn.go:67:11:67:109 | []type{args} [array] | Dsn.go:67:11:67:109 | call to Sprintf | -| Dsn.go:67:11:67:109 | call to Sprintf | Dsn.go:68:29:68:33 | dbDSN | -| Dsn.go:67:102:67:104 | cfg [pointer] | Dsn.go:67:102:67:104 | implicit dereference | -| Dsn.go:67:102:67:104 | implicit dereference | Dsn.go:63:9:63:11 | implicit dereference | -| Dsn.go:67:102:67:104 | implicit dereference | Dsn.go:67:102:67:108 | selection of dsn | -| Dsn.go:67:102:67:108 | selection of dsn | Dsn.go:67:11:67:109 | []type{args} [array] | -| Dsn.go:67:102:67:108 | selection of dsn | Dsn.go:67:11:67:109 | call to Sprintf | +| Dsn.go:26:11:26:17 | selection of Args | Dsn.go:28:102:28:109 | index expression | provenance | | +| Dsn.go:28:11:28:110 | []type{args} [array] | Dsn.go:28:11:28:110 | call to Sprintf | provenance | | +| Dsn.go:28:11:28:110 | call to Sprintf | Dsn.go:29:29:29:33 | dbDSN | provenance | | +| Dsn.go:28:102:28:109 | index expression | Dsn.go:28:11:28:110 | []type{args} [array] | provenance | | +| Dsn.go:28:102:28:109 | index expression | Dsn.go:28:11:28:110 | call to Sprintf | provenance | | +| Dsn.go:62:2:62:4 | definition of cfg [pointer] | Dsn.go:63:9:63:11 | cfg [pointer] | provenance | | +| Dsn.go:62:2:62:4 | definition of cfg [pointer] | Dsn.go:67:102:67:104 | cfg [pointer] | provenance | | +| Dsn.go:63:9:63:11 | cfg [pointer] | Dsn.go:63:9:63:11 | implicit dereference | provenance | | +| Dsn.go:63:9:63:11 | implicit dereference | Dsn.go:62:2:62:4 | definition of cfg [pointer] | provenance | | +| Dsn.go:63:9:63:11 | implicit dereference | Dsn.go:63:9:63:11 | implicit dereference | provenance | | +| Dsn.go:63:9:63:11 | implicit dereference | Dsn.go:67:102:67:108 | selection of dsn | provenance | | +| Dsn.go:63:19:63:25 | selection of Args | Dsn.go:63:19:63:29 | slice expression | provenance | | +| Dsn.go:63:19:63:29 | slice expression | Dsn.go:63:9:63:11 | implicit dereference | provenance | | +| Dsn.go:67:11:67:109 | []type{args} [array] | Dsn.go:67:11:67:109 | call to Sprintf | provenance | | +| Dsn.go:67:11:67:109 | call to Sprintf | Dsn.go:68:29:68:33 | dbDSN | provenance | | +| Dsn.go:67:102:67:104 | cfg [pointer] | Dsn.go:67:102:67:104 | implicit dereference | provenance | | +| Dsn.go:67:102:67:104 | implicit dereference | Dsn.go:63:9:63:11 | implicit dereference | provenance | | +| Dsn.go:67:102:67:104 | implicit dereference | Dsn.go:67:102:67:108 | selection of dsn | provenance | | +| Dsn.go:67:102:67:108 | selection of dsn | Dsn.go:67:11:67:109 | []type{args} [array] | provenance | | +| Dsn.go:67:102:67:108 | selection of dsn | Dsn.go:67:11:67:109 | call to Sprintf | provenance | | nodes | Dsn.go:26:11:26:17 | selection of Args | semmle.label | selection of Args | | Dsn.go:28:11:28:110 | []type{args} [array] | semmle.label | []type{args} [array] | diff --git a/go/ql/test/experimental/CWE-79/HTMLTemplateEscapingPassthrough.expected b/go/ql/test/experimental/CWE-79/HTMLTemplateEscapingPassthrough.expected index 2b543ccde1db..1d0f5facd038 100644 --- a/go/ql/test/experimental/CWE-79/HTMLTemplateEscapingPassthrough.expected +++ b/go/ql/test/experimental/CWE-79/HTMLTemplateEscapingPassthrough.expected @@ -1,28 +1,28 @@ edges -| HTMLTemplateEscapingPassthrough.go:29:12:29:41 | type conversion | HTMLTemplateEscapingPassthrough.go:30:39:30:39 | a | -| HTMLTemplateEscapingPassthrough.go:29:26:29:40 | call to UserAgent | HTMLTemplateEscapingPassthrough.go:29:12:29:41 | type conversion | -| HTMLTemplateEscapingPassthrough.go:35:9:35:38 | type conversion | HTMLTemplateEscapingPassthrough.go:36:40:36:40 | a | -| HTMLTemplateEscapingPassthrough.go:35:23:35:37 | call to UserAgent | HTMLTemplateEscapingPassthrough.go:35:9:35:38 | type conversion | -| HTMLTemplateEscapingPassthrough.go:40:9:40:34 | type conversion | HTMLTemplateEscapingPassthrough.go:41:40:41:40 | a | -| HTMLTemplateEscapingPassthrough.go:40:19:40:33 | call to UserAgent | HTMLTemplateEscapingPassthrough.go:40:9:40:34 | type conversion | -| HTMLTemplateEscapingPassthrough.go:46:11:46:44 | type conversion | HTMLTemplateEscapingPassthrough.go:47:41:47:41 | c | -| HTMLTemplateEscapingPassthrough.go:46:29:46:43 | call to UserAgent | HTMLTemplateEscapingPassthrough.go:46:11:46:44 | type conversion | -| HTMLTemplateEscapingPassthrough.go:50:11:50:38 | type conversion | HTMLTemplateEscapingPassthrough.go:51:44:51:44 | d | -| HTMLTemplateEscapingPassthrough.go:50:23:50:37 | call to UserAgent | HTMLTemplateEscapingPassthrough.go:50:11:50:38 | type conversion | -| HTMLTemplateEscapingPassthrough.go:54:11:54:41 | type conversion | HTMLTemplateEscapingPassthrough.go:55:44:55:44 | e | -| HTMLTemplateEscapingPassthrough.go:54:26:54:40 | call to UserAgent | HTMLTemplateEscapingPassthrough.go:54:11:54:41 | type conversion | -| HTMLTemplateEscapingPassthrough.go:58:11:58:39 | type conversion | HTMLTemplateEscapingPassthrough.go:59:38:59:38 | b | -| HTMLTemplateEscapingPassthrough.go:58:24:58:38 | call to UserAgent | HTMLTemplateEscapingPassthrough.go:58:11:58:39 | type conversion | -| HTMLTemplateEscapingPassthrough.go:62:11:62:42 | type conversion | HTMLTemplateEscapingPassthrough.go:63:44:63:44 | f | -| HTMLTemplateEscapingPassthrough.go:62:27:62:41 | call to UserAgent | HTMLTemplateEscapingPassthrough.go:62:11:62:42 | type conversion | -| HTMLTemplateEscapingPassthrough.go:66:11:66:39 | type conversion | HTMLTemplateEscapingPassthrough.go:67:38:67:38 | g | -| HTMLTemplateEscapingPassthrough.go:66:24:66:38 | call to UserAgent | HTMLTemplateEscapingPassthrough.go:66:11:66:39 | type conversion | -| HTMLTemplateEscapingPassthrough.go:75:17:75:31 | call to UserAgent | HTMLTemplateEscapingPassthrough.go:76:38:76:44 | escaped | -| HTMLTemplateEscapingPassthrough.go:81:10:81:24 | call to UserAgent | HTMLTemplateEscapingPassthrough.go:84:38:84:40 | src | -| HTMLTemplateEscapingPassthrough.go:89:10:89:24 | call to UserAgent | HTMLTemplateEscapingPassthrough.go:91:64:91:66 | src | -| HTMLTemplateEscapingPassthrough.go:91:16:91:77 | type conversion | HTMLTemplateEscapingPassthrough.go:92:38:92:46 | converted | -| HTMLTemplateEscapingPassthrough.go:91:38:91:67 | call to HTMLEscapeString | HTMLTemplateEscapingPassthrough.go:91:16:91:77 | type conversion | -| HTMLTemplateEscapingPassthrough.go:91:64:91:66 | src | HTMLTemplateEscapingPassthrough.go:91:38:91:67 | call to HTMLEscapeString | +| HTMLTemplateEscapingPassthrough.go:29:12:29:41 | type conversion | HTMLTemplateEscapingPassthrough.go:30:39:30:39 | a | provenance | | +| HTMLTemplateEscapingPassthrough.go:29:26:29:40 | call to UserAgent | HTMLTemplateEscapingPassthrough.go:29:12:29:41 | type conversion | provenance | | +| HTMLTemplateEscapingPassthrough.go:35:9:35:38 | type conversion | HTMLTemplateEscapingPassthrough.go:36:40:36:40 | a | provenance | | +| HTMLTemplateEscapingPassthrough.go:35:23:35:37 | call to UserAgent | HTMLTemplateEscapingPassthrough.go:35:9:35:38 | type conversion | provenance | | +| HTMLTemplateEscapingPassthrough.go:40:9:40:34 | type conversion | HTMLTemplateEscapingPassthrough.go:41:40:41:40 | a | provenance | | +| HTMLTemplateEscapingPassthrough.go:40:19:40:33 | call to UserAgent | HTMLTemplateEscapingPassthrough.go:40:9:40:34 | type conversion | provenance | | +| HTMLTemplateEscapingPassthrough.go:46:11:46:44 | type conversion | HTMLTemplateEscapingPassthrough.go:47:41:47:41 | c | provenance | | +| HTMLTemplateEscapingPassthrough.go:46:29:46:43 | call to UserAgent | HTMLTemplateEscapingPassthrough.go:46:11:46:44 | type conversion | provenance | | +| HTMLTemplateEscapingPassthrough.go:50:11:50:38 | type conversion | HTMLTemplateEscapingPassthrough.go:51:44:51:44 | d | provenance | | +| HTMLTemplateEscapingPassthrough.go:50:23:50:37 | call to UserAgent | HTMLTemplateEscapingPassthrough.go:50:11:50:38 | type conversion | provenance | | +| HTMLTemplateEscapingPassthrough.go:54:11:54:41 | type conversion | HTMLTemplateEscapingPassthrough.go:55:44:55:44 | e | provenance | | +| HTMLTemplateEscapingPassthrough.go:54:26:54:40 | call to UserAgent | HTMLTemplateEscapingPassthrough.go:54:11:54:41 | type conversion | provenance | | +| HTMLTemplateEscapingPassthrough.go:58:11:58:39 | type conversion | HTMLTemplateEscapingPassthrough.go:59:38:59:38 | b | provenance | | +| HTMLTemplateEscapingPassthrough.go:58:24:58:38 | call to UserAgent | HTMLTemplateEscapingPassthrough.go:58:11:58:39 | type conversion | provenance | | +| HTMLTemplateEscapingPassthrough.go:62:11:62:42 | type conversion | HTMLTemplateEscapingPassthrough.go:63:44:63:44 | f | provenance | | +| HTMLTemplateEscapingPassthrough.go:62:27:62:41 | call to UserAgent | HTMLTemplateEscapingPassthrough.go:62:11:62:42 | type conversion | provenance | | +| HTMLTemplateEscapingPassthrough.go:66:11:66:39 | type conversion | HTMLTemplateEscapingPassthrough.go:67:38:67:38 | g | provenance | | +| HTMLTemplateEscapingPassthrough.go:66:24:66:38 | call to UserAgent | HTMLTemplateEscapingPassthrough.go:66:11:66:39 | type conversion | provenance | | +| HTMLTemplateEscapingPassthrough.go:75:17:75:31 | call to UserAgent | HTMLTemplateEscapingPassthrough.go:76:38:76:44 | escaped | provenance | | +| HTMLTemplateEscapingPassthrough.go:81:10:81:24 | call to UserAgent | HTMLTemplateEscapingPassthrough.go:84:38:84:40 | src | provenance | | +| HTMLTemplateEscapingPassthrough.go:89:10:89:24 | call to UserAgent | HTMLTemplateEscapingPassthrough.go:91:64:91:66 | src | provenance | | +| HTMLTemplateEscapingPassthrough.go:91:16:91:77 | type conversion | HTMLTemplateEscapingPassthrough.go:92:38:92:46 | converted | provenance | | +| HTMLTemplateEscapingPassthrough.go:91:38:91:67 | call to HTMLEscapeString | HTMLTemplateEscapingPassthrough.go:91:16:91:77 | type conversion | provenance | | +| HTMLTemplateEscapingPassthrough.go:91:64:91:66 | src | HTMLTemplateEscapingPassthrough.go:91:38:91:67 | call to HTMLEscapeString | provenance | | nodes | HTMLTemplateEscapingPassthrough.go:29:12:29:41 | type conversion | semmle.label | type conversion | | HTMLTemplateEscapingPassthrough.go:29:26:29:40 | call to UserAgent | semmle.label | call to UserAgent | diff --git a/go/ql/test/experimental/CWE-918/SSRF.expected b/go/ql/test/experimental/CWE-918/SSRF.expected index e7b78beb153b..0e5bdee9671d 100644 --- a/go/ql/test/experimental/CWE-918/SSRF.expected +++ b/go/ql/test/experimental/CWE-918/SSRF.expected @@ -1,46 +1,46 @@ edges -| builtin.go:19:12:19:34 | call to FormValue | builtin.go:22:21:22:62 | ...+... | -| builtin.go:83:21:83:31 | call to Referer | builtin.go:88:27:88:40 | untrustedInput | -| builtin.go:97:21:97:31 | call to Referer | builtin.go:101:36:101:49 | untrustedInput | -| builtin.go:111:21:111:31 | call to Referer | builtin.go:114:15:114:28 | untrustedInput | -| builtin.go:129:21:129:31 | call to Referer | builtin.go:132:38:132:51 | untrustedInput | -| new-tests.go:26:26:26:30 | &... | new-tests.go:31:48:31:56 | selection of word | -| new-tests.go:26:26:26:30 | &... | new-tests.go:32:48:32:56 | selection of safe | -| new-tests.go:26:26:26:30 | &... | new-tests.go:35:49:35:57 | selection of word | -| new-tests.go:31:11:31:57 | []type{args} [array] | new-tests.go:31:11:31:57 | call to Sprintf | -| new-tests.go:31:48:31:56 | selection of word | new-tests.go:31:11:31:57 | []type{args} [array] | -| new-tests.go:31:48:31:56 | selection of word | new-tests.go:31:11:31:57 | call to Sprintf | -| new-tests.go:32:11:32:57 | []type{args} [array] | new-tests.go:32:11:32:57 | call to Sprintf | -| new-tests.go:32:48:32:56 | selection of safe | new-tests.go:32:11:32:57 | []type{args} [array] | -| new-tests.go:32:48:32:56 | selection of safe | new-tests.go:32:11:32:57 | call to Sprintf | -| new-tests.go:35:12:35:58 | []type{args} [array] | new-tests.go:35:12:35:58 | call to Sprintf | -| new-tests.go:35:49:35:57 | selection of word | new-tests.go:35:12:35:58 | []type{args} [array] | -| new-tests.go:35:49:35:57 | selection of word | new-tests.go:35:12:35:58 | call to Sprintf | -| new-tests.go:39:18:39:30 | call to Param | new-tests.go:47:11:47:46 | ...+... | -| new-tests.go:49:18:49:30 | call to Query | new-tests.go:50:11:50:46 | ...+... | -| new-tests.go:62:2:62:39 | ... := ...[0] | new-tests.go:63:17:63:23 | reqBody | -| new-tests.go:62:31:62:38 | selection of Body | new-tests.go:62:2:62:39 | ... := ...[0] | -| new-tests.go:63:17:63:23 | reqBody | new-tests.go:63:26:63:30 | &... | -| new-tests.go:63:26:63:30 | &... | new-tests.go:68:48:68:56 | selection of word | -| new-tests.go:63:26:63:30 | &... | new-tests.go:69:48:69:56 | selection of safe | -| new-tests.go:63:26:63:30 | &... | new-tests.go:74:49:74:57 | selection of word | -| new-tests.go:68:11:68:57 | []type{args} [array] | new-tests.go:68:11:68:57 | call to Sprintf | -| new-tests.go:68:48:68:56 | selection of word | new-tests.go:68:11:68:57 | []type{args} [array] | -| new-tests.go:68:48:68:56 | selection of word | new-tests.go:68:11:68:57 | call to Sprintf | -| new-tests.go:69:11:69:57 | []type{args} [array] | new-tests.go:69:11:69:57 | call to Sprintf | -| new-tests.go:69:48:69:56 | selection of safe | new-tests.go:69:11:69:57 | []type{args} [array] | -| new-tests.go:69:48:69:56 | selection of safe | new-tests.go:69:11:69:57 | call to Sprintf | -| new-tests.go:74:12:74:58 | []type{args} [array] | new-tests.go:74:12:74:58 | call to Sprintf | -| new-tests.go:74:49:74:57 | selection of word | new-tests.go:74:12:74:58 | []type{args} [array] | -| new-tests.go:74:49:74:57 | selection of word | new-tests.go:74:12:74:58 | call to Sprintf | -| new-tests.go:78:18:78:24 | selection of URL | new-tests.go:78:18:78:32 | call to Query | -| new-tests.go:78:18:78:32 | call to Query | new-tests.go:78:18:78:46 | call to Get | -| new-tests.go:78:18:78:46 | call to Get | new-tests.go:79:11:79:46 | ...+... | -| new-tests.go:81:18:81:67 | call to TrimPrefix | new-tests.go:82:11:82:46 | ...+... | -| new-tests.go:81:37:81:43 | selection of URL | new-tests.go:81:37:81:48 | selection of Path | -| new-tests.go:81:37:81:48 | selection of Path | new-tests.go:81:18:81:67 | call to TrimPrefix | -| new-tests.go:86:10:86:20 | call to Vars | new-tests.go:88:11:88:46 | ...+... | -| new-tests.go:95:18:95:45 | call to URLParam | new-tests.go:96:11:96:46 | ...+... | +| builtin.go:19:12:19:34 | call to FormValue | builtin.go:22:21:22:62 | ...+... | provenance | | +| builtin.go:83:21:83:31 | call to Referer | builtin.go:88:27:88:40 | untrustedInput | provenance | | +| builtin.go:97:21:97:31 | call to Referer | builtin.go:101:36:101:49 | untrustedInput | provenance | | +| builtin.go:111:21:111:31 | call to Referer | builtin.go:114:15:114:28 | untrustedInput | provenance | | +| builtin.go:129:21:129:31 | call to Referer | builtin.go:132:38:132:51 | untrustedInput | provenance | | +| new-tests.go:26:26:26:30 | &... | new-tests.go:31:48:31:56 | selection of word | provenance | | +| new-tests.go:26:26:26:30 | &... | new-tests.go:32:48:32:56 | selection of safe | provenance | | +| new-tests.go:26:26:26:30 | &... | new-tests.go:35:49:35:57 | selection of word | provenance | | +| new-tests.go:31:11:31:57 | []type{args} [array] | new-tests.go:31:11:31:57 | call to Sprintf | provenance | | +| new-tests.go:31:48:31:56 | selection of word | new-tests.go:31:11:31:57 | []type{args} [array] | provenance | | +| new-tests.go:31:48:31:56 | selection of word | new-tests.go:31:11:31:57 | call to Sprintf | provenance | | +| new-tests.go:32:11:32:57 | []type{args} [array] | new-tests.go:32:11:32:57 | call to Sprintf | provenance | | +| new-tests.go:32:48:32:56 | selection of safe | new-tests.go:32:11:32:57 | []type{args} [array] | provenance | | +| new-tests.go:32:48:32:56 | selection of safe | new-tests.go:32:11:32:57 | call to Sprintf | provenance | | +| new-tests.go:35:12:35:58 | []type{args} [array] | new-tests.go:35:12:35:58 | call to Sprintf | provenance | | +| new-tests.go:35:49:35:57 | selection of word | new-tests.go:35:12:35:58 | []type{args} [array] | provenance | | +| new-tests.go:35:49:35:57 | selection of word | new-tests.go:35:12:35:58 | call to Sprintf | provenance | | +| new-tests.go:39:18:39:30 | call to Param | new-tests.go:47:11:47:46 | ...+... | provenance | | +| new-tests.go:49:18:49:30 | call to Query | new-tests.go:50:11:50:46 | ...+... | provenance | | +| new-tests.go:62:2:62:39 | ... := ...[0] | new-tests.go:63:17:63:23 | reqBody | provenance | | +| new-tests.go:62:31:62:38 | selection of Body | new-tests.go:62:2:62:39 | ... := ...[0] | provenance | | +| new-tests.go:63:17:63:23 | reqBody | new-tests.go:63:26:63:30 | &... | provenance | | +| new-tests.go:63:26:63:30 | &... | new-tests.go:68:48:68:56 | selection of word | provenance | | +| new-tests.go:63:26:63:30 | &... | new-tests.go:69:48:69:56 | selection of safe | provenance | | +| new-tests.go:63:26:63:30 | &... | new-tests.go:74:49:74:57 | selection of word | provenance | | +| new-tests.go:68:11:68:57 | []type{args} [array] | new-tests.go:68:11:68:57 | call to Sprintf | provenance | | +| new-tests.go:68:48:68:56 | selection of word | new-tests.go:68:11:68:57 | []type{args} [array] | provenance | | +| new-tests.go:68:48:68:56 | selection of word | new-tests.go:68:11:68:57 | call to Sprintf | provenance | | +| new-tests.go:69:11:69:57 | []type{args} [array] | new-tests.go:69:11:69:57 | call to Sprintf | provenance | | +| new-tests.go:69:48:69:56 | selection of safe | new-tests.go:69:11:69:57 | []type{args} [array] | provenance | | +| new-tests.go:69:48:69:56 | selection of safe | new-tests.go:69:11:69:57 | call to Sprintf | provenance | | +| new-tests.go:74:12:74:58 | []type{args} [array] | new-tests.go:74:12:74:58 | call to Sprintf | provenance | | +| new-tests.go:74:49:74:57 | selection of word | new-tests.go:74:12:74:58 | []type{args} [array] | provenance | | +| new-tests.go:74:49:74:57 | selection of word | new-tests.go:74:12:74:58 | call to Sprintf | provenance | | +| new-tests.go:78:18:78:24 | selection of URL | new-tests.go:78:18:78:32 | call to Query | provenance | | +| new-tests.go:78:18:78:32 | call to Query | new-tests.go:78:18:78:46 | call to Get | provenance | | +| new-tests.go:78:18:78:46 | call to Get | new-tests.go:79:11:79:46 | ...+... | provenance | | +| new-tests.go:81:18:81:67 | call to TrimPrefix | new-tests.go:82:11:82:46 | ...+... | provenance | | +| new-tests.go:81:37:81:43 | selection of URL | new-tests.go:81:37:81:48 | selection of Path | provenance | | +| new-tests.go:81:37:81:48 | selection of Path | new-tests.go:81:18:81:67 | call to TrimPrefix | provenance | | +| new-tests.go:86:10:86:20 | call to Vars | new-tests.go:88:11:88:46 | ...+... | provenance | | +| new-tests.go:95:18:95:45 | call to URLParam | new-tests.go:96:11:96:46 | ...+... | provenance | | nodes | builtin.go:19:12:19:34 | call to FormValue | semmle.label | call to FormValue | | builtin.go:22:21:22:62 | ...+... | semmle.label | ...+... | diff --git a/go/ql/test/experimental/Unsafe/WrongUsageOfUnsafe.expected b/go/ql/test/experimental/Unsafe/WrongUsageOfUnsafe.expected index 612c6ef1e511..3c7e02eea265 100644 --- a/go/ql/test/experimental/Unsafe/WrongUsageOfUnsafe.expected +++ b/go/ql/test/experimental/Unsafe/WrongUsageOfUnsafe.expected @@ -1,20 +1,20 @@ edges -| WrongUsageOfUnsafe.go:17:24:17:48 | type conversion | WrongUsageOfUnsafe.go:17:13:17:49 | type conversion | -| WrongUsageOfUnsafe.go:34:24:34:51 | type conversion | WrongUsageOfUnsafe.go:34:13:34:52 | type conversion | -| WrongUsageOfUnsafe.go:55:24:55:51 | type conversion | WrongUsageOfUnsafe.go:55:13:55:52 | type conversion | -| WrongUsageOfUnsafe.go:77:27:77:54 | type conversion | WrongUsageOfUnsafe.go:77:16:77:55 | type conversion | -| WrongUsageOfUnsafe.go:93:20:93:44 | type conversion | WrongUsageOfUnsafe.go:93:13:93:45 | type conversion | -| WrongUsageOfUnsafe.go:111:31:111:58 | type conversion | WrongUsageOfUnsafe.go:111:16:111:59 | type conversion | -| WrongUsageOfUnsafe.go:129:31:129:55 | type conversion | WrongUsageOfUnsafe.go:129:16:129:56 | type conversion | -| WrongUsageOfUnsafe.go:149:31:149:55 | type conversion | WrongUsageOfUnsafe.go:149:16:149:56 | type conversion | -| WrongUsageOfUnsafe.go:166:33:166:57 | type conversion | WrongUsageOfUnsafe.go:166:16:166:58 | type conversion | -| WrongUsageOfUnsafe.go:189:31:189:55 | type conversion | WrongUsageOfUnsafe.go:189:16:189:56 | type conversion | -| WrongUsageOfUnsafe.go:211:31:211:60 | type conversion | WrongUsageOfUnsafe.go:211:16:211:61 | type conversion | -| WrongUsageOfUnsafe.go:227:31:227:55 | type conversion | WrongUsageOfUnsafe.go:236:21:236:23 | definition of req | -| WrongUsageOfUnsafe.go:236:21:236:23 | definition of req | WrongUsageOfUnsafe.go:243:9:243:27 | type conversion | -| WrongUsageOfUnsafe.go:256:28:256:52 | type conversion | WrongUsageOfUnsafe.go:256:16:256:53 | type conversion | -| WrongUsageOfUnsafe.go:274:25:274:49 | type conversion | WrongUsageOfUnsafe.go:274:16:274:50 | type conversion | -| WrongUsageOfUnsafe.go:292:23:292:47 | type conversion | WrongUsageOfUnsafe.go:292:16:292:48 | type conversion | +| WrongUsageOfUnsafe.go:17:24:17:48 | type conversion | WrongUsageOfUnsafe.go:17:13:17:49 | type conversion | provenance | | +| WrongUsageOfUnsafe.go:34:24:34:51 | type conversion | WrongUsageOfUnsafe.go:34:13:34:52 | type conversion | provenance | | +| WrongUsageOfUnsafe.go:55:24:55:51 | type conversion | WrongUsageOfUnsafe.go:55:13:55:52 | type conversion | provenance | | +| WrongUsageOfUnsafe.go:77:27:77:54 | type conversion | WrongUsageOfUnsafe.go:77:16:77:55 | type conversion | provenance | | +| WrongUsageOfUnsafe.go:93:20:93:44 | type conversion | WrongUsageOfUnsafe.go:93:13:93:45 | type conversion | provenance | | +| WrongUsageOfUnsafe.go:111:31:111:58 | type conversion | WrongUsageOfUnsafe.go:111:16:111:59 | type conversion | provenance | | +| WrongUsageOfUnsafe.go:129:31:129:55 | type conversion | WrongUsageOfUnsafe.go:129:16:129:56 | type conversion | provenance | | +| WrongUsageOfUnsafe.go:149:31:149:55 | type conversion | WrongUsageOfUnsafe.go:149:16:149:56 | type conversion | provenance | | +| WrongUsageOfUnsafe.go:166:33:166:57 | type conversion | WrongUsageOfUnsafe.go:166:16:166:58 | type conversion | provenance | | +| WrongUsageOfUnsafe.go:189:31:189:55 | type conversion | WrongUsageOfUnsafe.go:189:16:189:56 | type conversion | provenance | | +| WrongUsageOfUnsafe.go:211:31:211:60 | type conversion | WrongUsageOfUnsafe.go:211:16:211:61 | type conversion | provenance | | +| WrongUsageOfUnsafe.go:227:31:227:55 | type conversion | WrongUsageOfUnsafe.go:236:21:236:23 | definition of req | provenance | | +| WrongUsageOfUnsafe.go:236:21:236:23 | definition of req | WrongUsageOfUnsafe.go:243:9:243:27 | type conversion | provenance | | +| WrongUsageOfUnsafe.go:256:28:256:52 | type conversion | WrongUsageOfUnsafe.go:256:16:256:53 | type conversion | provenance | | +| WrongUsageOfUnsafe.go:274:25:274:49 | type conversion | WrongUsageOfUnsafe.go:274:16:274:50 | type conversion | provenance | | +| WrongUsageOfUnsafe.go:292:23:292:47 | type conversion | WrongUsageOfUnsafe.go:292:16:292:48 | type conversion | provenance | | nodes | WrongUsageOfUnsafe.go:17:13:17:49 | type conversion | semmle.label | type conversion | | WrongUsageOfUnsafe.go:17:24:17:48 | type conversion | semmle.label | type conversion | diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ChannelField/test.expected b/go/ql/test/library-tests/semmle/go/dataflow/ChannelField/test.expected index 523d27be2506..315e8f2ceab6 100644 --- a/go/ql/test/library-tests/semmle/go/dataflow/ChannelField/test.expected +++ b/go/ql/test/library-tests/semmle/go/dataflow/ChannelField/test.expected @@ -1,13 +1,13 @@ edges -| test.go:9:9:9:11 | selection of c [collection] | test.go:9:7:9:11 | <-... | -| test.go:13:16:13:16 | definition of s [pointer, c, collection] | test.go:16:2:16:2 | s [pointer, c, collection] | -| test.go:15:10:15:17 | call to source | test.go:16:9:16:12 | data | -| test.go:16:2:16:2 | implicit dereference [c, collection] | test.go:13:16:13:16 | definition of s [pointer, c, collection] | -| test.go:16:2:16:2 | implicit dereference [c, collection] | test.go:16:2:16:4 | selection of c [collection] | -| test.go:16:2:16:2 | s [pointer, c, collection] | test.go:16:2:16:2 | implicit dereference [c, collection] | -| test.go:16:2:16:4 | selection of c [collection] | test.go:9:9:9:11 | selection of c [collection] | -| test.go:16:2:16:4 | selection of c [collection] | test.go:16:2:16:2 | implicit dereference [c, collection] | -| test.go:16:9:16:12 | data | test.go:16:2:16:4 | selection of c [collection] | +| test.go:9:9:9:11 | selection of c [collection] | test.go:9:7:9:11 | <-... | provenance | | +| test.go:13:16:13:16 | definition of s [pointer, c, collection] | test.go:16:2:16:2 | s [pointer, c, collection] | provenance | | +| test.go:15:10:15:17 | call to source | test.go:16:9:16:12 | data | provenance | | +| test.go:16:2:16:2 | implicit dereference [c, collection] | test.go:13:16:13:16 | definition of s [pointer, c, collection] | provenance | | +| test.go:16:2:16:2 | implicit dereference [c, collection] | test.go:16:2:16:4 | selection of c [collection] | provenance | | +| test.go:16:2:16:2 | s [pointer, c, collection] | test.go:16:2:16:2 | implicit dereference [c, collection] | provenance | | +| test.go:16:2:16:4 | selection of c [collection] | test.go:9:9:9:11 | selection of c [collection] | provenance | | +| test.go:16:2:16:4 | selection of c [collection] | test.go:16:2:16:2 | implicit dereference [c, collection] | provenance | | +| test.go:16:9:16:12 | data | test.go:16:2:16:4 | selection of c [collection] | provenance | | nodes | test.go:9:7:9:11 | <-... | semmle.label | <-... | | test.go:9:9:9:11 | selection of c [collection] | semmle.label | selection of c [collection] | diff --git a/go/ql/test/library-tests/semmle/go/dataflow/DefaultTaintSanitizer/DefaultSanitizer.expected b/go/ql/test/library-tests/semmle/go/dataflow/DefaultTaintSanitizer/DefaultSanitizer.expected index a7ab7fc63a42..c126e70195b3 100644 --- a/go/ql/test/library-tests/semmle/go/dataflow/DefaultTaintSanitizer/DefaultSanitizer.expected +++ b/go/ql/test/library-tests/semmle/go/dataflow/DefaultTaintSanitizer/DefaultSanitizer.expected @@ -1,6 +1,6 @@ edges -| Builtin.go:6:2:6:2 | definition of b | Builtin.go:8:9:8:17 | type conversion | -| Builtin.go:7:2:7:15 | selection of Body | Builtin.go:6:2:6:2 | definition of b | +| Builtin.go:6:2:6:2 | definition of b | Builtin.go:8:9:8:17 | type conversion | provenance | | +| Builtin.go:7:2:7:15 | selection of Body | Builtin.go:6:2:6:2 | definition of b | provenance | | nodes | Builtin.go:6:2:6:2 | definition of b | semmle.label | definition of b | | Builtin.go:7:2:7:15 | selection of Body | semmle.label | selection of Body | diff --git a/go/ql/test/library-tests/semmle/go/dataflow/HiddenNodes/test.expected b/go/ql/test/library-tests/semmle/go/dataflow/HiddenNodes/test.expected index 2c7583cacb43..1bd17817463b 100644 --- a/go/ql/test/library-tests/semmle/go/dataflow/HiddenNodes/test.expected +++ b/go/ql/test/library-tests/semmle/go/dataflow/HiddenNodes/test.expected @@ -1,7 +1,7 @@ edges -| test.go:14:8:14:15 | call to source | test.go:15:34:15:35 | fi | -| test.go:15:2:15:44 | ... := ...[0] | test.go:16:7:16:12 | header | -| test.go:15:34:15:35 | fi | test.go:15:2:15:44 | ... := ...[0] | +| test.go:14:8:14:15 | call to source | test.go:15:34:15:35 | fi | provenance | | +| test.go:15:2:15:44 | ... := ...[0] | test.go:16:7:16:12 | header | provenance | | +| test.go:15:34:15:35 | fi | test.go:15:2:15:44 | ... := ...[0] | provenance | | nodes | test.go:14:8:14:15 | call to source | semmle.label | call to source | | test.go:15:2:15:44 | ... := ...[0] | semmle.label | ... := ...[0] | diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Beego/ReflectedXss.expected b/go/ql/test/library-tests/semmle/go/frameworks/Beego/ReflectedXss.expected index 3c14fdfadeb4..5825fcdfcd69 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Beego/ReflectedXss.expected +++ b/go/ql/test/library-tests/semmle/go/frameworks/Beego/ReflectedXss.expected @@ -1,105 +1,105 @@ edges -| test.go:33:6:33:10 | definition of bound | test.go:35:13:35:30 | type conversion | -| test.go:33:6:33:10 | definition of bound | test.go:36:13:36:27 | type conversion | -| test.go:33:6:33:10 | definition of bound | test.go:37:13:37:29 | type conversion | -| test.go:42:20:42:42 | call to Cookie | test.go:42:13:42:43 | type conversion | -| test.go:47:20:47:31 | call to Data | test.go:47:13:47:52 | type conversion | -| test.go:52:20:52:43 | call to GetData | test.go:52:13:52:53 | type conversion | -| test.go:57:20:57:42 | call to Header | test.go:57:13:57:43 | type conversion | -| test.go:62:20:62:41 | call to Param | test.go:62:13:62:42 | type conversion | -| test.go:67:20:67:33 | call to Params | test.go:67:13:67:45 | type conversion | -| test.go:72:20:72:41 | call to Query | test.go:72:13:72:42 | type conversion | -| test.go:77:20:77:32 | call to Refer | test.go:77:13:77:33 | type conversion | -| test.go:82:20:82:34 | call to Referer | test.go:82:13:82:35 | type conversion | -| test.go:87:20:87:30 | call to URI | test.go:87:13:87:31 | type conversion | -| test.go:92:20:92:30 | call to URL | test.go:92:13:92:31 | type conversion | -| test.go:97:20:97:36 | call to UserAgent | test.go:97:13:97:37 | type conversion | -| test.go:102:14:102:25 | call to Data | test.go:102:14:102:45 | type assertion | -| test.go:114:14:114:25 | call to Data | test.go:114:14:114:45 | type assertion | -| test.go:126:14:126:25 | call to Data | test.go:126:14:126:45 | type assertion | -| test.go:143:23:143:42 | call to Data | test.go:143:23:143:62 | type assertion | -| test.go:199:15:199:26 | call to Data | test.go:200:36:200:53 | type assertion | -| test.go:199:15:199:26 | call to Data | test.go:201:39:201:56 | type assertion | -| test.go:199:15:199:26 | call to Data | test.go:202:28:202:56 | type assertion | -| test.go:199:15:199:26 | call to Data | test.go:204:36:204:53 | type assertion | -| test.go:199:15:199:26 | call to Data | test.go:205:34:205:51 | type assertion | -| test.go:200:21:200:54 | call to HTML2str | test.go:200:14:200:55 | type conversion | -| test.go:200:36:200:53 | type assertion | test.go:200:21:200:54 | call to HTML2str | -| test.go:201:21:201:57 | call to Htmlunquote | test.go:201:14:201:58 | type conversion | -| test.go:201:39:201:56 | type assertion | test.go:201:21:201:57 | call to Htmlunquote | -| test.go:202:2:202:68 | ... := ...[0] | test.go:203:14:203:28 | type assertion | -| test.go:202:28:202:56 | type assertion | test.go:202:2:202:68 | ... := ...[0] | -| test.go:204:21:204:54 | call to Str2html | test.go:204:14:204:55 | type conversion | -| test.go:204:36:204:53 | type assertion | test.go:204:21:204:54 | call to Str2html | -| test.go:205:21:205:58 | call to Substr | test.go:205:14:205:59 | type conversion | -| test.go:205:34:205:51 | type assertion | test.go:205:21:205:58 | call to Substr | -| test.go:207:6:207:6 | definition of s | test.go:209:14:209:28 | type conversion | -| test.go:208:18:208:33 | selection of Form | test.go:207:6:207:6 | definition of s | -| test.go:223:2:223:34 | ... := ...[0] | test.go:225:31:225:31 | f | -| test.go:223:2:223:34 | ... := ...[1] | test.go:224:14:224:32 | type conversion | -| test.go:225:2:225:32 | ... := ...[0] | test.go:226:14:226:20 | content | -| test.go:225:31:225:31 | f | test.go:225:2:225:32 | ... := ...[0] | -| test.go:228:2:228:40 | ... := ...[0] | test.go:229:14:229:38 | type conversion | -| test.go:231:7:231:28 | call to GetString | test.go:232:14:232:22 | type conversion | -| test.go:234:8:234:35 | call to GetStrings | test.go:235:14:235:26 | type conversion | -| test.go:237:9:237:17 | call to Input | test.go:238:14:238:27 | type conversion | -| test.go:240:6:240:8 | definition of str | test.go:242:14:242:30 | type conversion | -| test.go:246:15:246:36 | call to GetString | test.go:249:21:249:29 | untrusted | -| test.go:259:23:259:44 | call to GetCookie | test.go:259:16:259:45 | type conversion | -| test.go:270:62:270:83 | call to GetCookie | test.go:270:55:270:84 | type conversion | -| test.go:275:2:275:40 | ... := ...[0] | test.go:278:21:278:28 | index expression | -| test.go:275:2:275:40 | ... := ...[0] | test.go:283:44:283:60 | selection of Filename | -| test.go:275:2:275:40 | ... := ...[0] | test.go:284:38:284:49 | genericFiles | -| test.go:275:2:275:40 | ... := ...[0] | test.go:285:37:285:48 | genericFiles | -| test.go:275:2:275:40 | ... := ...[0] | test.go:291:4:291:15 | genericFiles | -| test.go:275:2:275:40 | ... := ...[0] | test.go:293:42:293:53 | genericFiles | -| test.go:275:2:275:40 | ... := ...[0] | test.go:294:53:294:64 | genericFiles | -| test.go:275:2:275:40 | ... := ...[0] | test.go:295:38:295:49 | genericFiles | -| test.go:275:2:275:40 | ... := ...[0] | test.go:296:49:296:60 | genericFiles | -| test.go:275:2:275:40 | ... := ...[0] | test.go:297:51:297:65 | index expression | -| test.go:275:2:275:40 | ... := ...[0] | test.go:298:36:298:47 | genericFiles | -| test.go:275:2:275:40 | ... := ...[0] | test.go:299:37:299:48 | genericFiles | -| test.go:275:2:275:40 | ... := ...[0] | test.go:301:39:301:50 | genericFiles | -| test.go:275:2:275:40 | ... := ...[0] | test.go:302:40:302:51 | genericFiles | -| test.go:275:2:275:40 | ... := ...[0] | test.go:303:39:303:50 | genericFiles | -| test.go:276:2:276:13 | definition of genericFiles [array] | test.go:297:51:297:62 | genericFiles [array] | -| test.go:278:21:278:28 | index expression | test.go:276:2:276:13 | definition of genericFiles [array] | -| test.go:283:44:283:60 | selection of Filename | test.go:283:21:283:61 | call to GetDisplayString | -| test.go:284:21:284:53 | call to SliceChunk | test.go:284:21:284:92 | selection of Filename | -| test.go:284:38:284:49 | genericFiles | test.go:284:21:284:53 | call to SliceChunk | -| test.go:285:21:285:60 | call to SliceDiff | test.go:285:21:285:96 | selection of Filename | -| test.go:285:37:285:48 | genericFiles | test.go:285:21:285:60 | call to SliceDiff | -| test.go:290:3:292:44 | call to SliceFilter | test.go:290:3:292:80 | selection of Filename | -| test.go:291:4:291:15 | genericFiles | test.go:290:3:292:44 | call to SliceFilter | -| test.go:293:21:293:65 | call to SliceIntersect | test.go:293:21:293:101 | selection of Filename | -| test.go:293:42:293:53 | genericFiles | test.go:293:21:293:65 | call to SliceIntersect | -| test.go:294:21:294:65 | call to SliceIntersect | test.go:294:21:294:101 | selection of Filename | -| test.go:294:53:294:64 | genericFiles | test.go:294:21:294:65 | call to SliceIntersect | -| test.go:295:21:295:61 | call to SliceMerge | test.go:295:21:295:97 | selection of Filename | -| test.go:295:38:295:49 | genericFiles | test.go:295:21:295:61 | call to SliceMerge | -| test.go:296:21:296:61 | call to SliceMerge | test.go:296:21:296:97 | selection of Filename | -| test.go:296:49:296:60 | genericFiles | test.go:296:21:296:61 | call to SliceMerge | -| test.go:297:21:297:66 | call to SlicePad | test.go:297:21:297:102 | selection of Filename | -| test.go:297:51:297:62 | genericFiles [array] | test.go:297:51:297:65 | index expression | -| test.go:297:51:297:65 | index expression | test.go:297:21:297:66 | call to SlicePad | -| test.go:298:21:298:66 | call to SlicePad | test.go:298:21:298:102 | selection of Filename | -| test.go:298:36:298:47 | genericFiles | test.go:298:21:298:66 | call to SlicePad | -| test.go:299:21:299:49 | call to SliceRand | test.go:299:21:299:82 | selection of Filename | -| test.go:299:37:299:48 | genericFiles | test.go:299:21:299:49 | call to SliceRand | -| test.go:301:21:301:97 | call to SliceReduce | test.go:301:21:301:133 | selection of Filename | -| test.go:301:39:301:50 | genericFiles | test.go:301:21:301:97 | call to SliceReduce | -| test.go:302:21:302:52 | call to SliceShuffle | test.go:302:21:302:88 | selection of Filename | -| test.go:302:40:302:51 | genericFiles | test.go:302:21:302:52 | call to SliceShuffle | -| test.go:303:21:303:51 | call to SliceUnique | test.go:303:21:303:87 | selection of Filename | -| test.go:303:39:303:50 | genericFiles | test.go:303:21:303:51 | call to SliceUnique | -| test.go:308:2:308:5 | definition of bMap | test.go:311:21:311:24 | bMap | -| test.go:308:2:308:5 | definition of bMap | test.go:312:21:312:24 | bMap | -| test.go:309:15:309:36 | call to GetString | test.go:310:22:310:30 | untrusted | -| test.go:310:22:310:30 | untrusted | test.go:308:2:308:5 | definition of bMap | -| test.go:311:21:311:24 | bMap | test.go:311:21:311:39 | call to Get | -| test.go:311:21:311:39 | call to Get | test.go:311:21:311:48 | type assertion | -| test.go:312:21:312:24 | bMap | test.go:312:21:312:32 | call to Items | -| test.go:312:21:312:32 | call to Items | test.go:312:21:312:52 | type assertion | +| test.go:33:6:33:10 | definition of bound | test.go:35:13:35:30 | type conversion | provenance | | +| test.go:33:6:33:10 | definition of bound | test.go:36:13:36:27 | type conversion | provenance | | +| test.go:33:6:33:10 | definition of bound | test.go:37:13:37:29 | type conversion | provenance | | +| test.go:42:20:42:42 | call to Cookie | test.go:42:13:42:43 | type conversion | provenance | | +| test.go:47:20:47:31 | call to Data | test.go:47:13:47:52 | type conversion | provenance | | +| test.go:52:20:52:43 | call to GetData | test.go:52:13:52:53 | type conversion | provenance | | +| test.go:57:20:57:42 | call to Header | test.go:57:13:57:43 | type conversion | provenance | | +| test.go:62:20:62:41 | call to Param | test.go:62:13:62:42 | type conversion | provenance | | +| test.go:67:20:67:33 | call to Params | test.go:67:13:67:45 | type conversion | provenance | | +| test.go:72:20:72:41 | call to Query | test.go:72:13:72:42 | type conversion | provenance | | +| test.go:77:20:77:32 | call to Refer | test.go:77:13:77:33 | type conversion | provenance | | +| test.go:82:20:82:34 | call to Referer | test.go:82:13:82:35 | type conversion | provenance | | +| test.go:87:20:87:30 | call to URI | test.go:87:13:87:31 | type conversion | provenance | | +| test.go:92:20:92:30 | call to URL | test.go:92:13:92:31 | type conversion | provenance | | +| test.go:97:20:97:36 | call to UserAgent | test.go:97:13:97:37 | type conversion | provenance | | +| test.go:102:14:102:25 | call to Data | test.go:102:14:102:45 | type assertion | provenance | | +| test.go:114:14:114:25 | call to Data | test.go:114:14:114:45 | type assertion | provenance | | +| test.go:126:14:126:25 | call to Data | test.go:126:14:126:45 | type assertion | provenance | | +| test.go:143:23:143:42 | call to Data | test.go:143:23:143:62 | type assertion | provenance | | +| test.go:199:15:199:26 | call to Data | test.go:200:36:200:53 | type assertion | provenance | | +| test.go:199:15:199:26 | call to Data | test.go:201:39:201:56 | type assertion | provenance | | +| test.go:199:15:199:26 | call to Data | test.go:202:28:202:56 | type assertion | provenance | | +| test.go:199:15:199:26 | call to Data | test.go:204:36:204:53 | type assertion | provenance | | +| test.go:199:15:199:26 | call to Data | test.go:205:34:205:51 | type assertion | provenance | | +| test.go:200:21:200:54 | call to HTML2str | test.go:200:14:200:55 | type conversion | provenance | | +| test.go:200:36:200:53 | type assertion | test.go:200:21:200:54 | call to HTML2str | provenance | | +| test.go:201:21:201:57 | call to Htmlunquote | test.go:201:14:201:58 | type conversion | provenance | | +| test.go:201:39:201:56 | type assertion | test.go:201:21:201:57 | call to Htmlunquote | provenance | | +| test.go:202:2:202:68 | ... := ...[0] | test.go:203:14:203:28 | type assertion | provenance | | +| test.go:202:28:202:56 | type assertion | test.go:202:2:202:68 | ... := ...[0] | provenance | | +| test.go:204:21:204:54 | call to Str2html | test.go:204:14:204:55 | type conversion | provenance | | +| test.go:204:36:204:53 | type assertion | test.go:204:21:204:54 | call to Str2html | provenance | | +| test.go:205:21:205:58 | call to Substr | test.go:205:14:205:59 | type conversion | provenance | | +| test.go:205:34:205:51 | type assertion | test.go:205:21:205:58 | call to Substr | provenance | | +| test.go:207:6:207:6 | definition of s | test.go:209:14:209:28 | type conversion | provenance | | +| test.go:208:18:208:33 | selection of Form | test.go:207:6:207:6 | definition of s | provenance | | +| test.go:223:2:223:34 | ... := ...[0] | test.go:225:31:225:31 | f | provenance | | +| test.go:223:2:223:34 | ... := ...[1] | test.go:224:14:224:32 | type conversion | provenance | | +| test.go:225:2:225:32 | ... := ...[0] | test.go:226:14:226:20 | content | provenance | | +| test.go:225:31:225:31 | f | test.go:225:2:225:32 | ... := ...[0] | provenance | | +| test.go:228:2:228:40 | ... := ...[0] | test.go:229:14:229:38 | type conversion | provenance | | +| test.go:231:7:231:28 | call to GetString | test.go:232:14:232:22 | type conversion | provenance | | +| test.go:234:8:234:35 | call to GetStrings | test.go:235:14:235:26 | type conversion | provenance | | +| test.go:237:9:237:17 | call to Input | test.go:238:14:238:27 | type conversion | provenance | | +| test.go:240:6:240:8 | definition of str | test.go:242:14:242:30 | type conversion | provenance | | +| test.go:246:15:246:36 | call to GetString | test.go:249:21:249:29 | untrusted | provenance | | +| test.go:259:23:259:44 | call to GetCookie | test.go:259:16:259:45 | type conversion | provenance | | +| test.go:270:62:270:83 | call to GetCookie | test.go:270:55:270:84 | type conversion | provenance | | +| test.go:275:2:275:40 | ... := ...[0] | test.go:278:21:278:28 | index expression | provenance | | +| test.go:275:2:275:40 | ... := ...[0] | test.go:283:44:283:60 | selection of Filename | provenance | | +| test.go:275:2:275:40 | ... := ...[0] | test.go:284:38:284:49 | genericFiles | provenance | | +| test.go:275:2:275:40 | ... := ...[0] | test.go:285:37:285:48 | genericFiles | provenance | | +| test.go:275:2:275:40 | ... := ...[0] | test.go:291:4:291:15 | genericFiles | provenance | | +| test.go:275:2:275:40 | ... := ...[0] | test.go:293:42:293:53 | genericFiles | provenance | | +| test.go:275:2:275:40 | ... := ...[0] | test.go:294:53:294:64 | genericFiles | provenance | | +| test.go:275:2:275:40 | ... := ...[0] | test.go:295:38:295:49 | genericFiles | provenance | | +| test.go:275:2:275:40 | ... := ...[0] | test.go:296:49:296:60 | genericFiles | provenance | | +| test.go:275:2:275:40 | ... := ...[0] | test.go:297:51:297:65 | index expression | provenance | | +| test.go:275:2:275:40 | ... := ...[0] | test.go:298:36:298:47 | genericFiles | provenance | | +| test.go:275:2:275:40 | ... := ...[0] | test.go:299:37:299:48 | genericFiles | provenance | | +| test.go:275:2:275:40 | ... := ...[0] | test.go:301:39:301:50 | genericFiles | provenance | | +| test.go:275:2:275:40 | ... := ...[0] | test.go:302:40:302:51 | genericFiles | provenance | | +| test.go:275:2:275:40 | ... := ...[0] | test.go:303:39:303:50 | genericFiles | provenance | | +| test.go:276:2:276:13 | definition of genericFiles [array] | test.go:297:51:297:62 | genericFiles [array] | provenance | | +| test.go:278:21:278:28 | index expression | test.go:276:2:276:13 | definition of genericFiles [array] | provenance | | +| test.go:283:44:283:60 | selection of Filename | test.go:283:21:283:61 | call to GetDisplayString | provenance | | +| test.go:284:21:284:53 | call to SliceChunk | test.go:284:21:284:92 | selection of Filename | provenance | | +| test.go:284:38:284:49 | genericFiles | test.go:284:21:284:53 | call to SliceChunk | provenance | | +| test.go:285:21:285:60 | call to SliceDiff | test.go:285:21:285:96 | selection of Filename | provenance | | +| test.go:285:37:285:48 | genericFiles | test.go:285:21:285:60 | call to SliceDiff | provenance | | +| test.go:290:3:292:44 | call to SliceFilter | test.go:290:3:292:80 | selection of Filename | provenance | | +| test.go:291:4:291:15 | genericFiles | test.go:290:3:292:44 | call to SliceFilter | provenance | | +| test.go:293:21:293:65 | call to SliceIntersect | test.go:293:21:293:101 | selection of Filename | provenance | | +| test.go:293:42:293:53 | genericFiles | test.go:293:21:293:65 | call to SliceIntersect | provenance | | +| test.go:294:21:294:65 | call to SliceIntersect | test.go:294:21:294:101 | selection of Filename | provenance | | +| test.go:294:53:294:64 | genericFiles | test.go:294:21:294:65 | call to SliceIntersect | provenance | | +| test.go:295:21:295:61 | call to SliceMerge | test.go:295:21:295:97 | selection of Filename | provenance | | +| test.go:295:38:295:49 | genericFiles | test.go:295:21:295:61 | call to SliceMerge | provenance | | +| test.go:296:21:296:61 | call to SliceMerge | test.go:296:21:296:97 | selection of Filename | provenance | | +| test.go:296:49:296:60 | genericFiles | test.go:296:21:296:61 | call to SliceMerge | provenance | | +| test.go:297:21:297:66 | call to SlicePad | test.go:297:21:297:102 | selection of Filename | provenance | | +| test.go:297:51:297:62 | genericFiles [array] | test.go:297:51:297:65 | index expression | provenance | | +| test.go:297:51:297:65 | index expression | test.go:297:21:297:66 | call to SlicePad | provenance | | +| test.go:298:21:298:66 | call to SlicePad | test.go:298:21:298:102 | selection of Filename | provenance | | +| test.go:298:36:298:47 | genericFiles | test.go:298:21:298:66 | call to SlicePad | provenance | | +| test.go:299:21:299:49 | call to SliceRand | test.go:299:21:299:82 | selection of Filename | provenance | | +| test.go:299:37:299:48 | genericFiles | test.go:299:21:299:49 | call to SliceRand | provenance | | +| test.go:301:21:301:97 | call to SliceReduce | test.go:301:21:301:133 | selection of Filename | provenance | | +| test.go:301:39:301:50 | genericFiles | test.go:301:21:301:97 | call to SliceReduce | provenance | | +| test.go:302:21:302:52 | call to SliceShuffle | test.go:302:21:302:88 | selection of Filename | provenance | | +| test.go:302:40:302:51 | genericFiles | test.go:302:21:302:52 | call to SliceShuffle | provenance | | +| test.go:303:21:303:51 | call to SliceUnique | test.go:303:21:303:87 | selection of Filename | provenance | | +| test.go:303:39:303:50 | genericFiles | test.go:303:21:303:51 | call to SliceUnique | provenance | | +| test.go:308:2:308:5 | definition of bMap | test.go:311:21:311:24 | bMap | provenance | | +| test.go:308:2:308:5 | definition of bMap | test.go:312:21:312:24 | bMap | provenance | | +| test.go:309:15:309:36 | call to GetString | test.go:310:22:310:30 | untrusted | provenance | | +| test.go:310:22:310:30 | untrusted | test.go:308:2:308:5 | definition of bMap | provenance | | +| test.go:311:21:311:24 | bMap | test.go:311:21:311:39 | call to Get | provenance | | +| test.go:311:21:311:39 | call to Get | test.go:311:21:311:48 | type assertion | provenance | | +| test.go:312:21:312:24 | bMap | test.go:312:21:312:32 | call to Items | provenance | | +| test.go:312:21:312:32 | call to Items | test.go:312:21:312:52 | type assertion | provenance | | nodes | test.go:33:6:33:10 | definition of bound | semmle.label | definition of bound | | test.go:35:13:35:30 | type conversion | semmle.label | type conversion | diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Beego/TaintedPath.expected b/go/ql/test/library-tests/semmle/go/frameworks/Beego/TaintedPath.expected index 714f03bdcec1..c0deba242e08 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Beego/TaintedPath.expected +++ b/go/ql/test/library-tests/semmle/go/frameworks/Beego/TaintedPath.expected @@ -1,12 +1,12 @@ edges -| test.go:215:15:215:26 | call to Data | test.go:216:18:216:26 | untrusted | -| test.go:215:15:215:26 | call to Data | test.go:217:10:217:18 | untrusted | -| test.go:215:15:215:26 | call to Data | test.go:218:35:218:43 | untrusted | -| test.go:324:17:324:37 | selection of RequestBody | test.go:324:40:324:43 | &... | -| test.go:324:40:324:43 | &... | test.go:326:35:326:43 | untrusted | -| test.go:332:15:332:26 | call to Data | test.go:334:23:334:31 | untrusted | -| test.go:340:15:340:26 | call to Data | test.go:342:53:342:61 | untrusted | -| test.go:340:15:340:26 | call to Data | test.go:344:23:344:31 | untrusted | +| test.go:215:15:215:26 | call to Data | test.go:216:18:216:26 | untrusted | provenance | | +| test.go:215:15:215:26 | call to Data | test.go:217:10:217:18 | untrusted | provenance | | +| test.go:215:15:215:26 | call to Data | test.go:218:35:218:43 | untrusted | provenance | | +| test.go:324:17:324:37 | selection of RequestBody | test.go:324:40:324:43 | &... | provenance | | +| test.go:324:40:324:43 | &... | test.go:326:35:326:43 | untrusted | provenance | | +| test.go:332:15:332:26 | call to Data | test.go:334:23:334:31 | untrusted | provenance | | +| test.go:340:15:340:26 | call to Data | test.go:342:53:342:61 | untrusted | provenance | | +| test.go:340:15:340:26 | call to Data | test.go:344:23:344:31 | untrusted | provenance | | nodes | test.go:215:15:215:26 | call to Data | semmle.label | call to Data | | test.go:216:18:216:26 | untrusted | semmle.label | untrusted | diff --git a/go/ql/test/library-tests/semmle/go/frameworks/BeegoOrm/SqlInjection.expected b/go/ql/test/library-tests/semmle/go/frameworks/BeegoOrm/SqlInjection.expected index f9668a6f7230..ccaac4425ff5 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/BeegoOrm/SqlInjection.expected +++ b/go/ql/test/library-tests/semmle/go/frameworks/BeegoOrm/SqlInjection.expected @@ -1,36 +1,36 @@ edges -| test.go:10:15:10:41 | call to UserAgent | test.go:12:11:12:19 | untrusted | -| test.go:10:15:10:41 | call to UserAgent | test.go:13:23:13:31 | untrusted | -| test.go:10:15:10:41 | call to UserAgent | test.go:14:14:14:22 | untrusted | -| test.go:10:15:10:41 | call to UserAgent | test.go:15:26:15:34 | untrusted | -| test.go:10:15:10:41 | call to UserAgent | test.go:16:12:16:20 | untrusted | -| test.go:10:15:10:41 | call to UserAgent | test.go:17:24:17:32 | untrusted | -| test.go:10:15:10:41 | call to UserAgent | test.go:18:15:18:23 | untrusted | -| test.go:10:15:10:41 | call to UserAgent | test.go:19:27:19:35 | untrusted | -| test.go:24:15:24:41 | call to UserAgent | test.go:26:12:26:20 | untrusted | -| test.go:24:15:24:41 | call to UserAgent | test.go:27:10:27:18 | untrusted | -| test.go:24:15:24:41 | call to UserAgent | test.go:28:15:28:23 | untrusted | -| test.go:24:15:24:41 | call to UserAgent | test.go:29:14:29:22 | untrusted | -| test.go:24:15:24:41 | call to UserAgent | test.go:30:15:30:23 | untrusted | -| test.go:24:15:24:41 | call to UserAgent | test.go:31:8:31:16 | untrusted | -| test.go:24:15:24:41 | call to UserAgent | test.go:32:11:32:19 | untrusted | -| test.go:24:15:24:41 | call to UserAgent | test.go:33:9:33:17 | untrusted | -| test.go:24:15:24:41 | call to UserAgent | test.go:34:8:34:16 | untrusted | -| test.go:24:15:24:41 | call to UserAgent | test.go:35:8:35:16 | untrusted | -| test.go:24:15:24:41 | call to UserAgent | test.go:36:13:36:21 | untrusted | -| test.go:24:15:24:41 | call to UserAgent | test.go:37:13:37:21 | untrusted | -| test.go:24:15:24:41 | call to UserAgent | test.go:38:12:38:20 | untrusted | -| test.go:24:15:24:41 | call to UserAgent | test.go:39:12:39:20 | untrusted | -| test.go:24:15:24:41 | call to UserAgent | test.go:40:9:40:17 | untrusted | -| test.go:24:15:24:41 | call to UserAgent | test.go:41:12:41:20 | untrusted | -| test.go:24:15:24:41 | call to UserAgent | test.go:42:16:42:24 | untrusted | -| test.go:24:15:24:41 | call to UserAgent | test.go:42:27:42:35 | untrusted | -| test.go:24:15:24:41 | call to UserAgent | test.go:43:12:43:20 | untrusted | -| test.go:24:15:24:41 | call to UserAgent | test.go:44:14:44:22 | untrusted | -| test.go:24:15:24:41 | call to UserAgent | test.go:44:25:44:33 | untrusted | -| test.go:48:15:48:41 | call to UserAgent | test.go:49:12:49:20 | untrusted | -| test.go:54:15:54:41 | call to UserAgent | test.go:56:31:56:39 | untrusted | -| test.go:60:15:60:41 | call to UserAgent | test.go:62:19:62:27 | untrusted | +| test.go:10:15:10:41 | call to UserAgent | test.go:12:11:12:19 | untrusted | provenance | | +| test.go:10:15:10:41 | call to UserAgent | test.go:13:23:13:31 | untrusted | provenance | | +| test.go:10:15:10:41 | call to UserAgent | test.go:14:14:14:22 | untrusted | provenance | | +| test.go:10:15:10:41 | call to UserAgent | test.go:15:26:15:34 | untrusted | provenance | | +| test.go:10:15:10:41 | call to UserAgent | test.go:16:12:16:20 | untrusted | provenance | | +| test.go:10:15:10:41 | call to UserAgent | test.go:17:24:17:32 | untrusted | provenance | | +| test.go:10:15:10:41 | call to UserAgent | test.go:18:15:18:23 | untrusted | provenance | | +| test.go:10:15:10:41 | call to UserAgent | test.go:19:27:19:35 | untrusted | provenance | | +| test.go:24:15:24:41 | call to UserAgent | test.go:26:12:26:20 | untrusted | provenance | | +| test.go:24:15:24:41 | call to UserAgent | test.go:27:10:27:18 | untrusted | provenance | | +| test.go:24:15:24:41 | call to UserAgent | test.go:28:15:28:23 | untrusted | provenance | | +| test.go:24:15:24:41 | call to UserAgent | test.go:29:14:29:22 | untrusted | provenance | | +| test.go:24:15:24:41 | call to UserAgent | test.go:30:15:30:23 | untrusted | provenance | | +| test.go:24:15:24:41 | call to UserAgent | test.go:31:8:31:16 | untrusted | provenance | | +| test.go:24:15:24:41 | call to UserAgent | test.go:32:11:32:19 | untrusted | provenance | | +| test.go:24:15:24:41 | call to UserAgent | test.go:33:9:33:17 | untrusted | provenance | | +| test.go:24:15:24:41 | call to UserAgent | test.go:34:8:34:16 | untrusted | provenance | | +| test.go:24:15:24:41 | call to UserAgent | test.go:35:8:35:16 | untrusted | provenance | | +| test.go:24:15:24:41 | call to UserAgent | test.go:36:13:36:21 | untrusted | provenance | | +| test.go:24:15:24:41 | call to UserAgent | test.go:37:13:37:21 | untrusted | provenance | | +| test.go:24:15:24:41 | call to UserAgent | test.go:38:12:38:20 | untrusted | provenance | | +| test.go:24:15:24:41 | call to UserAgent | test.go:39:12:39:20 | untrusted | provenance | | +| test.go:24:15:24:41 | call to UserAgent | test.go:40:9:40:17 | untrusted | provenance | | +| test.go:24:15:24:41 | call to UserAgent | test.go:41:12:41:20 | untrusted | provenance | | +| test.go:24:15:24:41 | call to UserAgent | test.go:42:16:42:24 | untrusted | provenance | | +| test.go:24:15:24:41 | call to UserAgent | test.go:42:27:42:35 | untrusted | provenance | | +| test.go:24:15:24:41 | call to UserAgent | test.go:43:12:43:20 | untrusted | provenance | | +| test.go:24:15:24:41 | call to UserAgent | test.go:44:14:44:22 | untrusted | provenance | | +| test.go:24:15:24:41 | call to UserAgent | test.go:44:25:44:33 | untrusted | provenance | | +| test.go:48:15:48:41 | call to UserAgent | test.go:49:12:49:20 | untrusted | provenance | | +| test.go:54:15:54:41 | call to UserAgent | test.go:56:31:56:39 | untrusted | provenance | | +| test.go:60:15:60:41 | call to UserAgent | test.go:62:19:62:27 | untrusted | provenance | | nodes | test.go:10:15:10:41 | call to UserAgent | semmle.label | call to UserAgent | | test.go:12:11:12:19 | untrusted | semmle.label | untrusted | diff --git a/go/ql/test/library-tests/semmle/go/frameworks/BeegoOrm/StoredXss.expected b/go/ql/test/library-tests/semmle/go/frameworks/BeegoOrm/StoredXss.expected index 09a41c42fb20..363a42b91d7d 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/BeegoOrm/StoredXss.expected +++ b/go/ql/test/library-tests/semmle/go/frameworks/BeegoOrm/StoredXss.expected @@ -1,31 +1,31 @@ edges -| test.go:77:13:77:16 | &... | test.go:78:13:78:29 | type conversion | -| test.go:77:13:77:16 | &... | test.go:79:13:79:43 | type conversion | -| test.go:82:22:82:26 | &... | test.go:83:13:83:30 | type conversion | -| test.go:86:21:86:25 | &... | test.go:87:13:87:30 | type conversion | -| test.go:92:20:92:36 | call to Value | test.go:92:13:92:37 | type conversion | -| test.go:93:20:93:39 | call to RawValue | test.go:93:13:93:49 | type conversion | -| test.go:94:20:94:37 | call to String | test.go:94:13:94:38 | type conversion | -| test.go:95:20:95:36 | call to Value | test.go:95:13:95:37 | type conversion | -| test.go:96:20:96:39 | call to RawValue | test.go:96:13:96:49 | type conversion | -| test.go:97:20:97:37 | call to String | test.go:97:13:97:38 | type conversion | -| test.go:98:20:98:37 | call to Value | test.go:98:13:98:38 | type conversion | -| test.go:99:20:99:40 | call to RawValue | test.go:99:13:99:50 | type conversion | -| test.go:100:20:100:38 | call to String | test.go:100:13:100:39 | type conversion | -| test.go:106:9:106:13 | &... | test.go:107:13:107:33 | type conversion | -| test.go:110:9:110:12 | &... | test.go:111:13:111:29 | type conversion | -| test.go:114:12:114:19 | &... | test.go:115:13:115:48 | type conversion | -| test.go:118:16:118:24 | &... | test.go:119:13:119:43 | type conversion | -| test.go:122:16:122:23 | &... | test.go:123:13:123:39 | type conversion | -| test.go:126:15:126:24 | &... | test.go:127:13:127:47 | type conversion | -| test.go:130:18:130:30 | &... | test.go:131:13:131:38 | type conversion | -| test.go:137:12:137:19 | &... | test.go:138:13:138:48 | type conversion | -| test.go:141:16:141:24 | &... | test.go:142:13:142:43 | type conversion | -| test.go:145:16:145:23 | &... | test.go:146:13:146:39 | type conversion | -| test.go:149:15:149:24 | &... | test.go:150:13:150:47 | type conversion | -| test.go:153:18:153:30 | &... | test.go:154:13:154:38 | type conversion | -| test.go:157:14:157:22 | &... | test.go:158:13:158:28 | type conversion | -| test.go:161:15:161:24 | &... | test.go:162:13:162:32 | type conversion | +| test.go:77:13:77:16 | &... | test.go:78:13:78:29 | type conversion | provenance | | +| test.go:77:13:77:16 | &... | test.go:79:13:79:43 | type conversion | provenance | | +| test.go:82:22:82:26 | &... | test.go:83:13:83:30 | type conversion | provenance | | +| test.go:86:21:86:25 | &... | test.go:87:13:87:30 | type conversion | provenance | | +| test.go:92:20:92:36 | call to Value | test.go:92:13:92:37 | type conversion | provenance | | +| test.go:93:20:93:39 | call to RawValue | test.go:93:13:93:49 | type conversion | provenance | | +| test.go:94:20:94:37 | call to String | test.go:94:13:94:38 | type conversion | provenance | | +| test.go:95:20:95:36 | call to Value | test.go:95:13:95:37 | type conversion | provenance | | +| test.go:96:20:96:39 | call to RawValue | test.go:96:13:96:49 | type conversion | provenance | | +| test.go:97:20:97:37 | call to String | test.go:97:13:97:38 | type conversion | provenance | | +| test.go:98:20:98:37 | call to Value | test.go:98:13:98:38 | type conversion | provenance | | +| test.go:99:20:99:40 | call to RawValue | test.go:99:13:99:50 | type conversion | provenance | | +| test.go:100:20:100:38 | call to String | test.go:100:13:100:39 | type conversion | provenance | | +| test.go:106:9:106:13 | &... | test.go:107:13:107:33 | type conversion | provenance | | +| test.go:110:9:110:12 | &... | test.go:111:13:111:29 | type conversion | provenance | | +| test.go:114:12:114:19 | &... | test.go:115:13:115:48 | type conversion | provenance | | +| test.go:118:16:118:24 | &... | test.go:119:13:119:43 | type conversion | provenance | | +| test.go:122:16:122:23 | &... | test.go:123:13:123:39 | type conversion | provenance | | +| test.go:126:15:126:24 | &... | test.go:127:13:127:47 | type conversion | provenance | | +| test.go:130:18:130:30 | &... | test.go:131:13:131:38 | type conversion | provenance | | +| test.go:137:12:137:19 | &... | test.go:138:13:138:48 | type conversion | provenance | | +| test.go:141:16:141:24 | &... | test.go:142:13:142:43 | type conversion | provenance | | +| test.go:145:16:145:23 | &... | test.go:146:13:146:39 | type conversion | provenance | | +| test.go:149:15:149:24 | &... | test.go:150:13:150:47 | type conversion | provenance | | +| test.go:153:18:153:30 | &... | test.go:154:13:154:38 | type conversion | provenance | | +| test.go:157:14:157:22 | &... | test.go:158:13:158:28 | type conversion | provenance | | +| test.go:161:15:161:24 | &... | test.go:162:13:162:32 | type conversion | provenance | | nodes | test.go:77:13:77:16 | &... | semmle.label | &... | | test.go:78:13:78:29 | type conversion | semmle.label | type conversion | diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Chi/ReflectedXss.expected b/go/ql/test/library-tests/semmle/go/frameworks/Chi/ReflectedXss.expected index cc6d95f87178..d422436065c1 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Chi/ReflectedXss.expected +++ b/go/ql/test/library-tests/semmle/go/frameworks/Chi/ReflectedXss.expected @@ -1,10 +1,10 @@ edges -| test.go:13:12:13:16 | selection of URL | test.go:13:12:13:21 | selection of Path | -| test.go:13:12:13:21 | selection of Path | test.go:21:18:21:23 | hidden | -| test.go:21:18:21:23 | hidden | test.go:21:11:21:24 | type conversion | -| test.go:22:18:22:45 | call to URLParam | test.go:22:11:22:46 | type conversion | -| test.go:23:18:23:60 | call to URLParamFromCtx | test.go:23:11:23:61 | type conversion | -| test.go:24:18:24:71 | call to URLParam | test.go:24:11:24:72 | type conversion | +| test.go:13:12:13:16 | selection of URL | test.go:13:12:13:21 | selection of Path | provenance | | +| test.go:13:12:13:21 | selection of Path | test.go:21:18:21:23 | hidden | provenance | | +| test.go:21:18:21:23 | hidden | test.go:21:11:21:24 | type conversion | provenance | | +| test.go:22:18:22:45 | call to URLParam | test.go:22:11:22:46 | type conversion | provenance | | +| test.go:23:18:23:60 | call to URLParamFromCtx | test.go:23:11:23:61 | type conversion | provenance | | +| test.go:24:18:24:71 | call to URLParam | test.go:24:11:24:72 | type conversion | provenance | | nodes | test.go:13:12:13:16 | selection of URL | semmle.label | selection of URL | | test.go:13:12:13:21 | selection of Path | semmle.label | selection of Path | diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Echo/OpenRedirect.expected b/go/ql/test/library-tests/semmle/go/frameworks/Echo/OpenRedirect.expected index 12bab8f680e5..77425f059c87 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Echo/OpenRedirect.expected +++ b/go/ql/test/library-tests/semmle/go/frameworks/Echo/OpenRedirect.expected @@ -1,14 +1,14 @@ edges -| test.go:172:2:172:6 | definition of param | test.go:173:20:173:24 | param | -| test.go:172:11:172:32 | call to Param | test.go:172:2:172:6 | definition of param | -| test.go:178:2:178:6 | definition of param | test.go:182:24:182:28 | param | -| test.go:178:11:178:32 | call to Param | test.go:178:2:178:6 | definition of param | -| test.go:182:24:182:28 | param | test.go:182:20:182:28 | ...+... | -| test.go:190:2:190:4 | definition of url | test.go:193:21:193:23 | url | -| test.go:190:9:190:26 | star expression | test.go:190:2:190:4 | definition of url | -| test.go:190:9:190:26 | star expression | test.go:190:10:190:26 | selection of URL | -| test.go:190:10:190:26 | selection of URL | test.go:190:9:190:26 | star expression | -| test.go:193:21:193:23 | url | test.go:193:21:193:32 | call to String | +| test.go:172:2:172:6 | definition of param | test.go:173:20:173:24 | param | provenance | | +| test.go:172:11:172:32 | call to Param | test.go:172:2:172:6 | definition of param | provenance | | +| test.go:178:2:178:6 | definition of param | test.go:182:24:182:28 | param | provenance | | +| test.go:178:11:178:32 | call to Param | test.go:178:2:178:6 | definition of param | provenance | | +| test.go:182:24:182:28 | param | test.go:182:20:182:28 | ...+... | provenance | | +| test.go:190:2:190:4 | definition of url | test.go:193:21:193:23 | url | provenance | | +| test.go:190:9:190:26 | star expression | test.go:190:2:190:4 | definition of url | provenance | | +| test.go:190:9:190:26 | star expression | test.go:190:10:190:26 | selection of URL | provenance | | +| test.go:190:10:190:26 | selection of URL | test.go:190:9:190:26 | star expression | provenance | | +| test.go:193:21:193:23 | url | test.go:193:21:193:32 | call to String | provenance | | nodes | test.go:172:2:172:6 | definition of param | semmle.label | definition of param | | test.go:172:11:172:32 | call to Param | semmle.label | call to Param | diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Echo/ReflectedXss.expected b/go/ql/test/library-tests/semmle/go/frameworks/Echo/ReflectedXss.expected index 05a6ac2869b0..f76e5fb42cdf 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Echo/ReflectedXss.expected +++ b/go/ql/test/library-tests/semmle/go/frameworks/Echo/ReflectedXss.expected @@ -1,36 +1,36 @@ edges -| test.go:15:11:15:32 | call to Param | test.go:16:16:16:20 | param | -| test.go:21:11:21:27 | call to ParamValues | test.go:22:16:22:20 | param | -| test.go:27:11:27:37 | call to QueryParam | test.go:28:16:28:20 | param | -| test.go:33:11:33:27 | call to QueryParams | test.go:34:16:34:20 | param | -| test.go:39:10:39:26 | call to QueryString | test.go:40:16:40:19 | qstr | -| test.go:45:9:45:34 | call to FormValue | test.go:46:16:46:18 | val | -| test.go:51:2:51:30 | ... := ...[0] | test.go:52:16:52:37 | index expression | -| test.go:57:2:57:46 | ... := ...[0] | test.go:58:13:58:22 | fileHeader | -| test.go:58:2:58:29 | ... := ...[0] | test.go:60:2:60:5 | file | -| test.go:58:13:58:22 | fileHeader | test.go:58:2:58:29 | ... := ...[0] | -| test.go:59:2:59:7 | definition of buffer | test.go:61:20:61:25 | buffer | -| test.go:60:2:60:5 | file | test.go:59:2:59:7 | definition of buffer | -| test.go:66:2:66:31 | ... := ...[0] | test.go:67:16:67:41 | index expression | -| test.go:72:2:72:31 | ... := ...[0] | test.go:74:13:74:22 | fileHeader | -| test.go:74:2:74:29 | ... := ...[0] | test.go:76:2:76:5 | file | -| test.go:74:13:74:22 | fileHeader | test.go:74:2:74:29 | ... := ...[0] | -| test.go:75:2:75:7 | definition of buffer | test.go:77:20:77:25 | buffer | -| test.go:76:2:76:5 | file | test.go:75:2:75:7 | definition of buffer | -| test.go:82:2:82:32 | ... := ...[0] | test.go:83:16:83:24 | selection of Value | -| test.go:88:13:88:25 | call to Cookies | test.go:89:16:89:31 | selection of Value | -| test.go:99:11:99:15 | &... | test.go:100:16:100:21 | selection of s | -| test.go:112:17:112:19 | definition of ctx | test.go:114:16:114:18 | ctx | -| test.go:113:21:113:42 | call to Param | test.go:112:17:112:19 | definition of ctx | -| test.go:114:16:114:18 | ctx | test.go:114:16:114:33 | call to Get | -| test.go:114:16:114:33 | call to Get | test.go:114:16:114:42 | type assertion | -| test.go:124:11:124:32 | call to Param | test.go:125:16:125:20 | param | -| test.go:130:11:130:32 | call to Param | test.go:131:20:131:32 | type conversion | -| test.go:136:11:136:32 | call to Param | test.go:137:29:137:41 | type conversion | -| test.go:148:11:148:32 | call to Param | test.go:149:30:149:34 | param | -| test.go:149:12:149:35 | call to NewReader | test.go:150:31:150:36 | reader | -| test.go:149:30:149:34 | param | test.go:149:12:149:35 | call to NewReader | -| test.go:164:11:164:32 | call to Param | test.go:165:23:165:35 | type conversion | +| test.go:15:11:15:32 | call to Param | test.go:16:16:16:20 | param | provenance | | +| test.go:21:11:21:27 | call to ParamValues | test.go:22:16:22:20 | param | provenance | | +| test.go:27:11:27:37 | call to QueryParam | test.go:28:16:28:20 | param | provenance | | +| test.go:33:11:33:27 | call to QueryParams | test.go:34:16:34:20 | param | provenance | | +| test.go:39:10:39:26 | call to QueryString | test.go:40:16:40:19 | qstr | provenance | | +| test.go:45:9:45:34 | call to FormValue | test.go:46:16:46:18 | val | provenance | | +| test.go:51:2:51:30 | ... := ...[0] | test.go:52:16:52:37 | index expression | provenance | | +| test.go:57:2:57:46 | ... := ...[0] | test.go:58:13:58:22 | fileHeader | provenance | | +| test.go:58:2:58:29 | ... := ...[0] | test.go:60:2:60:5 | file | provenance | | +| test.go:58:13:58:22 | fileHeader | test.go:58:2:58:29 | ... := ...[0] | provenance | | +| test.go:59:2:59:7 | definition of buffer | test.go:61:20:61:25 | buffer | provenance | | +| test.go:60:2:60:5 | file | test.go:59:2:59:7 | definition of buffer | provenance | | +| test.go:66:2:66:31 | ... := ...[0] | test.go:67:16:67:41 | index expression | provenance | | +| test.go:72:2:72:31 | ... := ...[0] | test.go:74:13:74:22 | fileHeader | provenance | | +| test.go:74:2:74:29 | ... := ...[0] | test.go:76:2:76:5 | file | provenance | | +| test.go:74:13:74:22 | fileHeader | test.go:74:2:74:29 | ... := ...[0] | provenance | | +| test.go:75:2:75:7 | definition of buffer | test.go:77:20:77:25 | buffer | provenance | | +| test.go:76:2:76:5 | file | test.go:75:2:75:7 | definition of buffer | provenance | | +| test.go:82:2:82:32 | ... := ...[0] | test.go:83:16:83:24 | selection of Value | provenance | | +| test.go:88:13:88:25 | call to Cookies | test.go:89:16:89:31 | selection of Value | provenance | | +| test.go:99:11:99:15 | &... | test.go:100:16:100:21 | selection of s | provenance | | +| test.go:112:17:112:19 | definition of ctx | test.go:114:16:114:18 | ctx | provenance | | +| test.go:113:21:113:42 | call to Param | test.go:112:17:112:19 | definition of ctx | provenance | | +| test.go:114:16:114:18 | ctx | test.go:114:16:114:33 | call to Get | provenance | | +| test.go:114:16:114:33 | call to Get | test.go:114:16:114:42 | type assertion | provenance | | +| test.go:124:11:124:32 | call to Param | test.go:125:16:125:20 | param | provenance | | +| test.go:130:11:130:32 | call to Param | test.go:131:20:131:32 | type conversion | provenance | | +| test.go:136:11:136:32 | call to Param | test.go:137:29:137:41 | type conversion | provenance | | +| test.go:148:11:148:32 | call to Param | test.go:149:30:149:34 | param | provenance | | +| test.go:149:12:149:35 | call to NewReader | test.go:150:31:150:36 | reader | provenance | | +| test.go:149:30:149:34 | param | test.go:149:12:149:35 | call to NewReader | provenance | | +| test.go:164:11:164:32 | call to Param | test.go:165:23:165:35 | type conversion | provenance | | nodes | test.go:15:11:15:32 | call to Param | semmle.label | call to Param | | test.go:16:16:16:20 | param | semmle.label | param | diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Echo/TaintedPath.expected b/go/ql/test/library-tests/semmle/go/frameworks/Echo/TaintedPath.expected index 5c43259a2b64..04bcfdedcb0c 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Echo/TaintedPath.expected +++ b/go/ql/test/library-tests/semmle/go/frameworks/Echo/TaintedPath.expected @@ -1,6 +1,6 @@ edges -| test.go:221:15:221:38 | call to QueryParam | test.go:222:17:222:24 | filepath | -| test.go:225:15:225:38 | call to QueryParam | test.go:226:23:226:30 | filepath | +| test.go:221:15:221:38 | call to QueryParam | test.go:222:17:222:24 | filepath | provenance | | +| test.go:225:15:225:38 | call to QueryParam | test.go:226:23:226:30 | filepath | provenance | | nodes | test.go:221:15:221:38 | call to QueryParam | semmle.label | call to QueryParam | | test.go:222:17:222:24 | filepath | semmle.label | filepath | diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Encoding/jsoniter.expected b/go/ql/test/library-tests/semmle/go/frameworks/Encoding/jsoniter.expected index 5161978daeb3..ffbde6355cbc 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Encoding/jsoniter.expected +++ b/go/ql/test/library-tests/semmle/go/frameworks/Encoding/jsoniter.expected @@ -1,16 +1,16 @@ edges -| jsoniter.go:23:20:23:38 | call to getUntrustedBytes | jsoniter.go:27:17:27:30 | untrustedInput | -| jsoniter.go:23:20:23:38 | call to getUntrustedBytes | jsoniter.go:31:21:31:34 | untrustedInput | -| jsoniter.go:24:21:24:40 | call to getUntrustedString | jsoniter.go:35:27:35:41 | untrustedString | -| jsoniter.go:24:21:24:40 | call to getUntrustedString | jsoniter.go:39:31:39:45 | untrustedString | -| jsoniter.go:27:17:27:30 | untrustedInput | jsoniter.go:27:33:27:37 | &... | -| jsoniter.go:27:33:27:37 | &... | jsoniter.go:28:15:28:24 | selection of field | -| jsoniter.go:31:21:31:34 | untrustedInput | jsoniter.go:31:37:31:42 | &... | -| jsoniter.go:31:37:31:42 | &... | jsoniter.go:32:15:32:25 | selection of field | -| jsoniter.go:35:27:35:41 | untrustedString | jsoniter.go:35:44:35:49 | &... | -| jsoniter.go:35:44:35:49 | &... | jsoniter.go:36:15:36:25 | selection of field | -| jsoniter.go:39:31:39:45 | untrustedString | jsoniter.go:39:48:39:53 | &... | -| jsoniter.go:39:48:39:53 | &... | jsoniter.go:40:15:40:25 | selection of field | +| jsoniter.go:23:20:23:38 | call to getUntrustedBytes | jsoniter.go:27:17:27:30 | untrustedInput | provenance | | +| jsoniter.go:23:20:23:38 | call to getUntrustedBytes | jsoniter.go:31:21:31:34 | untrustedInput | provenance | | +| jsoniter.go:24:21:24:40 | call to getUntrustedString | jsoniter.go:35:27:35:41 | untrustedString | provenance | | +| jsoniter.go:24:21:24:40 | call to getUntrustedString | jsoniter.go:39:31:39:45 | untrustedString | provenance | | +| jsoniter.go:27:17:27:30 | untrustedInput | jsoniter.go:27:33:27:37 | &... | provenance | | +| jsoniter.go:27:33:27:37 | &... | jsoniter.go:28:15:28:24 | selection of field | provenance | | +| jsoniter.go:31:21:31:34 | untrustedInput | jsoniter.go:31:37:31:42 | &... | provenance | | +| jsoniter.go:31:37:31:42 | &... | jsoniter.go:32:15:32:25 | selection of field | provenance | | +| jsoniter.go:35:27:35:41 | untrustedString | jsoniter.go:35:44:35:49 | &... | provenance | | +| jsoniter.go:35:44:35:49 | &... | jsoniter.go:36:15:36:25 | selection of field | provenance | | +| jsoniter.go:39:31:39:45 | untrustedString | jsoniter.go:39:48:39:53 | &... | provenance | | +| jsoniter.go:39:48:39:53 | &... | jsoniter.go:40:15:40:25 | selection of field | provenance | | nodes | jsoniter.go:23:20:23:38 | call to getUntrustedBytes | semmle.label | call to getUntrustedBytes | | jsoniter.go:24:21:24:40 | call to getUntrustedString | semmle.label | call to getUntrustedString | diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Gin/TaintedPath.expected b/go/ql/test/library-tests/semmle/go/frameworks/Gin/TaintedPath.expected index b53ceb0281e1..45d417ca8128 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Gin/TaintedPath.expected +++ b/go/ql/test/library-tests/semmle/go/frameworks/Gin/TaintedPath.expected @@ -1,8 +1,8 @@ edges -| Gin.go:24:15:24:33 | call to Query | Gin.go:25:10:25:17 | filepath | -| Gin.go:24:15:24:33 | call to Query | Gin.go:26:39:26:46 | filepath | -| Gin.go:24:15:24:33 | call to Query | Gin.go:27:20:27:27 | filepath | -| Gin.go:24:15:24:33 | call to Query | Gin.go:29:32:29:39 | filepath | +| Gin.go:24:15:24:33 | call to Query | Gin.go:25:10:25:17 | filepath | provenance | | +| Gin.go:24:15:24:33 | call to Query | Gin.go:26:39:26:46 | filepath | provenance | | +| Gin.go:24:15:24:33 | call to Query | Gin.go:27:20:27:27 | filepath | provenance | | +| Gin.go:24:15:24:33 | call to Query | Gin.go:29:32:29:39 | filepath | provenance | | nodes | Gin.go:24:15:24:33 | call to Query | semmle.label | call to Query | | Gin.go:25:10:25:17 | filepath | semmle.label | filepath | diff --git a/go/ql/test/library-tests/semmle/go/frameworks/GoMicro/LogInjection.expected b/go/ql/test/library-tests/semmle/go/frameworks/GoMicro/LogInjection.expected index d23496fe4c5e..7e8cdc288f17 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/GoMicro/LogInjection.expected +++ b/go/ql/test/library-tests/semmle/go/frameworks/GoMicro/LogInjection.expected @@ -1,16 +1,16 @@ edges -| main.go:18:46:18:48 | definition of req | main.go:18:46:18:48 | definition of req | -| main.go:18:46:18:48 | definition of req | main.go:18:46:18:48 | definition of req | -| main.go:18:46:18:48 | definition of req | main.go:21:28:21:31 | name | -| main.go:18:46:18:48 | definition of req | main.go:21:28:21:31 | name | -| main.go:18:46:18:48 | definition of req | proto/Hello.pb.micro.go:85:53:85:54 | definition of in | -| proto/Hello.pb.micro.go:85:53:85:54 | definition of in | proto/Hello.pb.micro.go:85:53:85:54 | definition of in | -| proto/Hello.pb.micro.go:85:53:85:54 | definition of in | proto/Hello.pb.micro.go:86:37:86:38 | in | -| proto/Hello.pb.micro.go:85:53:85:54 | definition of in | proto/Hello.pb.micro.go:86:37:86:38 | in | -| proto/Hello.pb.micro.go:86:37:86:38 | in | main.go:18:46:18:48 | definition of req | -| proto/Hello.pb.micro.go:86:37:86:38 | in | main.go:18:46:18:48 | definition of req | -| proto/Hello.pb.micro.go:86:37:86:38 | in | proto/Hello.pb.micro.go:85:53:85:54 | definition of in | -| proto/Hello.pb.micro.go:86:37:86:38 | in | proto/Hello.pb.micro.go:85:53:85:54 | definition of in | +| main.go:18:46:18:48 | definition of req | main.go:18:46:18:48 | definition of req | provenance | | +| main.go:18:46:18:48 | definition of req | main.go:18:46:18:48 | definition of req | provenance | | +| main.go:18:46:18:48 | definition of req | main.go:21:28:21:31 | name | provenance | | +| main.go:18:46:18:48 | definition of req | main.go:21:28:21:31 | name | provenance | | +| main.go:18:46:18:48 | definition of req | proto/Hello.pb.micro.go:85:53:85:54 | definition of in | provenance | | +| proto/Hello.pb.micro.go:85:53:85:54 | definition of in | proto/Hello.pb.micro.go:85:53:85:54 | definition of in | provenance | | +| proto/Hello.pb.micro.go:85:53:85:54 | definition of in | proto/Hello.pb.micro.go:86:37:86:38 | in | provenance | | +| proto/Hello.pb.micro.go:85:53:85:54 | definition of in | proto/Hello.pb.micro.go:86:37:86:38 | in | provenance | | +| proto/Hello.pb.micro.go:86:37:86:38 | in | main.go:18:46:18:48 | definition of req | provenance | | +| proto/Hello.pb.micro.go:86:37:86:38 | in | main.go:18:46:18:48 | definition of req | provenance | | +| proto/Hello.pb.micro.go:86:37:86:38 | in | proto/Hello.pb.micro.go:85:53:85:54 | definition of in | provenance | | +| proto/Hello.pb.micro.go:86:37:86:38 | in | proto/Hello.pb.micro.go:85:53:85:54 | definition of in | provenance | | nodes | main.go:18:46:18:48 | definition of req | semmle.label | definition of req | | main.go:18:46:18:48 | definition of req | semmle.label | definition of req | diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Gorestful/gorestful.expected b/go/ql/test/library-tests/semmle/go/frameworks/Gorestful/gorestful.expected index b299a773b061..e64858732ed4 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Gorestful/gorestful.expected +++ b/go/ql/test/library-tests/semmle/go/frameworks/Gorestful/gorestful.expected @@ -1,12 +1,12 @@ edges -| gorestful.go:15:15:15:44 | call to QueryParameters | gorestful.go:15:15:15:47 | index expression | -| gorestful.go:17:12:17:39 | call to BodyParameter | gorestful.go:18:15:18:17 | val | -| gorestful.go:21:15:21:38 | call to PathParameters | gorestful.go:21:15:21:45 | index expression | -| gorestful.go:23:21:23:24 | &... | gorestful.go:24:15:24:21 | selection of cmd | -| gorestful_v2.go:15:15:15:44 | call to QueryParameters | gorestful_v2.go:15:15:15:47 | index expression | -| gorestful_v2.go:17:12:17:39 | call to BodyParameter | gorestful_v2.go:18:15:18:17 | val | -| gorestful_v2.go:21:15:21:38 | call to PathParameters | gorestful_v2.go:21:15:21:45 | index expression | -| gorestful_v2.go:23:21:23:24 | &... | gorestful_v2.go:24:15:24:21 | selection of cmd | +| gorestful.go:15:15:15:44 | call to QueryParameters | gorestful.go:15:15:15:47 | index expression | provenance | | +| gorestful.go:17:12:17:39 | call to BodyParameter | gorestful.go:18:15:18:17 | val | provenance | | +| gorestful.go:21:15:21:38 | call to PathParameters | gorestful.go:21:15:21:45 | index expression | provenance | | +| gorestful.go:23:21:23:24 | &... | gorestful.go:24:15:24:21 | selection of cmd | provenance | | +| gorestful_v2.go:15:15:15:44 | call to QueryParameters | gorestful_v2.go:15:15:15:47 | index expression | provenance | | +| gorestful_v2.go:17:12:17:39 | call to BodyParameter | gorestful_v2.go:18:15:18:17 | val | provenance | | +| gorestful_v2.go:21:15:21:38 | call to PathParameters | gorestful_v2.go:21:15:21:45 | index expression | provenance | | +| gorestful_v2.go:23:21:23:24 | &... | gorestful_v2.go:24:15:24:21 | selection of cmd | provenance | | nodes | gorestful.go:15:15:15:44 | call to QueryParameters | semmle.label | call to QueryParameters | | gorestful.go:15:15:15:47 | index expression | semmle.label | index expression | diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Revel/OpenRedirect.expected b/go/ql/test/library-tests/semmle/go/frameworks/Revel/OpenRedirect.expected index d3215df275d8..e0eb8c6cc08f 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Revel/OpenRedirect.expected +++ b/go/ql/test/library-tests/semmle/go/frameworks/Revel/OpenRedirect.expected @@ -1,9 +1,9 @@ edges -| EndToEnd.go:94:20:94:27 | implicit dereference | EndToEnd.go:94:20:94:27 | selection of Params | -| EndToEnd.go:94:20:94:27 | implicit dereference | EndToEnd.go:94:20:94:32 | selection of Form | -| EndToEnd.go:94:20:94:27 | selection of Params | EndToEnd.go:94:20:94:27 | implicit dereference | -| EndToEnd.go:94:20:94:27 | selection of Params | EndToEnd.go:94:20:94:32 | selection of Form | -| EndToEnd.go:94:20:94:32 | selection of Form | EndToEnd.go:94:20:94:49 | call to Get | +| EndToEnd.go:94:20:94:27 | implicit dereference | EndToEnd.go:94:20:94:27 | selection of Params | provenance | | +| EndToEnd.go:94:20:94:27 | implicit dereference | EndToEnd.go:94:20:94:32 | selection of Form | provenance | | +| EndToEnd.go:94:20:94:27 | selection of Params | EndToEnd.go:94:20:94:27 | implicit dereference | provenance | | +| EndToEnd.go:94:20:94:27 | selection of Params | EndToEnd.go:94:20:94:32 | selection of Form | provenance | | +| EndToEnd.go:94:20:94:32 | selection of Form | EndToEnd.go:94:20:94:49 | call to Get | provenance | | nodes | EndToEnd.go:94:20:94:27 | implicit dereference | semmle.label | implicit dereference | | EndToEnd.go:94:20:94:27 | selection of Params | semmle.label | selection of Params | diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Revel/ReflectedXss.expected b/go/ql/test/library-tests/semmle/go/frameworks/Revel/ReflectedXss.expected index 5352f0569bd9..b9725fae820d 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Revel/ReflectedXss.expected +++ b/go/ql/test/library-tests/semmle/go/frameworks/Revel/ReflectedXss.expected @@ -1,13 +1,13 @@ edges -| EndToEnd.go:35:2:35:4 | definition of buf | EndToEnd.go:37:24:37:26 | buf | -| EndToEnd.go:36:18:36:25 | selection of Params | EndToEnd.go:36:18:36:30 | selection of Form | -| EndToEnd.go:36:18:36:30 | selection of Form | EndToEnd.go:36:18:36:47 | call to Get | -| EndToEnd.go:36:18:36:47 | call to Get | EndToEnd.go:35:2:35:4 | definition of buf | -| EndToEnd.go:69:22:69:29 | selection of Params | EndToEnd.go:69:22:69:34 | selection of Form | -| EndToEnd.go:69:22:69:34 | selection of Form | EndToEnd.go:69:22:69:51 | call to Get | -| Revel.go:70:22:70:29 | selection of Params | Revel.go:70:22:70:35 | selection of Query | -| examples/booking/app/init.go:36:44:36:48 | selection of URL | examples/booking/app/init.go:36:44:36:53 | selection of Path | -| examples/booking/app/init.go:40:49:40:53 | selection of URL | examples/booking/app/init.go:40:49:40:58 | selection of Path | +| EndToEnd.go:35:2:35:4 | definition of buf | EndToEnd.go:37:24:37:26 | buf | provenance | | +| EndToEnd.go:36:18:36:25 | selection of Params | EndToEnd.go:36:18:36:30 | selection of Form | provenance | | +| EndToEnd.go:36:18:36:30 | selection of Form | EndToEnd.go:36:18:36:47 | call to Get | provenance | | +| EndToEnd.go:36:18:36:47 | call to Get | EndToEnd.go:35:2:35:4 | definition of buf | provenance | | +| EndToEnd.go:69:22:69:29 | selection of Params | EndToEnd.go:69:22:69:34 | selection of Form | provenance | | +| EndToEnd.go:69:22:69:34 | selection of Form | EndToEnd.go:69:22:69:51 | call to Get | provenance | | +| Revel.go:70:22:70:29 | selection of Params | Revel.go:70:22:70:35 | selection of Query | provenance | | +| examples/booking/app/init.go:36:44:36:48 | selection of URL | examples/booking/app/init.go:36:44:36:53 | selection of Path | provenance | | +| examples/booking/app/init.go:40:49:40:53 | selection of URL | examples/booking/app/init.go:40:49:40:58 | selection of Path | provenance | | nodes | EndToEnd.go:35:2:35:4 | definition of buf | semmle.label | definition of buf | | EndToEnd.go:36:18:36:25 | selection of Params | semmle.label | selection of Params | diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Revel/TaintedPath.expected b/go/ql/test/library-tests/semmle/go/frameworks/Revel/TaintedPath.expected index c9b3a4bbe584..ad3ca2e44dcb 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Revel/TaintedPath.expected +++ b/go/ql/test/library-tests/semmle/go/frameworks/Revel/TaintedPath.expected @@ -1,8 +1,8 @@ edges -| EndToEnd.go:58:18:58:25 | selection of Params | EndToEnd.go:58:18:58:30 | selection of Form | -| EndToEnd.go:58:18:58:30 | selection of Form | EndToEnd.go:58:18:58:47 | call to Get | -| EndToEnd.go:64:26:64:33 | selection of Params | EndToEnd.go:64:26:64:38 | selection of Form | -| EndToEnd.go:64:26:64:38 | selection of Form | EndToEnd.go:64:26:64:55 | call to Get | +| EndToEnd.go:58:18:58:25 | selection of Params | EndToEnd.go:58:18:58:30 | selection of Form | provenance | | +| EndToEnd.go:58:18:58:30 | selection of Form | EndToEnd.go:58:18:58:47 | call to Get | provenance | | +| EndToEnd.go:64:26:64:33 | selection of Params | EndToEnd.go:64:26:64:38 | selection of Form | provenance | | +| EndToEnd.go:64:26:64:38 | selection of Form | EndToEnd.go:64:26:64:55 | call to Get | provenance | | nodes | EndToEnd.go:58:18:58:25 | selection of Params | semmle.label | selection of Params | | EndToEnd.go:58:18:58:30 | selection of Form | semmle.label | selection of Form | diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Twirp/RequestForgery.expected b/go/ql/test/library-tests/semmle/go/frameworks/Twirp/RequestForgery.expected index 14e97ebe357b..90e6b42ec51d 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Twirp/RequestForgery.expected +++ b/go/ql/test/library-tests/semmle/go/frameworks/Twirp/RequestForgery.expected @@ -1,27 +1,27 @@ edges -| client/main.go:16:35:16:78 | &... | client/main.go:16:35:16:78 | &... | -| client/main.go:16:35:16:78 | &... | server/main.go:19:56:19:61 | definition of params | -| rpc/notes/service.twirp.go:473:6:473:13 | definition of typedReq | rpc/notes/service.twirp.go:477:44:477:51 | typedReq | -| rpc/notes/service.twirp.go:477:44:477:51 | typedReq | server/main.go:19:56:19:61 | definition of params | -| rpc/notes/service.twirp.go:493:2:493:2 | capture variable reqContent | rpc/notes/service.twirp.go:495:35:495:44 | reqContent | -| rpc/notes/service.twirp.go:495:35:495:44 | reqContent | server/main.go:19:56:19:61 | definition of params | -| rpc/notes/service.twirp.go:538:2:538:33 | ... := ...[0] | rpc/notes/service.twirp.go:544:27:544:29 | buf | -| rpc/notes/service.twirp.go:538:25:538:32 | selection of Body | rpc/notes/service.twirp.go:538:2:538:33 | ... := ...[0] | -| rpc/notes/service.twirp.go:543:2:543:11 | definition of reqContent | rpc/notes/service.twirp.go:574:2:574:2 | capture variable reqContent | -| rpc/notes/service.twirp.go:544:27:544:29 | buf | rpc/notes/service.twirp.go:543:2:543:11 | definition of reqContent | -| rpc/notes/service.twirp.go:554:6:554:13 | definition of typedReq | rpc/notes/service.twirp.go:558:44:558:51 | typedReq | -| rpc/notes/service.twirp.go:558:44:558:51 | typedReq | server/main.go:19:56:19:61 | definition of params | -| rpc/notes/service.twirp.go:574:2:574:2 | capture variable reqContent | rpc/notes/service.twirp.go:576:35:576:44 | reqContent | -| rpc/notes/service.twirp.go:576:35:576:44 | reqContent | server/main.go:19:56:19:61 | definition of params | -| server/main.go:19:56:19:61 | definition of params | client/main.go:16:35:16:78 | &... | -| server/main.go:19:56:19:61 | definition of params | rpc/notes/service.twirp.go:473:6:473:13 | definition of typedReq | -| server/main.go:19:56:19:61 | definition of params | rpc/notes/service.twirp.go:493:2:493:2 | capture variable reqContent | -| server/main.go:19:56:19:61 | definition of params | rpc/notes/service.twirp.go:554:6:554:13 | definition of typedReq | -| server/main.go:19:56:19:61 | definition of params | rpc/notes/service.twirp.go:574:2:574:2 | capture variable reqContent | -| server/main.go:19:56:19:61 | definition of params | server/main.go:19:56:19:61 | definition of params | -| server/main.go:19:56:19:61 | definition of params | server/main.go:19:56:19:61 | definition of params | -| server/main.go:19:56:19:61 | definition of params | server/main.go:30:38:30:48 | selection of Text | -| server/main.go:19:56:19:61 | definition of params | server/main.go:30:38:30:48 | selection of Text | +| client/main.go:16:35:16:78 | &... | client/main.go:16:35:16:78 | &... | provenance | | +| client/main.go:16:35:16:78 | &... | server/main.go:19:56:19:61 | definition of params | provenance | | +| rpc/notes/service.twirp.go:473:6:473:13 | definition of typedReq | rpc/notes/service.twirp.go:477:44:477:51 | typedReq | provenance | | +| rpc/notes/service.twirp.go:477:44:477:51 | typedReq | server/main.go:19:56:19:61 | definition of params | provenance | | +| rpc/notes/service.twirp.go:493:2:493:2 | capture variable reqContent | rpc/notes/service.twirp.go:495:35:495:44 | reqContent | provenance | | +| rpc/notes/service.twirp.go:495:35:495:44 | reqContent | server/main.go:19:56:19:61 | definition of params | provenance | | +| rpc/notes/service.twirp.go:538:2:538:33 | ... := ...[0] | rpc/notes/service.twirp.go:544:27:544:29 | buf | provenance | | +| rpc/notes/service.twirp.go:538:25:538:32 | selection of Body | rpc/notes/service.twirp.go:538:2:538:33 | ... := ...[0] | provenance | | +| rpc/notes/service.twirp.go:543:2:543:11 | definition of reqContent | rpc/notes/service.twirp.go:574:2:574:2 | capture variable reqContent | provenance | | +| rpc/notes/service.twirp.go:544:27:544:29 | buf | rpc/notes/service.twirp.go:543:2:543:11 | definition of reqContent | provenance | | +| rpc/notes/service.twirp.go:554:6:554:13 | definition of typedReq | rpc/notes/service.twirp.go:558:44:558:51 | typedReq | provenance | | +| rpc/notes/service.twirp.go:558:44:558:51 | typedReq | server/main.go:19:56:19:61 | definition of params | provenance | | +| rpc/notes/service.twirp.go:574:2:574:2 | capture variable reqContent | rpc/notes/service.twirp.go:576:35:576:44 | reqContent | provenance | | +| rpc/notes/service.twirp.go:576:35:576:44 | reqContent | server/main.go:19:56:19:61 | definition of params | provenance | | +| server/main.go:19:56:19:61 | definition of params | client/main.go:16:35:16:78 | &... | provenance | | +| server/main.go:19:56:19:61 | definition of params | rpc/notes/service.twirp.go:473:6:473:13 | definition of typedReq | provenance | | +| server/main.go:19:56:19:61 | definition of params | rpc/notes/service.twirp.go:493:2:493:2 | capture variable reqContent | provenance | | +| server/main.go:19:56:19:61 | definition of params | rpc/notes/service.twirp.go:554:6:554:13 | definition of typedReq | provenance | | +| server/main.go:19:56:19:61 | definition of params | rpc/notes/service.twirp.go:574:2:574:2 | capture variable reqContent | provenance | | +| server/main.go:19:56:19:61 | definition of params | server/main.go:19:56:19:61 | definition of params | provenance | | +| server/main.go:19:56:19:61 | definition of params | server/main.go:19:56:19:61 | definition of params | provenance | | +| server/main.go:19:56:19:61 | definition of params | server/main.go:30:38:30:48 | selection of Text | provenance | | +| server/main.go:19:56:19:61 | definition of params | server/main.go:30:38:30:48 | selection of Text | provenance | | nodes | client/main.go:16:35:16:78 | &... | semmle.label | &... | | rpc/notes/service.twirp.go:473:6:473:13 | definition of typedReq | semmle.label | definition of typedReq | diff --git a/go/ql/test/library-tests/semmle/go/frameworks/XNetHtml/ReflectedXss.expected b/go/ql/test/library-tests/semmle/go/frameworks/XNetHtml/ReflectedXss.expected index 1124ca22b055..341e2cf46abf 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/XNetHtml/ReflectedXss.expected +++ b/go/ql/test/library-tests/semmle/go/frameworks/XNetHtml/ReflectedXss.expected @@ -1,60 +1,60 @@ edges -| test.go:12:12:12:22 | selection of URL | test.go:12:12:12:30 | call to Query | -| test.go:12:12:12:30 | call to Query | test.go:12:12:12:44 | call to Get | -| test.go:12:12:12:44 | call to Get | test.go:15:42:15:47 | param1 | -| test.go:15:22:15:48 | call to UnescapeString | test.go:15:15:15:49 | type conversion | -| test.go:15:42:15:47 | param1 | test.go:15:22:15:48 | call to UnescapeString | -| test.go:17:2:17:36 | ... := ...[0] | test.go:18:15:18:31 | type conversion | -| test.go:17:2:17:36 | ... := ...[0] | test.go:29:22:29:25 | node | -| test.go:17:24:17:35 | selection of Body | test.go:17:2:17:36 | ... := ...[0] | -| test.go:20:2:20:48 | ... := ...[0] | test.go:21:15:21:32 | type conversion | -| test.go:20:36:20:47 | selection of Body | test.go:20:2:20:48 | ... := ...[0] | -| test.go:23:2:23:50 | ... := ...[0] | test.go:24:15:24:35 | type conversion | -| test.go:23:33:23:44 | selection of Body | test.go:23:2:23:50 | ... := ...[0] | -| test.go:26:2:26:62 | ... := ...[0] | test.go:27:15:27:36 | type conversion | -| test.go:26:45:26:56 | selection of Body | test.go:26:2:26:62 | ... := ...[0] | -| test.go:31:15:31:45 | call to NewTokenizer | test.go:32:15:32:23 | tokenizer | -| test.go:31:15:31:45 | call to NewTokenizer | test.go:33:15:33:23 | tokenizer | -| test.go:31:15:31:45 | call to NewTokenizer | test.go:34:17:34:25 | tokenizer | -| test.go:31:15:31:45 | call to NewTokenizer | test.go:36:15:36:23 | tokenizer | -| test.go:31:15:31:45 | call to NewTokenizer | test.go:37:22:37:30 | tokenizer | -| test.go:31:33:31:44 | selection of Body | test.go:31:15:31:45 | call to NewTokenizer | -| test.go:32:15:32:23 | tokenizer | test.go:32:15:32:34 | call to Buffered | -| test.go:33:15:33:23 | tokenizer | test.go:33:15:33:29 | call to Raw | -| test.go:34:2:34:35 | ... := ...[1] | test.go:35:15:35:19 | value | -| test.go:34:17:34:25 | tokenizer | test.go:34:2:34:35 | ... := ...[1] | -| test.go:36:15:36:23 | tokenizer | test.go:36:15:36:30 | call to Text | -| test.go:37:22:37:30 | tokenizer | test.go:37:22:37:38 | call to Token | -| test.go:37:22:37:38 | call to Token | test.go:37:15:37:44 | type conversion | -| test.go:39:23:39:77 | call to NewTokenizerFragment | test.go:40:15:40:31 | tokenizerFragment | -| test.go:39:49:39:60 | selection of Body | test.go:39:23:39:77 | call to NewTokenizerFragment | -| test.go:40:15:40:31 | tokenizerFragment | test.go:40:15:40:42 | call to Buffered | -| test.go:42:6:42:14 | definition of cleanNode | test.go:45:22:45:31 | &... | -| test.go:42:6:42:14 | definition of cleanNode | test.go:45:22:45:31 | &... | -| test.go:42:6:42:14 | definition of cleanNode | test.go:45:23:45:31 | cleanNode | -| test.go:43:2:43:43 | ... := ...[0] | test.go:44:24:44:34 | taintedNode | -| test.go:43:31:43:42 | selection of Body | test.go:43:2:43:43 | ... := ...[0] | -| test.go:44:24:44:34 | taintedNode | test.go:42:6:42:14 | definition of cleanNode | -| test.go:45:22:45:31 | &... | test.go:45:22:45:31 | &... | -| test.go:45:22:45:31 | &... | test.go:45:22:45:31 | &... | -| test.go:45:22:45:31 | &... | test.go:45:23:45:31 | cleanNode | -| test.go:45:22:45:31 | &... [pointer] | test.go:45:22:45:31 | &... | -| test.go:45:22:45:31 | &... [pointer] | test.go:45:22:45:31 | &... | -| test.go:45:22:45:31 | &... [pointer] | test.go:45:23:45:31 | cleanNode | -| test.go:45:23:45:31 | cleanNode | test.go:45:22:45:31 | &... [pointer] | -| test.go:47:6:47:15 | definition of cleanNode2 | test.go:50:22:50:32 | &... | -| test.go:47:6:47:15 | definition of cleanNode2 | test.go:50:22:50:32 | &... | -| test.go:47:6:47:15 | definition of cleanNode2 | test.go:50:23:50:32 | cleanNode2 | -| test.go:48:2:48:44 | ... := ...[0] | test.go:49:26:49:37 | taintedNode2 | -| test.go:48:32:48:43 | selection of Body | test.go:48:2:48:44 | ... := ...[0] | -| test.go:49:26:49:37 | taintedNode2 | test.go:47:6:47:15 | definition of cleanNode2 | -| test.go:50:22:50:32 | &... | test.go:50:22:50:32 | &... | -| test.go:50:22:50:32 | &... | test.go:50:22:50:32 | &... | -| test.go:50:22:50:32 | &... | test.go:50:23:50:32 | cleanNode2 | -| test.go:50:22:50:32 | &... [pointer] | test.go:50:22:50:32 | &... | -| test.go:50:22:50:32 | &... [pointer] | test.go:50:22:50:32 | &... | -| test.go:50:22:50:32 | &... [pointer] | test.go:50:23:50:32 | cleanNode2 | -| test.go:50:23:50:32 | cleanNode2 | test.go:50:22:50:32 | &... [pointer] | +| test.go:12:12:12:22 | selection of URL | test.go:12:12:12:30 | call to Query | provenance | | +| test.go:12:12:12:30 | call to Query | test.go:12:12:12:44 | call to Get | provenance | | +| test.go:12:12:12:44 | call to Get | test.go:15:42:15:47 | param1 | provenance | | +| test.go:15:22:15:48 | call to UnescapeString | test.go:15:15:15:49 | type conversion | provenance | | +| test.go:15:42:15:47 | param1 | test.go:15:22:15:48 | call to UnescapeString | provenance | | +| test.go:17:2:17:36 | ... := ...[0] | test.go:18:15:18:31 | type conversion | provenance | | +| test.go:17:2:17:36 | ... := ...[0] | test.go:29:22:29:25 | node | provenance | | +| test.go:17:24:17:35 | selection of Body | test.go:17:2:17:36 | ... := ...[0] | provenance | | +| test.go:20:2:20:48 | ... := ...[0] | test.go:21:15:21:32 | type conversion | provenance | | +| test.go:20:36:20:47 | selection of Body | test.go:20:2:20:48 | ... := ...[0] | provenance | | +| test.go:23:2:23:50 | ... := ...[0] | test.go:24:15:24:35 | type conversion | provenance | | +| test.go:23:33:23:44 | selection of Body | test.go:23:2:23:50 | ... := ...[0] | provenance | | +| test.go:26:2:26:62 | ... := ...[0] | test.go:27:15:27:36 | type conversion | provenance | | +| test.go:26:45:26:56 | selection of Body | test.go:26:2:26:62 | ... := ...[0] | provenance | | +| test.go:31:15:31:45 | call to NewTokenizer | test.go:32:15:32:23 | tokenizer | provenance | | +| test.go:31:15:31:45 | call to NewTokenizer | test.go:33:15:33:23 | tokenizer | provenance | | +| test.go:31:15:31:45 | call to NewTokenizer | test.go:34:17:34:25 | tokenizer | provenance | | +| test.go:31:15:31:45 | call to NewTokenizer | test.go:36:15:36:23 | tokenizer | provenance | | +| test.go:31:15:31:45 | call to NewTokenizer | test.go:37:22:37:30 | tokenizer | provenance | | +| test.go:31:33:31:44 | selection of Body | test.go:31:15:31:45 | call to NewTokenizer | provenance | | +| test.go:32:15:32:23 | tokenizer | test.go:32:15:32:34 | call to Buffered | provenance | | +| test.go:33:15:33:23 | tokenizer | test.go:33:15:33:29 | call to Raw | provenance | | +| test.go:34:2:34:35 | ... := ...[1] | test.go:35:15:35:19 | value | provenance | | +| test.go:34:17:34:25 | tokenizer | test.go:34:2:34:35 | ... := ...[1] | provenance | | +| test.go:36:15:36:23 | tokenizer | test.go:36:15:36:30 | call to Text | provenance | | +| test.go:37:22:37:30 | tokenizer | test.go:37:22:37:38 | call to Token | provenance | | +| test.go:37:22:37:38 | call to Token | test.go:37:15:37:44 | type conversion | provenance | | +| test.go:39:23:39:77 | call to NewTokenizerFragment | test.go:40:15:40:31 | tokenizerFragment | provenance | | +| test.go:39:49:39:60 | selection of Body | test.go:39:23:39:77 | call to NewTokenizerFragment | provenance | | +| test.go:40:15:40:31 | tokenizerFragment | test.go:40:15:40:42 | call to Buffered | provenance | | +| test.go:42:6:42:14 | definition of cleanNode | test.go:45:22:45:31 | &... | provenance | | +| test.go:42:6:42:14 | definition of cleanNode | test.go:45:22:45:31 | &... | provenance | | +| test.go:42:6:42:14 | definition of cleanNode | test.go:45:23:45:31 | cleanNode | provenance | | +| test.go:43:2:43:43 | ... := ...[0] | test.go:44:24:44:34 | taintedNode | provenance | | +| test.go:43:31:43:42 | selection of Body | test.go:43:2:43:43 | ... := ...[0] | provenance | | +| test.go:44:24:44:34 | taintedNode | test.go:42:6:42:14 | definition of cleanNode | provenance | | +| test.go:45:22:45:31 | &... | test.go:45:22:45:31 | &... | provenance | | +| test.go:45:22:45:31 | &... | test.go:45:22:45:31 | &... | provenance | | +| test.go:45:22:45:31 | &... | test.go:45:23:45:31 | cleanNode | provenance | | +| test.go:45:22:45:31 | &... [pointer] | test.go:45:22:45:31 | &... | provenance | | +| test.go:45:22:45:31 | &... [pointer] | test.go:45:22:45:31 | &... | provenance | | +| test.go:45:22:45:31 | &... [pointer] | test.go:45:23:45:31 | cleanNode | provenance | | +| test.go:45:23:45:31 | cleanNode | test.go:45:22:45:31 | &... [pointer] | provenance | | +| test.go:47:6:47:15 | definition of cleanNode2 | test.go:50:22:50:32 | &... | provenance | | +| test.go:47:6:47:15 | definition of cleanNode2 | test.go:50:22:50:32 | &... | provenance | | +| test.go:47:6:47:15 | definition of cleanNode2 | test.go:50:23:50:32 | cleanNode2 | provenance | | +| test.go:48:2:48:44 | ... := ...[0] | test.go:49:26:49:37 | taintedNode2 | provenance | | +| test.go:48:32:48:43 | selection of Body | test.go:48:2:48:44 | ... := ...[0] | provenance | | +| test.go:49:26:49:37 | taintedNode2 | test.go:47:6:47:15 | definition of cleanNode2 | provenance | | +| test.go:50:22:50:32 | &... | test.go:50:22:50:32 | &... | provenance | | +| test.go:50:22:50:32 | &... | test.go:50:22:50:32 | &... | provenance | | +| test.go:50:22:50:32 | &... | test.go:50:23:50:32 | cleanNode2 | provenance | | +| test.go:50:22:50:32 | &... [pointer] | test.go:50:22:50:32 | &... | provenance | | +| test.go:50:22:50:32 | &... [pointer] | test.go:50:22:50:32 | &... | provenance | | +| test.go:50:22:50:32 | &... [pointer] | test.go:50:23:50:32 | cleanNode2 | provenance | | +| test.go:50:23:50:32 | cleanNode2 | test.go:50:22:50:32 | &... [pointer] | provenance | | nodes | test.go:12:12:12:22 | selection of URL | semmle.label | selection of URL | | test.go:12:12:12:30 | call to Query | semmle.label | call to Query | diff --git a/go/ql/test/library-tests/semmle/go/frameworks/XNetHtml/SqlInjection.expected b/go/ql/test/library-tests/semmle/go/frameworks/XNetHtml/SqlInjection.expected index a36880faf24e..9171f32e84db 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/XNetHtml/SqlInjection.expected +++ b/go/ql/test/library-tests/semmle/go/frameworks/XNetHtml/SqlInjection.expected @@ -1,6 +1,6 @@ edges -| test.go:56:2:56:42 | ... := ...[0] | test.go:57:29:57:40 | selection of Value | -| test.go:57:29:57:40 | selection of Value | test.go:57:11:57:41 | call to EscapeString | +| test.go:56:2:56:42 | ... := ...[0] | test.go:57:29:57:40 | selection of Value | provenance | | +| test.go:57:29:57:40 | selection of Value | test.go:57:11:57:41 | call to EscapeString | provenance | | nodes | test.go:56:2:56:42 | ... := ...[0] | semmle.label | ... := ...[0] | | test.go:57:11:57:41 | call to EscapeString | semmle.label | call to EscapeString | diff --git a/go/ql/test/query-tests/InconsistentCode/UnhandledCloseWritableHandle/UnhandledCloseWritableHandle.expected b/go/ql/test/query-tests/InconsistentCode/UnhandledCloseWritableHandle/UnhandledCloseWritableHandle.expected index 3a0c58c7ee94..e5ad074d25d3 100644 --- a/go/ql/test/query-tests/InconsistentCode/UnhandledCloseWritableHandle/UnhandledCloseWritableHandle.expected +++ b/go/ql/test/query-tests/InconsistentCode/UnhandledCloseWritableHandle/UnhandledCloseWritableHandle.expected @@ -1,19 +1,19 @@ edges -| tests.go:8:24:8:24 | definition of f | tests.go:9:8:9:8 | f | -| tests.go:12:32:12:32 | definition of f | tests.go:13:13:13:13 | capture variable f | -| tests.go:13:13:13:13 | capture variable f | tests.go:14:3:14:3 | f | -| tests.go:31:5:31:78 | ... := ...[0] | tests.go:32:21:32:21 | f | -| tests.go:31:5:31:78 | ... := ...[0] | tests.go:33:29:33:29 | f | -| tests.go:32:21:32:21 | f | tests.go:8:24:8:24 | definition of f | -| tests.go:33:29:33:29 | f | tests.go:12:32:12:32 | definition of f | -| tests.go:45:5:45:76 | ... := ...[0] | tests.go:46:21:46:21 | f | -| tests.go:45:5:45:76 | ... := ...[0] | tests.go:47:29:47:29 | f | -| tests.go:46:21:46:21 | f | tests.go:8:24:8:24 | definition of f | -| tests.go:47:29:47:29 | f | tests.go:12:32:12:32 | definition of f | -| tests.go:54:5:54:78 | ... := ...[0] | tests.go:56:3:56:3 | f | -| tests.go:66:5:66:76 | ... := ...[0] | tests.go:68:3:68:3 | f | -| tests.go:108:5:108:78 | ... := ...[0] | tests.go:110:9:110:9 | f | -| tests.go:125:5:125:78 | ... := ...[0] | tests.go:129:3:129:3 | f | +| tests.go:8:24:8:24 | definition of f | tests.go:9:8:9:8 | f | provenance | | +| tests.go:12:32:12:32 | definition of f | tests.go:13:13:13:13 | capture variable f | provenance | | +| tests.go:13:13:13:13 | capture variable f | tests.go:14:3:14:3 | f | provenance | | +| tests.go:31:5:31:78 | ... := ...[0] | tests.go:32:21:32:21 | f | provenance | | +| tests.go:31:5:31:78 | ... := ...[0] | tests.go:33:29:33:29 | f | provenance | | +| tests.go:32:21:32:21 | f | tests.go:8:24:8:24 | definition of f | provenance | | +| tests.go:33:29:33:29 | f | tests.go:12:32:12:32 | definition of f | provenance | | +| tests.go:45:5:45:76 | ... := ...[0] | tests.go:46:21:46:21 | f | provenance | | +| tests.go:45:5:45:76 | ... := ...[0] | tests.go:47:29:47:29 | f | provenance | | +| tests.go:46:21:46:21 | f | tests.go:8:24:8:24 | definition of f | provenance | | +| tests.go:47:29:47:29 | f | tests.go:12:32:12:32 | definition of f | provenance | | +| tests.go:54:5:54:78 | ... := ...[0] | tests.go:56:3:56:3 | f | provenance | | +| tests.go:66:5:66:76 | ... := ...[0] | tests.go:68:3:68:3 | f | provenance | | +| tests.go:108:5:108:78 | ... := ...[0] | tests.go:110:9:110:9 | f | provenance | | +| tests.go:125:5:125:78 | ... := ...[0] | tests.go:129:3:129:3 | f | provenance | | nodes | tests.go:8:24:8:24 | definition of f | semmle.label | definition of f | | tests.go:9:8:9:8 | f | semmle.label | f | diff --git a/go/ql/test/query-tests/Security/CWE-020/IncompleteHostnameRegexp/IncompleteHostnameRegexp.expected b/go/ql/test/query-tests/Security/CWE-020/IncompleteHostnameRegexp/IncompleteHostnameRegexp.expected index 029366069d24..4486b4e0962f 100644 --- a/go/ql/test/query-tests/Security/CWE-020/IncompleteHostnameRegexp/IncompleteHostnameRegexp.expected +++ b/go/ql/test/query-tests/Security/CWE-020/IncompleteHostnameRegexp/IncompleteHostnameRegexp.expected @@ -1,5 +1,5 @@ edges -| IncompleteHostnameRegexp.go:11:8:11:36 | "^((www\|beta).)?example.com/" | IncompleteHostnameRegexp.go:12:38:12:39 | re | +| IncompleteHostnameRegexp.go:11:8:11:36 | "^((www\|beta).)?example.com/" | IncompleteHostnameRegexp.go:12:38:12:39 | re | provenance | | nodes | IncompleteHostnameRegexp.go:11:8:11:36 | "^((www\|beta).)?example.com/" | semmle.label | "^((www\|beta).)?example.com/" | | IncompleteHostnameRegexp.go:12:38:12:39 | re | semmle.label | re | diff --git a/go/ql/test/query-tests/Security/CWE-022/TaintedPath.expected b/go/ql/test/query-tests/Security/CWE-022/TaintedPath.expected index 307906f7e9b7..34d4180a8498 100644 --- a/go/ql/test/query-tests/Security/CWE-022/TaintedPath.expected +++ b/go/ql/test/query-tests/Security/CWE-022/TaintedPath.expected @@ -1,9 +1,9 @@ edges -| TaintedPath.go:13:18:13:22 | selection of URL | TaintedPath.go:13:18:13:30 | call to Query | -| TaintedPath.go:13:18:13:30 | call to Query | TaintedPath.go:16:29:16:40 | tainted_path | -| TaintedPath.go:13:18:13:30 | call to Query | TaintedPath.go:20:57:20:68 | tainted_path | -| TaintedPath.go:20:57:20:68 | tainted_path | TaintedPath.go:20:28:20:69 | call to Join | -| tst.go:14:2:14:39 | ... := ...[1] | tst.go:17:41:17:56 | selection of Filename | +| TaintedPath.go:13:18:13:22 | selection of URL | TaintedPath.go:13:18:13:30 | call to Query | provenance | | +| TaintedPath.go:13:18:13:30 | call to Query | TaintedPath.go:16:29:16:40 | tainted_path | provenance | | +| TaintedPath.go:13:18:13:30 | call to Query | TaintedPath.go:20:57:20:68 | tainted_path | provenance | | +| TaintedPath.go:20:57:20:68 | tainted_path | TaintedPath.go:20:28:20:69 | call to Join | provenance | | +| tst.go:14:2:14:39 | ... := ...[1] | tst.go:17:41:17:56 | selection of Filename | provenance | | nodes | TaintedPath.go:13:18:13:22 | selection of URL | semmle.label | selection of URL | | TaintedPath.go:13:18:13:30 | call to Query | semmle.label | call to Query | diff --git a/go/ql/test/query-tests/Security/CWE-022/UnsafeUnzipSymlink.expected b/go/ql/test/query-tests/Security/CWE-022/UnsafeUnzipSymlink.expected index da8dc7ed50ed..bddeaf06e627 100644 --- a/go/ql/test/query-tests/Security/CWE-022/UnsafeUnzipSymlink.expected +++ b/go/ql/test/query-tests/Security/CWE-022/UnsafeUnzipSymlink.expected @@ -1,8 +1,8 @@ edges -| UnsafeUnzipSymlink.go:111:19:111:26 | definition of linkName | UnsafeUnzipSymlink.go:112:13:112:20 | linkName | -| UnsafeUnzipSymlink.go:111:29:111:36 | definition of fileName | UnsafeUnzipSymlink.go:112:23:112:30 | fileName | -| UnsafeUnzipSymlink.go:126:17:126:31 | selection of Linkname | UnsafeUnzipSymlink.go:111:19:111:26 | definition of linkName | -| UnsafeUnzipSymlink.go:126:34:126:44 | selection of Name | UnsafeUnzipSymlink.go:111:29:111:36 | definition of fileName | +| UnsafeUnzipSymlink.go:111:19:111:26 | definition of linkName | UnsafeUnzipSymlink.go:112:13:112:20 | linkName | provenance | | +| UnsafeUnzipSymlink.go:111:29:111:36 | definition of fileName | UnsafeUnzipSymlink.go:112:23:112:30 | fileName | provenance | | +| UnsafeUnzipSymlink.go:126:17:126:31 | selection of Linkname | UnsafeUnzipSymlink.go:111:19:111:26 | definition of linkName | provenance | | +| UnsafeUnzipSymlink.go:126:34:126:44 | selection of Name | UnsafeUnzipSymlink.go:111:29:111:36 | definition of fileName | provenance | | nodes | UnsafeUnzipSymlink.go:31:15:31:29 | selection of Linkname | semmle.label | selection of Linkname | | UnsafeUnzipSymlink.go:31:32:31:42 | selection of Name | semmle.label | selection of Name | diff --git a/go/ql/test/query-tests/Security/CWE-022/ZipSlip.expected b/go/ql/test/query-tests/Security/CWE-022/ZipSlip.expected index f10f103c9635..5ff0ca886c2f 100644 --- a/go/ql/test/query-tests/Security/CWE-022/ZipSlip.expected +++ b/go/ql/test/query-tests/Security/CWE-022/ZipSlip.expected @@ -1,16 +1,16 @@ edges -| UnsafeUnzipSymlinkGood.go:52:24:52:32 | definition of candidate | UnsafeUnzipSymlinkGood.go:61:53:61:61 | candidate | -| UnsafeUnzipSymlinkGood.go:61:53:61:61 | candidate | UnsafeUnzipSymlinkGood.go:61:31:61:62 | call to Join | -| UnsafeUnzipSymlinkGood.go:72:3:72:25 | ... := ...[0] | UnsafeUnzipSymlinkGood.go:76:24:76:38 | selection of Linkname | -| UnsafeUnzipSymlinkGood.go:72:3:72:25 | ... := ...[0] | UnsafeUnzipSymlinkGood.go:76:70:76:80 | selection of Name | -| UnsafeUnzipSymlinkGood.go:76:24:76:38 | selection of Linkname | UnsafeUnzipSymlinkGood.go:52:24:52:32 | definition of candidate | -| UnsafeUnzipSymlinkGood.go:76:70:76:80 | selection of Name | UnsafeUnzipSymlinkGood.go:52:24:52:32 | definition of candidate | -| ZipSlip.go:11:2:15:2 | range statement[1] | ZipSlip.go:12:24:12:29 | selection of Name | -| ZipSlip.go:12:3:12:30 | ... := ...[0] | ZipSlip.go:14:20:14:20 | p | -| ZipSlip.go:12:24:12:29 | selection of Name | ZipSlip.go:12:3:12:30 | ... := ...[0] | -| tarslip.go:15:2:15:30 | ... := ...[0] | tarslip.go:16:23:16:33 | selection of Name | -| tarslip.go:16:23:16:33 | selection of Name | tarslip.go:16:14:16:34 | call to Dir | -| tst.go:23:2:43:2 | range statement[1] | tst.go:29:20:29:23 | path | +| UnsafeUnzipSymlinkGood.go:52:24:52:32 | definition of candidate | UnsafeUnzipSymlinkGood.go:61:53:61:61 | candidate | provenance | | +| UnsafeUnzipSymlinkGood.go:61:53:61:61 | candidate | UnsafeUnzipSymlinkGood.go:61:31:61:62 | call to Join | provenance | | +| UnsafeUnzipSymlinkGood.go:72:3:72:25 | ... := ...[0] | UnsafeUnzipSymlinkGood.go:76:24:76:38 | selection of Linkname | provenance | | +| UnsafeUnzipSymlinkGood.go:72:3:72:25 | ... := ...[0] | UnsafeUnzipSymlinkGood.go:76:70:76:80 | selection of Name | provenance | | +| UnsafeUnzipSymlinkGood.go:76:24:76:38 | selection of Linkname | UnsafeUnzipSymlinkGood.go:52:24:52:32 | definition of candidate | provenance | | +| UnsafeUnzipSymlinkGood.go:76:70:76:80 | selection of Name | UnsafeUnzipSymlinkGood.go:52:24:52:32 | definition of candidate | provenance | | +| ZipSlip.go:11:2:15:2 | range statement[1] | ZipSlip.go:12:24:12:29 | selection of Name | provenance | | +| ZipSlip.go:12:3:12:30 | ... := ...[0] | ZipSlip.go:14:20:14:20 | p | provenance | | +| ZipSlip.go:12:24:12:29 | selection of Name | ZipSlip.go:12:3:12:30 | ... := ...[0] | provenance | | +| tarslip.go:15:2:15:30 | ... := ...[0] | tarslip.go:16:23:16:33 | selection of Name | provenance | | +| tarslip.go:16:23:16:33 | selection of Name | tarslip.go:16:14:16:34 | call to Dir | provenance | | +| tst.go:23:2:43:2 | range statement[1] | tst.go:29:20:29:23 | path | provenance | | nodes | UnsafeUnzipSymlinkGood.go:52:24:52:32 | definition of candidate | semmle.label | definition of candidate | | UnsafeUnzipSymlinkGood.go:61:31:61:62 | call to Join | semmle.label | call to Join | diff --git a/go/ql/test/query-tests/Security/CWE-078/CommandInjection.expected b/go/ql/test/query-tests/Security/CWE-078/CommandInjection.expected index 01f6d0a17f66..06df5262ca20 100644 --- a/go/ql/test/query-tests/Security/CWE-078/CommandInjection.expected +++ b/go/ql/test/query-tests/Security/CWE-078/CommandInjection.expected @@ -1,75 +1,75 @@ edges -| ArgumentInjection.go:9:10:9:16 | selection of URL | ArgumentInjection.go:9:10:9:24 | call to Query | -| ArgumentInjection.go:9:10:9:24 | call to Query | ArgumentInjection.go:10:31:10:34 | path | -| CommandInjection.go:9:13:9:19 | selection of URL | CommandInjection.go:9:13:9:27 | call to Query | -| CommandInjection.go:9:13:9:27 | call to Query | CommandInjection.go:10:22:10:28 | cmdName | -| GitSubcommands.go:10:13:10:19 | selection of URL | GitSubcommands.go:10:13:10:27 | call to Query | -| GitSubcommands.go:10:13:10:27 | call to Query | GitSubcommands.go:12:31:12:37 | tainted | -| GitSubcommands.go:10:13:10:27 | call to Query | GitSubcommands.go:13:31:13:37 | tainted | -| GitSubcommands.go:10:13:10:27 | call to Query | GitSubcommands.go:14:30:14:36 | tainted | -| GitSubcommands.go:10:13:10:27 | call to Query | GitSubcommands.go:15:35:15:41 | tainted | -| GitSubcommands.go:10:13:10:27 | call to Query | GitSubcommands.go:16:36:16:42 | tainted | -| SanitizingDoubleDash.go:9:13:9:19 | selection of URL | SanitizingDoubleDash.go:9:13:9:27 | call to Query | -| SanitizingDoubleDash.go:9:13:9:27 | call to Query | SanitizingDoubleDash.go:13:25:13:31 | tainted | -| SanitizingDoubleDash.go:9:13:9:27 | call to Query | SanitizingDoubleDash.go:14:23:14:33 | slice expression | -| SanitizingDoubleDash.go:9:13:9:27 | call to Query | SanitizingDoubleDash.go:39:31:39:37 | tainted | -| SanitizingDoubleDash.go:9:13:9:27 | call to Query | SanitizingDoubleDash.go:53:21:53:28 | arrayLit | -| SanitizingDoubleDash.go:9:13:9:27 | call to Query | SanitizingDoubleDash.go:68:31:68:37 | tainted | -| SanitizingDoubleDash.go:9:13:9:27 | call to Query | SanitizingDoubleDash.go:80:23:80:29 | tainted | -| SanitizingDoubleDash.go:13:15:13:32 | array literal [array] | SanitizingDoubleDash.go:14:23:14:30 | arrayLit [array] | -| SanitizingDoubleDash.go:13:25:13:31 | tainted | SanitizingDoubleDash.go:13:15:13:32 | array literal [array] | -| SanitizingDoubleDash.go:14:23:14:30 | arrayLit [array] | SanitizingDoubleDash.go:14:23:14:33 | slice element node | -| SanitizingDoubleDash.go:14:23:14:33 | slice element node | SanitizingDoubleDash.go:14:23:14:33 | slice expression [array] | -| SanitizingDoubleDash.go:14:23:14:33 | slice expression [array] | SanitizingDoubleDash.go:14:23:14:33 | slice expression | -| SanitizingDoubleDash.go:39:14:39:44 | call to append | SanitizingDoubleDash.go:40:23:40:30 | arrayLit | -| SanitizingDoubleDash.go:39:31:39:37 | tainted | SanitizingDoubleDash.go:39:14:39:44 | call to append | -| SanitizingDoubleDash.go:53:14:53:35 | call to append | SanitizingDoubleDash.go:54:23:54:30 | arrayLit | -| SanitizingDoubleDash.go:53:21:53:28 | arrayLit | SanitizingDoubleDash.go:53:14:53:35 | call to append | -| SanitizingDoubleDash.go:68:14:68:38 | call to append | SanitizingDoubleDash.go:69:21:69:28 | arrayLit | -| SanitizingDoubleDash.go:68:31:68:37 | tainted | SanitizingDoubleDash.go:68:14:68:38 | call to append | -| SanitizingDoubleDash.go:69:14:69:35 | call to append | SanitizingDoubleDash.go:70:23:70:30 | arrayLit | -| SanitizingDoubleDash.go:69:21:69:28 | arrayLit | SanitizingDoubleDash.go:69:14:69:35 | call to append | -| SanitizingDoubleDash.go:92:13:92:19 | selection of URL | SanitizingDoubleDash.go:92:13:92:27 | call to Query | -| SanitizingDoubleDash.go:92:13:92:27 | call to Query | SanitizingDoubleDash.go:95:25:95:31 | tainted | -| SanitizingDoubleDash.go:92:13:92:27 | call to Query | SanitizingDoubleDash.go:96:24:96:34 | slice expression | -| SanitizingDoubleDash.go:92:13:92:27 | call to Query | SanitizingDoubleDash.go:100:31:100:37 | tainted | -| SanitizingDoubleDash.go:92:13:92:27 | call to Query | SanitizingDoubleDash.go:101:24:101:34 | slice expression | -| SanitizingDoubleDash.go:92:13:92:27 | call to Query | SanitizingDoubleDash.go:105:30:105:36 | tainted | -| SanitizingDoubleDash.go:92:13:92:27 | call to Query | SanitizingDoubleDash.go:106:24:106:31 | arrayLit | -| SanitizingDoubleDash.go:92:13:92:27 | call to Query | SanitizingDoubleDash.go:111:37:111:43 | tainted | -| SanitizingDoubleDash.go:92:13:92:27 | call to Query | SanitizingDoubleDash.go:117:31:117:37 | tainted | -| SanitizingDoubleDash.go:92:13:92:27 | call to Query | SanitizingDoubleDash.go:123:31:123:37 | tainted | -| SanitizingDoubleDash.go:92:13:92:27 | call to Query | SanitizingDoubleDash.go:129:21:129:28 | arrayLit | -| SanitizingDoubleDash.go:92:13:92:27 | call to Query | SanitizingDoubleDash.go:136:31:136:37 | tainted | -| SanitizingDoubleDash.go:92:13:92:27 | call to Query | SanitizingDoubleDash.go:142:31:142:37 | tainted | -| SanitizingDoubleDash.go:92:13:92:27 | call to Query | SanitizingDoubleDash.go:148:30:148:36 | tainted | -| SanitizingDoubleDash.go:92:13:92:27 | call to Query | SanitizingDoubleDash.go:152:24:152:30 | tainted | -| SanitizingDoubleDash.go:95:15:95:32 | array literal [array] | SanitizingDoubleDash.go:96:24:96:31 | arrayLit [array] | -| SanitizingDoubleDash.go:95:25:95:31 | tainted | SanitizingDoubleDash.go:95:15:95:32 | array literal [array] | -| SanitizingDoubleDash.go:96:24:96:31 | arrayLit [array] | SanitizingDoubleDash.go:96:24:96:34 | slice element node | -| SanitizingDoubleDash.go:96:24:96:34 | slice element node | SanitizingDoubleDash.go:96:24:96:34 | slice expression [array] | -| SanitizingDoubleDash.go:96:24:96:34 | slice expression [array] | SanitizingDoubleDash.go:96:24:96:34 | slice expression | -| SanitizingDoubleDash.go:100:15:100:38 | array literal [array] | SanitizingDoubleDash.go:101:24:101:31 | arrayLit [array] | -| SanitizingDoubleDash.go:100:31:100:37 | tainted | SanitizingDoubleDash.go:100:15:100:38 | array literal [array] | -| SanitizingDoubleDash.go:101:24:101:31 | arrayLit [array] | SanitizingDoubleDash.go:101:24:101:34 | slice element node | -| SanitizingDoubleDash.go:101:24:101:34 | slice element node | SanitizingDoubleDash.go:101:24:101:34 | slice expression [array] | -| SanitizingDoubleDash.go:101:24:101:34 | slice expression [array] | SanitizingDoubleDash.go:101:24:101:34 | slice expression | -| SanitizingDoubleDash.go:105:15:105:37 | slice literal [array] | SanitizingDoubleDash.go:106:24:106:31 | arrayLit | -| SanitizingDoubleDash.go:105:30:105:36 | tainted | SanitizingDoubleDash.go:105:15:105:37 | slice literal [array] | -| SanitizingDoubleDash.go:111:14:111:44 | call to append | SanitizingDoubleDash.go:112:24:112:31 | arrayLit | -| SanitizingDoubleDash.go:111:37:111:43 | tainted | SanitizingDoubleDash.go:111:14:111:44 | call to append | -| SanitizingDoubleDash.go:117:14:117:44 | call to append | SanitizingDoubleDash.go:118:24:118:31 | arrayLit | -| SanitizingDoubleDash.go:117:31:117:37 | tainted | SanitizingDoubleDash.go:117:14:117:44 | call to append | -| SanitizingDoubleDash.go:123:14:123:38 | call to append | SanitizingDoubleDash.go:124:24:124:31 | arrayLit | -| SanitizingDoubleDash.go:123:31:123:37 | tainted | SanitizingDoubleDash.go:123:14:123:38 | call to append | -| SanitizingDoubleDash.go:129:14:129:35 | call to append | SanitizingDoubleDash.go:130:24:130:31 | arrayLit | -| SanitizingDoubleDash.go:129:21:129:28 | arrayLit | SanitizingDoubleDash.go:129:14:129:35 | call to append | -| SanitizingDoubleDash.go:136:14:136:38 | call to append | SanitizingDoubleDash.go:137:24:137:31 | arrayLit | -| SanitizingDoubleDash.go:136:31:136:37 | tainted | SanitizingDoubleDash.go:136:14:136:38 | call to append | -| SanitizingDoubleDash.go:142:14:142:38 | call to append | SanitizingDoubleDash.go:143:21:143:28 | arrayLit | -| SanitizingDoubleDash.go:142:31:142:37 | tainted | SanitizingDoubleDash.go:142:14:142:38 | call to append | -| SanitizingDoubleDash.go:143:14:143:35 | call to append | SanitizingDoubleDash.go:144:24:144:31 | arrayLit | -| SanitizingDoubleDash.go:143:21:143:28 | arrayLit | SanitizingDoubleDash.go:143:14:143:35 | call to append | +| ArgumentInjection.go:9:10:9:16 | selection of URL | ArgumentInjection.go:9:10:9:24 | call to Query | provenance | | +| ArgumentInjection.go:9:10:9:24 | call to Query | ArgumentInjection.go:10:31:10:34 | path | provenance | | +| CommandInjection.go:9:13:9:19 | selection of URL | CommandInjection.go:9:13:9:27 | call to Query | provenance | | +| CommandInjection.go:9:13:9:27 | call to Query | CommandInjection.go:10:22:10:28 | cmdName | provenance | | +| GitSubcommands.go:10:13:10:19 | selection of URL | GitSubcommands.go:10:13:10:27 | call to Query | provenance | | +| GitSubcommands.go:10:13:10:27 | call to Query | GitSubcommands.go:12:31:12:37 | tainted | provenance | | +| GitSubcommands.go:10:13:10:27 | call to Query | GitSubcommands.go:13:31:13:37 | tainted | provenance | | +| GitSubcommands.go:10:13:10:27 | call to Query | GitSubcommands.go:14:30:14:36 | tainted | provenance | | +| GitSubcommands.go:10:13:10:27 | call to Query | GitSubcommands.go:15:35:15:41 | tainted | provenance | | +| GitSubcommands.go:10:13:10:27 | call to Query | GitSubcommands.go:16:36:16:42 | tainted | provenance | | +| SanitizingDoubleDash.go:9:13:9:19 | selection of URL | SanitizingDoubleDash.go:9:13:9:27 | call to Query | provenance | | +| SanitizingDoubleDash.go:9:13:9:27 | call to Query | SanitizingDoubleDash.go:13:25:13:31 | tainted | provenance | | +| SanitizingDoubleDash.go:9:13:9:27 | call to Query | SanitizingDoubleDash.go:14:23:14:33 | slice expression | provenance | | +| SanitizingDoubleDash.go:9:13:9:27 | call to Query | SanitizingDoubleDash.go:39:31:39:37 | tainted | provenance | | +| SanitizingDoubleDash.go:9:13:9:27 | call to Query | SanitizingDoubleDash.go:53:21:53:28 | arrayLit | provenance | | +| SanitizingDoubleDash.go:9:13:9:27 | call to Query | SanitizingDoubleDash.go:68:31:68:37 | tainted | provenance | | +| SanitizingDoubleDash.go:9:13:9:27 | call to Query | SanitizingDoubleDash.go:80:23:80:29 | tainted | provenance | | +| SanitizingDoubleDash.go:13:15:13:32 | array literal [array] | SanitizingDoubleDash.go:14:23:14:30 | arrayLit [array] | provenance | | +| SanitizingDoubleDash.go:13:25:13:31 | tainted | SanitizingDoubleDash.go:13:15:13:32 | array literal [array] | provenance | | +| SanitizingDoubleDash.go:14:23:14:30 | arrayLit [array] | SanitizingDoubleDash.go:14:23:14:33 | slice element node | provenance | | +| SanitizingDoubleDash.go:14:23:14:33 | slice element node | SanitizingDoubleDash.go:14:23:14:33 | slice expression [array] | provenance | | +| SanitizingDoubleDash.go:14:23:14:33 | slice expression [array] | SanitizingDoubleDash.go:14:23:14:33 | slice expression | provenance | | +| SanitizingDoubleDash.go:39:14:39:44 | call to append | SanitizingDoubleDash.go:40:23:40:30 | arrayLit | provenance | | +| SanitizingDoubleDash.go:39:31:39:37 | tainted | SanitizingDoubleDash.go:39:14:39:44 | call to append | provenance | | +| SanitizingDoubleDash.go:53:14:53:35 | call to append | SanitizingDoubleDash.go:54:23:54:30 | arrayLit | provenance | | +| SanitizingDoubleDash.go:53:21:53:28 | arrayLit | SanitizingDoubleDash.go:53:14:53:35 | call to append | provenance | | +| SanitizingDoubleDash.go:68:14:68:38 | call to append | SanitizingDoubleDash.go:69:21:69:28 | arrayLit | provenance | | +| SanitizingDoubleDash.go:68:31:68:37 | tainted | SanitizingDoubleDash.go:68:14:68:38 | call to append | provenance | | +| SanitizingDoubleDash.go:69:14:69:35 | call to append | SanitizingDoubleDash.go:70:23:70:30 | arrayLit | provenance | | +| SanitizingDoubleDash.go:69:21:69:28 | arrayLit | SanitizingDoubleDash.go:69:14:69:35 | call to append | provenance | | +| SanitizingDoubleDash.go:92:13:92:19 | selection of URL | SanitizingDoubleDash.go:92:13:92:27 | call to Query | provenance | | +| SanitizingDoubleDash.go:92:13:92:27 | call to Query | SanitizingDoubleDash.go:95:25:95:31 | tainted | provenance | | +| SanitizingDoubleDash.go:92:13:92:27 | call to Query | SanitizingDoubleDash.go:96:24:96:34 | slice expression | provenance | | +| SanitizingDoubleDash.go:92:13:92:27 | call to Query | SanitizingDoubleDash.go:100:31:100:37 | tainted | provenance | | +| SanitizingDoubleDash.go:92:13:92:27 | call to Query | SanitizingDoubleDash.go:101:24:101:34 | slice expression | provenance | | +| SanitizingDoubleDash.go:92:13:92:27 | call to Query | SanitizingDoubleDash.go:105:30:105:36 | tainted | provenance | | +| SanitizingDoubleDash.go:92:13:92:27 | call to Query | SanitizingDoubleDash.go:106:24:106:31 | arrayLit | provenance | | +| SanitizingDoubleDash.go:92:13:92:27 | call to Query | SanitizingDoubleDash.go:111:37:111:43 | tainted | provenance | | +| SanitizingDoubleDash.go:92:13:92:27 | call to Query | SanitizingDoubleDash.go:117:31:117:37 | tainted | provenance | | +| SanitizingDoubleDash.go:92:13:92:27 | call to Query | SanitizingDoubleDash.go:123:31:123:37 | tainted | provenance | | +| SanitizingDoubleDash.go:92:13:92:27 | call to Query | SanitizingDoubleDash.go:129:21:129:28 | arrayLit | provenance | | +| SanitizingDoubleDash.go:92:13:92:27 | call to Query | SanitizingDoubleDash.go:136:31:136:37 | tainted | provenance | | +| SanitizingDoubleDash.go:92:13:92:27 | call to Query | SanitizingDoubleDash.go:142:31:142:37 | tainted | provenance | | +| SanitizingDoubleDash.go:92:13:92:27 | call to Query | SanitizingDoubleDash.go:148:30:148:36 | tainted | provenance | | +| SanitizingDoubleDash.go:92:13:92:27 | call to Query | SanitizingDoubleDash.go:152:24:152:30 | tainted | provenance | | +| SanitizingDoubleDash.go:95:15:95:32 | array literal [array] | SanitizingDoubleDash.go:96:24:96:31 | arrayLit [array] | provenance | | +| SanitizingDoubleDash.go:95:25:95:31 | tainted | SanitizingDoubleDash.go:95:15:95:32 | array literal [array] | provenance | | +| SanitizingDoubleDash.go:96:24:96:31 | arrayLit [array] | SanitizingDoubleDash.go:96:24:96:34 | slice element node | provenance | | +| SanitizingDoubleDash.go:96:24:96:34 | slice element node | SanitizingDoubleDash.go:96:24:96:34 | slice expression [array] | provenance | | +| SanitizingDoubleDash.go:96:24:96:34 | slice expression [array] | SanitizingDoubleDash.go:96:24:96:34 | slice expression | provenance | | +| SanitizingDoubleDash.go:100:15:100:38 | array literal [array] | SanitizingDoubleDash.go:101:24:101:31 | arrayLit [array] | provenance | | +| SanitizingDoubleDash.go:100:31:100:37 | tainted | SanitizingDoubleDash.go:100:15:100:38 | array literal [array] | provenance | | +| SanitizingDoubleDash.go:101:24:101:31 | arrayLit [array] | SanitizingDoubleDash.go:101:24:101:34 | slice element node | provenance | | +| SanitizingDoubleDash.go:101:24:101:34 | slice element node | SanitizingDoubleDash.go:101:24:101:34 | slice expression [array] | provenance | | +| SanitizingDoubleDash.go:101:24:101:34 | slice expression [array] | SanitizingDoubleDash.go:101:24:101:34 | slice expression | provenance | | +| SanitizingDoubleDash.go:105:15:105:37 | slice literal [array] | SanitizingDoubleDash.go:106:24:106:31 | arrayLit | provenance | | +| SanitizingDoubleDash.go:105:30:105:36 | tainted | SanitizingDoubleDash.go:105:15:105:37 | slice literal [array] | provenance | | +| SanitizingDoubleDash.go:111:14:111:44 | call to append | SanitizingDoubleDash.go:112:24:112:31 | arrayLit | provenance | | +| SanitizingDoubleDash.go:111:37:111:43 | tainted | SanitizingDoubleDash.go:111:14:111:44 | call to append | provenance | | +| SanitizingDoubleDash.go:117:14:117:44 | call to append | SanitizingDoubleDash.go:118:24:118:31 | arrayLit | provenance | | +| SanitizingDoubleDash.go:117:31:117:37 | tainted | SanitizingDoubleDash.go:117:14:117:44 | call to append | provenance | | +| SanitizingDoubleDash.go:123:14:123:38 | call to append | SanitizingDoubleDash.go:124:24:124:31 | arrayLit | provenance | | +| SanitizingDoubleDash.go:123:31:123:37 | tainted | SanitizingDoubleDash.go:123:14:123:38 | call to append | provenance | | +| SanitizingDoubleDash.go:129:14:129:35 | call to append | SanitizingDoubleDash.go:130:24:130:31 | arrayLit | provenance | | +| SanitizingDoubleDash.go:129:21:129:28 | arrayLit | SanitizingDoubleDash.go:129:14:129:35 | call to append | provenance | | +| SanitizingDoubleDash.go:136:14:136:38 | call to append | SanitizingDoubleDash.go:137:24:137:31 | arrayLit | provenance | | +| SanitizingDoubleDash.go:136:31:136:37 | tainted | SanitizingDoubleDash.go:136:14:136:38 | call to append | provenance | | +| SanitizingDoubleDash.go:142:14:142:38 | call to append | SanitizingDoubleDash.go:143:21:143:28 | arrayLit | provenance | | +| SanitizingDoubleDash.go:142:31:142:37 | tainted | SanitizingDoubleDash.go:142:14:142:38 | call to append | provenance | | +| SanitizingDoubleDash.go:143:14:143:35 | call to append | SanitizingDoubleDash.go:144:24:144:31 | arrayLit | provenance | | +| SanitizingDoubleDash.go:143:21:143:28 | arrayLit | SanitizingDoubleDash.go:143:14:143:35 | call to append | provenance | | nodes | ArgumentInjection.go:9:10:9:16 | selection of URL | semmle.label | selection of URL | | ArgumentInjection.go:9:10:9:24 | call to Query | semmle.label | call to Query | diff --git a/go/ql/test/query-tests/Security/CWE-078/StoredCommand.expected b/go/ql/test/query-tests/Security/CWE-078/StoredCommand.expected index e0e028fff91b..4bdeaa67be01 100644 --- a/go/ql/test/query-tests/Security/CWE-078/StoredCommand.expected +++ b/go/ql/test/query-tests/Security/CWE-078/StoredCommand.expected @@ -1,8 +1,8 @@ edges -| StoredCommand.go:11:2:11:27 | ... := ...[0] | StoredCommand.go:13:2:13:5 | rows | -| StoredCommand.go:13:2:13:5 | rows | StoredCommand.go:13:12:13:19 | &... | -| StoredCommand.go:13:12:13:19 | &... | StoredCommand.go:13:12:13:19 | &... | -| StoredCommand.go:13:12:13:19 | &... | StoredCommand.go:14:22:14:28 | cmdName | +| StoredCommand.go:11:2:11:27 | ... := ...[0] | StoredCommand.go:13:2:13:5 | rows | provenance | | +| StoredCommand.go:13:2:13:5 | rows | StoredCommand.go:13:12:13:19 | &... | provenance | | +| StoredCommand.go:13:12:13:19 | &... | StoredCommand.go:13:12:13:19 | &... | provenance | | +| StoredCommand.go:13:12:13:19 | &... | StoredCommand.go:14:22:14:28 | cmdName | provenance | | nodes | StoredCommand.go:11:2:11:27 | ... := ...[0] | semmle.label | ... := ...[0] | | StoredCommand.go:13:2:13:5 | rows | semmle.label | rows | diff --git a/go/ql/test/query-tests/Security/CWE-079/ReflectedXss.expected b/go/ql/test/query-tests/Security/CWE-079/ReflectedXss.expected index 81144cc3c86f..634c21befb31 100644 --- a/go/ql/test/query-tests/Security/CWE-079/ReflectedXss.expected +++ b/go/ql/test/query-tests/Security/CWE-079/ReflectedXss.expected @@ -1,52 +1,52 @@ edges -| ReflectedXss.go:11:15:11:20 | selection of Form | ReflectedXss.go:11:15:11:36 | call to Get | -| ReflectedXss.go:11:15:11:36 | call to Get | ReflectedXss.go:14:44:14:51 | username | -| contenttype.go:11:11:11:16 | selection of Form | contenttype.go:11:11:11:28 | call to Get | -| contenttype.go:11:11:11:28 | call to Get | contenttype.go:17:11:17:22 | type conversion | -| contenttype.go:49:11:49:16 | selection of Form | contenttype.go:49:11:49:28 | call to Get | -| contenttype.go:49:11:49:28 | call to Get | contenttype.go:53:34:53:37 | data | -| contenttype.go:63:10:63:28 | call to FormValue | contenttype.go:64:52:64:55 | data | -| contenttype.go:73:10:73:28 | call to FormValue | contenttype.go:79:11:79:14 | data | -| contenttype.go:88:10:88:28 | call to FormValue | contenttype.go:91:4:91:7 | data | -| contenttype.go:113:10:113:28 | call to FormValue | contenttype.go:114:50:114:53 | data | -| reflectedxsstest.go:31:2:31:44 | ... := ...[0] | reflectedxsstest.go:32:34:32:37 | file | -| reflectedxsstest.go:31:2:31:44 | ... := ...[1] | reflectedxsstest.go:34:46:34:60 | selection of Filename | -| reflectedxsstest.go:32:2:32:38 | ... := ...[0] | reflectedxsstest.go:33:49:33:55 | content | -| reflectedxsstest.go:32:34:32:37 | file | reflectedxsstest.go:32:2:32:38 | ... := ...[0] | -| reflectedxsstest.go:33:17:33:56 | []type{args} [array] | reflectedxsstest.go:33:17:33:56 | call to Sprintf | -| reflectedxsstest.go:33:17:33:56 | call to Sprintf | reflectedxsstest.go:33:10:33:57 | type conversion | -| reflectedxsstest.go:33:49:33:55 | content | reflectedxsstest.go:33:17:33:56 | []type{args} [array] | -| reflectedxsstest.go:33:49:33:55 | content | reflectedxsstest.go:33:17:33:56 | call to Sprintf | -| reflectedxsstest.go:34:17:34:61 | []type{args} [array] | reflectedxsstest.go:34:17:34:61 | call to Sprintf | -| reflectedxsstest.go:34:17:34:61 | call to Sprintf | reflectedxsstest.go:34:10:34:62 | type conversion | -| reflectedxsstest.go:34:46:34:60 | selection of Filename | reflectedxsstest.go:34:17:34:61 | []type{args} [array] | -| reflectedxsstest.go:34:46:34:60 | selection of Filename | reflectedxsstest.go:34:17:34:61 | call to Sprintf | -| reflectedxsstest.go:38:2:38:35 | ... := ...[0] | reflectedxsstest.go:39:16:39:21 | reader | -| reflectedxsstest.go:39:2:39:32 | ... := ...[0] | reflectedxsstest.go:40:14:40:17 | part | -| reflectedxsstest.go:39:2:39:32 | ... := ...[0] | reflectedxsstest.go:42:2:42:5 | part | -| reflectedxsstest.go:39:16:39:21 | reader | reflectedxsstest.go:39:2:39:32 | ... := ...[0] | -| reflectedxsstest.go:40:14:40:17 | part | reflectedxsstest.go:40:14:40:28 | call to FileName | -| reflectedxsstest.go:40:14:40:28 | call to FileName | reflectedxsstest.go:44:46:44:53 | partName | -| reflectedxsstest.go:41:2:41:10 | definition of byteSlice | reflectedxsstest.go:45:10:45:18 | byteSlice | -| reflectedxsstest.go:42:2:42:5 | part | reflectedxsstest.go:41:2:41:10 | definition of byteSlice | -| reflectedxsstest.go:44:17:44:54 | []type{args} [array] | reflectedxsstest.go:44:17:44:54 | call to Sprintf | -| reflectedxsstest.go:44:17:44:54 | call to Sprintf | reflectedxsstest.go:44:10:44:55 | type conversion | -| reflectedxsstest.go:44:46:44:53 | partName | reflectedxsstest.go:44:17:44:54 | []type{args} [array] | -| reflectedxsstest.go:44:46:44:53 | partName | reflectedxsstest.go:44:17:44:54 | call to Sprintf | -| reflectedxsstest.go:51:14:51:18 | selection of URL | reflectedxsstest.go:51:14:51:26 | call to Query | -| reflectedxsstest.go:51:14:51:26 | call to Query | reflectedxsstest.go:54:11:54:21 | type conversion | -| tst.go:14:15:14:20 | selection of Form | tst.go:14:15:14:36 | call to Get | -| tst.go:14:15:14:36 | call to Get | tst.go:18:32:18:32 | a | -| tst.go:18:19:18:38 | call to Join | tst.go:18:12:18:39 | type conversion | -| tst.go:18:32:18:32 | a | tst.go:18:19:18:38 | call to Join | -| tst.go:48:14:48:19 | selection of Form | tst.go:48:14:48:34 | call to Get | -| tst.go:48:14:48:34 | call to Get | tst.go:53:12:53:26 | type conversion | -| websocketXss.go:30:7:30:10 | definition of xnet | websocketXss.go:32:24:32:27 | xnet | -| websocketXss.go:34:3:34:7 | definition of xnet2 | websocketXss.go:36:24:36:28 | xnet2 | -| websocketXss.go:40:3:40:40 | ... := ...[1] | websocketXss.go:41:24:41:29 | nhooyr | -| websocketXss.go:46:7:46:16 | definition of gorillaMsg | websocketXss.go:48:24:48:33 | gorillaMsg | -| websocketXss.go:50:3:50:10 | definition of gorilla2 | websocketXss.go:52:24:52:31 | gorilla2 | -| websocketXss.go:54:3:54:38 | ... := ...[1] | websocketXss.go:55:24:55:31 | gorilla3 | +| ReflectedXss.go:11:15:11:20 | selection of Form | ReflectedXss.go:11:15:11:36 | call to Get | provenance | | +| ReflectedXss.go:11:15:11:36 | call to Get | ReflectedXss.go:14:44:14:51 | username | provenance | | +| contenttype.go:11:11:11:16 | selection of Form | contenttype.go:11:11:11:28 | call to Get | provenance | | +| contenttype.go:11:11:11:28 | call to Get | contenttype.go:17:11:17:22 | type conversion | provenance | | +| contenttype.go:49:11:49:16 | selection of Form | contenttype.go:49:11:49:28 | call to Get | provenance | | +| contenttype.go:49:11:49:28 | call to Get | contenttype.go:53:34:53:37 | data | provenance | | +| contenttype.go:63:10:63:28 | call to FormValue | contenttype.go:64:52:64:55 | data | provenance | | +| contenttype.go:73:10:73:28 | call to FormValue | contenttype.go:79:11:79:14 | data | provenance | | +| contenttype.go:88:10:88:28 | call to FormValue | contenttype.go:91:4:91:7 | data | provenance | | +| contenttype.go:113:10:113:28 | call to FormValue | contenttype.go:114:50:114:53 | data | provenance | | +| reflectedxsstest.go:31:2:31:44 | ... := ...[0] | reflectedxsstest.go:32:34:32:37 | file | provenance | | +| reflectedxsstest.go:31:2:31:44 | ... := ...[1] | reflectedxsstest.go:34:46:34:60 | selection of Filename | provenance | | +| reflectedxsstest.go:32:2:32:38 | ... := ...[0] | reflectedxsstest.go:33:49:33:55 | content | provenance | | +| reflectedxsstest.go:32:34:32:37 | file | reflectedxsstest.go:32:2:32:38 | ... := ...[0] | provenance | | +| reflectedxsstest.go:33:17:33:56 | []type{args} [array] | reflectedxsstest.go:33:17:33:56 | call to Sprintf | provenance | | +| reflectedxsstest.go:33:17:33:56 | call to Sprintf | reflectedxsstest.go:33:10:33:57 | type conversion | provenance | | +| reflectedxsstest.go:33:49:33:55 | content | reflectedxsstest.go:33:17:33:56 | []type{args} [array] | provenance | | +| reflectedxsstest.go:33:49:33:55 | content | reflectedxsstest.go:33:17:33:56 | call to Sprintf | provenance | | +| reflectedxsstest.go:34:17:34:61 | []type{args} [array] | reflectedxsstest.go:34:17:34:61 | call to Sprintf | provenance | | +| reflectedxsstest.go:34:17:34:61 | call to Sprintf | reflectedxsstest.go:34:10:34:62 | type conversion | provenance | | +| reflectedxsstest.go:34:46:34:60 | selection of Filename | reflectedxsstest.go:34:17:34:61 | []type{args} [array] | provenance | | +| reflectedxsstest.go:34:46:34:60 | selection of Filename | reflectedxsstest.go:34:17:34:61 | call to Sprintf | provenance | | +| reflectedxsstest.go:38:2:38:35 | ... := ...[0] | reflectedxsstest.go:39:16:39:21 | reader | provenance | | +| reflectedxsstest.go:39:2:39:32 | ... := ...[0] | reflectedxsstest.go:40:14:40:17 | part | provenance | | +| reflectedxsstest.go:39:2:39:32 | ... := ...[0] | reflectedxsstest.go:42:2:42:5 | part | provenance | | +| reflectedxsstest.go:39:16:39:21 | reader | reflectedxsstest.go:39:2:39:32 | ... := ...[0] | provenance | | +| reflectedxsstest.go:40:14:40:17 | part | reflectedxsstest.go:40:14:40:28 | call to FileName | provenance | | +| reflectedxsstest.go:40:14:40:28 | call to FileName | reflectedxsstest.go:44:46:44:53 | partName | provenance | | +| reflectedxsstest.go:41:2:41:10 | definition of byteSlice | reflectedxsstest.go:45:10:45:18 | byteSlice | provenance | | +| reflectedxsstest.go:42:2:42:5 | part | reflectedxsstest.go:41:2:41:10 | definition of byteSlice | provenance | | +| reflectedxsstest.go:44:17:44:54 | []type{args} [array] | reflectedxsstest.go:44:17:44:54 | call to Sprintf | provenance | | +| reflectedxsstest.go:44:17:44:54 | call to Sprintf | reflectedxsstest.go:44:10:44:55 | type conversion | provenance | | +| reflectedxsstest.go:44:46:44:53 | partName | reflectedxsstest.go:44:17:44:54 | []type{args} [array] | provenance | | +| reflectedxsstest.go:44:46:44:53 | partName | reflectedxsstest.go:44:17:44:54 | call to Sprintf | provenance | | +| reflectedxsstest.go:51:14:51:18 | selection of URL | reflectedxsstest.go:51:14:51:26 | call to Query | provenance | | +| reflectedxsstest.go:51:14:51:26 | call to Query | reflectedxsstest.go:54:11:54:21 | type conversion | provenance | | +| tst.go:14:15:14:20 | selection of Form | tst.go:14:15:14:36 | call to Get | provenance | | +| tst.go:14:15:14:36 | call to Get | tst.go:18:32:18:32 | a | provenance | | +| tst.go:18:19:18:38 | call to Join | tst.go:18:12:18:39 | type conversion | provenance | | +| tst.go:18:32:18:32 | a | tst.go:18:19:18:38 | call to Join | provenance | | +| tst.go:48:14:48:19 | selection of Form | tst.go:48:14:48:34 | call to Get | provenance | | +| tst.go:48:14:48:34 | call to Get | tst.go:53:12:53:26 | type conversion | provenance | | +| websocketXss.go:30:7:30:10 | definition of xnet | websocketXss.go:32:24:32:27 | xnet | provenance | | +| websocketXss.go:34:3:34:7 | definition of xnet2 | websocketXss.go:36:24:36:28 | xnet2 | provenance | | +| websocketXss.go:40:3:40:40 | ... := ...[1] | websocketXss.go:41:24:41:29 | nhooyr | provenance | | +| websocketXss.go:46:7:46:16 | definition of gorillaMsg | websocketXss.go:48:24:48:33 | gorillaMsg | provenance | | +| websocketXss.go:50:3:50:10 | definition of gorilla2 | websocketXss.go:52:24:52:31 | gorilla2 | provenance | | +| websocketXss.go:54:3:54:38 | ... := ...[1] | websocketXss.go:55:24:55:31 | gorilla3 | provenance | | nodes | ReflectedXss.go:11:15:11:20 | selection of Form | semmle.label | selection of Form | | ReflectedXss.go:11:15:11:36 | call to Get | semmle.label | call to Get | diff --git a/go/ql/test/query-tests/Security/CWE-079/StoredXss.expected b/go/ql/test/query-tests/Security/CWE-079/StoredXss.expected index f51eda4c93c6..c399840db9ac 100644 --- a/go/ql/test/query-tests/Security/CWE-079/StoredXss.expected +++ b/go/ql/test/query-tests/Security/CWE-079/StoredXss.expected @@ -1,10 +1,10 @@ edges -| StoredXss.go:13:21:13:31 | call to Name | StoredXss.go:13:21:13:36 | ...+... | -| stored.go:18:3:18:28 | ... := ...[0] | stored.go:25:14:25:17 | rows | -| stored.go:25:14:25:17 | rows | stored.go:25:29:25:33 | &... | -| stored.go:25:29:25:33 | &... | stored.go:25:29:25:33 | &... | -| stored.go:25:29:25:33 | &... | stored.go:30:22:30:25 | name | -| stored.go:59:30:59:33 | definition of path | stored.go:61:22:61:25 | path | +| StoredXss.go:13:21:13:31 | call to Name | StoredXss.go:13:21:13:36 | ...+... | provenance | | +| stored.go:18:3:18:28 | ... := ...[0] | stored.go:25:14:25:17 | rows | provenance | | +| stored.go:25:14:25:17 | rows | stored.go:25:29:25:33 | &... | provenance | | +| stored.go:25:29:25:33 | &... | stored.go:25:29:25:33 | &... | provenance | | +| stored.go:25:29:25:33 | &... | stored.go:30:22:30:25 | name | provenance | | +| stored.go:59:30:59:33 | definition of path | stored.go:61:22:61:25 | path | provenance | | nodes | StoredXss.go:13:21:13:31 | call to Name | semmle.label | call to Name | | StoredXss.go:13:21:13:36 | ...+... | semmle.label | ...+... | diff --git a/go/ql/test/query-tests/Security/CWE-089/SqlInjection.expected b/go/ql/test/query-tests/Security/CWE-089/SqlInjection.expected index 43bbd3a3fe78..066f4a272f0d 100644 --- a/go/ql/test/query-tests/Security/CWE-089/SqlInjection.expected +++ b/go/ql/test/query-tests/Security/CWE-089/SqlInjection.expected @@ -1,112 +1,112 @@ edges -| SqlInjection.go:10:7:11:30 | []type{args} [array] | SqlInjection.go:10:7:11:30 | call to Sprintf | -| SqlInjection.go:10:7:11:30 | call to Sprintf | SqlInjection.go:12:11:12:11 | q | -| SqlInjection.go:11:3:11:9 | selection of URL | SqlInjection.go:11:3:11:17 | call to Query | -| SqlInjection.go:11:3:11:17 | call to Query | SqlInjection.go:11:3:11:29 | index expression | -| SqlInjection.go:11:3:11:29 | index expression | SqlInjection.go:10:7:11:30 | []type{args} [array] | -| SqlInjection.go:11:3:11:29 | index expression | SqlInjection.go:10:7:11:30 | call to Sprintf | -| issue48.go:17:2:17:33 | ... := ...[0] | issue48.go:18:17:18:17 | b | -| issue48.go:17:25:17:32 | selection of Body | issue48.go:17:2:17:33 | ... := ...[0] | -| issue48.go:18:17:18:17 | b | issue48.go:18:20:18:39 | &... | -| issue48.go:18:20:18:39 | &... | issue48.go:21:3:21:33 | index expression | -| issue48.go:20:8:21:34 | []type{args} [array] | issue48.go:20:8:21:34 | call to Sprintf | -| issue48.go:20:8:21:34 | call to Sprintf | issue48.go:22:11:22:12 | q3 | -| issue48.go:21:3:21:33 | index expression | issue48.go:20:8:21:34 | []type{args} [array] | -| issue48.go:21:3:21:33 | index expression | issue48.go:20:8:21:34 | call to Sprintf | -| issue48.go:27:2:27:34 | ... := ...[0] | issue48.go:28:17:28:18 | b2 | -| issue48.go:27:26:27:33 | selection of Body | issue48.go:27:2:27:34 | ... := ...[0] | -| issue48.go:28:17:28:18 | b2 | issue48.go:28:21:28:41 | &... | -| issue48.go:28:21:28:41 | &... | issue48.go:31:3:31:31 | selection of Category | -| issue48.go:30:8:31:32 | []type{args} [array] | issue48.go:30:8:31:32 | call to Sprintf | -| issue48.go:30:8:31:32 | call to Sprintf | issue48.go:32:11:32:12 | q4 | -| issue48.go:31:3:31:31 | selection of Category | issue48.go:30:8:31:32 | []type{args} [array] | -| issue48.go:31:3:31:31 | selection of Category | issue48.go:30:8:31:32 | call to Sprintf | -| issue48.go:37:17:37:50 | type conversion | issue48.go:37:53:37:73 | &... | -| issue48.go:37:24:37:30 | selection of URL | issue48.go:37:24:37:38 | call to Query | -| issue48.go:37:24:37:38 | call to Query | issue48.go:37:17:37:50 | type conversion | -| issue48.go:37:53:37:73 | &... | issue48.go:40:3:40:31 | selection of Category | -| issue48.go:39:8:40:32 | []type{args} [array] | issue48.go:39:8:40:32 | call to Sprintf | -| issue48.go:39:8:40:32 | call to Sprintf | issue48.go:41:11:41:12 | q5 | -| issue48.go:40:3:40:31 | selection of Category | issue48.go:39:8:40:32 | []type{args} [array] | -| issue48.go:40:3:40:31 | selection of Category | issue48.go:39:8:40:32 | call to Sprintf | -| main.go:11:11:11:16 | selection of Form | main.go:11:11:11:28 | index expression | -| main.go:15:11:15:84 | []type{args} [array] | main.go:15:11:15:84 | call to Sprintf | -| main.go:15:63:15:67 | selection of URL | main.go:15:63:15:75 | call to Query | -| main.go:15:63:15:75 | call to Query | main.go:15:63:15:83 | index expression | -| main.go:15:63:15:83 | index expression | main.go:15:11:15:84 | []type{args} [array] | -| main.go:15:63:15:83 | index expression | main.go:15:11:15:84 | call to Sprintf | -| main.go:16:11:16:85 | []type{args} [array] | main.go:16:11:16:85 | call to Sprintf | -| main.go:16:63:16:70 | selection of Header | main.go:16:63:16:84 | call to Get | -| main.go:16:63:16:84 | call to Get | main.go:16:11:16:85 | []type{args} [array] | -| main.go:16:63:16:84 | call to Get | main.go:16:11:16:85 | call to Sprintf | -| main.go:28:17:31:2 | &... [pointer, Category] | main.go:34:3:34:13 | RequestData [pointer, Category] | -| main.go:28:18:31:2 | struct literal [Category] | main.go:28:17:31:2 | &... [pointer, Category] | -| main.go:30:13:30:19 | selection of URL | main.go:30:13:30:27 | call to Query | -| main.go:30:13:30:27 | call to Query | main.go:30:13:30:39 | index expression | -| main.go:30:13:30:39 | index expression | main.go:28:18:31:2 | struct literal [Category] | -| main.go:33:7:34:23 | []type{args} [array] | main.go:33:7:34:23 | call to Sprintf | -| main.go:33:7:34:23 | call to Sprintf | main.go:35:11:35:11 | q | -| main.go:34:3:34:13 | RequestData [pointer, Category] | main.go:34:3:34:13 | implicit dereference [Category] | -| main.go:34:3:34:13 | implicit dereference [Category] | main.go:34:3:34:22 | selection of Category | -| main.go:34:3:34:22 | selection of Category | main.go:33:7:34:23 | []type{args} [array] | -| main.go:34:3:34:22 | selection of Category | main.go:33:7:34:23 | call to Sprintf | -| main.go:39:2:39:12 | definition of RequestData [pointer, Category] | main.go:40:2:40:12 | RequestData [pointer, Category] | -| main.go:39:2:39:12 | definition of RequestData [pointer, Category] | main.go:43:3:43:13 | RequestData [pointer, Category] | -| main.go:40:2:40:12 | RequestData [pointer, Category] | main.go:40:2:40:12 | implicit dereference [Category] | -| main.go:40:2:40:12 | implicit dereference [Category] | main.go:39:2:39:12 | definition of RequestData [pointer, Category] | -| main.go:40:25:40:31 | selection of URL | main.go:40:25:40:39 | call to Query | -| main.go:40:25:40:39 | call to Query | main.go:40:25:40:51 | index expression | -| main.go:40:25:40:51 | index expression | main.go:40:2:40:12 | implicit dereference [Category] | -| main.go:42:7:43:23 | []type{args} [array] | main.go:42:7:43:23 | call to Sprintf | -| main.go:42:7:43:23 | call to Sprintf | main.go:44:11:44:11 | q | -| main.go:43:3:43:13 | RequestData [pointer, Category] | main.go:43:3:43:13 | implicit dereference [Category] | -| main.go:43:3:43:13 | implicit dereference [Category] | main.go:43:3:43:22 | selection of Category | -| main.go:43:3:43:22 | selection of Category | main.go:42:7:43:23 | []type{args} [array] | -| main.go:43:3:43:22 | selection of Category | main.go:42:7:43:23 | call to Sprintf | -| main.go:48:2:48:12 | definition of RequestData [pointer, Category] | main.go:49:4:49:14 | RequestData [pointer, Category] | -| main.go:48:2:48:12 | definition of RequestData [pointer, Category] | main.go:52:3:52:13 | RequestData [pointer, Category] | -| main.go:49:3:49:14 | star expression [Category] | main.go:48:2:48:12 | definition of RequestData [pointer, Category] | -| main.go:49:4:49:14 | RequestData [pointer, Category] | main.go:49:3:49:14 | star expression [Category] | -| main.go:49:28:49:34 | selection of URL | main.go:49:28:49:42 | call to Query | -| main.go:49:28:49:42 | call to Query | main.go:49:28:49:54 | index expression | -| main.go:49:28:49:54 | index expression | main.go:49:3:49:14 | star expression [Category] | -| main.go:51:7:52:23 | []type{args} [array] | main.go:51:7:52:23 | call to Sprintf | -| main.go:51:7:52:23 | call to Sprintf | main.go:53:11:53:11 | q | -| main.go:52:3:52:13 | RequestData [pointer, Category] | main.go:52:3:52:13 | implicit dereference [Category] | -| main.go:52:3:52:13 | implicit dereference [Category] | main.go:52:3:52:22 | selection of Category | -| main.go:52:3:52:22 | selection of Category | main.go:51:7:52:23 | []type{args} [array] | -| main.go:52:3:52:22 | selection of Category | main.go:51:7:52:23 | call to Sprintf | -| main.go:57:2:57:12 | definition of RequestData [pointer, Category] | main.go:58:4:58:14 | RequestData [pointer, Category] | -| main.go:57:2:57:12 | definition of RequestData [pointer, Category] | main.go:61:5:61:15 | RequestData [pointer, Category] | -| main.go:58:3:58:14 | star expression [Category] | main.go:57:2:57:12 | definition of RequestData [pointer, Category] | -| main.go:58:4:58:14 | RequestData [pointer, Category] | main.go:58:3:58:14 | star expression [Category] | -| main.go:58:28:58:34 | selection of URL | main.go:58:28:58:42 | call to Query | -| main.go:58:28:58:42 | call to Query | main.go:58:28:58:54 | index expression | -| main.go:58:28:58:54 | index expression | main.go:58:3:58:14 | star expression [Category] | -| main.go:60:7:61:26 | []type{args} [array] | main.go:60:7:61:26 | call to Sprintf | -| main.go:60:7:61:26 | call to Sprintf | main.go:62:11:62:11 | q | -| main.go:61:3:61:25 | selection of Category | main.go:60:7:61:26 | []type{args} [array] | -| main.go:61:3:61:25 | selection of Category | main.go:60:7:61:26 | call to Sprintf | -| main.go:61:4:61:15 | star expression [Category] | main.go:61:3:61:25 | selection of Category | -| main.go:61:5:61:15 | RequestData [pointer, Category] | main.go:61:4:61:15 | star expression [Category] | -| mongoDB.go:40:20:40:30 | call to Referer | mongoDB.go:42:28:42:41 | untrustedInput | -| mongoDB.go:42:19:42:42 | struct literal | mongoDB.go:50:34:50:39 | filter | -| mongoDB.go:42:19:42:42 | struct literal | mongoDB.go:61:27:61:32 | filter | -| mongoDB.go:42:19:42:42 | struct literal | mongoDB.go:63:23:63:28 | filter | -| mongoDB.go:42:19:42:42 | struct literal | mongoDB.go:64:22:64:27 | filter | -| mongoDB.go:42:19:42:42 | struct literal | mongoDB.go:66:32:66:37 | filter | -| mongoDB.go:42:19:42:42 | struct literal | mongoDB.go:69:17:69:22 | filter | -| mongoDB.go:42:19:42:42 | struct literal | mongoDB.go:70:20:70:25 | filter | -| mongoDB.go:42:19:42:42 | struct literal | mongoDB.go:71:29:71:34 | filter | -| mongoDB.go:42:19:42:42 | struct literal | mongoDB.go:72:30:72:35 | filter | -| mongoDB.go:42:19:42:42 | struct literal | mongoDB.go:73:29:73:34 | filter | -| mongoDB.go:42:19:42:42 | struct literal | mongoDB.go:78:23:78:28 | filter | -| mongoDB.go:42:19:42:42 | struct literal | mongoDB.go:79:23:79:28 | filter | -| mongoDB.go:42:19:42:42 | struct literal | mongoDB.go:80:22:80:27 | filter | -| mongoDB.go:42:28:42:41 | untrustedInput | mongoDB.go:42:19:42:42 | struct literal | -| mongoDB.go:50:23:50:40 | struct literal | mongoDB.go:57:22:57:29 | pipeline | -| mongoDB.go:50:23:50:40 | struct literal | mongoDB.go:81:18:81:25 | pipeline | -| mongoDB.go:50:34:50:39 | filter | mongoDB.go:50:23:50:40 | struct literal | +| SqlInjection.go:10:7:11:30 | []type{args} [array] | SqlInjection.go:10:7:11:30 | call to Sprintf | provenance | | +| SqlInjection.go:10:7:11:30 | call to Sprintf | SqlInjection.go:12:11:12:11 | q | provenance | | +| SqlInjection.go:11:3:11:9 | selection of URL | SqlInjection.go:11:3:11:17 | call to Query | provenance | | +| SqlInjection.go:11:3:11:17 | call to Query | SqlInjection.go:11:3:11:29 | index expression | provenance | | +| SqlInjection.go:11:3:11:29 | index expression | SqlInjection.go:10:7:11:30 | []type{args} [array] | provenance | | +| SqlInjection.go:11:3:11:29 | index expression | SqlInjection.go:10:7:11:30 | call to Sprintf | provenance | | +| issue48.go:17:2:17:33 | ... := ...[0] | issue48.go:18:17:18:17 | b | provenance | | +| issue48.go:17:25:17:32 | selection of Body | issue48.go:17:2:17:33 | ... := ...[0] | provenance | | +| issue48.go:18:17:18:17 | b | issue48.go:18:20:18:39 | &... | provenance | | +| issue48.go:18:20:18:39 | &... | issue48.go:21:3:21:33 | index expression | provenance | | +| issue48.go:20:8:21:34 | []type{args} [array] | issue48.go:20:8:21:34 | call to Sprintf | provenance | | +| issue48.go:20:8:21:34 | call to Sprintf | issue48.go:22:11:22:12 | q3 | provenance | | +| issue48.go:21:3:21:33 | index expression | issue48.go:20:8:21:34 | []type{args} [array] | provenance | | +| issue48.go:21:3:21:33 | index expression | issue48.go:20:8:21:34 | call to Sprintf | provenance | | +| issue48.go:27:2:27:34 | ... := ...[0] | issue48.go:28:17:28:18 | b2 | provenance | | +| issue48.go:27:26:27:33 | selection of Body | issue48.go:27:2:27:34 | ... := ...[0] | provenance | | +| issue48.go:28:17:28:18 | b2 | issue48.go:28:21:28:41 | &... | provenance | | +| issue48.go:28:21:28:41 | &... | issue48.go:31:3:31:31 | selection of Category | provenance | | +| issue48.go:30:8:31:32 | []type{args} [array] | issue48.go:30:8:31:32 | call to Sprintf | provenance | | +| issue48.go:30:8:31:32 | call to Sprintf | issue48.go:32:11:32:12 | q4 | provenance | | +| issue48.go:31:3:31:31 | selection of Category | issue48.go:30:8:31:32 | []type{args} [array] | provenance | | +| issue48.go:31:3:31:31 | selection of Category | issue48.go:30:8:31:32 | call to Sprintf | provenance | | +| issue48.go:37:17:37:50 | type conversion | issue48.go:37:53:37:73 | &... | provenance | | +| issue48.go:37:24:37:30 | selection of URL | issue48.go:37:24:37:38 | call to Query | provenance | | +| issue48.go:37:24:37:38 | call to Query | issue48.go:37:17:37:50 | type conversion | provenance | | +| issue48.go:37:53:37:73 | &... | issue48.go:40:3:40:31 | selection of Category | provenance | | +| issue48.go:39:8:40:32 | []type{args} [array] | issue48.go:39:8:40:32 | call to Sprintf | provenance | | +| issue48.go:39:8:40:32 | call to Sprintf | issue48.go:41:11:41:12 | q5 | provenance | | +| issue48.go:40:3:40:31 | selection of Category | issue48.go:39:8:40:32 | []type{args} [array] | provenance | | +| issue48.go:40:3:40:31 | selection of Category | issue48.go:39:8:40:32 | call to Sprintf | provenance | | +| main.go:11:11:11:16 | selection of Form | main.go:11:11:11:28 | index expression | provenance | | +| main.go:15:11:15:84 | []type{args} [array] | main.go:15:11:15:84 | call to Sprintf | provenance | | +| main.go:15:63:15:67 | selection of URL | main.go:15:63:15:75 | call to Query | provenance | | +| main.go:15:63:15:75 | call to Query | main.go:15:63:15:83 | index expression | provenance | | +| main.go:15:63:15:83 | index expression | main.go:15:11:15:84 | []type{args} [array] | provenance | | +| main.go:15:63:15:83 | index expression | main.go:15:11:15:84 | call to Sprintf | provenance | | +| main.go:16:11:16:85 | []type{args} [array] | main.go:16:11:16:85 | call to Sprintf | provenance | | +| main.go:16:63:16:70 | selection of Header | main.go:16:63:16:84 | call to Get | provenance | | +| main.go:16:63:16:84 | call to Get | main.go:16:11:16:85 | []type{args} [array] | provenance | | +| main.go:16:63:16:84 | call to Get | main.go:16:11:16:85 | call to Sprintf | provenance | | +| main.go:28:17:31:2 | &... [pointer, Category] | main.go:34:3:34:13 | RequestData [pointer, Category] | provenance | | +| main.go:28:18:31:2 | struct literal [Category] | main.go:28:17:31:2 | &... [pointer, Category] | provenance | | +| main.go:30:13:30:19 | selection of URL | main.go:30:13:30:27 | call to Query | provenance | | +| main.go:30:13:30:27 | call to Query | main.go:30:13:30:39 | index expression | provenance | | +| main.go:30:13:30:39 | index expression | main.go:28:18:31:2 | struct literal [Category] | provenance | | +| main.go:33:7:34:23 | []type{args} [array] | main.go:33:7:34:23 | call to Sprintf | provenance | | +| main.go:33:7:34:23 | call to Sprintf | main.go:35:11:35:11 | q | provenance | | +| main.go:34:3:34:13 | RequestData [pointer, Category] | main.go:34:3:34:13 | implicit dereference [Category] | provenance | | +| main.go:34:3:34:13 | implicit dereference [Category] | main.go:34:3:34:22 | selection of Category | provenance | | +| main.go:34:3:34:22 | selection of Category | main.go:33:7:34:23 | []type{args} [array] | provenance | | +| main.go:34:3:34:22 | selection of Category | main.go:33:7:34:23 | call to Sprintf | provenance | | +| main.go:39:2:39:12 | definition of RequestData [pointer, Category] | main.go:40:2:40:12 | RequestData [pointer, Category] | provenance | | +| main.go:39:2:39:12 | definition of RequestData [pointer, Category] | main.go:43:3:43:13 | RequestData [pointer, Category] | provenance | | +| main.go:40:2:40:12 | RequestData [pointer, Category] | main.go:40:2:40:12 | implicit dereference [Category] | provenance | | +| main.go:40:2:40:12 | implicit dereference [Category] | main.go:39:2:39:12 | definition of RequestData [pointer, Category] | provenance | | +| main.go:40:25:40:31 | selection of URL | main.go:40:25:40:39 | call to Query | provenance | | +| main.go:40:25:40:39 | call to Query | main.go:40:25:40:51 | index expression | provenance | | +| main.go:40:25:40:51 | index expression | main.go:40:2:40:12 | implicit dereference [Category] | provenance | | +| main.go:42:7:43:23 | []type{args} [array] | main.go:42:7:43:23 | call to Sprintf | provenance | | +| main.go:42:7:43:23 | call to Sprintf | main.go:44:11:44:11 | q | provenance | | +| main.go:43:3:43:13 | RequestData [pointer, Category] | main.go:43:3:43:13 | implicit dereference [Category] | provenance | | +| main.go:43:3:43:13 | implicit dereference [Category] | main.go:43:3:43:22 | selection of Category | provenance | | +| main.go:43:3:43:22 | selection of Category | main.go:42:7:43:23 | []type{args} [array] | provenance | | +| main.go:43:3:43:22 | selection of Category | main.go:42:7:43:23 | call to Sprintf | provenance | | +| main.go:48:2:48:12 | definition of RequestData [pointer, Category] | main.go:49:4:49:14 | RequestData [pointer, Category] | provenance | | +| main.go:48:2:48:12 | definition of RequestData [pointer, Category] | main.go:52:3:52:13 | RequestData [pointer, Category] | provenance | | +| main.go:49:3:49:14 | star expression [Category] | main.go:48:2:48:12 | definition of RequestData [pointer, Category] | provenance | | +| main.go:49:4:49:14 | RequestData [pointer, Category] | main.go:49:3:49:14 | star expression [Category] | provenance | | +| main.go:49:28:49:34 | selection of URL | main.go:49:28:49:42 | call to Query | provenance | | +| main.go:49:28:49:42 | call to Query | main.go:49:28:49:54 | index expression | provenance | | +| main.go:49:28:49:54 | index expression | main.go:49:3:49:14 | star expression [Category] | provenance | | +| main.go:51:7:52:23 | []type{args} [array] | main.go:51:7:52:23 | call to Sprintf | provenance | | +| main.go:51:7:52:23 | call to Sprintf | main.go:53:11:53:11 | q | provenance | | +| main.go:52:3:52:13 | RequestData [pointer, Category] | main.go:52:3:52:13 | implicit dereference [Category] | provenance | | +| main.go:52:3:52:13 | implicit dereference [Category] | main.go:52:3:52:22 | selection of Category | provenance | | +| main.go:52:3:52:22 | selection of Category | main.go:51:7:52:23 | []type{args} [array] | provenance | | +| main.go:52:3:52:22 | selection of Category | main.go:51:7:52:23 | call to Sprintf | provenance | | +| main.go:57:2:57:12 | definition of RequestData [pointer, Category] | main.go:58:4:58:14 | RequestData [pointer, Category] | provenance | | +| main.go:57:2:57:12 | definition of RequestData [pointer, Category] | main.go:61:5:61:15 | RequestData [pointer, Category] | provenance | | +| main.go:58:3:58:14 | star expression [Category] | main.go:57:2:57:12 | definition of RequestData [pointer, Category] | provenance | | +| main.go:58:4:58:14 | RequestData [pointer, Category] | main.go:58:3:58:14 | star expression [Category] | provenance | | +| main.go:58:28:58:34 | selection of URL | main.go:58:28:58:42 | call to Query | provenance | | +| main.go:58:28:58:42 | call to Query | main.go:58:28:58:54 | index expression | provenance | | +| main.go:58:28:58:54 | index expression | main.go:58:3:58:14 | star expression [Category] | provenance | | +| main.go:60:7:61:26 | []type{args} [array] | main.go:60:7:61:26 | call to Sprintf | provenance | | +| main.go:60:7:61:26 | call to Sprintf | main.go:62:11:62:11 | q | provenance | | +| main.go:61:3:61:25 | selection of Category | main.go:60:7:61:26 | []type{args} [array] | provenance | | +| main.go:61:3:61:25 | selection of Category | main.go:60:7:61:26 | call to Sprintf | provenance | | +| main.go:61:4:61:15 | star expression [Category] | main.go:61:3:61:25 | selection of Category | provenance | | +| main.go:61:5:61:15 | RequestData [pointer, Category] | main.go:61:4:61:15 | star expression [Category] | provenance | | +| mongoDB.go:40:20:40:30 | call to Referer | mongoDB.go:42:28:42:41 | untrustedInput | provenance | | +| mongoDB.go:42:19:42:42 | struct literal | mongoDB.go:50:34:50:39 | filter | provenance | | +| mongoDB.go:42:19:42:42 | struct literal | mongoDB.go:61:27:61:32 | filter | provenance | | +| mongoDB.go:42:19:42:42 | struct literal | mongoDB.go:63:23:63:28 | filter | provenance | | +| mongoDB.go:42:19:42:42 | struct literal | mongoDB.go:64:22:64:27 | filter | provenance | | +| mongoDB.go:42:19:42:42 | struct literal | mongoDB.go:66:32:66:37 | filter | provenance | | +| mongoDB.go:42:19:42:42 | struct literal | mongoDB.go:69:17:69:22 | filter | provenance | | +| mongoDB.go:42:19:42:42 | struct literal | mongoDB.go:70:20:70:25 | filter | provenance | | +| mongoDB.go:42:19:42:42 | struct literal | mongoDB.go:71:29:71:34 | filter | provenance | | +| mongoDB.go:42:19:42:42 | struct literal | mongoDB.go:72:30:72:35 | filter | provenance | | +| mongoDB.go:42:19:42:42 | struct literal | mongoDB.go:73:29:73:34 | filter | provenance | | +| mongoDB.go:42:19:42:42 | struct literal | mongoDB.go:78:23:78:28 | filter | provenance | | +| mongoDB.go:42:19:42:42 | struct literal | mongoDB.go:79:23:79:28 | filter | provenance | | +| mongoDB.go:42:19:42:42 | struct literal | mongoDB.go:80:22:80:27 | filter | provenance | | +| mongoDB.go:42:28:42:41 | untrustedInput | mongoDB.go:42:19:42:42 | struct literal | provenance | | +| mongoDB.go:50:23:50:40 | struct literal | mongoDB.go:57:22:57:29 | pipeline | provenance | | +| mongoDB.go:50:23:50:40 | struct literal | mongoDB.go:81:18:81:25 | pipeline | provenance | | +| mongoDB.go:50:34:50:39 | filter | mongoDB.go:50:23:50:40 | struct literal | provenance | | nodes | SqlInjection.go:10:7:11:30 | []type{args} [array] | semmle.label | []type{args} [array] | | SqlInjection.go:10:7:11:30 | call to Sprintf | semmle.label | call to Sprintf | diff --git a/go/ql/test/query-tests/Security/CWE-089/StringBreak.expected b/go/ql/test/query-tests/Security/CWE-089/StringBreak.expected index de5b7c7a833b..05147badb067 100644 --- a/go/ql/test/query-tests/Security/CWE-089/StringBreak.expected +++ b/go/ql/test/query-tests/Security/CWE-089/StringBreak.expected @@ -1,11 +1,11 @@ edges -| StringBreak.go:10:2:10:40 | ... := ...[0] | StringBreak.go:14:47:14:57 | versionJSON | -| StringBreakMismatched.go:12:2:12:40 | ... := ...[0] | StringBreakMismatched.go:13:29:13:47 | type conversion | -| StringBreakMismatched.go:13:13:13:62 | call to Replace | StringBreakMismatched.go:17:26:17:32 | escaped | -| StringBreakMismatched.go:13:29:13:47 | type conversion | StringBreakMismatched.go:13:13:13:62 | call to Replace | -| StringBreakMismatched.go:24:2:24:40 | ... := ...[0] | StringBreakMismatched.go:25:29:25:47 | type conversion | -| StringBreakMismatched.go:25:13:25:61 | call to Replace | StringBreakMismatched.go:29:27:29:33 | escaped | -| StringBreakMismatched.go:25:29:25:47 | type conversion | StringBreakMismatched.go:25:13:25:61 | call to Replace | +| StringBreak.go:10:2:10:40 | ... := ...[0] | StringBreak.go:14:47:14:57 | versionJSON | provenance | | +| StringBreakMismatched.go:12:2:12:40 | ... := ...[0] | StringBreakMismatched.go:13:29:13:47 | type conversion | provenance | | +| StringBreakMismatched.go:13:13:13:62 | call to Replace | StringBreakMismatched.go:17:26:17:32 | escaped | provenance | | +| StringBreakMismatched.go:13:29:13:47 | type conversion | StringBreakMismatched.go:13:13:13:62 | call to Replace | provenance | | +| StringBreakMismatched.go:24:2:24:40 | ... := ...[0] | StringBreakMismatched.go:25:29:25:47 | type conversion | provenance | | +| StringBreakMismatched.go:25:13:25:61 | call to Replace | StringBreakMismatched.go:29:27:29:33 | escaped | provenance | | +| StringBreakMismatched.go:25:29:25:47 | type conversion | StringBreakMismatched.go:25:13:25:61 | call to Replace | provenance | | nodes | StringBreak.go:10:2:10:40 | ... := ...[0] | semmle.label | ... := ...[0] | | StringBreak.go:14:47:14:57 | versionJSON | semmle.label | versionJSON | diff --git a/go/ql/test/query-tests/Security/CWE-190/AllocationSizeOverflow.expected b/go/ql/test/query-tests/Security/CWE-190/AllocationSizeOverflow.expected index 036c11ff51e7..e139ab4f5e54 100644 --- a/go/ql/test/query-tests/Security/CWE-190/AllocationSizeOverflow.expected +++ b/go/ql/test/query-tests/Security/CWE-190/AllocationSizeOverflow.expected @@ -1,24 +1,24 @@ edges -| AllocationSizeOverflow.go:6:2:6:33 | ... := ...[0] | AllocationSizeOverflow.go:10:14:10:21 | jsonData | -| AllocationSizeOverflow.go:10:14:10:21 | jsonData | AllocationSizeOverflow.go:10:10:10:22 | call to len | -| tst2.go:9:2:9:37 | ... := ...[0] | tst2.go:10:26:10:29 | data | -| tst2.go:10:26:10:29 | data | tst2.go:10:22:10:30 | call to len | -| tst2.go:14:2:14:29 | ... := ...[0] | tst2.go:15:26:15:29 | data | -| tst2.go:15:26:15:29 | data | tst2.go:15:22:15:30 | call to len | -| tst3.go:6:2:6:31 | ... := ...[0] | tst3.go:7:26:7:33 | jsonData | -| tst3.go:6:2:6:31 | ... := ...[0] | tst3.go:24:20:24:27 | jsonData | -| tst3.go:6:2:6:31 | ... := ...[0] | tst3.go:32:20:32:27 | jsonData | -| tst3.go:7:26:7:33 | jsonData | tst3.go:7:22:7:34 | call to len | -| tst3.go:24:20:24:27 | jsonData | tst3.go:24:16:24:28 | call to len | -| tst3.go:32:20:32:27 | jsonData | tst3.go:32:16:32:28 | call to len | -| tst.go:14:2:14:30 | ... = ...[0] | tst.go:15:26:15:33 | jsonData | -| tst.go:15:26:15:33 | jsonData | tst.go:15:22:15:34 | call to len | -| tst.go:20:2:20:31 | ... = ...[0] | tst.go:21:26:21:33 | jsonData | -| tst.go:21:26:21:33 | jsonData | tst.go:21:22:21:34 | call to len | -| tst.go:26:2:26:31 | ... = ...[0] | tst.go:27:30:27:37 | jsonData | -| tst.go:27:30:27:37 | jsonData | tst.go:27:26:27:38 | call to len | -| tst.go:34:2:34:30 | ... = ...[0] | tst.go:35:26:35:33 | jsonData | -| tst.go:35:26:35:33 | jsonData | tst.go:35:22:35:34 | call to len | +| AllocationSizeOverflow.go:6:2:6:33 | ... := ...[0] | AllocationSizeOverflow.go:10:14:10:21 | jsonData | provenance | | +| AllocationSizeOverflow.go:10:14:10:21 | jsonData | AllocationSizeOverflow.go:10:10:10:22 | call to len | provenance | | +| tst2.go:9:2:9:37 | ... := ...[0] | tst2.go:10:26:10:29 | data | provenance | | +| tst2.go:10:26:10:29 | data | tst2.go:10:22:10:30 | call to len | provenance | | +| tst2.go:14:2:14:29 | ... := ...[0] | tst2.go:15:26:15:29 | data | provenance | | +| tst2.go:15:26:15:29 | data | tst2.go:15:22:15:30 | call to len | provenance | | +| tst3.go:6:2:6:31 | ... := ...[0] | tst3.go:7:26:7:33 | jsonData | provenance | | +| tst3.go:6:2:6:31 | ... := ...[0] | tst3.go:24:20:24:27 | jsonData | provenance | | +| tst3.go:6:2:6:31 | ... := ...[0] | tst3.go:32:20:32:27 | jsonData | provenance | | +| tst3.go:7:26:7:33 | jsonData | tst3.go:7:22:7:34 | call to len | provenance | | +| tst3.go:24:20:24:27 | jsonData | tst3.go:24:16:24:28 | call to len | provenance | | +| tst3.go:32:20:32:27 | jsonData | tst3.go:32:16:32:28 | call to len | provenance | | +| tst.go:14:2:14:30 | ... = ...[0] | tst.go:15:26:15:33 | jsonData | provenance | | +| tst.go:15:26:15:33 | jsonData | tst.go:15:22:15:34 | call to len | provenance | | +| tst.go:20:2:20:31 | ... = ...[0] | tst.go:21:26:21:33 | jsonData | provenance | | +| tst.go:21:26:21:33 | jsonData | tst.go:21:22:21:34 | call to len | provenance | | +| tst.go:26:2:26:31 | ... = ...[0] | tst.go:27:30:27:37 | jsonData | provenance | | +| tst.go:27:30:27:37 | jsonData | tst.go:27:26:27:38 | call to len | provenance | | +| tst.go:34:2:34:30 | ... = ...[0] | tst.go:35:26:35:33 | jsonData | provenance | | +| tst.go:35:26:35:33 | jsonData | tst.go:35:22:35:34 | call to len | provenance | | nodes | AllocationSizeOverflow.go:6:2:6:33 | ... := ...[0] | semmle.label | ... := ...[0] | | AllocationSizeOverflow.go:10:10:10:22 | call to len | semmle.label | call to len | diff --git a/go/ql/test/query-tests/Security/CWE-209/StackTraceExposure.expected b/go/ql/test/query-tests/Security/CWE-209/StackTraceExposure.expected index 99042f7a497c..c62c6126648c 100644 --- a/go/ql/test/query-tests/Security/CWE-209/StackTraceExposure.expected +++ b/go/ql/test/query-tests/Security/CWE-209/StackTraceExposure.expected @@ -1,5 +1,5 @@ edges -| test.go:14:2:14:4 | definition of buf | test.go:17:10:17:12 | buf | +| test.go:14:2:14:4 | definition of buf | test.go:17:10:17:12 | buf | provenance | | nodes | test.go:14:2:14:4 | definition of buf | semmle.label | definition of buf | | test.go:17:10:17:12 | buf | semmle.label | buf | diff --git a/go/ql/test/query-tests/Security/CWE-312/CleartextLogging.expected b/go/ql/test/query-tests/Security/CWE-312/CleartextLogging.expected index c58d2d26d5e7..98daffabbaf8 100644 --- a/go/ql/test/query-tests/Security/CWE-312/CleartextLogging.expected +++ b/go/ql/test/query-tests/Security/CWE-312/CleartextLogging.expected @@ -1,56 +1,56 @@ edges -| klog.go:20:3:25:3 | range statement[1] | klog.go:20:13:20:19 | definition of headers | -| klog.go:20:13:20:19 | definition of headers | klog.go:21:27:21:33 | headers | -| klog.go:20:30:20:37 | selection of Header | klog.go:20:3:25:3 | range statement[1] | -| klog.go:21:4:24:4 | range statement[1] | klog.go:21:11:21:16 | definition of header | -| klog.go:21:11:21:16 | definition of header | klog.go:22:15:22:20 | header | -| klog.go:21:27:21:33 | headers | klog.go:21:4:24:4 | range statement[1] | -| klog.go:28:13:28:20 | selection of Header | klog.go:28:13:28:41 | call to Get | -| overrides.go:9:9:9:16 | password | overrides.go:13:14:13:23 | call to String | -| passwords.go:8:12:8:12 | definition of x | passwords.go:9:14:9:14 | x | -| passwords.go:30:8:30:15 | password | passwords.go:8:12:8:12 | definition of x | -| passwords.go:34:28:34:35 | password | passwords.go:34:14:34:35 | ...+... | -| passwords.go:36:2:36:5 | definition of obj1 | passwords.go:39:14:39:17 | obj1 | -| passwords.go:36:10:38:2 | struct literal | passwords.go:36:2:36:5 | definition of obj1 | -| passwords.go:37:13:37:13 | x | passwords.go:36:10:38:2 | struct literal | -| passwords.go:41:2:41:5 | definition of obj2 | passwords.go:44:14:44:17 | obj2 | -| passwords.go:41:10:43:2 | struct literal | passwords.go:41:2:41:5 | definition of obj2 | -| passwords.go:42:6:42:13 | password | passwords.go:41:10:43:2 | struct literal | -| passwords.go:46:6:46:9 | definition of obj3 | passwords.go:47:14:47:17 | obj3 | -| passwords.go:48:11:48:18 | password | passwords.go:46:6:46:9 | definition of obj3 | -| passwords.go:85:2:85:14 | definition of utilityObject | passwords.go:88:14:88:26 | utilityObject | -| passwords.go:85:19:87:2 | struct literal | passwords.go:85:2:85:14 | definition of utilityObject | -| passwords.go:86:16:86:36 | call to make | passwords.go:85:19:87:2 | struct literal | -| passwords.go:90:2:90:7 | definition of secret | passwords.go:91:23:91:28 | secret | -| passwords.go:90:12:90:19 | password | passwords.go:90:2:90:7 | definition of secret | -| passwords.go:101:33:101:40 | password | passwords.go:101:15:101:40 | ...+... | -| passwords.go:107:34:107:41 | password | passwords.go:107:16:107:41 | ...+... | -| passwords.go:112:33:112:40 | password | passwords.go:112:15:112:40 | ...+... | -| passwords.go:116:28:116:36 | password1 | passwords.go:116:28:116:45 | call to String | -| passwords.go:116:28:116:45 | call to String | passwords.go:116:14:116:45 | ...+... | -| passwords.go:118:2:118:7 | definition of config | passwords.go:125:14:125:19 | config | -| passwords.go:118:2:118:7 | definition of config [x] | passwords.go:126:14:126:19 | config [x] | -| passwords.go:118:2:118:7 | definition of config [y] | passwords.go:127:14:127:19 | config [y] | -| passwords.go:118:12:123:2 | struct literal | passwords.go:118:2:118:7 | definition of config | -| passwords.go:118:12:123:2 | struct literal [x] | passwords.go:118:2:118:7 | definition of config [x] | -| passwords.go:118:12:123:2 | struct literal [y] | passwords.go:118:2:118:7 | definition of config [y] | -| passwords.go:119:13:119:13 | x | passwords.go:118:12:123:2 | struct literal | -| passwords.go:121:13:121:20 | password | passwords.go:118:12:123:2 | struct literal | -| passwords.go:121:13:121:20 | password | passwords.go:118:12:123:2 | struct literal [x] | -| passwords.go:122:13:122:25 | call to getPassword | passwords.go:118:12:123:2 | struct literal | -| passwords.go:122:13:122:25 | call to getPassword | passwords.go:118:12:123:2 | struct literal [y] | -| passwords.go:126:14:126:19 | config [x] | passwords.go:126:14:126:21 | selection of x | -| passwords.go:127:14:127:19 | config [y] | passwords.go:127:14:127:21 | selection of y | -| protobuf.go:11:2:11:6 | definition of query [pointer, Description] | protobuf.go:12:2:12:6 | query [pointer, Description] | -| protobuf.go:11:2:11:6 | definition of query [pointer, Description] | protobuf.go:14:14:14:18 | query [pointer, Description] | -| protobuf.go:12:2:12:6 | implicit dereference [Description] | protobuf.go:11:2:11:6 | definition of query [pointer, Description] | -| protobuf.go:12:2:12:6 | query [pointer, Description] | protobuf.go:12:2:12:6 | implicit dereference [Description] | -| protobuf.go:12:22:12:29 | password | protobuf.go:12:2:12:6 | implicit dereference [Description] | -| protobuf.go:14:14:14:18 | query [pointer, Description] | protobuf.go:14:14:14:35 | call to GetDescription | -| protobuf.go:14:14:14:18 | query [pointer, Description] | protos/query/query.pb.go:117:7:117:7 | definition of x [pointer, Description] | -| protos/query/query.pb.go:117:7:117:7 | definition of x [pointer, Description] | protos/query/query.pb.go:119:10:119:10 | x [pointer, Description] | -| protos/query/query.pb.go:119:10:119:10 | implicit dereference [Description] | protos/query/query.pb.go:119:10:119:22 | selection of Description | -| protos/query/query.pb.go:119:10:119:10 | x [pointer, Description] | protos/query/query.pb.go:119:10:119:10 | implicit dereference [Description] | +| klog.go:20:3:25:3 | range statement[1] | klog.go:20:13:20:19 | definition of headers | provenance | | +| klog.go:20:13:20:19 | definition of headers | klog.go:21:27:21:33 | headers | provenance | | +| klog.go:20:30:20:37 | selection of Header | klog.go:20:3:25:3 | range statement[1] | provenance | | +| klog.go:21:4:24:4 | range statement[1] | klog.go:21:11:21:16 | definition of header | provenance | | +| klog.go:21:11:21:16 | definition of header | klog.go:22:15:22:20 | header | provenance | | +| klog.go:21:27:21:33 | headers | klog.go:21:4:24:4 | range statement[1] | provenance | | +| klog.go:28:13:28:20 | selection of Header | klog.go:28:13:28:41 | call to Get | provenance | | +| overrides.go:9:9:9:16 | password | overrides.go:13:14:13:23 | call to String | provenance | | +| passwords.go:8:12:8:12 | definition of x | passwords.go:9:14:9:14 | x | provenance | | +| passwords.go:30:8:30:15 | password | passwords.go:8:12:8:12 | definition of x | provenance | | +| passwords.go:34:28:34:35 | password | passwords.go:34:14:34:35 | ...+... | provenance | | +| passwords.go:36:2:36:5 | definition of obj1 | passwords.go:39:14:39:17 | obj1 | provenance | | +| passwords.go:36:10:38:2 | struct literal | passwords.go:36:2:36:5 | definition of obj1 | provenance | | +| passwords.go:37:13:37:13 | x | passwords.go:36:10:38:2 | struct literal | provenance | | +| passwords.go:41:2:41:5 | definition of obj2 | passwords.go:44:14:44:17 | obj2 | provenance | | +| passwords.go:41:10:43:2 | struct literal | passwords.go:41:2:41:5 | definition of obj2 | provenance | | +| passwords.go:42:6:42:13 | password | passwords.go:41:10:43:2 | struct literal | provenance | | +| passwords.go:46:6:46:9 | definition of obj3 | passwords.go:47:14:47:17 | obj3 | provenance | | +| passwords.go:48:11:48:18 | password | passwords.go:46:6:46:9 | definition of obj3 | provenance | | +| passwords.go:85:2:85:14 | definition of utilityObject | passwords.go:88:14:88:26 | utilityObject | provenance | | +| passwords.go:85:19:87:2 | struct literal | passwords.go:85:2:85:14 | definition of utilityObject | provenance | | +| passwords.go:86:16:86:36 | call to make | passwords.go:85:19:87:2 | struct literal | provenance | | +| passwords.go:90:2:90:7 | definition of secret | passwords.go:91:23:91:28 | secret | provenance | | +| passwords.go:90:12:90:19 | password | passwords.go:90:2:90:7 | definition of secret | provenance | | +| passwords.go:101:33:101:40 | password | passwords.go:101:15:101:40 | ...+... | provenance | | +| passwords.go:107:34:107:41 | password | passwords.go:107:16:107:41 | ...+... | provenance | | +| passwords.go:112:33:112:40 | password | passwords.go:112:15:112:40 | ...+... | provenance | | +| passwords.go:116:28:116:36 | password1 | passwords.go:116:28:116:45 | call to String | provenance | | +| passwords.go:116:28:116:45 | call to String | passwords.go:116:14:116:45 | ...+... | provenance | | +| passwords.go:118:2:118:7 | definition of config | passwords.go:125:14:125:19 | config | provenance | | +| passwords.go:118:2:118:7 | definition of config [x] | passwords.go:126:14:126:19 | config [x] | provenance | | +| passwords.go:118:2:118:7 | definition of config [y] | passwords.go:127:14:127:19 | config [y] | provenance | | +| passwords.go:118:12:123:2 | struct literal | passwords.go:118:2:118:7 | definition of config | provenance | | +| passwords.go:118:12:123:2 | struct literal [x] | passwords.go:118:2:118:7 | definition of config [x] | provenance | | +| passwords.go:118:12:123:2 | struct literal [y] | passwords.go:118:2:118:7 | definition of config [y] | provenance | | +| passwords.go:119:13:119:13 | x | passwords.go:118:12:123:2 | struct literal | provenance | | +| passwords.go:121:13:121:20 | password | passwords.go:118:12:123:2 | struct literal | provenance | | +| passwords.go:121:13:121:20 | password | passwords.go:118:12:123:2 | struct literal [x] | provenance | | +| passwords.go:122:13:122:25 | call to getPassword | passwords.go:118:12:123:2 | struct literal | provenance | | +| passwords.go:122:13:122:25 | call to getPassword | passwords.go:118:12:123:2 | struct literal [y] | provenance | | +| passwords.go:126:14:126:19 | config [x] | passwords.go:126:14:126:21 | selection of x | provenance | | +| passwords.go:127:14:127:19 | config [y] | passwords.go:127:14:127:21 | selection of y | provenance | | +| protobuf.go:11:2:11:6 | definition of query [pointer, Description] | protobuf.go:12:2:12:6 | query [pointer, Description] | provenance | | +| protobuf.go:11:2:11:6 | definition of query [pointer, Description] | protobuf.go:14:14:14:18 | query [pointer, Description] | provenance | | +| protobuf.go:12:2:12:6 | implicit dereference [Description] | protobuf.go:11:2:11:6 | definition of query [pointer, Description] | provenance | | +| protobuf.go:12:2:12:6 | query [pointer, Description] | protobuf.go:12:2:12:6 | implicit dereference [Description] | provenance | | +| protobuf.go:12:22:12:29 | password | protobuf.go:12:2:12:6 | implicit dereference [Description] | provenance | | +| protobuf.go:14:14:14:18 | query [pointer, Description] | protobuf.go:14:14:14:35 | call to GetDescription | provenance | | +| protobuf.go:14:14:14:18 | query [pointer, Description] | protos/query/query.pb.go:117:7:117:7 | definition of x [pointer, Description] | provenance | | +| protos/query/query.pb.go:117:7:117:7 | definition of x [pointer, Description] | protos/query/query.pb.go:119:10:119:10 | x [pointer, Description] | provenance | | +| protos/query/query.pb.go:119:10:119:10 | implicit dereference [Description] | protos/query/query.pb.go:119:10:119:22 | selection of Description | provenance | | +| protos/query/query.pb.go:119:10:119:10 | x [pointer, Description] | protos/query/query.pb.go:119:10:119:10 | implicit dereference [Description] | provenance | | nodes | klog.go:20:3:25:3 | range statement[1] | semmle.label | range statement[1] | | klog.go:20:13:20:19 | definition of headers | semmle.label | definition of headers | diff --git a/go/ql/test/query-tests/Security/CWE-322/InsecureHostKeyCallback.expected b/go/ql/test/query-tests/Security/CWE-322/InsecureHostKeyCallback.expected index 2376ab7a7cf4..b81d24f26654 100644 --- a/go/ql/test/query-tests/Security/CWE-322/InsecureHostKeyCallback.expected +++ b/go/ql/test/query-tests/Security/CWE-322/InsecureHostKeyCallback.expected @@ -1,20 +1,20 @@ edges -| InsecureHostKeyCallbackExample.go:16:4:18:4 | function literal | InsecureHostKeyCallbackExample.go:15:20:18:5 | type conversion | -| InsecureHostKeyCallbackExample.go:31:14:34:4 | type conversion | InsecureHostKeyCallbackExample.go:39:20:39:27 | callback | -| InsecureHostKeyCallbackExample.go:32:3:34:3 | function literal | InsecureHostKeyCallbackExample.go:31:14:34:4 | type conversion | -| InsecureHostKeyCallbackExample.go:45:3:47:3 | function literal | InsecureHostKeyCallbackExample.go:52:20:52:48 | type conversion | -| InsecureHostKeyCallbackExample.go:58:39:58:46 | definition of callback | InsecureHostKeyCallbackExample.go:62:20:62:27 | callback | -| InsecureHostKeyCallbackExample.go:68:48:68:55 | definition of callback | InsecureHostKeyCallbackExample.go:78:28:78:35 | callback | -| InsecureHostKeyCallbackExample.go:94:3:94:43 | ... := ...[0] | InsecureHostKeyCallbackExample.go:95:28:95:35 | callback | -| InsecureHostKeyCallbackExample.go:102:22:105:4 | type conversion | InsecureHostKeyCallbackExample.go:107:35:107:50 | insecureCallback | -| InsecureHostKeyCallbackExample.go:103:3:105:3 | function literal | InsecureHostKeyCallbackExample.go:102:22:105:4 | type conversion | -| InsecureHostKeyCallbackExample.go:107:35:107:50 | insecureCallback | InsecureHostKeyCallbackExample.go:58:39:58:46 | definition of callback | -| InsecureHostKeyCallbackExample.go:109:31:115:4 | type conversion | InsecureHostKeyCallbackExample.go:117:35:117:59 | potentiallySecureCallback | -| InsecureHostKeyCallbackExample.go:109:31:115:4 | type conversion | InsecureHostKeyCallbackExample.go:120:44:120:68 | potentiallySecureCallback | -| InsecureHostKeyCallbackExample.go:110:3:115:3 | function literal | InsecureHostKeyCallbackExample.go:109:31:115:4 | type conversion | -| InsecureHostKeyCallbackExample.go:117:35:117:59 | potentiallySecureCallback | InsecureHostKeyCallbackExample.go:58:39:58:46 | definition of callback | -| InsecureHostKeyCallbackExample.go:118:35:118:61 | call to InsecureIgnoreHostKey | InsecureHostKeyCallbackExample.go:58:39:58:46 | definition of callback | -| InsecureHostKeyCallbackExample.go:120:44:120:68 | potentiallySecureCallback | InsecureHostKeyCallbackExample.go:68:48:68:55 | definition of callback | +| InsecureHostKeyCallbackExample.go:16:4:18:4 | function literal | InsecureHostKeyCallbackExample.go:15:20:18:5 | type conversion | provenance | | +| InsecureHostKeyCallbackExample.go:31:14:34:4 | type conversion | InsecureHostKeyCallbackExample.go:39:20:39:27 | callback | provenance | | +| InsecureHostKeyCallbackExample.go:32:3:34:3 | function literal | InsecureHostKeyCallbackExample.go:31:14:34:4 | type conversion | provenance | | +| InsecureHostKeyCallbackExample.go:45:3:47:3 | function literal | InsecureHostKeyCallbackExample.go:52:20:52:48 | type conversion | provenance | | +| InsecureHostKeyCallbackExample.go:58:39:58:46 | definition of callback | InsecureHostKeyCallbackExample.go:62:20:62:27 | callback | provenance | | +| InsecureHostKeyCallbackExample.go:68:48:68:55 | definition of callback | InsecureHostKeyCallbackExample.go:78:28:78:35 | callback | provenance | | +| InsecureHostKeyCallbackExample.go:94:3:94:43 | ... := ...[0] | InsecureHostKeyCallbackExample.go:95:28:95:35 | callback | provenance | | +| InsecureHostKeyCallbackExample.go:102:22:105:4 | type conversion | InsecureHostKeyCallbackExample.go:107:35:107:50 | insecureCallback | provenance | | +| InsecureHostKeyCallbackExample.go:103:3:105:3 | function literal | InsecureHostKeyCallbackExample.go:102:22:105:4 | type conversion | provenance | | +| InsecureHostKeyCallbackExample.go:107:35:107:50 | insecureCallback | InsecureHostKeyCallbackExample.go:58:39:58:46 | definition of callback | provenance | | +| InsecureHostKeyCallbackExample.go:109:31:115:4 | type conversion | InsecureHostKeyCallbackExample.go:117:35:117:59 | potentiallySecureCallback | provenance | | +| InsecureHostKeyCallbackExample.go:109:31:115:4 | type conversion | InsecureHostKeyCallbackExample.go:120:44:120:68 | potentiallySecureCallback | provenance | | +| InsecureHostKeyCallbackExample.go:110:3:115:3 | function literal | InsecureHostKeyCallbackExample.go:109:31:115:4 | type conversion | provenance | | +| InsecureHostKeyCallbackExample.go:117:35:117:59 | potentiallySecureCallback | InsecureHostKeyCallbackExample.go:58:39:58:46 | definition of callback | provenance | | +| InsecureHostKeyCallbackExample.go:118:35:118:61 | call to InsecureIgnoreHostKey | InsecureHostKeyCallbackExample.go:58:39:58:46 | definition of callback | provenance | | +| InsecureHostKeyCallbackExample.go:120:44:120:68 | potentiallySecureCallback | InsecureHostKeyCallbackExample.go:68:48:68:55 | definition of callback | provenance | | nodes | InsecureHostKeyCallbackExample.go:15:20:18:5 | type conversion | semmle.label | type conversion | | InsecureHostKeyCallbackExample.go:16:4:18:4 | function literal | semmle.label | function literal | diff --git a/go/ql/test/query-tests/Security/CWE-326/InsufficientKeySize.expected b/go/ql/test/query-tests/Security/CWE-326/InsufficientKeySize.expected index fb1058af01ce..556b1722b59b 100644 --- a/go/ql/test/query-tests/Security/CWE-326/InsufficientKeySize.expected +++ b/go/ql/test/query-tests/Security/CWE-326/InsufficientKeySize.expected @@ -1,10 +1,10 @@ edges -| InsufficientKeySize.go:13:10:13:13 | 1024 | InsufficientKeySize.go:14:31:14:34 | size | -| InsufficientKeySize.go:18:7:18:10 | 1024 | InsufficientKeySize.go:25:11:25:14 | definition of size | -| InsufficientKeySize.go:25:11:25:14 | definition of size | InsufficientKeySize.go:26:31:26:34 | size | -| InsufficientKeySize.go:30:13:30:16 | 1024 | InsufficientKeySize.go:32:32:32:38 | keyBits | -| InsufficientKeySize.go:44:13:44:16 | 1024 | InsufficientKeySize.go:47:32:47:38 | keyBits | -| InsufficientKeySize.go:61:21:61:24 | 1024 | InsufficientKeySize.go:67:31:67:37 | keyBits | +| InsufficientKeySize.go:13:10:13:13 | 1024 | InsufficientKeySize.go:14:31:14:34 | size | provenance | | +| InsufficientKeySize.go:18:7:18:10 | 1024 | InsufficientKeySize.go:25:11:25:14 | definition of size | provenance | | +| InsufficientKeySize.go:25:11:25:14 | definition of size | InsufficientKeySize.go:26:31:26:34 | size | provenance | | +| InsufficientKeySize.go:30:13:30:16 | 1024 | InsufficientKeySize.go:32:32:32:38 | keyBits | provenance | | +| InsufficientKeySize.go:44:13:44:16 | 1024 | InsufficientKeySize.go:47:32:47:38 | keyBits | provenance | | +| InsufficientKeySize.go:61:21:61:24 | 1024 | InsufficientKeySize.go:67:31:67:37 | keyBits | provenance | | nodes | InsufficientKeySize.go:9:31:9:34 | 1024 | semmle.label | 1024 | | InsufficientKeySize.go:13:10:13:13 | 1024 | semmle.label | 1024 | diff --git a/go/ql/test/query-tests/Security/CWE-327/UnsafeTLS.expected b/go/ql/test/query-tests/Security/CWE-327/UnsafeTLS.expected index e47a47684655..c0dc967a16f1 100644 --- a/go/ql/test/query-tests/Security/CWE-327/UnsafeTLS.expected +++ b/go/ql/test/query-tests/Security/CWE-327/UnsafeTLS.expected @@ -1,44 +1,44 @@ edges -| UnsafeTLS.go:131:14:131:29 | selection of VersionTLS13 | UnsafeTLS.go:136:16:136:22 | version | -| UnsafeTLS.go:133:14:133:29 | selection of VersionSSL30 | UnsafeTLS.go:136:16:136:22 | version | -| UnsafeTLS.go:260:5:260:32 | selection of TLS_RSA_WITH_RC4_128_SHA | UnsafeTLS.go:259:18:266:4 | slice literal | -| UnsafeTLS.go:261:5:261:39 | selection of TLS_RSA_WITH_AES_128_CBC_SHA256 | UnsafeTLS.go:259:18:266:4 | slice literal | -| UnsafeTLS.go:262:5:262:40 | selection of TLS_ECDHE_ECDSA_WITH_RC4_128_SHA | UnsafeTLS.go:259:18:266:4 | slice literal | -| UnsafeTLS.go:263:5:263:38 | selection of TLS_ECDHE_RSA_WITH_RC4_128_SHA | UnsafeTLS.go:259:18:266:4 | slice literal | -| UnsafeTLS.go:264:5:264:47 | selection of TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 | UnsafeTLS.go:259:18:266:4 | slice literal | -| UnsafeTLS.go:265:5:265:45 | selection of TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 | UnsafeTLS.go:259:18:266:4 | slice literal | -| UnsafeTLS.go:273:5:273:32 | selection of TLS_RSA_WITH_RC4_128_SHA | UnsafeTLS.go:272:18:274:4 | slice literal | -| UnsafeTLS.go:281:5:281:39 | selection of TLS_RSA_WITH_AES_128_CBC_SHA256 | UnsafeTLS.go:280:18:282:4 | slice literal | -| UnsafeTLS.go:289:5:289:40 | selection of TLS_ECDHE_ECDSA_WITH_RC4_128_SHA | UnsafeTLS.go:288:18:290:4 | slice literal | -| UnsafeTLS.go:297:5:297:38 | selection of TLS_ECDHE_RSA_WITH_RC4_128_SHA | UnsafeTLS.go:296:18:298:4 | slice literal | -| UnsafeTLS.go:305:5:305:47 | selection of TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 | UnsafeTLS.go:304:18:306:4 | slice literal | -| UnsafeTLS.go:313:5:313:45 | selection of TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 | UnsafeTLS.go:312:18:314:4 | slice literal | -| UnsafeTLS.go:329:53:329:93 | selection of TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 | UnsafeTLS.go:329:25:329:94 | call to append | -| UnsafeTLS.go:334:13:334:38 | call to InsecureCipherSuites | UnsafeTLS.go:336:54:336:57 | selection of ID | -| UnsafeTLS.go:336:54:336:57 | selection of ID | UnsafeTLS.go:336:26:336:58 | call to append | -| UnsafeTLS.go:342:13:342:38 | call to InsecureCipherSuites | UnsafeTLS.go:344:40:344:43 | selection of ID | -| UnsafeTLS.go:344:19:344:44 | call to append | UnsafeTLS.go:344:26:344:37 | cipherSuites | -| UnsafeTLS.go:344:19:344:44 | call to append | UnsafeTLS.go:346:25:346:36 | cipherSuites | -| UnsafeTLS.go:344:26:344:37 | cipherSuites | UnsafeTLS.go:344:19:344:44 | call to append | -| UnsafeTLS.go:344:40:344:43 | selection of ID | UnsafeTLS.go:344:19:344:44 | call to append | -| UnsafeTLS.go:351:13:351:38 | call to InsecureCipherSuites | UnsafeTLS.go:353:40:353:51 | selection of ID | -| UnsafeTLS.go:353:19:353:52 | call to append | UnsafeTLS.go:353:26:353:37 | cipherSuites | -| UnsafeTLS.go:353:19:353:52 | call to append | UnsafeTLS.go:355:25:355:36 | cipherSuites | -| UnsafeTLS.go:353:26:353:37 | cipherSuites | UnsafeTLS.go:353:19:353:52 | call to append | -| UnsafeTLS.go:353:40:353:51 | selection of ID | UnsafeTLS.go:353:19:353:52 | call to append | -| UnsafeTLS.go:363:5:363:47 | selection of TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 | UnsafeTLS.go:362:18:364:4 | slice literal | -| UnsafeTLS.go:371:5:371:47 | selection of TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 | UnsafeTLS.go:370:18:372:4 | slice literal | -| UnsafeTLS.go:379:5:379:47 | selection of TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 | UnsafeTLS.go:378:18:380:4 | slice literal | -| UnsafeTLS.go:387:5:387:47 | selection of TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 | UnsafeTLS.go:386:18:388:4 | slice literal | -| UnsafeTLS.go:395:5:395:47 | selection of TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 | UnsafeTLS.go:394:18:396:4 | slice literal | -| UnsafeTLS.go:403:4:403:46 | selection of TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 | UnsafeTLS.go:402:33:404:3 | slice literal | -| UnsafeTLS.go:410:4:410:46 | selection of TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 | UnsafeTLS.go:409:31:411:3 | slice literal | -| UnsafeTLS.go:419:6:419:48 | selection of TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 | UnsafeTLS.go:418:19:420:5 | slice literal | -| UnsafeTLS.go:426:6:426:48 | selection of TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 | UnsafeTLS.go:425:19:427:5 | slice literal | -| UnsafeTLS.go:433:6:433:48 | selection of TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 | UnsafeTLS.go:432:19:434:5 | slice literal | -| UnsafeTLS.go:443:6:443:48 | selection of TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 | UnsafeTLS.go:442:19:444:5 | slice literal | -| UnsafeTLS.go:450:6:450:48 | selection of TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 | UnsafeTLS.go:449:19:451:5 | slice literal | -| UnsafeTLS.go:457:6:457:48 | selection of TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 | UnsafeTLS.go:456:19:458:5 | slice literal | +| UnsafeTLS.go:131:14:131:29 | selection of VersionTLS13 | UnsafeTLS.go:136:16:136:22 | version | provenance | | +| UnsafeTLS.go:133:14:133:29 | selection of VersionSSL30 | UnsafeTLS.go:136:16:136:22 | version | provenance | | +| UnsafeTLS.go:260:5:260:32 | selection of TLS_RSA_WITH_RC4_128_SHA | UnsafeTLS.go:259:18:266:4 | slice literal | provenance | | +| UnsafeTLS.go:261:5:261:39 | selection of TLS_RSA_WITH_AES_128_CBC_SHA256 | UnsafeTLS.go:259:18:266:4 | slice literal | provenance | | +| UnsafeTLS.go:262:5:262:40 | selection of TLS_ECDHE_ECDSA_WITH_RC4_128_SHA | UnsafeTLS.go:259:18:266:4 | slice literal | provenance | | +| UnsafeTLS.go:263:5:263:38 | selection of TLS_ECDHE_RSA_WITH_RC4_128_SHA | UnsafeTLS.go:259:18:266:4 | slice literal | provenance | | +| UnsafeTLS.go:264:5:264:47 | selection of TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 | UnsafeTLS.go:259:18:266:4 | slice literal | provenance | | +| UnsafeTLS.go:265:5:265:45 | selection of TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 | UnsafeTLS.go:259:18:266:4 | slice literal | provenance | | +| UnsafeTLS.go:273:5:273:32 | selection of TLS_RSA_WITH_RC4_128_SHA | UnsafeTLS.go:272:18:274:4 | slice literal | provenance | | +| UnsafeTLS.go:281:5:281:39 | selection of TLS_RSA_WITH_AES_128_CBC_SHA256 | UnsafeTLS.go:280:18:282:4 | slice literal | provenance | | +| UnsafeTLS.go:289:5:289:40 | selection of TLS_ECDHE_ECDSA_WITH_RC4_128_SHA | UnsafeTLS.go:288:18:290:4 | slice literal | provenance | | +| UnsafeTLS.go:297:5:297:38 | selection of TLS_ECDHE_RSA_WITH_RC4_128_SHA | UnsafeTLS.go:296:18:298:4 | slice literal | provenance | | +| UnsafeTLS.go:305:5:305:47 | selection of TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 | UnsafeTLS.go:304:18:306:4 | slice literal | provenance | | +| UnsafeTLS.go:313:5:313:45 | selection of TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 | UnsafeTLS.go:312:18:314:4 | slice literal | provenance | | +| UnsafeTLS.go:329:53:329:93 | selection of TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 | UnsafeTLS.go:329:25:329:94 | call to append | provenance | | +| UnsafeTLS.go:334:13:334:38 | call to InsecureCipherSuites | UnsafeTLS.go:336:54:336:57 | selection of ID | provenance | | +| UnsafeTLS.go:336:54:336:57 | selection of ID | UnsafeTLS.go:336:26:336:58 | call to append | provenance | | +| UnsafeTLS.go:342:13:342:38 | call to InsecureCipherSuites | UnsafeTLS.go:344:40:344:43 | selection of ID | provenance | | +| UnsafeTLS.go:344:19:344:44 | call to append | UnsafeTLS.go:344:26:344:37 | cipherSuites | provenance | | +| UnsafeTLS.go:344:19:344:44 | call to append | UnsafeTLS.go:346:25:346:36 | cipherSuites | provenance | | +| UnsafeTLS.go:344:26:344:37 | cipherSuites | UnsafeTLS.go:344:19:344:44 | call to append | provenance | | +| UnsafeTLS.go:344:40:344:43 | selection of ID | UnsafeTLS.go:344:19:344:44 | call to append | provenance | | +| UnsafeTLS.go:351:13:351:38 | call to InsecureCipherSuites | UnsafeTLS.go:353:40:353:51 | selection of ID | provenance | | +| UnsafeTLS.go:353:19:353:52 | call to append | UnsafeTLS.go:353:26:353:37 | cipherSuites | provenance | | +| UnsafeTLS.go:353:19:353:52 | call to append | UnsafeTLS.go:355:25:355:36 | cipherSuites | provenance | | +| UnsafeTLS.go:353:26:353:37 | cipherSuites | UnsafeTLS.go:353:19:353:52 | call to append | provenance | | +| UnsafeTLS.go:353:40:353:51 | selection of ID | UnsafeTLS.go:353:19:353:52 | call to append | provenance | | +| UnsafeTLS.go:363:5:363:47 | selection of TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 | UnsafeTLS.go:362:18:364:4 | slice literal | provenance | | +| UnsafeTLS.go:371:5:371:47 | selection of TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 | UnsafeTLS.go:370:18:372:4 | slice literal | provenance | | +| UnsafeTLS.go:379:5:379:47 | selection of TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 | UnsafeTLS.go:378:18:380:4 | slice literal | provenance | | +| UnsafeTLS.go:387:5:387:47 | selection of TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 | UnsafeTLS.go:386:18:388:4 | slice literal | provenance | | +| UnsafeTLS.go:395:5:395:47 | selection of TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 | UnsafeTLS.go:394:18:396:4 | slice literal | provenance | | +| UnsafeTLS.go:403:4:403:46 | selection of TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 | UnsafeTLS.go:402:33:404:3 | slice literal | provenance | | +| UnsafeTLS.go:410:4:410:46 | selection of TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 | UnsafeTLS.go:409:31:411:3 | slice literal | provenance | | +| UnsafeTLS.go:419:6:419:48 | selection of TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 | UnsafeTLS.go:418:19:420:5 | slice literal | provenance | | +| UnsafeTLS.go:426:6:426:48 | selection of TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 | UnsafeTLS.go:425:19:427:5 | slice literal | provenance | | +| UnsafeTLS.go:433:6:433:48 | selection of TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 | UnsafeTLS.go:432:19:434:5 | slice literal | provenance | | +| UnsafeTLS.go:443:6:443:48 | selection of TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 | UnsafeTLS.go:442:19:444:5 | slice literal | provenance | | +| UnsafeTLS.go:450:6:450:48 | selection of TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 | UnsafeTLS.go:449:19:451:5 | slice literal | provenance | | +| UnsafeTLS.go:457:6:457:48 | selection of TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 | UnsafeTLS.go:456:19:458:5 | slice literal | provenance | | nodes | UnsafeTLS.go:21:23:21:23 | 0 | semmle.label | 0 | | UnsafeTLS.go:25:23:25:23 | 0 | semmle.label | 0 | diff --git a/go/ql/test/query-tests/Security/CWE-327/WeakCryptoAlgorithm.expected b/go/ql/test/query-tests/Security/CWE-327/WeakCryptoAlgorithm.expected index a107cd75df01..53cfd40145d3 100644 --- a/go/ql/test/query-tests/Security/CWE-327/WeakCryptoAlgorithm.expected +++ b/go/ql/test/query-tests/Security/CWE-327/WeakCryptoAlgorithm.expected @@ -1,8 +1,8 @@ edges -| Crypto.go:16:9:16:16 | password | Crypto.go:19:25:19:27 | buf | -| Crypto.go:16:9:16:16 | password | Crypto.go:22:10:22:12 | buf | -| Crypto.go:16:9:16:16 | password | Crypto.go:25:16:25:18 | buf | -| Crypto.go:16:9:16:16 | password | Crypto.go:28:11:28:13 | buf | +| Crypto.go:16:9:16:16 | password | Crypto.go:19:25:19:27 | buf | provenance | | +| Crypto.go:16:9:16:16 | password | Crypto.go:22:10:22:12 | buf | provenance | | +| Crypto.go:16:9:16:16 | password | Crypto.go:25:16:25:18 | buf | provenance | | +| Crypto.go:16:9:16:16 | password | Crypto.go:28:11:28:13 | buf | provenance | | nodes | Crypto.go:16:9:16:16 | password | semmle.label | password | | Crypto.go:19:25:19:27 | buf | semmle.label | buf | diff --git a/go/ql/test/query-tests/Security/CWE-338/InsecureRandomness/InsecureRandomness.expected b/go/ql/test/query-tests/Security/CWE-338/InsecureRandomness/InsecureRandomness.expected index 2ba01cedce0f..2e92d105daae 100644 --- a/go/ql/test/query-tests/Security/CWE-338/InsecureRandomness/InsecureRandomness.expected +++ b/go/ql/test/query-tests/Security/CWE-338/InsecureRandomness/InsecureRandomness.expected @@ -1,19 +1,19 @@ edges -| sample.go:15:10:15:64 | call to Sum256 | sample.go:16:9:16:15 | slice expression | -| sample.go:15:24:15:63 | type conversion | sample.go:15:10:15:64 | call to Sum256 | -| sample.go:15:31:15:62 | []type{args} [array] | sample.go:15:31:15:62 | call to Sprintf | -| sample.go:15:31:15:62 | call to Sprintf | sample.go:15:24:15:63 | type conversion | -| sample.go:15:49:15:61 | call to Uint32 | sample.go:15:31:15:62 | []type{args} [array] | -| sample.go:15:49:15:61 | call to Uint32 | sample.go:15:31:15:62 | call to Sprintf | -| sample.go:16:9:16:15 | slice expression | sample.go:26:25:26:30 | call to Guid | -| sample.go:33:2:33:6 | definition of nonce | sample.go:37:25:37:29 | nonce | -| sample.go:33:2:33:6 | definition of nonce | sample.go:37:32:37:36 | nonce | -| sample.go:34:12:34:40 | call to New | sample.go:35:14:35:19 | random | -| sample.go:35:14:35:19 | random | sample.go:33:2:33:6 | definition of nonce | -| sample.go:55:17:55:42 | call to Intn | sample.go:56:29:56:38 | randNumber | -| sample.go:56:11:56:40 | type conversion | sample.go:58:32:58:43 | type conversion | -| sample.go:56:18:56:39 | index expression | sample.go:56:11:56:40 | type conversion | -| sample.go:56:29:56:38 | randNumber | sample.go:56:18:56:39 | index expression | +| sample.go:15:10:15:64 | call to Sum256 | sample.go:16:9:16:15 | slice expression | provenance | | +| sample.go:15:24:15:63 | type conversion | sample.go:15:10:15:64 | call to Sum256 | provenance | | +| sample.go:15:31:15:62 | []type{args} [array] | sample.go:15:31:15:62 | call to Sprintf | provenance | | +| sample.go:15:31:15:62 | call to Sprintf | sample.go:15:24:15:63 | type conversion | provenance | | +| sample.go:15:49:15:61 | call to Uint32 | sample.go:15:31:15:62 | []type{args} [array] | provenance | | +| sample.go:15:49:15:61 | call to Uint32 | sample.go:15:31:15:62 | call to Sprintf | provenance | | +| sample.go:16:9:16:15 | slice expression | sample.go:26:25:26:30 | call to Guid | provenance | | +| sample.go:33:2:33:6 | definition of nonce | sample.go:37:25:37:29 | nonce | provenance | | +| sample.go:33:2:33:6 | definition of nonce | sample.go:37:32:37:36 | nonce | provenance | | +| sample.go:34:12:34:40 | call to New | sample.go:35:14:35:19 | random | provenance | | +| sample.go:35:14:35:19 | random | sample.go:33:2:33:6 | definition of nonce | provenance | | +| sample.go:55:17:55:42 | call to Intn | sample.go:56:29:56:38 | randNumber | provenance | | +| sample.go:56:11:56:40 | type conversion | sample.go:58:32:58:43 | type conversion | provenance | | +| sample.go:56:18:56:39 | index expression | sample.go:56:11:56:40 | type conversion | provenance | | +| sample.go:56:29:56:38 | randNumber | sample.go:56:18:56:39 | index expression | provenance | | nodes | InsecureRandomness.go:12:18:12:40 | call to Intn | semmle.label | call to Intn | | sample.go:15:10:15:64 | call to Sum256 | semmle.label | call to Sum256 | diff --git a/go/ql/test/query-tests/Security/CWE-352/ConstantOauth2State.expected b/go/ql/test/query-tests/Security/CWE-352/ConstantOauth2State.expected index 9ef4c6d850ed..d1c82f01713f 100644 --- a/go/ql/test/query-tests/Security/CWE-352/ConstantOauth2State.expected +++ b/go/ql/test/query-tests/Security/CWE-352/ConstantOauth2State.expected @@ -1,16 +1,16 @@ edges -| ConstantOauth2State.go:20:26:20:32 | "state" | ConstantOauth2State.go:50:26:50:41 | stateStringConst | -| ConstantOauth2State.go:20:26:20:32 | "state" | ConstantOauth2State.go:147:26:147:41 | stateStringConst | -| ConstantOauth2State.go:20:26:20:32 | "state" | ConstantOauth2State.go:169:26:169:41 | stateStringConst | -| ConstantOauth2State.go:20:26:20:32 | "state" | ConstantOauth2State.go:191:26:191:41 | stateStringConst | -| ConstantOauth2State.go:20:26:20:32 | "state" | ConstantOauth2State.go:210:26:210:41 | stateStringConst | -| ConstantOauth2State.go:20:26:20:32 | "state" | ConstantOauth2State.go:232:26:232:41 | stateStringConst | -| ConstantOauth2State.go:20:26:20:32 | "state" | ConstantOauth2State.go:249:26:249:41 | stateStringConst | -| ConstantOauth2State.go:20:26:20:32 | "state" | ConstantOauth2State.go:266:26:266:41 | stateStringConst | -| ConstantOauth2State.go:20:26:20:32 | "state" | ConstantOauth2State.go:282:26:282:41 | stateStringConst | -| ConstantOauth2State.go:22:22:22:28 | "state" | ConstantOauth2State.go:65:26:65:39 | stateStringVar | -| ConstantOauth2State.go:80:11:80:25 | call to newFixedState | ConstantOauth2State.go:81:26:81:30 | state | -| ConstantOauth2State.go:86:9:86:15 | "state" | ConstantOauth2State.go:80:11:80:25 | call to newFixedState | +| ConstantOauth2State.go:20:26:20:32 | "state" | ConstantOauth2State.go:50:26:50:41 | stateStringConst | provenance | | +| ConstantOauth2State.go:20:26:20:32 | "state" | ConstantOauth2State.go:147:26:147:41 | stateStringConst | provenance | | +| ConstantOauth2State.go:20:26:20:32 | "state" | ConstantOauth2State.go:169:26:169:41 | stateStringConst | provenance | | +| ConstantOauth2State.go:20:26:20:32 | "state" | ConstantOauth2State.go:191:26:191:41 | stateStringConst | provenance | | +| ConstantOauth2State.go:20:26:20:32 | "state" | ConstantOauth2State.go:210:26:210:41 | stateStringConst | provenance | | +| ConstantOauth2State.go:20:26:20:32 | "state" | ConstantOauth2State.go:232:26:232:41 | stateStringConst | provenance | | +| ConstantOauth2State.go:20:26:20:32 | "state" | ConstantOauth2State.go:249:26:249:41 | stateStringConst | provenance | | +| ConstantOauth2State.go:20:26:20:32 | "state" | ConstantOauth2State.go:266:26:266:41 | stateStringConst | provenance | | +| ConstantOauth2State.go:20:26:20:32 | "state" | ConstantOauth2State.go:282:26:282:41 | stateStringConst | provenance | | +| ConstantOauth2State.go:22:22:22:28 | "state" | ConstantOauth2State.go:65:26:65:39 | stateStringVar | provenance | | +| ConstantOauth2State.go:80:11:80:25 | call to newFixedState | ConstantOauth2State.go:81:26:81:30 | state | provenance | | +| ConstantOauth2State.go:86:9:86:15 | "state" | ConstantOauth2State.go:80:11:80:25 | call to newFixedState | provenance | | nodes | ConstantOauth2State.go:20:26:20:32 | "state" | semmle.label | "state" | | ConstantOauth2State.go:22:22:22:28 | "state" | semmle.label | "state" | diff --git a/go/ql/test/query-tests/Security/CWE-601/BadRedirectCheck/BadRedirectCheck.expected b/go/ql/test/query-tests/Security/CWE-601/BadRedirectCheck/BadRedirectCheck.expected index da1b8886574b..20569426bfac 100644 --- a/go/ql/test/query-tests/Security/CWE-601/BadRedirectCheck/BadRedirectCheck.expected +++ b/go/ql/test/query-tests/Security/CWE-601/BadRedirectCheck/BadRedirectCheck.expected @@ -1,23 +1,23 @@ edges -| BadRedirectCheck.go:3:18:3:22 | argument corresponding to redir | BadRedirectCheck.go:5:10:5:14 | redir | -| BadRedirectCheck.go:3:18:3:22 | definition of redir | BadRedirectCheck.go:5:10:5:14 | redir | -| BadRedirectCheck.go:5:10:5:14 | redir | main.go:11:25:11:45 | call to sanitizeUrl | -| cves.go:14:23:14:25 | argument corresponding to url | cves.go:16:26:16:28 | url | -| cves.go:33:14:33:34 | call to Get | cves.go:37:25:37:32 | redirect | -| cves.go:41:14:41:34 | call to Get | cves.go:45:25:45:32 | redirect | -| main.go:10:18:10:25 | argument corresponding to redirect | main.go:11:37:11:44 | redirect | -| main.go:11:37:11:44 | redirect | BadRedirectCheck.go:3:18:3:22 | definition of redir | -| main.go:11:37:11:44 | redirect | main.go:11:25:11:45 | call to sanitizeUrl | -| main.go:32:24:32:26 | argument corresponding to url | main.go:34:26:34:28 | url | -| main.go:68:17:68:24 | argument corresponding to redirect | main.go:73:20:73:27 | redirect | -| main.go:68:17:68:24 | definition of redirect | main.go:73:20:73:27 | redirect | -| main.go:73:9:73:28 | call to Clean | main.go:77:25:77:39 | call to getTarget1 | -| main.go:73:20:73:27 | redirect | main.go:73:9:73:28 | call to Clean | -| main.go:73:20:73:27 | redirect | main.go:73:9:73:28 | call to Clean | -| main.go:76:19:76:21 | argument corresponding to url | main.go:77:36:77:38 | url | -| main.go:77:36:77:38 | url | main.go:68:17:68:24 | definition of redirect | -| main.go:77:36:77:38 | url | main.go:77:25:77:39 | call to getTarget1 | -| main.go:87:9:87:14 | selection of Path | main.go:91:25:91:39 | call to getTarget2 | +| BadRedirectCheck.go:3:18:3:22 | argument corresponding to redir | BadRedirectCheck.go:5:10:5:14 | redir | provenance | | +| BadRedirectCheck.go:3:18:3:22 | definition of redir | BadRedirectCheck.go:5:10:5:14 | redir | provenance | | +| BadRedirectCheck.go:5:10:5:14 | redir | main.go:11:25:11:45 | call to sanitizeUrl | provenance | | +| cves.go:14:23:14:25 | argument corresponding to url | cves.go:16:26:16:28 | url | provenance | | +| cves.go:33:14:33:34 | call to Get | cves.go:37:25:37:32 | redirect | provenance | | +| cves.go:41:14:41:34 | call to Get | cves.go:45:25:45:32 | redirect | provenance | | +| main.go:10:18:10:25 | argument corresponding to redirect | main.go:11:37:11:44 | redirect | provenance | | +| main.go:11:37:11:44 | redirect | BadRedirectCheck.go:3:18:3:22 | definition of redir | provenance | | +| main.go:11:37:11:44 | redirect | main.go:11:25:11:45 | call to sanitizeUrl | provenance | | +| main.go:32:24:32:26 | argument corresponding to url | main.go:34:26:34:28 | url | provenance | | +| main.go:68:17:68:24 | argument corresponding to redirect | main.go:73:20:73:27 | redirect | provenance | | +| main.go:68:17:68:24 | definition of redirect | main.go:73:20:73:27 | redirect | provenance | | +| main.go:73:9:73:28 | call to Clean | main.go:77:25:77:39 | call to getTarget1 | provenance | | +| main.go:73:20:73:27 | redirect | main.go:73:9:73:28 | call to Clean | provenance | | +| main.go:73:20:73:27 | redirect | main.go:73:9:73:28 | call to Clean | provenance | | +| main.go:76:19:76:21 | argument corresponding to url | main.go:77:36:77:38 | url | provenance | | +| main.go:77:36:77:38 | url | main.go:68:17:68:24 | definition of redirect | provenance | | +| main.go:77:36:77:38 | url | main.go:77:25:77:39 | call to getTarget1 | provenance | | +| main.go:87:9:87:14 | selection of Path | main.go:91:25:91:39 | call to getTarget2 | provenance | | nodes | BadRedirectCheck.go:3:18:3:22 | argument corresponding to redir | semmle.label | argument corresponding to redir | | BadRedirectCheck.go:3:18:3:22 | definition of redir | semmle.label | definition of redir | diff --git a/go/ql/test/query-tests/Security/CWE-601/OpenUrlRedirect/OpenUrlRedirect.expected b/go/ql/test/query-tests/Security/CWE-601/OpenUrlRedirect/OpenUrlRedirect.expected index d56e1f9c68b5..edbdc8b6e8db 100644 --- a/go/ql/test/query-tests/Security/CWE-601/OpenUrlRedirect/OpenUrlRedirect.expected +++ b/go/ql/test/query-tests/Security/CWE-601/OpenUrlRedirect/OpenUrlRedirect.expected @@ -1,69 +1,69 @@ edges -| OpenUrlRedirect.go:10:23:10:28 | selection of Form | OpenUrlRedirect.go:10:23:10:42 | call to Get | -| stdlib.go:13:3:13:8 | definition of target | stdlib.go:15:30:15:35 | target | -| stdlib.go:13:13:13:18 | selection of Form | stdlib.go:13:13:13:32 | call to Get | -| stdlib.go:13:13:13:32 | call to Get | stdlib.go:13:3:13:8 | definition of target | -| stdlib.go:22:3:22:8 | definition of target | stdlib.go:24:30:24:35 | target | -| stdlib.go:22:13:22:18 | selection of Form | stdlib.go:22:13:22:32 | call to Get | -| stdlib.go:22:13:22:32 | call to Get | stdlib.go:22:3:22:8 | definition of target | -| stdlib.go:31:3:31:8 | definition of target | stdlib.go:35:34:35:39 | target | -| stdlib.go:31:13:31:18 | selection of Form | stdlib.go:31:13:31:32 | call to Get | -| stdlib.go:31:13:31:32 | call to Get | stdlib.go:31:3:31:8 | definition of target | -| stdlib.go:35:34:35:39 | target | stdlib.go:35:30:35:39 | ...+... | -| stdlib.go:44:3:44:8 | definition of target | stdlib.go:46:23:46:28 | target | -| stdlib.go:44:13:44:18 | selection of Form | stdlib.go:44:13:44:32 | call to Get | -| stdlib.go:44:13:44:32 | call to Get | stdlib.go:44:3:44:8 | definition of target | -| stdlib.go:64:3:64:8 | definition of target | stdlib.go:67:23:67:28 | target | -| stdlib.go:64:13:64:18 | selection of Form | stdlib.go:64:13:64:32 | call to Get | -| stdlib.go:64:13:64:32 | call to Get | stdlib.go:64:3:64:8 | definition of target | -| stdlib.go:67:23:67:28 | target | stdlib.go:67:23:67:37 | ...+... | -| stdlib.go:67:23:67:37 | ...+... | stdlib.go:67:23:67:40 | ...+... | -| stdlib.go:89:3:89:8 | definition of target | stdlib.go:90:3:90:8 | target | -| stdlib.go:89:13:89:18 | selection of Form | stdlib.go:89:13:89:32 | call to Get | -| stdlib.go:89:13:89:32 | call to Get | stdlib.go:89:3:89:8 | definition of target | -| stdlib.go:90:3:90:8 | definition of target | stdlib.go:92:23:92:28 | target | -| stdlib.go:90:3:90:8 | target | stdlib.go:90:3:90:25 | ... += ... | -| stdlib.go:90:3:90:25 | ... += ... | stdlib.go:90:3:90:8 | definition of target | -| stdlib.go:107:54:107:54 | definition of r [pointer, URL, pointer] | stdlib.go:112:4:112:4 | r [pointer, URL, pointer] | -| stdlib.go:107:54:107:54 | definition of r [pointer, URL] | stdlib.go:112:4:112:4 | r [pointer, URL] | -| stdlib.go:107:54:107:54 | definition of r [pointer, URL] | stdlib.go:113:24:113:24 | r [pointer, URL] | -| stdlib.go:112:4:112:4 | implicit dereference [URL, pointer] | stdlib.go:107:54:107:54 | definition of r [pointer, URL, pointer] | -| stdlib.go:112:4:112:4 | implicit dereference [URL, pointer] | stdlib.go:112:4:112:8 | selection of URL [pointer] | -| stdlib.go:112:4:112:4 | implicit dereference [URL] | stdlib.go:107:54:107:54 | definition of r [pointer, URL] | -| stdlib.go:112:4:112:4 | implicit dereference [URL] | stdlib.go:112:4:112:8 | selection of URL | -| stdlib.go:112:4:112:4 | r [pointer, URL, pointer] | stdlib.go:112:4:112:4 | implicit dereference [URL, pointer] | -| stdlib.go:112:4:112:4 | r [pointer, URL] | stdlib.go:112:4:112:4 | implicit dereference [URL] | -| stdlib.go:112:4:112:8 | implicit dereference | stdlib.go:112:4:112:8 | selection of URL | -| stdlib.go:112:4:112:8 | implicit dereference | stdlib.go:112:4:112:8 | selection of URL [pointer] | -| stdlib.go:112:4:112:8 | selection of URL | stdlib.go:112:4:112:4 | implicit dereference [URL] | -| stdlib.go:112:4:112:8 | selection of URL | stdlib.go:112:4:112:8 | implicit dereference | -| stdlib.go:112:4:112:8 | selection of URL [pointer] | stdlib.go:112:4:112:4 | implicit dereference [URL, pointer] | -| stdlib.go:112:4:112:8 | selection of URL [pointer] | stdlib.go:112:4:112:8 | implicit dereference | -| stdlib.go:113:24:113:24 | implicit dereference [URL] | stdlib.go:113:24:113:28 | selection of URL | -| stdlib.go:113:24:113:24 | r [pointer, URL] | stdlib.go:113:24:113:24 | implicit dereference [URL] | -| stdlib.go:113:24:113:28 | selection of URL | stdlib.go:113:24:113:37 | call to String | -| stdlib.go:146:3:146:8 | definition of target | stdlib.go:152:3:152:3 | target = phi(def@146:3, def@149:4) | -| stdlib.go:146:13:146:18 | selection of Form | stdlib.go:146:13:146:32 | call to Get | -| stdlib.go:146:13:146:32 | call to Get | stdlib.go:146:3:146:8 | definition of target | -| stdlib.go:152:3:152:3 | target = phi(def@146:3, def@149:4) | stdlib.go:152:23:152:28 | target | -| stdlib.go:159:3:159:5 | definition of url | stdlib.go:162:24:162:26 | url | -| stdlib.go:159:10:159:15 | star expression | stdlib.go:159:3:159:5 | definition of url | -| stdlib.go:159:10:159:15 | star expression | stdlib.go:159:11:159:15 | selection of URL | -| stdlib.go:159:11:159:15 | selection of URL | stdlib.go:159:10:159:15 | star expression | -| stdlib.go:162:24:162:26 | url | stdlib.go:162:24:162:35 | call to String | -| stdlib.go:173:35:173:39 | selection of URL | stdlib.go:173:35:173:52 | call to RequestURI | -| stdlib.go:173:35:173:52 | call to RequestURI | stdlib.go:173:24:173:52 | ...+... | -| stdlib.go:182:3:182:8 | definition of target | stdlib.go:184:23:184:28 | target | -| stdlib.go:182:13:182:33 | call to FormValue | stdlib.go:182:3:182:8 | definition of target | -| stdlib.go:190:3:190:8 | definition of target | stdlib.go:192:23:192:28 | target | -| stdlib.go:190:3:190:8 | definition of target | stdlib.go:194:23:194:28 | target | -| stdlib.go:190:3:190:57 | ... := ...[0] | stdlib.go:190:3:190:8 | definition of target | -| stdlib.go:190:36:190:56 | call to FormValue | stdlib.go:190:3:190:57 | ... := ...[0] | -| stdlib.go:192:23:192:28 | implicit dereference | stdlib.go:190:3:190:8 | definition of target | -| stdlib.go:192:23:192:28 | implicit dereference | stdlib.go:192:23:192:33 | selection of Path | -| stdlib.go:192:23:192:28 | target | stdlib.go:192:23:192:28 | implicit dereference | -| stdlib.go:192:23:192:28 | target | stdlib.go:192:23:192:33 | selection of Path | -| stdlib.go:194:23:194:28 | target | stdlib.go:194:23:194:42 | call to EscapedPath | +| OpenUrlRedirect.go:10:23:10:28 | selection of Form | OpenUrlRedirect.go:10:23:10:42 | call to Get | provenance | | +| stdlib.go:13:3:13:8 | definition of target | stdlib.go:15:30:15:35 | target | provenance | | +| stdlib.go:13:13:13:18 | selection of Form | stdlib.go:13:13:13:32 | call to Get | provenance | | +| stdlib.go:13:13:13:32 | call to Get | stdlib.go:13:3:13:8 | definition of target | provenance | | +| stdlib.go:22:3:22:8 | definition of target | stdlib.go:24:30:24:35 | target | provenance | | +| stdlib.go:22:13:22:18 | selection of Form | stdlib.go:22:13:22:32 | call to Get | provenance | | +| stdlib.go:22:13:22:32 | call to Get | stdlib.go:22:3:22:8 | definition of target | provenance | | +| stdlib.go:31:3:31:8 | definition of target | stdlib.go:35:34:35:39 | target | provenance | | +| stdlib.go:31:13:31:18 | selection of Form | stdlib.go:31:13:31:32 | call to Get | provenance | | +| stdlib.go:31:13:31:32 | call to Get | stdlib.go:31:3:31:8 | definition of target | provenance | | +| stdlib.go:35:34:35:39 | target | stdlib.go:35:30:35:39 | ...+... | provenance | | +| stdlib.go:44:3:44:8 | definition of target | stdlib.go:46:23:46:28 | target | provenance | | +| stdlib.go:44:13:44:18 | selection of Form | stdlib.go:44:13:44:32 | call to Get | provenance | | +| stdlib.go:44:13:44:32 | call to Get | stdlib.go:44:3:44:8 | definition of target | provenance | | +| stdlib.go:64:3:64:8 | definition of target | stdlib.go:67:23:67:28 | target | provenance | | +| stdlib.go:64:13:64:18 | selection of Form | stdlib.go:64:13:64:32 | call to Get | provenance | | +| stdlib.go:64:13:64:32 | call to Get | stdlib.go:64:3:64:8 | definition of target | provenance | | +| stdlib.go:67:23:67:28 | target | stdlib.go:67:23:67:37 | ...+... | provenance | | +| stdlib.go:67:23:67:37 | ...+... | stdlib.go:67:23:67:40 | ...+... | provenance | | +| stdlib.go:89:3:89:8 | definition of target | stdlib.go:90:3:90:8 | target | provenance | | +| stdlib.go:89:13:89:18 | selection of Form | stdlib.go:89:13:89:32 | call to Get | provenance | | +| stdlib.go:89:13:89:32 | call to Get | stdlib.go:89:3:89:8 | definition of target | provenance | | +| stdlib.go:90:3:90:8 | definition of target | stdlib.go:92:23:92:28 | target | provenance | | +| stdlib.go:90:3:90:8 | target | stdlib.go:90:3:90:25 | ... += ... | provenance | | +| stdlib.go:90:3:90:25 | ... += ... | stdlib.go:90:3:90:8 | definition of target | provenance | | +| stdlib.go:107:54:107:54 | definition of r [pointer, URL, pointer] | stdlib.go:112:4:112:4 | r [pointer, URL, pointer] | provenance | | +| stdlib.go:107:54:107:54 | definition of r [pointer, URL] | stdlib.go:112:4:112:4 | r [pointer, URL] | provenance | | +| stdlib.go:107:54:107:54 | definition of r [pointer, URL] | stdlib.go:113:24:113:24 | r [pointer, URL] | provenance | | +| stdlib.go:112:4:112:4 | implicit dereference [URL, pointer] | stdlib.go:107:54:107:54 | definition of r [pointer, URL, pointer] | provenance | | +| stdlib.go:112:4:112:4 | implicit dereference [URL, pointer] | stdlib.go:112:4:112:8 | selection of URL [pointer] | provenance | | +| stdlib.go:112:4:112:4 | implicit dereference [URL] | stdlib.go:107:54:107:54 | definition of r [pointer, URL] | provenance | | +| stdlib.go:112:4:112:4 | implicit dereference [URL] | stdlib.go:112:4:112:8 | selection of URL | provenance | | +| stdlib.go:112:4:112:4 | r [pointer, URL, pointer] | stdlib.go:112:4:112:4 | implicit dereference [URL, pointer] | provenance | | +| stdlib.go:112:4:112:4 | r [pointer, URL] | stdlib.go:112:4:112:4 | implicit dereference [URL] | provenance | | +| stdlib.go:112:4:112:8 | implicit dereference | stdlib.go:112:4:112:8 | selection of URL | provenance | | +| stdlib.go:112:4:112:8 | implicit dereference | stdlib.go:112:4:112:8 | selection of URL [pointer] | provenance | | +| stdlib.go:112:4:112:8 | selection of URL | stdlib.go:112:4:112:4 | implicit dereference [URL] | provenance | | +| stdlib.go:112:4:112:8 | selection of URL | stdlib.go:112:4:112:8 | implicit dereference | provenance | | +| stdlib.go:112:4:112:8 | selection of URL [pointer] | stdlib.go:112:4:112:4 | implicit dereference [URL, pointer] | provenance | | +| stdlib.go:112:4:112:8 | selection of URL [pointer] | stdlib.go:112:4:112:8 | implicit dereference | provenance | | +| stdlib.go:113:24:113:24 | implicit dereference [URL] | stdlib.go:113:24:113:28 | selection of URL | provenance | | +| stdlib.go:113:24:113:24 | r [pointer, URL] | stdlib.go:113:24:113:24 | implicit dereference [URL] | provenance | | +| stdlib.go:113:24:113:28 | selection of URL | stdlib.go:113:24:113:37 | call to String | provenance | | +| stdlib.go:146:3:146:8 | definition of target | stdlib.go:152:3:152:3 | target = phi(def@146:3, def@149:4) | provenance | | +| stdlib.go:146:13:146:18 | selection of Form | stdlib.go:146:13:146:32 | call to Get | provenance | | +| stdlib.go:146:13:146:32 | call to Get | stdlib.go:146:3:146:8 | definition of target | provenance | | +| stdlib.go:152:3:152:3 | target = phi(def@146:3, def@149:4) | stdlib.go:152:23:152:28 | target | provenance | | +| stdlib.go:159:3:159:5 | definition of url | stdlib.go:162:24:162:26 | url | provenance | | +| stdlib.go:159:10:159:15 | star expression | stdlib.go:159:3:159:5 | definition of url | provenance | | +| stdlib.go:159:10:159:15 | star expression | stdlib.go:159:11:159:15 | selection of URL | provenance | | +| stdlib.go:159:11:159:15 | selection of URL | stdlib.go:159:10:159:15 | star expression | provenance | | +| stdlib.go:162:24:162:26 | url | stdlib.go:162:24:162:35 | call to String | provenance | | +| stdlib.go:173:35:173:39 | selection of URL | stdlib.go:173:35:173:52 | call to RequestURI | provenance | | +| stdlib.go:173:35:173:52 | call to RequestURI | stdlib.go:173:24:173:52 | ...+... | provenance | | +| stdlib.go:182:3:182:8 | definition of target | stdlib.go:184:23:184:28 | target | provenance | | +| stdlib.go:182:13:182:33 | call to FormValue | stdlib.go:182:3:182:8 | definition of target | provenance | | +| stdlib.go:190:3:190:8 | definition of target | stdlib.go:192:23:192:28 | target | provenance | | +| stdlib.go:190:3:190:8 | definition of target | stdlib.go:194:23:194:28 | target | provenance | | +| stdlib.go:190:3:190:57 | ... := ...[0] | stdlib.go:190:3:190:8 | definition of target | provenance | | +| stdlib.go:190:36:190:56 | call to FormValue | stdlib.go:190:3:190:57 | ... := ...[0] | provenance | | +| stdlib.go:192:23:192:28 | implicit dereference | stdlib.go:190:3:190:8 | definition of target | provenance | | +| stdlib.go:192:23:192:28 | implicit dereference | stdlib.go:192:23:192:33 | selection of Path | provenance | | +| stdlib.go:192:23:192:28 | target | stdlib.go:192:23:192:28 | implicit dereference | provenance | | +| stdlib.go:192:23:192:28 | target | stdlib.go:192:23:192:33 | selection of Path | provenance | | +| stdlib.go:194:23:194:28 | target | stdlib.go:194:23:194:42 | call to EscapedPath | provenance | | nodes | OpenUrlRedirect.go:10:23:10:28 | selection of Form | semmle.label | selection of Form | | OpenUrlRedirect.go:10:23:10:42 | call to Get | semmle.label | call to Get | diff --git a/go/ql/test/query-tests/Security/CWE-640/EmailInjection.expected b/go/ql/test/query-tests/Security/CWE-640/EmailInjection.expected index ec7b13e00eb5..fa8adec48fee 100644 --- a/go/ql/test/query-tests/Security/CWE-640/EmailInjection.expected +++ b/go/ql/test/query-tests/Security/CWE-640/EmailInjection.expected @@ -1,23 +1,23 @@ edges -| EmailBad.go:9:10:9:17 | selection of Header | EmailBad.go:9:10:9:29 | call to Get | -| EmailBad.go:9:10:9:29 | call to Get | EmailBad.go:12:56:12:67 | type conversion | -| main.go:29:21:29:31 | call to Referer | main.go:31:57:31:78 | type conversion | -| main.go:37:21:37:31 | call to Referer | main.go:41:25:41:38 | untrustedInput | -| main.go:41:25:41:38 | untrustedInput | main.go:40:3:40:7 | definition of write | -| main.go:46:21:46:31 | call to Referer | main.go:52:46:52:59 | untrustedInput | -| main.go:46:21:46:31 | call to Referer | main.go:53:52:53:65 | untrustedInput | -| main.go:58:21:58:31 | call to Referer | main.go:60:47:60:60 | untrustedInput | -| main.go:60:14:60:61 | call to NewContent | main.go:63:16:63:22 | content | -| main.go:60:47:60:60 | untrustedInput | main.go:60:14:60:61 | call to NewContent | -| main.go:68:21:68:31 | call to Referer | main.go:74:47:74:60 | untrustedInput | -| main.go:74:14:74:61 | call to NewContent | main.go:76:50:76:56 | content | -| main.go:74:14:74:61 | call to NewContent | main.go:76:59:76:65 | content | -| main.go:74:14:74:61 | call to NewContent | main.go:77:16:77:22 | content | -| main.go:74:47:74:60 | untrustedInput | main.go:74:14:74:61 | call to NewContent | -| main.go:82:21:82:31 | call to Referer | main.go:89:37:89:50 | untrustedInput | -| main.go:82:21:82:31 | call to Referer | main.go:91:48:91:61 | untrustedInput | -| main.go:91:15:91:62 | call to NewContent | main.go:93:16:93:23 | content2 | -| main.go:91:48:91:61 | untrustedInput | main.go:91:15:91:62 | call to NewContent | +| EmailBad.go:9:10:9:17 | selection of Header | EmailBad.go:9:10:9:29 | call to Get | provenance | | +| EmailBad.go:9:10:9:29 | call to Get | EmailBad.go:12:56:12:67 | type conversion | provenance | | +| main.go:29:21:29:31 | call to Referer | main.go:31:57:31:78 | type conversion | provenance | | +| main.go:37:21:37:31 | call to Referer | main.go:41:25:41:38 | untrustedInput | provenance | | +| main.go:41:25:41:38 | untrustedInput | main.go:40:3:40:7 | definition of write | provenance | | +| main.go:46:21:46:31 | call to Referer | main.go:52:46:52:59 | untrustedInput | provenance | | +| main.go:46:21:46:31 | call to Referer | main.go:53:52:53:65 | untrustedInput | provenance | | +| main.go:58:21:58:31 | call to Referer | main.go:60:47:60:60 | untrustedInput | provenance | | +| main.go:60:14:60:61 | call to NewContent | main.go:63:16:63:22 | content | provenance | | +| main.go:60:47:60:60 | untrustedInput | main.go:60:14:60:61 | call to NewContent | provenance | | +| main.go:68:21:68:31 | call to Referer | main.go:74:47:74:60 | untrustedInput | provenance | | +| main.go:74:14:74:61 | call to NewContent | main.go:76:50:76:56 | content | provenance | | +| main.go:74:14:74:61 | call to NewContent | main.go:76:59:76:65 | content | provenance | | +| main.go:74:14:74:61 | call to NewContent | main.go:77:16:77:22 | content | provenance | | +| main.go:74:47:74:60 | untrustedInput | main.go:74:14:74:61 | call to NewContent | provenance | | +| main.go:82:21:82:31 | call to Referer | main.go:89:37:89:50 | untrustedInput | provenance | | +| main.go:82:21:82:31 | call to Referer | main.go:91:48:91:61 | untrustedInput | provenance | | +| main.go:91:15:91:62 | call to NewContent | main.go:93:16:93:23 | content2 | provenance | | +| main.go:91:48:91:61 | untrustedInput | main.go:91:15:91:62 | call to NewContent | provenance | | nodes | EmailBad.go:9:10:9:17 | selection of Header | semmle.label | selection of Header | | EmailBad.go:9:10:9:29 | call to Get | semmle.label | call to Get | diff --git a/go/ql/test/query-tests/Security/CWE-643/XPathInjection.expected b/go/ql/test/query-tests/Security/CWE-643/XPathInjection.expected index 34fbf42f85f2..753444333d9c 100644 --- a/go/ql/test/query-tests/Security/CWE-643/XPathInjection.expected +++ b/go/ql/test/query-tests/Security/CWE-643/XPathInjection.expected @@ -1,57 +1,57 @@ edges -| XPathInjection.go:13:14:13:19 | selection of Form | XPathInjection.go:13:14:13:35 | call to Get | -| XPathInjection.go:13:14:13:35 | call to Get | XPathInjection.go:16:29:16:91 | ...+... | -| tst.go:34:14:34:19 | selection of Form | tst.go:34:14:34:35 | call to Get | -| tst.go:34:14:34:35 | call to Get | tst.go:37:23:37:85 | ...+... | -| tst.go:34:14:34:35 | call to Get | tst.go:40:24:40:86 | ...+... | -| tst.go:34:14:34:35 | call to Get | tst.go:43:24:43:82 | ...+... | -| tst.go:48:14:48:19 | selection of Form | tst.go:48:14:48:35 | call to Get | -| tst.go:48:14:48:35 | call to Get | tst.go:51:26:51:84 | ...+... | -| tst.go:48:14:48:35 | call to Get | tst.go:54:29:54:87 | ...+... | -| tst.go:48:14:48:35 | call to Get | tst.go:57:33:57:91 | ...+... | -| tst.go:48:14:48:35 | call to Get | tst.go:60:30:60:88 | ...+... | -| tst.go:65:14:65:19 | selection of Form | tst.go:65:14:65:35 | call to Get | -| tst.go:65:14:65:35 | call to Get | tst.go:68:25:68:83 | ...+... | -| tst.go:65:14:65:35 | call to Get | tst.go:71:28:71:86 | ...+... | -| tst.go:65:14:65:35 | call to Get | tst.go:74:25:74:83 | ...+... | -| tst.go:65:14:65:35 | call to Get | tst.go:77:34:77:92 | ...+... | -| tst.go:65:14:65:35 | call to Get | tst.go:80:32:80:90 | ...+... | -| tst.go:65:14:65:35 | call to Get | tst.go:83:29:83:87 | ...+... | -| tst.go:65:14:65:35 | call to Get | tst.go:86:23:86:85 | ...+... | -| tst.go:65:14:65:35 | call to Get | tst.go:89:22:89:84 | ...+... | -| tst.go:94:14:94:19 | selection of Form | tst.go:94:14:94:35 | call to Get | -| tst.go:94:14:94:35 | call to Get | tst.go:97:26:97:84 | ...+... | -| tst.go:94:14:94:35 | call to Get | tst.go:100:29:100:87 | ...+... | -| tst.go:94:14:94:35 | call to Get | tst.go:103:33:103:91 | ...+... | -| tst.go:94:14:94:35 | call to Get | tst.go:106:30:106:88 | ...+... | -| tst.go:111:14:111:19 | selection of Form | tst.go:111:14:111:35 | call to Get | -| tst.go:111:14:111:35 | call to Get | tst.go:114:25:114:87 | ...+... | -| tst.go:111:14:111:35 | call to Get | tst.go:117:26:117:88 | ...+... | -| tst.go:122:14:122:19 | selection of Form | tst.go:122:14:122:35 | call to Get | -| tst.go:122:14:122:35 | call to Get | tst.go:126:23:126:126 | ...+... | -| tst.go:122:14:122:35 | call to Get | tst.go:129:24:129:127 | ...+... | -| tst.go:122:14:122:35 | call to Get | tst.go:132:27:132:122 | ...+... | -| tst.go:123:14:123:19 | selection of Form | tst.go:123:14:123:35 | call to Get | -| tst.go:123:14:123:35 | call to Get | tst.go:126:23:126:126 | ...+... | -| tst.go:123:14:123:35 | call to Get | tst.go:129:24:129:127 | ...+... | -| tst.go:123:14:123:35 | call to Get | tst.go:132:27:132:122 | ...+... | -| tst.go:140:14:140:19 | selection of Form | tst.go:140:14:140:35 | call to Get | -| tst.go:140:14:140:35 | call to Get | tst.go:143:27:143:89 | ...+... | -| tst.go:140:14:140:35 | call to Get | tst.go:146:28:146:90 | ...+... | -| tst.go:151:14:151:19 | selection of Form | tst.go:151:14:151:35 | call to Get | -| tst.go:151:14:151:35 | call to Get | tst.go:155:33:155:136 | ...+... | -| tst.go:151:14:151:35 | call to Get | tst.go:158:18:158:121 | ...+... | -| tst.go:151:14:151:35 | call to Get | tst.go:164:31:164:126 | ...+... | -| tst.go:151:14:151:35 | call to Get | tst.go:173:21:173:116 | ...+... | -| tst.go:151:14:151:35 | call to Get | tst.go:182:27:182:122 | ...+... | -| tst.go:152:14:152:19 | selection of Form | tst.go:152:14:152:35 | call to Get | -| tst.go:152:14:152:35 | call to Get | tst.go:155:33:155:136 | ...+... | -| tst.go:152:14:152:35 | call to Get | tst.go:158:18:158:121 | ...+... | -| tst.go:152:14:152:35 | call to Get | tst.go:164:31:164:126 | ...+... | -| tst.go:152:14:152:35 | call to Get | tst.go:173:21:173:116 | ...+... | -| tst.go:152:14:152:35 | call to Get | tst.go:182:27:182:122 | ...+... | -| tst.go:193:14:193:19 | selection of Form | tst.go:193:14:193:35 | call to Get | -| tst.go:193:14:193:35 | call to Get | tst.go:198:23:198:85 | ...+... | +| XPathInjection.go:13:14:13:19 | selection of Form | XPathInjection.go:13:14:13:35 | call to Get | provenance | | +| XPathInjection.go:13:14:13:35 | call to Get | XPathInjection.go:16:29:16:91 | ...+... | provenance | | +| tst.go:34:14:34:19 | selection of Form | tst.go:34:14:34:35 | call to Get | provenance | | +| tst.go:34:14:34:35 | call to Get | tst.go:37:23:37:85 | ...+... | provenance | | +| tst.go:34:14:34:35 | call to Get | tst.go:40:24:40:86 | ...+... | provenance | | +| tst.go:34:14:34:35 | call to Get | tst.go:43:24:43:82 | ...+... | provenance | | +| tst.go:48:14:48:19 | selection of Form | tst.go:48:14:48:35 | call to Get | provenance | | +| tst.go:48:14:48:35 | call to Get | tst.go:51:26:51:84 | ...+... | provenance | | +| tst.go:48:14:48:35 | call to Get | tst.go:54:29:54:87 | ...+... | provenance | | +| tst.go:48:14:48:35 | call to Get | tst.go:57:33:57:91 | ...+... | provenance | | +| tst.go:48:14:48:35 | call to Get | tst.go:60:30:60:88 | ...+... | provenance | | +| tst.go:65:14:65:19 | selection of Form | tst.go:65:14:65:35 | call to Get | provenance | | +| tst.go:65:14:65:35 | call to Get | tst.go:68:25:68:83 | ...+... | provenance | | +| tst.go:65:14:65:35 | call to Get | tst.go:71:28:71:86 | ...+... | provenance | | +| tst.go:65:14:65:35 | call to Get | tst.go:74:25:74:83 | ...+... | provenance | | +| tst.go:65:14:65:35 | call to Get | tst.go:77:34:77:92 | ...+... | provenance | | +| tst.go:65:14:65:35 | call to Get | tst.go:80:32:80:90 | ...+... | provenance | | +| tst.go:65:14:65:35 | call to Get | tst.go:83:29:83:87 | ...+... | provenance | | +| tst.go:65:14:65:35 | call to Get | tst.go:86:23:86:85 | ...+... | provenance | | +| tst.go:65:14:65:35 | call to Get | tst.go:89:22:89:84 | ...+... | provenance | | +| tst.go:94:14:94:19 | selection of Form | tst.go:94:14:94:35 | call to Get | provenance | | +| tst.go:94:14:94:35 | call to Get | tst.go:97:26:97:84 | ...+... | provenance | | +| tst.go:94:14:94:35 | call to Get | tst.go:100:29:100:87 | ...+... | provenance | | +| tst.go:94:14:94:35 | call to Get | tst.go:103:33:103:91 | ...+... | provenance | | +| tst.go:94:14:94:35 | call to Get | tst.go:106:30:106:88 | ...+... | provenance | | +| tst.go:111:14:111:19 | selection of Form | tst.go:111:14:111:35 | call to Get | provenance | | +| tst.go:111:14:111:35 | call to Get | tst.go:114:25:114:87 | ...+... | provenance | | +| tst.go:111:14:111:35 | call to Get | tst.go:117:26:117:88 | ...+... | provenance | | +| tst.go:122:14:122:19 | selection of Form | tst.go:122:14:122:35 | call to Get | provenance | | +| tst.go:122:14:122:35 | call to Get | tst.go:126:23:126:126 | ...+... | provenance | | +| tst.go:122:14:122:35 | call to Get | tst.go:129:24:129:127 | ...+... | provenance | | +| tst.go:122:14:122:35 | call to Get | tst.go:132:27:132:122 | ...+... | provenance | | +| tst.go:123:14:123:19 | selection of Form | tst.go:123:14:123:35 | call to Get | provenance | | +| tst.go:123:14:123:35 | call to Get | tst.go:126:23:126:126 | ...+... | provenance | | +| tst.go:123:14:123:35 | call to Get | tst.go:129:24:129:127 | ...+... | provenance | | +| tst.go:123:14:123:35 | call to Get | tst.go:132:27:132:122 | ...+... | provenance | | +| tst.go:140:14:140:19 | selection of Form | tst.go:140:14:140:35 | call to Get | provenance | | +| tst.go:140:14:140:35 | call to Get | tst.go:143:27:143:89 | ...+... | provenance | | +| tst.go:140:14:140:35 | call to Get | tst.go:146:28:146:90 | ...+... | provenance | | +| tst.go:151:14:151:19 | selection of Form | tst.go:151:14:151:35 | call to Get | provenance | | +| tst.go:151:14:151:35 | call to Get | tst.go:155:33:155:136 | ...+... | provenance | | +| tst.go:151:14:151:35 | call to Get | tst.go:158:18:158:121 | ...+... | provenance | | +| tst.go:151:14:151:35 | call to Get | tst.go:164:31:164:126 | ...+... | provenance | | +| tst.go:151:14:151:35 | call to Get | tst.go:173:21:173:116 | ...+... | provenance | | +| tst.go:151:14:151:35 | call to Get | tst.go:182:27:182:122 | ...+... | provenance | | +| tst.go:152:14:152:19 | selection of Form | tst.go:152:14:152:35 | call to Get | provenance | | +| tst.go:152:14:152:35 | call to Get | tst.go:155:33:155:136 | ...+... | provenance | | +| tst.go:152:14:152:35 | call to Get | tst.go:158:18:158:121 | ...+... | provenance | | +| tst.go:152:14:152:35 | call to Get | tst.go:164:31:164:126 | ...+... | provenance | | +| tst.go:152:14:152:35 | call to Get | tst.go:173:21:173:116 | ...+... | provenance | | +| tst.go:152:14:152:35 | call to Get | tst.go:182:27:182:122 | ...+... | provenance | | +| tst.go:193:14:193:19 | selection of Form | tst.go:193:14:193:35 | call to Get | provenance | | +| tst.go:193:14:193:35 | call to Get | tst.go:198:23:198:85 | ...+... | provenance | | nodes | XPathInjection.go:13:14:13:19 | selection of Form | semmle.label | selection of Form | | XPathInjection.go:13:14:13:35 | call to Get | semmle.label | call to Get | diff --git a/go/ql/test/query-tests/Security/CWE-918/RequestForgery.expected b/go/ql/test/query-tests/Security/CWE-918/RequestForgery.expected index b843de1c0b1e..c3d6015d7484 100644 --- a/go/ql/test/query-tests/Security/CWE-918/RequestForgery.expected +++ b/go/ql/test/query-tests/Security/CWE-918/RequestForgery.expected @@ -1,32 +1,32 @@ edges -| RequestForgery.go:8:12:8:34 | call to FormValue | RequestForgery.go:11:24:11:65 | ...+... | -| tst.go:10:13:10:35 | call to FormValue | tst.go:14:11:14:17 | tainted | -| tst.go:10:13:10:35 | call to FormValue | tst.go:18:12:18:18 | tainted | -| tst.go:10:13:10:35 | call to FormValue | tst.go:21:34:21:40 | tainted | -| tst.go:10:13:10:35 | call to FormValue | tst.go:24:66:24:72 | tainted | -| tst.go:10:13:10:35 | call to FormValue | tst.go:27:11:27:29 | ...+... | -| tst.go:10:13:10:35 | call to FormValue | tst.go:29:11:29:40 | ...+... | -| tst.go:10:13:10:35 | call to FormValue | tst.go:36:11:36:17 | tainted | -| tst.go:35:2:35:2 | definition of u [pointer] | tst.go:36:2:36:2 | u [pointer] | -| tst.go:36:2:36:2 | implicit dereference | tst.go:35:2:35:2 | definition of u [pointer] | -| tst.go:36:2:36:2 | implicit dereference | tst.go:36:2:36:2 | u | -| tst.go:36:2:36:2 | implicit dereference | tst.go:37:11:37:11 | u | -| tst.go:36:2:36:2 | u | tst.go:36:2:36:2 | implicit dereference | -| tst.go:36:2:36:2 | u | tst.go:36:2:36:2 | u | -| tst.go:36:2:36:2 | u | tst.go:37:11:37:11 | u | -| tst.go:36:2:36:2 | u [pointer] | tst.go:36:2:36:2 | implicit dereference | -| tst.go:36:11:36:17 | tainted | tst.go:36:2:36:2 | u | -| tst.go:36:11:36:17 | tainted | tst.go:37:11:37:11 | u | -| tst.go:37:11:37:11 | u | tst.go:37:11:37:20 | call to String | -| websocket.go:60:21:60:31 | call to Referer | websocket.go:65:27:65:40 | untrustedInput | -| websocket.go:74:21:74:31 | call to Referer | websocket.go:78:36:78:49 | untrustedInput | -| websocket.go:88:21:88:31 | call to Referer | websocket.go:91:31:91:44 | untrustedInput | -| websocket.go:107:21:107:31 | call to Referer | websocket.go:110:15:110:28 | untrustedInput | -| websocket.go:126:21:126:31 | call to Referer | websocket.go:129:38:129:51 | untrustedInput | -| websocket.go:154:21:154:31 | call to Referer | websocket.go:155:31:155:44 | untrustedInput | -| websocket.go:160:21:160:31 | call to Referer | websocket.go:162:31:162:44 | untrustedInput | -| websocket.go:195:21:195:31 | call to Referer | websocket.go:197:18:197:31 | untrustedInput | -| websocket.go:202:21:202:31 | call to Referer | websocket.go:204:11:204:24 | untrustedInput | +| RequestForgery.go:8:12:8:34 | call to FormValue | RequestForgery.go:11:24:11:65 | ...+... | provenance | | +| tst.go:10:13:10:35 | call to FormValue | tst.go:14:11:14:17 | tainted | provenance | | +| tst.go:10:13:10:35 | call to FormValue | tst.go:18:12:18:18 | tainted | provenance | | +| tst.go:10:13:10:35 | call to FormValue | tst.go:21:34:21:40 | tainted | provenance | | +| tst.go:10:13:10:35 | call to FormValue | tst.go:24:66:24:72 | tainted | provenance | | +| tst.go:10:13:10:35 | call to FormValue | tst.go:27:11:27:29 | ...+... | provenance | | +| tst.go:10:13:10:35 | call to FormValue | tst.go:29:11:29:40 | ...+... | provenance | | +| tst.go:10:13:10:35 | call to FormValue | tst.go:36:11:36:17 | tainted | provenance | | +| tst.go:35:2:35:2 | definition of u [pointer] | tst.go:36:2:36:2 | u [pointer] | provenance | | +| tst.go:36:2:36:2 | implicit dereference | tst.go:35:2:35:2 | definition of u [pointer] | provenance | | +| tst.go:36:2:36:2 | implicit dereference | tst.go:36:2:36:2 | u | provenance | | +| tst.go:36:2:36:2 | implicit dereference | tst.go:37:11:37:11 | u | provenance | | +| tst.go:36:2:36:2 | u | tst.go:36:2:36:2 | implicit dereference | provenance | | +| tst.go:36:2:36:2 | u | tst.go:36:2:36:2 | u | provenance | | +| tst.go:36:2:36:2 | u | tst.go:37:11:37:11 | u | provenance | | +| tst.go:36:2:36:2 | u [pointer] | tst.go:36:2:36:2 | implicit dereference | provenance | | +| tst.go:36:11:36:17 | tainted | tst.go:36:2:36:2 | u | provenance | | +| tst.go:36:11:36:17 | tainted | tst.go:37:11:37:11 | u | provenance | | +| tst.go:37:11:37:11 | u | tst.go:37:11:37:20 | call to String | provenance | | +| websocket.go:60:21:60:31 | call to Referer | websocket.go:65:27:65:40 | untrustedInput | provenance | | +| websocket.go:74:21:74:31 | call to Referer | websocket.go:78:36:78:49 | untrustedInput | provenance | | +| websocket.go:88:21:88:31 | call to Referer | websocket.go:91:31:91:44 | untrustedInput | provenance | | +| websocket.go:107:21:107:31 | call to Referer | websocket.go:110:15:110:28 | untrustedInput | provenance | | +| websocket.go:126:21:126:31 | call to Referer | websocket.go:129:38:129:51 | untrustedInput | provenance | | +| websocket.go:154:21:154:31 | call to Referer | websocket.go:155:31:155:44 | untrustedInput | provenance | | +| websocket.go:160:21:160:31 | call to Referer | websocket.go:162:31:162:44 | untrustedInput | provenance | | +| websocket.go:195:21:195:31 | call to Referer | websocket.go:197:18:197:31 | untrustedInput | provenance | | +| websocket.go:202:21:202:31 | call to Referer | websocket.go:204:11:204:24 | untrustedInput | provenance | | nodes | RequestForgery.go:8:12:8:34 | call to FormValue | semmle.label | call to FormValue | | RequestForgery.go:11:24:11:65 | ...+... | semmle.label | ...+... | diff --git a/java/ql/integration-tests/all-platforms/kotlin/kotlin_java_static_fields/test.expected b/java/ql/integration-tests/all-platforms/kotlin/kotlin_java_static_fields/test.expected index 9f16308bdfc6..68f05e908f6f 100644 --- a/java/ql/integration-tests/all-platforms/kotlin/kotlin_java_static_fields/test.expected +++ b/java/ql/integration-tests/all-platforms/kotlin/kotlin_java_static_fields/test.expected @@ -1,12 +1,12 @@ edges -| hasFields.kt:5:5:5:34 | constField : String | ReadsFields.java:5:10:5:29 | HasFields.constField | -| hasFields.kt:5:28:5:34 | "taint" : String | hasFields.kt:5:5:5:34 | constField : String | -| hasFields.kt:7:5:7:38 | lateinitField : String | ReadsFields.java:6:10:6:32 | HasFields.lateinitField | -| hasFields.kt:7:14:7:38 | : String | hasFields.kt:7:5:7:38 | lateinitField : String | -| hasFields.kt:7:14:7:38 | : String | hasFields.kt:7:14:7:38 | : String | -| hasFields.kt:9:5:9:50 | jvmFieldAnnotatedField : String | ReadsFields.java:7:10:7:41 | HasFields.jvmFieldAnnotatedField | -| hasFields.kt:9:44:9:50 | "taint" : String | hasFields.kt:9:5:9:50 | jvmFieldAnnotatedField : String | -| hasFields.kt:14:22:14:26 | "taint" : String | hasFields.kt:7:14:7:38 | : String | +| hasFields.kt:5:5:5:34 | constField : String | ReadsFields.java:5:10:5:29 | HasFields.constField | provenance | | +| hasFields.kt:5:28:5:34 | "taint" : String | hasFields.kt:5:5:5:34 | constField : String | provenance | | +| hasFields.kt:7:5:7:38 | lateinitField : String | ReadsFields.java:6:10:6:32 | HasFields.lateinitField | provenance | | +| hasFields.kt:7:14:7:38 | : String | hasFields.kt:7:5:7:38 | lateinitField : String | provenance | | +| hasFields.kt:7:14:7:38 | : String | hasFields.kt:7:14:7:38 | : String | provenance | | +| hasFields.kt:9:5:9:50 | jvmFieldAnnotatedField : String | ReadsFields.java:7:10:7:41 | HasFields.jvmFieldAnnotatedField | provenance | | +| hasFields.kt:9:44:9:50 | "taint" : String | hasFields.kt:9:5:9:50 | jvmFieldAnnotatedField : String | provenance | | +| hasFields.kt:14:22:14:26 | "taint" : String | hasFields.kt:7:14:7:38 | : String | provenance | | nodes | ReadsFields.java:5:10:5:29 | HasFields.constField | semmle.label | HasFields.constField | | ReadsFields.java:6:10:6:32 | HasFields.lateinitField | semmle.label | HasFields.lateinitField | diff --git a/java/ql/src/Security/CWE/CWE-200/TempDirLocalInformationDisclosure.ql b/java/ql/src/Security/CWE/CWE-200/TempDirLocalInformationDisclosure.ql index 6efb7e9104c6..6e0aa9e9cd9e 100644 --- a/java/ql/src/Security/CWE/CWE-200/TempDirLocalInformationDisclosure.ql +++ b/java/ql/src/Security/CWE/CWE-200/TempDirLocalInformationDisclosure.ql @@ -25,7 +25,11 @@ import semmle.code.java.security.TempDirLocalInformationDisclosureQuery * resulting in a zero-length paths. */ module InsecureMethodPathGraph implements DataFlow::PathGraphSig { - predicate edges(MethodCallInsecureFileCreation n1, MethodCallInsecureFileCreation n2) { none() } + predicate edges( + MethodCallInsecureFileCreation n1, MethodCallInsecureFileCreation n2, string key, string value + ) { + none() + } predicate nodes(MethodCallInsecureFileCreation n, string key, string val) { key = "semmle.label" and val = n.toString() diff --git a/java/ql/test/experimental/query-tests/security/CWE-020/Log4jInjectionTest.expected b/java/ql/test/experimental/query-tests/security/CWE-020/Log4jInjectionTest.expected index 93b2b0606859..c88d2e2284c2 100644 --- a/java/ql/test/experimental/query-tests/security/CWE-020/Log4jInjectionTest.expected +++ b/java/ql/test/experimental/query-tests/security/CWE-020/Log4jInjectionTest.expected @@ -1,2103 +1,2103 @@ edges -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:31:41:31:48 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:32:41:32:48 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:33:56:33:63 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:34:56:34:63 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:35:51:35:58 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:36:59:36:66 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:37:59:37:66 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:38:41:38:48 | source(...) | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:39:50:39:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:40:50:40:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:41:70:41:77 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:42:65:42:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:43:50:43:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:44:80:44:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:45:65:45:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:46:50:46:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:47:95:47:102 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:48:80:48:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:49:65:49:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:50:50:50:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:51:110:51:117 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:52:95:52:102 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:53:80:53:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:54:65:54:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:55:50:55:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:56:125:56:132 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:57:110:57:117 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:58:95:58:102 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:59:80:59:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:60:65:60:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:61:50:61:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:62:140:62:147 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:63:125:63:132 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:64:110:64:117 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:65:95:65:102 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:66:80:66:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:67:65:67:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:68:50:68:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:69:155:69:162 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:70:140:70:147 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:71:125:71:132 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:72:110:72:117 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:73:95:73:102 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:74:80:74:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:75:65:75:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:76:50:76:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:77:170:77:177 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:78:155:78:162 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:79:140:79:147 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:80:125:80:132 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:81:110:81:117 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:82:95:82:102 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:83:80:83:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:84:65:84:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:85:50:85:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:86:185:86:192 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:87:170:87:177 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:88:155:88:162 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:89:140:89:147 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:90:125:90:132 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:91:110:91:117 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:92:95:92:102 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:93:80:93:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:94:65:94:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:95:50:95:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:96:50:96:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:97:70:97:77 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:98:50:98:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:99:55:99:62 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:100:55:100:62 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:101:44:101:51 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:102:44:102:51 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:103:36:103:43 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:104:36:104:43 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:105:26:105:33 | source(...) | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:106:26:106:33 | source(...) | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:107:35:107:42 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:108:35:108:42 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:109:55:109:62 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:110:50:110:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:111:35:111:42 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:112:65:112:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:113:50:113:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:114:35:114:42 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:115:80:115:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:116:65:116:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:117:50:117:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:118:35:118:42 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:119:95:119:102 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:120:80:120:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:121:65:121:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:122:50:122:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:123:35:123:42 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:124:110:124:117 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:125:95:125:102 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:126:80:126:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:127:65:127:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:128:50:128:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:129:35:129:42 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:130:125:130:132 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:131:110:131:117 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:132:95:132:102 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:133:80:133:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:134:65:134:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:135:50:135:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:136:35:136:42 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:137:140:137:147 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:138:125:138:132 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:139:110:139:117 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:140:95:140:102 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:141:80:141:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:142:65:142:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:143:50:143:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:144:35:144:42 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:145:155:145:162 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:146:140:146:147 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:147:125:147:132 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:148:110:148:117 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:149:95:149:102 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:150:80:150:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:151:65:151:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:152:50:152:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:153:35:153:42 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:154:170:154:177 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:155:155:155:162 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:156:140:156:147 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:157:125:157:132 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:158:110:158:117 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:159:95:159:102 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:160:80:160:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:161:65:161:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:162:50:162:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:163:35:163:42 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:164:35:164:42 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:165:55:165:62 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:166:35:166:42 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:167:40:167:47 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:168:40:168:47 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:169:41:169:48 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:170:41:170:48 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:171:56:171:63 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:172:56:172:63 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:173:51:173:58 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:174:59:174:66 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:175:59:175:66 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:176:41:176:48 | source(...) | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:177:50:177:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:178:50:178:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:179:70:179:77 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:180:65:180:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:181:50:181:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:182:80:182:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:183:65:183:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:184:50:184:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:185:95:185:102 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:186:80:186:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:187:65:187:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:188:50:188:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:189:110:189:117 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:190:95:190:102 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:191:80:191:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:192:65:192:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:193:50:193:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:194:125:194:132 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:195:110:195:117 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:196:95:196:102 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:197:80:197:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:198:65:198:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:199:50:199:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:200:140:200:147 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:201:125:201:132 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:202:110:202:117 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:203:95:203:102 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:204:80:204:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:205:65:205:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:206:50:206:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:207:155:207:162 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:208:140:208:147 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:209:125:209:132 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:210:110:210:117 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:211:95:211:102 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:212:80:212:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:213:65:213:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:214:50:214:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:215:170:215:177 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:216:155:216:162 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:217:140:217:147 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:218:125:218:132 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:219:110:219:117 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:220:95:220:102 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:221:80:221:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:222:65:222:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:223:50:223:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:224:185:224:192 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:225:170:225:177 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:226:155:226:162 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:227:140:227:147 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:228:125:228:132 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:229:110:229:117 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:230:95:230:102 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:231:80:231:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:232:65:232:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:233:50:233:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:234:50:234:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:235:70:235:77 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:236:50:236:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:237:55:237:62 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:238:55:238:62 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:239:44:239:51 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:240:44:240:51 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:241:36:241:43 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:242:36:242:43 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:243:26:243:33 | source(...) | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:244:26:244:33 | source(...) | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:245:35:245:42 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:246:35:246:42 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:247:55:247:62 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:248:50:248:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:249:35:249:42 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:250:65:250:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:251:50:251:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:252:35:252:42 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:253:80:253:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:254:65:254:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:255:50:255:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:256:35:256:42 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:257:95:257:102 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:258:80:258:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:259:65:259:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:260:50:260:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:261:35:261:42 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:262:110:262:117 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:263:95:263:102 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:264:80:264:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:265:65:265:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:266:50:266:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:267:35:267:42 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:268:125:268:132 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:269:110:269:117 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:270:95:270:102 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:271:80:271:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:272:65:272:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:273:50:273:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:274:35:274:42 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:275:140:275:147 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:276:125:276:132 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:277:110:277:117 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:278:95:278:102 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:279:80:279:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:280:65:280:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:281:50:281:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:282:35:282:42 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:283:155:283:162 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:284:140:284:147 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:285:125:285:132 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:286:110:286:117 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:287:95:287:102 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:288:80:288:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:289:65:289:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:290:50:290:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:291:35:291:42 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:292:170:292:177 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:293:155:293:162 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:294:140:294:147 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:295:125:295:132 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:296:110:296:117 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:297:95:297:102 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:298:80:298:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:299:65:299:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:300:50:300:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:301:35:301:42 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:302:35:302:42 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:303:55:303:62 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:304:35:304:42 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:305:40:305:47 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:306:40:306:47 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:307:41:307:48 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:308:41:308:48 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:309:56:309:63 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:310:56:310:63 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:311:51:311:58 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:312:59:312:66 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:313:59:313:66 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:314:41:314:48 | source(...) | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:315:50:315:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:316:50:316:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:317:70:317:77 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:318:65:318:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:319:50:319:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:320:80:320:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:321:65:321:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:322:50:322:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:323:95:323:102 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:324:80:324:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:325:65:325:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:326:50:326:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:327:110:327:117 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:328:95:328:102 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:329:80:329:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:330:65:330:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:331:50:331:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:332:125:332:132 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:333:110:333:117 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:334:95:334:102 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:335:80:335:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:336:65:336:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:337:50:337:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:338:140:338:147 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:339:125:339:132 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:340:110:340:117 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:341:95:341:102 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:342:80:342:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:343:65:343:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:344:50:344:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:345:155:345:162 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:346:140:346:147 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:347:125:347:132 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:348:110:348:117 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:349:95:349:102 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:350:80:350:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:351:65:351:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:352:50:352:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:353:170:353:177 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:354:155:354:162 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:355:140:355:147 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:356:125:356:132 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:357:110:357:117 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:358:95:358:102 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:359:80:359:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:360:65:360:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:361:50:361:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:362:185:362:192 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:363:170:363:177 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:364:155:364:162 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:365:140:365:147 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:366:125:366:132 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:367:110:367:117 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:368:95:368:102 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:369:80:369:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:370:65:370:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:371:50:371:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:372:50:372:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:373:70:373:77 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:374:50:374:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:375:55:375:62 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:376:55:376:62 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:377:44:377:51 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:378:44:378:51 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:379:36:379:43 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:380:36:380:43 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:381:26:381:33 | source(...) | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:382:26:382:33 | source(...) | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:383:35:383:42 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:384:35:384:42 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:385:55:385:62 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:386:50:386:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:387:35:387:42 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:388:65:388:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:389:50:389:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:390:35:390:42 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:391:80:391:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:392:65:392:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:393:50:393:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:394:35:394:42 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:395:95:395:102 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:396:80:396:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:397:65:397:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:398:50:398:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:399:35:399:42 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:400:110:400:117 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:401:95:401:102 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:402:80:402:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:403:65:403:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:404:50:404:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:405:35:405:42 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:406:125:406:132 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:407:110:407:117 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:408:95:408:102 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:409:80:409:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:410:65:410:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:411:50:411:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:412:35:412:42 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:413:140:413:147 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:414:125:414:132 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:415:110:415:117 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:416:95:416:102 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:417:80:417:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:418:65:418:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:419:50:419:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:420:35:420:42 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:421:155:421:162 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:422:140:422:147 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:423:125:423:132 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:424:110:424:117 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:425:95:425:102 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:426:80:426:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:427:65:427:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:428:50:428:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:429:35:429:42 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:430:170:430:177 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:431:155:431:162 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:432:140:432:147 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:433:125:433:132 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:434:110:434:117 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:435:95:435:102 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:436:80:436:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:437:65:437:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:438:50:438:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:439:35:439:42 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:440:35:440:42 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:441:55:441:62 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:442:35:442:42 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:443:40:443:47 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:444:40:444:47 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:445:40:445:47 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:446:40:446:47 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:447:55:447:62 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:448:55:448:62 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:449:50:449:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:450:58:450:65 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:451:58:451:65 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:452:40:452:47 | source(...) | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:453:49:453:56 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:454:49:454:56 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:455:69:455:76 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:456:64:456:71 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:457:49:457:56 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:458:79:458:86 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:459:64:459:71 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:460:49:460:56 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:461:94:461:101 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:462:79:462:86 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:463:64:463:71 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:464:49:464:56 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:465:109:465:116 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:466:94:466:101 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:467:79:467:86 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:468:64:468:71 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:469:49:469:56 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:470:124:470:131 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:471:109:471:116 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:472:94:472:101 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:473:79:473:86 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:474:64:474:71 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:475:49:475:56 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:476:139:476:146 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:477:124:477:131 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:478:109:478:116 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:479:94:479:101 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:480:79:480:86 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:481:64:481:71 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:482:49:482:56 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:483:154:483:161 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:484:139:484:146 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:485:124:485:131 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:486:109:486:116 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:487:94:487:101 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:488:79:488:86 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:489:64:489:71 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:490:49:490:56 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:491:169:491:176 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:492:154:492:161 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:493:139:493:146 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:494:124:494:131 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:495:109:495:116 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:496:94:496:101 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:497:79:497:86 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:498:64:498:71 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:499:49:499:56 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:500:184:500:191 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:501:169:501:176 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:502:154:502:161 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:503:139:503:146 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:504:124:504:131 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:505:109:505:116 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:506:94:506:101 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:507:79:507:86 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:508:64:508:71 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:509:49:509:56 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:510:49:510:56 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:511:69:511:76 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:512:49:512:56 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:513:54:513:61 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:514:54:514:61 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:515:43:515:50 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:516:43:516:50 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:517:35:517:42 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:518:35:518:42 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:519:25:519:32 | source(...) | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:520:25:520:32 | source(...) | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:521:34:521:41 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:522:34:522:41 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:523:54:523:61 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:524:49:524:56 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:525:34:525:41 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:526:64:526:71 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:527:49:527:56 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:528:34:528:41 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:529:79:529:86 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:530:64:530:71 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:531:49:531:56 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:532:34:532:41 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:533:94:533:101 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:534:79:534:86 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:535:64:535:71 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:536:49:536:56 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:537:34:537:41 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:538:109:538:116 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:539:94:539:101 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:540:79:540:86 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:541:64:541:71 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:542:49:542:56 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:543:34:543:41 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:544:124:544:131 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:545:109:545:116 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:546:94:546:101 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:547:79:547:86 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:548:64:548:71 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:549:49:549:56 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:550:34:550:41 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:551:139:551:146 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:552:124:552:131 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:553:109:553:116 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:554:94:554:101 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:555:79:555:86 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:556:64:556:71 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:557:49:557:56 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:558:34:558:41 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:559:154:559:161 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:560:139:560:146 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:561:124:561:131 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:562:109:562:116 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:563:94:563:101 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:564:79:564:86 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:565:64:565:71 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:566:49:566:56 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:567:34:567:41 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:568:169:568:176 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:569:154:569:161 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:570:139:570:146 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:571:124:571:131 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:572:109:572:116 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:573:94:573:101 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:574:79:574:86 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:575:64:575:71 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:576:49:576:56 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:577:34:577:41 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:578:34:578:41 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:579:54:579:61 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:580:34:580:41 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:581:39:581:46 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:582:39:582:46 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:583:53:583:60 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:584:53:584:60 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:585:68:585:75 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:586:68:586:75 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:587:63:587:70 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:588:71:588:78 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:589:71:589:78 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:590:53:590:60 | source(...) | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:591:62:591:69 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:592:62:592:69 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:593:82:593:89 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:594:77:594:84 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:595:62:595:69 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:596:92:596:99 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:597:77:597:84 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:598:62:598:69 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:599:107:599:114 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:600:92:600:99 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:601:77:601:84 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:602:62:602:69 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:603:122:603:129 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:604:107:604:114 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:605:92:605:99 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:606:77:606:84 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:607:62:607:69 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:608:137:608:144 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:609:122:609:129 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:610:107:610:114 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:611:92:611:99 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:612:77:612:84 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:613:62:613:69 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:614:152:614:159 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:615:137:615:144 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:616:122:616:129 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:617:107:617:114 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:618:92:618:99 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:619:77:619:84 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:620:62:620:69 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:621:167:621:174 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:622:152:622:159 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:623:137:623:144 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:624:122:624:129 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:625:107:625:114 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:626:92:626:99 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:627:77:627:84 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:628:62:628:69 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:629:182:629:189 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:630:167:630:174 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:631:152:631:159 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:632:137:632:144 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:633:122:633:129 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:634:107:634:114 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:635:92:635:99 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:636:77:636:84 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:637:62:637:69 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:638:197:638:204 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:639:182:639:189 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:640:167:640:174 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:641:152:641:159 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:642:137:642:144 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:643:122:643:129 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:644:107:644:114 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:645:92:645:99 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:646:77:646:84 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:647:62:647:69 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:648:62:648:69 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:649:82:649:89 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:650:62:650:69 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:651:67:651:74 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:652:67:652:74 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:653:56:653:63 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:654:56:654:63 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:655:48:655:55 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:656:48:656:55 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:657:38:657:45 | source(...) | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:658:38:658:45 | source(...) | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:659:47:659:54 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:660:47:660:54 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:661:67:661:74 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:662:62:662:69 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:663:47:663:54 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:664:77:664:84 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:665:62:665:69 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:666:47:666:54 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:667:92:667:99 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:668:77:668:84 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:669:62:669:69 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:670:47:670:54 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:671:107:671:114 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:672:92:672:99 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:673:77:673:84 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:674:62:674:69 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:675:47:675:54 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:676:122:676:129 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:677:107:677:114 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:678:92:678:99 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:679:77:679:84 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:680:62:680:69 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:681:47:681:54 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:682:137:682:144 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:683:122:683:129 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:684:107:684:114 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:685:92:685:99 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:686:77:686:84 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:687:62:687:69 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:688:47:688:54 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:689:152:689:159 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:690:137:690:144 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:691:122:691:129 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:692:107:692:114 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:693:92:693:99 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:694:77:694:84 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:695:62:695:69 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:696:47:696:54 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:697:167:697:174 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:698:152:698:159 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:699:137:699:144 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:700:122:700:129 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:701:107:701:114 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:702:92:702:99 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:703:77:703:84 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:704:62:704:69 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:705:47:705:54 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:706:182:706:189 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:707:167:707:174 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:708:152:708:159 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:709:137:709:144 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:710:122:710:129 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:711:107:711:114 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:712:92:712:99 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:713:77:713:84 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:714:62:714:69 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:715:47:715:54 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:716:47:716:54 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:717:67:717:74 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:718:47:718:54 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:719:52:719:59 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:720:52:720:59 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:721:41:721:48 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:722:41:722:48 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:723:56:723:63 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:724:56:724:63 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:725:51:725:58 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:726:59:726:66 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:727:59:727:66 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:728:41:728:48 | source(...) | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:729:50:729:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:730:50:730:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:731:70:731:77 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:732:65:732:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:733:50:733:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:734:80:734:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:735:65:735:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:736:50:736:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:737:95:737:102 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:738:80:738:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:739:65:739:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:740:50:740:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:741:110:741:117 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:742:95:742:102 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:743:80:743:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:744:65:744:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:745:50:745:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:746:125:746:132 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:747:110:747:117 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:748:95:748:102 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:749:80:749:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:750:65:750:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:751:50:751:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:752:140:752:147 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:753:125:753:132 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:754:110:754:117 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:755:95:755:102 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:756:80:756:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:757:65:757:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:758:50:758:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:759:155:759:162 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:760:140:760:147 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:761:125:761:132 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:762:110:762:117 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:763:95:763:102 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:764:80:764:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:765:65:765:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:766:50:766:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:767:170:767:177 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:768:155:768:162 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:769:140:769:147 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:770:125:770:132 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:771:110:771:117 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:772:95:772:102 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:773:80:773:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:774:65:774:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:775:50:775:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:776:185:776:192 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:777:170:777:177 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:778:155:778:162 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:779:140:779:147 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:780:125:780:132 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:781:110:781:117 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:782:95:782:102 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:783:80:783:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:784:65:784:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:785:50:785:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:786:50:786:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:787:70:787:77 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:788:50:788:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:789:55:789:62 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:790:55:790:62 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:791:44:791:51 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:792:44:792:51 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:793:36:793:43 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:794:36:794:43 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:795:26:795:33 | source(...) | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:796:26:796:33 | source(...) | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:797:35:797:42 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:798:35:798:42 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:799:55:799:62 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:800:50:800:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:801:35:801:42 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:802:65:802:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:803:50:803:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:804:35:804:42 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:805:80:805:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:806:65:806:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:807:50:807:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:808:35:808:42 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:809:95:809:102 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:810:80:810:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:811:65:811:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:812:50:812:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:813:35:813:42 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:814:110:814:117 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:815:95:815:102 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:816:80:816:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:817:65:817:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:818:50:818:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:819:35:819:42 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:820:125:820:132 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:821:110:821:117 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:822:95:822:102 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:823:80:823:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:824:65:824:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:825:50:825:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:826:35:826:42 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:827:140:827:147 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:828:125:828:132 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:829:110:829:117 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:830:95:830:102 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:831:80:831:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:832:65:832:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:833:50:833:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:834:35:834:42 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:835:155:835:162 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:836:140:836:147 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:837:125:837:132 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:838:110:838:117 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:839:95:839:102 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:840:80:840:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:841:65:841:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:842:50:842:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:843:35:843:42 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:844:170:844:177 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:845:155:845:162 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:846:140:846:147 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:847:125:847:132 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:848:110:848:117 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:849:95:849:102 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:850:80:850:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:851:65:851:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:852:50:852:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:853:35:853:42 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:854:35:854:42 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:855:55:855:62 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:856:35:856:42 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:857:40:857:47 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:858:40:858:47 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:859:40:859:47 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:860:40:860:47 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:861:55:861:62 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:862:55:862:62 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:863:50:863:57 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:864:58:864:65 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:865:58:865:65 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:866:40:866:47 | source(...) | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:867:49:867:56 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:868:49:868:56 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:869:69:869:76 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:870:64:870:71 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:871:49:871:56 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:872:79:872:86 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:873:64:873:71 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:874:49:874:56 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:875:94:875:101 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:876:79:876:86 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:877:64:877:71 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:878:49:878:56 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:879:109:879:116 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:880:94:880:101 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:881:79:881:86 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:882:64:882:71 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:883:49:883:56 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:884:124:884:131 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:885:109:885:116 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:886:94:886:101 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:887:79:887:86 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:888:64:888:71 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:889:49:889:56 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:890:139:890:146 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:891:124:891:131 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:892:109:892:116 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:893:94:893:101 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:894:79:894:86 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:895:64:895:71 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:896:49:896:56 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:897:154:897:161 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:898:139:898:146 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:899:124:899:131 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:900:109:900:116 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:901:94:901:101 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:902:79:902:86 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:903:64:903:71 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:904:49:904:56 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:905:169:905:176 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:906:154:906:161 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:907:139:907:146 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:908:124:908:131 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:909:109:909:116 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:910:94:910:101 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:911:79:911:86 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:912:64:912:71 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:913:49:913:56 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:914:184:914:191 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:915:169:915:176 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:916:154:916:161 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:917:139:917:146 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:918:124:918:131 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:919:109:919:116 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:920:94:920:101 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:921:79:921:86 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:922:64:922:71 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:923:49:923:56 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:924:49:924:56 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:925:69:925:76 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:926:49:926:56 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:927:54:927:61 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:928:54:928:61 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:929:43:929:50 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:930:43:930:50 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:931:35:931:42 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:932:35:932:42 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:933:25:933:32 | source(...) | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:934:25:934:32 | source(...) | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:935:34:935:41 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:936:34:936:41 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:937:54:937:61 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:938:49:938:56 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:939:34:939:41 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:940:64:940:71 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:941:49:941:56 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:942:34:942:41 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:943:79:943:86 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:944:64:944:71 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:945:49:945:56 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:946:34:946:41 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:947:94:947:101 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:948:79:948:86 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:949:64:949:71 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:950:49:950:56 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:951:34:951:41 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:952:109:952:116 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:953:94:953:101 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:954:79:954:86 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:955:64:955:71 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:956:49:956:56 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:957:34:957:41 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:958:124:958:131 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:959:109:959:116 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:960:94:960:101 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:961:79:961:86 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:962:64:962:71 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:963:49:963:56 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:964:34:964:41 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:965:139:965:146 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:966:124:966:131 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:967:109:967:116 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:968:94:968:101 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:969:79:969:86 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:970:64:970:71 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:971:49:971:56 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:972:34:972:41 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:973:154:973:161 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:974:139:974:146 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:975:124:975:131 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:976:109:976:116 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:977:94:977:101 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:978:79:978:86 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:979:64:979:71 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:980:49:980:56 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:981:34:981:41 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:982:169:982:176 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:983:154:983:161 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:984:139:984:146 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:985:124:985:131 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:986:109:986:116 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:987:94:987:101 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:988:79:988:86 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:989:64:989:71 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:990:49:990:56 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:991:34:991:41 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:992:34:992:41 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:993:54:993:61 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:994:34:994:41 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:995:39:995:46 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:996:39:996:46 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:998:65:998:72 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:999:48:999:55 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1000:59:1000:66 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1001:42:1001:49 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1002:53:1002:60 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1020:40:1020:47 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1021:35:1021:42 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1022:25:1022:32 | source(...) | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1023:34:1023:41 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1024:34:1024:41 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1025:54:1025:61 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1026:40:1026:47 | source(...) | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1028:49:1028:56 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1029:34:1029:41 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1030:64:1030:71 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1031:49:1031:56 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1032:34:1032:41 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1033:79:1033:86 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1034:64:1034:71 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1035:49:1035:56 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1036:34:1036:41 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1037:94:1037:101 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1038:79:1038:86 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1039:64:1039:71 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1040:49:1040:56 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1041:34:1041:41 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1042:109:1042:116 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1043:94:1043:101 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1044:79:1044:86 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1045:64:1045:71 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1046:49:1046:56 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1047:34:1047:41 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1048:124:1048:131 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1049:109:1049:116 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1050:94:1050:101 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1051:79:1051:86 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1052:64:1052:71 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1053:49:1053:56 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1054:34:1054:41 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1055:139:1055:146 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1056:124:1056:131 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1057:109:1057:116 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1058:94:1058:101 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1059:79:1059:86 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1060:64:1060:71 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1061:49:1061:56 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1062:34:1062:41 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1063:154:1063:161 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1064:139:1064:146 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1065:124:1065:131 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1066:109:1066:116 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1067:94:1067:101 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1068:79:1068:86 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1069:64:1069:71 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1070:49:1070:56 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1071:34:1071:41 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1072:169:1072:176 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1073:154:1073:161 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1074:139:1074:146 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1075:124:1075:131 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1076:109:1076:116 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1077:94:1077:101 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1078:79:1078:86 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1079:64:1079:71 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1080:49:1080:56 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1081:34:1081:41 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1083:34:1083:41 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1084:54:1084:61 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1085:39:1085:46 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1088:47:1088:54 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1089:53:1089:60 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1091:37:1091:44 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1095:80:1095:87 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1100:44:1100:51 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1105:43:1105:50 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1111:42:1111:49 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1116:61:1116:68 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1117:81:1117:88 | source(...) : String | -| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1119:42:1119:49 | source(...) : String | -| Log4jJndiInjectionTest.java:31:41:31:48 | source(...) : String | Log4jJndiInjectionTest.java:31:26:31:48 | (...)... | -| Log4jJndiInjectionTest.java:32:41:32:48 | source(...) : String | Log4jJndiInjectionTest.java:32:26:32:48 | (...)... | -| Log4jJndiInjectionTest.java:33:56:33:63 | source(...) : String | Log4jJndiInjectionTest.java:33:41:33:63 | (...)... | -| Log4jJndiInjectionTest.java:34:56:34:63 | source(...) : String | Log4jJndiInjectionTest.java:34:41:34:63 | (...)... | -| Log4jJndiInjectionTest.java:35:51:35:58 | source(...) : String | Log4jJndiInjectionTest.java:35:41:35:58 | (...)... | -| Log4jJndiInjectionTest.java:36:59:36:66 | source(...) : String | Log4jJndiInjectionTest.java:36:41:36:66 | (...)... | -| Log4jJndiInjectionTest.java:37:59:37:66 | source(...) : String | Log4jJndiInjectionTest.java:37:41:37:66 | (...)... | -| Log4jJndiInjectionTest.java:39:50:39:57 | source(...) : String | Log4jJndiInjectionTest.java:39:41:39:57 | (...)... | -| Log4jJndiInjectionTest.java:40:50:40:57 | source(...) : String | Log4jJndiInjectionTest.java:40:41:40:57 | (...)... | -| Log4jJndiInjectionTest.java:41:56:41:78 | {...} : Object[] [[]] : String | Log4jJndiInjectionTest.java:41:56:41:78 | new Object[] | -| Log4jJndiInjectionTest.java:41:70:41:77 | source(...) : String | Log4jJndiInjectionTest.java:41:56:41:78 | {...} : Object[] [[]] : String | -| Log4jJndiInjectionTest.java:42:65:42:72 | source(...) : String | Log4jJndiInjectionTest.java:42:56:42:72 | (...)... | -| Log4jJndiInjectionTest.java:43:50:43:57 | source(...) : String | Log4jJndiInjectionTest.java:43:41:43:57 | (...)... | -| Log4jJndiInjectionTest.java:44:80:44:87 | source(...) : String | Log4jJndiInjectionTest.java:44:71:44:87 | (...)... | -| Log4jJndiInjectionTest.java:45:65:45:72 | source(...) : String | Log4jJndiInjectionTest.java:45:56:45:72 | (...)... | -| Log4jJndiInjectionTest.java:46:50:46:57 | source(...) : String | Log4jJndiInjectionTest.java:46:41:46:57 | (...)... | -| Log4jJndiInjectionTest.java:47:95:47:102 | source(...) : String | Log4jJndiInjectionTest.java:47:86:47:102 | (...)... | -| Log4jJndiInjectionTest.java:48:80:48:87 | source(...) : String | Log4jJndiInjectionTest.java:48:71:48:87 | (...)... | -| Log4jJndiInjectionTest.java:49:65:49:72 | source(...) : String | Log4jJndiInjectionTest.java:49:56:49:72 | (...)... | -| Log4jJndiInjectionTest.java:50:50:50:57 | source(...) : String | Log4jJndiInjectionTest.java:50:41:50:57 | (...)... | -| Log4jJndiInjectionTest.java:51:110:51:117 | source(...) : String | Log4jJndiInjectionTest.java:51:101:51:117 | (...)... | -| Log4jJndiInjectionTest.java:52:95:52:102 | source(...) : String | Log4jJndiInjectionTest.java:52:86:52:102 | (...)... | -| Log4jJndiInjectionTest.java:53:80:53:87 | source(...) : String | Log4jJndiInjectionTest.java:53:71:53:87 | (...)... | -| Log4jJndiInjectionTest.java:54:65:54:72 | source(...) : String | Log4jJndiInjectionTest.java:54:56:54:72 | (...)... | -| Log4jJndiInjectionTest.java:55:50:55:57 | source(...) : String | Log4jJndiInjectionTest.java:55:41:55:57 | (...)... | -| Log4jJndiInjectionTest.java:56:125:56:132 | source(...) : String | Log4jJndiInjectionTest.java:56:116:56:132 | (...)... | -| Log4jJndiInjectionTest.java:57:110:57:117 | source(...) : String | Log4jJndiInjectionTest.java:57:101:57:117 | (...)... | -| Log4jJndiInjectionTest.java:58:95:58:102 | source(...) : String | Log4jJndiInjectionTest.java:58:86:58:102 | (...)... | -| Log4jJndiInjectionTest.java:59:80:59:87 | source(...) : String | Log4jJndiInjectionTest.java:59:71:59:87 | (...)... | -| Log4jJndiInjectionTest.java:60:65:60:72 | source(...) : String | Log4jJndiInjectionTest.java:60:56:60:72 | (...)... | -| Log4jJndiInjectionTest.java:61:50:61:57 | source(...) : String | Log4jJndiInjectionTest.java:61:41:61:57 | (...)... | -| Log4jJndiInjectionTest.java:62:140:62:147 | source(...) : String | Log4jJndiInjectionTest.java:62:131:62:147 | (...)... | -| Log4jJndiInjectionTest.java:63:125:63:132 | source(...) : String | Log4jJndiInjectionTest.java:63:116:63:132 | (...)... | -| Log4jJndiInjectionTest.java:64:110:64:117 | source(...) : String | Log4jJndiInjectionTest.java:64:101:64:117 | (...)... | -| Log4jJndiInjectionTest.java:65:95:65:102 | source(...) : String | Log4jJndiInjectionTest.java:65:86:65:102 | (...)... | -| Log4jJndiInjectionTest.java:66:80:66:87 | source(...) : String | Log4jJndiInjectionTest.java:66:71:66:87 | (...)... | -| Log4jJndiInjectionTest.java:67:65:67:72 | source(...) : String | Log4jJndiInjectionTest.java:67:56:67:72 | (...)... | -| Log4jJndiInjectionTest.java:68:50:68:57 | source(...) : String | Log4jJndiInjectionTest.java:68:41:68:57 | (...)... | -| Log4jJndiInjectionTest.java:69:155:69:162 | source(...) : String | Log4jJndiInjectionTest.java:69:146:69:162 | (...)... | -| Log4jJndiInjectionTest.java:70:140:70:147 | source(...) : String | Log4jJndiInjectionTest.java:70:131:70:147 | (...)... | -| Log4jJndiInjectionTest.java:71:125:71:132 | source(...) : String | Log4jJndiInjectionTest.java:71:116:71:132 | (...)... | -| Log4jJndiInjectionTest.java:72:110:72:117 | source(...) : String | Log4jJndiInjectionTest.java:72:101:72:117 | (...)... | -| Log4jJndiInjectionTest.java:73:95:73:102 | source(...) : String | Log4jJndiInjectionTest.java:73:86:73:102 | (...)... | -| Log4jJndiInjectionTest.java:74:80:74:87 | source(...) : String | Log4jJndiInjectionTest.java:74:71:74:87 | (...)... | -| Log4jJndiInjectionTest.java:75:65:75:72 | source(...) : String | Log4jJndiInjectionTest.java:75:56:75:72 | (...)... | -| Log4jJndiInjectionTest.java:76:50:76:57 | source(...) : String | Log4jJndiInjectionTest.java:76:41:76:57 | (...)... | -| Log4jJndiInjectionTest.java:77:170:77:177 | source(...) : String | Log4jJndiInjectionTest.java:77:161:77:177 | (...)... | -| Log4jJndiInjectionTest.java:78:155:78:162 | source(...) : String | Log4jJndiInjectionTest.java:78:146:78:162 | (...)... | -| Log4jJndiInjectionTest.java:79:140:79:147 | source(...) : String | Log4jJndiInjectionTest.java:79:131:79:147 | (...)... | -| Log4jJndiInjectionTest.java:80:125:80:132 | source(...) : String | Log4jJndiInjectionTest.java:80:116:80:132 | (...)... | -| Log4jJndiInjectionTest.java:81:110:81:117 | source(...) : String | Log4jJndiInjectionTest.java:81:101:81:117 | (...)... | -| Log4jJndiInjectionTest.java:82:95:82:102 | source(...) : String | Log4jJndiInjectionTest.java:82:86:82:102 | (...)... | -| Log4jJndiInjectionTest.java:83:80:83:87 | source(...) : String | Log4jJndiInjectionTest.java:83:71:83:87 | (...)... | -| Log4jJndiInjectionTest.java:84:65:84:72 | source(...) : String | Log4jJndiInjectionTest.java:84:56:84:72 | (...)... | -| Log4jJndiInjectionTest.java:85:50:85:57 | source(...) : String | Log4jJndiInjectionTest.java:85:41:85:57 | (...)... | -| Log4jJndiInjectionTest.java:86:185:86:192 | source(...) : String | Log4jJndiInjectionTest.java:86:176:86:192 | (...)... | -| Log4jJndiInjectionTest.java:87:170:87:177 | source(...) : String | Log4jJndiInjectionTest.java:87:161:87:177 | (...)... | -| Log4jJndiInjectionTest.java:88:155:88:162 | source(...) : String | Log4jJndiInjectionTest.java:88:146:88:162 | (...)... | -| Log4jJndiInjectionTest.java:89:140:89:147 | source(...) : String | Log4jJndiInjectionTest.java:89:131:89:147 | (...)... | -| Log4jJndiInjectionTest.java:90:125:90:132 | source(...) : String | Log4jJndiInjectionTest.java:90:116:90:132 | (...)... | -| Log4jJndiInjectionTest.java:91:110:91:117 | source(...) : String | Log4jJndiInjectionTest.java:91:101:91:117 | (...)... | -| Log4jJndiInjectionTest.java:92:95:92:102 | source(...) : String | Log4jJndiInjectionTest.java:92:86:92:102 | (...)... | -| Log4jJndiInjectionTest.java:93:80:93:87 | source(...) : String | Log4jJndiInjectionTest.java:93:71:93:87 | (...)... | -| Log4jJndiInjectionTest.java:94:65:94:72 | source(...) : String | Log4jJndiInjectionTest.java:94:56:94:72 | (...)... | -| Log4jJndiInjectionTest.java:95:50:95:57 | source(...) : String | Log4jJndiInjectionTest.java:95:41:95:57 | (...)... | -| Log4jJndiInjectionTest.java:96:50:96:57 | source(...) : String | Log4jJndiInjectionTest.java:96:41:96:57 | (...)... | -| Log4jJndiInjectionTest.java:97:70:97:77 | source(...) : String | Log4jJndiInjectionTest.java:97:56:97:77 | (...)... | -| Log4jJndiInjectionTest.java:98:50:98:57 | source(...) : String | Log4jJndiInjectionTest.java:98:41:98:57 | (...)... | -| Log4jJndiInjectionTest.java:99:55:99:62 | source(...) : String | Log4jJndiInjectionTest.java:99:41:99:62 | (...)... | -| Log4jJndiInjectionTest.java:100:55:100:62 | source(...) : String | Log4jJndiInjectionTest.java:100:41:100:62 | (...)... | -| Log4jJndiInjectionTest.java:101:44:101:51 | source(...) : String | Log4jJndiInjectionTest.java:101:26:101:51 | (...)... | -| Log4jJndiInjectionTest.java:102:44:102:51 | source(...) : String | Log4jJndiInjectionTest.java:102:26:102:51 | (...)... | -| Log4jJndiInjectionTest.java:103:36:103:43 | source(...) : String | Log4jJndiInjectionTest.java:103:26:103:43 | (...)... | -| Log4jJndiInjectionTest.java:104:36:104:43 | source(...) : String | Log4jJndiInjectionTest.java:104:26:104:43 | (...)... | -| Log4jJndiInjectionTest.java:107:35:107:42 | source(...) : String | Log4jJndiInjectionTest.java:107:26:107:42 | (...)... | -| Log4jJndiInjectionTest.java:108:35:108:42 | source(...) : String | Log4jJndiInjectionTest.java:108:26:108:42 | (...)... | -| Log4jJndiInjectionTest.java:109:41:109:63 | {...} : Object[] [[]] : String | Log4jJndiInjectionTest.java:109:41:109:63 | new Object[] | -| Log4jJndiInjectionTest.java:109:55:109:62 | source(...) : String | Log4jJndiInjectionTest.java:109:41:109:63 | {...} : Object[] [[]] : String | -| Log4jJndiInjectionTest.java:110:50:110:57 | source(...) : String | Log4jJndiInjectionTest.java:110:41:110:57 | (...)... | -| Log4jJndiInjectionTest.java:111:35:111:42 | source(...) : String | Log4jJndiInjectionTest.java:111:26:111:42 | (...)... | -| Log4jJndiInjectionTest.java:112:65:112:72 | source(...) : String | Log4jJndiInjectionTest.java:112:56:112:72 | (...)... | -| Log4jJndiInjectionTest.java:113:50:113:57 | source(...) : String | Log4jJndiInjectionTest.java:113:41:113:57 | (...)... | -| Log4jJndiInjectionTest.java:114:35:114:42 | source(...) : String | Log4jJndiInjectionTest.java:114:26:114:42 | (...)... | -| Log4jJndiInjectionTest.java:115:80:115:87 | source(...) : String | Log4jJndiInjectionTest.java:115:71:115:87 | (...)... | -| Log4jJndiInjectionTest.java:116:65:116:72 | source(...) : String | Log4jJndiInjectionTest.java:116:56:116:72 | (...)... | -| Log4jJndiInjectionTest.java:117:50:117:57 | source(...) : String | Log4jJndiInjectionTest.java:117:41:117:57 | (...)... | -| Log4jJndiInjectionTest.java:118:35:118:42 | source(...) : String | Log4jJndiInjectionTest.java:118:26:118:42 | (...)... | -| Log4jJndiInjectionTest.java:119:95:119:102 | source(...) : String | Log4jJndiInjectionTest.java:119:86:119:102 | (...)... | -| Log4jJndiInjectionTest.java:120:80:120:87 | source(...) : String | Log4jJndiInjectionTest.java:120:71:120:87 | (...)... | -| Log4jJndiInjectionTest.java:121:65:121:72 | source(...) : String | Log4jJndiInjectionTest.java:121:56:121:72 | (...)... | -| Log4jJndiInjectionTest.java:122:50:122:57 | source(...) : String | Log4jJndiInjectionTest.java:122:41:122:57 | (...)... | -| Log4jJndiInjectionTest.java:123:35:123:42 | source(...) : String | Log4jJndiInjectionTest.java:123:26:123:42 | (...)... | -| Log4jJndiInjectionTest.java:124:110:124:117 | source(...) : String | Log4jJndiInjectionTest.java:124:101:124:117 | (...)... | -| Log4jJndiInjectionTest.java:125:95:125:102 | source(...) : String | Log4jJndiInjectionTest.java:125:86:125:102 | (...)... | -| Log4jJndiInjectionTest.java:126:80:126:87 | source(...) : String | Log4jJndiInjectionTest.java:126:71:126:87 | (...)... | -| Log4jJndiInjectionTest.java:127:65:127:72 | source(...) : String | Log4jJndiInjectionTest.java:127:56:127:72 | (...)... | -| Log4jJndiInjectionTest.java:128:50:128:57 | source(...) : String | Log4jJndiInjectionTest.java:128:41:128:57 | (...)... | -| Log4jJndiInjectionTest.java:129:35:129:42 | source(...) : String | Log4jJndiInjectionTest.java:129:26:129:42 | (...)... | -| Log4jJndiInjectionTest.java:130:125:130:132 | source(...) : String | Log4jJndiInjectionTest.java:130:116:130:132 | (...)... | -| Log4jJndiInjectionTest.java:131:110:131:117 | source(...) : String | Log4jJndiInjectionTest.java:131:101:131:117 | (...)... | -| Log4jJndiInjectionTest.java:132:95:132:102 | source(...) : String | Log4jJndiInjectionTest.java:132:86:132:102 | (...)... | -| Log4jJndiInjectionTest.java:133:80:133:87 | source(...) : String | Log4jJndiInjectionTest.java:133:71:133:87 | (...)... | -| Log4jJndiInjectionTest.java:134:65:134:72 | source(...) : String | Log4jJndiInjectionTest.java:134:56:134:72 | (...)... | -| Log4jJndiInjectionTest.java:135:50:135:57 | source(...) : String | Log4jJndiInjectionTest.java:135:41:135:57 | (...)... | -| Log4jJndiInjectionTest.java:136:35:136:42 | source(...) : String | Log4jJndiInjectionTest.java:136:26:136:42 | (...)... | -| Log4jJndiInjectionTest.java:137:140:137:147 | source(...) : String | Log4jJndiInjectionTest.java:137:131:137:147 | (...)... | -| Log4jJndiInjectionTest.java:138:125:138:132 | source(...) : String | Log4jJndiInjectionTest.java:138:116:138:132 | (...)... | -| Log4jJndiInjectionTest.java:139:110:139:117 | source(...) : String | Log4jJndiInjectionTest.java:139:101:139:117 | (...)... | -| Log4jJndiInjectionTest.java:140:95:140:102 | source(...) : String | Log4jJndiInjectionTest.java:140:86:140:102 | (...)... | -| Log4jJndiInjectionTest.java:141:80:141:87 | source(...) : String | Log4jJndiInjectionTest.java:141:71:141:87 | (...)... | -| Log4jJndiInjectionTest.java:142:65:142:72 | source(...) : String | Log4jJndiInjectionTest.java:142:56:142:72 | (...)... | -| Log4jJndiInjectionTest.java:143:50:143:57 | source(...) : String | Log4jJndiInjectionTest.java:143:41:143:57 | (...)... | -| Log4jJndiInjectionTest.java:144:35:144:42 | source(...) : String | Log4jJndiInjectionTest.java:144:26:144:42 | (...)... | -| Log4jJndiInjectionTest.java:145:155:145:162 | source(...) : String | Log4jJndiInjectionTest.java:145:146:145:162 | (...)... | -| Log4jJndiInjectionTest.java:146:140:146:147 | source(...) : String | Log4jJndiInjectionTest.java:146:131:146:147 | (...)... | -| Log4jJndiInjectionTest.java:147:125:147:132 | source(...) : String | Log4jJndiInjectionTest.java:147:116:147:132 | (...)... | -| Log4jJndiInjectionTest.java:148:110:148:117 | source(...) : String | Log4jJndiInjectionTest.java:148:101:148:117 | (...)... | -| Log4jJndiInjectionTest.java:149:95:149:102 | source(...) : String | Log4jJndiInjectionTest.java:149:86:149:102 | (...)... | -| Log4jJndiInjectionTest.java:150:80:150:87 | source(...) : String | Log4jJndiInjectionTest.java:150:71:150:87 | (...)... | -| Log4jJndiInjectionTest.java:151:65:151:72 | source(...) : String | Log4jJndiInjectionTest.java:151:56:151:72 | (...)... | -| Log4jJndiInjectionTest.java:152:50:152:57 | source(...) : String | Log4jJndiInjectionTest.java:152:41:152:57 | (...)... | -| Log4jJndiInjectionTest.java:153:35:153:42 | source(...) : String | Log4jJndiInjectionTest.java:153:26:153:42 | (...)... | -| Log4jJndiInjectionTest.java:154:170:154:177 | source(...) : String | Log4jJndiInjectionTest.java:154:161:154:177 | (...)... | -| Log4jJndiInjectionTest.java:155:155:155:162 | source(...) : String | Log4jJndiInjectionTest.java:155:146:155:162 | (...)... | -| Log4jJndiInjectionTest.java:156:140:156:147 | source(...) : String | Log4jJndiInjectionTest.java:156:131:156:147 | (...)... | -| Log4jJndiInjectionTest.java:157:125:157:132 | source(...) : String | Log4jJndiInjectionTest.java:157:116:157:132 | (...)... | -| Log4jJndiInjectionTest.java:158:110:158:117 | source(...) : String | Log4jJndiInjectionTest.java:158:101:158:117 | (...)... | -| Log4jJndiInjectionTest.java:159:95:159:102 | source(...) : String | Log4jJndiInjectionTest.java:159:86:159:102 | (...)... | -| Log4jJndiInjectionTest.java:160:80:160:87 | source(...) : String | Log4jJndiInjectionTest.java:160:71:160:87 | (...)... | -| Log4jJndiInjectionTest.java:161:65:161:72 | source(...) : String | Log4jJndiInjectionTest.java:161:56:161:72 | (...)... | -| Log4jJndiInjectionTest.java:162:50:162:57 | source(...) : String | Log4jJndiInjectionTest.java:162:41:162:57 | (...)... | -| Log4jJndiInjectionTest.java:163:35:163:42 | source(...) : String | Log4jJndiInjectionTest.java:163:26:163:42 | (...)... | -| Log4jJndiInjectionTest.java:164:35:164:42 | source(...) : String | Log4jJndiInjectionTest.java:164:26:164:42 | (...)... | -| Log4jJndiInjectionTest.java:165:55:165:62 | source(...) : String | Log4jJndiInjectionTest.java:165:41:165:62 | (...)... | -| Log4jJndiInjectionTest.java:166:35:166:42 | source(...) : String | Log4jJndiInjectionTest.java:166:26:166:42 | (...)... | -| Log4jJndiInjectionTest.java:167:40:167:47 | source(...) : String | Log4jJndiInjectionTest.java:167:26:167:47 | (...)... | -| Log4jJndiInjectionTest.java:168:40:168:47 | source(...) : String | Log4jJndiInjectionTest.java:168:26:168:47 | (...)... | -| Log4jJndiInjectionTest.java:169:41:169:48 | source(...) : String | Log4jJndiInjectionTest.java:169:26:169:48 | (...)... | -| Log4jJndiInjectionTest.java:170:41:170:48 | source(...) : String | Log4jJndiInjectionTest.java:170:26:170:48 | (...)... | -| Log4jJndiInjectionTest.java:171:56:171:63 | source(...) : String | Log4jJndiInjectionTest.java:171:41:171:63 | (...)... | -| Log4jJndiInjectionTest.java:172:56:172:63 | source(...) : String | Log4jJndiInjectionTest.java:172:41:172:63 | (...)... | -| Log4jJndiInjectionTest.java:173:51:173:58 | source(...) : String | Log4jJndiInjectionTest.java:173:41:173:58 | (...)... | -| Log4jJndiInjectionTest.java:174:59:174:66 | source(...) : String | Log4jJndiInjectionTest.java:174:41:174:66 | (...)... | -| Log4jJndiInjectionTest.java:175:59:175:66 | source(...) : String | Log4jJndiInjectionTest.java:175:41:175:66 | (...)... | -| Log4jJndiInjectionTest.java:177:50:177:57 | source(...) : String | Log4jJndiInjectionTest.java:177:41:177:57 | (...)... | -| Log4jJndiInjectionTest.java:178:50:178:57 | source(...) : String | Log4jJndiInjectionTest.java:178:41:178:57 | (...)... | -| Log4jJndiInjectionTest.java:179:56:179:78 | {...} : Object[] [[]] : String | Log4jJndiInjectionTest.java:179:56:179:78 | new Object[] | -| Log4jJndiInjectionTest.java:179:70:179:77 | source(...) : String | Log4jJndiInjectionTest.java:179:56:179:78 | {...} : Object[] [[]] : String | -| Log4jJndiInjectionTest.java:180:65:180:72 | source(...) : String | Log4jJndiInjectionTest.java:180:56:180:72 | (...)... | -| Log4jJndiInjectionTest.java:181:50:181:57 | source(...) : String | Log4jJndiInjectionTest.java:181:41:181:57 | (...)... | -| Log4jJndiInjectionTest.java:182:80:182:87 | source(...) : String | Log4jJndiInjectionTest.java:182:71:182:87 | (...)... | -| Log4jJndiInjectionTest.java:183:65:183:72 | source(...) : String | Log4jJndiInjectionTest.java:183:56:183:72 | (...)... | -| Log4jJndiInjectionTest.java:184:50:184:57 | source(...) : String | Log4jJndiInjectionTest.java:184:41:184:57 | (...)... | -| Log4jJndiInjectionTest.java:185:95:185:102 | source(...) : String | Log4jJndiInjectionTest.java:185:86:185:102 | (...)... | -| Log4jJndiInjectionTest.java:186:80:186:87 | source(...) : String | Log4jJndiInjectionTest.java:186:71:186:87 | (...)... | -| Log4jJndiInjectionTest.java:187:65:187:72 | source(...) : String | Log4jJndiInjectionTest.java:187:56:187:72 | (...)... | -| Log4jJndiInjectionTest.java:188:50:188:57 | source(...) : String | Log4jJndiInjectionTest.java:188:41:188:57 | (...)... | -| Log4jJndiInjectionTest.java:189:110:189:117 | source(...) : String | Log4jJndiInjectionTest.java:189:101:189:117 | (...)... | -| Log4jJndiInjectionTest.java:190:95:190:102 | source(...) : String | Log4jJndiInjectionTest.java:190:86:190:102 | (...)... | -| Log4jJndiInjectionTest.java:191:80:191:87 | source(...) : String | Log4jJndiInjectionTest.java:191:71:191:87 | (...)... | -| Log4jJndiInjectionTest.java:192:65:192:72 | source(...) : String | Log4jJndiInjectionTest.java:192:56:192:72 | (...)... | -| Log4jJndiInjectionTest.java:193:50:193:57 | source(...) : String | Log4jJndiInjectionTest.java:193:41:193:57 | (...)... | -| Log4jJndiInjectionTest.java:194:125:194:132 | source(...) : String | Log4jJndiInjectionTest.java:194:116:194:132 | (...)... | -| Log4jJndiInjectionTest.java:195:110:195:117 | source(...) : String | Log4jJndiInjectionTest.java:195:101:195:117 | (...)... | -| Log4jJndiInjectionTest.java:196:95:196:102 | source(...) : String | Log4jJndiInjectionTest.java:196:86:196:102 | (...)... | -| Log4jJndiInjectionTest.java:197:80:197:87 | source(...) : String | Log4jJndiInjectionTest.java:197:71:197:87 | (...)... | -| Log4jJndiInjectionTest.java:198:65:198:72 | source(...) : String | Log4jJndiInjectionTest.java:198:56:198:72 | (...)... | -| Log4jJndiInjectionTest.java:199:50:199:57 | source(...) : String | Log4jJndiInjectionTest.java:199:41:199:57 | (...)... | -| Log4jJndiInjectionTest.java:200:140:200:147 | source(...) : String | Log4jJndiInjectionTest.java:200:131:200:147 | (...)... | -| Log4jJndiInjectionTest.java:201:125:201:132 | source(...) : String | Log4jJndiInjectionTest.java:201:116:201:132 | (...)... | -| Log4jJndiInjectionTest.java:202:110:202:117 | source(...) : String | Log4jJndiInjectionTest.java:202:101:202:117 | (...)... | -| Log4jJndiInjectionTest.java:203:95:203:102 | source(...) : String | Log4jJndiInjectionTest.java:203:86:203:102 | (...)... | -| Log4jJndiInjectionTest.java:204:80:204:87 | source(...) : String | Log4jJndiInjectionTest.java:204:71:204:87 | (...)... | -| Log4jJndiInjectionTest.java:205:65:205:72 | source(...) : String | Log4jJndiInjectionTest.java:205:56:205:72 | (...)... | -| Log4jJndiInjectionTest.java:206:50:206:57 | source(...) : String | Log4jJndiInjectionTest.java:206:41:206:57 | (...)... | -| Log4jJndiInjectionTest.java:207:155:207:162 | source(...) : String | Log4jJndiInjectionTest.java:207:146:207:162 | (...)... | -| Log4jJndiInjectionTest.java:208:140:208:147 | source(...) : String | Log4jJndiInjectionTest.java:208:131:208:147 | (...)... | -| Log4jJndiInjectionTest.java:209:125:209:132 | source(...) : String | Log4jJndiInjectionTest.java:209:116:209:132 | (...)... | -| Log4jJndiInjectionTest.java:210:110:210:117 | source(...) : String | Log4jJndiInjectionTest.java:210:101:210:117 | (...)... | -| Log4jJndiInjectionTest.java:211:95:211:102 | source(...) : String | Log4jJndiInjectionTest.java:211:86:211:102 | (...)... | -| Log4jJndiInjectionTest.java:212:80:212:87 | source(...) : String | Log4jJndiInjectionTest.java:212:71:212:87 | (...)... | -| Log4jJndiInjectionTest.java:213:65:213:72 | source(...) : String | Log4jJndiInjectionTest.java:213:56:213:72 | (...)... | -| Log4jJndiInjectionTest.java:214:50:214:57 | source(...) : String | Log4jJndiInjectionTest.java:214:41:214:57 | (...)... | -| Log4jJndiInjectionTest.java:215:170:215:177 | source(...) : String | Log4jJndiInjectionTest.java:215:161:215:177 | (...)... | -| Log4jJndiInjectionTest.java:216:155:216:162 | source(...) : String | Log4jJndiInjectionTest.java:216:146:216:162 | (...)... | -| Log4jJndiInjectionTest.java:217:140:217:147 | source(...) : String | Log4jJndiInjectionTest.java:217:131:217:147 | (...)... | -| Log4jJndiInjectionTest.java:218:125:218:132 | source(...) : String | Log4jJndiInjectionTest.java:218:116:218:132 | (...)... | -| Log4jJndiInjectionTest.java:219:110:219:117 | source(...) : String | Log4jJndiInjectionTest.java:219:101:219:117 | (...)... | -| Log4jJndiInjectionTest.java:220:95:220:102 | source(...) : String | Log4jJndiInjectionTest.java:220:86:220:102 | (...)... | -| Log4jJndiInjectionTest.java:221:80:221:87 | source(...) : String | Log4jJndiInjectionTest.java:221:71:221:87 | (...)... | -| Log4jJndiInjectionTest.java:222:65:222:72 | source(...) : String | Log4jJndiInjectionTest.java:222:56:222:72 | (...)... | -| Log4jJndiInjectionTest.java:223:50:223:57 | source(...) : String | Log4jJndiInjectionTest.java:223:41:223:57 | (...)... | -| Log4jJndiInjectionTest.java:224:185:224:192 | source(...) : String | Log4jJndiInjectionTest.java:224:176:224:192 | (...)... | -| Log4jJndiInjectionTest.java:225:170:225:177 | source(...) : String | Log4jJndiInjectionTest.java:225:161:225:177 | (...)... | -| Log4jJndiInjectionTest.java:226:155:226:162 | source(...) : String | Log4jJndiInjectionTest.java:226:146:226:162 | (...)... | -| Log4jJndiInjectionTest.java:227:140:227:147 | source(...) : String | Log4jJndiInjectionTest.java:227:131:227:147 | (...)... | -| Log4jJndiInjectionTest.java:228:125:228:132 | source(...) : String | Log4jJndiInjectionTest.java:228:116:228:132 | (...)... | -| Log4jJndiInjectionTest.java:229:110:229:117 | source(...) : String | Log4jJndiInjectionTest.java:229:101:229:117 | (...)... | -| Log4jJndiInjectionTest.java:230:95:230:102 | source(...) : String | Log4jJndiInjectionTest.java:230:86:230:102 | (...)... | -| Log4jJndiInjectionTest.java:231:80:231:87 | source(...) : String | Log4jJndiInjectionTest.java:231:71:231:87 | (...)... | -| Log4jJndiInjectionTest.java:232:65:232:72 | source(...) : String | Log4jJndiInjectionTest.java:232:56:232:72 | (...)... | -| Log4jJndiInjectionTest.java:233:50:233:57 | source(...) : String | Log4jJndiInjectionTest.java:233:41:233:57 | (...)... | -| Log4jJndiInjectionTest.java:234:50:234:57 | source(...) : String | Log4jJndiInjectionTest.java:234:41:234:57 | (...)... | -| Log4jJndiInjectionTest.java:235:70:235:77 | source(...) : String | Log4jJndiInjectionTest.java:235:56:235:77 | (...)... | -| Log4jJndiInjectionTest.java:236:50:236:57 | source(...) : String | Log4jJndiInjectionTest.java:236:41:236:57 | (...)... | -| Log4jJndiInjectionTest.java:237:55:237:62 | source(...) : String | Log4jJndiInjectionTest.java:237:41:237:62 | (...)... | -| Log4jJndiInjectionTest.java:238:55:238:62 | source(...) : String | Log4jJndiInjectionTest.java:238:41:238:62 | (...)... | -| Log4jJndiInjectionTest.java:239:44:239:51 | source(...) : String | Log4jJndiInjectionTest.java:239:26:239:51 | (...)... | -| Log4jJndiInjectionTest.java:240:44:240:51 | source(...) : String | Log4jJndiInjectionTest.java:240:26:240:51 | (...)... | -| Log4jJndiInjectionTest.java:241:36:241:43 | source(...) : String | Log4jJndiInjectionTest.java:241:26:241:43 | (...)... | -| Log4jJndiInjectionTest.java:242:36:242:43 | source(...) : String | Log4jJndiInjectionTest.java:242:26:242:43 | (...)... | -| Log4jJndiInjectionTest.java:245:35:245:42 | source(...) : String | Log4jJndiInjectionTest.java:245:26:245:42 | (...)... | -| Log4jJndiInjectionTest.java:246:35:246:42 | source(...) : String | Log4jJndiInjectionTest.java:246:26:246:42 | (...)... | -| Log4jJndiInjectionTest.java:247:41:247:63 | {...} : Object[] [[]] : String | Log4jJndiInjectionTest.java:247:41:247:63 | new Object[] | -| Log4jJndiInjectionTest.java:247:55:247:62 | source(...) : String | Log4jJndiInjectionTest.java:247:41:247:63 | {...} : Object[] [[]] : String | -| Log4jJndiInjectionTest.java:248:50:248:57 | source(...) : String | Log4jJndiInjectionTest.java:248:41:248:57 | (...)... | -| Log4jJndiInjectionTest.java:249:35:249:42 | source(...) : String | Log4jJndiInjectionTest.java:249:26:249:42 | (...)... | -| Log4jJndiInjectionTest.java:250:65:250:72 | source(...) : String | Log4jJndiInjectionTest.java:250:56:250:72 | (...)... | -| Log4jJndiInjectionTest.java:251:50:251:57 | source(...) : String | Log4jJndiInjectionTest.java:251:41:251:57 | (...)... | -| Log4jJndiInjectionTest.java:252:35:252:42 | source(...) : String | Log4jJndiInjectionTest.java:252:26:252:42 | (...)... | -| Log4jJndiInjectionTest.java:253:80:253:87 | source(...) : String | Log4jJndiInjectionTest.java:253:71:253:87 | (...)... | -| Log4jJndiInjectionTest.java:254:65:254:72 | source(...) : String | Log4jJndiInjectionTest.java:254:56:254:72 | (...)... | -| Log4jJndiInjectionTest.java:255:50:255:57 | source(...) : String | Log4jJndiInjectionTest.java:255:41:255:57 | (...)... | -| Log4jJndiInjectionTest.java:256:35:256:42 | source(...) : String | Log4jJndiInjectionTest.java:256:26:256:42 | (...)... | -| Log4jJndiInjectionTest.java:257:95:257:102 | source(...) : String | Log4jJndiInjectionTest.java:257:86:257:102 | (...)... | -| Log4jJndiInjectionTest.java:258:80:258:87 | source(...) : String | Log4jJndiInjectionTest.java:258:71:258:87 | (...)... | -| Log4jJndiInjectionTest.java:259:65:259:72 | source(...) : String | Log4jJndiInjectionTest.java:259:56:259:72 | (...)... | -| Log4jJndiInjectionTest.java:260:50:260:57 | source(...) : String | Log4jJndiInjectionTest.java:260:41:260:57 | (...)... | -| Log4jJndiInjectionTest.java:261:35:261:42 | source(...) : String | Log4jJndiInjectionTest.java:261:26:261:42 | (...)... | -| Log4jJndiInjectionTest.java:262:110:262:117 | source(...) : String | Log4jJndiInjectionTest.java:262:101:262:117 | (...)... | -| Log4jJndiInjectionTest.java:263:95:263:102 | source(...) : String | Log4jJndiInjectionTest.java:263:86:263:102 | (...)... | -| Log4jJndiInjectionTest.java:264:80:264:87 | source(...) : String | Log4jJndiInjectionTest.java:264:71:264:87 | (...)... | -| Log4jJndiInjectionTest.java:265:65:265:72 | source(...) : String | Log4jJndiInjectionTest.java:265:56:265:72 | (...)... | -| Log4jJndiInjectionTest.java:266:50:266:57 | source(...) : String | Log4jJndiInjectionTest.java:266:41:266:57 | (...)... | -| Log4jJndiInjectionTest.java:267:35:267:42 | source(...) : String | Log4jJndiInjectionTest.java:267:26:267:42 | (...)... | -| Log4jJndiInjectionTest.java:268:125:268:132 | source(...) : String | Log4jJndiInjectionTest.java:268:116:268:132 | (...)... | -| Log4jJndiInjectionTest.java:269:110:269:117 | source(...) : String | Log4jJndiInjectionTest.java:269:101:269:117 | (...)... | -| Log4jJndiInjectionTest.java:270:95:270:102 | source(...) : String | Log4jJndiInjectionTest.java:270:86:270:102 | (...)... | -| Log4jJndiInjectionTest.java:271:80:271:87 | source(...) : String | Log4jJndiInjectionTest.java:271:71:271:87 | (...)... | -| Log4jJndiInjectionTest.java:272:65:272:72 | source(...) : String | Log4jJndiInjectionTest.java:272:56:272:72 | (...)... | -| Log4jJndiInjectionTest.java:273:50:273:57 | source(...) : String | Log4jJndiInjectionTest.java:273:41:273:57 | (...)... | -| Log4jJndiInjectionTest.java:274:35:274:42 | source(...) : String | Log4jJndiInjectionTest.java:274:26:274:42 | (...)... | -| Log4jJndiInjectionTest.java:275:140:275:147 | source(...) : String | Log4jJndiInjectionTest.java:275:131:275:147 | (...)... | -| Log4jJndiInjectionTest.java:276:125:276:132 | source(...) : String | Log4jJndiInjectionTest.java:276:116:276:132 | (...)... | -| Log4jJndiInjectionTest.java:277:110:277:117 | source(...) : String | Log4jJndiInjectionTest.java:277:101:277:117 | (...)... | -| Log4jJndiInjectionTest.java:278:95:278:102 | source(...) : String | Log4jJndiInjectionTest.java:278:86:278:102 | (...)... | -| Log4jJndiInjectionTest.java:279:80:279:87 | source(...) : String | Log4jJndiInjectionTest.java:279:71:279:87 | (...)... | -| Log4jJndiInjectionTest.java:280:65:280:72 | source(...) : String | Log4jJndiInjectionTest.java:280:56:280:72 | (...)... | -| Log4jJndiInjectionTest.java:281:50:281:57 | source(...) : String | Log4jJndiInjectionTest.java:281:41:281:57 | (...)... | -| Log4jJndiInjectionTest.java:282:35:282:42 | source(...) : String | Log4jJndiInjectionTest.java:282:26:282:42 | (...)... | -| Log4jJndiInjectionTest.java:283:155:283:162 | source(...) : String | Log4jJndiInjectionTest.java:283:146:283:162 | (...)... | -| Log4jJndiInjectionTest.java:284:140:284:147 | source(...) : String | Log4jJndiInjectionTest.java:284:131:284:147 | (...)... | -| Log4jJndiInjectionTest.java:285:125:285:132 | source(...) : String | Log4jJndiInjectionTest.java:285:116:285:132 | (...)... | -| Log4jJndiInjectionTest.java:286:110:286:117 | source(...) : String | Log4jJndiInjectionTest.java:286:101:286:117 | (...)... | -| Log4jJndiInjectionTest.java:287:95:287:102 | source(...) : String | Log4jJndiInjectionTest.java:287:86:287:102 | (...)... | -| Log4jJndiInjectionTest.java:288:80:288:87 | source(...) : String | Log4jJndiInjectionTest.java:288:71:288:87 | (...)... | -| Log4jJndiInjectionTest.java:289:65:289:72 | source(...) : String | Log4jJndiInjectionTest.java:289:56:289:72 | (...)... | -| Log4jJndiInjectionTest.java:290:50:290:57 | source(...) : String | Log4jJndiInjectionTest.java:290:41:290:57 | (...)... | -| Log4jJndiInjectionTest.java:291:35:291:42 | source(...) : String | Log4jJndiInjectionTest.java:291:26:291:42 | (...)... | -| Log4jJndiInjectionTest.java:292:170:292:177 | source(...) : String | Log4jJndiInjectionTest.java:292:161:292:177 | (...)... | -| Log4jJndiInjectionTest.java:293:155:293:162 | source(...) : String | Log4jJndiInjectionTest.java:293:146:293:162 | (...)... | -| Log4jJndiInjectionTest.java:294:140:294:147 | source(...) : String | Log4jJndiInjectionTest.java:294:131:294:147 | (...)... | -| Log4jJndiInjectionTest.java:295:125:295:132 | source(...) : String | Log4jJndiInjectionTest.java:295:116:295:132 | (...)... | -| Log4jJndiInjectionTest.java:296:110:296:117 | source(...) : String | Log4jJndiInjectionTest.java:296:101:296:117 | (...)... | -| Log4jJndiInjectionTest.java:297:95:297:102 | source(...) : String | Log4jJndiInjectionTest.java:297:86:297:102 | (...)... | -| Log4jJndiInjectionTest.java:298:80:298:87 | source(...) : String | Log4jJndiInjectionTest.java:298:71:298:87 | (...)... | -| Log4jJndiInjectionTest.java:299:65:299:72 | source(...) : String | Log4jJndiInjectionTest.java:299:56:299:72 | (...)... | -| Log4jJndiInjectionTest.java:300:50:300:57 | source(...) : String | Log4jJndiInjectionTest.java:300:41:300:57 | (...)... | -| Log4jJndiInjectionTest.java:301:35:301:42 | source(...) : String | Log4jJndiInjectionTest.java:301:26:301:42 | (...)... | -| Log4jJndiInjectionTest.java:302:35:302:42 | source(...) : String | Log4jJndiInjectionTest.java:302:26:302:42 | (...)... | -| Log4jJndiInjectionTest.java:303:55:303:62 | source(...) : String | Log4jJndiInjectionTest.java:303:41:303:62 | (...)... | -| Log4jJndiInjectionTest.java:304:35:304:42 | source(...) : String | Log4jJndiInjectionTest.java:304:26:304:42 | (...)... | -| Log4jJndiInjectionTest.java:305:40:305:47 | source(...) : String | Log4jJndiInjectionTest.java:305:26:305:47 | (...)... | -| Log4jJndiInjectionTest.java:306:40:306:47 | source(...) : String | Log4jJndiInjectionTest.java:306:26:306:47 | (...)... | -| Log4jJndiInjectionTest.java:307:41:307:48 | source(...) : String | Log4jJndiInjectionTest.java:307:26:307:48 | (...)... | -| Log4jJndiInjectionTest.java:308:41:308:48 | source(...) : String | Log4jJndiInjectionTest.java:308:26:308:48 | (...)... | -| Log4jJndiInjectionTest.java:309:56:309:63 | source(...) : String | Log4jJndiInjectionTest.java:309:41:309:63 | (...)... | -| Log4jJndiInjectionTest.java:310:56:310:63 | source(...) : String | Log4jJndiInjectionTest.java:310:41:310:63 | (...)... | -| Log4jJndiInjectionTest.java:311:51:311:58 | source(...) : String | Log4jJndiInjectionTest.java:311:41:311:58 | (...)... | -| Log4jJndiInjectionTest.java:312:59:312:66 | source(...) : String | Log4jJndiInjectionTest.java:312:41:312:66 | (...)... | -| Log4jJndiInjectionTest.java:313:59:313:66 | source(...) : String | Log4jJndiInjectionTest.java:313:41:313:66 | (...)... | -| Log4jJndiInjectionTest.java:315:50:315:57 | source(...) : String | Log4jJndiInjectionTest.java:315:41:315:57 | (...)... | -| Log4jJndiInjectionTest.java:316:50:316:57 | source(...) : String | Log4jJndiInjectionTest.java:316:41:316:57 | (...)... | -| Log4jJndiInjectionTest.java:317:56:317:78 | {...} : Object[] [[]] : String | Log4jJndiInjectionTest.java:317:56:317:78 | new Object[] | -| Log4jJndiInjectionTest.java:317:70:317:77 | source(...) : String | Log4jJndiInjectionTest.java:317:56:317:78 | {...} : Object[] [[]] : String | -| Log4jJndiInjectionTest.java:318:65:318:72 | source(...) : String | Log4jJndiInjectionTest.java:318:56:318:72 | (...)... | -| Log4jJndiInjectionTest.java:319:50:319:57 | source(...) : String | Log4jJndiInjectionTest.java:319:41:319:57 | (...)... | -| Log4jJndiInjectionTest.java:320:80:320:87 | source(...) : String | Log4jJndiInjectionTest.java:320:71:320:87 | (...)... | -| Log4jJndiInjectionTest.java:321:65:321:72 | source(...) : String | Log4jJndiInjectionTest.java:321:56:321:72 | (...)... | -| Log4jJndiInjectionTest.java:322:50:322:57 | source(...) : String | Log4jJndiInjectionTest.java:322:41:322:57 | (...)... | -| Log4jJndiInjectionTest.java:323:95:323:102 | source(...) : String | Log4jJndiInjectionTest.java:323:86:323:102 | (...)... | -| Log4jJndiInjectionTest.java:324:80:324:87 | source(...) : String | Log4jJndiInjectionTest.java:324:71:324:87 | (...)... | -| Log4jJndiInjectionTest.java:325:65:325:72 | source(...) : String | Log4jJndiInjectionTest.java:325:56:325:72 | (...)... | -| Log4jJndiInjectionTest.java:326:50:326:57 | source(...) : String | Log4jJndiInjectionTest.java:326:41:326:57 | (...)... | -| Log4jJndiInjectionTest.java:327:110:327:117 | source(...) : String | Log4jJndiInjectionTest.java:327:101:327:117 | (...)... | -| Log4jJndiInjectionTest.java:328:95:328:102 | source(...) : String | Log4jJndiInjectionTest.java:328:86:328:102 | (...)... | -| Log4jJndiInjectionTest.java:329:80:329:87 | source(...) : String | Log4jJndiInjectionTest.java:329:71:329:87 | (...)... | -| Log4jJndiInjectionTest.java:330:65:330:72 | source(...) : String | Log4jJndiInjectionTest.java:330:56:330:72 | (...)... | -| Log4jJndiInjectionTest.java:331:50:331:57 | source(...) : String | Log4jJndiInjectionTest.java:331:41:331:57 | (...)... | -| Log4jJndiInjectionTest.java:332:125:332:132 | source(...) : String | Log4jJndiInjectionTest.java:332:116:332:132 | (...)... | -| Log4jJndiInjectionTest.java:333:110:333:117 | source(...) : String | Log4jJndiInjectionTest.java:333:101:333:117 | (...)... | -| Log4jJndiInjectionTest.java:334:95:334:102 | source(...) : String | Log4jJndiInjectionTest.java:334:86:334:102 | (...)... | -| Log4jJndiInjectionTest.java:335:80:335:87 | source(...) : String | Log4jJndiInjectionTest.java:335:71:335:87 | (...)... | -| Log4jJndiInjectionTest.java:336:65:336:72 | source(...) : String | Log4jJndiInjectionTest.java:336:56:336:72 | (...)... | -| Log4jJndiInjectionTest.java:337:50:337:57 | source(...) : String | Log4jJndiInjectionTest.java:337:41:337:57 | (...)... | -| Log4jJndiInjectionTest.java:338:140:338:147 | source(...) : String | Log4jJndiInjectionTest.java:338:131:338:147 | (...)... | -| Log4jJndiInjectionTest.java:339:125:339:132 | source(...) : String | Log4jJndiInjectionTest.java:339:116:339:132 | (...)... | -| Log4jJndiInjectionTest.java:340:110:340:117 | source(...) : String | Log4jJndiInjectionTest.java:340:101:340:117 | (...)... | -| Log4jJndiInjectionTest.java:341:95:341:102 | source(...) : String | Log4jJndiInjectionTest.java:341:86:341:102 | (...)... | -| Log4jJndiInjectionTest.java:342:80:342:87 | source(...) : String | Log4jJndiInjectionTest.java:342:71:342:87 | (...)... | -| Log4jJndiInjectionTest.java:343:65:343:72 | source(...) : String | Log4jJndiInjectionTest.java:343:56:343:72 | (...)... | -| Log4jJndiInjectionTest.java:344:50:344:57 | source(...) : String | Log4jJndiInjectionTest.java:344:41:344:57 | (...)... | -| Log4jJndiInjectionTest.java:345:155:345:162 | source(...) : String | Log4jJndiInjectionTest.java:345:146:345:162 | (...)... | -| Log4jJndiInjectionTest.java:346:140:346:147 | source(...) : String | Log4jJndiInjectionTest.java:346:131:346:147 | (...)... | -| Log4jJndiInjectionTest.java:347:125:347:132 | source(...) : String | Log4jJndiInjectionTest.java:347:116:347:132 | (...)... | -| Log4jJndiInjectionTest.java:348:110:348:117 | source(...) : String | Log4jJndiInjectionTest.java:348:101:348:117 | (...)... | -| Log4jJndiInjectionTest.java:349:95:349:102 | source(...) : String | Log4jJndiInjectionTest.java:349:86:349:102 | (...)... | -| Log4jJndiInjectionTest.java:350:80:350:87 | source(...) : String | Log4jJndiInjectionTest.java:350:71:350:87 | (...)... | -| Log4jJndiInjectionTest.java:351:65:351:72 | source(...) : String | Log4jJndiInjectionTest.java:351:56:351:72 | (...)... | -| Log4jJndiInjectionTest.java:352:50:352:57 | source(...) : String | Log4jJndiInjectionTest.java:352:41:352:57 | (...)... | -| Log4jJndiInjectionTest.java:353:170:353:177 | source(...) : String | Log4jJndiInjectionTest.java:353:161:353:177 | (...)... | -| Log4jJndiInjectionTest.java:354:155:354:162 | source(...) : String | Log4jJndiInjectionTest.java:354:146:354:162 | (...)... | -| Log4jJndiInjectionTest.java:355:140:355:147 | source(...) : String | Log4jJndiInjectionTest.java:355:131:355:147 | (...)... | -| Log4jJndiInjectionTest.java:356:125:356:132 | source(...) : String | Log4jJndiInjectionTest.java:356:116:356:132 | (...)... | -| Log4jJndiInjectionTest.java:357:110:357:117 | source(...) : String | Log4jJndiInjectionTest.java:357:101:357:117 | (...)... | -| Log4jJndiInjectionTest.java:358:95:358:102 | source(...) : String | Log4jJndiInjectionTest.java:358:86:358:102 | (...)... | -| Log4jJndiInjectionTest.java:359:80:359:87 | source(...) : String | Log4jJndiInjectionTest.java:359:71:359:87 | (...)... | -| Log4jJndiInjectionTest.java:360:65:360:72 | source(...) : String | Log4jJndiInjectionTest.java:360:56:360:72 | (...)... | -| Log4jJndiInjectionTest.java:361:50:361:57 | source(...) : String | Log4jJndiInjectionTest.java:361:41:361:57 | (...)... | -| Log4jJndiInjectionTest.java:362:185:362:192 | source(...) : String | Log4jJndiInjectionTest.java:362:176:362:192 | (...)... | -| Log4jJndiInjectionTest.java:363:170:363:177 | source(...) : String | Log4jJndiInjectionTest.java:363:161:363:177 | (...)... | -| Log4jJndiInjectionTest.java:364:155:364:162 | source(...) : String | Log4jJndiInjectionTest.java:364:146:364:162 | (...)... | -| Log4jJndiInjectionTest.java:365:140:365:147 | source(...) : String | Log4jJndiInjectionTest.java:365:131:365:147 | (...)... | -| Log4jJndiInjectionTest.java:366:125:366:132 | source(...) : String | Log4jJndiInjectionTest.java:366:116:366:132 | (...)... | -| Log4jJndiInjectionTest.java:367:110:367:117 | source(...) : String | Log4jJndiInjectionTest.java:367:101:367:117 | (...)... | -| Log4jJndiInjectionTest.java:368:95:368:102 | source(...) : String | Log4jJndiInjectionTest.java:368:86:368:102 | (...)... | -| Log4jJndiInjectionTest.java:369:80:369:87 | source(...) : String | Log4jJndiInjectionTest.java:369:71:369:87 | (...)... | -| Log4jJndiInjectionTest.java:370:65:370:72 | source(...) : String | Log4jJndiInjectionTest.java:370:56:370:72 | (...)... | -| Log4jJndiInjectionTest.java:371:50:371:57 | source(...) : String | Log4jJndiInjectionTest.java:371:41:371:57 | (...)... | -| Log4jJndiInjectionTest.java:372:50:372:57 | source(...) : String | Log4jJndiInjectionTest.java:372:41:372:57 | (...)... | -| Log4jJndiInjectionTest.java:373:70:373:77 | source(...) : String | Log4jJndiInjectionTest.java:373:56:373:77 | (...)... | -| Log4jJndiInjectionTest.java:374:50:374:57 | source(...) : String | Log4jJndiInjectionTest.java:374:41:374:57 | (...)... | -| Log4jJndiInjectionTest.java:375:55:375:62 | source(...) : String | Log4jJndiInjectionTest.java:375:41:375:62 | (...)... | -| Log4jJndiInjectionTest.java:376:55:376:62 | source(...) : String | Log4jJndiInjectionTest.java:376:41:376:62 | (...)... | -| Log4jJndiInjectionTest.java:377:44:377:51 | source(...) : String | Log4jJndiInjectionTest.java:377:26:377:51 | (...)... | -| Log4jJndiInjectionTest.java:378:44:378:51 | source(...) : String | Log4jJndiInjectionTest.java:378:26:378:51 | (...)... | -| Log4jJndiInjectionTest.java:379:36:379:43 | source(...) : String | Log4jJndiInjectionTest.java:379:26:379:43 | (...)... | -| Log4jJndiInjectionTest.java:380:36:380:43 | source(...) : String | Log4jJndiInjectionTest.java:380:26:380:43 | (...)... | -| Log4jJndiInjectionTest.java:383:35:383:42 | source(...) : String | Log4jJndiInjectionTest.java:383:26:383:42 | (...)... | -| Log4jJndiInjectionTest.java:384:35:384:42 | source(...) : String | Log4jJndiInjectionTest.java:384:26:384:42 | (...)... | -| Log4jJndiInjectionTest.java:385:41:385:63 | {...} : Object[] [[]] : String | Log4jJndiInjectionTest.java:385:41:385:63 | new Object[] | -| Log4jJndiInjectionTest.java:385:55:385:62 | source(...) : String | Log4jJndiInjectionTest.java:385:41:385:63 | {...} : Object[] [[]] : String | -| Log4jJndiInjectionTest.java:386:50:386:57 | source(...) : String | Log4jJndiInjectionTest.java:386:41:386:57 | (...)... | -| Log4jJndiInjectionTest.java:387:35:387:42 | source(...) : String | Log4jJndiInjectionTest.java:387:26:387:42 | (...)... | -| Log4jJndiInjectionTest.java:388:65:388:72 | source(...) : String | Log4jJndiInjectionTest.java:388:56:388:72 | (...)... | -| Log4jJndiInjectionTest.java:389:50:389:57 | source(...) : String | Log4jJndiInjectionTest.java:389:41:389:57 | (...)... | -| Log4jJndiInjectionTest.java:390:35:390:42 | source(...) : String | Log4jJndiInjectionTest.java:390:26:390:42 | (...)... | -| Log4jJndiInjectionTest.java:391:80:391:87 | source(...) : String | Log4jJndiInjectionTest.java:391:71:391:87 | (...)... | -| Log4jJndiInjectionTest.java:392:65:392:72 | source(...) : String | Log4jJndiInjectionTest.java:392:56:392:72 | (...)... | -| Log4jJndiInjectionTest.java:393:50:393:57 | source(...) : String | Log4jJndiInjectionTest.java:393:41:393:57 | (...)... | -| Log4jJndiInjectionTest.java:394:35:394:42 | source(...) : String | Log4jJndiInjectionTest.java:394:26:394:42 | (...)... | -| Log4jJndiInjectionTest.java:395:95:395:102 | source(...) : String | Log4jJndiInjectionTest.java:395:86:395:102 | (...)... | -| Log4jJndiInjectionTest.java:396:80:396:87 | source(...) : String | Log4jJndiInjectionTest.java:396:71:396:87 | (...)... | -| Log4jJndiInjectionTest.java:397:65:397:72 | source(...) : String | Log4jJndiInjectionTest.java:397:56:397:72 | (...)... | -| Log4jJndiInjectionTest.java:398:50:398:57 | source(...) : String | Log4jJndiInjectionTest.java:398:41:398:57 | (...)... | -| Log4jJndiInjectionTest.java:399:35:399:42 | source(...) : String | Log4jJndiInjectionTest.java:399:26:399:42 | (...)... | -| Log4jJndiInjectionTest.java:400:110:400:117 | source(...) : String | Log4jJndiInjectionTest.java:400:101:400:117 | (...)... | -| Log4jJndiInjectionTest.java:401:95:401:102 | source(...) : String | Log4jJndiInjectionTest.java:401:86:401:102 | (...)... | -| Log4jJndiInjectionTest.java:402:80:402:87 | source(...) : String | Log4jJndiInjectionTest.java:402:71:402:87 | (...)... | -| Log4jJndiInjectionTest.java:403:65:403:72 | source(...) : String | Log4jJndiInjectionTest.java:403:56:403:72 | (...)... | -| Log4jJndiInjectionTest.java:404:50:404:57 | source(...) : String | Log4jJndiInjectionTest.java:404:41:404:57 | (...)... | -| Log4jJndiInjectionTest.java:405:35:405:42 | source(...) : String | Log4jJndiInjectionTest.java:405:26:405:42 | (...)... | -| Log4jJndiInjectionTest.java:406:125:406:132 | source(...) : String | Log4jJndiInjectionTest.java:406:116:406:132 | (...)... | -| Log4jJndiInjectionTest.java:407:110:407:117 | source(...) : String | Log4jJndiInjectionTest.java:407:101:407:117 | (...)... | -| Log4jJndiInjectionTest.java:408:95:408:102 | source(...) : String | Log4jJndiInjectionTest.java:408:86:408:102 | (...)... | -| Log4jJndiInjectionTest.java:409:80:409:87 | source(...) : String | Log4jJndiInjectionTest.java:409:71:409:87 | (...)... | -| Log4jJndiInjectionTest.java:410:65:410:72 | source(...) : String | Log4jJndiInjectionTest.java:410:56:410:72 | (...)... | -| Log4jJndiInjectionTest.java:411:50:411:57 | source(...) : String | Log4jJndiInjectionTest.java:411:41:411:57 | (...)... | -| Log4jJndiInjectionTest.java:412:35:412:42 | source(...) : String | Log4jJndiInjectionTest.java:412:26:412:42 | (...)... | -| Log4jJndiInjectionTest.java:413:140:413:147 | source(...) : String | Log4jJndiInjectionTest.java:413:131:413:147 | (...)... | -| Log4jJndiInjectionTest.java:414:125:414:132 | source(...) : String | Log4jJndiInjectionTest.java:414:116:414:132 | (...)... | -| Log4jJndiInjectionTest.java:415:110:415:117 | source(...) : String | Log4jJndiInjectionTest.java:415:101:415:117 | (...)... | -| Log4jJndiInjectionTest.java:416:95:416:102 | source(...) : String | Log4jJndiInjectionTest.java:416:86:416:102 | (...)... | -| Log4jJndiInjectionTest.java:417:80:417:87 | source(...) : String | Log4jJndiInjectionTest.java:417:71:417:87 | (...)... | -| Log4jJndiInjectionTest.java:418:65:418:72 | source(...) : String | Log4jJndiInjectionTest.java:418:56:418:72 | (...)... | -| Log4jJndiInjectionTest.java:419:50:419:57 | source(...) : String | Log4jJndiInjectionTest.java:419:41:419:57 | (...)... | -| Log4jJndiInjectionTest.java:420:35:420:42 | source(...) : String | Log4jJndiInjectionTest.java:420:26:420:42 | (...)... | -| Log4jJndiInjectionTest.java:421:155:421:162 | source(...) : String | Log4jJndiInjectionTest.java:421:146:421:162 | (...)... | -| Log4jJndiInjectionTest.java:422:140:422:147 | source(...) : String | Log4jJndiInjectionTest.java:422:131:422:147 | (...)... | -| Log4jJndiInjectionTest.java:423:125:423:132 | source(...) : String | Log4jJndiInjectionTest.java:423:116:423:132 | (...)... | -| Log4jJndiInjectionTest.java:424:110:424:117 | source(...) : String | Log4jJndiInjectionTest.java:424:101:424:117 | (...)... | -| Log4jJndiInjectionTest.java:425:95:425:102 | source(...) : String | Log4jJndiInjectionTest.java:425:86:425:102 | (...)... | -| Log4jJndiInjectionTest.java:426:80:426:87 | source(...) : String | Log4jJndiInjectionTest.java:426:71:426:87 | (...)... | -| Log4jJndiInjectionTest.java:427:65:427:72 | source(...) : String | Log4jJndiInjectionTest.java:427:56:427:72 | (...)... | -| Log4jJndiInjectionTest.java:428:50:428:57 | source(...) : String | Log4jJndiInjectionTest.java:428:41:428:57 | (...)... | -| Log4jJndiInjectionTest.java:429:35:429:42 | source(...) : String | Log4jJndiInjectionTest.java:429:26:429:42 | (...)... | -| Log4jJndiInjectionTest.java:430:170:430:177 | source(...) : String | Log4jJndiInjectionTest.java:430:161:430:177 | (...)... | -| Log4jJndiInjectionTest.java:431:155:431:162 | source(...) : String | Log4jJndiInjectionTest.java:431:146:431:162 | (...)... | -| Log4jJndiInjectionTest.java:432:140:432:147 | source(...) : String | Log4jJndiInjectionTest.java:432:131:432:147 | (...)... | -| Log4jJndiInjectionTest.java:433:125:433:132 | source(...) : String | Log4jJndiInjectionTest.java:433:116:433:132 | (...)... | -| Log4jJndiInjectionTest.java:434:110:434:117 | source(...) : String | Log4jJndiInjectionTest.java:434:101:434:117 | (...)... | -| Log4jJndiInjectionTest.java:435:95:435:102 | source(...) : String | Log4jJndiInjectionTest.java:435:86:435:102 | (...)... | -| Log4jJndiInjectionTest.java:436:80:436:87 | source(...) : String | Log4jJndiInjectionTest.java:436:71:436:87 | (...)... | -| Log4jJndiInjectionTest.java:437:65:437:72 | source(...) : String | Log4jJndiInjectionTest.java:437:56:437:72 | (...)... | -| Log4jJndiInjectionTest.java:438:50:438:57 | source(...) : String | Log4jJndiInjectionTest.java:438:41:438:57 | (...)... | -| Log4jJndiInjectionTest.java:439:35:439:42 | source(...) : String | Log4jJndiInjectionTest.java:439:26:439:42 | (...)... | -| Log4jJndiInjectionTest.java:440:35:440:42 | source(...) : String | Log4jJndiInjectionTest.java:440:26:440:42 | (...)... | -| Log4jJndiInjectionTest.java:441:55:441:62 | source(...) : String | Log4jJndiInjectionTest.java:441:41:441:62 | (...)... | -| Log4jJndiInjectionTest.java:442:35:442:42 | source(...) : String | Log4jJndiInjectionTest.java:442:26:442:42 | (...)... | -| Log4jJndiInjectionTest.java:443:40:443:47 | source(...) : String | Log4jJndiInjectionTest.java:443:26:443:47 | (...)... | -| Log4jJndiInjectionTest.java:444:40:444:47 | source(...) : String | Log4jJndiInjectionTest.java:444:26:444:47 | (...)... | -| Log4jJndiInjectionTest.java:445:40:445:47 | source(...) : String | Log4jJndiInjectionTest.java:445:25:445:47 | (...)... | -| Log4jJndiInjectionTest.java:446:40:446:47 | source(...) : String | Log4jJndiInjectionTest.java:446:25:446:47 | (...)... | -| Log4jJndiInjectionTest.java:447:55:447:62 | source(...) : String | Log4jJndiInjectionTest.java:447:40:447:62 | (...)... | -| Log4jJndiInjectionTest.java:448:55:448:62 | source(...) : String | Log4jJndiInjectionTest.java:448:40:448:62 | (...)... | -| Log4jJndiInjectionTest.java:449:50:449:57 | source(...) : String | Log4jJndiInjectionTest.java:449:40:449:57 | (...)... | -| Log4jJndiInjectionTest.java:450:58:450:65 | source(...) : String | Log4jJndiInjectionTest.java:450:40:450:65 | (...)... | -| Log4jJndiInjectionTest.java:451:58:451:65 | source(...) : String | Log4jJndiInjectionTest.java:451:40:451:65 | (...)... | -| Log4jJndiInjectionTest.java:453:49:453:56 | source(...) : String | Log4jJndiInjectionTest.java:453:40:453:56 | (...)... | -| Log4jJndiInjectionTest.java:454:49:454:56 | source(...) : String | Log4jJndiInjectionTest.java:454:40:454:56 | (...)... | -| Log4jJndiInjectionTest.java:455:55:455:77 | {...} : Object[] [[]] : String | Log4jJndiInjectionTest.java:455:55:455:77 | new Object[] | -| Log4jJndiInjectionTest.java:455:69:455:76 | source(...) : String | Log4jJndiInjectionTest.java:455:55:455:77 | {...} : Object[] [[]] : String | -| Log4jJndiInjectionTest.java:456:64:456:71 | source(...) : String | Log4jJndiInjectionTest.java:456:55:456:71 | (...)... | -| Log4jJndiInjectionTest.java:457:49:457:56 | source(...) : String | Log4jJndiInjectionTest.java:457:40:457:56 | (...)... | -| Log4jJndiInjectionTest.java:458:79:458:86 | source(...) : String | Log4jJndiInjectionTest.java:458:70:458:86 | (...)... | -| Log4jJndiInjectionTest.java:459:64:459:71 | source(...) : String | Log4jJndiInjectionTest.java:459:55:459:71 | (...)... | -| Log4jJndiInjectionTest.java:460:49:460:56 | source(...) : String | Log4jJndiInjectionTest.java:460:40:460:56 | (...)... | -| Log4jJndiInjectionTest.java:461:94:461:101 | source(...) : String | Log4jJndiInjectionTest.java:461:85:461:101 | (...)... | -| Log4jJndiInjectionTest.java:462:79:462:86 | source(...) : String | Log4jJndiInjectionTest.java:462:70:462:86 | (...)... | -| Log4jJndiInjectionTest.java:463:64:463:71 | source(...) : String | Log4jJndiInjectionTest.java:463:55:463:71 | (...)... | -| Log4jJndiInjectionTest.java:464:49:464:56 | source(...) : String | Log4jJndiInjectionTest.java:464:40:464:56 | (...)... | -| Log4jJndiInjectionTest.java:465:109:465:116 | source(...) : String | Log4jJndiInjectionTest.java:465:100:465:116 | (...)... | -| Log4jJndiInjectionTest.java:466:94:466:101 | source(...) : String | Log4jJndiInjectionTest.java:466:85:466:101 | (...)... | -| Log4jJndiInjectionTest.java:467:79:467:86 | source(...) : String | Log4jJndiInjectionTest.java:467:70:467:86 | (...)... | -| Log4jJndiInjectionTest.java:468:64:468:71 | source(...) : String | Log4jJndiInjectionTest.java:468:55:468:71 | (...)... | -| Log4jJndiInjectionTest.java:469:49:469:56 | source(...) : String | Log4jJndiInjectionTest.java:469:40:469:56 | (...)... | -| Log4jJndiInjectionTest.java:470:124:470:131 | source(...) : String | Log4jJndiInjectionTest.java:470:115:470:131 | (...)... | -| Log4jJndiInjectionTest.java:471:109:471:116 | source(...) : String | Log4jJndiInjectionTest.java:471:100:471:116 | (...)... | -| Log4jJndiInjectionTest.java:472:94:472:101 | source(...) : String | Log4jJndiInjectionTest.java:472:85:472:101 | (...)... | -| Log4jJndiInjectionTest.java:473:79:473:86 | source(...) : String | Log4jJndiInjectionTest.java:473:70:473:86 | (...)... | -| Log4jJndiInjectionTest.java:474:64:474:71 | source(...) : String | Log4jJndiInjectionTest.java:474:55:474:71 | (...)... | -| Log4jJndiInjectionTest.java:475:49:475:56 | source(...) : String | Log4jJndiInjectionTest.java:475:40:475:56 | (...)... | -| Log4jJndiInjectionTest.java:476:139:476:146 | source(...) : String | Log4jJndiInjectionTest.java:476:130:476:146 | (...)... | -| Log4jJndiInjectionTest.java:477:124:477:131 | source(...) : String | Log4jJndiInjectionTest.java:477:115:477:131 | (...)... | -| Log4jJndiInjectionTest.java:478:109:478:116 | source(...) : String | Log4jJndiInjectionTest.java:478:100:478:116 | (...)... | -| Log4jJndiInjectionTest.java:479:94:479:101 | source(...) : String | Log4jJndiInjectionTest.java:479:85:479:101 | (...)... | -| Log4jJndiInjectionTest.java:480:79:480:86 | source(...) : String | Log4jJndiInjectionTest.java:480:70:480:86 | (...)... | -| Log4jJndiInjectionTest.java:481:64:481:71 | source(...) : String | Log4jJndiInjectionTest.java:481:55:481:71 | (...)... | -| Log4jJndiInjectionTest.java:482:49:482:56 | source(...) : String | Log4jJndiInjectionTest.java:482:40:482:56 | (...)... | -| Log4jJndiInjectionTest.java:483:154:483:161 | source(...) : String | Log4jJndiInjectionTest.java:483:145:483:161 | (...)... | -| Log4jJndiInjectionTest.java:484:139:484:146 | source(...) : String | Log4jJndiInjectionTest.java:484:130:484:146 | (...)... | -| Log4jJndiInjectionTest.java:485:124:485:131 | source(...) : String | Log4jJndiInjectionTest.java:485:115:485:131 | (...)... | -| Log4jJndiInjectionTest.java:486:109:486:116 | source(...) : String | Log4jJndiInjectionTest.java:486:100:486:116 | (...)... | -| Log4jJndiInjectionTest.java:487:94:487:101 | source(...) : String | Log4jJndiInjectionTest.java:487:85:487:101 | (...)... | -| Log4jJndiInjectionTest.java:488:79:488:86 | source(...) : String | Log4jJndiInjectionTest.java:488:70:488:86 | (...)... | -| Log4jJndiInjectionTest.java:489:64:489:71 | source(...) : String | Log4jJndiInjectionTest.java:489:55:489:71 | (...)... | -| Log4jJndiInjectionTest.java:490:49:490:56 | source(...) : String | Log4jJndiInjectionTest.java:490:40:490:56 | (...)... | -| Log4jJndiInjectionTest.java:491:169:491:176 | source(...) : String | Log4jJndiInjectionTest.java:491:160:491:176 | (...)... | -| Log4jJndiInjectionTest.java:492:154:492:161 | source(...) : String | Log4jJndiInjectionTest.java:492:145:492:161 | (...)... | -| Log4jJndiInjectionTest.java:493:139:493:146 | source(...) : String | Log4jJndiInjectionTest.java:493:130:493:146 | (...)... | -| Log4jJndiInjectionTest.java:494:124:494:131 | source(...) : String | Log4jJndiInjectionTest.java:494:115:494:131 | (...)... | -| Log4jJndiInjectionTest.java:495:109:495:116 | source(...) : String | Log4jJndiInjectionTest.java:495:100:495:116 | (...)... | -| Log4jJndiInjectionTest.java:496:94:496:101 | source(...) : String | Log4jJndiInjectionTest.java:496:85:496:101 | (...)... | -| Log4jJndiInjectionTest.java:497:79:497:86 | source(...) : String | Log4jJndiInjectionTest.java:497:70:497:86 | (...)... | -| Log4jJndiInjectionTest.java:498:64:498:71 | source(...) : String | Log4jJndiInjectionTest.java:498:55:498:71 | (...)... | -| Log4jJndiInjectionTest.java:499:49:499:56 | source(...) : String | Log4jJndiInjectionTest.java:499:40:499:56 | (...)... | -| Log4jJndiInjectionTest.java:500:184:500:191 | source(...) : String | Log4jJndiInjectionTest.java:500:175:500:191 | (...)... | -| Log4jJndiInjectionTest.java:501:169:501:176 | source(...) : String | Log4jJndiInjectionTest.java:501:160:501:176 | (...)... | -| Log4jJndiInjectionTest.java:502:154:502:161 | source(...) : String | Log4jJndiInjectionTest.java:502:145:502:161 | (...)... | -| Log4jJndiInjectionTest.java:503:139:503:146 | source(...) : String | Log4jJndiInjectionTest.java:503:130:503:146 | (...)... | -| Log4jJndiInjectionTest.java:504:124:504:131 | source(...) : String | Log4jJndiInjectionTest.java:504:115:504:131 | (...)... | -| Log4jJndiInjectionTest.java:505:109:505:116 | source(...) : String | Log4jJndiInjectionTest.java:505:100:505:116 | (...)... | -| Log4jJndiInjectionTest.java:506:94:506:101 | source(...) : String | Log4jJndiInjectionTest.java:506:85:506:101 | (...)... | -| Log4jJndiInjectionTest.java:507:79:507:86 | source(...) : String | Log4jJndiInjectionTest.java:507:70:507:86 | (...)... | -| Log4jJndiInjectionTest.java:508:64:508:71 | source(...) : String | Log4jJndiInjectionTest.java:508:55:508:71 | (...)... | -| Log4jJndiInjectionTest.java:509:49:509:56 | source(...) : String | Log4jJndiInjectionTest.java:509:40:509:56 | (...)... | -| Log4jJndiInjectionTest.java:510:49:510:56 | source(...) : String | Log4jJndiInjectionTest.java:510:40:510:56 | (...)... | -| Log4jJndiInjectionTest.java:511:69:511:76 | source(...) : String | Log4jJndiInjectionTest.java:511:55:511:76 | (...)... | -| Log4jJndiInjectionTest.java:512:49:512:56 | source(...) : String | Log4jJndiInjectionTest.java:512:40:512:56 | (...)... | -| Log4jJndiInjectionTest.java:513:54:513:61 | source(...) : String | Log4jJndiInjectionTest.java:513:40:513:61 | (...)... | -| Log4jJndiInjectionTest.java:514:54:514:61 | source(...) : String | Log4jJndiInjectionTest.java:514:40:514:61 | (...)... | -| Log4jJndiInjectionTest.java:515:43:515:50 | source(...) : String | Log4jJndiInjectionTest.java:515:25:515:50 | (...)... | -| Log4jJndiInjectionTest.java:516:43:516:50 | source(...) : String | Log4jJndiInjectionTest.java:516:25:516:50 | (...)... | -| Log4jJndiInjectionTest.java:517:35:517:42 | source(...) : String | Log4jJndiInjectionTest.java:517:25:517:42 | (...)... | -| Log4jJndiInjectionTest.java:518:35:518:42 | source(...) : String | Log4jJndiInjectionTest.java:518:25:518:42 | (...)... | -| Log4jJndiInjectionTest.java:521:34:521:41 | source(...) : String | Log4jJndiInjectionTest.java:521:25:521:41 | (...)... | -| Log4jJndiInjectionTest.java:522:34:522:41 | source(...) : String | Log4jJndiInjectionTest.java:522:25:522:41 | (...)... | -| Log4jJndiInjectionTest.java:523:40:523:62 | {...} : Object[] [[]] : String | Log4jJndiInjectionTest.java:523:40:523:62 | new Object[] | -| Log4jJndiInjectionTest.java:523:54:523:61 | source(...) : String | Log4jJndiInjectionTest.java:523:40:523:62 | {...} : Object[] [[]] : String | -| Log4jJndiInjectionTest.java:524:49:524:56 | source(...) : String | Log4jJndiInjectionTest.java:524:40:524:56 | (...)... | -| Log4jJndiInjectionTest.java:525:34:525:41 | source(...) : String | Log4jJndiInjectionTest.java:525:25:525:41 | (...)... | -| Log4jJndiInjectionTest.java:526:64:526:71 | source(...) : String | Log4jJndiInjectionTest.java:526:55:526:71 | (...)... | -| Log4jJndiInjectionTest.java:527:49:527:56 | source(...) : String | Log4jJndiInjectionTest.java:527:40:527:56 | (...)... | -| Log4jJndiInjectionTest.java:528:34:528:41 | source(...) : String | Log4jJndiInjectionTest.java:528:25:528:41 | (...)... | -| Log4jJndiInjectionTest.java:529:79:529:86 | source(...) : String | Log4jJndiInjectionTest.java:529:70:529:86 | (...)... | -| Log4jJndiInjectionTest.java:530:64:530:71 | source(...) : String | Log4jJndiInjectionTest.java:530:55:530:71 | (...)... | -| Log4jJndiInjectionTest.java:531:49:531:56 | source(...) : String | Log4jJndiInjectionTest.java:531:40:531:56 | (...)... | -| Log4jJndiInjectionTest.java:532:34:532:41 | source(...) : String | Log4jJndiInjectionTest.java:532:25:532:41 | (...)... | -| Log4jJndiInjectionTest.java:533:94:533:101 | source(...) : String | Log4jJndiInjectionTest.java:533:85:533:101 | (...)... | -| Log4jJndiInjectionTest.java:534:79:534:86 | source(...) : String | Log4jJndiInjectionTest.java:534:70:534:86 | (...)... | -| Log4jJndiInjectionTest.java:535:64:535:71 | source(...) : String | Log4jJndiInjectionTest.java:535:55:535:71 | (...)... | -| Log4jJndiInjectionTest.java:536:49:536:56 | source(...) : String | Log4jJndiInjectionTest.java:536:40:536:56 | (...)... | -| Log4jJndiInjectionTest.java:537:34:537:41 | source(...) : String | Log4jJndiInjectionTest.java:537:25:537:41 | (...)... | -| Log4jJndiInjectionTest.java:538:109:538:116 | source(...) : String | Log4jJndiInjectionTest.java:538:100:538:116 | (...)... | -| Log4jJndiInjectionTest.java:539:94:539:101 | source(...) : String | Log4jJndiInjectionTest.java:539:85:539:101 | (...)... | -| Log4jJndiInjectionTest.java:540:79:540:86 | source(...) : String | Log4jJndiInjectionTest.java:540:70:540:86 | (...)... | -| Log4jJndiInjectionTest.java:541:64:541:71 | source(...) : String | Log4jJndiInjectionTest.java:541:55:541:71 | (...)... | -| Log4jJndiInjectionTest.java:542:49:542:56 | source(...) : String | Log4jJndiInjectionTest.java:542:40:542:56 | (...)... | -| Log4jJndiInjectionTest.java:543:34:543:41 | source(...) : String | Log4jJndiInjectionTest.java:543:25:543:41 | (...)... | -| Log4jJndiInjectionTest.java:544:124:544:131 | source(...) : String | Log4jJndiInjectionTest.java:544:115:544:131 | (...)... | -| Log4jJndiInjectionTest.java:545:109:545:116 | source(...) : String | Log4jJndiInjectionTest.java:545:100:545:116 | (...)... | -| Log4jJndiInjectionTest.java:546:94:546:101 | source(...) : String | Log4jJndiInjectionTest.java:546:85:546:101 | (...)... | -| Log4jJndiInjectionTest.java:547:79:547:86 | source(...) : String | Log4jJndiInjectionTest.java:547:70:547:86 | (...)... | -| Log4jJndiInjectionTest.java:548:64:548:71 | source(...) : String | Log4jJndiInjectionTest.java:548:55:548:71 | (...)... | -| Log4jJndiInjectionTest.java:549:49:549:56 | source(...) : String | Log4jJndiInjectionTest.java:549:40:549:56 | (...)... | -| Log4jJndiInjectionTest.java:550:34:550:41 | source(...) : String | Log4jJndiInjectionTest.java:550:25:550:41 | (...)... | -| Log4jJndiInjectionTest.java:551:139:551:146 | source(...) : String | Log4jJndiInjectionTest.java:551:130:551:146 | (...)... | -| Log4jJndiInjectionTest.java:552:124:552:131 | source(...) : String | Log4jJndiInjectionTest.java:552:115:552:131 | (...)... | -| Log4jJndiInjectionTest.java:553:109:553:116 | source(...) : String | Log4jJndiInjectionTest.java:553:100:553:116 | (...)... | -| Log4jJndiInjectionTest.java:554:94:554:101 | source(...) : String | Log4jJndiInjectionTest.java:554:85:554:101 | (...)... | -| Log4jJndiInjectionTest.java:555:79:555:86 | source(...) : String | Log4jJndiInjectionTest.java:555:70:555:86 | (...)... | -| Log4jJndiInjectionTest.java:556:64:556:71 | source(...) : String | Log4jJndiInjectionTest.java:556:55:556:71 | (...)... | -| Log4jJndiInjectionTest.java:557:49:557:56 | source(...) : String | Log4jJndiInjectionTest.java:557:40:557:56 | (...)... | -| Log4jJndiInjectionTest.java:558:34:558:41 | source(...) : String | Log4jJndiInjectionTest.java:558:25:558:41 | (...)... | -| Log4jJndiInjectionTest.java:559:154:559:161 | source(...) : String | Log4jJndiInjectionTest.java:559:145:559:161 | (...)... | -| Log4jJndiInjectionTest.java:560:139:560:146 | source(...) : String | Log4jJndiInjectionTest.java:560:130:560:146 | (...)... | -| Log4jJndiInjectionTest.java:561:124:561:131 | source(...) : String | Log4jJndiInjectionTest.java:561:115:561:131 | (...)... | -| Log4jJndiInjectionTest.java:562:109:562:116 | source(...) : String | Log4jJndiInjectionTest.java:562:100:562:116 | (...)... | -| Log4jJndiInjectionTest.java:563:94:563:101 | source(...) : String | Log4jJndiInjectionTest.java:563:85:563:101 | (...)... | -| Log4jJndiInjectionTest.java:564:79:564:86 | source(...) : String | Log4jJndiInjectionTest.java:564:70:564:86 | (...)... | -| Log4jJndiInjectionTest.java:565:64:565:71 | source(...) : String | Log4jJndiInjectionTest.java:565:55:565:71 | (...)... | -| Log4jJndiInjectionTest.java:566:49:566:56 | source(...) : String | Log4jJndiInjectionTest.java:566:40:566:56 | (...)... | -| Log4jJndiInjectionTest.java:567:34:567:41 | source(...) : String | Log4jJndiInjectionTest.java:567:25:567:41 | (...)... | -| Log4jJndiInjectionTest.java:568:169:568:176 | source(...) : String | Log4jJndiInjectionTest.java:568:160:568:176 | (...)... | -| Log4jJndiInjectionTest.java:569:154:569:161 | source(...) : String | Log4jJndiInjectionTest.java:569:145:569:161 | (...)... | -| Log4jJndiInjectionTest.java:570:139:570:146 | source(...) : String | Log4jJndiInjectionTest.java:570:130:570:146 | (...)... | -| Log4jJndiInjectionTest.java:571:124:571:131 | source(...) : String | Log4jJndiInjectionTest.java:571:115:571:131 | (...)... | -| Log4jJndiInjectionTest.java:572:109:572:116 | source(...) : String | Log4jJndiInjectionTest.java:572:100:572:116 | (...)... | -| Log4jJndiInjectionTest.java:573:94:573:101 | source(...) : String | Log4jJndiInjectionTest.java:573:85:573:101 | (...)... | -| Log4jJndiInjectionTest.java:574:79:574:86 | source(...) : String | Log4jJndiInjectionTest.java:574:70:574:86 | (...)... | -| Log4jJndiInjectionTest.java:575:64:575:71 | source(...) : String | Log4jJndiInjectionTest.java:575:55:575:71 | (...)... | -| Log4jJndiInjectionTest.java:576:49:576:56 | source(...) : String | Log4jJndiInjectionTest.java:576:40:576:56 | (...)... | -| Log4jJndiInjectionTest.java:577:34:577:41 | source(...) : String | Log4jJndiInjectionTest.java:577:25:577:41 | (...)... | -| Log4jJndiInjectionTest.java:578:34:578:41 | source(...) : String | Log4jJndiInjectionTest.java:578:25:578:41 | (...)... | -| Log4jJndiInjectionTest.java:579:54:579:61 | source(...) : String | Log4jJndiInjectionTest.java:579:40:579:61 | (...)... | -| Log4jJndiInjectionTest.java:580:34:580:41 | source(...) : String | Log4jJndiInjectionTest.java:580:25:580:41 | (...)... | -| Log4jJndiInjectionTest.java:581:39:581:46 | source(...) : String | Log4jJndiInjectionTest.java:581:25:581:46 | (...)... | -| Log4jJndiInjectionTest.java:582:39:582:46 | source(...) : String | Log4jJndiInjectionTest.java:582:25:582:46 | (...)... | -| Log4jJndiInjectionTest.java:583:53:583:60 | source(...) : String | Log4jJndiInjectionTest.java:583:38:583:60 | (...)... | -| Log4jJndiInjectionTest.java:584:53:584:60 | source(...) : String | Log4jJndiInjectionTest.java:584:38:584:60 | (...)... | -| Log4jJndiInjectionTest.java:585:68:585:75 | source(...) : String | Log4jJndiInjectionTest.java:585:53:585:75 | (...)... | -| Log4jJndiInjectionTest.java:586:68:586:75 | source(...) : String | Log4jJndiInjectionTest.java:586:53:586:75 | (...)... | -| Log4jJndiInjectionTest.java:587:63:587:70 | source(...) : String | Log4jJndiInjectionTest.java:587:53:587:70 | (...)... | -| Log4jJndiInjectionTest.java:588:71:588:78 | source(...) : String | Log4jJndiInjectionTest.java:588:53:588:78 | (...)... | -| Log4jJndiInjectionTest.java:589:71:589:78 | source(...) : String | Log4jJndiInjectionTest.java:589:53:589:78 | (...)... | -| Log4jJndiInjectionTest.java:591:62:591:69 | source(...) : String | Log4jJndiInjectionTest.java:591:53:591:69 | (...)... | -| Log4jJndiInjectionTest.java:592:62:592:69 | source(...) : String | Log4jJndiInjectionTest.java:592:53:592:69 | (...)... | -| Log4jJndiInjectionTest.java:593:68:593:90 | {...} : Object[] [[]] : String | Log4jJndiInjectionTest.java:593:68:593:90 | new Object[] | -| Log4jJndiInjectionTest.java:593:82:593:89 | source(...) : String | Log4jJndiInjectionTest.java:593:68:593:90 | {...} : Object[] [[]] : String | -| Log4jJndiInjectionTest.java:594:77:594:84 | source(...) : String | Log4jJndiInjectionTest.java:594:68:594:84 | (...)... | -| Log4jJndiInjectionTest.java:595:62:595:69 | source(...) : String | Log4jJndiInjectionTest.java:595:53:595:69 | (...)... | -| Log4jJndiInjectionTest.java:596:92:596:99 | source(...) : String | Log4jJndiInjectionTest.java:596:83:596:99 | (...)... | -| Log4jJndiInjectionTest.java:597:77:597:84 | source(...) : String | Log4jJndiInjectionTest.java:597:68:597:84 | (...)... | -| Log4jJndiInjectionTest.java:598:62:598:69 | source(...) : String | Log4jJndiInjectionTest.java:598:53:598:69 | (...)... | -| Log4jJndiInjectionTest.java:599:107:599:114 | source(...) : String | Log4jJndiInjectionTest.java:599:98:599:114 | (...)... | -| Log4jJndiInjectionTest.java:600:92:600:99 | source(...) : String | Log4jJndiInjectionTest.java:600:83:600:99 | (...)... | -| Log4jJndiInjectionTest.java:601:77:601:84 | source(...) : String | Log4jJndiInjectionTest.java:601:68:601:84 | (...)... | -| Log4jJndiInjectionTest.java:602:62:602:69 | source(...) : String | Log4jJndiInjectionTest.java:602:53:602:69 | (...)... | -| Log4jJndiInjectionTest.java:603:122:603:129 | source(...) : String | Log4jJndiInjectionTest.java:603:113:603:129 | (...)... | -| Log4jJndiInjectionTest.java:604:107:604:114 | source(...) : String | Log4jJndiInjectionTest.java:604:98:604:114 | (...)... | -| Log4jJndiInjectionTest.java:605:92:605:99 | source(...) : String | Log4jJndiInjectionTest.java:605:83:605:99 | (...)... | -| Log4jJndiInjectionTest.java:606:77:606:84 | source(...) : String | Log4jJndiInjectionTest.java:606:68:606:84 | (...)... | -| Log4jJndiInjectionTest.java:607:62:607:69 | source(...) : String | Log4jJndiInjectionTest.java:607:53:607:69 | (...)... | -| Log4jJndiInjectionTest.java:608:137:608:144 | source(...) : String | Log4jJndiInjectionTest.java:608:128:608:144 | (...)... | -| Log4jJndiInjectionTest.java:609:122:609:129 | source(...) : String | Log4jJndiInjectionTest.java:609:113:609:129 | (...)... | -| Log4jJndiInjectionTest.java:610:107:610:114 | source(...) : String | Log4jJndiInjectionTest.java:610:98:610:114 | (...)... | -| Log4jJndiInjectionTest.java:611:92:611:99 | source(...) : String | Log4jJndiInjectionTest.java:611:83:611:99 | (...)... | -| Log4jJndiInjectionTest.java:612:77:612:84 | source(...) : String | Log4jJndiInjectionTest.java:612:68:612:84 | (...)... | -| Log4jJndiInjectionTest.java:613:62:613:69 | source(...) : String | Log4jJndiInjectionTest.java:613:53:613:69 | (...)... | -| Log4jJndiInjectionTest.java:614:152:614:159 | source(...) : String | Log4jJndiInjectionTest.java:614:143:614:159 | (...)... | -| Log4jJndiInjectionTest.java:615:137:615:144 | source(...) : String | Log4jJndiInjectionTest.java:615:128:615:144 | (...)... | -| Log4jJndiInjectionTest.java:616:122:616:129 | source(...) : String | Log4jJndiInjectionTest.java:616:113:616:129 | (...)... | -| Log4jJndiInjectionTest.java:617:107:617:114 | source(...) : String | Log4jJndiInjectionTest.java:617:98:617:114 | (...)... | -| Log4jJndiInjectionTest.java:618:92:618:99 | source(...) : String | Log4jJndiInjectionTest.java:618:83:618:99 | (...)... | -| Log4jJndiInjectionTest.java:619:77:619:84 | source(...) : String | Log4jJndiInjectionTest.java:619:68:619:84 | (...)... | -| Log4jJndiInjectionTest.java:620:62:620:69 | source(...) : String | Log4jJndiInjectionTest.java:620:53:620:69 | (...)... | -| Log4jJndiInjectionTest.java:621:167:621:174 | source(...) : String | Log4jJndiInjectionTest.java:621:158:621:174 | (...)... | -| Log4jJndiInjectionTest.java:622:152:622:159 | source(...) : String | Log4jJndiInjectionTest.java:622:143:622:159 | (...)... | -| Log4jJndiInjectionTest.java:623:137:623:144 | source(...) : String | Log4jJndiInjectionTest.java:623:128:623:144 | (...)... | -| Log4jJndiInjectionTest.java:624:122:624:129 | source(...) : String | Log4jJndiInjectionTest.java:624:113:624:129 | (...)... | -| Log4jJndiInjectionTest.java:625:107:625:114 | source(...) : String | Log4jJndiInjectionTest.java:625:98:625:114 | (...)... | -| Log4jJndiInjectionTest.java:626:92:626:99 | source(...) : String | Log4jJndiInjectionTest.java:626:83:626:99 | (...)... | -| Log4jJndiInjectionTest.java:627:77:627:84 | source(...) : String | Log4jJndiInjectionTest.java:627:68:627:84 | (...)... | -| Log4jJndiInjectionTest.java:628:62:628:69 | source(...) : String | Log4jJndiInjectionTest.java:628:53:628:69 | (...)... | -| Log4jJndiInjectionTest.java:629:182:629:189 | source(...) : String | Log4jJndiInjectionTest.java:629:173:629:189 | (...)... | -| Log4jJndiInjectionTest.java:630:167:630:174 | source(...) : String | Log4jJndiInjectionTest.java:630:158:630:174 | (...)... | -| Log4jJndiInjectionTest.java:631:152:631:159 | source(...) : String | Log4jJndiInjectionTest.java:631:143:631:159 | (...)... | -| Log4jJndiInjectionTest.java:632:137:632:144 | source(...) : String | Log4jJndiInjectionTest.java:632:128:632:144 | (...)... | -| Log4jJndiInjectionTest.java:633:122:633:129 | source(...) : String | Log4jJndiInjectionTest.java:633:113:633:129 | (...)... | -| Log4jJndiInjectionTest.java:634:107:634:114 | source(...) : String | Log4jJndiInjectionTest.java:634:98:634:114 | (...)... | -| Log4jJndiInjectionTest.java:635:92:635:99 | source(...) : String | Log4jJndiInjectionTest.java:635:83:635:99 | (...)... | -| Log4jJndiInjectionTest.java:636:77:636:84 | source(...) : String | Log4jJndiInjectionTest.java:636:68:636:84 | (...)... | -| Log4jJndiInjectionTest.java:637:62:637:69 | source(...) : String | Log4jJndiInjectionTest.java:637:53:637:69 | (...)... | -| Log4jJndiInjectionTest.java:638:197:638:204 | source(...) : String | Log4jJndiInjectionTest.java:638:188:638:204 | (...)... | -| Log4jJndiInjectionTest.java:639:182:639:189 | source(...) : String | Log4jJndiInjectionTest.java:639:173:639:189 | (...)... | -| Log4jJndiInjectionTest.java:640:167:640:174 | source(...) : String | Log4jJndiInjectionTest.java:640:158:640:174 | (...)... | -| Log4jJndiInjectionTest.java:641:152:641:159 | source(...) : String | Log4jJndiInjectionTest.java:641:143:641:159 | (...)... | -| Log4jJndiInjectionTest.java:642:137:642:144 | source(...) : String | Log4jJndiInjectionTest.java:642:128:642:144 | (...)... | -| Log4jJndiInjectionTest.java:643:122:643:129 | source(...) : String | Log4jJndiInjectionTest.java:643:113:643:129 | (...)... | -| Log4jJndiInjectionTest.java:644:107:644:114 | source(...) : String | Log4jJndiInjectionTest.java:644:98:644:114 | (...)... | -| Log4jJndiInjectionTest.java:645:92:645:99 | source(...) : String | Log4jJndiInjectionTest.java:645:83:645:99 | (...)... | -| Log4jJndiInjectionTest.java:646:77:646:84 | source(...) : String | Log4jJndiInjectionTest.java:646:68:646:84 | (...)... | -| Log4jJndiInjectionTest.java:647:62:647:69 | source(...) : String | Log4jJndiInjectionTest.java:647:53:647:69 | (...)... | -| Log4jJndiInjectionTest.java:648:62:648:69 | source(...) : String | Log4jJndiInjectionTest.java:648:53:648:69 | (...)... | -| Log4jJndiInjectionTest.java:649:82:649:89 | source(...) : String | Log4jJndiInjectionTest.java:649:68:649:89 | (...)... | -| Log4jJndiInjectionTest.java:650:62:650:69 | source(...) : String | Log4jJndiInjectionTest.java:650:53:650:69 | (...)... | -| Log4jJndiInjectionTest.java:651:67:651:74 | source(...) : String | Log4jJndiInjectionTest.java:651:53:651:74 | (...)... | -| Log4jJndiInjectionTest.java:652:67:652:74 | source(...) : String | Log4jJndiInjectionTest.java:652:53:652:74 | (...)... | -| Log4jJndiInjectionTest.java:653:56:653:63 | source(...) : String | Log4jJndiInjectionTest.java:653:38:653:63 | (...)... | -| Log4jJndiInjectionTest.java:654:56:654:63 | source(...) : String | Log4jJndiInjectionTest.java:654:38:654:63 | (...)... | -| Log4jJndiInjectionTest.java:655:48:655:55 | source(...) : String | Log4jJndiInjectionTest.java:655:38:655:55 | (...)... | -| Log4jJndiInjectionTest.java:656:48:656:55 | source(...) : String | Log4jJndiInjectionTest.java:656:38:656:55 | (...)... | -| Log4jJndiInjectionTest.java:659:47:659:54 | source(...) : String | Log4jJndiInjectionTest.java:659:38:659:54 | (...)... | -| Log4jJndiInjectionTest.java:660:47:660:54 | source(...) : String | Log4jJndiInjectionTest.java:660:38:660:54 | (...)... | -| Log4jJndiInjectionTest.java:661:53:661:75 | {...} : Object[] [[]] : String | Log4jJndiInjectionTest.java:661:53:661:75 | new Object[] | -| Log4jJndiInjectionTest.java:661:67:661:74 | source(...) : String | Log4jJndiInjectionTest.java:661:53:661:75 | {...} : Object[] [[]] : String | -| Log4jJndiInjectionTest.java:662:62:662:69 | source(...) : String | Log4jJndiInjectionTest.java:662:53:662:69 | (...)... | -| Log4jJndiInjectionTest.java:663:47:663:54 | source(...) : String | Log4jJndiInjectionTest.java:663:38:663:54 | (...)... | -| Log4jJndiInjectionTest.java:664:77:664:84 | source(...) : String | Log4jJndiInjectionTest.java:664:68:664:84 | (...)... | -| Log4jJndiInjectionTest.java:665:62:665:69 | source(...) : String | Log4jJndiInjectionTest.java:665:53:665:69 | (...)... | -| Log4jJndiInjectionTest.java:666:47:666:54 | source(...) : String | Log4jJndiInjectionTest.java:666:38:666:54 | (...)... | -| Log4jJndiInjectionTest.java:667:92:667:99 | source(...) : String | Log4jJndiInjectionTest.java:667:83:667:99 | (...)... | -| Log4jJndiInjectionTest.java:668:77:668:84 | source(...) : String | Log4jJndiInjectionTest.java:668:68:668:84 | (...)... | -| Log4jJndiInjectionTest.java:669:62:669:69 | source(...) : String | Log4jJndiInjectionTest.java:669:53:669:69 | (...)... | -| Log4jJndiInjectionTest.java:670:47:670:54 | source(...) : String | Log4jJndiInjectionTest.java:670:38:670:54 | (...)... | -| Log4jJndiInjectionTest.java:671:107:671:114 | source(...) : String | Log4jJndiInjectionTest.java:671:98:671:114 | (...)... | -| Log4jJndiInjectionTest.java:672:92:672:99 | source(...) : String | Log4jJndiInjectionTest.java:672:83:672:99 | (...)... | -| Log4jJndiInjectionTest.java:673:77:673:84 | source(...) : String | Log4jJndiInjectionTest.java:673:68:673:84 | (...)... | -| Log4jJndiInjectionTest.java:674:62:674:69 | source(...) : String | Log4jJndiInjectionTest.java:674:53:674:69 | (...)... | -| Log4jJndiInjectionTest.java:675:47:675:54 | source(...) : String | Log4jJndiInjectionTest.java:675:38:675:54 | (...)... | -| Log4jJndiInjectionTest.java:676:122:676:129 | source(...) : String | Log4jJndiInjectionTest.java:676:113:676:129 | (...)... | -| Log4jJndiInjectionTest.java:677:107:677:114 | source(...) : String | Log4jJndiInjectionTest.java:677:98:677:114 | (...)... | -| Log4jJndiInjectionTest.java:678:92:678:99 | source(...) : String | Log4jJndiInjectionTest.java:678:83:678:99 | (...)... | -| Log4jJndiInjectionTest.java:679:77:679:84 | source(...) : String | Log4jJndiInjectionTest.java:679:68:679:84 | (...)... | -| Log4jJndiInjectionTest.java:680:62:680:69 | source(...) : String | Log4jJndiInjectionTest.java:680:53:680:69 | (...)... | -| Log4jJndiInjectionTest.java:681:47:681:54 | source(...) : String | Log4jJndiInjectionTest.java:681:38:681:54 | (...)... | -| Log4jJndiInjectionTest.java:682:137:682:144 | source(...) : String | Log4jJndiInjectionTest.java:682:128:682:144 | (...)... | -| Log4jJndiInjectionTest.java:683:122:683:129 | source(...) : String | Log4jJndiInjectionTest.java:683:113:683:129 | (...)... | -| Log4jJndiInjectionTest.java:684:107:684:114 | source(...) : String | Log4jJndiInjectionTest.java:684:98:684:114 | (...)... | -| Log4jJndiInjectionTest.java:685:92:685:99 | source(...) : String | Log4jJndiInjectionTest.java:685:83:685:99 | (...)... | -| Log4jJndiInjectionTest.java:686:77:686:84 | source(...) : String | Log4jJndiInjectionTest.java:686:68:686:84 | (...)... | -| Log4jJndiInjectionTest.java:687:62:687:69 | source(...) : String | Log4jJndiInjectionTest.java:687:53:687:69 | (...)... | -| Log4jJndiInjectionTest.java:688:47:688:54 | source(...) : String | Log4jJndiInjectionTest.java:688:38:688:54 | (...)... | -| Log4jJndiInjectionTest.java:689:152:689:159 | source(...) : String | Log4jJndiInjectionTest.java:689:143:689:159 | (...)... | -| Log4jJndiInjectionTest.java:690:137:690:144 | source(...) : String | Log4jJndiInjectionTest.java:690:128:690:144 | (...)... | -| Log4jJndiInjectionTest.java:691:122:691:129 | source(...) : String | Log4jJndiInjectionTest.java:691:113:691:129 | (...)... | -| Log4jJndiInjectionTest.java:692:107:692:114 | source(...) : String | Log4jJndiInjectionTest.java:692:98:692:114 | (...)... | -| Log4jJndiInjectionTest.java:693:92:693:99 | source(...) : String | Log4jJndiInjectionTest.java:693:83:693:99 | (...)... | -| Log4jJndiInjectionTest.java:694:77:694:84 | source(...) : String | Log4jJndiInjectionTest.java:694:68:694:84 | (...)... | -| Log4jJndiInjectionTest.java:695:62:695:69 | source(...) : String | Log4jJndiInjectionTest.java:695:53:695:69 | (...)... | -| Log4jJndiInjectionTest.java:696:47:696:54 | source(...) : String | Log4jJndiInjectionTest.java:696:38:696:54 | (...)... | -| Log4jJndiInjectionTest.java:697:167:697:174 | source(...) : String | Log4jJndiInjectionTest.java:697:158:697:174 | (...)... | -| Log4jJndiInjectionTest.java:698:152:698:159 | source(...) : String | Log4jJndiInjectionTest.java:698:143:698:159 | (...)... | -| Log4jJndiInjectionTest.java:699:137:699:144 | source(...) : String | Log4jJndiInjectionTest.java:699:128:699:144 | (...)... | -| Log4jJndiInjectionTest.java:700:122:700:129 | source(...) : String | Log4jJndiInjectionTest.java:700:113:700:129 | (...)... | -| Log4jJndiInjectionTest.java:701:107:701:114 | source(...) : String | Log4jJndiInjectionTest.java:701:98:701:114 | (...)... | -| Log4jJndiInjectionTest.java:702:92:702:99 | source(...) : String | Log4jJndiInjectionTest.java:702:83:702:99 | (...)... | -| Log4jJndiInjectionTest.java:703:77:703:84 | source(...) : String | Log4jJndiInjectionTest.java:703:68:703:84 | (...)... | -| Log4jJndiInjectionTest.java:704:62:704:69 | source(...) : String | Log4jJndiInjectionTest.java:704:53:704:69 | (...)... | -| Log4jJndiInjectionTest.java:705:47:705:54 | source(...) : String | Log4jJndiInjectionTest.java:705:38:705:54 | (...)... | -| Log4jJndiInjectionTest.java:706:182:706:189 | source(...) : String | Log4jJndiInjectionTest.java:706:173:706:189 | (...)... | -| Log4jJndiInjectionTest.java:707:167:707:174 | source(...) : String | Log4jJndiInjectionTest.java:707:158:707:174 | (...)... | -| Log4jJndiInjectionTest.java:708:152:708:159 | source(...) : String | Log4jJndiInjectionTest.java:708:143:708:159 | (...)... | -| Log4jJndiInjectionTest.java:709:137:709:144 | source(...) : String | Log4jJndiInjectionTest.java:709:128:709:144 | (...)... | -| Log4jJndiInjectionTest.java:710:122:710:129 | source(...) : String | Log4jJndiInjectionTest.java:710:113:710:129 | (...)... | -| Log4jJndiInjectionTest.java:711:107:711:114 | source(...) : String | Log4jJndiInjectionTest.java:711:98:711:114 | (...)... | -| Log4jJndiInjectionTest.java:712:92:712:99 | source(...) : String | Log4jJndiInjectionTest.java:712:83:712:99 | (...)... | -| Log4jJndiInjectionTest.java:713:77:713:84 | source(...) : String | Log4jJndiInjectionTest.java:713:68:713:84 | (...)... | -| Log4jJndiInjectionTest.java:714:62:714:69 | source(...) : String | Log4jJndiInjectionTest.java:714:53:714:69 | (...)... | -| Log4jJndiInjectionTest.java:715:47:715:54 | source(...) : String | Log4jJndiInjectionTest.java:715:38:715:54 | (...)... | -| Log4jJndiInjectionTest.java:716:47:716:54 | source(...) : String | Log4jJndiInjectionTest.java:716:38:716:54 | (...)... | -| Log4jJndiInjectionTest.java:717:67:717:74 | source(...) : String | Log4jJndiInjectionTest.java:717:53:717:74 | (...)... | -| Log4jJndiInjectionTest.java:718:47:718:54 | source(...) : String | Log4jJndiInjectionTest.java:718:38:718:54 | (...)... | -| Log4jJndiInjectionTest.java:719:52:719:59 | source(...) : String | Log4jJndiInjectionTest.java:719:38:719:59 | (...)... | -| Log4jJndiInjectionTest.java:720:52:720:59 | source(...) : String | Log4jJndiInjectionTest.java:720:38:720:59 | (...)... | -| Log4jJndiInjectionTest.java:721:41:721:48 | source(...) : String | Log4jJndiInjectionTest.java:721:26:721:48 | (...)... | -| Log4jJndiInjectionTest.java:722:41:722:48 | source(...) : String | Log4jJndiInjectionTest.java:722:26:722:48 | (...)... | -| Log4jJndiInjectionTest.java:723:56:723:63 | source(...) : String | Log4jJndiInjectionTest.java:723:41:723:63 | (...)... | -| Log4jJndiInjectionTest.java:724:56:724:63 | source(...) : String | Log4jJndiInjectionTest.java:724:41:724:63 | (...)... | -| Log4jJndiInjectionTest.java:725:51:725:58 | source(...) : String | Log4jJndiInjectionTest.java:725:41:725:58 | (...)... | -| Log4jJndiInjectionTest.java:726:59:726:66 | source(...) : String | Log4jJndiInjectionTest.java:726:41:726:66 | (...)... | -| Log4jJndiInjectionTest.java:727:59:727:66 | source(...) : String | Log4jJndiInjectionTest.java:727:41:727:66 | (...)... | -| Log4jJndiInjectionTest.java:729:50:729:57 | source(...) : String | Log4jJndiInjectionTest.java:729:41:729:57 | (...)... | -| Log4jJndiInjectionTest.java:730:50:730:57 | source(...) : String | Log4jJndiInjectionTest.java:730:41:730:57 | (...)... | -| Log4jJndiInjectionTest.java:731:56:731:78 | {...} : Object[] [[]] : String | Log4jJndiInjectionTest.java:731:56:731:78 | new Object[] | -| Log4jJndiInjectionTest.java:731:70:731:77 | source(...) : String | Log4jJndiInjectionTest.java:731:56:731:78 | {...} : Object[] [[]] : String | -| Log4jJndiInjectionTest.java:732:65:732:72 | source(...) : String | Log4jJndiInjectionTest.java:732:56:732:72 | (...)... | -| Log4jJndiInjectionTest.java:733:50:733:57 | source(...) : String | Log4jJndiInjectionTest.java:733:41:733:57 | (...)... | -| Log4jJndiInjectionTest.java:734:80:734:87 | source(...) : String | Log4jJndiInjectionTest.java:734:71:734:87 | (...)... | -| Log4jJndiInjectionTest.java:735:65:735:72 | source(...) : String | Log4jJndiInjectionTest.java:735:56:735:72 | (...)... | -| Log4jJndiInjectionTest.java:736:50:736:57 | source(...) : String | Log4jJndiInjectionTest.java:736:41:736:57 | (...)... | -| Log4jJndiInjectionTest.java:737:95:737:102 | source(...) : String | Log4jJndiInjectionTest.java:737:86:737:102 | (...)... | -| Log4jJndiInjectionTest.java:738:80:738:87 | source(...) : String | Log4jJndiInjectionTest.java:738:71:738:87 | (...)... | -| Log4jJndiInjectionTest.java:739:65:739:72 | source(...) : String | Log4jJndiInjectionTest.java:739:56:739:72 | (...)... | -| Log4jJndiInjectionTest.java:740:50:740:57 | source(...) : String | Log4jJndiInjectionTest.java:740:41:740:57 | (...)... | -| Log4jJndiInjectionTest.java:741:110:741:117 | source(...) : String | Log4jJndiInjectionTest.java:741:101:741:117 | (...)... | -| Log4jJndiInjectionTest.java:742:95:742:102 | source(...) : String | Log4jJndiInjectionTest.java:742:86:742:102 | (...)... | -| Log4jJndiInjectionTest.java:743:80:743:87 | source(...) : String | Log4jJndiInjectionTest.java:743:71:743:87 | (...)... | -| Log4jJndiInjectionTest.java:744:65:744:72 | source(...) : String | Log4jJndiInjectionTest.java:744:56:744:72 | (...)... | -| Log4jJndiInjectionTest.java:745:50:745:57 | source(...) : String | Log4jJndiInjectionTest.java:745:41:745:57 | (...)... | -| Log4jJndiInjectionTest.java:746:125:746:132 | source(...) : String | Log4jJndiInjectionTest.java:746:116:746:132 | (...)... | -| Log4jJndiInjectionTest.java:747:110:747:117 | source(...) : String | Log4jJndiInjectionTest.java:747:101:747:117 | (...)... | -| Log4jJndiInjectionTest.java:748:95:748:102 | source(...) : String | Log4jJndiInjectionTest.java:748:86:748:102 | (...)... | -| Log4jJndiInjectionTest.java:749:80:749:87 | source(...) : String | Log4jJndiInjectionTest.java:749:71:749:87 | (...)... | -| Log4jJndiInjectionTest.java:750:65:750:72 | source(...) : String | Log4jJndiInjectionTest.java:750:56:750:72 | (...)... | -| Log4jJndiInjectionTest.java:751:50:751:57 | source(...) : String | Log4jJndiInjectionTest.java:751:41:751:57 | (...)... | -| Log4jJndiInjectionTest.java:752:140:752:147 | source(...) : String | Log4jJndiInjectionTest.java:752:131:752:147 | (...)... | -| Log4jJndiInjectionTest.java:753:125:753:132 | source(...) : String | Log4jJndiInjectionTest.java:753:116:753:132 | (...)... | -| Log4jJndiInjectionTest.java:754:110:754:117 | source(...) : String | Log4jJndiInjectionTest.java:754:101:754:117 | (...)... | -| Log4jJndiInjectionTest.java:755:95:755:102 | source(...) : String | Log4jJndiInjectionTest.java:755:86:755:102 | (...)... | -| Log4jJndiInjectionTest.java:756:80:756:87 | source(...) : String | Log4jJndiInjectionTest.java:756:71:756:87 | (...)... | -| Log4jJndiInjectionTest.java:757:65:757:72 | source(...) : String | Log4jJndiInjectionTest.java:757:56:757:72 | (...)... | -| Log4jJndiInjectionTest.java:758:50:758:57 | source(...) : String | Log4jJndiInjectionTest.java:758:41:758:57 | (...)... | -| Log4jJndiInjectionTest.java:759:155:759:162 | source(...) : String | Log4jJndiInjectionTest.java:759:146:759:162 | (...)... | -| Log4jJndiInjectionTest.java:760:140:760:147 | source(...) : String | Log4jJndiInjectionTest.java:760:131:760:147 | (...)... | -| Log4jJndiInjectionTest.java:761:125:761:132 | source(...) : String | Log4jJndiInjectionTest.java:761:116:761:132 | (...)... | -| Log4jJndiInjectionTest.java:762:110:762:117 | source(...) : String | Log4jJndiInjectionTest.java:762:101:762:117 | (...)... | -| Log4jJndiInjectionTest.java:763:95:763:102 | source(...) : String | Log4jJndiInjectionTest.java:763:86:763:102 | (...)... | -| Log4jJndiInjectionTest.java:764:80:764:87 | source(...) : String | Log4jJndiInjectionTest.java:764:71:764:87 | (...)... | -| Log4jJndiInjectionTest.java:765:65:765:72 | source(...) : String | Log4jJndiInjectionTest.java:765:56:765:72 | (...)... | -| Log4jJndiInjectionTest.java:766:50:766:57 | source(...) : String | Log4jJndiInjectionTest.java:766:41:766:57 | (...)... | -| Log4jJndiInjectionTest.java:767:170:767:177 | source(...) : String | Log4jJndiInjectionTest.java:767:161:767:177 | (...)... | -| Log4jJndiInjectionTest.java:768:155:768:162 | source(...) : String | Log4jJndiInjectionTest.java:768:146:768:162 | (...)... | -| Log4jJndiInjectionTest.java:769:140:769:147 | source(...) : String | Log4jJndiInjectionTest.java:769:131:769:147 | (...)... | -| Log4jJndiInjectionTest.java:770:125:770:132 | source(...) : String | Log4jJndiInjectionTest.java:770:116:770:132 | (...)... | -| Log4jJndiInjectionTest.java:771:110:771:117 | source(...) : String | Log4jJndiInjectionTest.java:771:101:771:117 | (...)... | -| Log4jJndiInjectionTest.java:772:95:772:102 | source(...) : String | Log4jJndiInjectionTest.java:772:86:772:102 | (...)... | -| Log4jJndiInjectionTest.java:773:80:773:87 | source(...) : String | Log4jJndiInjectionTest.java:773:71:773:87 | (...)... | -| Log4jJndiInjectionTest.java:774:65:774:72 | source(...) : String | Log4jJndiInjectionTest.java:774:56:774:72 | (...)... | -| Log4jJndiInjectionTest.java:775:50:775:57 | source(...) : String | Log4jJndiInjectionTest.java:775:41:775:57 | (...)... | -| Log4jJndiInjectionTest.java:776:185:776:192 | source(...) : String | Log4jJndiInjectionTest.java:776:176:776:192 | (...)... | -| Log4jJndiInjectionTest.java:777:170:777:177 | source(...) : String | Log4jJndiInjectionTest.java:777:161:777:177 | (...)... | -| Log4jJndiInjectionTest.java:778:155:778:162 | source(...) : String | Log4jJndiInjectionTest.java:778:146:778:162 | (...)... | -| Log4jJndiInjectionTest.java:779:140:779:147 | source(...) : String | Log4jJndiInjectionTest.java:779:131:779:147 | (...)... | -| Log4jJndiInjectionTest.java:780:125:780:132 | source(...) : String | Log4jJndiInjectionTest.java:780:116:780:132 | (...)... | -| Log4jJndiInjectionTest.java:781:110:781:117 | source(...) : String | Log4jJndiInjectionTest.java:781:101:781:117 | (...)... | -| Log4jJndiInjectionTest.java:782:95:782:102 | source(...) : String | Log4jJndiInjectionTest.java:782:86:782:102 | (...)... | -| Log4jJndiInjectionTest.java:783:80:783:87 | source(...) : String | Log4jJndiInjectionTest.java:783:71:783:87 | (...)... | -| Log4jJndiInjectionTest.java:784:65:784:72 | source(...) : String | Log4jJndiInjectionTest.java:784:56:784:72 | (...)... | -| Log4jJndiInjectionTest.java:785:50:785:57 | source(...) : String | Log4jJndiInjectionTest.java:785:41:785:57 | (...)... | -| Log4jJndiInjectionTest.java:786:50:786:57 | source(...) : String | Log4jJndiInjectionTest.java:786:41:786:57 | (...)... | -| Log4jJndiInjectionTest.java:787:70:787:77 | source(...) : String | Log4jJndiInjectionTest.java:787:56:787:77 | (...)... | -| Log4jJndiInjectionTest.java:788:50:788:57 | source(...) : String | Log4jJndiInjectionTest.java:788:41:788:57 | (...)... | -| Log4jJndiInjectionTest.java:789:55:789:62 | source(...) : String | Log4jJndiInjectionTest.java:789:41:789:62 | (...)... | -| Log4jJndiInjectionTest.java:790:55:790:62 | source(...) : String | Log4jJndiInjectionTest.java:790:41:790:62 | (...)... | -| Log4jJndiInjectionTest.java:791:44:791:51 | source(...) : String | Log4jJndiInjectionTest.java:791:26:791:51 | (...)... | -| Log4jJndiInjectionTest.java:792:44:792:51 | source(...) : String | Log4jJndiInjectionTest.java:792:26:792:51 | (...)... | -| Log4jJndiInjectionTest.java:793:36:793:43 | source(...) : String | Log4jJndiInjectionTest.java:793:26:793:43 | (...)... | -| Log4jJndiInjectionTest.java:794:36:794:43 | source(...) : String | Log4jJndiInjectionTest.java:794:26:794:43 | (...)... | -| Log4jJndiInjectionTest.java:797:35:797:42 | source(...) : String | Log4jJndiInjectionTest.java:797:26:797:42 | (...)... | -| Log4jJndiInjectionTest.java:798:35:798:42 | source(...) : String | Log4jJndiInjectionTest.java:798:26:798:42 | (...)... | -| Log4jJndiInjectionTest.java:799:41:799:63 | {...} : Object[] [[]] : String | Log4jJndiInjectionTest.java:799:41:799:63 | new Object[] | -| Log4jJndiInjectionTest.java:799:55:799:62 | source(...) : String | Log4jJndiInjectionTest.java:799:41:799:63 | {...} : Object[] [[]] : String | -| Log4jJndiInjectionTest.java:800:50:800:57 | source(...) : String | Log4jJndiInjectionTest.java:800:41:800:57 | (...)... | -| Log4jJndiInjectionTest.java:801:35:801:42 | source(...) : String | Log4jJndiInjectionTest.java:801:26:801:42 | (...)... | -| Log4jJndiInjectionTest.java:802:65:802:72 | source(...) : String | Log4jJndiInjectionTest.java:802:56:802:72 | (...)... | -| Log4jJndiInjectionTest.java:803:50:803:57 | source(...) : String | Log4jJndiInjectionTest.java:803:41:803:57 | (...)... | -| Log4jJndiInjectionTest.java:804:35:804:42 | source(...) : String | Log4jJndiInjectionTest.java:804:26:804:42 | (...)... | -| Log4jJndiInjectionTest.java:805:80:805:87 | source(...) : String | Log4jJndiInjectionTest.java:805:71:805:87 | (...)... | -| Log4jJndiInjectionTest.java:806:65:806:72 | source(...) : String | Log4jJndiInjectionTest.java:806:56:806:72 | (...)... | -| Log4jJndiInjectionTest.java:807:50:807:57 | source(...) : String | Log4jJndiInjectionTest.java:807:41:807:57 | (...)... | -| Log4jJndiInjectionTest.java:808:35:808:42 | source(...) : String | Log4jJndiInjectionTest.java:808:26:808:42 | (...)... | -| Log4jJndiInjectionTest.java:809:95:809:102 | source(...) : String | Log4jJndiInjectionTest.java:809:86:809:102 | (...)... | -| Log4jJndiInjectionTest.java:810:80:810:87 | source(...) : String | Log4jJndiInjectionTest.java:810:71:810:87 | (...)... | -| Log4jJndiInjectionTest.java:811:65:811:72 | source(...) : String | Log4jJndiInjectionTest.java:811:56:811:72 | (...)... | -| Log4jJndiInjectionTest.java:812:50:812:57 | source(...) : String | Log4jJndiInjectionTest.java:812:41:812:57 | (...)... | -| Log4jJndiInjectionTest.java:813:35:813:42 | source(...) : String | Log4jJndiInjectionTest.java:813:26:813:42 | (...)... | -| Log4jJndiInjectionTest.java:814:110:814:117 | source(...) : String | Log4jJndiInjectionTest.java:814:101:814:117 | (...)... | -| Log4jJndiInjectionTest.java:815:95:815:102 | source(...) : String | Log4jJndiInjectionTest.java:815:86:815:102 | (...)... | -| Log4jJndiInjectionTest.java:816:80:816:87 | source(...) : String | Log4jJndiInjectionTest.java:816:71:816:87 | (...)... | -| Log4jJndiInjectionTest.java:817:65:817:72 | source(...) : String | Log4jJndiInjectionTest.java:817:56:817:72 | (...)... | -| Log4jJndiInjectionTest.java:818:50:818:57 | source(...) : String | Log4jJndiInjectionTest.java:818:41:818:57 | (...)... | -| Log4jJndiInjectionTest.java:819:35:819:42 | source(...) : String | Log4jJndiInjectionTest.java:819:26:819:42 | (...)... | -| Log4jJndiInjectionTest.java:820:125:820:132 | source(...) : String | Log4jJndiInjectionTest.java:820:116:820:132 | (...)... | -| Log4jJndiInjectionTest.java:821:110:821:117 | source(...) : String | Log4jJndiInjectionTest.java:821:101:821:117 | (...)... | -| Log4jJndiInjectionTest.java:822:95:822:102 | source(...) : String | Log4jJndiInjectionTest.java:822:86:822:102 | (...)... | -| Log4jJndiInjectionTest.java:823:80:823:87 | source(...) : String | Log4jJndiInjectionTest.java:823:71:823:87 | (...)... | -| Log4jJndiInjectionTest.java:824:65:824:72 | source(...) : String | Log4jJndiInjectionTest.java:824:56:824:72 | (...)... | -| Log4jJndiInjectionTest.java:825:50:825:57 | source(...) : String | Log4jJndiInjectionTest.java:825:41:825:57 | (...)... | -| Log4jJndiInjectionTest.java:826:35:826:42 | source(...) : String | Log4jJndiInjectionTest.java:826:26:826:42 | (...)... | -| Log4jJndiInjectionTest.java:827:140:827:147 | source(...) : String | Log4jJndiInjectionTest.java:827:131:827:147 | (...)... | -| Log4jJndiInjectionTest.java:828:125:828:132 | source(...) : String | Log4jJndiInjectionTest.java:828:116:828:132 | (...)... | -| Log4jJndiInjectionTest.java:829:110:829:117 | source(...) : String | Log4jJndiInjectionTest.java:829:101:829:117 | (...)... | -| Log4jJndiInjectionTest.java:830:95:830:102 | source(...) : String | Log4jJndiInjectionTest.java:830:86:830:102 | (...)... | -| Log4jJndiInjectionTest.java:831:80:831:87 | source(...) : String | Log4jJndiInjectionTest.java:831:71:831:87 | (...)... | -| Log4jJndiInjectionTest.java:832:65:832:72 | source(...) : String | Log4jJndiInjectionTest.java:832:56:832:72 | (...)... | -| Log4jJndiInjectionTest.java:833:50:833:57 | source(...) : String | Log4jJndiInjectionTest.java:833:41:833:57 | (...)... | -| Log4jJndiInjectionTest.java:834:35:834:42 | source(...) : String | Log4jJndiInjectionTest.java:834:26:834:42 | (...)... | -| Log4jJndiInjectionTest.java:835:155:835:162 | source(...) : String | Log4jJndiInjectionTest.java:835:146:835:162 | (...)... | -| Log4jJndiInjectionTest.java:836:140:836:147 | source(...) : String | Log4jJndiInjectionTest.java:836:131:836:147 | (...)... | -| Log4jJndiInjectionTest.java:837:125:837:132 | source(...) : String | Log4jJndiInjectionTest.java:837:116:837:132 | (...)... | -| Log4jJndiInjectionTest.java:838:110:838:117 | source(...) : String | Log4jJndiInjectionTest.java:838:101:838:117 | (...)... | -| Log4jJndiInjectionTest.java:839:95:839:102 | source(...) : String | Log4jJndiInjectionTest.java:839:86:839:102 | (...)... | -| Log4jJndiInjectionTest.java:840:80:840:87 | source(...) : String | Log4jJndiInjectionTest.java:840:71:840:87 | (...)... | -| Log4jJndiInjectionTest.java:841:65:841:72 | source(...) : String | Log4jJndiInjectionTest.java:841:56:841:72 | (...)... | -| Log4jJndiInjectionTest.java:842:50:842:57 | source(...) : String | Log4jJndiInjectionTest.java:842:41:842:57 | (...)... | -| Log4jJndiInjectionTest.java:843:35:843:42 | source(...) : String | Log4jJndiInjectionTest.java:843:26:843:42 | (...)... | -| Log4jJndiInjectionTest.java:844:170:844:177 | source(...) : String | Log4jJndiInjectionTest.java:844:161:844:177 | (...)... | -| Log4jJndiInjectionTest.java:845:155:845:162 | source(...) : String | Log4jJndiInjectionTest.java:845:146:845:162 | (...)... | -| Log4jJndiInjectionTest.java:846:140:846:147 | source(...) : String | Log4jJndiInjectionTest.java:846:131:846:147 | (...)... | -| Log4jJndiInjectionTest.java:847:125:847:132 | source(...) : String | Log4jJndiInjectionTest.java:847:116:847:132 | (...)... | -| Log4jJndiInjectionTest.java:848:110:848:117 | source(...) : String | Log4jJndiInjectionTest.java:848:101:848:117 | (...)... | -| Log4jJndiInjectionTest.java:849:95:849:102 | source(...) : String | Log4jJndiInjectionTest.java:849:86:849:102 | (...)... | -| Log4jJndiInjectionTest.java:850:80:850:87 | source(...) : String | Log4jJndiInjectionTest.java:850:71:850:87 | (...)... | -| Log4jJndiInjectionTest.java:851:65:851:72 | source(...) : String | Log4jJndiInjectionTest.java:851:56:851:72 | (...)... | -| Log4jJndiInjectionTest.java:852:50:852:57 | source(...) : String | Log4jJndiInjectionTest.java:852:41:852:57 | (...)... | -| Log4jJndiInjectionTest.java:853:35:853:42 | source(...) : String | Log4jJndiInjectionTest.java:853:26:853:42 | (...)... | -| Log4jJndiInjectionTest.java:854:35:854:42 | source(...) : String | Log4jJndiInjectionTest.java:854:26:854:42 | (...)... | -| Log4jJndiInjectionTest.java:855:55:855:62 | source(...) : String | Log4jJndiInjectionTest.java:855:41:855:62 | (...)... | -| Log4jJndiInjectionTest.java:856:35:856:42 | source(...) : String | Log4jJndiInjectionTest.java:856:26:856:42 | (...)... | -| Log4jJndiInjectionTest.java:857:40:857:47 | source(...) : String | Log4jJndiInjectionTest.java:857:26:857:47 | (...)... | -| Log4jJndiInjectionTest.java:858:40:858:47 | source(...) : String | Log4jJndiInjectionTest.java:858:26:858:47 | (...)... | -| Log4jJndiInjectionTest.java:859:40:859:47 | source(...) : String | Log4jJndiInjectionTest.java:859:25:859:47 | (...)... | -| Log4jJndiInjectionTest.java:860:40:860:47 | source(...) : String | Log4jJndiInjectionTest.java:860:25:860:47 | (...)... | -| Log4jJndiInjectionTest.java:861:55:861:62 | source(...) : String | Log4jJndiInjectionTest.java:861:40:861:62 | (...)... | -| Log4jJndiInjectionTest.java:862:55:862:62 | source(...) : String | Log4jJndiInjectionTest.java:862:40:862:62 | (...)... | -| Log4jJndiInjectionTest.java:863:50:863:57 | source(...) : String | Log4jJndiInjectionTest.java:863:40:863:57 | (...)... | -| Log4jJndiInjectionTest.java:864:58:864:65 | source(...) : String | Log4jJndiInjectionTest.java:864:40:864:65 | (...)... | -| Log4jJndiInjectionTest.java:865:58:865:65 | source(...) : String | Log4jJndiInjectionTest.java:865:40:865:65 | (...)... | -| Log4jJndiInjectionTest.java:867:49:867:56 | source(...) : String | Log4jJndiInjectionTest.java:867:40:867:56 | (...)... | -| Log4jJndiInjectionTest.java:868:49:868:56 | source(...) : String | Log4jJndiInjectionTest.java:868:40:868:56 | (...)... | -| Log4jJndiInjectionTest.java:869:55:869:77 | {...} : Object[] [[]] : String | Log4jJndiInjectionTest.java:869:55:869:77 | new Object[] | -| Log4jJndiInjectionTest.java:869:69:869:76 | source(...) : String | Log4jJndiInjectionTest.java:869:55:869:77 | {...} : Object[] [[]] : String | -| Log4jJndiInjectionTest.java:870:64:870:71 | source(...) : String | Log4jJndiInjectionTest.java:870:55:870:71 | (...)... | -| Log4jJndiInjectionTest.java:871:49:871:56 | source(...) : String | Log4jJndiInjectionTest.java:871:40:871:56 | (...)... | -| Log4jJndiInjectionTest.java:872:79:872:86 | source(...) : String | Log4jJndiInjectionTest.java:872:70:872:86 | (...)... | -| Log4jJndiInjectionTest.java:873:64:873:71 | source(...) : String | Log4jJndiInjectionTest.java:873:55:873:71 | (...)... | -| Log4jJndiInjectionTest.java:874:49:874:56 | source(...) : String | Log4jJndiInjectionTest.java:874:40:874:56 | (...)... | -| Log4jJndiInjectionTest.java:875:94:875:101 | source(...) : String | Log4jJndiInjectionTest.java:875:85:875:101 | (...)... | -| Log4jJndiInjectionTest.java:876:79:876:86 | source(...) : String | Log4jJndiInjectionTest.java:876:70:876:86 | (...)... | -| Log4jJndiInjectionTest.java:877:64:877:71 | source(...) : String | Log4jJndiInjectionTest.java:877:55:877:71 | (...)... | -| Log4jJndiInjectionTest.java:878:49:878:56 | source(...) : String | Log4jJndiInjectionTest.java:878:40:878:56 | (...)... | -| Log4jJndiInjectionTest.java:879:109:879:116 | source(...) : String | Log4jJndiInjectionTest.java:879:100:879:116 | (...)... | -| Log4jJndiInjectionTest.java:880:94:880:101 | source(...) : String | Log4jJndiInjectionTest.java:880:85:880:101 | (...)... | -| Log4jJndiInjectionTest.java:881:79:881:86 | source(...) : String | Log4jJndiInjectionTest.java:881:70:881:86 | (...)... | -| Log4jJndiInjectionTest.java:882:64:882:71 | source(...) : String | Log4jJndiInjectionTest.java:882:55:882:71 | (...)... | -| Log4jJndiInjectionTest.java:883:49:883:56 | source(...) : String | Log4jJndiInjectionTest.java:883:40:883:56 | (...)... | -| Log4jJndiInjectionTest.java:884:124:884:131 | source(...) : String | Log4jJndiInjectionTest.java:884:115:884:131 | (...)... | -| Log4jJndiInjectionTest.java:885:109:885:116 | source(...) : String | Log4jJndiInjectionTest.java:885:100:885:116 | (...)... | -| Log4jJndiInjectionTest.java:886:94:886:101 | source(...) : String | Log4jJndiInjectionTest.java:886:85:886:101 | (...)... | -| Log4jJndiInjectionTest.java:887:79:887:86 | source(...) : String | Log4jJndiInjectionTest.java:887:70:887:86 | (...)... | -| Log4jJndiInjectionTest.java:888:64:888:71 | source(...) : String | Log4jJndiInjectionTest.java:888:55:888:71 | (...)... | -| Log4jJndiInjectionTest.java:889:49:889:56 | source(...) : String | Log4jJndiInjectionTest.java:889:40:889:56 | (...)... | -| Log4jJndiInjectionTest.java:890:139:890:146 | source(...) : String | Log4jJndiInjectionTest.java:890:130:890:146 | (...)... | -| Log4jJndiInjectionTest.java:891:124:891:131 | source(...) : String | Log4jJndiInjectionTest.java:891:115:891:131 | (...)... | -| Log4jJndiInjectionTest.java:892:109:892:116 | source(...) : String | Log4jJndiInjectionTest.java:892:100:892:116 | (...)... | -| Log4jJndiInjectionTest.java:893:94:893:101 | source(...) : String | Log4jJndiInjectionTest.java:893:85:893:101 | (...)... | -| Log4jJndiInjectionTest.java:894:79:894:86 | source(...) : String | Log4jJndiInjectionTest.java:894:70:894:86 | (...)... | -| Log4jJndiInjectionTest.java:895:64:895:71 | source(...) : String | Log4jJndiInjectionTest.java:895:55:895:71 | (...)... | -| Log4jJndiInjectionTest.java:896:49:896:56 | source(...) : String | Log4jJndiInjectionTest.java:896:40:896:56 | (...)... | -| Log4jJndiInjectionTest.java:897:154:897:161 | source(...) : String | Log4jJndiInjectionTest.java:897:145:897:161 | (...)... | -| Log4jJndiInjectionTest.java:898:139:898:146 | source(...) : String | Log4jJndiInjectionTest.java:898:130:898:146 | (...)... | -| Log4jJndiInjectionTest.java:899:124:899:131 | source(...) : String | Log4jJndiInjectionTest.java:899:115:899:131 | (...)... | -| Log4jJndiInjectionTest.java:900:109:900:116 | source(...) : String | Log4jJndiInjectionTest.java:900:100:900:116 | (...)... | -| Log4jJndiInjectionTest.java:901:94:901:101 | source(...) : String | Log4jJndiInjectionTest.java:901:85:901:101 | (...)... | -| Log4jJndiInjectionTest.java:902:79:902:86 | source(...) : String | Log4jJndiInjectionTest.java:902:70:902:86 | (...)... | -| Log4jJndiInjectionTest.java:903:64:903:71 | source(...) : String | Log4jJndiInjectionTest.java:903:55:903:71 | (...)... | -| Log4jJndiInjectionTest.java:904:49:904:56 | source(...) : String | Log4jJndiInjectionTest.java:904:40:904:56 | (...)... | -| Log4jJndiInjectionTest.java:905:169:905:176 | source(...) : String | Log4jJndiInjectionTest.java:905:160:905:176 | (...)... | -| Log4jJndiInjectionTest.java:906:154:906:161 | source(...) : String | Log4jJndiInjectionTest.java:906:145:906:161 | (...)... | -| Log4jJndiInjectionTest.java:907:139:907:146 | source(...) : String | Log4jJndiInjectionTest.java:907:130:907:146 | (...)... | -| Log4jJndiInjectionTest.java:908:124:908:131 | source(...) : String | Log4jJndiInjectionTest.java:908:115:908:131 | (...)... | -| Log4jJndiInjectionTest.java:909:109:909:116 | source(...) : String | Log4jJndiInjectionTest.java:909:100:909:116 | (...)... | -| Log4jJndiInjectionTest.java:910:94:910:101 | source(...) : String | Log4jJndiInjectionTest.java:910:85:910:101 | (...)... | -| Log4jJndiInjectionTest.java:911:79:911:86 | source(...) : String | Log4jJndiInjectionTest.java:911:70:911:86 | (...)... | -| Log4jJndiInjectionTest.java:912:64:912:71 | source(...) : String | Log4jJndiInjectionTest.java:912:55:912:71 | (...)... | -| Log4jJndiInjectionTest.java:913:49:913:56 | source(...) : String | Log4jJndiInjectionTest.java:913:40:913:56 | (...)... | -| Log4jJndiInjectionTest.java:914:184:914:191 | source(...) : String | Log4jJndiInjectionTest.java:914:175:914:191 | (...)... | -| Log4jJndiInjectionTest.java:915:169:915:176 | source(...) : String | Log4jJndiInjectionTest.java:915:160:915:176 | (...)... | -| Log4jJndiInjectionTest.java:916:154:916:161 | source(...) : String | Log4jJndiInjectionTest.java:916:145:916:161 | (...)... | -| Log4jJndiInjectionTest.java:917:139:917:146 | source(...) : String | Log4jJndiInjectionTest.java:917:130:917:146 | (...)... | -| Log4jJndiInjectionTest.java:918:124:918:131 | source(...) : String | Log4jJndiInjectionTest.java:918:115:918:131 | (...)... | -| Log4jJndiInjectionTest.java:919:109:919:116 | source(...) : String | Log4jJndiInjectionTest.java:919:100:919:116 | (...)... | -| Log4jJndiInjectionTest.java:920:94:920:101 | source(...) : String | Log4jJndiInjectionTest.java:920:85:920:101 | (...)... | -| Log4jJndiInjectionTest.java:921:79:921:86 | source(...) : String | Log4jJndiInjectionTest.java:921:70:921:86 | (...)... | -| Log4jJndiInjectionTest.java:922:64:922:71 | source(...) : String | Log4jJndiInjectionTest.java:922:55:922:71 | (...)... | -| Log4jJndiInjectionTest.java:923:49:923:56 | source(...) : String | Log4jJndiInjectionTest.java:923:40:923:56 | (...)... | -| Log4jJndiInjectionTest.java:924:49:924:56 | source(...) : String | Log4jJndiInjectionTest.java:924:40:924:56 | (...)... | -| Log4jJndiInjectionTest.java:925:69:925:76 | source(...) : String | Log4jJndiInjectionTest.java:925:55:925:76 | (...)... | -| Log4jJndiInjectionTest.java:926:49:926:56 | source(...) : String | Log4jJndiInjectionTest.java:926:40:926:56 | (...)... | -| Log4jJndiInjectionTest.java:927:54:927:61 | source(...) : String | Log4jJndiInjectionTest.java:927:40:927:61 | (...)... | -| Log4jJndiInjectionTest.java:928:54:928:61 | source(...) : String | Log4jJndiInjectionTest.java:928:40:928:61 | (...)... | -| Log4jJndiInjectionTest.java:929:43:929:50 | source(...) : String | Log4jJndiInjectionTest.java:929:25:929:50 | (...)... | -| Log4jJndiInjectionTest.java:930:43:930:50 | source(...) : String | Log4jJndiInjectionTest.java:930:25:930:50 | (...)... | -| Log4jJndiInjectionTest.java:931:35:931:42 | source(...) : String | Log4jJndiInjectionTest.java:931:25:931:42 | (...)... | -| Log4jJndiInjectionTest.java:932:35:932:42 | source(...) : String | Log4jJndiInjectionTest.java:932:25:932:42 | (...)... | -| Log4jJndiInjectionTest.java:935:34:935:41 | source(...) : String | Log4jJndiInjectionTest.java:935:25:935:41 | (...)... | -| Log4jJndiInjectionTest.java:936:34:936:41 | source(...) : String | Log4jJndiInjectionTest.java:936:25:936:41 | (...)... | -| Log4jJndiInjectionTest.java:937:40:937:62 | {...} : Object[] [[]] : String | Log4jJndiInjectionTest.java:937:40:937:62 | new Object[] | -| Log4jJndiInjectionTest.java:937:54:937:61 | source(...) : String | Log4jJndiInjectionTest.java:937:40:937:62 | {...} : Object[] [[]] : String | -| Log4jJndiInjectionTest.java:938:49:938:56 | source(...) : String | Log4jJndiInjectionTest.java:938:40:938:56 | (...)... | -| Log4jJndiInjectionTest.java:939:34:939:41 | source(...) : String | Log4jJndiInjectionTest.java:939:25:939:41 | (...)... | -| Log4jJndiInjectionTest.java:940:64:940:71 | source(...) : String | Log4jJndiInjectionTest.java:940:55:940:71 | (...)... | -| Log4jJndiInjectionTest.java:941:49:941:56 | source(...) : String | Log4jJndiInjectionTest.java:941:40:941:56 | (...)... | -| Log4jJndiInjectionTest.java:942:34:942:41 | source(...) : String | Log4jJndiInjectionTest.java:942:25:942:41 | (...)... | -| Log4jJndiInjectionTest.java:943:79:943:86 | source(...) : String | Log4jJndiInjectionTest.java:943:70:943:86 | (...)... | -| Log4jJndiInjectionTest.java:944:64:944:71 | source(...) : String | Log4jJndiInjectionTest.java:944:55:944:71 | (...)... | -| Log4jJndiInjectionTest.java:945:49:945:56 | source(...) : String | Log4jJndiInjectionTest.java:945:40:945:56 | (...)... | -| Log4jJndiInjectionTest.java:946:34:946:41 | source(...) : String | Log4jJndiInjectionTest.java:946:25:946:41 | (...)... | -| Log4jJndiInjectionTest.java:947:94:947:101 | source(...) : String | Log4jJndiInjectionTest.java:947:85:947:101 | (...)... | -| Log4jJndiInjectionTest.java:948:79:948:86 | source(...) : String | Log4jJndiInjectionTest.java:948:70:948:86 | (...)... | -| Log4jJndiInjectionTest.java:949:64:949:71 | source(...) : String | Log4jJndiInjectionTest.java:949:55:949:71 | (...)... | -| Log4jJndiInjectionTest.java:950:49:950:56 | source(...) : String | Log4jJndiInjectionTest.java:950:40:950:56 | (...)... | -| Log4jJndiInjectionTest.java:951:34:951:41 | source(...) : String | Log4jJndiInjectionTest.java:951:25:951:41 | (...)... | -| Log4jJndiInjectionTest.java:952:109:952:116 | source(...) : String | Log4jJndiInjectionTest.java:952:100:952:116 | (...)... | -| Log4jJndiInjectionTest.java:953:94:953:101 | source(...) : String | Log4jJndiInjectionTest.java:953:85:953:101 | (...)... | -| Log4jJndiInjectionTest.java:954:79:954:86 | source(...) : String | Log4jJndiInjectionTest.java:954:70:954:86 | (...)... | -| Log4jJndiInjectionTest.java:955:64:955:71 | source(...) : String | Log4jJndiInjectionTest.java:955:55:955:71 | (...)... | -| Log4jJndiInjectionTest.java:956:49:956:56 | source(...) : String | Log4jJndiInjectionTest.java:956:40:956:56 | (...)... | -| Log4jJndiInjectionTest.java:957:34:957:41 | source(...) : String | Log4jJndiInjectionTest.java:957:25:957:41 | (...)... | -| Log4jJndiInjectionTest.java:958:124:958:131 | source(...) : String | Log4jJndiInjectionTest.java:958:115:958:131 | (...)... | -| Log4jJndiInjectionTest.java:959:109:959:116 | source(...) : String | Log4jJndiInjectionTest.java:959:100:959:116 | (...)... | -| Log4jJndiInjectionTest.java:960:94:960:101 | source(...) : String | Log4jJndiInjectionTest.java:960:85:960:101 | (...)... | -| Log4jJndiInjectionTest.java:961:79:961:86 | source(...) : String | Log4jJndiInjectionTest.java:961:70:961:86 | (...)... | -| Log4jJndiInjectionTest.java:962:64:962:71 | source(...) : String | Log4jJndiInjectionTest.java:962:55:962:71 | (...)... | -| Log4jJndiInjectionTest.java:963:49:963:56 | source(...) : String | Log4jJndiInjectionTest.java:963:40:963:56 | (...)... | -| Log4jJndiInjectionTest.java:964:34:964:41 | source(...) : String | Log4jJndiInjectionTest.java:964:25:964:41 | (...)... | -| Log4jJndiInjectionTest.java:965:139:965:146 | source(...) : String | Log4jJndiInjectionTest.java:965:130:965:146 | (...)... | -| Log4jJndiInjectionTest.java:966:124:966:131 | source(...) : String | Log4jJndiInjectionTest.java:966:115:966:131 | (...)... | -| Log4jJndiInjectionTest.java:967:109:967:116 | source(...) : String | Log4jJndiInjectionTest.java:967:100:967:116 | (...)... | -| Log4jJndiInjectionTest.java:968:94:968:101 | source(...) : String | Log4jJndiInjectionTest.java:968:85:968:101 | (...)... | -| Log4jJndiInjectionTest.java:969:79:969:86 | source(...) : String | Log4jJndiInjectionTest.java:969:70:969:86 | (...)... | -| Log4jJndiInjectionTest.java:970:64:970:71 | source(...) : String | Log4jJndiInjectionTest.java:970:55:970:71 | (...)... | -| Log4jJndiInjectionTest.java:971:49:971:56 | source(...) : String | Log4jJndiInjectionTest.java:971:40:971:56 | (...)... | -| Log4jJndiInjectionTest.java:972:34:972:41 | source(...) : String | Log4jJndiInjectionTest.java:972:25:972:41 | (...)... | -| Log4jJndiInjectionTest.java:973:154:973:161 | source(...) : String | Log4jJndiInjectionTest.java:973:145:973:161 | (...)... | -| Log4jJndiInjectionTest.java:974:139:974:146 | source(...) : String | Log4jJndiInjectionTest.java:974:130:974:146 | (...)... | -| Log4jJndiInjectionTest.java:975:124:975:131 | source(...) : String | Log4jJndiInjectionTest.java:975:115:975:131 | (...)... | -| Log4jJndiInjectionTest.java:976:109:976:116 | source(...) : String | Log4jJndiInjectionTest.java:976:100:976:116 | (...)... | -| Log4jJndiInjectionTest.java:977:94:977:101 | source(...) : String | Log4jJndiInjectionTest.java:977:85:977:101 | (...)... | -| Log4jJndiInjectionTest.java:978:79:978:86 | source(...) : String | Log4jJndiInjectionTest.java:978:70:978:86 | (...)... | -| Log4jJndiInjectionTest.java:979:64:979:71 | source(...) : String | Log4jJndiInjectionTest.java:979:55:979:71 | (...)... | -| Log4jJndiInjectionTest.java:980:49:980:56 | source(...) : String | Log4jJndiInjectionTest.java:980:40:980:56 | (...)... | -| Log4jJndiInjectionTest.java:981:34:981:41 | source(...) : String | Log4jJndiInjectionTest.java:981:25:981:41 | (...)... | -| Log4jJndiInjectionTest.java:982:169:982:176 | source(...) : String | Log4jJndiInjectionTest.java:982:160:982:176 | (...)... | -| Log4jJndiInjectionTest.java:983:154:983:161 | source(...) : String | Log4jJndiInjectionTest.java:983:145:983:161 | (...)... | -| Log4jJndiInjectionTest.java:984:139:984:146 | source(...) : String | Log4jJndiInjectionTest.java:984:130:984:146 | (...)... | -| Log4jJndiInjectionTest.java:985:124:985:131 | source(...) : String | Log4jJndiInjectionTest.java:985:115:985:131 | (...)... | -| Log4jJndiInjectionTest.java:986:109:986:116 | source(...) : String | Log4jJndiInjectionTest.java:986:100:986:116 | (...)... | -| Log4jJndiInjectionTest.java:987:94:987:101 | source(...) : String | Log4jJndiInjectionTest.java:987:85:987:101 | (...)... | -| Log4jJndiInjectionTest.java:988:79:988:86 | source(...) : String | Log4jJndiInjectionTest.java:988:70:988:86 | (...)... | -| Log4jJndiInjectionTest.java:989:64:989:71 | source(...) : String | Log4jJndiInjectionTest.java:989:55:989:71 | (...)... | -| Log4jJndiInjectionTest.java:990:49:990:56 | source(...) : String | Log4jJndiInjectionTest.java:990:40:990:56 | (...)... | -| Log4jJndiInjectionTest.java:991:34:991:41 | source(...) : String | Log4jJndiInjectionTest.java:991:25:991:41 | (...)... | -| Log4jJndiInjectionTest.java:992:34:992:41 | source(...) : String | Log4jJndiInjectionTest.java:992:25:992:41 | (...)... | -| Log4jJndiInjectionTest.java:993:54:993:61 | source(...) : String | Log4jJndiInjectionTest.java:993:40:993:61 | (...)... | -| Log4jJndiInjectionTest.java:994:34:994:41 | source(...) : String | Log4jJndiInjectionTest.java:994:25:994:41 | (...)... | -| Log4jJndiInjectionTest.java:995:39:995:46 | source(...) : String | Log4jJndiInjectionTest.java:995:25:995:46 | (...)... | -| Log4jJndiInjectionTest.java:996:39:996:46 | source(...) : String | Log4jJndiInjectionTest.java:996:25:996:46 | (...)... | -| Log4jJndiInjectionTest.java:998:65:998:72 | source(...) : String | Log4jJndiInjectionTest.java:998:55:998:72 | (...)... | -| Log4jJndiInjectionTest.java:999:48:999:55 | source(...) : String | Log4jJndiInjectionTest.java:999:39:999:55 | (...)... | -| Log4jJndiInjectionTest.java:1000:45:1000:67 | {...} : Object[] [[]] : String | Log4jJndiInjectionTest.java:1000:45:1000:67 | new Object[] | -| Log4jJndiInjectionTest.java:1000:59:1000:66 | source(...) : String | Log4jJndiInjectionTest.java:1000:45:1000:67 | {...} : Object[] [[]] : String | -| Log4jJndiInjectionTest.java:1001:42:1001:49 | source(...) : String | Log4jJndiInjectionTest.java:1001:33:1001:49 | (...)... | -| Log4jJndiInjectionTest.java:1002:39:1002:61 | {...} : Object[] [[]] : String | Log4jJndiInjectionTest.java:1002:39:1002:61 | new Object[] | -| Log4jJndiInjectionTest.java:1002:53:1002:60 | source(...) : String | Log4jJndiInjectionTest.java:1002:39:1002:61 | {...} : Object[] [[]] : String | -| Log4jJndiInjectionTest.java:1020:40:1020:47 | source(...) : String | Log4jJndiInjectionTest.java:1020:25:1020:47 | (...)... | -| Log4jJndiInjectionTest.java:1021:35:1021:42 | source(...) : String | Log4jJndiInjectionTest.java:1021:25:1021:42 | (...)... | -| Log4jJndiInjectionTest.java:1023:34:1023:41 | source(...) : String | Log4jJndiInjectionTest.java:1023:25:1023:41 | (...)... | -| Log4jJndiInjectionTest.java:1024:34:1024:41 | source(...) : String | Log4jJndiInjectionTest.java:1024:25:1024:41 | (...)... | -| Log4jJndiInjectionTest.java:1025:40:1025:62 | {...} : Object[] [[]] : String | Log4jJndiInjectionTest.java:1025:40:1025:62 | new Object[] | -| Log4jJndiInjectionTest.java:1025:54:1025:61 | source(...) : String | Log4jJndiInjectionTest.java:1025:40:1025:62 | {...} : Object[] [[]] : String | -| Log4jJndiInjectionTest.java:1028:49:1028:56 | source(...) : String | Log4jJndiInjectionTest.java:1028:40:1028:56 | (...)... | -| Log4jJndiInjectionTest.java:1029:34:1029:41 | source(...) : String | Log4jJndiInjectionTest.java:1029:25:1029:41 | (...)... | -| Log4jJndiInjectionTest.java:1030:64:1030:71 | source(...) : String | Log4jJndiInjectionTest.java:1030:55:1030:71 | (...)... | -| Log4jJndiInjectionTest.java:1031:49:1031:56 | source(...) : String | Log4jJndiInjectionTest.java:1031:40:1031:56 | (...)... | -| Log4jJndiInjectionTest.java:1032:34:1032:41 | source(...) : String | Log4jJndiInjectionTest.java:1032:25:1032:41 | (...)... | -| Log4jJndiInjectionTest.java:1033:79:1033:86 | source(...) : String | Log4jJndiInjectionTest.java:1033:70:1033:86 | (...)... | -| Log4jJndiInjectionTest.java:1034:64:1034:71 | source(...) : String | Log4jJndiInjectionTest.java:1034:55:1034:71 | (...)... | -| Log4jJndiInjectionTest.java:1035:49:1035:56 | source(...) : String | Log4jJndiInjectionTest.java:1035:40:1035:56 | (...)... | -| Log4jJndiInjectionTest.java:1036:34:1036:41 | source(...) : String | Log4jJndiInjectionTest.java:1036:25:1036:41 | (...)... | -| Log4jJndiInjectionTest.java:1037:94:1037:101 | source(...) : String | Log4jJndiInjectionTest.java:1037:85:1037:101 | (...)... | -| Log4jJndiInjectionTest.java:1038:79:1038:86 | source(...) : String | Log4jJndiInjectionTest.java:1038:70:1038:86 | (...)... | -| Log4jJndiInjectionTest.java:1039:64:1039:71 | source(...) : String | Log4jJndiInjectionTest.java:1039:55:1039:71 | (...)... | -| Log4jJndiInjectionTest.java:1040:49:1040:56 | source(...) : String | Log4jJndiInjectionTest.java:1040:40:1040:56 | (...)... | -| Log4jJndiInjectionTest.java:1041:34:1041:41 | source(...) : String | Log4jJndiInjectionTest.java:1041:25:1041:41 | (...)... | -| Log4jJndiInjectionTest.java:1042:109:1042:116 | source(...) : String | Log4jJndiInjectionTest.java:1042:100:1042:116 | (...)... | -| Log4jJndiInjectionTest.java:1043:94:1043:101 | source(...) : String | Log4jJndiInjectionTest.java:1043:85:1043:101 | (...)... | -| Log4jJndiInjectionTest.java:1044:79:1044:86 | source(...) : String | Log4jJndiInjectionTest.java:1044:70:1044:86 | (...)... | -| Log4jJndiInjectionTest.java:1045:64:1045:71 | source(...) : String | Log4jJndiInjectionTest.java:1045:55:1045:71 | (...)... | -| Log4jJndiInjectionTest.java:1046:49:1046:56 | source(...) : String | Log4jJndiInjectionTest.java:1046:40:1046:56 | (...)... | -| Log4jJndiInjectionTest.java:1047:34:1047:41 | source(...) : String | Log4jJndiInjectionTest.java:1047:25:1047:41 | (...)... | -| Log4jJndiInjectionTest.java:1048:124:1048:131 | source(...) : String | Log4jJndiInjectionTest.java:1048:115:1048:131 | (...)... | -| Log4jJndiInjectionTest.java:1049:109:1049:116 | source(...) : String | Log4jJndiInjectionTest.java:1049:100:1049:116 | (...)... | -| Log4jJndiInjectionTest.java:1050:94:1050:101 | source(...) : String | Log4jJndiInjectionTest.java:1050:85:1050:101 | (...)... | -| Log4jJndiInjectionTest.java:1051:79:1051:86 | source(...) : String | Log4jJndiInjectionTest.java:1051:70:1051:86 | (...)... | -| Log4jJndiInjectionTest.java:1052:64:1052:71 | source(...) : String | Log4jJndiInjectionTest.java:1052:55:1052:71 | (...)... | -| Log4jJndiInjectionTest.java:1053:49:1053:56 | source(...) : String | Log4jJndiInjectionTest.java:1053:40:1053:56 | (...)... | -| Log4jJndiInjectionTest.java:1054:34:1054:41 | source(...) : String | Log4jJndiInjectionTest.java:1054:25:1054:41 | (...)... | -| Log4jJndiInjectionTest.java:1055:139:1055:146 | source(...) : String | Log4jJndiInjectionTest.java:1055:130:1055:146 | (...)... | -| Log4jJndiInjectionTest.java:1056:124:1056:131 | source(...) : String | Log4jJndiInjectionTest.java:1056:115:1056:131 | (...)... | -| Log4jJndiInjectionTest.java:1057:109:1057:116 | source(...) : String | Log4jJndiInjectionTest.java:1057:100:1057:116 | (...)... | -| Log4jJndiInjectionTest.java:1058:94:1058:101 | source(...) : String | Log4jJndiInjectionTest.java:1058:85:1058:101 | (...)... | -| Log4jJndiInjectionTest.java:1059:79:1059:86 | source(...) : String | Log4jJndiInjectionTest.java:1059:70:1059:86 | (...)... | -| Log4jJndiInjectionTest.java:1060:64:1060:71 | source(...) : String | Log4jJndiInjectionTest.java:1060:55:1060:71 | (...)... | -| Log4jJndiInjectionTest.java:1061:49:1061:56 | source(...) : String | Log4jJndiInjectionTest.java:1061:40:1061:56 | (...)... | -| Log4jJndiInjectionTest.java:1062:34:1062:41 | source(...) : String | Log4jJndiInjectionTest.java:1062:25:1062:41 | (...)... | -| Log4jJndiInjectionTest.java:1063:154:1063:161 | source(...) : String | Log4jJndiInjectionTest.java:1063:145:1063:161 | (...)... | -| Log4jJndiInjectionTest.java:1064:139:1064:146 | source(...) : String | Log4jJndiInjectionTest.java:1064:130:1064:146 | (...)... | -| Log4jJndiInjectionTest.java:1065:124:1065:131 | source(...) : String | Log4jJndiInjectionTest.java:1065:115:1065:131 | (...)... | -| Log4jJndiInjectionTest.java:1066:109:1066:116 | source(...) : String | Log4jJndiInjectionTest.java:1066:100:1066:116 | (...)... | -| Log4jJndiInjectionTest.java:1067:94:1067:101 | source(...) : String | Log4jJndiInjectionTest.java:1067:85:1067:101 | (...)... | -| Log4jJndiInjectionTest.java:1068:79:1068:86 | source(...) : String | Log4jJndiInjectionTest.java:1068:70:1068:86 | (...)... | -| Log4jJndiInjectionTest.java:1069:64:1069:71 | source(...) : String | Log4jJndiInjectionTest.java:1069:55:1069:71 | (...)... | -| Log4jJndiInjectionTest.java:1070:49:1070:56 | source(...) : String | Log4jJndiInjectionTest.java:1070:40:1070:56 | (...)... | -| Log4jJndiInjectionTest.java:1071:34:1071:41 | source(...) : String | Log4jJndiInjectionTest.java:1071:25:1071:41 | (...)... | -| Log4jJndiInjectionTest.java:1072:169:1072:176 | source(...) : String | Log4jJndiInjectionTest.java:1072:160:1072:176 | (...)... | -| Log4jJndiInjectionTest.java:1073:154:1073:161 | source(...) : String | Log4jJndiInjectionTest.java:1073:145:1073:161 | (...)... | -| Log4jJndiInjectionTest.java:1074:139:1074:146 | source(...) : String | Log4jJndiInjectionTest.java:1074:130:1074:146 | (...)... | -| Log4jJndiInjectionTest.java:1075:124:1075:131 | source(...) : String | Log4jJndiInjectionTest.java:1075:115:1075:131 | (...)... | -| Log4jJndiInjectionTest.java:1076:109:1076:116 | source(...) : String | Log4jJndiInjectionTest.java:1076:100:1076:116 | (...)... | -| Log4jJndiInjectionTest.java:1077:94:1077:101 | source(...) : String | Log4jJndiInjectionTest.java:1077:85:1077:101 | (...)... | -| Log4jJndiInjectionTest.java:1078:79:1078:86 | source(...) : String | Log4jJndiInjectionTest.java:1078:70:1078:86 | (...)... | -| Log4jJndiInjectionTest.java:1079:64:1079:71 | source(...) : String | Log4jJndiInjectionTest.java:1079:55:1079:71 | (...)... | -| Log4jJndiInjectionTest.java:1080:49:1080:56 | source(...) : String | Log4jJndiInjectionTest.java:1080:40:1080:56 | (...)... | -| Log4jJndiInjectionTest.java:1081:34:1081:41 | source(...) : String | Log4jJndiInjectionTest.java:1081:25:1081:41 | (...)... | -| Log4jJndiInjectionTest.java:1083:34:1083:41 | source(...) : String | Log4jJndiInjectionTest.java:1083:25:1083:41 | (...)... | -| Log4jJndiInjectionTest.java:1084:54:1084:61 | source(...) : String | Log4jJndiInjectionTest.java:1084:40:1084:61 | (...)... | -| Log4jJndiInjectionTest.java:1085:39:1085:46 | source(...) : String | Log4jJndiInjectionTest.java:1085:25:1085:46 | (...)... | -| Log4jJndiInjectionTest.java:1088:47:1088:54 | source(...) : String | Log4jJndiInjectionTest.java:1088:38:1088:54 | (...)... | -| Log4jJndiInjectionTest.java:1089:53:1089:60 | source(...) : String | Log4jJndiInjectionTest.java:1089:44:1089:60 | (...)... | -| Log4jJndiInjectionTest.java:1091:13:1091:15 | map [post update] : HashMap [] : String | Log4jJndiInjectionTest.java:1092:34:1092:36 | map | -| Log4jJndiInjectionTest.java:1091:28:1091:44 | (...)... : String | Log4jJndiInjectionTest.java:1091:13:1091:15 | map [post update] : HashMap [] : String | -| Log4jJndiInjectionTest.java:1091:37:1091:44 | source(...) : String | Log4jJndiInjectionTest.java:1091:28:1091:44 | (...)... : String | -| Log4jJndiInjectionTest.java:1095:31:1095:88 | with(...) : StringMapMessage | Log4jJndiInjectionTest.java:1096:26:1096:29 | mmsg | -| Log4jJndiInjectionTest.java:1095:71:1095:87 | (...)... : String | Log4jJndiInjectionTest.java:1095:31:1095:88 | with(...) : StringMapMessage | -| Log4jJndiInjectionTest.java:1095:80:1095:87 | source(...) : String | Log4jJndiInjectionTest.java:1095:71:1095:87 | (...)... : String | -| Log4jJndiInjectionTest.java:1100:13:1100:16 | mmsg [post update] : StringMapMessage | Log4jJndiInjectionTest.java:1101:26:1101:29 | mmsg | -| Log4jJndiInjectionTest.java:1100:35:1100:51 | (...)... : String | Log4jJndiInjectionTest.java:1100:13:1100:16 | mmsg [post update] : StringMapMessage | -| Log4jJndiInjectionTest.java:1100:44:1100:51 | source(...) : String | Log4jJndiInjectionTest.java:1100:35:1100:51 | (...)... : String | -| Log4jJndiInjectionTest.java:1105:13:1105:16 | mmsg [post update] : StringMapMessage | Log4jJndiInjectionTest.java:1106:26:1106:29 | mmsg | -| Log4jJndiInjectionTest.java:1105:34:1105:50 | (...)... : String | Log4jJndiInjectionTest.java:1105:13:1105:16 | mmsg [post update] : StringMapMessage | -| Log4jJndiInjectionTest.java:1105:43:1105:50 | source(...) : String | Log4jJndiInjectionTest.java:1105:34:1105:50 | (...)... : String | -| Log4jJndiInjectionTest.java:1111:13:1111:15 | map [post update] : HashMap [] : String | Log4jJndiInjectionTest.java:1112:25:1112:27 | map : HashMap [] : String | -| Log4jJndiInjectionTest.java:1111:33:1111:49 | (...)... : String | Log4jJndiInjectionTest.java:1111:13:1111:15 | map [post update] : HashMap [] : String | -| Log4jJndiInjectionTest.java:1111:42:1111:49 | source(...) : String | Log4jJndiInjectionTest.java:1111:33:1111:49 | (...)... : String | -| Log4jJndiInjectionTest.java:1112:13:1112:16 | mmsg [post update] : StringMapMessage | Log4jJndiInjectionTest.java:1113:26:1113:29 | mmsg | -| Log4jJndiInjectionTest.java:1112:25:1112:27 | map : HashMap [] : String | Log4jJndiInjectionTest.java:1112:13:1112:16 | mmsg [post update] : StringMapMessage | -| Log4jJndiInjectionTest.java:1116:61:1116:68 | source(...) : String | Log4jJndiInjectionTest.java:1116:52:1116:68 | (...)... | -| Log4jJndiInjectionTest.java:1117:81:1117:88 | source(...) : String | Log4jJndiInjectionTest.java:1117:72:1117:88 | (...)... | -| Log4jJndiInjectionTest.java:1119:13:1119:15 | map [post update] : HashMap [] : String | Log4jJndiInjectionTest.java:1120:43:1120:45 | map | -| Log4jJndiInjectionTest.java:1119:13:1119:15 | map [post update] : HashMap [] : String | Log4jJndiInjectionTest.java:1121:63:1121:65 | map | -| Log4jJndiInjectionTest.java:1119:33:1119:49 | (...)... : String | Log4jJndiInjectionTest.java:1119:13:1119:15 | map [post update] : HashMap [] : String | -| Log4jJndiInjectionTest.java:1119:42:1119:49 | source(...) : String | Log4jJndiInjectionTest.java:1119:33:1119:49 | (...)... : String | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:31:41:31:48 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:32:41:32:48 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:33:56:33:63 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:34:56:34:63 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:35:51:35:58 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:36:59:36:66 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:37:59:37:66 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:38:41:38:48 | source(...) | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:39:50:39:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:40:50:40:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:41:70:41:77 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:42:65:42:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:43:50:43:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:44:80:44:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:45:65:45:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:46:50:46:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:47:95:47:102 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:48:80:48:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:49:65:49:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:50:50:50:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:51:110:51:117 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:52:95:52:102 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:53:80:53:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:54:65:54:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:55:50:55:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:56:125:56:132 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:57:110:57:117 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:58:95:58:102 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:59:80:59:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:60:65:60:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:61:50:61:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:62:140:62:147 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:63:125:63:132 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:64:110:64:117 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:65:95:65:102 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:66:80:66:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:67:65:67:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:68:50:68:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:69:155:69:162 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:70:140:70:147 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:71:125:71:132 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:72:110:72:117 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:73:95:73:102 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:74:80:74:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:75:65:75:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:76:50:76:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:77:170:77:177 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:78:155:78:162 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:79:140:79:147 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:80:125:80:132 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:81:110:81:117 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:82:95:82:102 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:83:80:83:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:84:65:84:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:85:50:85:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:86:185:86:192 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:87:170:87:177 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:88:155:88:162 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:89:140:89:147 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:90:125:90:132 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:91:110:91:117 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:92:95:92:102 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:93:80:93:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:94:65:94:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:95:50:95:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:96:50:96:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:97:70:97:77 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:98:50:98:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:99:55:99:62 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:100:55:100:62 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:101:44:101:51 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:102:44:102:51 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:103:36:103:43 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:104:36:104:43 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:105:26:105:33 | source(...) | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:106:26:106:33 | source(...) | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:107:35:107:42 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:108:35:108:42 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:109:55:109:62 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:110:50:110:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:111:35:111:42 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:112:65:112:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:113:50:113:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:114:35:114:42 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:115:80:115:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:116:65:116:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:117:50:117:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:118:35:118:42 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:119:95:119:102 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:120:80:120:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:121:65:121:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:122:50:122:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:123:35:123:42 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:124:110:124:117 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:125:95:125:102 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:126:80:126:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:127:65:127:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:128:50:128:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:129:35:129:42 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:130:125:130:132 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:131:110:131:117 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:132:95:132:102 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:133:80:133:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:134:65:134:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:135:50:135:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:136:35:136:42 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:137:140:137:147 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:138:125:138:132 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:139:110:139:117 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:140:95:140:102 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:141:80:141:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:142:65:142:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:143:50:143:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:144:35:144:42 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:145:155:145:162 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:146:140:146:147 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:147:125:147:132 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:148:110:148:117 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:149:95:149:102 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:150:80:150:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:151:65:151:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:152:50:152:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:153:35:153:42 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:154:170:154:177 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:155:155:155:162 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:156:140:156:147 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:157:125:157:132 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:158:110:158:117 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:159:95:159:102 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:160:80:160:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:161:65:161:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:162:50:162:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:163:35:163:42 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:164:35:164:42 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:165:55:165:62 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:166:35:166:42 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:167:40:167:47 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:168:40:168:47 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:169:41:169:48 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:170:41:170:48 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:171:56:171:63 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:172:56:172:63 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:173:51:173:58 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:174:59:174:66 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:175:59:175:66 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:176:41:176:48 | source(...) | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:177:50:177:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:178:50:178:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:179:70:179:77 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:180:65:180:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:181:50:181:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:182:80:182:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:183:65:183:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:184:50:184:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:185:95:185:102 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:186:80:186:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:187:65:187:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:188:50:188:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:189:110:189:117 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:190:95:190:102 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:191:80:191:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:192:65:192:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:193:50:193:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:194:125:194:132 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:195:110:195:117 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:196:95:196:102 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:197:80:197:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:198:65:198:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:199:50:199:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:200:140:200:147 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:201:125:201:132 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:202:110:202:117 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:203:95:203:102 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:204:80:204:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:205:65:205:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:206:50:206:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:207:155:207:162 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:208:140:208:147 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:209:125:209:132 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:210:110:210:117 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:211:95:211:102 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:212:80:212:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:213:65:213:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:214:50:214:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:215:170:215:177 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:216:155:216:162 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:217:140:217:147 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:218:125:218:132 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:219:110:219:117 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:220:95:220:102 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:221:80:221:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:222:65:222:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:223:50:223:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:224:185:224:192 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:225:170:225:177 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:226:155:226:162 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:227:140:227:147 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:228:125:228:132 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:229:110:229:117 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:230:95:230:102 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:231:80:231:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:232:65:232:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:233:50:233:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:234:50:234:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:235:70:235:77 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:236:50:236:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:237:55:237:62 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:238:55:238:62 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:239:44:239:51 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:240:44:240:51 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:241:36:241:43 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:242:36:242:43 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:243:26:243:33 | source(...) | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:244:26:244:33 | source(...) | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:245:35:245:42 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:246:35:246:42 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:247:55:247:62 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:248:50:248:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:249:35:249:42 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:250:65:250:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:251:50:251:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:252:35:252:42 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:253:80:253:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:254:65:254:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:255:50:255:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:256:35:256:42 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:257:95:257:102 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:258:80:258:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:259:65:259:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:260:50:260:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:261:35:261:42 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:262:110:262:117 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:263:95:263:102 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:264:80:264:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:265:65:265:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:266:50:266:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:267:35:267:42 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:268:125:268:132 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:269:110:269:117 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:270:95:270:102 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:271:80:271:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:272:65:272:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:273:50:273:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:274:35:274:42 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:275:140:275:147 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:276:125:276:132 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:277:110:277:117 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:278:95:278:102 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:279:80:279:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:280:65:280:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:281:50:281:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:282:35:282:42 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:283:155:283:162 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:284:140:284:147 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:285:125:285:132 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:286:110:286:117 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:287:95:287:102 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:288:80:288:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:289:65:289:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:290:50:290:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:291:35:291:42 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:292:170:292:177 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:293:155:293:162 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:294:140:294:147 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:295:125:295:132 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:296:110:296:117 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:297:95:297:102 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:298:80:298:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:299:65:299:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:300:50:300:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:301:35:301:42 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:302:35:302:42 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:303:55:303:62 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:304:35:304:42 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:305:40:305:47 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:306:40:306:47 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:307:41:307:48 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:308:41:308:48 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:309:56:309:63 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:310:56:310:63 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:311:51:311:58 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:312:59:312:66 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:313:59:313:66 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:314:41:314:48 | source(...) | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:315:50:315:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:316:50:316:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:317:70:317:77 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:318:65:318:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:319:50:319:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:320:80:320:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:321:65:321:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:322:50:322:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:323:95:323:102 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:324:80:324:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:325:65:325:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:326:50:326:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:327:110:327:117 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:328:95:328:102 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:329:80:329:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:330:65:330:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:331:50:331:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:332:125:332:132 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:333:110:333:117 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:334:95:334:102 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:335:80:335:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:336:65:336:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:337:50:337:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:338:140:338:147 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:339:125:339:132 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:340:110:340:117 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:341:95:341:102 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:342:80:342:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:343:65:343:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:344:50:344:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:345:155:345:162 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:346:140:346:147 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:347:125:347:132 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:348:110:348:117 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:349:95:349:102 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:350:80:350:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:351:65:351:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:352:50:352:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:353:170:353:177 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:354:155:354:162 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:355:140:355:147 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:356:125:356:132 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:357:110:357:117 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:358:95:358:102 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:359:80:359:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:360:65:360:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:361:50:361:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:362:185:362:192 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:363:170:363:177 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:364:155:364:162 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:365:140:365:147 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:366:125:366:132 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:367:110:367:117 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:368:95:368:102 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:369:80:369:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:370:65:370:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:371:50:371:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:372:50:372:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:373:70:373:77 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:374:50:374:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:375:55:375:62 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:376:55:376:62 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:377:44:377:51 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:378:44:378:51 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:379:36:379:43 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:380:36:380:43 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:381:26:381:33 | source(...) | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:382:26:382:33 | source(...) | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:383:35:383:42 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:384:35:384:42 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:385:55:385:62 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:386:50:386:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:387:35:387:42 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:388:65:388:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:389:50:389:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:390:35:390:42 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:391:80:391:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:392:65:392:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:393:50:393:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:394:35:394:42 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:395:95:395:102 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:396:80:396:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:397:65:397:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:398:50:398:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:399:35:399:42 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:400:110:400:117 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:401:95:401:102 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:402:80:402:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:403:65:403:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:404:50:404:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:405:35:405:42 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:406:125:406:132 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:407:110:407:117 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:408:95:408:102 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:409:80:409:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:410:65:410:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:411:50:411:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:412:35:412:42 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:413:140:413:147 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:414:125:414:132 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:415:110:415:117 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:416:95:416:102 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:417:80:417:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:418:65:418:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:419:50:419:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:420:35:420:42 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:421:155:421:162 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:422:140:422:147 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:423:125:423:132 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:424:110:424:117 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:425:95:425:102 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:426:80:426:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:427:65:427:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:428:50:428:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:429:35:429:42 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:430:170:430:177 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:431:155:431:162 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:432:140:432:147 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:433:125:433:132 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:434:110:434:117 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:435:95:435:102 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:436:80:436:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:437:65:437:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:438:50:438:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:439:35:439:42 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:440:35:440:42 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:441:55:441:62 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:442:35:442:42 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:443:40:443:47 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:444:40:444:47 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:445:40:445:47 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:446:40:446:47 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:447:55:447:62 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:448:55:448:62 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:449:50:449:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:450:58:450:65 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:451:58:451:65 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:452:40:452:47 | source(...) | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:453:49:453:56 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:454:49:454:56 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:455:69:455:76 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:456:64:456:71 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:457:49:457:56 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:458:79:458:86 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:459:64:459:71 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:460:49:460:56 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:461:94:461:101 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:462:79:462:86 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:463:64:463:71 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:464:49:464:56 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:465:109:465:116 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:466:94:466:101 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:467:79:467:86 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:468:64:468:71 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:469:49:469:56 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:470:124:470:131 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:471:109:471:116 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:472:94:472:101 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:473:79:473:86 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:474:64:474:71 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:475:49:475:56 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:476:139:476:146 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:477:124:477:131 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:478:109:478:116 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:479:94:479:101 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:480:79:480:86 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:481:64:481:71 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:482:49:482:56 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:483:154:483:161 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:484:139:484:146 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:485:124:485:131 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:486:109:486:116 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:487:94:487:101 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:488:79:488:86 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:489:64:489:71 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:490:49:490:56 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:491:169:491:176 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:492:154:492:161 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:493:139:493:146 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:494:124:494:131 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:495:109:495:116 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:496:94:496:101 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:497:79:497:86 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:498:64:498:71 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:499:49:499:56 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:500:184:500:191 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:501:169:501:176 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:502:154:502:161 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:503:139:503:146 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:504:124:504:131 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:505:109:505:116 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:506:94:506:101 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:507:79:507:86 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:508:64:508:71 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:509:49:509:56 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:510:49:510:56 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:511:69:511:76 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:512:49:512:56 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:513:54:513:61 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:514:54:514:61 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:515:43:515:50 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:516:43:516:50 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:517:35:517:42 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:518:35:518:42 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:519:25:519:32 | source(...) | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:520:25:520:32 | source(...) | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:521:34:521:41 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:522:34:522:41 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:523:54:523:61 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:524:49:524:56 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:525:34:525:41 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:526:64:526:71 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:527:49:527:56 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:528:34:528:41 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:529:79:529:86 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:530:64:530:71 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:531:49:531:56 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:532:34:532:41 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:533:94:533:101 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:534:79:534:86 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:535:64:535:71 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:536:49:536:56 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:537:34:537:41 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:538:109:538:116 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:539:94:539:101 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:540:79:540:86 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:541:64:541:71 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:542:49:542:56 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:543:34:543:41 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:544:124:544:131 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:545:109:545:116 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:546:94:546:101 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:547:79:547:86 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:548:64:548:71 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:549:49:549:56 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:550:34:550:41 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:551:139:551:146 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:552:124:552:131 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:553:109:553:116 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:554:94:554:101 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:555:79:555:86 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:556:64:556:71 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:557:49:557:56 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:558:34:558:41 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:559:154:559:161 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:560:139:560:146 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:561:124:561:131 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:562:109:562:116 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:563:94:563:101 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:564:79:564:86 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:565:64:565:71 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:566:49:566:56 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:567:34:567:41 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:568:169:568:176 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:569:154:569:161 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:570:139:570:146 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:571:124:571:131 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:572:109:572:116 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:573:94:573:101 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:574:79:574:86 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:575:64:575:71 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:576:49:576:56 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:577:34:577:41 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:578:34:578:41 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:579:54:579:61 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:580:34:580:41 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:581:39:581:46 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:582:39:582:46 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:583:53:583:60 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:584:53:584:60 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:585:68:585:75 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:586:68:586:75 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:587:63:587:70 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:588:71:588:78 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:589:71:589:78 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:590:53:590:60 | source(...) | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:591:62:591:69 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:592:62:592:69 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:593:82:593:89 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:594:77:594:84 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:595:62:595:69 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:596:92:596:99 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:597:77:597:84 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:598:62:598:69 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:599:107:599:114 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:600:92:600:99 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:601:77:601:84 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:602:62:602:69 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:603:122:603:129 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:604:107:604:114 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:605:92:605:99 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:606:77:606:84 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:607:62:607:69 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:608:137:608:144 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:609:122:609:129 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:610:107:610:114 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:611:92:611:99 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:612:77:612:84 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:613:62:613:69 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:614:152:614:159 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:615:137:615:144 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:616:122:616:129 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:617:107:617:114 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:618:92:618:99 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:619:77:619:84 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:620:62:620:69 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:621:167:621:174 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:622:152:622:159 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:623:137:623:144 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:624:122:624:129 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:625:107:625:114 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:626:92:626:99 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:627:77:627:84 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:628:62:628:69 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:629:182:629:189 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:630:167:630:174 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:631:152:631:159 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:632:137:632:144 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:633:122:633:129 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:634:107:634:114 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:635:92:635:99 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:636:77:636:84 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:637:62:637:69 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:638:197:638:204 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:639:182:639:189 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:640:167:640:174 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:641:152:641:159 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:642:137:642:144 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:643:122:643:129 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:644:107:644:114 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:645:92:645:99 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:646:77:646:84 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:647:62:647:69 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:648:62:648:69 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:649:82:649:89 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:650:62:650:69 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:651:67:651:74 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:652:67:652:74 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:653:56:653:63 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:654:56:654:63 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:655:48:655:55 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:656:48:656:55 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:657:38:657:45 | source(...) | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:658:38:658:45 | source(...) | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:659:47:659:54 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:660:47:660:54 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:661:67:661:74 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:662:62:662:69 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:663:47:663:54 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:664:77:664:84 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:665:62:665:69 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:666:47:666:54 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:667:92:667:99 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:668:77:668:84 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:669:62:669:69 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:670:47:670:54 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:671:107:671:114 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:672:92:672:99 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:673:77:673:84 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:674:62:674:69 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:675:47:675:54 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:676:122:676:129 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:677:107:677:114 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:678:92:678:99 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:679:77:679:84 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:680:62:680:69 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:681:47:681:54 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:682:137:682:144 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:683:122:683:129 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:684:107:684:114 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:685:92:685:99 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:686:77:686:84 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:687:62:687:69 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:688:47:688:54 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:689:152:689:159 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:690:137:690:144 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:691:122:691:129 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:692:107:692:114 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:693:92:693:99 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:694:77:694:84 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:695:62:695:69 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:696:47:696:54 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:697:167:697:174 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:698:152:698:159 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:699:137:699:144 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:700:122:700:129 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:701:107:701:114 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:702:92:702:99 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:703:77:703:84 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:704:62:704:69 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:705:47:705:54 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:706:182:706:189 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:707:167:707:174 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:708:152:708:159 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:709:137:709:144 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:710:122:710:129 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:711:107:711:114 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:712:92:712:99 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:713:77:713:84 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:714:62:714:69 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:715:47:715:54 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:716:47:716:54 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:717:67:717:74 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:718:47:718:54 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:719:52:719:59 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:720:52:720:59 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:721:41:721:48 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:722:41:722:48 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:723:56:723:63 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:724:56:724:63 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:725:51:725:58 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:726:59:726:66 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:727:59:727:66 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:728:41:728:48 | source(...) | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:729:50:729:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:730:50:730:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:731:70:731:77 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:732:65:732:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:733:50:733:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:734:80:734:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:735:65:735:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:736:50:736:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:737:95:737:102 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:738:80:738:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:739:65:739:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:740:50:740:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:741:110:741:117 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:742:95:742:102 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:743:80:743:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:744:65:744:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:745:50:745:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:746:125:746:132 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:747:110:747:117 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:748:95:748:102 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:749:80:749:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:750:65:750:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:751:50:751:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:752:140:752:147 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:753:125:753:132 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:754:110:754:117 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:755:95:755:102 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:756:80:756:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:757:65:757:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:758:50:758:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:759:155:759:162 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:760:140:760:147 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:761:125:761:132 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:762:110:762:117 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:763:95:763:102 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:764:80:764:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:765:65:765:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:766:50:766:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:767:170:767:177 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:768:155:768:162 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:769:140:769:147 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:770:125:770:132 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:771:110:771:117 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:772:95:772:102 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:773:80:773:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:774:65:774:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:775:50:775:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:776:185:776:192 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:777:170:777:177 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:778:155:778:162 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:779:140:779:147 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:780:125:780:132 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:781:110:781:117 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:782:95:782:102 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:783:80:783:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:784:65:784:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:785:50:785:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:786:50:786:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:787:70:787:77 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:788:50:788:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:789:55:789:62 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:790:55:790:62 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:791:44:791:51 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:792:44:792:51 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:793:36:793:43 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:794:36:794:43 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:795:26:795:33 | source(...) | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:796:26:796:33 | source(...) | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:797:35:797:42 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:798:35:798:42 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:799:55:799:62 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:800:50:800:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:801:35:801:42 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:802:65:802:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:803:50:803:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:804:35:804:42 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:805:80:805:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:806:65:806:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:807:50:807:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:808:35:808:42 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:809:95:809:102 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:810:80:810:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:811:65:811:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:812:50:812:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:813:35:813:42 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:814:110:814:117 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:815:95:815:102 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:816:80:816:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:817:65:817:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:818:50:818:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:819:35:819:42 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:820:125:820:132 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:821:110:821:117 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:822:95:822:102 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:823:80:823:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:824:65:824:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:825:50:825:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:826:35:826:42 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:827:140:827:147 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:828:125:828:132 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:829:110:829:117 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:830:95:830:102 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:831:80:831:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:832:65:832:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:833:50:833:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:834:35:834:42 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:835:155:835:162 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:836:140:836:147 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:837:125:837:132 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:838:110:838:117 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:839:95:839:102 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:840:80:840:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:841:65:841:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:842:50:842:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:843:35:843:42 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:844:170:844:177 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:845:155:845:162 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:846:140:846:147 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:847:125:847:132 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:848:110:848:117 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:849:95:849:102 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:850:80:850:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:851:65:851:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:852:50:852:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:853:35:853:42 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:854:35:854:42 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:855:55:855:62 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:856:35:856:42 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:857:40:857:47 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:858:40:858:47 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:859:40:859:47 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:860:40:860:47 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:861:55:861:62 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:862:55:862:62 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:863:50:863:57 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:864:58:864:65 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:865:58:865:65 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:866:40:866:47 | source(...) | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:867:49:867:56 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:868:49:868:56 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:869:69:869:76 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:870:64:870:71 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:871:49:871:56 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:872:79:872:86 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:873:64:873:71 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:874:49:874:56 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:875:94:875:101 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:876:79:876:86 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:877:64:877:71 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:878:49:878:56 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:879:109:879:116 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:880:94:880:101 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:881:79:881:86 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:882:64:882:71 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:883:49:883:56 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:884:124:884:131 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:885:109:885:116 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:886:94:886:101 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:887:79:887:86 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:888:64:888:71 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:889:49:889:56 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:890:139:890:146 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:891:124:891:131 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:892:109:892:116 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:893:94:893:101 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:894:79:894:86 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:895:64:895:71 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:896:49:896:56 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:897:154:897:161 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:898:139:898:146 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:899:124:899:131 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:900:109:900:116 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:901:94:901:101 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:902:79:902:86 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:903:64:903:71 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:904:49:904:56 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:905:169:905:176 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:906:154:906:161 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:907:139:907:146 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:908:124:908:131 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:909:109:909:116 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:910:94:910:101 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:911:79:911:86 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:912:64:912:71 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:913:49:913:56 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:914:184:914:191 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:915:169:915:176 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:916:154:916:161 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:917:139:917:146 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:918:124:918:131 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:919:109:919:116 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:920:94:920:101 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:921:79:921:86 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:922:64:922:71 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:923:49:923:56 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:924:49:924:56 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:925:69:925:76 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:926:49:926:56 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:927:54:927:61 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:928:54:928:61 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:929:43:929:50 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:930:43:930:50 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:931:35:931:42 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:932:35:932:42 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:933:25:933:32 | source(...) | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:934:25:934:32 | source(...) | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:935:34:935:41 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:936:34:936:41 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:937:54:937:61 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:938:49:938:56 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:939:34:939:41 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:940:64:940:71 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:941:49:941:56 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:942:34:942:41 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:943:79:943:86 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:944:64:944:71 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:945:49:945:56 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:946:34:946:41 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:947:94:947:101 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:948:79:948:86 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:949:64:949:71 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:950:49:950:56 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:951:34:951:41 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:952:109:952:116 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:953:94:953:101 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:954:79:954:86 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:955:64:955:71 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:956:49:956:56 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:957:34:957:41 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:958:124:958:131 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:959:109:959:116 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:960:94:960:101 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:961:79:961:86 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:962:64:962:71 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:963:49:963:56 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:964:34:964:41 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:965:139:965:146 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:966:124:966:131 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:967:109:967:116 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:968:94:968:101 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:969:79:969:86 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:970:64:970:71 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:971:49:971:56 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:972:34:972:41 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:973:154:973:161 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:974:139:974:146 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:975:124:975:131 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:976:109:976:116 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:977:94:977:101 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:978:79:978:86 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:979:64:979:71 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:980:49:980:56 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:981:34:981:41 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:982:169:982:176 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:983:154:983:161 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:984:139:984:146 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:985:124:985:131 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:986:109:986:116 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:987:94:987:101 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:988:79:988:86 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:989:64:989:71 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:990:49:990:56 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:991:34:991:41 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:992:34:992:41 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:993:54:993:61 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:994:34:994:41 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:995:39:995:46 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:996:39:996:46 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:998:65:998:72 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:999:48:999:55 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1000:59:1000:66 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1001:42:1001:49 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1002:53:1002:60 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1020:40:1020:47 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1021:35:1021:42 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1022:25:1022:32 | source(...) | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1023:34:1023:41 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1024:34:1024:41 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1025:54:1025:61 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1026:40:1026:47 | source(...) | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1028:49:1028:56 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1029:34:1029:41 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1030:64:1030:71 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1031:49:1031:56 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1032:34:1032:41 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1033:79:1033:86 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1034:64:1034:71 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1035:49:1035:56 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1036:34:1036:41 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1037:94:1037:101 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1038:79:1038:86 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1039:64:1039:71 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1040:49:1040:56 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1041:34:1041:41 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1042:109:1042:116 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1043:94:1043:101 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1044:79:1044:86 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1045:64:1045:71 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1046:49:1046:56 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1047:34:1047:41 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1048:124:1048:131 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1049:109:1049:116 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1050:94:1050:101 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1051:79:1051:86 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1052:64:1052:71 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1053:49:1053:56 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1054:34:1054:41 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1055:139:1055:146 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1056:124:1056:131 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1057:109:1057:116 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1058:94:1058:101 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1059:79:1059:86 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1060:64:1060:71 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1061:49:1061:56 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1062:34:1062:41 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1063:154:1063:161 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1064:139:1064:146 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1065:124:1065:131 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1066:109:1066:116 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1067:94:1067:101 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1068:79:1068:86 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1069:64:1069:71 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1070:49:1070:56 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1071:34:1071:41 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1072:169:1072:176 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1073:154:1073:161 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1074:139:1074:146 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1075:124:1075:131 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1076:109:1076:116 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1077:94:1077:101 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1078:79:1078:86 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1079:64:1079:71 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1080:49:1080:56 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1081:34:1081:41 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1083:34:1083:41 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1084:54:1084:61 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1085:39:1085:46 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1088:47:1088:54 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1089:53:1089:60 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1091:37:1091:44 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1095:80:1095:87 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1100:44:1100:51 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1105:43:1105:50 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1111:42:1111:49 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1116:61:1116:68 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1117:81:1117:88 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | Log4jJndiInjectionTest.java:1119:42:1119:49 | source(...) : String | provenance | | +| Log4jJndiInjectionTest.java:31:41:31:48 | source(...) : String | Log4jJndiInjectionTest.java:31:26:31:48 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:32:41:32:48 | source(...) : String | Log4jJndiInjectionTest.java:32:26:32:48 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:33:56:33:63 | source(...) : String | Log4jJndiInjectionTest.java:33:41:33:63 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:34:56:34:63 | source(...) : String | Log4jJndiInjectionTest.java:34:41:34:63 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:35:51:35:58 | source(...) : String | Log4jJndiInjectionTest.java:35:41:35:58 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:36:59:36:66 | source(...) : String | Log4jJndiInjectionTest.java:36:41:36:66 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:37:59:37:66 | source(...) : String | Log4jJndiInjectionTest.java:37:41:37:66 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:39:50:39:57 | source(...) : String | Log4jJndiInjectionTest.java:39:41:39:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:40:50:40:57 | source(...) : String | Log4jJndiInjectionTest.java:40:41:40:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:41:56:41:78 | {...} : Object[] [[]] : String | Log4jJndiInjectionTest.java:41:56:41:78 | new Object[] | provenance | | +| Log4jJndiInjectionTest.java:41:70:41:77 | source(...) : String | Log4jJndiInjectionTest.java:41:56:41:78 | {...} : Object[] [[]] : String | provenance | | +| Log4jJndiInjectionTest.java:42:65:42:72 | source(...) : String | Log4jJndiInjectionTest.java:42:56:42:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:43:50:43:57 | source(...) : String | Log4jJndiInjectionTest.java:43:41:43:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:44:80:44:87 | source(...) : String | Log4jJndiInjectionTest.java:44:71:44:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:45:65:45:72 | source(...) : String | Log4jJndiInjectionTest.java:45:56:45:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:46:50:46:57 | source(...) : String | Log4jJndiInjectionTest.java:46:41:46:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:47:95:47:102 | source(...) : String | Log4jJndiInjectionTest.java:47:86:47:102 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:48:80:48:87 | source(...) : String | Log4jJndiInjectionTest.java:48:71:48:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:49:65:49:72 | source(...) : String | Log4jJndiInjectionTest.java:49:56:49:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:50:50:50:57 | source(...) : String | Log4jJndiInjectionTest.java:50:41:50:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:51:110:51:117 | source(...) : String | Log4jJndiInjectionTest.java:51:101:51:117 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:52:95:52:102 | source(...) : String | Log4jJndiInjectionTest.java:52:86:52:102 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:53:80:53:87 | source(...) : String | Log4jJndiInjectionTest.java:53:71:53:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:54:65:54:72 | source(...) : String | Log4jJndiInjectionTest.java:54:56:54:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:55:50:55:57 | source(...) : String | Log4jJndiInjectionTest.java:55:41:55:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:56:125:56:132 | source(...) : String | Log4jJndiInjectionTest.java:56:116:56:132 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:57:110:57:117 | source(...) : String | Log4jJndiInjectionTest.java:57:101:57:117 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:58:95:58:102 | source(...) : String | Log4jJndiInjectionTest.java:58:86:58:102 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:59:80:59:87 | source(...) : String | Log4jJndiInjectionTest.java:59:71:59:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:60:65:60:72 | source(...) : String | Log4jJndiInjectionTest.java:60:56:60:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:61:50:61:57 | source(...) : String | Log4jJndiInjectionTest.java:61:41:61:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:62:140:62:147 | source(...) : String | Log4jJndiInjectionTest.java:62:131:62:147 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:63:125:63:132 | source(...) : String | Log4jJndiInjectionTest.java:63:116:63:132 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:64:110:64:117 | source(...) : String | Log4jJndiInjectionTest.java:64:101:64:117 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:65:95:65:102 | source(...) : String | Log4jJndiInjectionTest.java:65:86:65:102 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:66:80:66:87 | source(...) : String | Log4jJndiInjectionTest.java:66:71:66:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:67:65:67:72 | source(...) : String | Log4jJndiInjectionTest.java:67:56:67:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:68:50:68:57 | source(...) : String | Log4jJndiInjectionTest.java:68:41:68:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:69:155:69:162 | source(...) : String | Log4jJndiInjectionTest.java:69:146:69:162 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:70:140:70:147 | source(...) : String | Log4jJndiInjectionTest.java:70:131:70:147 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:71:125:71:132 | source(...) : String | Log4jJndiInjectionTest.java:71:116:71:132 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:72:110:72:117 | source(...) : String | Log4jJndiInjectionTest.java:72:101:72:117 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:73:95:73:102 | source(...) : String | Log4jJndiInjectionTest.java:73:86:73:102 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:74:80:74:87 | source(...) : String | Log4jJndiInjectionTest.java:74:71:74:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:75:65:75:72 | source(...) : String | Log4jJndiInjectionTest.java:75:56:75:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:76:50:76:57 | source(...) : String | Log4jJndiInjectionTest.java:76:41:76:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:77:170:77:177 | source(...) : String | Log4jJndiInjectionTest.java:77:161:77:177 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:78:155:78:162 | source(...) : String | Log4jJndiInjectionTest.java:78:146:78:162 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:79:140:79:147 | source(...) : String | Log4jJndiInjectionTest.java:79:131:79:147 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:80:125:80:132 | source(...) : String | Log4jJndiInjectionTest.java:80:116:80:132 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:81:110:81:117 | source(...) : String | Log4jJndiInjectionTest.java:81:101:81:117 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:82:95:82:102 | source(...) : String | Log4jJndiInjectionTest.java:82:86:82:102 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:83:80:83:87 | source(...) : String | Log4jJndiInjectionTest.java:83:71:83:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:84:65:84:72 | source(...) : String | Log4jJndiInjectionTest.java:84:56:84:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:85:50:85:57 | source(...) : String | Log4jJndiInjectionTest.java:85:41:85:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:86:185:86:192 | source(...) : String | Log4jJndiInjectionTest.java:86:176:86:192 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:87:170:87:177 | source(...) : String | Log4jJndiInjectionTest.java:87:161:87:177 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:88:155:88:162 | source(...) : String | Log4jJndiInjectionTest.java:88:146:88:162 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:89:140:89:147 | source(...) : String | Log4jJndiInjectionTest.java:89:131:89:147 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:90:125:90:132 | source(...) : String | Log4jJndiInjectionTest.java:90:116:90:132 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:91:110:91:117 | source(...) : String | Log4jJndiInjectionTest.java:91:101:91:117 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:92:95:92:102 | source(...) : String | Log4jJndiInjectionTest.java:92:86:92:102 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:93:80:93:87 | source(...) : String | Log4jJndiInjectionTest.java:93:71:93:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:94:65:94:72 | source(...) : String | Log4jJndiInjectionTest.java:94:56:94:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:95:50:95:57 | source(...) : String | Log4jJndiInjectionTest.java:95:41:95:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:96:50:96:57 | source(...) : String | Log4jJndiInjectionTest.java:96:41:96:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:97:70:97:77 | source(...) : String | Log4jJndiInjectionTest.java:97:56:97:77 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:98:50:98:57 | source(...) : String | Log4jJndiInjectionTest.java:98:41:98:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:99:55:99:62 | source(...) : String | Log4jJndiInjectionTest.java:99:41:99:62 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:100:55:100:62 | source(...) : String | Log4jJndiInjectionTest.java:100:41:100:62 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:101:44:101:51 | source(...) : String | Log4jJndiInjectionTest.java:101:26:101:51 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:102:44:102:51 | source(...) : String | Log4jJndiInjectionTest.java:102:26:102:51 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:103:36:103:43 | source(...) : String | Log4jJndiInjectionTest.java:103:26:103:43 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:104:36:104:43 | source(...) : String | Log4jJndiInjectionTest.java:104:26:104:43 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:107:35:107:42 | source(...) : String | Log4jJndiInjectionTest.java:107:26:107:42 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:108:35:108:42 | source(...) : String | Log4jJndiInjectionTest.java:108:26:108:42 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:109:41:109:63 | {...} : Object[] [[]] : String | Log4jJndiInjectionTest.java:109:41:109:63 | new Object[] | provenance | | +| Log4jJndiInjectionTest.java:109:55:109:62 | source(...) : String | Log4jJndiInjectionTest.java:109:41:109:63 | {...} : Object[] [[]] : String | provenance | | +| Log4jJndiInjectionTest.java:110:50:110:57 | source(...) : String | Log4jJndiInjectionTest.java:110:41:110:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:111:35:111:42 | source(...) : String | Log4jJndiInjectionTest.java:111:26:111:42 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:112:65:112:72 | source(...) : String | Log4jJndiInjectionTest.java:112:56:112:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:113:50:113:57 | source(...) : String | Log4jJndiInjectionTest.java:113:41:113:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:114:35:114:42 | source(...) : String | Log4jJndiInjectionTest.java:114:26:114:42 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:115:80:115:87 | source(...) : String | Log4jJndiInjectionTest.java:115:71:115:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:116:65:116:72 | source(...) : String | Log4jJndiInjectionTest.java:116:56:116:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:117:50:117:57 | source(...) : String | Log4jJndiInjectionTest.java:117:41:117:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:118:35:118:42 | source(...) : String | Log4jJndiInjectionTest.java:118:26:118:42 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:119:95:119:102 | source(...) : String | Log4jJndiInjectionTest.java:119:86:119:102 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:120:80:120:87 | source(...) : String | Log4jJndiInjectionTest.java:120:71:120:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:121:65:121:72 | source(...) : String | Log4jJndiInjectionTest.java:121:56:121:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:122:50:122:57 | source(...) : String | Log4jJndiInjectionTest.java:122:41:122:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:123:35:123:42 | source(...) : String | Log4jJndiInjectionTest.java:123:26:123:42 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:124:110:124:117 | source(...) : String | Log4jJndiInjectionTest.java:124:101:124:117 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:125:95:125:102 | source(...) : String | Log4jJndiInjectionTest.java:125:86:125:102 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:126:80:126:87 | source(...) : String | Log4jJndiInjectionTest.java:126:71:126:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:127:65:127:72 | source(...) : String | Log4jJndiInjectionTest.java:127:56:127:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:128:50:128:57 | source(...) : String | Log4jJndiInjectionTest.java:128:41:128:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:129:35:129:42 | source(...) : String | Log4jJndiInjectionTest.java:129:26:129:42 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:130:125:130:132 | source(...) : String | Log4jJndiInjectionTest.java:130:116:130:132 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:131:110:131:117 | source(...) : String | Log4jJndiInjectionTest.java:131:101:131:117 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:132:95:132:102 | source(...) : String | Log4jJndiInjectionTest.java:132:86:132:102 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:133:80:133:87 | source(...) : String | Log4jJndiInjectionTest.java:133:71:133:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:134:65:134:72 | source(...) : String | Log4jJndiInjectionTest.java:134:56:134:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:135:50:135:57 | source(...) : String | Log4jJndiInjectionTest.java:135:41:135:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:136:35:136:42 | source(...) : String | Log4jJndiInjectionTest.java:136:26:136:42 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:137:140:137:147 | source(...) : String | Log4jJndiInjectionTest.java:137:131:137:147 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:138:125:138:132 | source(...) : String | Log4jJndiInjectionTest.java:138:116:138:132 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:139:110:139:117 | source(...) : String | Log4jJndiInjectionTest.java:139:101:139:117 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:140:95:140:102 | source(...) : String | Log4jJndiInjectionTest.java:140:86:140:102 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:141:80:141:87 | source(...) : String | Log4jJndiInjectionTest.java:141:71:141:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:142:65:142:72 | source(...) : String | Log4jJndiInjectionTest.java:142:56:142:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:143:50:143:57 | source(...) : String | Log4jJndiInjectionTest.java:143:41:143:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:144:35:144:42 | source(...) : String | Log4jJndiInjectionTest.java:144:26:144:42 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:145:155:145:162 | source(...) : String | Log4jJndiInjectionTest.java:145:146:145:162 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:146:140:146:147 | source(...) : String | Log4jJndiInjectionTest.java:146:131:146:147 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:147:125:147:132 | source(...) : String | Log4jJndiInjectionTest.java:147:116:147:132 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:148:110:148:117 | source(...) : String | Log4jJndiInjectionTest.java:148:101:148:117 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:149:95:149:102 | source(...) : String | Log4jJndiInjectionTest.java:149:86:149:102 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:150:80:150:87 | source(...) : String | Log4jJndiInjectionTest.java:150:71:150:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:151:65:151:72 | source(...) : String | Log4jJndiInjectionTest.java:151:56:151:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:152:50:152:57 | source(...) : String | Log4jJndiInjectionTest.java:152:41:152:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:153:35:153:42 | source(...) : String | Log4jJndiInjectionTest.java:153:26:153:42 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:154:170:154:177 | source(...) : String | Log4jJndiInjectionTest.java:154:161:154:177 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:155:155:155:162 | source(...) : String | Log4jJndiInjectionTest.java:155:146:155:162 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:156:140:156:147 | source(...) : String | Log4jJndiInjectionTest.java:156:131:156:147 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:157:125:157:132 | source(...) : String | Log4jJndiInjectionTest.java:157:116:157:132 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:158:110:158:117 | source(...) : String | Log4jJndiInjectionTest.java:158:101:158:117 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:159:95:159:102 | source(...) : String | Log4jJndiInjectionTest.java:159:86:159:102 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:160:80:160:87 | source(...) : String | Log4jJndiInjectionTest.java:160:71:160:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:161:65:161:72 | source(...) : String | Log4jJndiInjectionTest.java:161:56:161:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:162:50:162:57 | source(...) : String | Log4jJndiInjectionTest.java:162:41:162:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:163:35:163:42 | source(...) : String | Log4jJndiInjectionTest.java:163:26:163:42 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:164:35:164:42 | source(...) : String | Log4jJndiInjectionTest.java:164:26:164:42 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:165:55:165:62 | source(...) : String | Log4jJndiInjectionTest.java:165:41:165:62 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:166:35:166:42 | source(...) : String | Log4jJndiInjectionTest.java:166:26:166:42 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:167:40:167:47 | source(...) : String | Log4jJndiInjectionTest.java:167:26:167:47 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:168:40:168:47 | source(...) : String | Log4jJndiInjectionTest.java:168:26:168:47 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:169:41:169:48 | source(...) : String | Log4jJndiInjectionTest.java:169:26:169:48 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:170:41:170:48 | source(...) : String | Log4jJndiInjectionTest.java:170:26:170:48 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:171:56:171:63 | source(...) : String | Log4jJndiInjectionTest.java:171:41:171:63 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:172:56:172:63 | source(...) : String | Log4jJndiInjectionTest.java:172:41:172:63 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:173:51:173:58 | source(...) : String | Log4jJndiInjectionTest.java:173:41:173:58 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:174:59:174:66 | source(...) : String | Log4jJndiInjectionTest.java:174:41:174:66 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:175:59:175:66 | source(...) : String | Log4jJndiInjectionTest.java:175:41:175:66 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:177:50:177:57 | source(...) : String | Log4jJndiInjectionTest.java:177:41:177:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:178:50:178:57 | source(...) : String | Log4jJndiInjectionTest.java:178:41:178:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:179:56:179:78 | {...} : Object[] [[]] : String | Log4jJndiInjectionTest.java:179:56:179:78 | new Object[] | provenance | | +| Log4jJndiInjectionTest.java:179:70:179:77 | source(...) : String | Log4jJndiInjectionTest.java:179:56:179:78 | {...} : Object[] [[]] : String | provenance | | +| Log4jJndiInjectionTest.java:180:65:180:72 | source(...) : String | Log4jJndiInjectionTest.java:180:56:180:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:181:50:181:57 | source(...) : String | Log4jJndiInjectionTest.java:181:41:181:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:182:80:182:87 | source(...) : String | Log4jJndiInjectionTest.java:182:71:182:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:183:65:183:72 | source(...) : String | Log4jJndiInjectionTest.java:183:56:183:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:184:50:184:57 | source(...) : String | Log4jJndiInjectionTest.java:184:41:184:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:185:95:185:102 | source(...) : String | Log4jJndiInjectionTest.java:185:86:185:102 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:186:80:186:87 | source(...) : String | Log4jJndiInjectionTest.java:186:71:186:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:187:65:187:72 | source(...) : String | Log4jJndiInjectionTest.java:187:56:187:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:188:50:188:57 | source(...) : String | Log4jJndiInjectionTest.java:188:41:188:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:189:110:189:117 | source(...) : String | Log4jJndiInjectionTest.java:189:101:189:117 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:190:95:190:102 | source(...) : String | Log4jJndiInjectionTest.java:190:86:190:102 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:191:80:191:87 | source(...) : String | Log4jJndiInjectionTest.java:191:71:191:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:192:65:192:72 | source(...) : String | Log4jJndiInjectionTest.java:192:56:192:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:193:50:193:57 | source(...) : String | Log4jJndiInjectionTest.java:193:41:193:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:194:125:194:132 | source(...) : String | Log4jJndiInjectionTest.java:194:116:194:132 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:195:110:195:117 | source(...) : String | Log4jJndiInjectionTest.java:195:101:195:117 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:196:95:196:102 | source(...) : String | Log4jJndiInjectionTest.java:196:86:196:102 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:197:80:197:87 | source(...) : String | Log4jJndiInjectionTest.java:197:71:197:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:198:65:198:72 | source(...) : String | Log4jJndiInjectionTest.java:198:56:198:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:199:50:199:57 | source(...) : String | Log4jJndiInjectionTest.java:199:41:199:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:200:140:200:147 | source(...) : String | Log4jJndiInjectionTest.java:200:131:200:147 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:201:125:201:132 | source(...) : String | Log4jJndiInjectionTest.java:201:116:201:132 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:202:110:202:117 | source(...) : String | Log4jJndiInjectionTest.java:202:101:202:117 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:203:95:203:102 | source(...) : String | Log4jJndiInjectionTest.java:203:86:203:102 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:204:80:204:87 | source(...) : String | Log4jJndiInjectionTest.java:204:71:204:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:205:65:205:72 | source(...) : String | Log4jJndiInjectionTest.java:205:56:205:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:206:50:206:57 | source(...) : String | Log4jJndiInjectionTest.java:206:41:206:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:207:155:207:162 | source(...) : String | Log4jJndiInjectionTest.java:207:146:207:162 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:208:140:208:147 | source(...) : String | Log4jJndiInjectionTest.java:208:131:208:147 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:209:125:209:132 | source(...) : String | Log4jJndiInjectionTest.java:209:116:209:132 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:210:110:210:117 | source(...) : String | Log4jJndiInjectionTest.java:210:101:210:117 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:211:95:211:102 | source(...) : String | Log4jJndiInjectionTest.java:211:86:211:102 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:212:80:212:87 | source(...) : String | Log4jJndiInjectionTest.java:212:71:212:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:213:65:213:72 | source(...) : String | Log4jJndiInjectionTest.java:213:56:213:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:214:50:214:57 | source(...) : String | Log4jJndiInjectionTest.java:214:41:214:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:215:170:215:177 | source(...) : String | Log4jJndiInjectionTest.java:215:161:215:177 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:216:155:216:162 | source(...) : String | Log4jJndiInjectionTest.java:216:146:216:162 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:217:140:217:147 | source(...) : String | Log4jJndiInjectionTest.java:217:131:217:147 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:218:125:218:132 | source(...) : String | Log4jJndiInjectionTest.java:218:116:218:132 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:219:110:219:117 | source(...) : String | Log4jJndiInjectionTest.java:219:101:219:117 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:220:95:220:102 | source(...) : String | Log4jJndiInjectionTest.java:220:86:220:102 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:221:80:221:87 | source(...) : String | Log4jJndiInjectionTest.java:221:71:221:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:222:65:222:72 | source(...) : String | Log4jJndiInjectionTest.java:222:56:222:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:223:50:223:57 | source(...) : String | Log4jJndiInjectionTest.java:223:41:223:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:224:185:224:192 | source(...) : String | Log4jJndiInjectionTest.java:224:176:224:192 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:225:170:225:177 | source(...) : String | Log4jJndiInjectionTest.java:225:161:225:177 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:226:155:226:162 | source(...) : String | Log4jJndiInjectionTest.java:226:146:226:162 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:227:140:227:147 | source(...) : String | Log4jJndiInjectionTest.java:227:131:227:147 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:228:125:228:132 | source(...) : String | Log4jJndiInjectionTest.java:228:116:228:132 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:229:110:229:117 | source(...) : String | Log4jJndiInjectionTest.java:229:101:229:117 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:230:95:230:102 | source(...) : String | Log4jJndiInjectionTest.java:230:86:230:102 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:231:80:231:87 | source(...) : String | Log4jJndiInjectionTest.java:231:71:231:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:232:65:232:72 | source(...) : String | Log4jJndiInjectionTest.java:232:56:232:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:233:50:233:57 | source(...) : String | Log4jJndiInjectionTest.java:233:41:233:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:234:50:234:57 | source(...) : String | Log4jJndiInjectionTest.java:234:41:234:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:235:70:235:77 | source(...) : String | Log4jJndiInjectionTest.java:235:56:235:77 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:236:50:236:57 | source(...) : String | Log4jJndiInjectionTest.java:236:41:236:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:237:55:237:62 | source(...) : String | Log4jJndiInjectionTest.java:237:41:237:62 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:238:55:238:62 | source(...) : String | Log4jJndiInjectionTest.java:238:41:238:62 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:239:44:239:51 | source(...) : String | Log4jJndiInjectionTest.java:239:26:239:51 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:240:44:240:51 | source(...) : String | Log4jJndiInjectionTest.java:240:26:240:51 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:241:36:241:43 | source(...) : String | Log4jJndiInjectionTest.java:241:26:241:43 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:242:36:242:43 | source(...) : String | Log4jJndiInjectionTest.java:242:26:242:43 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:245:35:245:42 | source(...) : String | Log4jJndiInjectionTest.java:245:26:245:42 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:246:35:246:42 | source(...) : String | Log4jJndiInjectionTest.java:246:26:246:42 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:247:41:247:63 | {...} : Object[] [[]] : String | Log4jJndiInjectionTest.java:247:41:247:63 | new Object[] | provenance | | +| Log4jJndiInjectionTest.java:247:55:247:62 | source(...) : String | Log4jJndiInjectionTest.java:247:41:247:63 | {...} : Object[] [[]] : String | provenance | | +| Log4jJndiInjectionTest.java:248:50:248:57 | source(...) : String | Log4jJndiInjectionTest.java:248:41:248:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:249:35:249:42 | source(...) : String | Log4jJndiInjectionTest.java:249:26:249:42 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:250:65:250:72 | source(...) : String | Log4jJndiInjectionTest.java:250:56:250:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:251:50:251:57 | source(...) : String | Log4jJndiInjectionTest.java:251:41:251:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:252:35:252:42 | source(...) : String | Log4jJndiInjectionTest.java:252:26:252:42 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:253:80:253:87 | source(...) : String | Log4jJndiInjectionTest.java:253:71:253:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:254:65:254:72 | source(...) : String | Log4jJndiInjectionTest.java:254:56:254:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:255:50:255:57 | source(...) : String | Log4jJndiInjectionTest.java:255:41:255:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:256:35:256:42 | source(...) : String | Log4jJndiInjectionTest.java:256:26:256:42 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:257:95:257:102 | source(...) : String | Log4jJndiInjectionTest.java:257:86:257:102 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:258:80:258:87 | source(...) : String | Log4jJndiInjectionTest.java:258:71:258:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:259:65:259:72 | source(...) : String | Log4jJndiInjectionTest.java:259:56:259:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:260:50:260:57 | source(...) : String | Log4jJndiInjectionTest.java:260:41:260:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:261:35:261:42 | source(...) : String | Log4jJndiInjectionTest.java:261:26:261:42 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:262:110:262:117 | source(...) : String | Log4jJndiInjectionTest.java:262:101:262:117 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:263:95:263:102 | source(...) : String | Log4jJndiInjectionTest.java:263:86:263:102 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:264:80:264:87 | source(...) : String | Log4jJndiInjectionTest.java:264:71:264:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:265:65:265:72 | source(...) : String | Log4jJndiInjectionTest.java:265:56:265:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:266:50:266:57 | source(...) : String | Log4jJndiInjectionTest.java:266:41:266:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:267:35:267:42 | source(...) : String | Log4jJndiInjectionTest.java:267:26:267:42 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:268:125:268:132 | source(...) : String | Log4jJndiInjectionTest.java:268:116:268:132 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:269:110:269:117 | source(...) : String | Log4jJndiInjectionTest.java:269:101:269:117 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:270:95:270:102 | source(...) : String | Log4jJndiInjectionTest.java:270:86:270:102 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:271:80:271:87 | source(...) : String | Log4jJndiInjectionTest.java:271:71:271:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:272:65:272:72 | source(...) : String | Log4jJndiInjectionTest.java:272:56:272:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:273:50:273:57 | source(...) : String | Log4jJndiInjectionTest.java:273:41:273:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:274:35:274:42 | source(...) : String | Log4jJndiInjectionTest.java:274:26:274:42 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:275:140:275:147 | source(...) : String | Log4jJndiInjectionTest.java:275:131:275:147 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:276:125:276:132 | source(...) : String | Log4jJndiInjectionTest.java:276:116:276:132 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:277:110:277:117 | source(...) : String | Log4jJndiInjectionTest.java:277:101:277:117 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:278:95:278:102 | source(...) : String | Log4jJndiInjectionTest.java:278:86:278:102 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:279:80:279:87 | source(...) : String | Log4jJndiInjectionTest.java:279:71:279:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:280:65:280:72 | source(...) : String | Log4jJndiInjectionTest.java:280:56:280:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:281:50:281:57 | source(...) : String | Log4jJndiInjectionTest.java:281:41:281:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:282:35:282:42 | source(...) : String | Log4jJndiInjectionTest.java:282:26:282:42 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:283:155:283:162 | source(...) : String | Log4jJndiInjectionTest.java:283:146:283:162 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:284:140:284:147 | source(...) : String | Log4jJndiInjectionTest.java:284:131:284:147 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:285:125:285:132 | source(...) : String | Log4jJndiInjectionTest.java:285:116:285:132 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:286:110:286:117 | source(...) : String | Log4jJndiInjectionTest.java:286:101:286:117 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:287:95:287:102 | source(...) : String | Log4jJndiInjectionTest.java:287:86:287:102 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:288:80:288:87 | source(...) : String | Log4jJndiInjectionTest.java:288:71:288:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:289:65:289:72 | source(...) : String | Log4jJndiInjectionTest.java:289:56:289:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:290:50:290:57 | source(...) : String | Log4jJndiInjectionTest.java:290:41:290:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:291:35:291:42 | source(...) : String | Log4jJndiInjectionTest.java:291:26:291:42 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:292:170:292:177 | source(...) : String | Log4jJndiInjectionTest.java:292:161:292:177 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:293:155:293:162 | source(...) : String | Log4jJndiInjectionTest.java:293:146:293:162 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:294:140:294:147 | source(...) : String | Log4jJndiInjectionTest.java:294:131:294:147 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:295:125:295:132 | source(...) : String | Log4jJndiInjectionTest.java:295:116:295:132 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:296:110:296:117 | source(...) : String | Log4jJndiInjectionTest.java:296:101:296:117 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:297:95:297:102 | source(...) : String | Log4jJndiInjectionTest.java:297:86:297:102 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:298:80:298:87 | source(...) : String | Log4jJndiInjectionTest.java:298:71:298:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:299:65:299:72 | source(...) : String | Log4jJndiInjectionTest.java:299:56:299:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:300:50:300:57 | source(...) : String | Log4jJndiInjectionTest.java:300:41:300:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:301:35:301:42 | source(...) : String | Log4jJndiInjectionTest.java:301:26:301:42 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:302:35:302:42 | source(...) : String | Log4jJndiInjectionTest.java:302:26:302:42 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:303:55:303:62 | source(...) : String | Log4jJndiInjectionTest.java:303:41:303:62 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:304:35:304:42 | source(...) : String | Log4jJndiInjectionTest.java:304:26:304:42 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:305:40:305:47 | source(...) : String | Log4jJndiInjectionTest.java:305:26:305:47 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:306:40:306:47 | source(...) : String | Log4jJndiInjectionTest.java:306:26:306:47 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:307:41:307:48 | source(...) : String | Log4jJndiInjectionTest.java:307:26:307:48 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:308:41:308:48 | source(...) : String | Log4jJndiInjectionTest.java:308:26:308:48 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:309:56:309:63 | source(...) : String | Log4jJndiInjectionTest.java:309:41:309:63 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:310:56:310:63 | source(...) : String | Log4jJndiInjectionTest.java:310:41:310:63 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:311:51:311:58 | source(...) : String | Log4jJndiInjectionTest.java:311:41:311:58 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:312:59:312:66 | source(...) : String | Log4jJndiInjectionTest.java:312:41:312:66 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:313:59:313:66 | source(...) : String | Log4jJndiInjectionTest.java:313:41:313:66 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:315:50:315:57 | source(...) : String | Log4jJndiInjectionTest.java:315:41:315:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:316:50:316:57 | source(...) : String | Log4jJndiInjectionTest.java:316:41:316:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:317:56:317:78 | {...} : Object[] [[]] : String | Log4jJndiInjectionTest.java:317:56:317:78 | new Object[] | provenance | | +| Log4jJndiInjectionTest.java:317:70:317:77 | source(...) : String | Log4jJndiInjectionTest.java:317:56:317:78 | {...} : Object[] [[]] : String | provenance | | +| Log4jJndiInjectionTest.java:318:65:318:72 | source(...) : String | Log4jJndiInjectionTest.java:318:56:318:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:319:50:319:57 | source(...) : String | Log4jJndiInjectionTest.java:319:41:319:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:320:80:320:87 | source(...) : String | Log4jJndiInjectionTest.java:320:71:320:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:321:65:321:72 | source(...) : String | Log4jJndiInjectionTest.java:321:56:321:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:322:50:322:57 | source(...) : String | Log4jJndiInjectionTest.java:322:41:322:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:323:95:323:102 | source(...) : String | Log4jJndiInjectionTest.java:323:86:323:102 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:324:80:324:87 | source(...) : String | Log4jJndiInjectionTest.java:324:71:324:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:325:65:325:72 | source(...) : String | Log4jJndiInjectionTest.java:325:56:325:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:326:50:326:57 | source(...) : String | Log4jJndiInjectionTest.java:326:41:326:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:327:110:327:117 | source(...) : String | Log4jJndiInjectionTest.java:327:101:327:117 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:328:95:328:102 | source(...) : String | Log4jJndiInjectionTest.java:328:86:328:102 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:329:80:329:87 | source(...) : String | Log4jJndiInjectionTest.java:329:71:329:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:330:65:330:72 | source(...) : String | Log4jJndiInjectionTest.java:330:56:330:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:331:50:331:57 | source(...) : String | Log4jJndiInjectionTest.java:331:41:331:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:332:125:332:132 | source(...) : String | Log4jJndiInjectionTest.java:332:116:332:132 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:333:110:333:117 | source(...) : String | Log4jJndiInjectionTest.java:333:101:333:117 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:334:95:334:102 | source(...) : String | Log4jJndiInjectionTest.java:334:86:334:102 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:335:80:335:87 | source(...) : String | Log4jJndiInjectionTest.java:335:71:335:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:336:65:336:72 | source(...) : String | Log4jJndiInjectionTest.java:336:56:336:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:337:50:337:57 | source(...) : String | Log4jJndiInjectionTest.java:337:41:337:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:338:140:338:147 | source(...) : String | Log4jJndiInjectionTest.java:338:131:338:147 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:339:125:339:132 | source(...) : String | Log4jJndiInjectionTest.java:339:116:339:132 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:340:110:340:117 | source(...) : String | Log4jJndiInjectionTest.java:340:101:340:117 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:341:95:341:102 | source(...) : String | Log4jJndiInjectionTest.java:341:86:341:102 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:342:80:342:87 | source(...) : String | Log4jJndiInjectionTest.java:342:71:342:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:343:65:343:72 | source(...) : String | Log4jJndiInjectionTest.java:343:56:343:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:344:50:344:57 | source(...) : String | Log4jJndiInjectionTest.java:344:41:344:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:345:155:345:162 | source(...) : String | Log4jJndiInjectionTest.java:345:146:345:162 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:346:140:346:147 | source(...) : String | Log4jJndiInjectionTest.java:346:131:346:147 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:347:125:347:132 | source(...) : String | Log4jJndiInjectionTest.java:347:116:347:132 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:348:110:348:117 | source(...) : String | Log4jJndiInjectionTest.java:348:101:348:117 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:349:95:349:102 | source(...) : String | Log4jJndiInjectionTest.java:349:86:349:102 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:350:80:350:87 | source(...) : String | Log4jJndiInjectionTest.java:350:71:350:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:351:65:351:72 | source(...) : String | Log4jJndiInjectionTest.java:351:56:351:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:352:50:352:57 | source(...) : String | Log4jJndiInjectionTest.java:352:41:352:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:353:170:353:177 | source(...) : String | Log4jJndiInjectionTest.java:353:161:353:177 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:354:155:354:162 | source(...) : String | Log4jJndiInjectionTest.java:354:146:354:162 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:355:140:355:147 | source(...) : String | Log4jJndiInjectionTest.java:355:131:355:147 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:356:125:356:132 | source(...) : String | Log4jJndiInjectionTest.java:356:116:356:132 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:357:110:357:117 | source(...) : String | Log4jJndiInjectionTest.java:357:101:357:117 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:358:95:358:102 | source(...) : String | Log4jJndiInjectionTest.java:358:86:358:102 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:359:80:359:87 | source(...) : String | Log4jJndiInjectionTest.java:359:71:359:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:360:65:360:72 | source(...) : String | Log4jJndiInjectionTest.java:360:56:360:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:361:50:361:57 | source(...) : String | Log4jJndiInjectionTest.java:361:41:361:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:362:185:362:192 | source(...) : String | Log4jJndiInjectionTest.java:362:176:362:192 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:363:170:363:177 | source(...) : String | Log4jJndiInjectionTest.java:363:161:363:177 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:364:155:364:162 | source(...) : String | Log4jJndiInjectionTest.java:364:146:364:162 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:365:140:365:147 | source(...) : String | Log4jJndiInjectionTest.java:365:131:365:147 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:366:125:366:132 | source(...) : String | Log4jJndiInjectionTest.java:366:116:366:132 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:367:110:367:117 | source(...) : String | Log4jJndiInjectionTest.java:367:101:367:117 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:368:95:368:102 | source(...) : String | Log4jJndiInjectionTest.java:368:86:368:102 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:369:80:369:87 | source(...) : String | Log4jJndiInjectionTest.java:369:71:369:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:370:65:370:72 | source(...) : String | Log4jJndiInjectionTest.java:370:56:370:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:371:50:371:57 | source(...) : String | Log4jJndiInjectionTest.java:371:41:371:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:372:50:372:57 | source(...) : String | Log4jJndiInjectionTest.java:372:41:372:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:373:70:373:77 | source(...) : String | Log4jJndiInjectionTest.java:373:56:373:77 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:374:50:374:57 | source(...) : String | Log4jJndiInjectionTest.java:374:41:374:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:375:55:375:62 | source(...) : String | Log4jJndiInjectionTest.java:375:41:375:62 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:376:55:376:62 | source(...) : String | Log4jJndiInjectionTest.java:376:41:376:62 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:377:44:377:51 | source(...) : String | Log4jJndiInjectionTest.java:377:26:377:51 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:378:44:378:51 | source(...) : String | Log4jJndiInjectionTest.java:378:26:378:51 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:379:36:379:43 | source(...) : String | Log4jJndiInjectionTest.java:379:26:379:43 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:380:36:380:43 | source(...) : String | Log4jJndiInjectionTest.java:380:26:380:43 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:383:35:383:42 | source(...) : String | Log4jJndiInjectionTest.java:383:26:383:42 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:384:35:384:42 | source(...) : String | Log4jJndiInjectionTest.java:384:26:384:42 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:385:41:385:63 | {...} : Object[] [[]] : String | Log4jJndiInjectionTest.java:385:41:385:63 | new Object[] | provenance | | +| Log4jJndiInjectionTest.java:385:55:385:62 | source(...) : String | Log4jJndiInjectionTest.java:385:41:385:63 | {...} : Object[] [[]] : String | provenance | | +| Log4jJndiInjectionTest.java:386:50:386:57 | source(...) : String | Log4jJndiInjectionTest.java:386:41:386:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:387:35:387:42 | source(...) : String | Log4jJndiInjectionTest.java:387:26:387:42 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:388:65:388:72 | source(...) : String | Log4jJndiInjectionTest.java:388:56:388:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:389:50:389:57 | source(...) : String | Log4jJndiInjectionTest.java:389:41:389:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:390:35:390:42 | source(...) : String | Log4jJndiInjectionTest.java:390:26:390:42 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:391:80:391:87 | source(...) : String | Log4jJndiInjectionTest.java:391:71:391:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:392:65:392:72 | source(...) : String | Log4jJndiInjectionTest.java:392:56:392:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:393:50:393:57 | source(...) : String | Log4jJndiInjectionTest.java:393:41:393:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:394:35:394:42 | source(...) : String | Log4jJndiInjectionTest.java:394:26:394:42 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:395:95:395:102 | source(...) : String | Log4jJndiInjectionTest.java:395:86:395:102 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:396:80:396:87 | source(...) : String | Log4jJndiInjectionTest.java:396:71:396:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:397:65:397:72 | source(...) : String | Log4jJndiInjectionTest.java:397:56:397:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:398:50:398:57 | source(...) : String | Log4jJndiInjectionTest.java:398:41:398:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:399:35:399:42 | source(...) : String | Log4jJndiInjectionTest.java:399:26:399:42 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:400:110:400:117 | source(...) : String | Log4jJndiInjectionTest.java:400:101:400:117 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:401:95:401:102 | source(...) : String | Log4jJndiInjectionTest.java:401:86:401:102 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:402:80:402:87 | source(...) : String | Log4jJndiInjectionTest.java:402:71:402:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:403:65:403:72 | source(...) : String | Log4jJndiInjectionTest.java:403:56:403:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:404:50:404:57 | source(...) : String | Log4jJndiInjectionTest.java:404:41:404:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:405:35:405:42 | source(...) : String | Log4jJndiInjectionTest.java:405:26:405:42 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:406:125:406:132 | source(...) : String | Log4jJndiInjectionTest.java:406:116:406:132 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:407:110:407:117 | source(...) : String | Log4jJndiInjectionTest.java:407:101:407:117 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:408:95:408:102 | source(...) : String | Log4jJndiInjectionTest.java:408:86:408:102 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:409:80:409:87 | source(...) : String | Log4jJndiInjectionTest.java:409:71:409:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:410:65:410:72 | source(...) : String | Log4jJndiInjectionTest.java:410:56:410:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:411:50:411:57 | source(...) : String | Log4jJndiInjectionTest.java:411:41:411:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:412:35:412:42 | source(...) : String | Log4jJndiInjectionTest.java:412:26:412:42 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:413:140:413:147 | source(...) : String | Log4jJndiInjectionTest.java:413:131:413:147 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:414:125:414:132 | source(...) : String | Log4jJndiInjectionTest.java:414:116:414:132 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:415:110:415:117 | source(...) : String | Log4jJndiInjectionTest.java:415:101:415:117 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:416:95:416:102 | source(...) : String | Log4jJndiInjectionTest.java:416:86:416:102 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:417:80:417:87 | source(...) : String | Log4jJndiInjectionTest.java:417:71:417:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:418:65:418:72 | source(...) : String | Log4jJndiInjectionTest.java:418:56:418:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:419:50:419:57 | source(...) : String | Log4jJndiInjectionTest.java:419:41:419:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:420:35:420:42 | source(...) : String | Log4jJndiInjectionTest.java:420:26:420:42 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:421:155:421:162 | source(...) : String | Log4jJndiInjectionTest.java:421:146:421:162 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:422:140:422:147 | source(...) : String | Log4jJndiInjectionTest.java:422:131:422:147 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:423:125:423:132 | source(...) : String | Log4jJndiInjectionTest.java:423:116:423:132 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:424:110:424:117 | source(...) : String | Log4jJndiInjectionTest.java:424:101:424:117 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:425:95:425:102 | source(...) : String | Log4jJndiInjectionTest.java:425:86:425:102 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:426:80:426:87 | source(...) : String | Log4jJndiInjectionTest.java:426:71:426:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:427:65:427:72 | source(...) : String | Log4jJndiInjectionTest.java:427:56:427:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:428:50:428:57 | source(...) : String | Log4jJndiInjectionTest.java:428:41:428:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:429:35:429:42 | source(...) : String | Log4jJndiInjectionTest.java:429:26:429:42 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:430:170:430:177 | source(...) : String | Log4jJndiInjectionTest.java:430:161:430:177 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:431:155:431:162 | source(...) : String | Log4jJndiInjectionTest.java:431:146:431:162 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:432:140:432:147 | source(...) : String | Log4jJndiInjectionTest.java:432:131:432:147 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:433:125:433:132 | source(...) : String | Log4jJndiInjectionTest.java:433:116:433:132 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:434:110:434:117 | source(...) : String | Log4jJndiInjectionTest.java:434:101:434:117 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:435:95:435:102 | source(...) : String | Log4jJndiInjectionTest.java:435:86:435:102 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:436:80:436:87 | source(...) : String | Log4jJndiInjectionTest.java:436:71:436:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:437:65:437:72 | source(...) : String | Log4jJndiInjectionTest.java:437:56:437:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:438:50:438:57 | source(...) : String | Log4jJndiInjectionTest.java:438:41:438:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:439:35:439:42 | source(...) : String | Log4jJndiInjectionTest.java:439:26:439:42 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:440:35:440:42 | source(...) : String | Log4jJndiInjectionTest.java:440:26:440:42 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:441:55:441:62 | source(...) : String | Log4jJndiInjectionTest.java:441:41:441:62 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:442:35:442:42 | source(...) : String | Log4jJndiInjectionTest.java:442:26:442:42 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:443:40:443:47 | source(...) : String | Log4jJndiInjectionTest.java:443:26:443:47 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:444:40:444:47 | source(...) : String | Log4jJndiInjectionTest.java:444:26:444:47 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:445:40:445:47 | source(...) : String | Log4jJndiInjectionTest.java:445:25:445:47 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:446:40:446:47 | source(...) : String | Log4jJndiInjectionTest.java:446:25:446:47 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:447:55:447:62 | source(...) : String | Log4jJndiInjectionTest.java:447:40:447:62 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:448:55:448:62 | source(...) : String | Log4jJndiInjectionTest.java:448:40:448:62 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:449:50:449:57 | source(...) : String | Log4jJndiInjectionTest.java:449:40:449:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:450:58:450:65 | source(...) : String | Log4jJndiInjectionTest.java:450:40:450:65 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:451:58:451:65 | source(...) : String | Log4jJndiInjectionTest.java:451:40:451:65 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:453:49:453:56 | source(...) : String | Log4jJndiInjectionTest.java:453:40:453:56 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:454:49:454:56 | source(...) : String | Log4jJndiInjectionTest.java:454:40:454:56 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:455:55:455:77 | {...} : Object[] [[]] : String | Log4jJndiInjectionTest.java:455:55:455:77 | new Object[] | provenance | | +| Log4jJndiInjectionTest.java:455:69:455:76 | source(...) : String | Log4jJndiInjectionTest.java:455:55:455:77 | {...} : Object[] [[]] : String | provenance | | +| Log4jJndiInjectionTest.java:456:64:456:71 | source(...) : String | Log4jJndiInjectionTest.java:456:55:456:71 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:457:49:457:56 | source(...) : String | Log4jJndiInjectionTest.java:457:40:457:56 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:458:79:458:86 | source(...) : String | Log4jJndiInjectionTest.java:458:70:458:86 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:459:64:459:71 | source(...) : String | Log4jJndiInjectionTest.java:459:55:459:71 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:460:49:460:56 | source(...) : String | Log4jJndiInjectionTest.java:460:40:460:56 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:461:94:461:101 | source(...) : String | Log4jJndiInjectionTest.java:461:85:461:101 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:462:79:462:86 | source(...) : String | Log4jJndiInjectionTest.java:462:70:462:86 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:463:64:463:71 | source(...) : String | Log4jJndiInjectionTest.java:463:55:463:71 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:464:49:464:56 | source(...) : String | Log4jJndiInjectionTest.java:464:40:464:56 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:465:109:465:116 | source(...) : String | Log4jJndiInjectionTest.java:465:100:465:116 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:466:94:466:101 | source(...) : String | Log4jJndiInjectionTest.java:466:85:466:101 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:467:79:467:86 | source(...) : String | Log4jJndiInjectionTest.java:467:70:467:86 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:468:64:468:71 | source(...) : String | Log4jJndiInjectionTest.java:468:55:468:71 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:469:49:469:56 | source(...) : String | Log4jJndiInjectionTest.java:469:40:469:56 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:470:124:470:131 | source(...) : String | Log4jJndiInjectionTest.java:470:115:470:131 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:471:109:471:116 | source(...) : String | Log4jJndiInjectionTest.java:471:100:471:116 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:472:94:472:101 | source(...) : String | Log4jJndiInjectionTest.java:472:85:472:101 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:473:79:473:86 | source(...) : String | Log4jJndiInjectionTest.java:473:70:473:86 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:474:64:474:71 | source(...) : String | Log4jJndiInjectionTest.java:474:55:474:71 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:475:49:475:56 | source(...) : String | Log4jJndiInjectionTest.java:475:40:475:56 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:476:139:476:146 | source(...) : String | Log4jJndiInjectionTest.java:476:130:476:146 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:477:124:477:131 | source(...) : String | Log4jJndiInjectionTest.java:477:115:477:131 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:478:109:478:116 | source(...) : String | Log4jJndiInjectionTest.java:478:100:478:116 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:479:94:479:101 | source(...) : String | Log4jJndiInjectionTest.java:479:85:479:101 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:480:79:480:86 | source(...) : String | Log4jJndiInjectionTest.java:480:70:480:86 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:481:64:481:71 | source(...) : String | Log4jJndiInjectionTest.java:481:55:481:71 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:482:49:482:56 | source(...) : String | Log4jJndiInjectionTest.java:482:40:482:56 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:483:154:483:161 | source(...) : String | Log4jJndiInjectionTest.java:483:145:483:161 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:484:139:484:146 | source(...) : String | Log4jJndiInjectionTest.java:484:130:484:146 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:485:124:485:131 | source(...) : String | Log4jJndiInjectionTest.java:485:115:485:131 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:486:109:486:116 | source(...) : String | Log4jJndiInjectionTest.java:486:100:486:116 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:487:94:487:101 | source(...) : String | Log4jJndiInjectionTest.java:487:85:487:101 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:488:79:488:86 | source(...) : String | Log4jJndiInjectionTest.java:488:70:488:86 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:489:64:489:71 | source(...) : String | Log4jJndiInjectionTest.java:489:55:489:71 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:490:49:490:56 | source(...) : String | Log4jJndiInjectionTest.java:490:40:490:56 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:491:169:491:176 | source(...) : String | Log4jJndiInjectionTest.java:491:160:491:176 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:492:154:492:161 | source(...) : String | Log4jJndiInjectionTest.java:492:145:492:161 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:493:139:493:146 | source(...) : String | Log4jJndiInjectionTest.java:493:130:493:146 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:494:124:494:131 | source(...) : String | Log4jJndiInjectionTest.java:494:115:494:131 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:495:109:495:116 | source(...) : String | Log4jJndiInjectionTest.java:495:100:495:116 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:496:94:496:101 | source(...) : String | Log4jJndiInjectionTest.java:496:85:496:101 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:497:79:497:86 | source(...) : String | Log4jJndiInjectionTest.java:497:70:497:86 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:498:64:498:71 | source(...) : String | Log4jJndiInjectionTest.java:498:55:498:71 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:499:49:499:56 | source(...) : String | Log4jJndiInjectionTest.java:499:40:499:56 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:500:184:500:191 | source(...) : String | Log4jJndiInjectionTest.java:500:175:500:191 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:501:169:501:176 | source(...) : String | Log4jJndiInjectionTest.java:501:160:501:176 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:502:154:502:161 | source(...) : String | Log4jJndiInjectionTest.java:502:145:502:161 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:503:139:503:146 | source(...) : String | Log4jJndiInjectionTest.java:503:130:503:146 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:504:124:504:131 | source(...) : String | Log4jJndiInjectionTest.java:504:115:504:131 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:505:109:505:116 | source(...) : String | Log4jJndiInjectionTest.java:505:100:505:116 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:506:94:506:101 | source(...) : String | Log4jJndiInjectionTest.java:506:85:506:101 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:507:79:507:86 | source(...) : String | Log4jJndiInjectionTest.java:507:70:507:86 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:508:64:508:71 | source(...) : String | Log4jJndiInjectionTest.java:508:55:508:71 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:509:49:509:56 | source(...) : String | Log4jJndiInjectionTest.java:509:40:509:56 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:510:49:510:56 | source(...) : String | Log4jJndiInjectionTest.java:510:40:510:56 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:511:69:511:76 | source(...) : String | Log4jJndiInjectionTest.java:511:55:511:76 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:512:49:512:56 | source(...) : String | Log4jJndiInjectionTest.java:512:40:512:56 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:513:54:513:61 | source(...) : String | Log4jJndiInjectionTest.java:513:40:513:61 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:514:54:514:61 | source(...) : String | Log4jJndiInjectionTest.java:514:40:514:61 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:515:43:515:50 | source(...) : String | Log4jJndiInjectionTest.java:515:25:515:50 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:516:43:516:50 | source(...) : String | Log4jJndiInjectionTest.java:516:25:516:50 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:517:35:517:42 | source(...) : String | Log4jJndiInjectionTest.java:517:25:517:42 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:518:35:518:42 | source(...) : String | Log4jJndiInjectionTest.java:518:25:518:42 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:521:34:521:41 | source(...) : String | Log4jJndiInjectionTest.java:521:25:521:41 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:522:34:522:41 | source(...) : String | Log4jJndiInjectionTest.java:522:25:522:41 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:523:40:523:62 | {...} : Object[] [[]] : String | Log4jJndiInjectionTest.java:523:40:523:62 | new Object[] | provenance | | +| Log4jJndiInjectionTest.java:523:54:523:61 | source(...) : String | Log4jJndiInjectionTest.java:523:40:523:62 | {...} : Object[] [[]] : String | provenance | | +| Log4jJndiInjectionTest.java:524:49:524:56 | source(...) : String | Log4jJndiInjectionTest.java:524:40:524:56 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:525:34:525:41 | source(...) : String | Log4jJndiInjectionTest.java:525:25:525:41 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:526:64:526:71 | source(...) : String | Log4jJndiInjectionTest.java:526:55:526:71 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:527:49:527:56 | source(...) : String | Log4jJndiInjectionTest.java:527:40:527:56 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:528:34:528:41 | source(...) : String | Log4jJndiInjectionTest.java:528:25:528:41 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:529:79:529:86 | source(...) : String | Log4jJndiInjectionTest.java:529:70:529:86 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:530:64:530:71 | source(...) : String | Log4jJndiInjectionTest.java:530:55:530:71 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:531:49:531:56 | source(...) : String | Log4jJndiInjectionTest.java:531:40:531:56 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:532:34:532:41 | source(...) : String | Log4jJndiInjectionTest.java:532:25:532:41 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:533:94:533:101 | source(...) : String | Log4jJndiInjectionTest.java:533:85:533:101 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:534:79:534:86 | source(...) : String | Log4jJndiInjectionTest.java:534:70:534:86 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:535:64:535:71 | source(...) : String | Log4jJndiInjectionTest.java:535:55:535:71 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:536:49:536:56 | source(...) : String | Log4jJndiInjectionTest.java:536:40:536:56 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:537:34:537:41 | source(...) : String | Log4jJndiInjectionTest.java:537:25:537:41 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:538:109:538:116 | source(...) : String | Log4jJndiInjectionTest.java:538:100:538:116 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:539:94:539:101 | source(...) : String | Log4jJndiInjectionTest.java:539:85:539:101 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:540:79:540:86 | source(...) : String | Log4jJndiInjectionTest.java:540:70:540:86 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:541:64:541:71 | source(...) : String | Log4jJndiInjectionTest.java:541:55:541:71 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:542:49:542:56 | source(...) : String | Log4jJndiInjectionTest.java:542:40:542:56 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:543:34:543:41 | source(...) : String | Log4jJndiInjectionTest.java:543:25:543:41 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:544:124:544:131 | source(...) : String | Log4jJndiInjectionTest.java:544:115:544:131 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:545:109:545:116 | source(...) : String | Log4jJndiInjectionTest.java:545:100:545:116 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:546:94:546:101 | source(...) : String | Log4jJndiInjectionTest.java:546:85:546:101 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:547:79:547:86 | source(...) : String | Log4jJndiInjectionTest.java:547:70:547:86 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:548:64:548:71 | source(...) : String | Log4jJndiInjectionTest.java:548:55:548:71 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:549:49:549:56 | source(...) : String | Log4jJndiInjectionTest.java:549:40:549:56 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:550:34:550:41 | source(...) : String | Log4jJndiInjectionTest.java:550:25:550:41 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:551:139:551:146 | source(...) : String | Log4jJndiInjectionTest.java:551:130:551:146 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:552:124:552:131 | source(...) : String | Log4jJndiInjectionTest.java:552:115:552:131 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:553:109:553:116 | source(...) : String | Log4jJndiInjectionTest.java:553:100:553:116 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:554:94:554:101 | source(...) : String | Log4jJndiInjectionTest.java:554:85:554:101 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:555:79:555:86 | source(...) : String | Log4jJndiInjectionTest.java:555:70:555:86 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:556:64:556:71 | source(...) : String | Log4jJndiInjectionTest.java:556:55:556:71 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:557:49:557:56 | source(...) : String | Log4jJndiInjectionTest.java:557:40:557:56 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:558:34:558:41 | source(...) : String | Log4jJndiInjectionTest.java:558:25:558:41 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:559:154:559:161 | source(...) : String | Log4jJndiInjectionTest.java:559:145:559:161 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:560:139:560:146 | source(...) : String | Log4jJndiInjectionTest.java:560:130:560:146 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:561:124:561:131 | source(...) : String | Log4jJndiInjectionTest.java:561:115:561:131 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:562:109:562:116 | source(...) : String | Log4jJndiInjectionTest.java:562:100:562:116 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:563:94:563:101 | source(...) : String | Log4jJndiInjectionTest.java:563:85:563:101 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:564:79:564:86 | source(...) : String | Log4jJndiInjectionTest.java:564:70:564:86 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:565:64:565:71 | source(...) : String | Log4jJndiInjectionTest.java:565:55:565:71 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:566:49:566:56 | source(...) : String | Log4jJndiInjectionTest.java:566:40:566:56 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:567:34:567:41 | source(...) : String | Log4jJndiInjectionTest.java:567:25:567:41 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:568:169:568:176 | source(...) : String | Log4jJndiInjectionTest.java:568:160:568:176 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:569:154:569:161 | source(...) : String | Log4jJndiInjectionTest.java:569:145:569:161 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:570:139:570:146 | source(...) : String | Log4jJndiInjectionTest.java:570:130:570:146 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:571:124:571:131 | source(...) : String | Log4jJndiInjectionTest.java:571:115:571:131 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:572:109:572:116 | source(...) : String | Log4jJndiInjectionTest.java:572:100:572:116 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:573:94:573:101 | source(...) : String | Log4jJndiInjectionTest.java:573:85:573:101 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:574:79:574:86 | source(...) : String | Log4jJndiInjectionTest.java:574:70:574:86 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:575:64:575:71 | source(...) : String | Log4jJndiInjectionTest.java:575:55:575:71 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:576:49:576:56 | source(...) : String | Log4jJndiInjectionTest.java:576:40:576:56 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:577:34:577:41 | source(...) : String | Log4jJndiInjectionTest.java:577:25:577:41 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:578:34:578:41 | source(...) : String | Log4jJndiInjectionTest.java:578:25:578:41 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:579:54:579:61 | source(...) : String | Log4jJndiInjectionTest.java:579:40:579:61 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:580:34:580:41 | source(...) : String | Log4jJndiInjectionTest.java:580:25:580:41 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:581:39:581:46 | source(...) : String | Log4jJndiInjectionTest.java:581:25:581:46 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:582:39:582:46 | source(...) : String | Log4jJndiInjectionTest.java:582:25:582:46 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:583:53:583:60 | source(...) : String | Log4jJndiInjectionTest.java:583:38:583:60 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:584:53:584:60 | source(...) : String | Log4jJndiInjectionTest.java:584:38:584:60 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:585:68:585:75 | source(...) : String | Log4jJndiInjectionTest.java:585:53:585:75 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:586:68:586:75 | source(...) : String | Log4jJndiInjectionTest.java:586:53:586:75 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:587:63:587:70 | source(...) : String | Log4jJndiInjectionTest.java:587:53:587:70 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:588:71:588:78 | source(...) : String | Log4jJndiInjectionTest.java:588:53:588:78 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:589:71:589:78 | source(...) : String | Log4jJndiInjectionTest.java:589:53:589:78 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:591:62:591:69 | source(...) : String | Log4jJndiInjectionTest.java:591:53:591:69 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:592:62:592:69 | source(...) : String | Log4jJndiInjectionTest.java:592:53:592:69 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:593:68:593:90 | {...} : Object[] [[]] : String | Log4jJndiInjectionTest.java:593:68:593:90 | new Object[] | provenance | | +| Log4jJndiInjectionTest.java:593:82:593:89 | source(...) : String | Log4jJndiInjectionTest.java:593:68:593:90 | {...} : Object[] [[]] : String | provenance | | +| Log4jJndiInjectionTest.java:594:77:594:84 | source(...) : String | Log4jJndiInjectionTest.java:594:68:594:84 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:595:62:595:69 | source(...) : String | Log4jJndiInjectionTest.java:595:53:595:69 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:596:92:596:99 | source(...) : String | Log4jJndiInjectionTest.java:596:83:596:99 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:597:77:597:84 | source(...) : String | Log4jJndiInjectionTest.java:597:68:597:84 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:598:62:598:69 | source(...) : String | Log4jJndiInjectionTest.java:598:53:598:69 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:599:107:599:114 | source(...) : String | Log4jJndiInjectionTest.java:599:98:599:114 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:600:92:600:99 | source(...) : String | Log4jJndiInjectionTest.java:600:83:600:99 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:601:77:601:84 | source(...) : String | Log4jJndiInjectionTest.java:601:68:601:84 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:602:62:602:69 | source(...) : String | Log4jJndiInjectionTest.java:602:53:602:69 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:603:122:603:129 | source(...) : String | Log4jJndiInjectionTest.java:603:113:603:129 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:604:107:604:114 | source(...) : String | Log4jJndiInjectionTest.java:604:98:604:114 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:605:92:605:99 | source(...) : String | Log4jJndiInjectionTest.java:605:83:605:99 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:606:77:606:84 | source(...) : String | Log4jJndiInjectionTest.java:606:68:606:84 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:607:62:607:69 | source(...) : String | Log4jJndiInjectionTest.java:607:53:607:69 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:608:137:608:144 | source(...) : String | Log4jJndiInjectionTest.java:608:128:608:144 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:609:122:609:129 | source(...) : String | Log4jJndiInjectionTest.java:609:113:609:129 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:610:107:610:114 | source(...) : String | Log4jJndiInjectionTest.java:610:98:610:114 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:611:92:611:99 | source(...) : String | Log4jJndiInjectionTest.java:611:83:611:99 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:612:77:612:84 | source(...) : String | Log4jJndiInjectionTest.java:612:68:612:84 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:613:62:613:69 | source(...) : String | Log4jJndiInjectionTest.java:613:53:613:69 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:614:152:614:159 | source(...) : String | Log4jJndiInjectionTest.java:614:143:614:159 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:615:137:615:144 | source(...) : String | Log4jJndiInjectionTest.java:615:128:615:144 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:616:122:616:129 | source(...) : String | Log4jJndiInjectionTest.java:616:113:616:129 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:617:107:617:114 | source(...) : String | Log4jJndiInjectionTest.java:617:98:617:114 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:618:92:618:99 | source(...) : String | Log4jJndiInjectionTest.java:618:83:618:99 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:619:77:619:84 | source(...) : String | Log4jJndiInjectionTest.java:619:68:619:84 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:620:62:620:69 | source(...) : String | Log4jJndiInjectionTest.java:620:53:620:69 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:621:167:621:174 | source(...) : String | Log4jJndiInjectionTest.java:621:158:621:174 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:622:152:622:159 | source(...) : String | Log4jJndiInjectionTest.java:622:143:622:159 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:623:137:623:144 | source(...) : String | Log4jJndiInjectionTest.java:623:128:623:144 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:624:122:624:129 | source(...) : String | Log4jJndiInjectionTest.java:624:113:624:129 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:625:107:625:114 | source(...) : String | Log4jJndiInjectionTest.java:625:98:625:114 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:626:92:626:99 | source(...) : String | Log4jJndiInjectionTest.java:626:83:626:99 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:627:77:627:84 | source(...) : String | Log4jJndiInjectionTest.java:627:68:627:84 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:628:62:628:69 | source(...) : String | Log4jJndiInjectionTest.java:628:53:628:69 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:629:182:629:189 | source(...) : String | Log4jJndiInjectionTest.java:629:173:629:189 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:630:167:630:174 | source(...) : String | Log4jJndiInjectionTest.java:630:158:630:174 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:631:152:631:159 | source(...) : String | Log4jJndiInjectionTest.java:631:143:631:159 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:632:137:632:144 | source(...) : String | Log4jJndiInjectionTest.java:632:128:632:144 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:633:122:633:129 | source(...) : String | Log4jJndiInjectionTest.java:633:113:633:129 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:634:107:634:114 | source(...) : String | Log4jJndiInjectionTest.java:634:98:634:114 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:635:92:635:99 | source(...) : String | Log4jJndiInjectionTest.java:635:83:635:99 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:636:77:636:84 | source(...) : String | Log4jJndiInjectionTest.java:636:68:636:84 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:637:62:637:69 | source(...) : String | Log4jJndiInjectionTest.java:637:53:637:69 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:638:197:638:204 | source(...) : String | Log4jJndiInjectionTest.java:638:188:638:204 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:639:182:639:189 | source(...) : String | Log4jJndiInjectionTest.java:639:173:639:189 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:640:167:640:174 | source(...) : String | Log4jJndiInjectionTest.java:640:158:640:174 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:641:152:641:159 | source(...) : String | Log4jJndiInjectionTest.java:641:143:641:159 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:642:137:642:144 | source(...) : String | Log4jJndiInjectionTest.java:642:128:642:144 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:643:122:643:129 | source(...) : String | Log4jJndiInjectionTest.java:643:113:643:129 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:644:107:644:114 | source(...) : String | Log4jJndiInjectionTest.java:644:98:644:114 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:645:92:645:99 | source(...) : String | Log4jJndiInjectionTest.java:645:83:645:99 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:646:77:646:84 | source(...) : String | Log4jJndiInjectionTest.java:646:68:646:84 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:647:62:647:69 | source(...) : String | Log4jJndiInjectionTest.java:647:53:647:69 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:648:62:648:69 | source(...) : String | Log4jJndiInjectionTest.java:648:53:648:69 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:649:82:649:89 | source(...) : String | Log4jJndiInjectionTest.java:649:68:649:89 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:650:62:650:69 | source(...) : String | Log4jJndiInjectionTest.java:650:53:650:69 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:651:67:651:74 | source(...) : String | Log4jJndiInjectionTest.java:651:53:651:74 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:652:67:652:74 | source(...) : String | Log4jJndiInjectionTest.java:652:53:652:74 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:653:56:653:63 | source(...) : String | Log4jJndiInjectionTest.java:653:38:653:63 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:654:56:654:63 | source(...) : String | Log4jJndiInjectionTest.java:654:38:654:63 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:655:48:655:55 | source(...) : String | Log4jJndiInjectionTest.java:655:38:655:55 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:656:48:656:55 | source(...) : String | Log4jJndiInjectionTest.java:656:38:656:55 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:659:47:659:54 | source(...) : String | Log4jJndiInjectionTest.java:659:38:659:54 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:660:47:660:54 | source(...) : String | Log4jJndiInjectionTest.java:660:38:660:54 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:661:53:661:75 | {...} : Object[] [[]] : String | Log4jJndiInjectionTest.java:661:53:661:75 | new Object[] | provenance | | +| Log4jJndiInjectionTest.java:661:67:661:74 | source(...) : String | Log4jJndiInjectionTest.java:661:53:661:75 | {...} : Object[] [[]] : String | provenance | | +| Log4jJndiInjectionTest.java:662:62:662:69 | source(...) : String | Log4jJndiInjectionTest.java:662:53:662:69 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:663:47:663:54 | source(...) : String | Log4jJndiInjectionTest.java:663:38:663:54 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:664:77:664:84 | source(...) : String | Log4jJndiInjectionTest.java:664:68:664:84 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:665:62:665:69 | source(...) : String | Log4jJndiInjectionTest.java:665:53:665:69 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:666:47:666:54 | source(...) : String | Log4jJndiInjectionTest.java:666:38:666:54 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:667:92:667:99 | source(...) : String | Log4jJndiInjectionTest.java:667:83:667:99 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:668:77:668:84 | source(...) : String | Log4jJndiInjectionTest.java:668:68:668:84 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:669:62:669:69 | source(...) : String | Log4jJndiInjectionTest.java:669:53:669:69 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:670:47:670:54 | source(...) : String | Log4jJndiInjectionTest.java:670:38:670:54 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:671:107:671:114 | source(...) : String | Log4jJndiInjectionTest.java:671:98:671:114 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:672:92:672:99 | source(...) : String | Log4jJndiInjectionTest.java:672:83:672:99 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:673:77:673:84 | source(...) : String | Log4jJndiInjectionTest.java:673:68:673:84 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:674:62:674:69 | source(...) : String | Log4jJndiInjectionTest.java:674:53:674:69 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:675:47:675:54 | source(...) : String | Log4jJndiInjectionTest.java:675:38:675:54 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:676:122:676:129 | source(...) : String | Log4jJndiInjectionTest.java:676:113:676:129 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:677:107:677:114 | source(...) : String | Log4jJndiInjectionTest.java:677:98:677:114 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:678:92:678:99 | source(...) : String | Log4jJndiInjectionTest.java:678:83:678:99 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:679:77:679:84 | source(...) : String | Log4jJndiInjectionTest.java:679:68:679:84 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:680:62:680:69 | source(...) : String | Log4jJndiInjectionTest.java:680:53:680:69 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:681:47:681:54 | source(...) : String | Log4jJndiInjectionTest.java:681:38:681:54 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:682:137:682:144 | source(...) : String | Log4jJndiInjectionTest.java:682:128:682:144 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:683:122:683:129 | source(...) : String | Log4jJndiInjectionTest.java:683:113:683:129 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:684:107:684:114 | source(...) : String | Log4jJndiInjectionTest.java:684:98:684:114 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:685:92:685:99 | source(...) : String | Log4jJndiInjectionTest.java:685:83:685:99 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:686:77:686:84 | source(...) : String | Log4jJndiInjectionTest.java:686:68:686:84 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:687:62:687:69 | source(...) : String | Log4jJndiInjectionTest.java:687:53:687:69 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:688:47:688:54 | source(...) : String | Log4jJndiInjectionTest.java:688:38:688:54 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:689:152:689:159 | source(...) : String | Log4jJndiInjectionTest.java:689:143:689:159 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:690:137:690:144 | source(...) : String | Log4jJndiInjectionTest.java:690:128:690:144 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:691:122:691:129 | source(...) : String | Log4jJndiInjectionTest.java:691:113:691:129 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:692:107:692:114 | source(...) : String | Log4jJndiInjectionTest.java:692:98:692:114 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:693:92:693:99 | source(...) : String | Log4jJndiInjectionTest.java:693:83:693:99 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:694:77:694:84 | source(...) : String | Log4jJndiInjectionTest.java:694:68:694:84 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:695:62:695:69 | source(...) : String | Log4jJndiInjectionTest.java:695:53:695:69 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:696:47:696:54 | source(...) : String | Log4jJndiInjectionTest.java:696:38:696:54 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:697:167:697:174 | source(...) : String | Log4jJndiInjectionTest.java:697:158:697:174 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:698:152:698:159 | source(...) : String | Log4jJndiInjectionTest.java:698:143:698:159 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:699:137:699:144 | source(...) : String | Log4jJndiInjectionTest.java:699:128:699:144 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:700:122:700:129 | source(...) : String | Log4jJndiInjectionTest.java:700:113:700:129 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:701:107:701:114 | source(...) : String | Log4jJndiInjectionTest.java:701:98:701:114 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:702:92:702:99 | source(...) : String | Log4jJndiInjectionTest.java:702:83:702:99 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:703:77:703:84 | source(...) : String | Log4jJndiInjectionTest.java:703:68:703:84 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:704:62:704:69 | source(...) : String | Log4jJndiInjectionTest.java:704:53:704:69 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:705:47:705:54 | source(...) : String | Log4jJndiInjectionTest.java:705:38:705:54 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:706:182:706:189 | source(...) : String | Log4jJndiInjectionTest.java:706:173:706:189 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:707:167:707:174 | source(...) : String | Log4jJndiInjectionTest.java:707:158:707:174 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:708:152:708:159 | source(...) : String | Log4jJndiInjectionTest.java:708:143:708:159 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:709:137:709:144 | source(...) : String | Log4jJndiInjectionTest.java:709:128:709:144 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:710:122:710:129 | source(...) : String | Log4jJndiInjectionTest.java:710:113:710:129 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:711:107:711:114 | source(...) : String | Log4jJndiInjectionTest.java:711:98:711:114 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:712:92:712:99 | source(...) : String | Log4jJndiInjectionTest.java:712:83:712:99 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:713:77:713:84 | source(...) : String | Log4jJndiInjectionTest.java:713:68:713:84 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:714:62:714:69 | source(...) : String | Log4jJndiInjectionTest.java:714:53:714:69 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:715:47:715:54 | source(...) : String | Log4jJndiInjectionTest.java:715:38:715:54 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:716:47:716:54 | source(...) : String | Log4jJndiInjectionTest.java:716:38:716:54 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:717:67:717:74 | source(...) : String | Log4jJndiInjectionTest.java:717:53:717:74 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:718:47:718:54 | source(...) : String | Log4jJndiInjectionTest.java:718:38:718:54 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:719:52:719:59 | source(...) : String | Log4jJndiInjectionTest.java:719:38:719:59 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:720:52:720:59 | source(...) : String | Log4jJndiInjectionTest.java:720:38:720:59 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:721:41:721:48 | source(...) : String | Log4jJndiInjectionTest.java:721:26:721:48 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:722:41:722:48 | source(...) : String | Log4jJndiInjectionTest.java:722:26:722:48 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:723:56:723:63 | source(...) : String | Log4jJndiInjectionTest.java:723:41:723:63 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:724:56:724:63 | source(...) : String | Log4jJndiInjectionTest.java:724:41:724:63 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:725:51:725:58 | source(...) : String | Log4jJndiInjectionTest.java:725:41:725:58 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:726:59:726:66 | source(...) : String | Log4jJndiInjectionTest.java:726:41:726:66 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:727:59:727:66 | source(...) : String | Log4jJndiInjectionTest.java:727:41:727:66 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:729:50:729:57 | source(...) : String | Log4jJndiInjectionTest.java:729:41:729:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:730:50:730:57 | source(...) : String | Log4jJndiInjectionTest.java:730:41:730:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:731:56:731:78 | {...} : Object[] [[]] : String | Log4jJndiInjectionTest.java:731:56:731:78 | new Object[] | provenance | | +| Log4jJndiInjectionTest.java:731:70:731:77 | source(...) : String | Log4jJndiInjectionTest.java:731:56:731:78 | {...} : Object[] [[]] : String | provenance | | +| Log4jJndiInjectionTest.java:732:65:732:72 | source(...) : String | Log4jJndiInjectionTest.java:732:56:732:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:733:50:733:57 | source(...) : String | Log4jJndiInjectionTest.java:733:41:733:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:734:80:734:87 | source(...) : String | Log4jJndiInjectionTest.java:734:71:734:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:735:65:735:72 | source(...) : String | Log4jJndiInjectionTest.java:735:56:735:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:736:50:736:57 | source(...) : String | Log4jJndiInjectionTest.java:736:41:736:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:737:95:737:102 | source(...) : String | Log4jJndiInjectionTest.java:737:86:737:102 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:738:80:738:87 | source(...) : String | Log4jJndiInjectionTest.java:738:71:738:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:739:65:739:72 | source(...) : String | Log4jJndiInjectionTest.java:739:56:739:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:740:50:740:57 | source(...) : String | Log4jJndiInjectionTest.java:740:41:740:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:741:110:741:117 | source(...) : String | Log4jJndiInjectionTest.java:741:101:741:117 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:742:95:742:102 | source(...) : String | Log4jJndiInjectionTest.java:742:86:742:102 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:743:80:743:87 | source(...) : String | Log4jJndiInjectionTest.java:743:71:743:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:744:65:744:72 | source(...) : String | Log4jJndiInjectionTest.java:744:56:744:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:745:50:745:57 | source(...) : String | Log4jJndiInjectionTest.java:745:41:745:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:746:125:746:132 | source(...) : String | Log4jJndiInjectionTest.java:746:116:746:132 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:747:110:747:117 | source(...) : String | Log4jJndiInjectionTest.java:747:101:747:117 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:748:95:748:102 | source(...) : String | Log4jJndiInjectionTest.java:748:86:748:102 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:749:80:749:87 | source(...) : String | Log4jJndiInjectionTest.java:749:71:749:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:750:65:750:72 | source(...) : String | Log4jJndiInjectionTest.java:750:56:750:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:751:50:751:57 | source(...) : String | Log4jJndiInjectionTest.java:751:41:751:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:752:140:752:147 | source(...) : String | Log4jJndiInjectionTest.java:752:131:752:147 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:753:125:753:132 | source(...) : String | Log4jJndiInjectionTest.java:753:116:753:132 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:754:110:754:117 | source(...) : String | Log4jJndiInjectionTest.java:754:101:754:117 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:755:95:755:102 | source(...) : String | Log4jJndiInjectionTest.java:755:86:755:102 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:756:80:756:87 | source(...) : String | Log4jJndiInjectionTest.java:756:71:756:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:757:65:757:72 | source(...) : String | Log4jJndiInjectionTest.java:757:56:757:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:758:50:758:57 | source(...) : String | Log4jJndiInjectionTest.java:758:41:758:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:759:155:759:162 | source(...) : String | Log4jJndiInjectionTest.java:759:146:759:162 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:760:140:760:147 | source(...) : String | Log4jJndiInjectionTest.java:760:131:760:147 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:761:125:761:132 | source(...) : String | Log4jJndiInjectionTest.java:761:116:761:132 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:762:110:762:117 | source(...) : String | Log4jJndiInjectionTest.java:762:101:762:117 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:763:95:763:102 | source(...) : String | Log4jJndiInjectionTest.java:763:86:763:102 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:764:80:764:87 | source(...) : String | Log4jJndiInjectionTest.java:764:71:764:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:765:65:765:72 | source(...) : String | Log4jJndiInjectionTest.java:765:56:765:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:766:50:766:57 | source(...) : String | Log4jJndiInjectionTest.java:766:41:766:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:767:170:767:177 | source(...) : String | Log4jJndiInjectionTest.java:767:161:767:177 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:768:155:768:162 | source(...) : String | Log4jJndiInjectionTest.java:768:146:768:162 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:769:140:769:147 | source(...) : String | Log4jJndiInjectionTest.java:769:131:769:147 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:770:125:770:132 | source(...) : String | Log4jJndiInjectionTest.java:770:116:770:132 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:771:110:771:117 | source(...) : String | Log4jJndiInjectionTest.java:771:101:771:117 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:772:95:772:102 | source(...) : String | Log4jJndiInjectionTest.java:772:86:772:102 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:773:80:773:87 | source(...) : String | Log4jJndiInjectionTest.java:773:71:773:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:774:65:774:72 | source(...) : String | Log4jJndiInjectionTest.java:774:56:774:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:775:50:775:57 | source(...) : String | Log4jJndiInjectionTest.java:775:41:775:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:776:185:776:192 | source(...) : String | Log4jJndiInjectionTest.java:776:176:776:192 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:777:170:777:177 | source(...) : String | Log4jJndiInjectionTest.java:777:161:777:177 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:778:155:778:162 | source(...) : String | Log4jJndiInjectionTest.java:778:146:778:162 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:779:140:779:147 | source(...) : String | Log4jJndiInjectionTest.java:779:131:779:147 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:780:125:780:132 | source(...) : String | Log4jJndiInjectionTest.java:780:116:780:132 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:781:110:781:117 | source(...) : String | Log4jJndiInjectionTest.java:781:101:781:117 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:782:95:782:102 | source(...) : String | Log4jJndiInjectionTest.java:782:86:782:102 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:783:80:783:87 | source(...) : String | Log4jJndiInjectionTest.java:783:71:783:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:784:65:784:72 | source(...) : String | Log4jJndiInjectionTest.java:784:56:784:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:785:50:785:57 | source(...) : String | Log4jJndiInjectionTest.java:785:41:785:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:786:50:786:57 | source(...) : String | Log4jJndiInjectionTest.java:786:41:786:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:787:70:787:77 | source(...) : String | Log4jJndiInjectionTest.java:787:56:787:77 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:788:50:788:57 | source(...) : String | Log4jJndiInjectionTest.java:788:41:788:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:789:55:789:62 | source(...) : String | Log4jJndiInjectionTest.java:789:41:789:62 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:790:55:790:62 | source(...) : String | Log4jJndiInjectionTest.java:790:41:790:62 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:791:44:791:51 | source(...) : String | Log4jJndiInjectionTest.java:791:26:791:51 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:792:44:792:51 | source(...) : String | Log4jJndiInjectionTest.java:792:26:792:51 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:793:36:793:43 | source(...) : String | Log4jJndiInjectionTest.java:793:26:793:43 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:794:36:794:43 | source(...) : String | Log4jJndiInjectionTest.java:794:26:794:43 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:797:35:797:42 | source(...) : String | Log4jJndiInjectionTest.java:797:26:797:42 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:798:35:798:42 | source(...) : String | Log4jJndiInjectionTest.java:798:26:798:42 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:799:41:799:63 | {...} : Object[] [[]] : String | Log4jJndiInjectionTest.java:799:41:799:63 | new Object[] | provenance | | +| Log4jJndiInjectionTest.java:799:55:799:62 | source(...) : String | Log4jJndiInjectionTest.java:799:41:799:63 | {...} : Object[] [[]] : String | provenance | | +| Log4jJndiInjectionTest.java:800:50:800:57 | source(...) : String | Log4jJndiInjectionTest.java:800:41:800:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:801:35:801:42 | source(...) : String | Log4jJndiInjectionTest.java:801:26:801:42 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:802:65:802:72 | source(...) : String | Log4jJndiInjectionTest.java:802:56:802:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:803:50:803:57 | source(...) : String | Log4jJndiInjectionTest.java:803:41:803:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:804:35:804:42 | source(...) : String | Log4jJndiInjectionTest.java:804:26:804:42 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:805:80:805:87 | source(...) : String | Log4jJndiInjectionTest.java:805:71:805:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:806:65:806:72 | source(...) : String | Log4jJndiInjectionTest.java:806:56:806:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:807:50:807:57 | source(...) : String | Log4jJndiInjectionTest.java:807:41:807:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:808:35:808:42 | source(...) : String | Log4jJndiInjectionTest.java:808:26:808:42 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:809:95:809:102 | source(...) : String | Log4jJndiInjectionTest.java:809:86:809:102 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:810:80:810:87 | source(...) : String | Log4jJndiInjectionTest.java:810:71:810:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:811:65:811:72 | source(...) : String | Log4jJndiInjectionTest.java:811:56:811:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:812:50:812:57 | source(...) : String | Log4jJndiInjectionTest.java:812:41:812:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:813:35:813:42 | source(...) : String | Log4jJndiInjectionTest.java:813:26:813:42 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:814:110:814:117 | source(...) : String | Log4jJndiInjectionTest.java:814:101:814:117 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:815:95:815:102 | source(...) : String | Log4jJndiInjectionTest.java:815:86:815:102 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:816:80:816:87 | source(...) : String | Log4jJndiInjectionTest.java:816:71:816:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:817:65:817:72 | source(...) : String | Log4jJndiInjectionTest.java:817:56:817:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:818:50:818:57 | source(...) : String | Log4jJndiInjectionTest.java:818:41:818:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:819:35:819:42 | source(...) : String | Log4jJndiInjectionTest.java:819:26:819:42 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:820:125:820:132 | source(...) : String | Log4jJndiInjectionTest.java:820:116:820:132 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:821:110:821:117 | source(...) : String | Log4jJndiInjectionTest.java:821:101:821:117 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:822:95:822:102 | source(...) : String | Log4jJndiInjectionTest.java:822:86:822:102 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:823:80:823:87 | source(...) : String | Log4jJndiInjectionTest.java:823:71:823:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:824:65:824:72 | source(...) : String | Log4jJndiInjectionTest.java:824:56:824:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:825:50:825:57 | source(...) : String | Log4jJndiInjectionTest.java:825:41:825:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:826:35:826:42 | source(...) : String | Log4jJndiInjectionTest.java:826:26:826:42 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:827:140:827:147 | source(...) : String | Log4jJndiInjectionTest.java:827:131:827:147 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:828:125:828:132 | source(...) : String | Log4jJndiInjectionTest.java:828:116:828:132 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:829:110:829:117 | source(...) : String | Log4jJndiInjectionTest.java:829:101:829:117 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:830:95:830:102 | source(...) : String | Log4jJndiInjectionTest.java:830:86:830:102 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:831:80:831:87 | source(...) : String | Log4jJndiInjectionTest.java:831:71:831:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:832:65:832:72 | source(...) : String | Log4jJndiInjectionTest.java:832:56:832:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:833:50:833:57 | source(...) : String | Log4jJndiInjectionTest.java:833:41:833:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:834:35:834:42 | source(...) : String | Log4jJndiInjectionTest.java:834:26:834:42 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:835:155:835:162 | source(...) : String | Log4jJndiInjectionTest.java:835:146:835:162 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:836:140:836:147 | source(...) : String | Log4jJndiInjectionTest.java:836:131:836:147 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:837:125:837:132 | source(...) : String | Log4jJndiInjectionTest.java:837:116:837:132 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:838:110:838:117 | source(...) : String | Log4jJndiInjectionTest.java:838:101:838:117 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:839:95:839:102 | source(...) : String | Log4jJndiInjectionTest.java:839:86:839:102 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:840:80:840:87 | source(...) : String | Log4jJndiInjectionTest.java:840:71:840:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:841:65:841:72 | source(...) : String | Log4jJndiInjectionTest.java:841:56:841:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:842:50:842:57 | source(...) : String | Log4jJndiInjectionTest.java:842:41:842:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:843:35:843:42 | source(...) : String | Log4jJndiInjectionTest.java:843:26:843:42 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:844:170:844:177 | source(...) : String | Log4jJndiInjectionTest.java:844:161:844:177 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:845:155:845:162 | source(...) : String | Log4jJndiInjectionTest.java:845:146:845:162 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:846:140:846:147 | source(...) : String | Log4jJndiInjectionTest.java:846:131:846:147 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:847:125:847:132 | source(...) : String | Log4jJndiInjectionTest.java:847:116:847:132 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:848:110:848:117 | source(...) : String | Log4jJndiInjectionTest.java:848:101:848:117 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:849:95:849:102 | source(...) : String | Log4jJndiInjectionTest.java:849:86:849:102 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:850:80:850:87 | source(...) : String | Log4jJndiInjectionTest.java:850:71:850:87 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:851:65:851:72 | source(...) : String | Log4jJndiInjectionTest.java:851:56:851:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:852:50:852:57 | source(...) : String | Log4jJndiInjectionTest.java:852:41:852:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:853:35:853:42 | source(...) : String | Log4jJndiInjectionTest.java:853:26:853:42 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:854:35:854:42 | source(...) : String | Log4jJndiInjectionTest.java:854:26:854:42 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:855:55:855:62 | source(...) : String | Log4jJndiInjectionTest.java:855:41:855:62 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:856:35:856:42 | source(...) : String | Log4jJndiInjectionTest.java:856:26:856:42 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:857:40:857:47 | source(...) : String | Log4jJndiInjectionTest.java:857:26:857:47 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:858:40:858:47 | source(...) : String | Log4jJndiInjectionTest.java:858:26:858:47 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:859:40:859:47 | source(...) : String | Log4jJndiInjectionTest.java:859:25:859:47 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:860:40:860:47 | source(...) : String | Log4jJndiInjectionTest.java:860:25:860:47 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:861:55:861:62 | source(...) : String | Log4jJndiInjectionTest.java:861:40:861:62 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:862:55:862:62 | source(...) : String | Log4jJndiInjectionTest.java:862:40:862:62 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:863:50:863:57 | source(...) : String | Log4jJndiInjectionTest.java:863:40:863:57 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:864:58:864:65 | source(...) : String | Log4jJndiInjectionTest.java:864:40:864:65 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:865:58:865:65 | source(...) : String | Log4jJndiInjectionTest.java:865:40:865:65 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:867:49:867:56 | source(...) : String | Log4jJndiInjectionTest.java:867:40:867:56 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:868:49:868:56 | source(...) : String | Log4jJndiInjectionTest.java:868:40:868:56 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:869:55:869:77 | {...} : Object[] [[]] : String | Log4jJndiInjectionTest.java:869:55:869:77 | new Object[] | provenance | | +| Log4jJndiInjectionTest.java:869:69:869:76 | source(...) : String | Log4jJndiInjectionTest.java:869:55:869:77 | {...} : Object[] [[]] : String | provenance | | +| Log4jJndiInjectionTest.java:870:64:870:71 | source(...) : String | Log4jJndiInjectionTest.java:870:55:870:71 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:871:49:871:56 | source(...) : String | Log4jJndiInjectionTest.java:871:40:871:56 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:872:79:872:86 | source(...) : String | Log4jJndiInjectionTest.java:872:70:872:86 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:873:64:873:71 | source(...) : String | Log4jJndiInjectionTest.java:873:55:873:71 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:874:49:874:56 | source(...) : String | Log4jJndiInjectionTest.java:874:40:874:56 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:875:94:875:101 | source(...) : String | Log4jJndiInjectionTest.java:875:85:875:101 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:876:79:876:86 | source(...) : String | Log4jJndiInjectionTest.java:876:70:876:86 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:877:64:877:71 | source(...) : String | Log4jJndiInjectionTest.java:877:55:877:71 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:878:49:878:56 | source(...) : String | Log4jJndiInjectionTest.java:878:40:878:56 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:879:109:879:116 | source(...) : String | Log4jJndiInjectionTest.java:879:100:879:116 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:880:94:880:101 | source(...) : String | Log4jJndiInjectionTest.java:880:85:880:101 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:881:79:881:86 | source(...) : String | Log4jJndiInjectionTest.java:881:70:881:86 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:882:64:882:71 | source(...) : String | Log4jJndiInjectionTest.java:882:55:882:71 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:883:49:883:56 | source(...) : String | Log4jJndiInjectionTest.java:883:40:883:56 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:884:124:884:131 | source(...) : String | Log4jJndiInjectionTest.java:884:115:884:131 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:885:109:885:116 | source(...) : String | Log4jJndiInjectionTest.java:885:100:885:116 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:886:94:886:101 | source(...) : String | Log4jJndiInjectionTest.java:886:85:886:101 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:887:79:887:86 | source(...) : String | Log4jJndiInjectionTest.java:887:70:887:86 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:888:64:888:71 | source(...) : String | Log4jJndiInjectionTest.java:888:55:888:71 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:889:49:889:56 | source(...) : String | Log4jJndiInjectionTest.java:889:40:889:56 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:890:139:890:146 | source(...) : String | Log4jJndiInjectionTest.java:890:130:890:146 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:891:124:891:131 | source(...) : String | Log4jJndiInjectionTest.java:891:115:891:131 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:892:109:892:116 | source(...) : String | Log4jJndiInjectionTest.java:892:100:892:116 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:893:94:893:101 | source(...) : String | Log4jJndiInjectionTest.java:893:85:893:101 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:894:79:894:86 | source(...) : String | Log4jJndiInjectionTest.java:894:70:894:86 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:895:64:895:71 | source(...) : String | Log4jJndiInjectionTest.java:895:55:895:71 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:896:49:896:56 | source(...) : String | Log4jJndiInjectionTest.java:896:40:896:56 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:897:154:897:161 | source(...) : String | Log4jJndiInjectionTest.java:897:145:897:161 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:898:139:898:146 | source(...) : String | Log4jJndiInjectionTest.java:898:130:898:146 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:899:124:899:131 | source(...) : String | Log4jJndiInjectionTest.java:899:115:899:131 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:900:109:900:116 | source(...) : String | Log4jJndiInjectionTest.java:900:100:900:116 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:901:94:901:101 | source(...) : String | Log4jJndiInjectionTest.java:901:85:901:101 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:902:79:902:86 | source(...) : String | Log4jJndiInjectionTest.java:902:70:902:86 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:903:64:903:71 | source(...) : String | Log4jJndiInjectionTest.java:903:55:903:71 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:904:49:904:56 | source(...) : String | Log4jJndiInjectionTest.java:904:40:904:56 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:905:169:905:176 | source(...) : String | Log4jJndiInjectionTest.java:905:160:905:176 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:906:154:906:161 | source(...) : String | Log4jJndiInjectionTest.java:906:145:906:161 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:907:139:907:146 | source(...) : String | Log4jJndiInjectionTest.java:907:130:907:146 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:908:124:908:131 | source(...) : String | Log4jJndiInjectionTest.java:908:115:908:131 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:909:109:909:116 | source(...) : String | Log4jJndiInjectionTest.java:909:100:909:116 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:910:94:910:101 | source(...) : String | Log4jJndiInjectionTest.java:910:85:910:101 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:911:79:911:86 | source(...) : String | Log4jJndiInjectionTest.java:911:70:911:86 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:912:64:912:71 | source(...) : String | Log4jJndiInjectionTest.java:912:55:912:71 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:913:49:913:56 | source(...) : String | Log4jJndiInjectionTest.java:913:40:913:56 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:914:184:914:191 | source(...) : String | Log4jJndiInjectionTest.java:914:175:914:191 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:915:169:915:176 | source(...) : String | Log4jJndiInjectionTest.java:915:160:915:176 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:916:154:916:161 | source(...) : String | Log4jJndiInjectionTest.java:916:145:916:161 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:917:139:917:146 | source(...) : String | Log4jJndiInjectionTest.java:917:130:917:146 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:918:124:918:131 | source(...) : String | Log4jJndiInjectionTest.java:918:115:918:131 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:919:109:919:116 | source(...) : String | Log4jJndiInjectionTest.java:919:100:919:116 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:920:94:920:101 | source(...) : String | Log4jJndiInjectionTest.java:920:85:920:101 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:921:79:921:86 | source(...) : String | Log4jJndiInjectionTest.java:921:70:921:86 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:922:64:922:71 | source(...) : String | Log4jJndiInjectionTest.java:922:55:922:71 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:923:49:923:56 | source(...) : String | Log4jJndiInjectionTest.java:923:40:923:56 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:924:49:924:56 | source(...) : String | Log4jJndiInjectionTest.java:924:40:924:56 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:925:69:925:76 | source(...) : String | Log4jJndiInjectionTest.java:925:55:925:76 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:926:49:926:56 | source(...) : String | Log4jJndiInjectionTest.java:926:40:926:56 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:927:54:927:61 | source(...) : String | Log4jJndiInjectionTest.java:927:40:927:61 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:928:54:928:61 | source(...) : String | Log4jJndiInjectionTest.java:928:40:928:61 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:929:43:929:50 | source(...) : String | Log4jJndiInjectionTest.java:929:25:929:50 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:930:43:930:50 | source(...) : String | Log4jJndiInjectionTest.java:930:25:930:50 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:931:35:931:42 | source(...) : String | Log4jJndiInjectionTest.java:931:25:931:42 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:932:35:932:42 | source(...) : String | Log4jJndiInjectionTest.java:932:25:932:42 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:935:34:935:41 | source(...) : String | Log4jJndiInjectionTest.java:935:25:935:41 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:936:34:936:41 | source(...) : String | Log4jJndiInjectionTest.java:936:25:936:41 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:937:40:937:62 | {...} : Object[] [[]] : String | Log4jJndiInjectionTest.java:937:40:937:62 | new Object[] | provenance | | +| Log4jJndiInjectionTest.java:937:54:937:61 | source(...) : String | Log4jJndiInjectionTest.java:937:40:937:62 | {...} : Object[] [[]] : String | provenance | | +| Log4jJndiInjectionTest.java:938:49:938:56 | source(...) : String | Log4jJndiInjectionTest.java:938:40:938:56 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:939:34:939:41 | source(...) : String | Log4jJndiInjectionTest.java:939:25:939:41 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:940:64:940:71 | source(...) : String | Log4jJndiInjectionTest.java:940:55:940:71 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:941:49:941:56 | source(...) : String | Log4jJndiInjectionTest.java:941:40:941:56 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:942:34:942:41 | source(...) : String | Log4jJndiInjectionTest.java:942:25:942:41 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:943:79:943:86 | source(...) : String | Log4jJndiInjectionTest.java:943:70:943:86 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:944:64:944:71 | source(...) : String | Log4jJndiInjectionTest.java:944:55:944:71 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:945:49:945:56 | source(...) : String | Log4jJndiInjectionTest.java:945:40:945:56 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:946:34:946:41 | source(...) : String | Log4jJndiInjectionTest.java:946:25:946:41 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:947:94:947:101 | source(...) : String | Log4jJndiInjectionTest.java:947:85:947:101 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:948:79:948:86 | source(...) : String | Log4jJndiInjectionTest.java:948:70:948:86 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:949:64:949:71 | source(...) : String | Log4jJndiInjectionTest.java:949:55:949:71 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:950:49:950:56 | source(...) : String | Log4jJndiInjectionTest.java:950:40:950:56 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:951:34:951:41 | source(...) : String | Log4jJndiInjectionTest.java:951:25:951:41 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:952:109:952:116 | source(...) : String | Log4jJndiInjectionTest.java:952:100:952:116 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:953:94:953:101 | source(...) : String | Log4jJndiInjectionTest.java:953:85:953:101 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:954:79:954:86 | source(...) : String | Log4jJndiInjectionTest.java:954:70:954:86 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:955:64:955:71 | source(...) : String | Log4jJndiInjectionTest.java:955:55:955:71 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:956:49:956:56 | source(...) : String | Log4jJndiInjectionTest.java:956:40:956:56 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:957:34:957:41 | source(...) : String | Log4jJndiInjectionTest.java:957:25:957:41 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:958:124:958:131 | source(...) : String | Log4jJndiInjectionTest.java:958:115:958:131 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:959:109:959:116 | source(...) : String | Log4jJndiInjectionTest.java:959:100:959:116 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:960:94:960:101 | source(...) : String | Log4jJndiInjectionTest.java:960:85:960:101 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:961:79:961:86 | source(...) : String | Log4jJndiInjectionTest.java:961:70:961:86 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:962:64:962:71 | source(...) : String | Log4jJndiInjectionTest.java:962:55:962:71 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:963:49:963:56 | source(...) : String | Log4jJndiInjectionTest.java:963:40:963:56 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:964:34:964:41 | source(...) : String | Log4jJndiInjectionTest.java:964:25:964:41 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:965:139:965:146 | source(...) : String | Log4jJndiInjectionTest.java:965:130:965:146 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:966:124:966:131 | source(...) : String | Log4jJndiInjectionTest.java:966:115:966:131 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:967:109:967:116 | source(...) : String | Log4jJndiInjectionTest.java:967:100:967:116 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:968:94:968:101 | source(...) : String | Log4jJndiInjectionTest.java:968:85:968:101 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:969:79:969:86 | source(...) : String | Log4jJndiInjectionTest.java:969:70:969:86 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:970:64:970:71 | source(...) : String | Log4jJndiInjectionTest.java:970:55:970:71 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:971:49:971:56 | source(...) : String | Log4jJndiInjectionTest.java:971:40:971:56 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:972:34:972:41 | source(...) : String | Log4jJndiInjectionTest.java:972:25:972:41 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:973:154:973:161 | source(...) : String | Log4jJndiInjectionTest.java:973:145:973:161 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:974:139:974:146 | source(...) : String | Log4jJndiInjectionTest.java:974:130:974:146 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:975:124:975:131 | source(...) : String | Log4jJndiInjectionTest.java:975:115:975:131 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:976:109:976:116 | source(...) : String | Log4jJndiInjectionTest.java:976:100:976:116 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:977:94:977:101 | source(...) : String | Log4jJndiInjectionTest.java:977:85:977:101 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:978:79:978:86 | source(...) : String | Log4jJndiInjectionTest.java:978:70:978:86 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:979:64:979:71 | source(...) : String | Log4jJndiInjectionTest.java:979:55:979:71 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:980:49:980:56 | source(...) : String | Log4jJndiInjectionTest.java:980:40:980:56 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:981:34:981:41 | source(...) : String | Log4jJndiInjectionTest.java:981:25:981:41 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:982:169:982:176 | source(...) : String | Log4jJndiInjectionTest.java:982:160:982:176 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:983:154:983:161 | source(...) : String | Log4jJndiInjectionTest.java:983:145:983:161 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:984:139:984:146 | source(...) : String | Log4jJndiInjectionTest.java:984:130:984:146 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:985:124:985:131 | source(...) : String | Log4jJndiInjectionTest.java:985:115:985:131 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:986:109:986:116 | source(...) : String | Log4jJndiInjectionTest.java:986:100:986:116 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:987:94:987:101 | source(...) : String | Log4jJndiInjectionTest.java:987:85:987:101 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:988:79:988:86 | source(...) : String | Log4jJndiInjectionTest.java:988:70:988:86 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:989:64:989:71 | source(...) : String | Log4jJndiInjectionTest.java:989:55:989:71 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:990:49:990:56 | source(...) : String | Log4jJndiInjectionTest.java:990:40:990:56 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:991:34:991:41 | source(...) : String | Log4jJndiInjectionTest.java:991:25:991:41 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:992:34:992:41 | source(...) : String | Log4jJndiInjectionTest.java:992:25:992:41 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:993:54:993:61 | source(...) : String | Log4jJndiInjectionTest.java:993:40:993:61 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:994:34:994:41 | source(...) : String | Log4jJndiInjectionTest.java:994:25:994:41 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:995:39:995:46 | source(...) : String | Log4jJndiInjectionTest.java:995:25:995:46 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:996:39:996:46 | source(...) : String | Log4jJndiInjectionTest.java:996:25:996:46 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:998:65:998:72 | source(...) : String | Log4jJndiInjectionTest.java:998:55:998:72 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:999:48:999:55 | source(...) : String | Log4jJndiInjectionTest.java:999:39:999:55 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1000:45:1000:67 | {...} : Object[] [[]] : String | Log4jJndiInjectionTest.java:1000:45:1000:67 | new Object[] | provenance | | +| Log4jJndiInjectionTest.java:1000:59:1000:66 | source(...) : String | Log4jJndiInjectionTest.java:1000:45:1000:67 | {...} : Object[] [[]] : String | provenance | | +| Log4jJndiInjectionTest.java:1001:42:1001:49 | source(...) : String | Log4jJndiInjectionTest.java:1001:33:1001:49 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1002:39:1002:61 | {...} : Object[] [[]] : String | Log4jJndiInjectionTest.java:1002:39:1002:61 | new Object[] | provenance | | +| Log4jJndiInjectionTest.java:1002:53:1002:60 | source(...) : String | Log4jJndiInjectionTest.java:1002:39:1002:61 | {...} : Object[] [[]] : String | provenance | | +| Log4jJndiInjectionTest.java:1020:40:1020:47 | source(...) : String | Log4jJndiInjectionTest.java:1020:25:1020:47 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1021:35:1021:42 | source(...) : String | Log4jJndiInjectionTest.java:1021:25:1021:42 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1023:34:1023:41 | source(...) : String | Log4jJndiInjectionTest.java:1023:25:1023:41 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1024:34:1024:41 | source(...) : String | Log4jJndiInjectionTest.java:1024:25:1024:41 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1025:40:1025:62 | {...} : Object[] [[]] : String | Log4jJndiInjectionTest.java:1025:40:1025:62 | new Object[] | provenance | | +| Log4jJndiInjectionTest.java:1025:54:1025:61 | source(...) : String | Log4jJndiInjectionTest.java:1025:40:1025:62 | {...} : Object[] [[]] : String | provenance | | +| Log4jJndiInjectionTest.java:1028:49:1028:56 | source(...) : String | Log4jJndiInjectionTest.java:1028:40:1028:56 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1029:34:1029:41 | source(...) : String | Log4jJndiInjectionTest.java:1029:25:1029:41 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1030:64:1030:71 | source(...) : String | Log4jJndiInjectionTest.java:1030:55:1030:71 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1031:49:1031:56 | source(...) : String | Log4jJndiInjectionTest.java:1031:40:1031:56 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1032:34:1032:41 | source(...) : String | Log4jJndiInjectionTest.java:1032:25:1032:41 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1033:79:1033:86 | source(...) : String | Log4jJndiInjectionTest.java:1033:70:1033:86 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1034:64:1034:71 | source(...) : String | Log4jJndiInjectionTest.java:1034:55:1034:71 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1035:49:1035:56 | source(...) : String | Log4jJndiInjectionTest.java:1035:40:1035:56 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1036:34:1036:41 | source(...) : String | Log4jJndiInjectionTest.java:1036:25:1036:41 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1037:94:1037:101 | source(...) : String | Log4jJndiInjectionTest.java:1037:85:1037:101 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1038:79:1038:86 | source(...) : String | Log4jJndiInjectionTest.java:1038:70:1038:86 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1039:64:1039:71 | source(...) : String | Log4jJndiInjectionTest.java:1039:55:1039:71 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1040:49:1040:56 | source(...) : String | Log4jJndiInjectionTest.java:1040:40:1040:56 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1041:34:1041:41 | source(...) : String | Log4jJndiInjectionTest.java:1041:25:1041:41 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1042:109:1042:116 | source(...) : String | Log4jJndiInjectionTest.java:1042:100:1042:116 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1043:94:1043:101 | source(...) : String | Log4jJndiInjectionTest.java:1043:85:1043:101 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1044:79:1044:86 | source(...) : String | Log4jJndiInjectionTest.java:1044:70:1044:86 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1045:64:1045:71 | source(...) : String | Log4jJndiInjectionTest.java:1045:55:1045:71 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1046:49:1046:56 | source(...) : String | Log4jJndiInjectionTest.java:1046:40:1046:56 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1047:34:1047:41 | source(...) : String | Log4jJndiInjectionTest.java:1047:25:1047:41 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1048:124:1048:131 | source(...) : String | Log4jJndiInjectionTest.java:1048:115:1048:131 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1049:109:1049:116 | source(...) : String | Log4jJndiInjectionTest.java:1049:100:1049:116 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1050:94:1050:101 | source(...) : String | Log4jJndiInjectionTest.java:1050:85:1050:101 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1051:79:1051:86 | source(...) : String | Log4jJndiInjectionTest.java:1051:70:1051:86 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1052:64:1052:71 | source(...) : String | Log4jJndiInjectionTest.java:1052:55:1052:71 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1053:49:1053:56 | source(...) : String | Log4jJndiInjectionTest.java:1053:40:1053:56 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1054:34:1054:41 | source(...) : String | Log4jJndiInjectionTest.java:1054:25:1054:41 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1055:139:1055:146 | source(...) : String | Log4jJndiInjectionTest.java:1055:130:1055:146 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1056:124:1056:131 | source(...) : String | Log4jJndiInjectionTest.java:1056:115:1056:131 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1057:109:1057:116 | source(...) : String | Log4jJndiInjectionTest.java:1057:100:1057:116 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1058:94:1058:101 | source(...) : String | Log4jJndiInjectionTest.java:1058:85:1058:101 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1059:79:1059:86 | source(...) : String | Log4jJndiInjectionTest.java:1059:70:1059:86 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1060:64:1060:71 | source(...) : String | Log4jJndiInjectionTest.java:1060:55:1060:71 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1061:49:1061:56 | source(...) : String | Log4jJndiInjectionTest.java:1061:40:1061:56 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1062:34:1062:41 | source(...) : String | Log4jJndiInjectionTest.java:1062:25:1062:41 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1063:154:1063:161 | source(...) : String | Log4jJndiInjectionTest.java:1063:145:1063:161 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1064:139:1064:146 | source(...) : String | Log4jJndiInjectionTest.java:1064:130:1064:146 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1065:124:1065:131 | source(...) : String | Log4jJndiInjectionTest.java:1065:115:1065:131 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1066:109:1066:116 | source(...) : String | Log4jJndiInjectionTest.java:1066:100:1066:116 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1067:94:1067:101 | source(...) : String | Log4jJndiInjectionTest.java:1067:85:1067:101 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1068:79:1068:86 | source(...) : String | Log4jJndiInjectionTest.java:1068:70:1068:86 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1069:64:1069:71 | source(...) : String | Log4jJndiInjectionTest.java:1069:55:1069:71 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1070:49:1070:56 | source(...) : String | Log4jJndiInjectionTest.java:1070:40:1070:56 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1071:34:1071:41 | source(...) : String | Log4jJndiInjectionTest.java:1071:25:1071:41 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1072:169:1072:176 | source(...) : String | Log4jJndiInjectionTest.java:1072:160:1072:176 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1073:154:1073:161 | source(...) : String | Log4jJndiInjectionTest.java:1073:145:1073:161 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1074:139:1074:146 | source(...) : String | Log4jJndiInjectionTest.java:1074:130:1074:146 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1075:124:1075:131 | source(...) : String | Log4jJndiInjectionTest.java:1075:115:1075:131 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1076:109:1076:116 | source(...) : String | Log4jJndiInjectionTest.java:1076:100:1076:116 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1077:94:1077:101 | source(...) : String | Log4jJndiInjectionTest.java:1077:85:1077:101 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1078:79:1078:86 | source(...) : String | Log4jJndiInjectionTest.java:1078:70:1078:86 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1079:64:1079:71 | source(...) : String | Log4jJndiInjectionTest.java:1079:55:1079:71 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1080:49:1080:56 | source(...) : String | Log4jJndiInjectionTest.java:1080:40:1080:56 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1081:34:1081:41 | source(...) : String | Log4jJndiInjectionTest.java:1081:25:1081:41 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1083:34:1083:41 | source(...) : String | Log4jJndiInjectionTest.java:1083:25:1083:41 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1084:54:1084:61 | source(...) : String | Log4jJndiInjectionTest.java:1084:40:1084:61 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1085:39:1085:46 | source(...) : String | Log4jJndiInjectionTest.java:1085:25:1085:46 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1088:47:1088:54 | source(...) : String | Log4jJndiInjectionTest.java:1088:38:1088:54 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1089:53:1089:60 | source(...) : String | Log4jJndiInjectionTest.java:1089:44:1089:60 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1091:13:1091:15 | map [post update] : HashMap [] : String | Log4jJndiInjectionTest.java:1092:34:1092:36 | map | provenance | | +| Log4jJndiInjectionTest.java:1091:28:1091:44 | (...)... : String | Log4jJndiInjectionTest.java:1091:13:1091:15 | map [post update] : HashMap [] : String | provenance | | +| Log4jJndiInjectionTest.java:1091:37:1091:44 | source(...) : String | Log4jJndiInjectionTest.java:1091:28:1091:44 | (...)... : String | provenance | | +| Log4jJndiInjectionTest.java:1095:31:1095:88 | with(...) : StringMapMessage | Log4jJndiInjectionTest.java:1096:26:1096:29 | mmsg | provenance | | +| Log4jJndiInjectionTest.java:1095:71:1095:87 | (...)... : String | Log4jJndiInjectionTest.java:1095:31:1095:88 | with(...) : StringMapMessage | provenance | | +| Log4jJndiInjectionTest.java:1095:80:1095:87 | source(...) : String | Log4jJndiInjectionTest.java:1095:71:1095:87 | (...)... : String | provenance | | +| Log4jJndiInjectionTest.java:1100:13:1100:16 | mmsg [post update] : StringMapMessage | Log4jJndiInjectionTest.java:1101:26:1101:29 | mmsg | provenance | | +| Log4jJndiInjectionTest.java:1100:35:1100:51 | (...)... : String | Log4jJndiInjectionTest.java:1100:13:1100:16 | mmsg [post update] : StringMapMessage | provenance | | +| Log4jJndiInjectionTest.java:1100:44:1100:51 | source(...) : String | Log4jJndiInjectionTest.java:1100:35:1100:51 | (...)... : String | provenance | | +| Log4jJndiInjectionTest.java:1105:13:1105:16 | mmsg [post update] : StringMapMessage | Log4jJndiInjectionTest.java:1106:26:1106:29 | mmsg | provenance | | +| Log4jJndiInjectionTest.java:1105:34:1105:50 | (...)... : String | Log4jJndiInjectionTest.java:1105:13:1105:16 | mmsg [post update] : StringMapMessage | provenance | | +| Log4jJndiInjectionTest.java:1105:43:1105:50 | source(...) : String | Log4jJndiInjectionTest.java:1105:34:1105:50 | (...)... : String | provenance | | +| Log4jJndiInjectionTest.java:1111:13:1111:15 | map [post update] : HashMap [] : String | Log4jJndiInjectionTest.java:1112:25:1112:27 | map : HashMap [] : String | provenance | | +| Log4jJndiInjectionTest.java:1111:33:1111:49 | (...)... : String | Log4jJndiInjectionTest.java:1111:13:1111:15 | map [post update] : HashMap [] : String | provenance | | +| Log4jJndiInjectionTest.java:1111:42:1111:49 | source(...) : String | Log4jJndiInjectionTest.java:1111:33:1111:49 | (...)... : String | provenance | | +| Log4jJndiInjectionTest.java:1112:13:1112:16 | mmsg [post update] : StringMapMessage | Log4jJndiInjectionTest.java:1113:26:1113:29 | mmsg | provenance | | +| Log4jJndiInjectionTest.java:1112:25:1112:27 | map : HashMap [] : String | Log4jJndiInjectionTest.java:1112:13:1112:16 | mmsg [post update] : StringMapMessage | provenance | | +| Log4jJndiInjectionTest.java:1116:61:1116:68 | source(...) : String | Log4jJndiInjectionTest.java:1116:52:1116:68 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1117:81:1117:88 | source(...) : String | Log4jJndiInjectionTest.java:1117:72:1117:88 | (...)... | provenance | | +| Log4jJndiInjectionTest.java:1119:13:1119:15 | map [post update] : HashMap [] : String | Log4jJndiInjectionTest.java:1120:43:1120:45 | map | provenance | | +| Log4jJndiInjectionTest.java:1119:13:1119:15 | map [post update] : HashMap [] : String | Log4jJndiInjectionTest.java:1121:63:1121:65 | map | provenance | | +| Log4jJndiInjectionTest.java:1119:33:1119:49 | (...)... : String | Log4jJndiInjectionTest.java:1119:13:1119:15 | map [post update] : HashMap [] : String | provenance | | +| Log4jJndiInjectionTest.java:1119:42:1119:49 | source(...) : String | Log4jJndiInjectionTest.java:1119:33:1119:49 | (...)... : String | provenance | | nodes | Log4jJndiInjectionTest.java:24:16:24:45 | getParameter(...) : String | semmle.label | getParameter(...) : String | | Log4jJndiInjectionTest.java:31:26:31:48 | (...)... | semmle.label | (...)... | diff --git a/java/ql/test/experimental/query-tests/security/CWE-073/FilePathInjection.expected b/java/ql/test/experimental/query-tests/security/CWE-073/FilePathInjection.expected index c7a79c6328d6..da71e407707e 100644 --- a/java/ql/test/experimental/query-tests/security/CWE-073/FilePathInjection.expected +++ b/java/ql/test/experimental/query-tests/security/CWE-073/FilePathInjection.expected @@ -1,13 +1,13 @@ edges -| FilePathInjection.java:21:21:21:34 | getPara(...) : String | FilePathInjection.java:26:47:26:59 | finalFilePath | -| FilePathInjection.java:64:21:64:34 | getPara(...) : String | FilePathInjection.java:72:47:72:59 | finalFilePath | -| FilePathInjection.java:87:21:87:34 | getPara(...) : String | FilePathInjection.java:95:47:95:59 | finalFilePath | -| FilePathInjection.java:177:50:177:58 | file : File | FilePathInjection.java:182:30:182:33 | file | -| FilePathInjection.java:205:17:205:44 | getParameter(...) : String | FilePathInjection.java:209:24:209:31 | filePath : String | -| FilePathInjection.java:209:15:209:32 | new File(...) : File | FilePathInjection.java:210:23:210:26 | file | -| FilePathInjection.java:209:15:209:32 | new File(...) : File | FilePathInjection.java:217:19:217:22 | file : File | -| FilePathInjection.java:209:24:209:31 | filePath : String | FilePathInjection.java:209:15:209:32 | new File(...) : File | -| FilePathInjection.java:217:19:217:22 | file : File | FilePathInjection.java:177:50:177:58 | file : File | +| FilePathInjection.java:21:21:21:34 | getPara(...) : String | FilePathInjection.java:26:47:26:59 | finalFilePath | provenance | | +| FilePathInjection.java:64:21:64:34 | getPara(...) : String | FilePathInjection.java:72:47:72:59 | finalFilePath | provenance | | +| FilePathInjection.java:87:21:87:34 | getPara(...) : String | FilePathInjection.java:95:47:95:59 | finalFilePath | provenance | | +| FilePathInjection.java:177:50:177:58 | file : File | FilePathInjection.java:182:30:182:33 | file | provenance | | +| FilePathInjection.java:205:17:205:44 | getParameter(...) : String | FilePathInjection.java:209:24:209:31 | filePath : String | provenance | | +| FilePathInjection.java:209:15:209:32 | new File(...) : File | FilePathInjection.java:210:23:210:26 | file | provenance | | +| FilePathInjection.java:209:15:209:32 | new File(...) : File | FilePathInjection.java:217:19:217:22 | file : File | provenance | | +| FilePathInjection.java:209:24:209:31 | filePath : String | FilePathInjection.java:209:15:209:32 | new File(...) : File | provenance | | +| FilePathInjection.java:217:19:217:22 | file : File | FilePathInjection.java:177:50:177:58 | file : File | provenance | | nodes | FilePathInjection.java:21:21:21:34 | getPara(...) : String | semmle.label | getPara(...) : String | | FilePathInjection.java:26:47:26:59 | finalFilePath | semmle.label | finalFilePath | diff --git a/java/ql/test/experimental/query-tests/security/CWE-078/CommandInjectionRuntimeExecLocal.expected b/java/ql/test/experimental/query-tests/security/CWE-078/CommandInjectionRuntimeExecLocal.expected index 0baff0f6f218..926675f900a7 100644 --- a/java/ql/test/experimental/query-tests/security/CWE-078/CommandInjectionRuntimeExecLocal.expected +++ b/java/ql/test/experimental/query-tests/security/CWE-078/CommandInjectionRuntimeExecLocal.expected @@ -1,20 +1,20 @@ edges -| RuntimeExecTest.java:17:25:17:51 | getenv(...) : String | RuntimeExecTest.java:22:67:22:72 | script : String | -| RuntimeExecTest.java:17:25:17:51 | getenv(...) : String | RuntimeExecTest.java:25:66:25:71 | script : String | -| RuntimeExecTest.java:17:25:17:51 | getenv(...) : String | RuntimeExecTest.java:31:36:31:41 | script : String | -| RuntimeExecTest.java:17:25:17:51 | getenv(...) : String | RuntimeExecTest.java:38:52:38:57 | script : String | -| RuntimeExecTest.java:22:43:22:73 | {...} : String[] [[]] : String | RuntimeExecTest.java:22:43:22:73 | new String[] | -| RuntimeExecTest.java:22:67:22:72 | script : String | RuntimeExecTest.java:22:43:22:73 | {...} : String[] [[]] : String | -| RuntimeExecTest.java:25:42:25:72 | {...} : String[] [[]] : String | RuntimeExecTest.java:26:43:26:55 | commandArray1 | -| RuntimeExecTest.java:25:66:25:71 | script : String | RuntimeExecTest.java:25:42:25:72 | {...} : String[] [[]] : String | -| RuntimeExecTest.java:31:17:31:29 | commandArray2 [post update] : String[] [[]] : String | RuntimeExecTest.java:32:43:32:55 | commandArray2 | -| RuntimeExecTest.java:31:36:31:41 | script : String | RuntimeExecTest.java:31:17:31:29 | commandArray2 [post update] : String[] [[]] : String | -| RuntimeExecTest.java:36:21:39:21 | concat(...) : Stream [] : String | RuntimeExecTest.java:36:21:39:44 | toArray(...) : String[] [[]] : String | -| RuntimeExecTest.java:36:21:39:44 | toArray(...) : String[] [[]] : String | RuntimeExecTest.java:36:21:39:44 | toArray(...) | -| RuntimeExecTest.java:38:25:38:59 | stream(...) : Stream [] : String | RuntimeExecTest.java:36:21:39:21 | concat(...) : Stream [] : String | -| RuntimeExecTest.java:38:39:38:58 | new String[] : String[] [[]] : String | RuntimeExecTest.java:38:25:38:59 | stream(...) : Stream [] : String | -| RuntimeExecTest.java:38:39:38:58 | {...} : String[] [[]] : String | RuntimeExecTest.java:38:39:38:58 | new String[] : String[] [[]] : String | -| RuntimeExecTest.java:38:52:38:57 | script : String | RuntimeExecTest.java:38:39:38:58 | {...} : String[] [[]] : String | +| RuntimeExecTest.java:17:25:17:51 | getenv(...) : String | RuntimeExecTest.java:22:67:22:72 | script : String | provenance | | +| RuntimeExecTest.java:17:25:17:51 | getenv(...) : String | RuntimeExecTest.java:25:66:25:71 | script : String | provenance | | +| RuntimeExecTest.java:17:25:17:51 | getenv(...) : String | RuntimeExecTest.java:31:36:31:41 | script : String | provenance | | +| RuntimeExecTest.java:17:25:17:51 | getenv(...) : String | RuntimeExecTest.java:38:52:38:57 | script : String | provenance | | +| RuntimeExecTest.java:22:43:22:73 | {...} : String[] [[]] : String | RuntimeExecTest.java:22:43:22:73 | new String[] | provenance | | +| RuntimeExecTest.java:22:67:22:72 | script : String | RuntimeExecTest.java:22:43:22:73 | {...} : String[] [[]] : String | provenance | | +| RuntimeExecTest.java:25:42:25:72 | {...} : String[] [[]] : String | RuntimeExecTest.java:26:43:26:55 | commandArray1 | provenance | | +| RuntimeExecTest.java:25:66:25:71 | script : String | RuntimeExecTest.java:25:42:25:72 | {...} : String[] [[]] : String | provenance | | +| RuntimeExecTest.java:31:17:31:29 | commandArray2 [post update] : String[] [[]] : String | RuntimeExecTest.java:32:43:32:55 | commandArray2 | provenance | | +| RuntimeExecTest.java:31:36:31:41 | script : String | RuntimeExecTest.java:31:17:31:29 | commandArray2 [post update] : String[] [[]] : String | provenance | | +| RuntimeExecTest.java:36:21:39:21 | concat(...) : Stream [] : String | RuntimeExecTest.java:36:21:39:44 | toArray(...) : String[] [[]] : String | provenance | | +| RuntimeExecTest.java:36:21:39:44 | toArray(...) : String[] [[]] : String | RuntimeExecTest.java:36:21:39:44 | toArray(...) | provenance | | +| RuntimeExecTest.java:38:25:38:59 | stream(...) : Stream [] : String | RuntimeExecTest.java:36:21:39:21 | concat(...) : Stream [] : String | provenance | | +| RuntimeExecTest.java:38:39:38:58 | new String[] : String[] [[]] : String | RuntimeExecTest.java:38:25:38:59 | stream(...) : Stream [] : String | provenance | | +| RuntimeExecTest.java:38:39:38:58 | {...} : String[] [[]] : String | RuntimeExecTest.java:38:39:38:58 | new String[] : String[] [[]] : String | provenance | | +| RuntimeExecTest.java:38:52:38:57 | script : String | RuntimeExecTest.java:38:39:38:58 | {...} : String[] [[]] : String | provenance | | nodes | RuntimeExecTest.java:17:25:17:51 | getenv(...) : String | semmle.label | getenv(...) : String | | RuntimeExecTest.java:22:43:22:73 | new String[] | semmle.label | new String[] | diff --git a/java/ql/test/experimental/query-tests/security/CWE-078/ExecTainted.expected b/java/ql/test/experimental/query-tests/security/CWE-078/ExecTainted.expected index befb327fc339..d27556a5ccb8 100644 --- a/java/ql/test/experimental/query-tests/security/CWE-078/ExecTainted.expected +++ b/java/ql/test/experimental/query-tests/security/CWE-078/ExecTainted.expected @@ -1,6 +1,6 @@ edges -| JSchOSInjectionTest.java:14:30:14:60 | getParameter(...) : String | JSchOSInjectionTest.java:27:52:27:68 | ... + ... | -| JSchOSInjectionTest.java:40:30:40:60 | getParameter(...) : String | JSchOSInjectionTest.java:53:36:53:52 | ... + ... | +| JSchOSInjectionTest.java:14:30:14:60 | getParameter(...) : String | JSchOSInjectionTest.java:27:52:27:68 | ... + ... | provenance | | +| JSchOSInjectionTest.java:40:30:40:60 | getParameter(...) : String | JSchOSInjectionTest.java:53:36:53:52 | ... + ... | provenance | | nodes | JSchOSInjectionTest.java:14:30:14:60 | getParameter(...) : String | semmle.label | getParameter(...) : String | | JSchOSInjectionTest.java:27:52:27:68 | ... + ... | semmle.label | ... + ... | diff --git a/java/ql/test/experimental/query-tests/security/CWE-089/src/main/MyBatisAnnotationSqlInjection.expected b/java/ql/test/experimental/query-tests/security/CWE-089/src/main/MyBatisAnnotationSqlInjection.expected index 1c5ba31a97f6..9f043f8db51d 100644 --- a/java/ql/test/experimental/query-tests/security/CWE-089/src/main/MyBatisAnnotationSqlInjection.expected +++ b/java/ql/test/experimental/query-tests/security/CWE-089/src/main/MyBatisAnnotationSqlInjection.expected @@ -1,21 +1,21 @@ edges -| MybatisSqlInjection.java:62:19:62:43 | name : String | MybatisSqlInjection.java:63:35:63:38 | name : String | -| MybatisSqlInjection.java:63:35:63:38 | name : String | MybatisSqlInjectionService.java:48:19:48:29 | name : String | -| MybatisSqlInjection.java:67:46:67:70 | name : String | MybatisSqlInjection.java:68:40:68:43 | name : String | -| MybatisSqlInjection.java:68:40:68:43 | name : String | MybatisSqlInjectionService.java:54:32:54:42 | name : String | -| MybatisSqlInjection.java:99:20:99:44 | name : String | MybatisSqlInjection.java:100:36:100:39 | name : String | -| MybatisSqlInjection.java:100:36:100:39 | name : String | MybatisSqlInjectionService.java:80:20:80:30 | name : String | -| MybatisSqlInjection.java:104:20:104:43 | age : String | MybatisSqlInjection.java:105:36:105:38 | age : String | -| MybatisSqlInjection.java:105:36:105:38 | age : String | MybatisSqlInjectionService.java:84:20:84:29 | age : String | -| MybatisSqlInjection.java:109:46:109:70 | name : String | MybatisSqlInjection.java:110:40:110:43 | name : String | -| MybatisSqlInjection.java:110:40:110:43 | name : String | MybatisSqlInjectionService.java:88:32:88:42 | name : String | -| MybatisSqlInjectionService.java:48:19:48:29 | name : String | MybatisSqlInjectionService.java:50:23:50:26 | name : String | -| MybatisSqlInjectionService.java:50:3:50:9 | hashMap [post update] : HashMap [] : String | MybatisSqlInjectionService.java:51:27:51:33 | hashMap | -| MybatisSqlInjectionService.java:50:23:50:26 | name : String | MybatisSqlInjectionService.java:50:3:50:9 | hashMap [post update] : HashMap [] : String | -| MybatisSqlInjectionService.java:54:32:54:42 | name : String | MybatisSqlInjectionService.java:55:32:55:35 | name | -| MybatisSqlInjectionService.java:80:20:80:30 | name : String | MybatisSqlInjectionService.java:81:28:81:31 | name | -| MybatisSqlInjectionService.java:84:20:84:29 | age : String | MybatisSqlInjectionService.java:85:28:85:30 | age | -| MybatisSqlInjectionService.java:88:32:88:42 | name : String | MybatisSqlInjectionService.java:89:32:89:35 | name | +| MybatisSqlInjection.java:62:19:62:43 | name : String | MybatisSqlInjection.java:63:35:63:38 | name : String | provenance | | +| MybatisSqlInjection.java:63:35:63:38 | name : String | MybatisSqlInjectionService.java:48:19:48:29 | name : String | provenance | | +| MybatisSqlInjection.java:67:46:67:70 | name : String | MybatisSqlInjection.java:68:40:68:43 | name : String | provenance | | +| MybatisSqlInjection.java:68:40:68:43 | name : String | MybatisSqlInjectionService.java:54:32:54:42 | name : String | provenance | | +| MybatisSqlInjection.java:99:20:99:44 | name : String | MybatisSqlInjection.java:100:36:100:39 | name : String | provenance | | +| MybatisSqlInjection.java:100:36:100:39 | name : String | MybatisSqlInjectionService.java:80:20:80:30 | name : String | provenance | | +| MybatisSqlInjection.java:104:20:104:43 | age : String | MybatisSqlInjection.java:105:36:105:38 | age : String | provenance | | +| MybatisSqlInjection.java:105:36:105:38 | age : String | MybatisSqlInjectionService.java:84:20:84:29 | age : String | provenance | | +| MybatisSqlInjection.java:109:46:109:70 | name : String | MybatisSqlInjection.java:110:40:110:43 | name : String | provenance | | +| MybatisSqlInjection.java:110:40:110:43 | name : String | MybatisSqlInjectionService.java:88:32:88:42 | name : String | provenance | | +| MybatisSqlInjectionService.java:48:19:48:29 | name : String | MybatisSqlInjectionService.java:50:23:50:26 | name : String | provenance | | +| MybatisSqlInjectionService.java:50:3:50:9 | hashMap [post update] : HashMap [] : String | MybatisSqlInjectionService.java:51:27:51:33 | hashMap | provenance | | +| MybatisSqlInjectionService.java:50:23:50:26 | name : String | MybatisSqlInjectionService.java:50:3:50:9 | hashMap [post update] : HashMap [] : String | provenance | | +| MybatisSqlInjectionService.java:54:32:54:42 | name : String | MybatisSqlInjectionService.java:55:32:55:35 | name | provenance | | +| MybatisSqlInjectionService.java:80:20:80:30 | name : String | MybatisSqlInjectionService.java:81:28:81:31 | name | provenance | | +| MybatisSqlInjectionService.java:84:20:84:29 | age : String | MybatisSqlInjectionService.java:85:28:85:30 | age | provenance | | +| MybatisSqlInjectionService.java:88:32:88:42 | name : String | MybatisSqlInjectionService.java:89:32:89:35 | name | provenance | | nodes | MybatisSqlInjection.java:62:19:62:43 | name : String | semmle.label | name : String | | MybatisSqlInjection.java:63:35:63:38 | name : String | semmle.label | name : String | diff --git a/java/ql/test/experimental/query-tests/security/CWE-089/src/main/MyBatisMapperXmlSqlInjection.expected b/java/ql/test/experimental/query-tests/security/CWE-089/src/main/MyBatisMapperXmlSqlInjection.expected index 6d38949fc1ef..27ccbaad9296 100644 --- a/java/ql/test/experimental/query-tests/security/CWE-089/src/main/MyBatisMapperXmlSqlInjection.expected +++ b/java/ql/test/experimental/query-tests/security/CWE-089/src/main/MyBatisMapperXmlSqlInjection.expected @@ -1,28 +1,28 @@ edges -| MybatisSqlInjection.java:19:25:19:49 | name : String | MybatisSqlInjection.java:20:55:20:58 | name : String | -| MybatisSqlInjection.java:20:55:20:58 | name : String | MybatisSqlInjectionService.java:13:25:13:35 | name : String | -| MybatisSqlInjection.java:25:25:25:49 | name : String | MybatisSqlInjection.java:26:55:26:58 | name : String | -| MybatisSqlInjection.java:26:55:26:58 | name : String | MybatisSqlInjectionService.java:18:25:18:35 | name : String | -| MybatisSqlInjection.java:31:25:31:49 | test : Test | MybatisSqlInjection.java:32:55:32:58 | test : Test | -| MybatisSqlInjection.java:32:55:32:58 | test : Test | MybatisSqlInjectionService.java:23:25:23:33 | test : Test | -| MybatisSqlInjection.java:37:19:37:40 | test : Test | MybatisSqlInjection.java:38:35:38:38 | test : Test | -| MybatisSqlInjection.java:38:35:38:38 | test : Test | MybatisSqlInjectionService.java:28:19:28:27 | test : Test | -| MybatisSqlInjection.java:42:19:42:40 | test : Test | MybatisSqlInjection.java:43:35:43:38 | test : Test | -| MybatisSqlInjection.java:43:35:43:38 | test : Test | MybatisSqlInjectionService.java:32:19:32:27 | test : Test | -| MybatisSqlInjection.java:47:19:47:57 | params : Map | MybatisSqlInjection.java:48:35:48:40 | params : Map | -| MybatisSqlInjection.java:48:35:48:40 | params : Map | MybatisSqlInjectionService.java:36:19:36:44 | params : Map | -| MybatisSqlInjection.java:52:19:52:50 | params : List | MybatisSqlInjection.java:53:35:53:40 | params : List | -| MybatisSqlInjection.java:53:35:53:40 | params : List | MybatisSqlInjectionService.java:40:19:40:37 | params : List | -| MybatisSqlInjection.java:57:19:57:46 | params : String[] | MybatisSqlInjection.java:58:35:58:40 | params : String[] | -| MybatisSqlInjection.java:58:35:58:40 | params : String[] | MybatisSqlInjectionService.java:44:19:44:33 | params : String[] | -| MybatisSqlInjectionService.java:13:25:13:35 | name : String | MybatisSqlInjectionService.java:14:47:14:50 | name | -| MybatisSqlInjectionService.java:18:25:18:35 | name : String | MybatisSqlInjectionService.java:19:47:19:50 | name | -| MybatisSqlInjectionService.java:23:25:23:33 | test : Test | MybatisSqlInjectionService.java:24:47:24:50 | test | -| MybatisSqlInjectionService.java:28:19:28:27 | test : Test | MybatisSqlInjectionService.java:29:27:29:30 | test | -| MybatisSqlInjectionService.java:32:19:32:27 | test : Test | MybatisSqlInjectionService.java:33:27:33:30 | test | -| MybatisSqlInjectionService.java:36:19:36:44 | params : Map | MybatisSqlInjectionService.java:37:27:37:32 | params | -| MybatisSqlInjectionService.java:40:19:40:37 | params : List | MybatisSqlInjectionService.java:41:27:41:32 | params | -| MybatisSqlInjectionService.java:44:19:44:33 | params : String[] | MybatisSqlInjectionService.java:45:27:45:32 | params | +| MybatisSqlInjection.java:19:25:19:49 | name : String | MybatisSqlInjection.java:20:55:20:58 | name : String | provenance | | +| MybatisSqlInjection.java:20:55:20:58 | name : String | MybatisSqlInjectionService.java:13:25:13:35 | name : String | provenance | | +| MybatisSqlInjection.java:25:25:25:49 | name : String | MybatisSqlInjection.java:26:55:26:58 | name : String | provenance | | +| MybatisSqlInjection.java:26:55:26:58 | name : String | MybatisSqlInjectionService.java:18:25:18:35 | name : String | provenance | | +| MybatisSqlInjection.java:31:25:31:49 | test : Test | MybatisSqlInjection.java:32:55:32:58 | test : Test | provenance | | +| MybatisSqlInjection.java:32:55:32:58 | test : Test | MybatisSqlInjectionService.java:23:25:23:33 | test : Test | provenance | | +| MybatisSqlInjection.java:37:19:37:40 | test : Test | MybatisSqlInjection.java:38:35:38:38 | test : Test | provenance | | +| MybatisSqlInjection.java:38:35:38:38 | test : Test | MybatisSqlInjectionService.java:28:19:28:27 | test : Test | provenance | | +| MybatisSqlInjection.java:42:19:42:40 | test : Test | MybatisSqlInjection.java:43:35:43:38 | test : Test | provenance | | +| MybatisSqlInjection.java:43:35:43:38 | test : Test | MybatisSqlInjectionService.java:32:19:32:27 | test : Test | provenance | | +| MybatisSqlInjection.java:47:19:47:57 | params : Map | MybatisSqlInjection.java:48:35:48:40 | params : Map | provenance | | +| MybatisSqlInjection.java:48:35:48:40 | params : Map | MybatisSqlInjectionService.java:36:19:36:44 | params : Map | provenance | | +| MybatisSqlInjection.java:52:19:52:50 | params : List | MybatisSqlInjection.java:53:35:53:40 | params : List | provenance | | +| MybatisSqlInjection.java:53:35:53:40 | params : List | MybatisSqlInjectionService.java:40:19:40:37 | params : List | provenance | | +| MybatisSqlInjection.java:57:19:57:46 | params : String[] | MybatisSqlInjection.java:58:35:58:40 | params : String[] | provenance | | +| MybatisSqlInjection.java:58:35:58:40 | params : String[] | MybatisSqlInjectionService.java:44:19:44:33 | params : String[] | provenance | | +| MybatisSqlInjectionService.java:13:25:13:35 | name : String | MybatisSqlInjectionService.java:14:47:14:50 | name | provenance | | +| MybatisSqlInjectionService.java:18:25:18:35 | name : String | MybatisSqlInjectionService.java:19:47:19:50 | name | provenance | | +| MybatisSqlInjectionService.java:23:25:23:33 | test : Test | MybatisSqlInjectionService.java:24:47:24:50 | test | provenance | | +| MybatisSqlInjectionService.java:28:19:28:27 | test : Test | MybatisSqlInjectionService.java:29:27:29:30 | test | provenance | | +| MybatisSqlInjectionService.java:32:19:32:27 | test : Test | MybatisSqlInjectionService.java:33:27:33:30 | test | provenance | | +| MybatisSqlInjectionService.java:36:19:36:44 | params : Map | MybatisSqlInjectionService.java:37:27:37:32 | params | provenance | | +| MybatisSqlInjectionService.java:40:19:40:37 | params : List | MybatisSqlInjectionService.java:41:27:41:32 | params | provenance | | +| MybatisSqlInjectionService.java:44:19:44:33 | params : String[] | MybatisSqlInjectionService.java:45:27:45:32 | params | provenance | | nodes | MybatisSqlInjection.java:19:25:19:49 | name : String | semmle.label | name : String | | MybatisSqlInjection.java:20:55:20:58 | name : String | semmle.label | name : String | diff --git a/java/ql/test/experimental/query-tests/security/CWE-094/BeanShellInjection.expected b/java/ql/test/experimental/query-tests/security/CWE-094/BeanShellInjection.expected index 62d42d57864f..2afdd9869d70 100644 --- a/java/ql/test/experimental/query-tests/security/CWE-094/BeanShellInjection.expected +++ b/java/ql/test/experimental/query-tests/security/CWE-094/BeanShellInjection.expected @@ -1,10 +1,10 @@ edges -| BeanShellInjection.java:13:17:13:44 | getParameter(...) : String | BeanShellInjection.java:15:45:15:48 | code : String | -| BeanShellInjection.java:15:45:15:48 | code : String | BeanShellInjection.java:15:22:15:49 | new StaticScriptSource(...) | -| BeanShellInjection.java:20:17:20:44 | getParameter(...) : String | BeanShellInjection.java:22:20:22:23 | code | -| BeanShellInjection.java:27:17:27:44 | getParameter(...) : String | BeanShellInjection.java:29:32:29:35 | code : String | -| BeanShellInjection.java:29:3:29:20 | staticScriptSource : StaticScriptSource | BeanShellInjection.java:31:22:31:39 | staticScriptSource | -| BeanShellInjection.java:29:32:29:35 | code : String | BeanShellInjection.java:29:3:29:20 | staticScriptSource : StaticScriptSource | +| BeanShellInjection.java:13:17:13:44 | getParameter(...) : String | BeanShellInjection.java:15:45:15:48 | code : String | provenance | | +| BeanShellInjection.java:15:45:15:48 | code : String | BeanShellInjection.java:15:22:15:49 | new StaticScriptSource(...) | provenance | | +| BeanShellInjection.java:20:17:20:44 | getParameter(...) : String | BeanShellInjection.java:22:20:22:23 | code | provenance | | +| BeanShellInjection.java:27:17:27:44 | getParameter(...) : String | BeanShellInjection.java:29:32:29:35 | code : String | provenance | | +| BeanShellInjection.java:29:3:29:20 | staticScriptSource : StaticScriptSource | BeanShellInjection.java:31:22:31:39 | staticScriptSource | provenance | | +| BeanShellInjection.java:29:32:29:35 | code : String | BeanShellInjection.java:29:3:29:20 | staticScriptSource : StaticScriptSource | provenance | | nodes | BeanShellInjection.java:13:17:13:44 | getParameter(...) : String | semmle.label | getParameter(...) : String | | BeanShellInjection.java:15:22:15:49 | new StaticScriptSource(...) | semmle.label | new StaticScriptSource(...) | diff --git a/java/ql/test/experimental/query-tests/security/CWE-094/JShellInjection.expected b/java/ql/test/experimental/query-tests/security/CWE-094/JShellInjection.expected index f084660ced88..0f61156df132 100644 --- a/java/ql/test/experimental/query-tests/security/CWE-094/JShellInjection.expected +++ b/java/ql/test/experimental/query-tests/security/CWE-094/JShellInjection.expected @@ -1,14 +1,14 @@ edges -| JShellInjection.java:12:18:12:45 | getParameter(...) : String | JShellInjection.java:15:15:15:19 | input | -| JShellInjection.java:20:18:20:45 | getParameter(...) : String | JShellInjection.java:24:31:24:35 | input | -| JShellInjection.java:29:18:29:45 | getParameter(...) : String | JShellInjection.java:33:37:33:41 | input : String | -| JShellInjection.java:33:15:33:42 | analyzeCompletion(...) : CompletionInfo | JShellInjection.java:37:16:37:19 | info : CompletionInfo | -| JShellInjection.java:33:37:33:41 | input : String | JShellInjection.java:33:15:33:42 | analyzeCompletion(...) : CompletionInfo | -| JShellInjection.java:35:12:35:50 | analyzeCompletion(...) : CompletionInfo | JShellInjection.java:37:16:37:19 | info : CompletionInfo | -| JShellInjection.java:35:34:35:37 | info : CompletionInfo | JShellInjection.java:35:34:35:49 | remaining(...) : String | -| JShellInjection.java:35:34:35:49 | remaining(...) : String | JShellInjection.java:35:12:35:50 | analyzeCompletion(...) : CompletionInfo | -| JShellInjection.java:37:16:37:19 | info : CompletionInfo | JShellInjection.java:35:34:35:37 | info : CompletionInfo | -| JShellInjection.java:37:16:37:19 | info : CompletionInfo | JShellInjection.java:37:16:37:28 | source(...) | +| JShellInjection.java:12:18:12:45 | getParameter(...) : String | JShellInjection.java:15:15:15:19 | input | provenance | | +| JShellInjection.java:20:18:20:45 | getParameter(...) : String | JShellInjection.java:24:31:24:35 | input | provenance | | +| JShellInjection.java:29:18:29:45 | getParameter(...) : String | JShellInjection.java:33:37:33:41 | input : String | provenance | | +| JShellInjection.java:33:15:33:42 | analyzeCompletion(...) : CompletionInfo | JShellInjection.java:37:16:37:19 | info : CompletionInfo | provenance | | +| JShellInjection.java:33:37:33:41 | input : String | JShellInjection.java:33:15:33:42 | analyzeCompletion(...) : CompletionInfo | provenance | | +| JShellInjection.java:35:12:35:50 | analyzeCompletion(...) : CompletionInfo | JShellInjection.java:37:16:37:19 | info : CompletionInfo | provenance | | +| JShellInjection.java:35:34:35:37 | info : CompletionInfo | JShellInjection.java:35:34:35:49 | remaining(...) : String | provenance | | +| JShellInjection.java:35:34:35:49 | remaining(...) : String | JShellInjection.java:35:12:35:50 | analyzeCompletion(...) : CompletionInfo | provenance | | +| JShellInjection.java:37:16:37:19 | info : CompletionInfo | JShellInjection.java:35:34:35:37 | info : CompletionInfo | provenance | | +| JShellInjection.java:37:16:37:19 | info : CompletionInfo | JShellInjection.java:37:16:37:28 | source(...) | provenance | | nodes | JShellInjection.java:12:18:12:45 | getParameter(...) : String | semmle.label | getParameter(...) : String | | JShellInjection.java:15:15:15:19 | input | semmle.label | input | diff --git a/java/ql/test/experimental/query-tests/security/CWE-094/JakartaExpressionInjection.expected b/java/ql/test/experimental/query-tests/security/CWE-094/JakartaExpressionInjection.expected index ef5fefa21a3f..dbf9191adad3 100644 --- a/java/ql/test/experimental/query-tests/security/CWE-094/JakartaExpressionInjection.expected +++ b/java/ql/test/experimental/query-tests/security/CWE-094/JakartaExpressionInjection.expected @@ -1,34 +1,34 @@ edges -| JakartaExpressionInjection.java:23:25:23:47 | getInputStream(...) : InputStream | JakartaExpressionInjection.java:23:54:23:58 | bytes [post update] : byte[] | -| JakartaExpressionInjection.java:23:54:23:58 | bytes [post update] : byte[] | JakartaExpressionInjection.java:24:48:24:52 | bytes : byte[] | -| JakartaExpressionInjection.java:24:37:24:59 | new String(...) : String | JakartaExpressionInjection.java:25:31:25:40 | expression : String | -| JakartaExpressionInjection.java:24:48:24:52 | bytes : byte[] | JakartaExpressionInjection.java:24:37:24:59 | new String(...) : String | -| JakartaExpressionInjection.java:25:31:25:40 | expression : String | JakartaExpressionInjection.java:32:24:32:33 | expression : String | -| JakartaExpressionInjection.java:25:31:25:40 | expression : String | JakartaExpressionInjection.java:40:24:40:33 | expression : String | -| JakartaExpressionInjection.java:25:31:25:40 | expression : String | JakartaExpressionInjection.java:48:24:48:33 | expression : String | -| JakartaExpressionInjection.java:25:31:25:40 | expression : String | JakartaExpressionInjection.java:59:24:59:33 | expression : String | -| JakartaExpressionInjection.java:25:31:25:40 | expression : String | JakartaExpressionInjection.java:67:24:67:33 | expression : String | -| JakartaExpressionInjection.java:25:31:25:40 | expression : String | JakartaExpressionInjection.java:75:24:75:33 | expression : String | -| JakartaExpressionInjection.java:25:31:25:40 | expression : String | JakartaExpressionInjection.java:85:24:85:33 | expression : String | -| JakartaExpressionInjection.java:25:31:25:40 | expression : String | JakartaExpressionInjection.java:95:24:95:33 | expression : String | -| JakartaExpressionInjection.java:32:24:32:33 | expression : String | JakartaExpressionInjection.java:34:28:34:37 | expression | -| JakartaExpressionInjection.java:40:24:40:33 | expression : String | JakartaExpressionInjection.java:42:32:42:41 | expression | -| JakartaExpressionInjection.java:48:24:48:33 | expression : String | JakartaExpressionInjection.java:51:86:51:95 | expression : String | -| JakartaExpressionInjection.java:51:47:51:110 | createValueExpression(...) : ValueExpression | JakartaExpressionInjection.java:52:89:52:103 | valueExpression : ValueExpression | -| JakartaExpressionInjection.java:51:86:51:95 | expression : String | JakartaExpressionInjection.java:51:47:51:110 | createValueExpression(...) : ValueExpression | -| JakartaExpressionInjection.java:52:49:52:104 | new LambdaExpression(...) : LambdaExpression | JakartaExpressionInjection.java:53:13:53:28 | lambdaExpression | -| JakartaExpressionInjection.java:52:89:52:103 | valueExpression : ValueExpression | JakartaExpressionInjection.java:52:49:52:104 | new LambdaExpression(...) : LambdaExpression | -| JakartaExpressionInjection.java:59:24:59:33 | expression : String | JakartaExpressionInjection.java:61:32:61:41 | expression | -| JakartaExpressionInjection.java:67:24:67:33 | expression : String | JakartaExpressionInjection.java:69:43:69:52 | expression | -| JakartaExpressionInjection.java:75:24:75:33 | expression : String | JakartaExpressionInjection.java:78:72:78:81 | expression : String | -| JakartaExpressionInjection.java:78:33:78:96 | createValueExpression(...) : ValueExpression | JakartaExpressionInjection.java:79:13:79:13 | e | -| JakartaExpressionInjection.java:78:72:78:81 | expression : String | JakartaExpressionInjection.java:78:33:78:96 | createValueExpression(...) : ValueExpression | -| JakartaExpressionInjection.java:85:24:85:33 | expression : String | JakartaExpressionInjection.java:88:72:88:81 | expression : String | -| JakartaExpressionInjection.java:88:33:88:96 | createValueExpression(...) : ValueExpression | JakartaExpressionInjection.java:89:13:89:13 | e | -| JakartaExpressionInjection.java:88:72:88:81 | expression : String | JakartaExpressionInjection.java:88:33:88:96 | createValueExpression(...) : ValueExpression | -| JakartaExpressionInjection.java:95:24:95:33 | expression : String | JakartaExpressionInjection.java:98:74:98:83 | expression : String | -| JakartaExpressionInjection.java:98:34:98:112 | createMethodExpression(...) : MethodExpression | JakartaExpressionInjection.java:99:13:99:13 | e | -| JakartaExpressionInjection.java:98:74:98:83 | expression : String | JakartaExpressionInjection.java:98:34:98:112 | createMethodExpression(...) : MethodExpression | +| JakartaExpressionInjection.java:23:25:23:47 | getInputStream(...) : InputStream | JakartaExpressionInjection.java:23:54:23:58 | bytes [post update] : byte[] | provenance | | +| JakartaExpressionInjection.java:23:54:23:58 | bytes [post update] : byte[] | JakartaExpressionInjection.java:24:48:24:52 | bytes : byte[] | provenance | | +| JakartaExpressionInjection.java:24:37:24:59 | new String(...) : String | JakartaExpressionInjection.java:25:31:25:40 | expression : String | provenance | | +| JakartaExpressionInjection.java:24:48:24:52 | bytes : byte[] | JakartaExpressionInjection.java:24:37:24:59 | new String(...) : String | provenance | | +| JakartaExpressionInjection.java:25:31:25:40 | expression : String | JakartaExpressionInjection.java:32:24:32:33 | expression : String | provenance | | +| JakartaExpressionInjection.java:25:31:25:40 | expression : String | JakartaExpressionInjection.java:40:24:40:33 | expression : String | provenance | | +| JakartaExpressionInjection.java:25:31:25:40 | expression : String | JakartaExpressionInjection.java:48:24:48:33 | expression : String | provenance | | +| JakartaExpressionInjection.java:25:31:25:40 | expression : String | JakartaExpressionInjection.java:59:24:59:33 | expression : String | provenance | | +| JakartaExpressionInjection.java:25:31:25:40 | expression : String | JakartaExpressionInjection.java:67:24:67:33 | expression : String | provenance | | +| JakartaExpressionInjection.java:25:31:25:40 | expression : String | JakartaExpressionInjection.java:75:24:75:33 | expression : String | provenance | | +| JakartaExpressionInjection.java:25:31:25:40 | expression : String | JakartaExpressionInjection.java:85:24:85:33 | expression : String | provenance | | +| JakartaExpressionInjection.java:25:31:25:40 | expression : String | JakartaExpressionInjection.java:95:24:95:33 | expression : String | provenance | | +| JakartaExpressionInjection.java:32:24:32:33 | expression : String | JakartaExpressionInjection.java:34:28:34:37 | expression | provenance | | +| JakartaExpressionInjection.java:40:24:40:33 | expression : String | JakartaExpressionInjection.java:42:32:42:41 | expression | provenance | | +| JakartaExpressionInjection.java:48:24:48:33 | expression : String | JakartaExpressionInjection.java:51:86:51:95 | expression : String | provenance | | +| JakartaExpressionInjection.java:51:47:51:110 | createValueExpression(...) : ValueExpression | JakartaExpressionInjection.java:52:89:52:103 | valueExpression : ValueExpression | provenance | | +| JakartaExpressionInjection.java:51:86:51:95 | expression : String | JakartaExpressionInjection.java:51:47:51:110 | createValueExpression(...) : ValueExpression | provenance | | +| JakartaExpressionInjection.java:52:49:52:104 | new LambdaExpression(...) : LambdaExpression | JakartaExpressionInjection.java:53:13:53:28 | lambdaExpression | provenance | | +| JakartaExpressionInjection.java:52:89:52:103 | valueExpression : ValueExpression | JakartaExpressionInjection.java:52:49:52:104 | new LambdaExpression(...) : LambdaExpression | provenance | | +| JakartaExpressionInjection.java:59:24:59:33 | expression : String | JakartaExpressionInjection.java:61:32:61:41 | expression | provenance | | +| JakartaExpressionInjection.java:67:24:67:33 | expression : String | JakartaExpressionInjection.java:69:43:69:52 | expression | provenance | | +| JakartaExpressionInjection.java:75:24:75:33 | expression : String | JakartaExpressionInjection.java:78:72:78:81 | expression : String | provenance | | +| JakartaExpressionInjection.java:78:33:78:96 | createValueExpression(...) : ValueExpression | JakartaExpressionInjection.java:79:13:79:13 | e | provenance | | +| JakartaExpressionInjection.java:78:72:78:81 | expression : String | JakartaExpressionInjection.java:78:33:78:96 | createValueExpression(...) : ValueExpression | provenance | | +| JakartaExpressionInjection.java:85:24:85:33 | expression : String | JakartaExpressionInjection.java:88:72:88:81 | expression : String | provenance | | +| JakartaExpressionInjection.java:88:33:88:96 | createValueExpression(...) : ValueExpression | JakartaExpressionInjection.java:89:13:89:13 | e | provenance | | +| JakartaExpressionInjection.java:88:72:88:81 | expression : String | JakartaExpressionInjection.java:88:33:88:96 | createValueExpression(...) : ValueExpression | provenance | | +| JakartaExpressionInjection.java:95:24:95:33 | expression : String | JakartaExpressionInjection.java:98:74:98:83 | expression : String | provenance | | +| JakartaExpressionInjection.java:98:34:98:112 | createMethodExpression(...) : MethodExpression | JakartaExpressionInjection.java:99:13:99:13 | e | provenance | | +| JakartaExpressionInjection.java:98:74:98:83 | expression : String | JakartaExpressionInjection.java:98:34:98:112 | createMethodExpression(...) : MethodExpression | provenance | | nodes | JakartaExpressionInjection.java:23:25:23:47 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | | JakartaExpressionInjection.java:23:54:23:58 | bytes [post update] : byte[] | semmle.label | bytes [post update] : byte[] | diff --git a/java/ql/test/experimental/query-tests/security/CWE-094/JythonInjection.expected b/java/ql/test/experimental/query-tests/security/CWE-094/JythonInjection.expected index 0fbbe43e3c63..0d090adbea60 100644 --- a/java/ql/test/experimental/query-tests/security/CWE-094/JythonInjection.expected +++ b/java/ql/test/experimental/query-tests/security/CWE-094/JythonInjection.expected @@ -1,9 +1,9 @@ edges -| JythonInjection.java:28:23:28:50 | getParameter(...) : String | JythonInjection.java:36:30:36:33 | code | -| JythonInjection.java:53:23:53:50 | getParameter(...) : String | JythonInjection.java:58:44:58:47 | code | -| JythonInjection.java:73:23:73:50 | getParameter(...) : String | JythonInjection.java:81:35:81:38 | code | -| JythonInjection.java:97:23:97:50 | getParameter(...) : String | JythonInjection.java:106:61:106:64 | code : String | -| JythonInjection.java:106:61:106:64 | code : String | JythonInjection.java:106:61:106:75 | getBytes(...) | +| JythonInjection.java:28:23:28:50 | getParameter(...) : String | JythonInjection.java:36:30:36:33 | code | provenance | | +| JythonInjection.java:53:23:53:50 | getParameter(...) : String | JythonInjection.java:58:44:58:47 | code | provenance | | +| JythonInjection.java:73:23:73:50 | getParameter(...) : String | JythonInjection.java:81:35:81:38 | code | provenance | | +| JythonInjection.java:97:23:97:50 | getParameter(...) : String | JythonInjection.java:106:61:106:64 | code : String | provenance | | +| JythonInjection.java:106:61:106:64 | code : String | JythonInjection.java:106:61:106:75 | getBytes(...) | provenance | | nodes | JythonInjection.java:28:23:28:50 | getParameter(...) : String | semmle.label | getParameter(...) : String | | JythonInjection.java:36:30:36:33 | code | semmle.label | code | diff --git a/java/ql/test/experimental/query-tests/security/CWE-094/ScriptInjection.expected b/java/ql/test/experimental/query-tests/security/CWE-094/ScriptInjection.expected index f7a626fca76a..d2119033cdf9 100644 --- a/java/ql/test/experimental/query-tests/security/CWE-094/ScriptInjection.expected +++ b/java/ql/test/experimental/query-tests/security/CWE-094/ScriptInjection.expected @@ -1,26 +1,26 @@ edges -| RhinoServlet.java:28:23:28:50 | getParameter(...) : String | RhinoServlet.java:32:55:32:58 | code | -| RhinoServlet.java:81:23:81:50 | getParameter(...) : String | RhinoServlet.java:83:54:83:57 | code | -| RhinoServlet.java:88:23:88:50 | getParameter(...) : String | RhinoServlet.java:89:74:89:77 | code : String | -| RhinoServlet.java:89:74:89:77 | code : String | RhinoServlet.java:89:74:89:88 | getBytes(...) | -| ScriptEngineTest.java:20:44:20:55 | input : String | ScriptEngineTest.java:24:37:24:41 | input | -| ScriptEngineTest.java:27:51:27:62 | input : String | ScriptEngineTest.java:31:31:31:35 | input | -| ScriptEngineTest.java:35:58:35:69 | input : String | ScriptEngineTest.java:39:31:39:35 | input | -| ScriptEngineTest.java:42:46:42:57 | input : String | ScriptEngineTest.java:46:31:46:35 | input | -| ScriptEngineTest.java:49:41:49:52 | input : String | ScriptEngineTest.java:52:42:52:46 | input | -| ScriptEngineTest.java:56:41:56:52 | input : String | ScriptEngineTest.java:59:51:59:55 | input | -| ScriptEngineTest.java:91:18:91:45 | getParameter(...) : String | ScriptEngineTest.java:93:57:93:60 | code : String | -| ScriptEngineTest.java:91:18:91:45 | getParameter(...) : String | ScriptEngineTest.java:94:64:94:67 | code : String | -| ScriptEngineTest.java:91:18:91:45 | getParameter(...) : String | ScriptEngineTest.java:95:71:95:74 | code : String | -| ScriptEngineTest.java:91:18:91:45 | getParameter(...) : String | ScriptEngineTest.java:96:59:96:62 | code : String | -| ScriptEngineTest.java:91:18:91:45 | getParameter(...) : String | ScriptEngineTest.java:97:54:97:57 | code : String | -| ScriptEngineTest.java:91:18:91:45 | getParameter(...) : String | ScriptEngineTest.java:98:54:98:57 | code : String | -| ScriptEngineTest.java:93:57:93:60 | code : String | ScriptEngineTest.java:20:44:20:55 | input : String | -| ScriptEngineTest.java:94:64:94:67 | code : String | ScriptEngineTest.java:27:51:27:62 | input : String | -| ScriptEngineTest.java:95:71:95:74 | code : String | ScriptEngineTest.java:35:58:35:69 | input : String | -| ScriptEngineTest.java:96:59:96:62 | code : String | ScriptEngineTest.java:42:46:42:57 | input : String | -| ScriptEngineTest.java:97:54:97:57 | code : String | ScriptEngineTest.java:49:41:49:52 | input : String | -| ScriptEngineTest.java:98:54:98:57 | code : String | ScriptEngineTest.java:56:41:56:52 | input : String | +| RhinoServlet.java:28:23:28:50 | getParameter(...) : String | RhinoServlet.java:32:55:32:58 | code | provenance | | +| RhinoServlet.java:81:23:81:50 | getParameter(...) : String | RhinoServlet.java:83:54:83:57 | code | provenance | | +| RhinoServlet.java:88:23:88:50 | getParameter(...) : String | RhinoServlet.java:89:74:89:77 | code : String | provenance | | +| RhinoServlet.java:89:74:89:77 | code : String | RhinoServlet.java:89:74:89:88 | getBytes(...) | provenance | | +| ScriptEngineTest.java:20:44:20:55 | input : String | ScriptEngineTest.java:24:37:24:41 | input | provenance | | +| ScriptEngineTest.java:27:51:27:62 | input : String | ScriptEngineTest.java:31:31:31:35 | input | provenance | | +| ScriptEngineTest.java:35:58:35:69 | input : String | ScriptEngineTest.java:39:31:39:35 | input | provenance | | +| ScriptEngineTest.java:42:46:42:57 | input : String | ScriptEngineTest.java:46:31:46:35 | input | provenance | | +| ScriptEngineTest.java:49:41:49:52 | input : String | ScriptEngineTest.java:52:42:52:46 | input | provenance | | +| ScriptEngineTest.java:56:41:56:52 | input : String | ScriptEngineTest.java:59:51:59:55 | input | provenance | | +| ScriptEngineTest.java:91:18:91:45 | getParameter(...) : String | ScriptEngineTest.java:93:57:93:60 | code : String | provenance | | +| ScriptEngineTest.java:91:18:91:45 | getParameter(...) : String | ScriptEngineTest.java:94:64:94:67 | code : String | provenance | | +| ScriptEngineTest.java:91:18:91:45 | getParameter(...) : String | ScriptEngineTest.java:95:71:95:74 | code : String | provenance | | +| ScriptEngineTest.java:91:18:91:45 | getParameter(...) : String | ScriptEngineTest.java:96:59:96:62 | code : String | provenance | | +| ScriptEngineTest.java:91:18:91:45 | getParameter(...) : String | ScriptEngineTest.java:97:54:97:57 | code : String | provenance | | +| ScriptEngineTest.java:91:18:91:45 | getParameter(...) : String | ScriptEngineTest.java:98:54:98:57 | code : String | provenance | | +| ScriptEngineTest.java:93:57:93:60 | code : String | ScriptEngineTest.java:20:44:20:55 | input : String | provenance | | +| ScriptEngineTest.java:94:64:94:67 | code : String | ScriptEngineTest.java:27:51:27:62 | input : String | provenance | | +| ScriptEngineTest.java:95:71:95:74 | code : String | ScriptEngineTest.java:35:58:35:69 | input : String | provenance | | +| ScriptEngineTest.java:96:59:96:62 | code : String | ScriptEngineTest.java:42:46:42:57 | input : String | provenance | | +| ScriptEngineTest.java:97:54:97:57 | code : String | ScriptEngineTest.java:49:41:49:52 | input : String | provenance | | +| ScriptEngineTest.java:98:54:98:57 | code : String | ScriptEngineTest.java:56:41:56:52 | input : String | provenance | | nodes | RhinoServlet.java:28:23:28:50 | getParameter(...) : String | semmle.label | getParameter(...) : String | | RhinoServlet.java:32:55:32:58 | code | semmle.label | code | diff --git a/java/ql/test/experimental/query-tests/security/CWE-1004/SensitiveCookieNotHttpOnly.expected b/java/ql/test/experimental/query-tests/security/CWE-1004/SensitiveCookieNotHttpOnly.expected index ca4eb5e9917f..5b1eefcc07ad 100644 --- a/java/ql/test/experimental/query-tests/security/CWE-1004/SensitiveCookieNotHttpOnly.expected +++ b/java/ql/test/experimental/query-tests/security/CWE-1004/SensitiveCookieNotHttpOnly.expected @@ -1,23 +1,23 @@ edges -| SensitiveCookieNotHttpOnly.java:24:33:24:43 | "jwt_token" : String | SensitiveCookieNotHttpOnly.java:25:39:25:52 | tokenCookieStr : String | -| SensitiveCookieNotHttpOnly.java:25:28:25:64 | new Cookie(...) : Cookie | SensitiveCookieNotHttpOnly.java:31:28:31:36 | jwtCookie | -| SensitiveCookieNotHttpOnly.java:25:39:25:52 | tokenCookieStr : String | SensitiveCookieNotHttpOnly.java:25:28:25:64 | new Cookie(...) : Cookie | -| SensitiveCookieNotHttpOnly.java:42:42:42:49 | "token=" : String | SensitiveCookieNotHttpOnly.java:42:42:42:69 | ... + ... | -| SensitiveCookieNotHttpOnly.java:42:42:42:57 | ... + ... : String | SensitiveCookieNotHttpOnly.java:42:42:42:69 | ... + ... | -| SensitiveCookieNotHttpOnly.java:52:42:52:113 | new NewCookie(...) : NewCookie | SensitiveCookieNotHttpOnly.java:52:42:52:124 | toString(...) | -| SensitiveCookieNotHttpOnly.java:52:56:52:75 | "session-access-key" : String | SensitiveCookieNotHttpOnly.java:52:42:52:113 | new NewCookie(...) : NewCookie | -| SensitiveCookieNotHttpOnly.java:63:37:63:115 | new NewCookie(...) : NewCookie | SensitiveCookieNotHttpOnly.java:64:25:64:39 | accessKeyCookie : NewCookie | -| SensitiveCookieNotHttpOnly.java:63:51:63:70 | "session-access-key" : String | SensitiveCookieNotHttpOnly.java:63:37:63:115 | new NewCookie(...) : NewCookie | -| SensitiveCookieNotHttpOnly.java:64:25:64:39 | accessKeyCookie : NewCookie | SensitiveCookieNotHttpOnly.java:64:25:64:50 | toString(...) : String | -| SensitiveCookieNotHttpOnly.java:64:25:64:50 | toString(...) : String | SensitiveCookieNotHttpOnly.java:65:42:65:47 | keyStr | -| SensitiveCookieNotHttpOnly.java:70:28:70:35 | "token=" : String | SensitiveCookieNotHttpOnly.java:71:42:71:50 | secString | -| SensitiveCookieNotHttpOnly.java:70:28:70:43 | ... + ... : String | SensitiveCookieNotHttpOnly.java:71:42:71:50 | secString | -| SensitiveCookieNotHttpOnly.java:70:28:70:55 | ... + ... : String | SensitiveCookieNotHttpOnly.java:71:42:71:50 | secString | -| SensitiveCookieNotHttpOnly.java:88:35:88:51 | "Presto-UI-Token" : String | SensitiveCookieNotHttpOnly.java:89:36:89:51 | PRESTO_UI_COOKIE : String | -| SensitiveCookieNotHttpOnly.java:89:25:89:57 | new Cookie(...) : Cookie | SensitiveCookieNotHttpOnly.java:91:16:91:21 | cookie : Cookie | -| SensitiveCookieNotHttpOnly.java:89:36:89:51 | PRESTO_UI_COOKIE : String | SensitiveCookieNotHttpOnly.java:89:25:89:57 | new Cookie(...) : Cookie | -| SensitiveCookieNotHttpOnly.java:91:16:91:21 | cookie : Cookie | SensitiveCookieNotHttpOnly.java:110:25:110:64 | createAuthenticationCookie(...) : Cookie | -| SensitiveCookieNotHttpOnly.java:110:25:110:64 | createAuthenticationCookie(...) : Cookie | SensitiveCookieNotHttpOnly.java:111:28:111:33 | cookie | +| SensitiveCookieNotHttpOnly.java:24:33:24:43 | "jwt_token" : String | SensitiveCookieNotHttpOnly.java:25:39:25:52 | tokenCookieStr : String | provenance | | +| SensitiveCookieNotHttpOnly.java:25:28:25:64 | new Cookie(...) : Cookie | SensitiveCookieNotHttpOnly.java:31:28:31:36 | jwtCookie | provenance | | +| SensitiveCookieNotHttpOnly.java:25:39:25:52 | tokenCookieStr : String | SensitiveCookieNotHttpOnly.java:25:28:25:64 | new Cookie(...) : Cookie | provenance | | +| SensitiveCookieNotHttpOnly.java:42:42:42:49 | "token=" : String | SensitiveCookieNotHttpOnly.java:42:42:42:69 | ... + ... | provenance | | +| SensitiveCookieNotHttpOnly.java:42:42:42:57 | ... + ... : String | SensitiveCookieNotHttpOnly.java:42:42:42:69 | ... + ... | provenance | | +| SensitiveCookieNotHttpOnly.java:52:42:52:113 | new NewCookie(...) : NewCookie | SensitiveCookieNotHttpOnly.java:52:42:52:124 | toString(...) | provenance | | +| SensitiveCookieNotHttpOnly.java:52:56:52:75 | "session-access-key" : String | SensitiveCookieNotHttpOnly.java:52:42:52:113 | new NewCookie(...) : NewCookie | provenance | | +| SensitiveCookieNotHttpOnly.java:63:37:63:115 | new NewCookie(...) : NewCookie | SensitiveCookieNotHttpOnly.java:64:25:64:39 | accessKeyCookie : NewCookie | provenance | | +| SensitiveCookieNotHttpOnly.java:63:51:63:70 | "session-access-key" : String | SensitiveCookieNotHttpOnly.java:63:37:63:115 | new NewCookie(...) : NewCookie | provenance | | +| SensitiveCookieNotHttpOnly.java:64:25:64:39 | accessKeyCookie : NewCookie | SensitiveCookieNotHttpOnly.java:64:25:64:50 | toString(...) : String | provenance | | +| SensitiveCookieNotHttpOnly.java:64:25:64:50 | toString(...) : String | SensitiveCookieNotHttpOnly.java:65:42:65:47 | keyStr | provenance | | +| SensitiveCookieNotHttpOnly.java:70:28:70:35 | "token=" : String | SensitiveCookieNotHttpOnly.java:71:42:71:50 | secString | provenance | | +| SensitiveCookieNotHttpOnly.java:70:28:70:43 | ... + ... : String | SensitiveCookieNotHttpOnly.java:71:42:71:50 | secString | provenance | | +| SensitiveCookieNotHttpOnly.java:70:28:70:55 | ... + ... : String | SensitiveCookieNotHttpOnly.java:71:42:71:50 | secString | provenance | | +| SensitiveCookieNotHttpOnly.java:88:35:88:51 | "Presto-UI-Token" : String | SensitiveCookieNotHttpOnly.java:89:36:89:51 | PRESTO_UI_COOKIE : String | provenance | | +| SensitiveCookieNotHttpOnly.java:89:25:89:57 | new Cookie(...) : Cookie | SensitiveCookieNotHttpOnly.java:91:16:91:21 | cookie : Cookie | provenance | | +| SensitiveCookieNotHttpOnly.java:89:36:89:51 | PRESTO_UI_COOKIE : String | SensitiveCookieNotHttpOnly.java:89:25:89:57 | new Cookie(...) : Cookie | provenance | | +| SensitiveCookieNotHttpOnly.java:91:16:91:21 | cookie : Cookie | SensitiveCookieNotHttpOnly.java:110:25:110:64 | createAuthenticationCookie(...) : Cookie | provenance | | +| SensitiveCookieNotHttpOnly.java:110:25:110:64 | createAuthenticationCookie(...) : Cookie | SensitiveCookieNotHttpOnly.java:111:28:111:33 | cookie | provenance | | nodes | SensitiveCookieNotHttpOnly.java:24:33:24:43 | "jwt_token" : String | semmle.label | "jwt_token" : String | | SensitiveCookieNotHttpOnly.java:25:28:25:64 | new Cookie(...) : Cookie | semmle.label | new Cookie(...) : Cookie | diff --git a/java/ql/test/experimental/query-tests/security/CWE-200/InsecureWebResourceResponse.expected b/java/ql/test/experimental/query-tests/security/CWE-200/InsecureWebResourceResponse.expected index 07ce59763ad3..a006cdd08b4a 100644 --- a/java/ql/test/experimental/query-tests/security/CWE-200/InsecureWebResourceResponse.expected +++ b/java/ql/test/experimental/query-tests/security/CWE-200/InsecureWebResourceResponse.expected @@ -1,117 +1,117 @@ edges -| InsecureWebResourceResponse.java:28:27:28:37 | getIntent(...) : Intent | InsecureWebResourceResponse.java:28:27:28:64 | getStringExtra(...) : String | -| InsecureWebResourceResponse.java:28:27:28:64 | getStringExtra(...) : String | InsecureWebResourceResponse.java:30:25:30:32 | inputUrl : String | -| InsecureWebResourceResponse.java:28:27:28:64 | getStringExtra(...) : String | InsecureWebResourceResponse.java:32:25:32:32 | inputUrl : String | -| InsecureWebResourceResponse.java:28:27:28:64 | getStringExtra(...) : String | InsecureWebResourceResponse.java:34:25:34:32 | inputUrl : String | -| InsecureWebResourceResponse.java:28:27:28:64 | getStringExtra(...) : String | InsecureWebResourceResponse.java:36:26:36:33 | inputUrl : String | -| InsecureWebResourceResponse.java:28:27:28:64 | getStringExtra(...) : String | InsecureWebResourceResponse.java:38:26:38:33 | inputUrl : String | -| InsecureWebResourceResponse.java:28:27:28:64 | getStringExtra(...) : String | InsecureWebResourceResponse.java:40:25:40:32 | inputUrl : String | -| InsecureWebResourceResponse.java:28:27:28:64 | getStringExtra(...) : String | InsecureWebResourceResponse.java:42:25:42:32 | inputUrl : String | -| InsecureWebResourceResponse.java:28:27:28:64 | getStringExtra(...) : String | InsecureWebResourceResponse.java:44:26:44:33 | inputUrl : String | -| InsecureWebResourceResponse.java:30:25:30:32 | inputUrl : String | InsecureWebResourceResponse.java:59:34:59:43 | url : String | -| InsecureWebResourceResponse.java:32:25:32:32 | inputUrl : String | InsecureWebResourceResponse.java:80:34:80:43 | url : String | -| InsecureWebResourceResponse.java:34:25:34:32 | inputUrl : String | InsecureWebResourceResponse.java:106:34:106:43 | url : String | -| InsecureWebResourceResponse.java:36:26:36:33 | inputUrl : String | InsecureWebResourceResponse.java:131:36:131:45 | url : String | -| InsecureWebResourceResponse.java:38:26:38:33 | inputUrl : String | InsecureWebResourceResponse.java:156:35:156:44 | url : String | -| InsecureWebResourceResponse.java:40:25:40:32 | inputUrl : String | InsecureWebResourceResponse.java:181:34:181:43 | url : String | -| InsecureWebResourceResponse.java:42:25:42:32 | inputUrl : String | InsecureWebResourceResponse.java:188:34:188:43 | url : String | -| InsecureWebResourceResponse.java:44:26:44:33 | inputUrl : String | InsecureWebResourceResponse.java:217:35:217:44 | url : String | -| InsecureWebResourceResponse.java:59:34:59:43 | url : String | InsecureWebResourceResponse.java:75:20:75:22 | url : String | -| InsecureWebResourceResponse.java:63:77:63:86 | url : String | InsecureWebResourceResponse.java:65:41:65:43 | url : String | -| InsecureWebResourceResponse.java:65:31:65:44 | parse(...) : Uri | InsecureWebResourceResponse.java:66:71:66:73 | uri : Uri | -| InsecureWebResourceResponse.java:65:41:65:43 | url : String | InsecureWebResourceResponse.java:65:31:65:44 | parse(...) : Uri | -| InsecureWebResourceResponse.java:66:51:66:84 | new FileInputStream(...) : FileInputStream | InsecureWebResourceResponse.java:68:71:68:81 | inputStream | -| InsecureWebResourceResponse.java:66:71:66:73 | uri : Uri | InsecureWebResourceResponse.java:66:71:66:83 | getPath(...) : String | -| InsecureWebResourceResponse.java:66:71:66:83 | getPath(...) : String | InsecureWebResourceResponse.java:66:51:66:84 | new FileInputStream(...) : FileInputStream | -| InsecureWebResourceResponse.java:75:20:75:22 | url : String | InsecureWebResourceResponse.java:63:77:63:86 | url : String | -| InsecureWebResourceResponse.java:75:20:75:22 | url : String | InsecureWebResourceResponse.java:84:77:84:86 | url : String | -| InsecureWebResourceResponse.java:75:20:75:22 | url : String | InsecureWebResourceResponse.java:110:77:110:86 | url : String | -| InsecureWebResourceResponse.java:75:20:75:22 | url : String | InsecureWebResourceResponse.java:192:77:192:102 | request : WebResourceRequest | -| InsecureWebResourceResponse.java:75:20:75:22 | url : String | InsecureWebResourceResponse.java:232:69:232:78 | url : String | -| InsecureWebResourceResponse.java:80:34:80:43 | url : String | InsecureWebResourceResponse.java:101:20:101:22 | url : String | -| InsecureWebResourceResponse.java:84:77:84:86 | url : String | InsecureWebResourceResponse.java:86:41:86:43 | url : String | -| InsecureWebResourceResponse.java:86:31:86:44 | parse(...) : Uri | InsecureWebResourceResponse.java:88:66:88:68 | uri : Uri | -| InsecureWebResourceResponse.java:86:41:86:43 | url : String | InsecureWebResourceResponse.java:86:31:86:44 | parse(...) : Uri | -| InsecureWebResourceResponse.java:88:42:88:90 | new File(...) : File | InsecureWebResourceResponse.java:89:75:89:83 | cacheFile : File | -| InsecureWebResourceResponse.java:88:66:88:68 | uri : Uri | InsecureWebResourceResponse.java:88:66:88:89 | getLastPathSegment(...) : String | -| InsecureWebResourceResponse.java:88:66:88:89 | getLastPathSegment(...) : String | InsecureWebResourceResponse.java:88:42:88:90 | new File(...) : File | -| InsecureWebResourceResponse.java:89:55:89:84 | new FileInputStream(...) : FileInputStream | InsecureWebResourceResponse.java:91:75:91:85 | inputStream | -| InsecureWebResourceResponse.java:89:75:89:83 | cacheFile : File | InsecureWebResourceResponse.java:89:55:89:84 | new FileInputStream(...) : FileInputStream | -| InsecureWebResourceResponse.java:101:20:101:22 | url : String | InsecureWebResourceResponse.java:63:77:63:86 | url : String | -| InsecureWebResourceResponse.java:101:20:101:22 | url : String | InsecureWebResourceResponse.java:84:77:84:86 | url : String | -| InsecureWebResourceResponse.java:101:20:101:22 | url : String | InsecureWebResourceResponse.java:110:77:110:86 | url : String | -| InsecureWebResourceResponse.java:101:20:101:22 | url : String | InsecureWebResourceResponse.java:192:77:192:102 | request : WebResourceRequest | -| InsecureWebResourceResponse.java:101:20:101:22 | url : String | InsecureWebResourceResponse.java:232:69:232:78 | url : String | -| InsecureWebResourceResponse.java:106:34:106:43 | url : String | InsecureWebResourceResponse.java:127:20:127:22 | url : String | -| InsecureWebResourceResponse.java:110:77:110:86 | url : String | InsecureWebResourceResponse.java:112:41:112:43 | url : String | -| InsecureWebResourceResponse.java:112:31:112:44 | parse(...) : Uri | InsecureWebResourceResponse.java:113:35:113:37 | uri : Uri | -| InsecureWebResourceResponse.java:112:41:112:43 | url : String | InsecureWebResourceResponse.java:112:31:112:44 | parse(...) : Uri | -| InsecureWebResourceResponse.java:113:35:113:37 | uri : Uri | InsecureWebResourceResponse.java:113:35:113:47 | getPath(...) : String | -| InsecureWebResourceResponse.java:113:35:113:47 | getPath(...) : String | InsecureWebResourceResponse.java:113:35:113:60 | substring(...) : String | -| InsecureWebResourceResponse.java:113:35:113:60 | substring(...) : String | InsecureWebResourceResponse.java:115:75:115:78 | path : String | -| InsecureWebResourceResponse.java:115:55:115:108 | new FileInputStream(...) : FileInputStream | InsecureWebResourceResponse.java:117:75:117:85 | inputStream | -| InsecureWebResourceResponse.java:115:75:115:78 | path : String | InsecureWebResourceResponse.java:115:75:115:107 | substring(...) : String | -| InsecureWebResourceResponse.java:115:75:115:107 | substring(...) : String | InsecureWebResourceResponse.java:115:55:115:108 | new FileInputStream(...) : FileInputStream | -| InsecureWebResourceResponse.java:127:20:127:22 | url : String | InsecureWebResourceResponse.java:63:77:63:86 | url : String | -| InsecureWebResourceResponse.java:127:20:127:22 | url : String | InsecureWebResourceResponse.java:84:77:84:86 | url : String | -| InsecureWebResourceResponse.java:127:20:127:22 | url : String | InsecureWebResourceResponse.java:110:77:110:86 | url : String | -| InsecureWebResourceResponse.java:127:20:127:22 | url : String | InsecureWebResourceResponse.java:192:77:192:102 | request : WebResourceRequest | -| InsecureWebResourceResponse.java:127:20:127:22 | url : String | InsecureWebResourceResponse.java:232:69:232:78 | url : String | -| InsecureWebResourceResponse.java:131:36:131:45 | url : String | InsecureWebResourceResponse.java:152:20:152:22 | url : String | -| InsecureWebResourceResponse.java:152:20:152:22 | url : String | InsecureWebResourceResponse.java:63:77:63:86 | url : String | -| InsecureWebResourceResponse.java:152:20:152:22 | url : String | InsecureWebResourceResponse.java:84:77:84:86 | url : String | -| InsecureWebResourceResponse.java:152:20:152:22 | url : String | InsecureWebResourceResponse.java:110:77:110:86 | url : String | -| InsecureWebResourceResponse.java:152:20:152:22 | url : String | InsecureWebResourceResponse.java:192:77:192:102 | request : WebResourceRequest | -| InsecureWebResourceResponse.java:152:20:152:22 | url : String | InsecureWebResourceResponse.java:232:69:232:78 | url : String | -| InsecureWebResourceResponse.java:156:35:156:44 | url : String | InsecureWebResourceResponse.java:177:20:177:22 | url : String | -| InsecureWebResourceResponse.java:177:20:177:22 | url : String | InsecureWebResourceResponse.java:63:77:63:86 | url : String | -| InsecureWebResourceResponse.java:177:20:177:22 | url : String | InsecureWebResourceResponse.java:84:77:84:86 | url : String | -| InsecureWebResourceResponse.java:177:20:177:22 | url : String | InsecureWebResourceResponse.java:110:77:110:86 | url : String | -| InsecureWebResourceResponse.java:177:20:177:22 | url : String | InsecureWebResourceResponse.java:192:77:192:102 | request : WebResourceRequest | -| InsecureWebResourceResponse.java:177:20:177:22 | url : String | InsecureWebResourceResponse.java:232:69:232:78 | url : String | -| InsecureWebResourceResponse.java:181:34:181:43 | url : String | InsecureWebResourceResponse.java:184:20:184:22 | url : String | -| InsecureWebResourceResponse.java:184:20:184:22 | url : String | InsecureWebResourceResponse.java:63:77:63:86 | url : String | -| InsecureWebResourceResponse.java:184:20:184:22 | url : String | InsecureWebResourceResponse.java:84:77:84:86 | url : String | -| InsecureWebResourceResponse.java:184:20:184:22 | url : String | InsecureWebResourceResponse.java:110:77:110:86 | url : String | -| InsecureWebResourceResponse.java:184:20:184:22 | url : String | InsecureWebResourceResponse.java:192:77:192:102 | request : WebResourceRequest | -| InsecureWebResourceResponse.java:184:20:184:22 | url : String | InsecureWebResourceResponse.java:232:69:232:78 | url : String | -| InsecureWebResourceResponse.java:188:34:188:43 | url : String | InsecureWebResourceResponse.java:209:20:209:22 | url : String | -| InsecureWebResourceResponse.java:192:77:192:102 | request : WebResourceRequest | InsecureWebResourceResponse.java:194:31:194:37 | request : WebResourceRequest | -| InsecureWebResourceResponse.java:194:31:194:37 | request : WebResourceRequest | InsecureWebResourceResponse.java:194:31:194:46 | getUrl(...) : Uri | -| InsecureWebResourceResponse.java:194:31:194:46 | getUrl(...) : Uri | InsecureWebResourceResponse.java:196:66:196:68 | uri : Uri | -| InsecureWebResourceResponse.java:196:42:196:90 | new File(...) : File | InsecureWebResourceResponse.java:197:75:197:83 | cacheFile : File | -| InsecureWebResourceResponse.java:196:66:196:68 | uri : Uri | InsecureWebResourceResponse.java:196:66:196:89 | getLastPathSegment(...) : String | -| InsecureWebResourceResponse.java:196:66:196:89 | getLastPathSegment(...) : String | InsecureWebResourceResponse.java:196:42:196:90 | new File(...) : File | -| InsecureWebResourceResponse.java:197:55:197:84 | new FileInputStream(...) : FileInputStream | InsecureWebResourceResponse.java:199:75:199:85 | inputStream | -| InsecureWebResourceResponse.java:197:75:197:83 | cacheFile : File | InsecureWebResourceResponse.java:197:55:197:84 | new FileInputStream(...) : FileInputStream | -| InsecureWebResourceResponse.java:209:20:209:22 | url : String | InsecureWebResourceResponse.java:63:77:63:86 | url : String | -| InsecureWebResourceResponse.java:209:20:209:22 | url : String | InsecureWebResourceResponse.java:84:77:84:86 | url : String | -| InsecureWebResourceResponse.java:209:20:209:22 | url : String | InsecureWebResourceResponse.java:110:77:110:86 | url : String | -| InsecureWebResourceResponse.java:209:20:209:22 | url : String | InsecureWebResourceResponse.java:192:77:192:102 | request : WebResourceRequest | -| InsecureWebResourceResponse.java:209:20:209:22 | url : String | InsecureWebResourceResponse.java:232:69:232:78 | url : String | -| InsecureWebResourceResponse.java:217:35:217:44 | url : String | InsecureWebResourceResponse.java:226:20:226:22 | url : String | -| InsecureWebResourceResponse.java:226:20:226:22 | url : String | InsecureWebResourceResponse.java:63:77:63:86 | url : String | -| InsecureWebResourceResponse.java:226:20:226:22 | url : String | InsecureWebResourceResponse.java:84:77:84:86 | url : String | -| InsecureWebResourceResponse.java:226:20:226:22 | url : String | InsecureWebResourceResponse.java:110:77:110:86 | url : String | -| InsecureWebResourceResponse.java:226:20:226:22 | url : String | InsecureWebResourceResponse.java:192:77:192:102 | request : WebResourceRequest | -| InsecureWebResourceResponse.java:226:20:226:22 | url : String | InsecureWebResourceResponse.java:232:69:232:78 | url : String | -| InsecureWebResourceResponse.java:232:69:232:78 | url : String | InsecureWebResourceResponse.java:234:33:234:35 | url : String | -| InsecureWebResourceResponse.java:234:23:234:36 | parse(...) : Uri | InsecureWebResourceResponse.java:235:63:235:65 | uri : Uri | -| InsecureWebResourceResponse.java:234:33:234:35 | url : String | InsecureWebResourceResponse.java:234:23:234:36 | parse(...) : Uri | -| InsecureWebResourceResponse.java:235:43:235:76 | new FileInputStream(...) : FileInputStream | InsecureWebResourceResponse.java:237:63:237:73 | inputStream | -| InsecureWebResourceResponse.java:235:63:235:65 | uri : Uri | InsecureWebResourceResponse.java:235:63:235:75 | getPath(...) : String | -| InsecureWebResourceResponse.java:235:63:235:75 | getPath(...) : String | InsecureWebResourceResponse.java:235:43:235:76 | new FileInputStream(...) : FileInputStream | -| InsecureWebViewActivity.java:27:27:27:37 | getIntent(...) : Intent | InsecureWebViewActivity.java:27:27:27:64 | getStringExtra(...) : String | -| InsecureWebViewActivity.java:27:27:27:64 | getStringExtra(...) : String | InsecureWebViewActivity.java:28:20:28:27 | inputUrl : String | -| InsecureWebViewActivity.java:28:20:28:27 | inputUrl : String | InsecureWebViewActivity.java:42:28:42:37 | url : String | -| InsecureWebViewActivity.java:42:28:42:37 | url : String | InsecureWebViewActivity.java:43:25:43:27 | url : String | -| InsecureWebViewActivity.java:43:25:43:27 | url : String | InsecureWebViewActivity.java:53:77:53:86 | url : String | -| InsecureWebViewActivity.java:53:77:53:86 | url : String | InsecureWebViewActivity.java:55:41:55:43 | url : String | -| InsecureWebViewActivity.java:55:31:55:44 | parse(...) : Uri | InsecureWebViewActivity.java:56:71:56:73 | uri : Uri | -| InsecureWebViewActivity.java:55:41:55:43 | url : String | InsecureWebViewActivity.java:55:31:55:44 | parse(...) : Uri | -| InsecureWebViewActivity.java:56:51:56:84 | new FileInputStream(...) : FileInputStream | InsecureWebViewActivity.java:58:71:58:81 | inputStream | -| InsecureWebViewActivity.java:56:71:56:73 | uri : Uri | InsecureWebViewActivity.java:56:71:56:83 | getPath(...) : String | -| InsecureWebViewActivity.java:56:71:56:83 | getPath(...) : String | InsecureWebViewActivity.java:56:51:56:84 | new FileInputStream(...) : FileInputStream | +| InsecureWebResourceResponse.java:28:27:28:37 | getIntent(...) : Intent | InsecureWebResourceResponse.java:28:27:28:64 | getStringExtra(...) : String | provenance | | +| InsecureWebResourceResponse.java:28:27:28:64 | getStringExtra(...) : String | InsecureWebResourceResponse.java:30:25:30:32 | inputUrl : String | provenance | | +| InsecureWebResourceResponse.java:28:27:28:64 | getStringExtra(...) : String | InsecureWebResourceResponse.java:32:25:32:32 | inputUrl : String | provenance | | +| InsecureWebResourceResponse.java:28:27:28:64 | getStringExtra(...) : String | InsecureWebResourceResponse.java:34:25:34:32 | inputUrl : String | provenance | | +| InsecureWebResourceResponse.java:28:27:28:64 | getStringExtra(...) : String | InsecureWebResourceResponse.java:36:26:36:33 | inputUrl : String | provenance | | +| InsecureWebResourceResponse.java:28:27:28:64 | getStringExtra(...) : String | InsecureWebResourceResponse.java:38:26:38:33 | inputUrl : String | provenance | | +| InsecureWebResourceResponse.java:28:27:28:64 | getStringExtra(...) : String | InsecureWebResourceResponse.java:40:25:40:32 | inputUrl : String | provenance | | +| InsecureWebResourceResponse.java:28:27:28:64 | getStringExtra(...) : String | InsecureWebResourceResponse.java:42:25:42:32 | inputUrl : String | provenance | | +| InsecureWebResourceResponse.java:28:27:28:64 | getStringExtra(...) : String | InsecureWebResourceResponse.java:44:26:44:33 | inputUrl : String | provenance | | +| InsecureWebResourceResponse.java:30:25:30:32 | inputUrl : String | InsecureWebResourceResponse.java:59:34:59:43 | url : String | provenance | | +| InsecureWebResourceResponse.java:32:25:32:32 | inputUrl : String | InsecureWebResourceResponse.java:80:34:80:43 | url : String | provenance | | +| InsecureWebResourceResponse.java:34:25:34:32 | inputUrl : String | InsecureWebResourceResponse.java:106:34:106:43 | url : String | provenance | | +| InsecureWebResourceResponse.java:36:26:36:33 | inputUrl : String | InsecureWebResourceResponse.java:131:36:131:45 | url : String | provenance | | +| InsecureWebResourceResponse.java:38:26:38:33 | inputUrl : String | InsecureWebResourceResponse.java:156:35:156:44 | url : String | provenance | | +| InsecureWebResourceResponse.java:40:25:40:32 | inputUrl : String | InsecureWebResourceResponse.java:181:34:181:43 | url : String | provenance | | +| InsecureWebResourceResponse.java:42:25:42:32 | inputUrl : String | InsecureWebResourceResponse.java:188:34:188:43 | url : String | provenance | | +| InsecureWebResourceResponse.java:44:26:44:33 | inputUrl : String | InsecureWebResourceResponse.java:217:35:217:44 | url : String | provenance | | +| InsecureWebResourceResponse.java:59:34:59:43 | url : String | InsecureWebResourceResponse.java:75:20:75:22 | url : String | provenance | | +| InsecureWebResourceResponse.java:63:77:63:86 | url : String | InsecureWebResourceResponse.java:65:41:65:43 | url : String | provenance | | +| InsecureWebResourceResponse.java:65:31:65:44 | parse(...) : Uri | InsecureWebResourceResponse.java:66:71:66:73 | uri : Uri | provenance | | +| InsecureWebResourceResponse.java:65:41:65:43 | url : String | InsecureWebResourceResponse.java:65:31:65:44 | parse(...) : Uri | provenance | | +| InsecureWebResourceResponse.java:66:51:66:84 | new FileInputStream(...) : FileInputStream | InsecureWebResourceResponse.java:68:71:68:81 | inputStream | provenance | | +| InsecureWebResourceResponse.java:66:71:66:73 | uri : Uri | InsecureWebResourceResponse.java:66:71:66:83 | getPath(...) : String | provenance | | +| InsecureWebResourceResponse.java:66:71:66:83 | getPath(...) : String | InsecureWebResourceResponse.java:66:51:66:84 | new FileInputStream(...) : FileInputStream | provenance | | +| InsecureWebResourceResponse.java:75:20:75:22 | url : String | InsecureWebResourceResponse.java:63:77:63:86 | url : String | provenance | | +| InsecureWebResourceResponse.java:75:20:75:22 | url : String | InsecureWebResourceResponse.java:84:77:84:86 | url : String | provenance | | +| InsecureWebResourceResponse.java:75:20:75:22 | url : String | InsecureWebResourceResponse.java:110:77:110:86 | url : String | provenance | | +| InsecureWebResourceResponse.java:75:20:75:22 | url : String | InsecureWebResourceResponse.java:192:77:192:102 | request : WebResourceRequest | provenance | | +| InsecureWebResourceResponse.java:75:20:75:22 | url : String | InsecureWebResourceResponse.java:232:69:232:78 | url : String | provenance | | +| InsecureWebResourceResponse.java:80:34:80:43 | url : String | InsecureWebResourceResponse.java:101:20:101:22 | url : String | provenance | | +| InsecureWebResourceResponse.java:84:77:84:86 | url : String | InsecureWebResourceResponse.java:86:41:86:43 | url : String | provenance | | +| InsecureWebResourceResponse.java:86:31:86:44 | parse(...) : Uri | InsecureWebResourceResponse.java:88:66:88:68 | uri : Uri | provenance | | +| InsecureWebResourceResponse.java:86:41:86:43 | url : String | InsecureWebResourceResponse.java:86:31:86:44 | parse(...) : Uri | provenance | | +| InsecureWebResourceResponse.java:88:42:88:90 | new File(...) : File | InsecureWebResourceResponse.java:89:75:89:83 | cacheFile : File | provenance | | +| InsecureWebResourceResponse.java:88:66:88:68 | uri : Uri | InsecureWebResourceResponse.java:88:66:88:89 | getLastPathSegment(...) : String | provenance | | +| InsecureWebResourceResponse.java:88:66:88:89 | getLastPathSegment(...) : String | InsecureWebResourceResponse.java:88:42:88:90 | new File(...) : File | provenance | | +| InsecureWebResourceResponse.java:89:55:89:84 | new FileInputStream(...) : FileInputStream | InsecureWebResourceResponse.java:91:75:91:85 | inputStream | provenance | | +| InsecureWebResourceResponse.java:89:75:89:83 | cacheFile : File | InsecureWebResourceResponse.java:89:55:89:84 | new FileInputStream(...) : FileInputStream | provenance | | +| InsecureWebResourceResponse.java:101:20:101:22 | url : String | InsecureWebResourceResponse.java:63:77:63:86 | url : String | provenance | | +| InsecureWebResourceResponse.java:101:20:101:22 | url : String | InsecureWebResourceResponse.java:84:77:84:86 | url : String | provenance | | +| InsecureWebResourceResponse.java:101:20:101:22 | url : String | InsecureWebResourceResponse.java:110:77:110:86 | url : String | provenance | | +| InsecureWebResourceResponse.java:101:20:101:22 | url : String | InsecureWebResourceResponse.java:192:77:192:102 | request : WebResourceRequest | provenance | | +| InsecureWebResourceResponse.java:101:20:101:22 | url : String | InsecureWebResourceResponse.java:232:69:232:78 | url : String | provenance | | +| InsecureWebResourceResponse.java:106:34:106:43 | url : String | InsecureWebResourceResponse.java:127:20:127:22 | url : String | provenance | | +| InsecureWebResourceResponse.java:110:77:110:86 | url : String | InsecureWebResourceResponse.java:112:41:112:43 | url : String | provenance | | +| InsecureWebResourceResponse.java:112:31:112:44 | parse(...) : Uri | InsecureWebResourceResponse.java:113:35:113:37 | uri : Uri | provenance | | +| InsecureWebResourceResponse.java:112:41:112:43 | url : String | InsecureWebResourceResponse.java:112:31:112:44 | parse(...) : Uri | provenance | | +| InsecureWebResourceResponse.java:113:35:113:37 | uri : Uri | InsecureWebResourceResponse.java:113:35:113:47 | getPath(...) : String | provenance | | +| InsecureWebResourceResponse.java:113:35:113:47 | getPath(...) : String | InsecureWebResourceResponse.java:113:35:113:60 | substring(...) : String | provenance | | +| InsecureWebResourceResponse.java:113:35:113:60 | substring(...) : String | InsecureWebResourceResponse.java:115:75:115:78 | path : String | provenance | | +| InsecureWebResourceResponse.java:115:55:115:108 | new FileInputStream(...) : FileInputStream | InsecureWebResourceResponse.java:117:75:117:85 | inputStream | provenance | | +| InsecureWebResourceResponse.java:115:75:115:78 | path : String | InsecureWebResourceResponse.java:115:75:115:107 | substring(...) : String | provenance | | +| InsecureWebResourceResponse.java:115:75:115:107 | substring(...) : String | InsecureWebResourceResponse.java:115:55:115:108 | new FileInputStream(...) : FileInputStream | provenance | | +| InsecureWebResourceResponse.java:127:20:127:22 | url : String | InsecureWebResourceResponse.java:63:77:63:86 | url : String | provenance | | +| InsecureWebResourceResponse.java:127:20:127:22 | url : String | InsecureWebResourceResponse.java:84:77:84:86 | url : String | provenance | | +| InsecureWebResourceResponse.java:127:20:127:22 | url : String | InsecureWebResourceResponse.java:110:77:110:86 | url : String | provenance | | +| InsecureWebResourceResponse.java:127:20:127:22 | url : String | InsecureWebResourceResponse.java:192:77:192:102 | request : WebResourceRequest | provenance | | +| InsecureWebResourceResponse.java:127:20:127:22 | url : String | InsecureWebResourceResponse.java:232:69:232:78 | url : String | provenance | | +| InsecureWebResourceResponse.java:131:36:131:45 | url : String | InsecureWebResourceResponse.java:152:20:152:22 | url : String | provenance | | +| InsecureWebResourceResponse.java:152:20:152:22 | url : String | InsecureWebResourceResponse.java:63:77:63:86 | url : String | provenance | | +| InsecureWebResourceResponse.java:152:20:152:22 | url : String | InsecureWebResourceResponse.java:84:77:84:86 | url : String | provenance | | +| InsecureWebResourceResponse.java:152:20:152:22 | url : String | InsecureWebResourceResponse.java:110:77:110:86 | url : String | provenance | | +| InsecureWebResourceResponse.java:152:20:152:22 | url : String | InsecureWebResourceResponse.java:192:77:192:102 | request : WebResourceRequest | provenance | | +| InsecureWebResourceResponse.java:152:20:152:22 | url : String | InsecureWebResourceResponse.java:232:69:232:78 | url : String | provenance | | +| InsecureWebResourceResponse.java:156:35:156:44 | url : String | InsecureWebResourceResponse.java:177:20:177:22 | url : String | provenance | | +| InsecureWebResourceResponse.java:177:20:177:22 | url : String | InsecureWebResourceResponse.java:63:77:63:86 | url : String | provenance | | +| InsecureWebResourceResponse.java:177:20:177:22 | url : String | InsecureWebResourceResponse.java:84:77:84:86 | url : String | provenance | | +| InsecureWebResourceResponse.java:177:20:177:22 | url : String | InsecureWebResourceResponse.java:110:77:110:86 | url : String | provenance | | +| InsecureWebResourceResponse.java:177:20:177:22 | url : String | InsecureWebResourceResponse.java:192:77:192:102 | request : WebResourceRequest | provenance | | +| InsecureWebResourceResponse.java:177:20:177:22 | url : String | InsecureWebResourceResponse.java:232:69:232:78 | url : String | provenance | | +| InsecureWebResourceResponse.java:181:34:181:43 | url : String | InsecureWebResourceResponse.java:184:20:184:22 | url : String | provenance | | +| InsecureWebResourceResponse.java:184:20:184:22 | url : String | InsecureWebResourceResponse.java:63:77:63:86 | url : String | provenance | | +| InsecureWebResourceResponse.java:184:20:184:22 | url : String | InsecureWebResourceResponse.java:84:77:84:86 | url : String | provenance | | +| InsecureWebResourceResponse.java:184:20:184:22 | url : String | InsecureWebResourceResponse.java:110:77:110:86 | url : String | provenance | | +| InsecureWebResourceResponse.java:184:20:184:22 | url : String | InsecureWebResourceResponse.java:192:77:192:102 | request : WebResourceRequest | provenance | | +| InsecureWebResourceResponse.java:184:20:184:22 | url : String | InsecureWebResourceResponse.java:232:69:232:78 | url : String | provenance | | +| InsecureWebResourceResponse.java:188:34:188:43 | url : String | InsecureWebResourceResponse.java:209:20:209:22 | url : String | provenance | | +| InsecureWebResourceResponse.java:192:77:192:102 | request : WebResourceRequest | InsecureWebResourceResponse.java:194:31:194:37 | request : WebResourceRequest | provenance | | +| InsecureWebResourceResponse.java:194:31:194:37 | request : WebResourceRequest | InsecureWebResourceResponse.java:194:31:194:46 | getUrl(...) : Uri | provenance | | +| InsecureWebResourceResponse.java:194:31:194:46 | getUrl(...) : Uri | InsecureWebResourceResponse.java:196:66:196:68 | uri : Uri | provenance | | +| InsecureWebResourceResponse.java:196:42:196:90 | new File(...) : File | InsecureWebResourceResponse.java:197:75:197:83 | cacheFile : File | provenance | | +| InsecureWebResourceResponse.java:196:66:196:68 | uri : Uri | InsecureWebResourceResponse.java:196:66:196:89 | getLastPathSegment(...) : String | provenance | | +| InsecureWebResourceResponse.java:196:66:196:89 | getLastPathSegment(...) : String | InsecureWebResourceResponse.java:196:42:196:90 | new File(...) : File | provenance | | +| InsecureWebResourceResponse.java:197:55:197:84 | new FileInputStream(...) : FileInputStream | InsecureWebResourceResponse.java:199:75:199:85 | inputStream | provenance | | +| InsecureWebResourceResponse.java:197:75:197:83 | cacheFile : File | InsecureWebResourceResponse.java:197:55:197:84 | new FileInputStream(...) : FileInputStream | provenance | | +| InsecureWebResourceResponse.java:209:20:209:22 | url : String | InsecureWebResourceResponse.java:63:77:63:86 | url : String | provenance | | +| InsecureWebResourceResponse.java:209:20:209:22 | url : String | InsecureWebResourceResponse.java:84:77:84:86 | url : String | provenance | | +| InsecureWebResourceResponse.java:209:20:209:22 | url : String | InsecureWebResourceResponse.java:110:77:110:86 | url : String | provenance | | +| InsecureWebResourceResponse.java:209:20:209:22 | url : String | InsecureWebResourceResponse.java:192:77:192:102 | request : WebResourceRequest | provenance | | +| InsecureWebResourceResponse.java:209:20:209:22 | url : String | InsecureWebResourceResponse.java:232:69:232:78 | url : String | provenance | | +| InsecureWebResourceResponse.java:217:35:217:44 | url : String | InsecureWebResourceResponse.java:226:20:226:22 | url : String | provenance | | +| InsecureWebResourceResponse.java:226:20:226:22 | url : String | InsecureWebResourceResponse.java:63:77:63:86 | url : String | provenance | | +| InsecureWebResourceResponse.java:226:20:226:22 | url : String | InsecureWebResourceResponse.java:84:77:84:86 | url : String | provenance | | +| InsecureWebResourceResponse.java:226:20:226:22 | url : String | InsecureWebResourceResponse.java:110:77:110:86 | url : String | provenance | | +| InsecureWebResourceResponse.java:226:20:226:22 | url : String | InsecureWebResourceResponse.java:192:77:192:102 | request : WebResourceRequest | provenance | | +| InsecureWebResourceResponse.java:226:20:226:22 | url : String | InsecureWebResourceResponse.java:232:69:232:78 | url : String | provenance | | +| InsecureWebResourceResponse.java:232:69:232:78 | url : String | InsecureWebResourceResponse.java:234:33:234:35 | url : String | provenance | | +| InsecureWebResourceResponse.java:234:23:234:36 | parse(...) : Uri | InsecureWebResourceResponse.java:235:63:235:65 | uri : Uri | provenance | | +| InsecureWebResourceResponse.java:234:33:234:35 | url : String | InsecureWebResourceResponse.java:234:23:234:36 | parse(...) : Uri | provenance | | +| InsecureWebResourceResponse.java:235:43:235:76 | new FileInputStream(...) : FileInputStream | InsecureWebResourceResponse.java:237:63:237:73 | inputStream | provenance | | +| InsecureWebResourceResponse.java:235:63:235:65 | uri : Uri | InsecureWebResourceResponse.java:235:63:235:75 | getPath(...) : String | provenance | | +| InsecureWebResourceResponse.java:235:63:235:75 | getPath(...) : String | InsecureWebResourceResponse.java:235:43:235:76 | new FileInputStream(...) : FileInputStream | provenance | | +| InsecureWebViewActivity.java:27:27:27:37 | getIntent(...) : Intent | InsecureWebViewActivity.java:27:27:27:64 | getStringExtra(...) : String | provenance | | +| InsecureWebViewActivity.java:27:27:27:64 | getStringExtra(...) : String | InsecureWebViewActivity.java:28:20:28:27 | inputUrl : String | provenance | | +| InsecureWebViewActivity.java:28:20:28:27 | inputUrl : String | InsecureWebViewActivity.java:42:28:42:37 | url : String | provenance | | +| InsecureWebViewActivity.java:42:28:42:37 | url : String | InsecureWebViewActivity.java:43:25:43:27 | url : String | provenance | | +| InsecureWebViewActivity.java:43:25:43:27 | url : String | InsecureWebViewActivity.java:53:77:53:86 | url : String | provenance | | +| InsecureWebViewActivity.java:53:77:53:86 | url : String | InsecureWebViewActivity.java:55:41:55:43 | url : String | provenance | | +| InsecureWebViewActivity.java:55:31:55:44 | parse(...) : Uri | InsecureWebViewActivity.java:56:71:56:73 | uri : Uri | provenance | | +| InsecureWebViewActivity.java:55:41:55:43 | url : String | InsecureWebViewActivity.java:55:31:55:44 | parse(...) : Uri | provenance | | +| InsecureWebViewActivity.java:56:51:56:84 | new FileInputStream(...) : FileInputStream | InsecureWebViewActivity.java:58:71:58:81 | inputStream | provenance | | +| InsecureWebViewActivity.java:56:71:56:73 | uri : Uri | InsecureWebViewActivity.java:56:71:56:83 | getPath(...) : String | provenance | | +| InsecureWebViewActivity.java:56:71:56:83 | getPath(...) : String | InsecureWebViewActivity.java:56:51:56:84 | new FileInputStream(...) : FileInputStream | provenance | | nodes | InsecureWebResourceResponse.java:28:27:28:37 | getIntent(...) : Intent | semmle.label | getIntent(...) : Intent | | InsecureWebResourceResponse.java:28:27:28:64 | getStringExtra(...) : String | semmle.label | getStringExtra(...) : String | diff --git a/java/ql/test/experimental/query-tests/security/CWE-200/SensitiveAndroidFileLeak.expected b/java/ql/test/experimental/query-tests/security/CWE-200/SensitiveAndroidFileLeak.expected index 9c5b6ce8b698..739a825664bf 100644 --- a/java/ql/test/experimental/query-tests/security/CWE-200/SensitiveAndroidFileLeak.expected +++ b/java/ql/test/experimental/query-tests/security/CWE-200/SensitiveAndroidFileLeak.expected @@ -1,23 +1,23 @@ edges -| FileService.java:20:31:20:43 | intent : Intent | FileService.java:21:28:21:33 | intent : Intent | -| FileService.java:21:28:21:33 | intent : Intent | FileService.java:21:28:21:64 | getStringExtra(...) : String | -| FileService.java:21:28:21:64 | getStringExtra(...) : String | FileService.java:25:42:25:50 | localPath : String | -| FileService.java:25:13:25:51 | makeParamsToExecute(...) : Object[] | FileService.java:40:41:40:55 | params : Object[] | -| FileService.java:25:13:25:51 | makeParamsToExecute(...) : Object[] [[]] : String | FileService.java:25:13:25:51 | makeParamsToExecute(...) : Object[] | -| FileService.java:25:42:25:50 | localPath : String | FileService.java:25:13:25:51 | makeParamsToExecute(...) : Object[] [[]] : String | -| FileService.java:25:42:25:50 | localPath : String | FileService.java:32:13:32:28 | sourceUri : String | -| FileService.java:32:13:32:28 | sourceUri : String | FileService.java:35:17:35:25 | sourceUri : String | -| FileService.java:34:20:36:13 | {...} : Object[] [[]] : String | FileService.java:34:20:36:13 | new Object[] : Object[] [[]] : String | -| FileService.java:35:17:35:25 | sourceUri : String | FileService.java:34:20:36:13 | {...} : Object[] [[]] : String | -| FileService.java:40:41:40:55 | params : Object[] | FileService.java:44:33:44:52 | (...)... : String[] | -| FileService.java:44:33:44:52 | (...)... : String[] | FileService.java:45:53:45:59 | ...[...] | -| LeakFileActivity2.java:15:13:15:18 | intent : Intent | LeakFileActivity2.java:16:26:16:31 | intent : Intent | -| LeakFileActivity2.java:16:26:16:31 | intent : Intent | FileService.java:20:31:20:43 | intent : Intent | -| LeakFileActivity.java:14:35:14:38 | data : Intent | LeakFileActivity.java:18:40:18:59 | contentIntent : Intent | -| LeakFileActivity.java:18:40:18:59 | contentIntent : Intent | LeakFileActivity.java:19:31:19:43 | contentIntent : Intent | -| LeakFileActivity.java:19:31:19:43 | contentIntent : Intent | LeakFileActivity.java:19:31:19:53 | getData(...) : Uri | -| LeakFileActivity.java:19:31:19:53 | getData(...) : Uri | LeakFileActivity.java:21:58:21:72 | streamsToUpload : Uri | -| LeakFileActivity.java:21:58:21:72 | streamsToUpload : Uri | LeakFileActivity.java:21:58:21:82 | getPath(...) | +| FileService.java:20:31:20:43 | intent : Intent | FileService.java:21:28:21:33 | intent : Intent | provenance | | +| FileService.java:21:28:21:33 | intent : Intent | FileService.java:21:28:21:64 | getStringExtra(...) : String | provenance | | +| FileService.java:21:28:21:64 | getStringExtra(...) : String | FileService.java:25:42:25:50 | localPath : String | provenance | | +| FileService.java:25:13:25:51 | makeParamsToExecute(...) : Object[] | FileService.java:40:41:40:55 | params : Object[] | provenance | | +| FileService.java:25:13:25:51 | makeParamsToExecute(...) : Object[] [[]] : String | FileService.java:25:13:25:51 | makeParamsToExecute(...) : Object[] | provenance | | +| FileService.java:25:42:25:50 | localPath : String | FileService.java:25:13:25:51 | makeParamsToExecute(...) : Object[] [[]] : String | provenance | | +| FileService.java:25:42:25:50 | localPath : String | FileService.java:32:13:32:28 | sourceUri : String | provenance | | +| FileService.java:32:13:32:28 | sourceUri : String | FileService.java:35:17:35:25 | sourceUri : String | provenance | | +| FileService.java:34:20:36:13 | {...} : Object[] [[]] : String | FileService.java:34:20:36:13 | new Object[] : Object[] [[]] : String | provenance | | +| FileService.java:35:17:35:25 | sourceUri : String | FileService.java:34:20:36:13 | {...} : Object[] [[]] : String | provenance | | +| FileService.java:40:41:40:55 | params : Object[] | FileService.java:44:33:44:52 | (...)... : String[] | provenance | | +| FileService.java:44:33:44:52 | (...)... : String[] | FileService.java:45:53:45:59 | ...[...] | provenance | | +| LeakFileActivity2.java:15:13:15:18 | intent : Intent | LeakFileActivity2.java:16:26:16:31 | intent : Intent | provenance | | +| LeakFileActivity2.java:16:26:16:31 | intent : Intent | FileService.java:20:31:20:43 | intent : Intent | provenance | | +| LeakFileActivity.java:14:35:14:38 | data : Intent | LeakFileActivity.java:18:40:18:59 | contentIntent : Intent | provenance | | +| LeakFileActivity.java:18:40:18:59 | contentIntent : Intent | LeakFileActivity.java:19:31:19:43 | contentIntent : Intent | provenance | | +| LeakFileActivity.java:19:31:19:43 | contentIntent : Intent | LeakFileActivity.java:19:31:19:53 | getData(...) : Uri | provenance | | +| LeakFileActivity.java:19:31:19:53 | getData(...) : Uri | LeakFileActivity.java:21:58:21:72 | streamsToUpload : Uri | provenance | | +| LeakFileActivity.java:21:58:21:72 | streamsToUpload : Uri | LeakFileActivity.java:21:58:21:82 | getPath(...) | provenance | | nodes | FileService.java:20:31:20:43 | intent : Intent | semmle.label | intent : Intent | | FileService.java:21:28:21:33 | intent : Intent | semmle.label | intent : Intent | diff --git a/java/ql/test/experimental/query-tests/security/CWE-208/NotConstantTimeCheckOnSignature/Test.expected b/java/ql/test/experimental/query-tests/security/CWE-208/NotConstantTimeCheckOnSignature/Test.expected index ec275d26d748..13c2a03ee2b4 100644 --- a/java/ql/test/experimental/query-tests/security/CWE-208/NotConstantTimeCheckOnSignature/Test.expected +++ b/java/ql/test/experimental/query-tests/security/CWE-208/NotConstantTimeCheckOnSignature/Test.expected @@ -1,7 +1,7 @@ edges -| Test.java:14:28:14:44 | doFinal(...) : byte[] | Test.java:15:43:15:51 | actualMac | -| Test.java:30:28:30:40 | sign(...) : byte[] | Test.java:31:40:31:48 | signature | -| Test.java:47:22:47:46 | doFinal(...) : byte[] | Test.java:48:40:48:42 | tag | +| Test.java:14:28:14:44 | doFinal(...) : byte[] | Test.java:15:43:15:51 | actualMac | provenance | | +| Test.java:30:28:30:40 | sign(...) : byte[] | Test.java:31:40:31:48 | signature | provenance | | +| Test.java:47:22:47:46 | doFinal(...) : byte[] | Test.java:48:40:48:42 | tag | provenance | | nodes | Test.java:14:28:14:44 | doFinal(...) : byte[] | semmle.label | doFinal(...) : byte[] | | Test.java:15:43:15:51 | actualMac | semmle.label | actualMac | diff --git a/java/ql/test/experimental/query-tests/security/CWE-208/TimingAttackAgainstSignagure/Test.expected b/java/ql/test/experimental/query-tests/security/CWE-208/TimingAttackAgainstSignagure/Test.expected index c5d41465cb28..64b6414d2e02 100644 --- a/java/ql/test/experimental/query-tests/security/CWE-208/TimingAttackAgainstSignagure/Test.expected +++ b/java/ql/test/experimental/query-tests/security/CWE-208/TimingAttackAgainstSignagure/Test.expected @@ -1,15 +1,15 @@ edges -| Test.java:21:32:21:48 | doFinal(...) : byte[] | Test.java:23:47:23:55 | actualMac | -| Test.java:34:25:34:33 | actualMac : byte[] | Test.java:36:47:36:55 | actualMac | -| Test.java:59:32:59:44 | sign(...) : byte[] | Test.java:61:44:61:52 | signature | -| Test.java:73:25:73:33 | signature : byte[] | Test.java:75:44:75:52 | signature | -| Test.java:99:26:99:45 | doFinal(...) : byte[] | Test.java:101:49:101:51 | tag | -| Test.java:116:28:116:30 | tag : byte[] | Test.java:118:44:118:46 | tag | -| Test.java:134:56:134:58 | tag : ByteBuffer | Test.java:136:44:136:46 | tag : ByteBuffer | -| Test.java:136:44:136:46 | tag : ByteBuffer | Test.java:136:44:136:54 | array(...) | -| Test.java:148:56:148:58 | tag : ByteBuffer | Test.java:150:53:150:55 | tag | -| Test.java:174:26:174:50 | doFinal(...) : byte[] | Test.java:176:44:176:46 | tag | -| Test.java:201:34:201:50 | doFinal(...) : byte[] | Test.java:204:26:204:36 | computedTag | +| Test.java:21:32:21:48 | doFinal(...) : byte[] | Test.java:23:47:23:55 | actualMac | provenance | | +| Test.java:34:25:34:33 | actualMac : byte[] | Test.java:36:47:36:55 | actualMac | provenance | | +| Test.java:59:32:59:44 | sign(...) : byte[] | Test.java:61:44:61:52 | signature | provenance | | +| Test.java:73:25:73:33 | signature : byte[] | Test.java:75:44:75:52 | signature | provenance | | +| Test.java:99:26:99:45 | doFinal(...) : byte[] | Test.java:101:49:101:51 | tag | provenance | | +| Test.java:116:28:116:30 | tag : byte[] | Test.java:118:44:118:46 | tag | provenance | | +| Test.java:134:56:134:58 | tag : ByteBuffer | Test.java:136:44:136:46 | tag : ByteBuffer | provenance | | +| Test.java:136:44:136:46 | tag : ByteBuffer | Test.java:136:44:136:54 | array(...) | provenance | | +| Test.java:148:56:148:58 | tag : ByteBuffer | Test.java:150:53:150:55 | tag | provenance | | +| Test.java:174:26:174:50 | doFinal(...) : byte[] | Test.java:176:44:176:46 | tag | provenance | | +| Test.java:201:34:201:50 | doFinal(...) : byte[] | Test.java:204:26:204:36 | computedTag | provenance | | nodes | Test.java:21:32:21:48 | doFinal(...) : byte[] | semmle.label | doFinal(...) : byte[] | | Test.java:23:47:23:55 | actualMac | semmle.label | actualMac | diff --git a/java/ql/test/experimental/query-tests/security/CWE-299/DisabledRevocationChecking.expected b/java/ql/test/experimental/query-tests/security/CWE-299/DisabledRevocationChecking.expected index ab68d9578b4a..054956fdd2c1 100644 --- a/java/ql/test/experimental/query-tests/security/CWE-299/DisabledRevocationChecking.expected +++ b/java/ql/test/experimental/query-tests/security/CWE-299/DisabledRevocationChecking.expected @@ -1,10 +1,10 @@ edges -| DisabledRevocationChecking.java:17:5:17:8 | this <.field> [post update] : DisabledRevocationChecking [flag] : Boolean | DisabledRevocationChecking.java:21:5:21:31 | this <.method> [post update] : DisabledRevocationChecking [flag] : Boolean | -| DisabledRevocationChecking.java:17:12:17:16 | false : Boolean | DisabledRevocationChecking.java:17:5:17:8 | this <.field> [post update] : DisabledRevocationChecking [flag] : Boolean | -| DisabledRevocationChecking.java:21:5:21:31 | this <.method> [post update] : DisabledRevocationChecking [flag] : Boolean | DisabledRevocationChecking.java:22:5:22:31 | this <.method> : DisabledRevocationChecking [flag] : Boolean | -| DisabledRevocationChecking.java:22:5:22:31 | this <.method> : DisabledRevocationChecking [flag] : Boolean | DisabledRevocationChecking.java:25:15:25:22 | parameter this : DisabledRevocationChecking [flag] : Boolean | -| DisabledRevocationChecking.java:25:15:25:22 | parameter this : DisabledRevocationChecking [flag] : Boolean | DisabledRevocationChecking.java:28:33:28:36 | this <.field> : DisabledRevocationChecking [flag] : Boolean | -| DisabledRevocationChecking.java:28:33:28:36 | this <.field> : DisabledRevocationChecking [flag] : Boolean | DisabledRevocationChecking.java:28:33:28:36 | flag | +| DisabledRevocationChecking.java:17:5:17:8 | this <.field> [post update] : DisabledRevocationChecking [flag] : Boolean | DisabledRevocationChecking.java:21:5:21:31 | this <.method> [post update] : DisabledRevocationChecking [flag] : Boolean | provenance | | +| DisabledRevocationChecking.java:17:12:17:16 | false : Boolean | DisabledRevocationChecking.java:17:5:17:8 | this <.field> [post update] : DisabledRevocationChecking [flag] : Boolean | provenance | | +| DisabledRevocationChecking.java:21:5:21:31 | this <.method> [post update] : DisabledRevocationChecking [flag] : Boolean | DisabledRevocationChecking.java:22:5:22:31 | this <.method> : DisabledRevocationChecking [flag] : Boolean | provenance | | +| DisabledRevocationChecking.java:22:5:22:31 | this <.method> : DisabledRevocationChecking [flag] : Boolean | DisabledRevocationChecking.java:25:15:25:22 | parameter this : DisabledRevocationChecking [flag] : Boolean | provenance | | +| DisabledRevocationChecking.java:25:15:25:22 | parameter this : DisabledRevocationChecking [flag] : Boolean | DisabledRevocationChecking.java:28:33:28:36 | this <.field> : DisabledRevocationChecking [flag] : Boolean | provenance | | +| DisabledRevocationChecking.java:28:33:28:36 | this <.field> : DisabledRevocationChecking [flag] : Boolean | DisabledRevocationChecking.java:28:33:28:36 | flag | provenance | | nodes | DisabledRevocationChecking.java:17:5:17:8 | this <.field> [post update] : DisabledRevocationChecking [flag] : Boolean | semmle.label | this <.field> [post update] : DisabledRevocationChecking [flag] : Boolean | | DisabledRevocationChecking.java:17:12:17:16 | false : Boolean | semmle.label | false : Boolean | diff --git a/java/ql/test/experimental/query-tests/security/CWE-327/UnsafeTlsVersion.expected b/java/ql/test/experimental/query-tests/security/CWE-327/UnsafeTlsVersion.expected index 53315833c147..af60203749cf 100644 --- a/java/ql/test/experimental/query-tests/security/CWE-327/UnsafeTlsVersion.expected +++ b/java/ql/test/experimental/query-tests/security/CWE-327/UnsafeTlsVersion.expected @@ -1,59 +1,59 @@ edges -| UnsafeTlsVersion.java:31:5:31:46 | new ..[] { .. } : String[] [[]] : String | UnsafeTlsVersion.java:43:74:43:92 | protocols : String[] [[]] : String | -| UnsafeTlsVersion.java:31:39:31:45 | "SSLv3" : String | UnsafeTlsVersion.java:31:5:31:46 | new ..[] { .. } : String[] [[]] : String | -| UnsafeTlsVersion.java:32:5:32:44 | new ..[] { .. } : String[] [[]] : String | UnsafeTlsVersion.java:43:74:43:92 | protocols : String[] [[]] : String | -| UnsafeTlsVersion.java:32:39:32:43 | "TLS" : String | UnsafeTlsVersion.java:32:5:32:44 | new ..[] { .. } : String[] [[]] : String | -| UnsafeTlsVersion.java:33:5:33:46 | new ..[] { .. } : String[] [[]] : String | UnsafeTlsVersion.java:43:74:43:92 | protocols : String[] [[]] : String | -| UnsafeTlsVersion.java:33:39:33:45 | "TLSv1" : String | UnsafeTlsVersion.java:33:5:33:46 | new ..[] { .. } : String[] [[]] : String | -| UnsafeTlsVersion.java:34:5:34:48 | new ..[] { .. } : String[] [[]] : String | UnsafeTlsVersion.java:43:74:43:92 | protocols : String[] [[]] : String | -| UnsafeTlsVersion.java:34:39:34:47 | "TLSv1.1" : String | UnsafeTlsVersion.java:34:5:34:48 | new ..[] { .. } : String[] [[]] : String | -| UnsafeTlsVersion.java:35:5:35:68 | new ..[] { .. } : String[] [[]] : String | UnsafeTlsVersion.java:43:74:43:92 | protocols : String[] [[]] : String | -| UnsafeTlsVersion.java:35:39:35:45 | "TLSv1" : String | UnsafeTlsVersion.java:35:5:35:68 | new ..[] { .. } : String[] [[]] : String | -| UnsafeTlsVersion.java:35:48:35:56 | "TLSv1.1" : String | UnsafeTlsVersion.java:35:5:35:68 | new ..[] { .. } : String[] [[]] : String | -| UnsafeTlsVersion.java:43:74:43:92 | protocols : String[] [[]] : String | UnsafeTlsVersion.java:44:44:44:52 | protocols | -| UnsafeTlsVersion.java:50:38:50:61 | {...} : String[] [[]] : String | UnsafeTlsVersion.java:50:38:50:61 | new String[] | -| UnsafeTlsVersion.java:50:53:50:59 | "SSLv3" : String | UnsafeTlsVersion.java:50:38:50:61 | {...} : String[] [[]] : String | -| UnsafeTlsVersion.java:51:38:51:59 | {...} : String[] [[]] : String | UnsafeTlsVersion.java:51:38:51:59 | new String[] | -| UnsafeTlsVersion.java:51:53:51:57 | "TLS" : String | UnsafeTlsVersion.java:51:38:51:59 | {...} : String[] [[]] : String | -| UnsafeTlsVersion.java:52:38:52:61 | {...} : String[] [[]] : String | UnsafeTlsVersion.java:52:38:52:61 | new String[] | -| UnsafeTlsVersion.java:52:53:52:59 | "TLSv1" : String | UnsafeTlsVersion.java:52:38:52:61 | {...} : String[] [[]] : String | -| UnsafeTlsVersion.java:53:38:53:63 | {...} : String[] [[]] : String | UnsafeTlsVersion.java:53:38:53:63 | new String[] | -| UnsafeTlsVersion.java:53:53:53:61 | "TLSv1.1" : String | UnsafeTlsVersion.java:53:38:53:63 | {...} : String[] [[]] : String | -| UnsafeTlsVersion.java:56:29:56:65 | {...} : String[] [[]] : String | UnsafeTlsVersion.java:56:29:56:65 | new String[] | -| UnsafeTlsVersion.java:56:44:56:52 | "TLSv1.1" : String | UnsafeTlsVersion.java:56:29:56:65 | {...} : String[] [[]] : String | -| UnsafeTlsVersion.java:68:5:68:28 | new ..[] { .. } : String[] [[]] : String | UnsafeTlsVersion.java:79:43:79:61 | protocols : String[] [[]] : String | -| UnsafeTlsVersion.java:68:21:68:27 | "SSLv3" : String | UnsafeTlsVersion.java:68:5:68:28 | new ..[] { .. } : String[] [[]] : String | -| UnsafeTlsVersion.java:69:5:69:26 | new ..[] { .. } : String[] [[]] : String | UnsafeTlsVersion.java:79:43:79:61 | protocols : String[] [[]] : String | -| UnsafeTlsVersion.java:69:21:69:25 | "TLS" : String | UnsafeTlsVersion.java:69:5:69:26 | new ..[] { .. } : String[] [[]] : String | -| UnsafeTlsVersion.java:70:5:70:28 | new ..[] { .. } : String[] [[]] : String | UnsafeTlsVersion.java:79:43:79:61 | protocols : String[] [[]] : String | -| UnsafeTlsVersion.java:70:21:70:27 | "TLSv1" : String | UnsafeTlsVersion.java:70:5:70:28 | new ..[] { .. } : String[] [[]] : String | -| UnsafeTlsVersion.java:71:5:71:30 | new ..[] { .. } : String[] [[]] : String | UnsafeTlsVersion.java:79:43:79:61 | protocols : String[] [[]] : String | -| UnsafeTlsVersion.java:71:21:71:29 | "TLSv1.1" : String | UnsafeTlsVersion.java:71:5:71:30 | new ..[] { .. } : String[] [[]] : String | -| UnsafeTlsVersion.java:72:5:72:41 | new ..[] { .. } : String[] [[]] : String | UnsafeTlsVersion.java:79:43:79:61 | protocols : String[] [[]] : String | -| UnsafeTlsVersion.java:72:21:72:29 | "TLSv1.1" : String | UnsafeTlsVersion.java:72:5:72:41 | new ..[] { .. } : String[] [[]] : String | -| UnsafeTlsVersion.java:79:43:79:61 | protocols : String[] [[]] : String | UnsafeTlsVersion.java:81:32:81:40 | protocols | -| UnsafeTlsVersion.java:88:5:88:34 | new ..[] { .. } : String[] [[]] : String | UnsafeTlsVersion.java:99:55:99:73 | protocols : String[] [[]] : String | -| UnsafeTlsVersion.java:88:27:88:33 | "SSLv3" : String | UnsafeTlsVersion.java:88:5:88:34 | new ..[] { .. } : String[] [[]] : String | -| UnsafeTlsVersion.java:89:5:89:32 | new ..[] { .. } : String[] [[]] : String | UnsafeTlsVersion.java:99:55:99:73 | protocols : String[] [[]] : String | -| UnsafeTlsVersion.java:89:27:89:31 | "TLS" : String | UnsafeTlsVersion.java:89:5:89:32 | new ..[] { .. } : String[] [[]] : String | -| UnsafeTlsVersion.java:90:5:90:34 | new ..[] { .. } : String[] [[]] : String | UnsafeTlsVersion.java:99:55:99:73 | protocols : String[] [[]] : String | -| UnsafeTlsVersion.java:90:27:90:33 | "TLSv1" : String | UnsafeTlsVersion.java:90:5:90:34 | new ..[] { .. } : String[] [[]] : String | -| UnsafeTlsVersion.java:91:5:91:36 | new ..[] { .. } : String[] [[]] : String | UnsafeTlsVersion.java:99:55:99:73 | protocols : String[] [[]] : String | -| UnsafeTlsVersion.java:91:27:91:35 | "TLSv1.1" : String | UnsafeTlsVersion.java:91:5:91:36 | new ..[] { .. } : String[] [[]] : String | -| UnsafeTlsVersion.java:92:5:92:47 | new ..[] { .. } : String[] [[]] : String | UnsafeTlsVersion.java:99:55:99:73 | protocols : String[] [[]] : String | -| UnsafeTlsVersion.java:92:27:92:35 | "TLSv1.1" : String | UnsafeTlsVersion.java:92:5:92:47 | new ..[] { .. } : String[] [[]] : String | -| UnsafeTlsVersion.java:99:55:99:73 | protocols : String[] [[]] : String | UnsafeTlsVersion.java:101:32:101:40 | protocols | -| UnsafeTlsVersion.java:108:5:108:28 | new ..[] { .. } : String[] [[]] : String | UnsafeTlsVersion.java:119:43:119:61 | protocols : String[] [[]] : String | -| UnsafeTlsVersion.java:108:21:108:27 | "SSLv3" : String | UnsafeTlsVersion.java:108:5:108:28 | new ..[] { .. } : String[] [[]] : String | -| UnsafeTlsVersion.java:109:5:109:26 | new ..[] { .. } : String[] [[]] : String | UnsafeTlsVersion.java:119:43:119:61 | protocols : String[] [[]] : String | -| UnsafeTlsVersion.java:109:21:109:25 | "TLS" : String | UnsafeTlsVersion.java:109:5:109:26 | new ..[] { .. } : String[] [[]] : String | -| UnsafeTlsVersion.java:110:5:110:28 | new ..[] { .. } : String[] [[]] : String | UnsafeTlsVersion.java:119:43:119:61 | protocols : String[] [[]] : String | -| UnsafeTlsVersion.java:110:21:110:27 | "TLSv1" : String | UnsafeTlsVersion.java:110:5:110:28 | new ..[] { .. } : String[] [[]] : String | -| UnsafeTlsVersion.java:111:5:111:30 | new ..[] { .. } : String[] [[]] : String | UnsafeTlsVersion.java:119:43:119:61 | protocols : String[] [[]] : String | -| UnsafeTlsVersion.java:111:21:111:29 | "TLSv1.1" : String | UnsafeTlsVersion.java:111:5:111:30 | new ..[] { .. } : String[] [[]] : String | -| UnsafeTlsVersion.java:112:5:112:41 | new ..[] { .. } : String[] [[]] : String | UnsafeTlsVersion.java:119:43:119:61 | protocols : String[] [[]] : String | -| UnsafeTlsVersion.java:112:21:112:29 | "TLSv1.1" : String | UnsafeTlsVersion.java:112:5:112:41 | new ..[] { .. } : String[] [[]] : String | -| UnsafeTlsVersion.java:119:43:119:61 | protocols : String[] [[]] : String | UnsafeTlsVersion.java:121:32:121:40 | protocols | +| UnsafeTlsVersion.java:31:5:31:46 | new ..[] { .. } : String[] [[]] : String | UnsafeTlsVersion.java:43:74:43:92 | protocols : String[] [[]] : String | provenance | | +| UnsafeTlsVersion.java:31:39:31:45 | "SSLv3" : String | UnsafeTlsVersion.java:31:5:31:46 | new ..[] { .. } : String[] [[]] : String | provenance | | +| UnsafeTlsVersion.java:32:5:32:44 | new ..[] { .. } : String[] [[]] : String | UnsafeTlsVersion.java:43:74:43:92 | protocols : String[] [[]] : String | provenance | | +| UnsafeTlsVersion.java:32:39:32:43 | "TLS" : String | UnsafeTlsVersion.java:32:5:32:44 | new ..[] { .. } : String[] [[]] : String | provenance | | +| UnsafeTlsVersion.java:33:5:33:46 | new ..[] { .. } : String[] [[]] : String | UnsafeTlsVersion.java:43:74:43:92 | protocols : String[] [[]] : String | provenance | | +| UnsafeTlsVersion.java:33:39:33:45 | "TLSv1" : String | UnsafeTlsVersion.java:33:5:33:46 | new ..[] { .. } : String[] [[]] : String | provenance | | +| UnsafeTlsVersion.java:34:5:34:48 | new ..[] { .. } : String[] [[]] : String | UnsafeTlsVersion.java:43:74:43:92 | protocols : String[] [[]] : String | provenance | | +| UnsafeTlsVersion.java:34:39:34:47 | "TLSv1.1" : String | UnsafeTlsVersion.java:34:5:34:48 | new ..[] { .. } : String[] [[]] : String | provenance | | +| UnsafeTlsVersion.java:35:5:35:68 | new ..[] { .. } : String[] [[]] : String | UnsafeTlsVersion.java:43:74:43:92 | protocols : String[] [[]] : String | provenance | | +| UnsafeTlsVersion.java:35:39:35:45 | "TLSv1" : String | UnsafeTlsVersion.java:35:5:35:68 | new ..[] { .. } : String[] [[]] : String | provenance | | +| UnsafeTlsVersion.java:35:48:35:56 | "TLSv1.1" : String | UnsafeTlsVersion.java:35:5:35:68 | new ..[] { .. } : String[] [[]] : String | provenance | | +| UnsafeTlsVersion.java:43:74:43:92 | protocols : String[] [[]] : String | UnsafeTlsVersion.java:44:44:44:52 | protocols | provenance | | +| UnsafeTlsVersion.java:50:38:50:61 | {...} : String[] [[]] : String | UnsafeTlsVersion.java:50:38:50:61 | new String[] | provenance | | +| UnsafeTlsVersion.java:50:53:50:59 | "SSLv3" : String | UnsafeTlsVersion.java:50:38:50:61 | {...} : String[] [[]] : String | provenance | | +| UnsafeTlsVersion.java:51:38:51:59 | {...} : String[] [[]] : String | UnsafeTlsVersion.java:51:38:51:59 | new String[] | provenance | | +| UnsafeTlsVersion.java:51:53:51:57 | "TLS" : String | UnsafeTlsVersion.java:51:38:51:59 | {...} : String[] [[]] : String | provenance | | +| UnsafeTlsVersion.java:52:38:52:61 | {...} : String[] [[]] : String | UnsafeTlsVersion.java:52:38:52:61 | new String[] | provenance | | +| UnsafeTlsVersion.java:52:53:52:59 | "TLSv1" : String | UnsafeTlsVersion.java:52:38:52:61 | {...} : String[] [[]] : String | provenance | | +| UnsafeTlsVersion.java:53:38:53:63 | {...} : String[] [[]] : String | UnsafeTlsVersion.java:53:38:53:63 | new String[] | provenance | | +| UnsafeTlsVersion.java:53:53:53:61 | "TLSv1.1" : String | UnsafeTlsVersion.java:53:38:53:63 | {...} : String[] [[]] : String | provenance | | +| UnsafeTlsVersion.java:56:29:56:65 | {...} : String[] [[]] : String | UnsafeTlsVersion.java:56:29:56:65 | new String[] | provenance | | +| UnsafeTlsVersion.java:56:44:56:52 | "TLSv1.1" : String | UnsafeTlsVersion.java:56:29:56:65 | {...} : String[] [[]] : String | provenance | | +| UnsafeTlsVersion.java:68:5:68:28 | new ..[] { .. } : String[] [[]] : String | UnsafeTlsVersion.java:79:43:79:61 | protocols : String[] [[]] : String | provenance | | +| UnsafeTlsVersion.java:68:21:68:27 | "SSLv3" : String | UnsafeTlsVersion.java:68:5:68:28 | new ..[] { .. } : String[] [[]] : String | provenance | | +| UnsafeTlsVersion.java:69:5:69:26 | new ..[] { .. } : String[] [[]] : String | UnsafeTlsVersion.java:79:43:79:61 | protocols : String[] [[]] : String | provenance | | +| UnsafeTlsVersion.java:69:21:69:25 | "TLS" : String | UnsafeTlsVersion.java:69:5:69:26 | new ..[] { .. } : String[] [[]] : String | provenance | | +| UnsafeTlsVersion.java:70:5:70:28 | new ..[] { .. } : String[] [[]] : String | UnsafeTlsVersion.java:79:43:79:61 | protocols : String[] [[]] : String | provenance | | +| UnsafeTlsVersion.java:70:21:70:27 | "TLSv1" : String | UnsafeTlsVersion.java:70:5:70:28 | new ..[] { .. } : String[] [[]] : String | provenance | | +| UnsafeTlsVersion.java:71:5:71:30 | new ..[] { .. } : String[] [[]] : String | UnsafeTlsVersion.java:79:43:79:61 | protocols : String[] [[]] : String | provenance | | +| UnsafeTlsVersion.java:71:21:71:29 | "TLSv1.1" : String | UnsafeTlsVersion.java:71:5:71:30 | new ..[] { .. } : String[] [[]] : String | provenance | | +| UnsafeTlsVersion.java:72:5:72:41 | new ..[] { .. } : String[] [[]] : String | UnsafeTlsVersion.java:79:43:79:61 | protocols : String[] [[]] : String | provenance | | +| UnsafeTlsVersion.java:72:21:72:29 | "TLSv1.1" : String | UnsafeTlsVersion.java:72:5:72:41 | new ..[] { .. } : String[] [[]] : String | provenance | | +| UnsafeTlsVersion.java:79:43:79:61 | protocols : String[] [[]] : String | UnsafeTlsVersion.java:81:32:81:40 | protocols | provenance | | +| UnsafeTlsVersion.java:88:5:88:34 | new ..[] { .. } : String[] [[]] : String | UnsafeTlsVersion.java:99:55:99:73 | protocols : String[] [[]] : String | provenance | | +| UnsafeTlsVersion.java:88:27:88:33 | "SSLv3" : String | UnsafeTlsVersion.java:88:5:88:34 | new ..[] { .. } : String[] [[]] : String | provenance | | +| UnsafeTlsVersion.java:89:5:89:32 | new ..[] { .. } : String[] [[]] : String | UnsafeTlsVersion.java:99:55:99:73 | protocols : String[] [[]] : String | provenance | | +| UnsafeTlsVersion.java:89:27:89:31 | "TLS" : String | UnsafeTlsVersion.java:89:5:89:32 | new ..[] { .. } : String[] [[]] : String | provenance | | +| UnsafeTlsVersion.java:90:5:90:34 | new ..[] { .. } : String[] [[]] : String | UnsafeTlsVersion.java:99:55:99:73 | protocols : String[] [[]] : String | provenance | | +| UnsafeTlsVersion.java:90:27:90:33 | "TLSv1" : String | UnsafeTlsVersion.java:90:5:90:34 | new ..[] { .. } : String[] [[]] : String | provenance | | +| UnsafeTlsVersion.java:91:5:91:36 | new ..[] { .. } : String[] [[]] : String | UnsafeTlsVersion.java:99:55:99:73 | protocols : String[] [[]] : String | provenance | | +| UnsafeTlsVersion.java:91:27:91:35 | "TLSv1.1" : String | UnsafeTlsVersion.java:91:5:91:36 | new ..[] { .. } : String[] [[]] : String | provenance | | +| UnsafeTlsVersion.java:92:5:92:47 | new ..[] { .. } : String[] [[]] : String | UnsafeTlsVersion.java:99:55:99:73 | protocols : String[] [[]] : String | provenance | | +| UnsafeTlsVersion.java:92:27:92:35 | "TLSv1.1" : String | UnsafeTlsVersion.java:92:5:92:47 | new ..[] { .. } : String[] [[]] : String | provenance | | +| UnsafeTlsVersion.java:99:55:99:73 | protocols : String[] [[]] : String | UnsafeTlsVersion.java:101:32:101:40 | protocols | provenance | | +| UnsafeTlsVersion.java:108:5:108:28 | new ..[] { .. } : String[] [[]] : String | UnsafeTlsVersion.java:119:43:119:61 | protocols : String[] [[]] : String | provenance | | +| UnsafeTlsVersion.java:108:21:108:27 | "SSLv3" : String | UnsafeTlsVersion.java:108:5:108:28 | new ..[] { .. } : String[] [[]] : String | provenance | | +| UnsafeTlsVersion.java:109:5:109:26 | new ..[] { .. } : String[] [[]] : String | UnsafeTlsVersion.java:119:43:119:61 | protocols : String[] [[]] : String | provenance | | +| UnsafeTlsVersion.java:109:21:109:25 | "TLS" : String | UnsafeTlsVersion.java:109:5:109:26 | new ..[] { .. } : String[] [[]] : String | provenance | | +| UnsafeTlsVersion.java:110:5:110:28 | new ..[] { .. } : String[] [[]] : String | UnsafeTlsVersion.java:119:43:119:61 | protocols : String[] [[]] : String | provenance | | +| UnsafeTlsVersion.java:110:21:110:27 | "TLSv1" : String | UnsafeTlsVersion.java:110:5:110:28 | new ..[] { .. } : String[] [[]] : String | provenance | | +| UnsafeTlsVersion.java:111:5:111:30 | new ..[] { .. } : String[] [[]] : String | UnsafeTlsVersion.java:119:43:119:61 | protocols : String[] [[]] : String | provenance | | +| UnsafeTlsVersion.java:111:21:111:29 | "TLSv1.1" : String | UnsafeTlsVersion.java:111:5:111:30 | new ..[] { .. } : String[] [[]] : String | provenance | | +| UnsafeTlsVersion.java:112:5:112:41 | new ..[] { .. } : String[] [[]] : String | UnsafeTlsVersion.java:119:43:119:61 | protocols : String[] [[]] : String | provenance | | +| UnsafeTlsVersion.java:112:21:112:29 | "TLSv1.1" : String | UnsafeTlsVersion.java:112:5:112:41 | new ..[] { .. } : String[] [[]] : String | provenance | | +| UnsafeTlsVersion.java:119:43:119:61 | protocols : String[] [[]] : String | UnsafeTlsVersion.java:121:32:121:40 | protocols | provenance | | nodes | UnsafeTlsVersion.java:16:28:16:32 | "SSL" | semmle.label | "SSL" | | UnsafeTlsVersion.java:17:28:17:34 | "SSLv2" | semmle.label | "SSLv2" | diff --git a/java/ql/test/experimental/query-tests/security/CWE-346/UnvalidatedCors.expected b/java/ql/test/experimental/query-tests/security/CWE-346/UnvalidatedCors.expected index 845406aabe71..c803d30fa2fe 100644 --- a/java/ql/test/experimental/query-tests/security/CWE-346/UnvalidatedCors.expected +++ b/java/ql/test/experimental/query-tests/security/CWE-346/UnvalidatedCors.expected @@ -1,5 +1,5 @@ edges -| UnvalidatedCors.java:21:22:21:48 | getHeader(...) : String | UnvalidatedCors.java:27:67:27:69 | url | +| UnvalidatedCors.java:21:22:21:48 | getHeader(...) : String | UnvalidatedCors.java:27:67:27:69 | url | provenance | | nodes | UnvalidatedCors.java:21:22:21:48 | getHeader(...) : String | semmle.label | getHeader(...) : String | | UnvalidatedCors.java:27:67:27:69 | url | semmle.label | url | diff --git a/java/ql/test/experimental/query-tests/security/CWE-348/ClientSuppliedIpUsedInSecurityCheck.expected b/java/ql/test/experimental/query-tests/security/CWE-348/ClientSuppliedIpUsedInSecurityCheck.expected index e6589ba17872..1fa40af94f29 100644 --- a/java/ql/test/experimental/query-tests/security/CWE-348/ClientSuppliedIpUsedInSecurityCheck.expected +++ b/java/ql/test/experimental/query-tests/security/CWE-348/ClientSuppliedIpUsedInSecurityCheck.expected @@ -1,11 +1,11 @@ edges -| ClientSuppliedIpUsedInSecurityCheck.java:16:21:16:33 | getClientIP(...) : String | ClientSuppliedIpUsedInSecurityCheck.java:17:37:17:38 | ip | -| ClientSuppliedIpUsedInSecurityCheck.java:24:21:24:33 | getClientIP(...) : String | ClientSuppliedIpUsedInSecurityCheck.java:25:33:25:34 | ip | -| ClientSuppliedIpUsedInSecurityCheck.java:43:27:43:62 | getHeader(...) : String | ClientSuppliedIpUsedInSecurityCheck.java:47:16:47:23 | xfHeader : String | -| ClientSuppliedIpUsedInSecurityCheck.java:47:16:47:23 | xfHeader : String | ClientSuppliedIpUsedInSecurityCheck.java:47:16:47:34 | split(...) : String[] | -| ClientSuppliedIpUsedInSecurityCheck.java:47:16:47:34 | split(...) : String[] | ClientSuppliedIpUsedInSecurityCheck.java:47:16:47:37 | ...[...] : String | -| ClientSuppliedIpUsedInSecurityCheck.java:47:16:47:37 | ...[...] : String | ClientSuppliedIpUsedInSecurityCheck.java:16:21:16:33 | getClientIP(...) : String | -| ClientSuppliedIpUsedInSecurityCheck.java:47:16:47:37 | ...[...] : String | ClientSuppliedIpUsedInSecurityCheck.java:24:21:24:33 | getClientIP(...) : String | +| ClientSuppliedIpUsedInSecurityCheck.java:16:21:16:33 | getClientIP(...) : String | ClientSuppliedIpUsedInSecurityCheck.java:17:37:17:38 | ip | provenance | | +| ClientSuppliedIpUsedInSecurityCheck.java:24:21:24:33 | getClientIP(...) : String | ClientSuppliedIpUsedInSecurityCheck.java:25:33:25:34 | ip | provenance | | +| ClientSuppliedIpUsedInSecurityCheck.java:43:27:43:62 | getHeader(...) : String | ClientSuppliedIpUsedInSecurityCheck.java:47:16:47:23 | xfHeader : String | provenance | | +| ClientSuppliedIpUsedInSecurityCheck.java:47:16:47:23 | xfHeader : String | ClientSuppliedIpUsedInSecurityCheck.java:47:16:47:34 | split(...) : String[] | provenance | | +| ClientSuppliedIpUsedInSecurityCheck.java:47:16:47:34 | split(...) : String[] | ClientSuppliedIpUsedInSecurityCheck.java:47:16:47:37 | ...[...] : String | provenance | | +| ClientSuppliedIpUsedInSecurityCheck.java:47:16:47:37 | ...[...] : String | ClientSuppliedIpUsedInSecurityCheck.java:16:21:16:33 | getClientIP(...) : String | provenance | | +| ClientSuppliedIpUsedInSecurityCheck.java:47:16:47:37 | ...[...] : String | ClientSuppliedIpUsedInSecurityCheck.java:24:21:24:33 | getClientIP(...) : String | provenance | | nodes | ClientSuppliedIpUsedInSecurityCheck.java:16:21:16:33 | getClientIP(...) : String | semmle.label | getClientIP(...) : String | | ClientSuppliedIpUsedInSecurityCheck.java:17:37:17:38 | ip | semmle.label | ip | diff --git a/java/ql/test/experimental/query-tests/security/CWE-352/JsonpInjection.expected b/java/ql/test/experimental/query-tests/security/CWE-352/JsonpInjection.expected index f9bcf7132a2f..3bd9825e18fd 100644 --- a/java/ql/test/experimental/query-tests/security/CWE-352/JsonpInjection.expected +++ b/java/ql/test/experimental/query-tests/security/CWE-352/JsonpInjection.expected @@ -1,11 +1,11 @@ edges -| JsonpController.java:33:32:33:68 | getParameter(...) : String | JsonpController.java:37:16:37:24 | resultStr | -| JsonpController.java:44:32:44:68 | getParameter(...) : String | JsonpController.java:46:16:46:24 | resultStr | -| JsonpController.java:53:32:53:68 | getParameter(...) : String | JsonpController.java:56:16:56:24 | resultStr | -| JsonpController.java:63:32:63:68 | getParameter(...) : String | JsonpController.java:66:16:66:24 | resultStr | -| JsonpController.java:73:32:73:68 | getParameter(...) : String | JsonpController.java:80:20:80:28 | resultStr | -| JsonpController.java:87:32:87:68 | getParameter(...) : String | JsonpController.java:94:20:94:28 | resultStr | -| JsonpController.java:101:32:101:68 | getParameter(...) : String | JsonpController.java:105:16:105:24 | resultStr | +| JsonpController.java:33:32:33:68 | getParameter(...) : String | JsonpController.java:37:16:37:24 | resultStr | provenance | | +| JsonpController.java:44:32:44:68 | getParameter(...) : String | JsonpController.java:46:16:46:24 | resultStr | provenance | | +| JsonpController.java:53:32:53:68 | getParameter(...) : String | JsonpController.java:56:16:56:24 | resultStr | provenance | | +| JsonpController.java:63:32:63:68 | getParameter(...) : String | JsonpController.java:66:16:66:24 | resultStr | provenance | | +| JsonpController.java:73:32:73:68 | getParameter(...) : String | JsonpController.java:80:20:80:28 | resultStr | provenance | | +| JsonpController.java:87:32:87:68 | getParameter(...) : String | JsonpController.java:94:20:94:28 | resultStr | provenance | | +| JsonpController.java:101:32:101:68 | getParameter(...) : String | JsonpController.java:105:16:105:24 | resultStr | provenance | | nodes | JsonpController.java:33:32:33:68 | getParameter(...) : String | semmle.label | getParameter(...) : String | | JsonpController.java:37:16:37:24 | resultStr | semmle.label | resultStr | diff --git a/java/ql/test/experimental/query-tests/security/CWE-400/LocalThreadResourceAbuse.expected b/java/ql/test/experimental/query-tests/security/CWE-400/LocalThreadResourceAbuse.expected index 1f74227841b8..04c8147eac5a 100644 --- a/java/ql/test/experimental/query-tests/security/CWE-400/LocalThreadResourceAbuse.expected +++ b/java/ql/test/experimental/query-tests/security/CWE-400/LocalThreadResourceAbuse.expected @@ -1,12 +1,12 @@ edges -| ThreadResourceAbuse.java:37:25:37:73 | getInitParameter(...) : String | ThreadResourceAbuse.java:40:28:40:36 | delayTime : Number | -| ThreadResourceAbuse.java:40:4:40:37 | new UncheckedSyncAction(...) : UncheckedSyncAction [waitTime] : Number | ThreadResourceAbuse.java:71:15:71:17 | parameter this : UncheckedSyncAction [waitTime] : Number | -| ThreadResourceAbuse.java:40:28:40:36 | delayTime : Number | ThreadResourceAbuse.java:40:4:40:37 | new UncheckedSyncAction(...) : UncheckedSyncAction [waitTime] : Number | -| ThreadResourceAbuse.java:40:28:40:36 | delayTime : Number | ThreadResourceAbuse.java:66:30:66:41 | waitTime : Number | -| ThreadResourceAbuse.java:66:30:66:41 | waitTime : Number | ThreadResourceAbuse.java:67:20:67:27 | waitTime : Number | -| ThreadResourceAbuse.java:67:20:67:27 | waitTime : Number | ThreadResourceAbuse.java:67:4:67:7 | this [post update] : UncheckedSyncAction [waitTime] : Number | -| ThreadResourceAbuse.java:71:15:71:17 | parameter this : UncheckedSyncAction [waitTime] : Number | ThreadResourceAbuse.java:74:18:74:25 | this <.field> : UncheckedSyncAction [waitTime] : Number | -| ThreadResourceAbuse.java:74:18:74:25 | this <.field> : UncheckedSyncAction [waitTime] : Number | ThreadResourceAbuse.java:74:18:74:25 | waitTime | +| ThreadResourceAbuse.java:37:25:37:73 | getInitParameter(...) : String | ThreadResourceAbuse.java:40:28:40:36 | delayTime : Number | provenance | | +| ThreadResourceAbuse.java:40:4:40:37 | new UncheckedSyncAction(...) : UncheckedSyncAction [waitTime] : Number | ThreadResourceAbuse.java:71:15:71:17 | parameter this : UncheckedSyncAction [waitTime] : Number | provenance | | +| ThreadResourceAbuse.java:40:28:40:36 | delayTime : Number | ThreadResourceAbuse.java:40:4:40:37 | new UncheckedSyncAction(...) : UncheckedSyncAction [waitTime] : Number | provenance | | +| ThreadResourceAbuse.java:40:28:40:36 | delayTime : Number | ThreadResourceAbuse.java:66:30:66:41 | waitTime : Number | provenance | | +| ThreadResourceAbuse.java:66:30:66:41 | waitTime : Number | ThreadResourceAbuse.java:67:20:67:27 | waitTime : Number | provenance | | +| ThreadResourceAbuse.java:67:20:67:27 | waitTime : Number | ThreadResourceAbuse.java:67:4:67:7 | this [post update] : UncheckedSyncAction [waitTime] : Number | provenance | | +| ThreadResourceAbuse.java:71:15:71:17 | parameter this : UncheckedSyncAction [waitTime] : Number | ThreadResourceAbuse.java:74:18:74:25 | this <.field> : UncheckedSyncAction [waitTime] : Number | provenance | | +| ThreadResourceAbuse.java:74:18:74:25 | this <.field> : UncheckedSyncAction [waitTime] : Number | ThreadResourceAbuse.java:74:18:74:25 | waitTime | provenance | | nodes | ThreadResourceAbuse.java:37:25:37:73 | getInitParameter(...) : String | semmle.label | getInitParameter(...) : String | | ThreadResourceAbuse.java:40:4:40:37 | new UncheckedSyncAction(...) : UncheckedSyncAction [waitTime] : Number | semmle.label | new UncheckedSyncAction(...) : UncheckedSyncAction [waitTime] : Number | diff --git a/java/ql/test/experimental/query-tests/security/CWE-400/ThreadResourceAbuse.expected b/java/ql/test/experimental/query-tests/security/CWE-400/ThreadResourceAbuse.expected index e79dbfee2d38..635ce2979ffe 100644 --- a/java/ql/test/experimental/query-tests/security/CWE-400/ThreadResourceAbuse.expected +++ b/java/ql/test/experimental/query-tests/security/CWE-400/ThreadResourceAbuse.expected @@ -1,36 +1,36 @@ edges -| ThreadResourceAbuse.java:18:25:18:57 | getParameter(...) : String | ThreadResourceAbuse.java:21:28:21:36 | delayTime : Number | -| ThreadResourceAbuse.java:21:4:21:37 | new UncheckedSyncAction(...) : UncheckedSyncAction [waitTime] : Number | ThreadResourceAbuse.java:71:15:71:17 | parameter this : UncheckedSyncAction [waitTime] : Number | -| ThreadResourceAbuse.java:21:28:21:36 | delayTime : Number | ThreadResourceAbuse.java:21:4:21:37 | new UncheckedSyncAction(...) : UncheckedSyncAction [waitTime] : Number | -| ThreadResourceAbuse.java:21:28:21:36 | delayTime : Number | ThreadResourceAbuse.java:66:30:66:41 | waitTime : Number | -| ThreadResourceAbuse.java:29:82:29:114 | getParameter(...) : String | ThreadResourceAbuse.java:30:28:30:36 | delayTime : Number | -| ThreadResourceAbuse.java:30:4:30:37 | new UncheckedSyncAction(...) : UncheckedSyncAction [waitTime] : Number | ThreadResourceAbuse.java:71:15:71:17 | parameter this : UncheckedSyncAction [waitTime] : Number | -| ThreadResourceAbuse.java:30:28:30:36 | delayTime : Number | ThreadResourceAbuse.java:30:4:30:37 | new UncheckedSyncAction(...) : UncheckedSyncAction [waitTime] : Number | -| ThreadResourceAbuse.java:30:28:30:36 | delayTime : Number | ThreadResourceAbuse.java:66:30:66:41 | waitTime : Number | -| ThreadResourceAbuse.java:66:30:66:41 | waitTime : Number | ThreadResourceAbuse.java:67:20:67:27 | waitTime : Number | -| ThreadResourceAbuse.java:67:20:67:27 | waitTime : Number | ThreadResourceAbuse.java:67:4:67:7 | this [post update] : UncheckedSyncAction [waitTime] : Number | -| ThreadResourceAbuse.java:71:15:71:17 | parameter this : UncheckedSyncAction [waitTime] : Number | ThreadResourceAbuse.java:74:18:74:25 | this <.field> : UncheckedSyncAction [waitTime] : Number | -| ThreadResourceAbuse.java:74:18:74:25 | this <.field> : UncheckedSyncAction [waitTime] : Number | ThreadResourceAbuse.java:74:18:74:25 | waitTime | -| ThreadResourceAbuse.java:141:27:141:43 | getValue(...) : String | ThreadResourceAbuse.java:144:34:144:42 | delayTime | -| ThreadResourceAbuse.java:172:19:172:50 | getHeader(...) : String | ThreadResourceAbuse.java:176:17:176:26 | retryAfter | -| ThreadResourceAbuse.java:206:28:206:56 | getParameter(...) : String | ThreadResourceAbuse.java:209:49:209:59 | uploadDelay : Number | -| ThreadResourceAbuse.java:209:30:209:87 | new UploadListener(...) : UploadListener [slowUploads] : Number | UploadListener.java:28:14:28:19 | parameter this : UploadListener [slowUploads] : Number | -| ThreadResourceAbuse.java:209:49:209:59 | uploadDelay : Number | ThreadResourceAbuse.java:209:30:209:87 | new UploadListener(...) : UploadListener [slowUploads] : Number | -| ThreadResourceAbuse.java:209:49:209:59 | uploadDelay : Number | UploadListener.java:15:24:15:44 | sleepMilliseconds : Number | -| ThreadResourceAbuse.java:215:19:215:50 | getHeader(...) : String | ThreadResourceAbuse.java:219:17:219:26 | retryAfter : Number | -| ThreadResourceAbuse.java:219:17:219:26 | retryAfter : Number | ThreadResourceAbuse.java:219:17:219:33 | ... * ... | -| ThreadResourceAbuse.java:227:19:227:50 | getHeader(...) : String | ThreadResourceAbuse.java:230:3:230:12 | retryAfter : Number | -| ThreadResourceAbuse.java:230:3:230:12 | retryAfter : Number | ThreadResourceAbuse.java:230:3:230:20 | ...*=... : Number | -| ThreadResourceAbuse.java:230:3:230:20 | ...*=... : Number | ThreadResourceAbuse.java:233:17:233:26 | retryAfter | -| UploadListener.java:15:24:15:44 | sleepMilliseconds : Number | UploadListener.java:16:17:16:33 | sleepMilliseconds : Number | -| UploadListener.java:16:17:16:33 | sleepMilliseconds : Number | UploadListener.java:16:3:16:13 | this <.field> [post update] : UploadListener [slowUploads] : Number | -| UploadListener.java:28:14:28:19 | parameter this : UploadListener [slowUploads] : Number | UploadListener.java:29:3:29:11 | this <.field> : UploadListener [slowUploads] : Number | -| UploadListener.java:29:3:29:11 | this <.field> : UploadListener [slowUploads] : Number | UploadListener.java:30:3:30:15 | this <.field> : UploadListener [slowUploads] : Number | -| UploadListener.java:30:3:30:15 | this <.field> : UploadListener [slowUploads] : Number | UploadListener.java:33:7:33:17 | this <.field> : UploadListener [slowUploads] : Number | -| UploadListener.java:30:3:30:15 | this <.field> : UploadListener [slowUploads] : Number | UploadListener.java:35:18:35:28 | this <.field> : UploadListener [slowUploads] : Number | -| UploadListener.java:33:7:33:17 | slowUploads : Number | UploadListener.java:35:18:35:28 | slowUploads | -| UploadListener.java:33:7:33:17 | this <.field> : UploadListener [slowUploads] : Number | UploadListener.java:33:7:33:17 | slowUploads : Number | -| UploadListener.java:35:18:35:28 | this <.field> : UploadListener [slowUploads] : Number | UploadListener.java:35:18:35:28 | slowUploads | +| ThreadResourceAbuse.java:18:25:18:57 | getParameter(...) : String | ThreadResourceAbuse.java:21:28:21:36 | delayTime : Number | provenance | | +| ThreadResourceAbuse.java:21:4:21:37 | new UncheckedSyncAction(...) : UncheckedSyncAction [waitTime] : Number | ThreadResourceAbuse.java:71:15:71:17 | parameter this : UncheckedSyncAction [waitTime] : Number | provenance | | +| ThreadResourceAbuse.java:21:28:21:36 | delayTime : Number | ThreadResourceAbuse.java:21:4:21:37 | new UncheckedSyncAction(...) : UncheckedSyncAction [waitTime] : Number | provenance | | +| ThreadResourceAbuse.java:21:28:21:36 | delayTime : Number | ThreadResourceAbuse.java:66:30:66:41 | waitTime : Number | provenance | | +| ThreadResourceAbuse.java:29:82:29:114 | getParameter(...) : String | ThreadResourceAbuse.java:30:28:30:36 | delayTime : Number | provenance | | +| ThreadResourceAbuse.java:30:4:30:37 | new UncheckedSyncAction(...) : UncheckedSyncAction [waitTime] : Number | ThreadResourceAbuse.java:71:15:71:17 | parameter this : UncheckedSyncAction [waitTime] : Number | provenance | | +| ThreadResourceAbuse.java:30:28:30:36 | delayTime : Number | ThreadResourceAbuse.java:30:4:30:37 | new UncheckedSyncAction(...) : UncheckedSyncAction [waitTime] : Number | provenance | | +| ThreadResourceAbuse.java:30:28:30:36 | delayTime : Number | ThreadResourceAbuse.java:66:30:66:41 | waitTime : Number | provenance | | +| ThreadResourceAbuse.java:66:30:66:41 | waitTime : Number | ThreadResourceAbuse.java:67:20:67:27 | waitTime : Number | provenance | | +| ThreadResourceAbuse.java:67:20:67:27 | waitTime : Number | ThreadResourceAbuse.java:67:4:67:7 | this [post update] : UncheckedSyncAction [waitTime] : Number | provenance | | +| ThreadResourceAbuse.java:71:15:71:17 | parameter this : UncheckedSyncAction [waitTime] : Number | ThreadResourceAbuse.java:74:18:74:25 | this <.field> : UncheckedSyncAction [waitTime] : Number | provenance | | +| ThreadResourceAbuse.java:74:18:74:25 | this <.field> : UncheckedSyncAction [waitTime] : Number | ThreadResourceAbuse.java:74:18:74:25 | waitTime | provenance | | +| ThreadResourceAbuse.java:141:27:141:43 | getValue(...) : String | ThreadResourceAbuse.java:144:34:144:42 | delayTime | provenance | | +| ThreadResourceAbuse.java:172:19:172:50 | getHeader(...) : String | ThreadResourceAbuse.java:176:17:176:26 | retryAfter | provenance | | +| ThreadResourceAbuse.java:206:28:206:56 | getParameter(...) : String | ThreadResourceAbuse.java:209:49:209:59 | uploadDelay : Number | provenance | | +| ThreadResourceAbuse.java:209:30:209:87 | new UploadListener(...) : UploadListener [slowUploads] : Number | UploadListener.java:28:14:28:19 | parameter this : UploadListener [slowUploads] : Number | provenance | | +| ThreadResourceAbuse.java:209:49:209:59 | uploadDelay : Number | ThreadResourceAbuse.java:209:30:209:87 | new UploadListener(...) : UploadListener [slowUploads] : Number | provenance | | +| ThreadResourceAbuse.java:209:49:209:59 | uploadDelay : Number | UploadListener.java:15:24:15:44 | sleepMilliseconds : Number | provenance | | +| ThreadResourceAbuse.java:215:19:215:50 | getHeader(...) : String | ThreadResourceAbuse.java:219:17:219:26 | retryAfter : Number | provenance | | +| ThreadResourceAbuse.java:219:17:219:26 | retryAfter : Number | ThreadResourceAbuse.java:219:17:219:33 | ... * ... | provenance | | +| ThreadResourceAbuse.java:227:19:227:50 | getHeader(...) : String | ThreadResourceAbuse.java:230:3:230:12 | retryAfter : Number | provenance | | +| ThreadResourceAbuse.java:230:3:230:12 | retryAfter : Number | ThreadResourceAbuse.java:230:3:230:20 | ...*=... : Number | provenance | | +| ThreadResourceAbuse.java:230:3:230:20 | ...*=... : Number | ThreadResourceAbuse.java:233:17:233:26 | retryAfter | provenance | | +| UploadListener.java:15:24:15:44 | sleepMilliseconds : Number | UploadListener.java:16:17:16:33 | sleepMilliseconds : Number | provenance | | +| UploadListener.java:16:17:16:33 | sleepMilliseconds : Number | UploadListener.java:16:3:16:13 | this <.field> [post update] : UploadListener [slowUploads] : Number | provenance | | +| UploadListener.java:28:14:28:19 | parameter this : UploadListener [slowUploads] : Number | UploadListener.java:29:3:29:11 | this <.field> : UploadListener [slowUploads] : Number | provenance | | +| UploadListener.java:29:3:29:11 | this <.field> : UploadListener [slowUploads] : Number | UploadListener.java:30:3:30:15 | this <.field> : UploadListener [slowUploads] : Number | provenance | | +| UploadListener.java:30:3:30:15 | this <.field> : UploadListener [slowUploads] : Number | UploadListener.java:33:7:33:17 | this <.field> : UploadListener [slowUploads] : Number | provenance | | +| UploadListener.java:30:3:30:15 | this <.field> : UploadListener [slowUploads] : Number | UploadListener.java:35:18:35:28 | this <.field> : UploadListener [slowUploads] : Number | provenance | | +| UploadListener.java:33:7:33:17 | slowUploads : Number | UploadListener.java:35:18:35:28 | slowUploads | provenance | | +| UploadListener.java:33:7:33:17 | this <.field> : UploadListener [slowUploads] : Number | UploadListener.java:33:7:33:17 | slowUploads : Number | provenance | | +| UploadListener.java:35:18:35:28 | this <.field> : UploadListener [slowUploads] : Number | UploadListener.java:35:18:35:28 | slowUploads | provenance | | nodes | ThreadResourceAbuse.java:18:25:18:57 | getParameter(...) : String | semmle.label | getParameter(...) : String | | ThreadResourceAbuse.java:21:4:21:37 | new UncheckedSyncAction(...) : UncheckedSyncAction [waitTime] : Number | semmle.label | new UncheckedSyncAction(...) : UncheckedSyncAction [waitTime] : Number | diff --git a/java/ql/test/experimental/query-tests/security/CWE-470/LoadClassNoSignatureCheck.expected b/java/ql/test/experimental/query-tests/security/CWE-470/LoadClassNoSignatureCheck.expected index 23d52993a914..cb7595fb0c3d 100644 --- a/java/ql/test/experimental/query-tests/security/CWE-470/LoadClassNoSignatureCheck.expected +++ b/java/ql/test/experimental/query-tests/security/CWE-470/LoadClassNoSignatureCheck.expected @@ -1,7 +1,7 @@ edges -| BadClassLoader.java:15:42:16:75 | createPackageContext(...) : Context | BadClassLoader.java:17:47:17:56 | appContext : Context | -| BadClassLoader.java:17:47:17:56 | appContext : Context | BadClassLoader.java:17:47:17:73 | getClassLoader(...) : ClassLoader | -| BadClassLoader.java:17:47:17:73 | getClassLoader(...) : ClassLoader | BadClassLoader.java:18:37:18:47 | classLoader | +| BadClassLoader.java:15:42:16:75 | createPackageContext(...) : Context | BadClassLoader.java:17:47:17:56 | appContext : Context | provenance | | +| BadClassLoader.java:17:47:17:56 | appContext : Context | BadClassLoader.java:17:47:17:73 | getClassLoader(...) : ClassLoader | provenance | | +| BadClassLoader.java:17:47:17:73 | getClassLoader(...) : ClassLoader | BadClassLoader.java:18:37:18:47 | classLoader | provenance | | nodes | BadClassLoader.java:15:42:16:75 | createPackageContext(...) : Context | semmle.label | createPackageContext(...) : Context | | BadClassLoader.java:17:47:17:56 | appContext : Context | semmle.label | appContext : Context | diff --git a/java/ql/test/experimental/query-tests/security/CWE-470/UnsafeReflection.expected b/java/ql/test/experimental/query-tests/security/CWE-470/UnsafeReflection.expected index 2e37b50f3f71..37a3e15ea7a1 100644 --- a/java/ql/test/experimental/query-tests/security/CWE-470/UnsafeReflection.expected +++ b/java/ql/test/experimental/query-tests/security/CWE-470/UnsafeReflection.expected @@ -1,39 +1,39 @@ edges -| UnsafeReflection.java:21:28:21:60 | getParameter(...) : String | UnsafeReflection.java:24:41:24:49 | className : String | -| UnsafeReflection.java:22:33:22:70 | getParameter(...) : String | UnsafeReflection.java:25:76:25:89 | parameterValue | -| UnsafeReflection.java:24:27:24:50 | forName(...) : Class | UnsafeReflection.java:25:29:25:33 | clazz : Class | -| UnsafeReflection.java:24:41:24:49 | className : String | UnsafeReflection.java:24:27:24:50 | forName(...) : Class | -| UnsafeReflection.java:25:29:25:33 | clazz : Class | UnsafeReflection.java:25:29:25:59 | getDeclaredConstructors(...) : Constructor[] | -| UnsafeReflection.java:25:29:25:59 | getDeclaredConstructors(...) : Constructor[] | UnsafeReflection.java:25:29:25:62 | ...[...] | -| UnsafeReflection.java:33:28:33:60 | getParameter(...) : String | UnsafeReflection.java:37:49:37:57 | className : String | -| UnsafeReflection.java:34:33:34:70 | getParameter(...) : String | UnsafeReflection.java:39:58:39:71 | parameterValue | -| UnsafeReflection.java:37:27:37:58 | loadClass(...) : Class | UnsafeReflection.java:38:29:38:33 | clazz : Class | -| UnsafeReflection.java:37:49:37:57 | className : String | UnsafeReflection.java:37:27:37:58 | loadClass(...) : Class | -| UnsafeReflection.java:38:29:38:33 | clazz : Class | UnsafeReflection.java:38:29:38:47 | newInstance(...) : Object | -| UnsafeReflection.java:38:29:38:33 | clazz : Class | UnsafeReflection.java:39:13:39:17 | clazz : Class | -| UnsafeReflection.java:38:29:38:47 | newInstance(...) : Object | UnsafeReflection.java:39:50:39:55 | object | -| UnsafeReflection.java:39:13:39:17 | clazz : Class | UnsafeReflection.java:39:13:39:38 | getDeclaredMethods(...) : Method[] | -| UnsafeReflection.java:39:13:39:38 | getDeclaredMethods(...) : Method[] | UnsafeReflection.java:39:13:39:41 | ...[...] | -| UnsafeReflection.java:46:24:46:82 | beanIdOrClassName : String | UnsafeReflection.java:53:30:53:46 | beanIdOrClassName : String | -| UnsafeReflection.java:46:132:46:168 | body : Map | UnsafeReflection.java:49:37:49:40 | body : Map | -| UnsafeReflection.java:49:23:49:59 | (...)... : List | UnsafeReflection.java:53:67:53:73 | rawData : List | -| UnsafeReflection.java:49:37:49:40 | body : Map | UnsafeReflection.java:49:37:49:59 | get(...) : Object | -| UnsafeReflection.java:49:37:49:59 | get(...) : Object | UnsafeReflection.java:49:23:49:59 | (...)... : List | -| UnsafeReflection.java:53:30:53:46 | beanIdOrClassName : String | UnsafeReflection.java:104:34:104:57 | beanIdOrClassName : String | -| UnsafeReflection.java:53:67:53:73 | rawData : List | UnsafeReflection.java:104:102:104:118 | data : List | -| UnsafeReflection.java:62:33:62:70 | getParameter(...) : String | UnsafeReflection.java:68:76:68:89 | parameterValue | -| UnsafeReflection.java:77:33:77:70 | getParameter(...) : String | UnsafeReflection.java:83:76:83:89 | parameterValue | -| UnsafeReflection.java:92:33:92:70 | getParameter(...) : String | UnsafeReflection.java:98:76:98:89 | parameterValue | -| UnsafeReflection.java:104:34:104:57 | beanIdOrClassName : String | UnsafeReflection.java:108:39:108:55 | beanIdOrClassName : String | -| UnsafeReflection.java:104:102:104:118 | data : List | UnsafeReflection.java:119:41:119:44 | data | -| UnsafeReflection.java:108:25:108:56 | forName(...) : Class | UnsafeReflection.java:109:31:109:39 | beanClass : Class | -| UnsafeReflection.java:108:39:108:55 | beanIdOrClassName : String | UnsafeReflection.java:108:25:108:56 | forName(...) : Class | -| UnsafeReflection.java:109:11:109:40 | getBean(...) : Object | UnsafeReflection.java:113:30:113:33 | bean : Object | -| UnsafeReflection.java:109:31:109:39 | beanClass : Class | UnsafeReflection.java:109:11:109:40 | getBean(...) : Object | -| UnsafeReflection.java:113:30:113:33 | bean : Object | UnsafeReflection.java:113:30:113:44 | getClass(...) : Class | -| UnsafeReflection.java:113:30:113:33 | bean : Object | UnsafeReflection.java:119:35:119:38 | bean | -| UnsafeReflection.java:113:30:113:44 | getClass(...) : Class | UnsafeReflection.java:113:30:113:57 | getMethods(...) : Method[] | -| UnsafeReflection.java:113:30:113:57 | getMethods(...) : Method[] | UnsafeReflection.java:119:21:119:26 | method | +| UnsafeReflection.java:21:28:21:60 | getParameter(...) : String | UnsafeReflection.java:24:41:24:49 | className : String | provenance | | +| UnsafeReflection.java:22:33:22:70 | getParameter(...) : String | UnsafeReflection.java:25:76:25:89 | parameterValue | provenance | | +| UnsafeReflection.java:24:27:24:50 | forName(...) : Class | UnsafeReflection.java:25:29:25:33 | clazz : Class | provenance | | +| UnsafeReflection.java:24:41:24:49 | className : String | UnsafeReflection.java:24:27:24:50 | forName(...) : Class | provenance | | +| UnsafeReflection.java:25:29:25:33 | clazz : Class | UnsafeReflection.java:25:29:25:59 | getDeclaredConstructors(...) : Constructor[] | provenance | | +| UnsafeReflection.java:25:29:25:59 | getDeclaredConstructors(...) : Constructor[] | UnsafeReflection.java:25:29:25:62 | ...[...] | provenance | | +| UnsafeReflection.java:33:28:33:60 | getParameter(...) : String | UnsafeReflection.java:37:49:37:57 | className : String | provenance | | +| UnsafeReflection.java:34:33:34:70 | getParameter(...) : String | UnsafeReflection.java:39:58:39:71 | parameterValue | provenance | | +| UnsafeReflection.java:37:27:37:58 | loadClass(...) : Class | UnsafeReflection.java:38:29:38:33 | clazz : Class | provenance | | +| UnsafeReflection.java:37:49:37:57 | className : String | UnsafeReflection.java:37:27:37:58 | loadClass(...) : Class | provenance | | +| UnsafeReflection.java:38:29:38:33 | clazz : Class | UnsafeReflection.java:38:29:38:47 | newInstance(...) : Object | provenance | | +| UnsafeReflection.java:38:29:38:33 | clazz : Class | UnsafeReflection.java:39:13:39:17 | clazz : Class | provenance | | +| UnsafeReflection.java:38:29:38:47 | newInstance(...) : Object | UnsafeReflection.java:39:50:39:55 | object | provenance | | +| UnsafeReflection.java:39:13:39:17 | clazz : Class | UnsafeReflection.java:39:13:39:38 | getDeclaredMethods(...) : Method[] | provenance | | +| UnsafeReflection.java:39:13:39:38 | getDeclaredMethods(...) : Method[] | UnsafeReflection.java:39:13:39:41 | ...[...] | provenance | | +| UnsafeReflection.java:46:24:46:82 | beanIdOrClassName : String | UnsafeReflection.java:53:30:53:46 | beanIdOrClassName : String | provenance | | +| UnsafeReflection.java:46:132:46:168 | body : Map | UnsafeReflection.java:49:37:49:40 | body : Map | provenance | | +| UnsafeReflection.java:49:23:49:59 | (...)... : List | UnsafeReflection.java:53:67:53:73 | rawData : List | provenance | | +| UnsafeReflection.java:49:37:49:40 | body : Map | UnsafeReflection.java:49:37:49:59 | get(...) : Object | provenance | | +| UnsafeReflection.java:49:37:49:59 | get(...) : Object | UnsafeReflection.java:49:23:49:59 | (...)... : List | provenance | | +| UnsafeReflection.java:53:30:53:46 | beanIdOrClassName : String | UnsafeReflection.java:104:34:104:57 | beanIdOrClassName : String | provenance | | +| UnsafeReflection.java:53:67:53:73 | rawData : List | UnsafeReflection.java:104:102:104:118 | data : List | provenance | | +| UnsafeReflection.java:62:33:62:70 | getParameter(...) : String | UnsafeReflection.java:68:76:68:89 | parameterValue | provenance | | +| UnsafeReflection.java:77:33:77:70 | getParameter(...) : String | UnsafeReflection.java:83:76:83:89 | parameterValue | provenance | | +| UnsafeReflection.java:92:33:92:70 | getParameter(...) : String | UnsafeReflection.java:98:76:98:89 | parameterValue | provenance | | +| UnsafeReflection.java:104:34:104:57 | beanIdOrClassName : String | UnsafeReflection.java:108:39:108:55 | beanIdOrClassName : String | provenance | | +| UnsafeReflection.java:104:102:104:118 | data : List | UnsafeReflection.java:119:41:119:44 | data | provenance | | +| UnsafeReflection.java:108:25:108:56 | forName(...) : Class | UnsafeReflection.java:109:31:109:39 | beanClass : Class | provenance | | +| UnsafeReflection.java:108:39:108:55 | beanIdOrClassName : String | UnsafeReflection.java:108:25:108:56 | forName(...) : Class | provenance | | +| UnsafeReflection.java:109:11:109:40 | getBean(...) : Object | UnsafeReflection.java:113:30:113:33 | bean : Object | provenance | | +| UnsafeReflection.java:109:31:109:39 | beanClass : Class | UnsafeReflection.java:109:11:109:40 | getBean(...) : Object | provenance | | +| UnsafeReflection.java:113:30:113:33 | bean : Object | UnsafeReflection.java:113:30:113:44 | getClass(...) : Class | provenance | | +| UnsafeReflection.java:113:30:113:33 | bean : Object | UnsafeReflection.java:119:35:119:38 | bean | provenance | | +| UnsafeReflection.java:113:30:113:44 | getClass(...) : Class | UnsafeReflection.java:113:30:113:57 | getMethods(...) : Method[] | provenance | | +| UnsafeReflection.java:113:30:113:57 | getMethods(...) : Method[] | UnsafeReflection.java:119:21:119:26 | method | provenance | | nodes | UnsafeReflection.java:21:28:21:60 | getParameter(...) : String | semmle.label | getParameter(...) : String | | UnsafeReflection.java:22:33:22:70 | getParameter(...) : String | semmle.label | getParameter(...) : String | diff --git a/java/ql/test/experimental/query-tests/security/CWE-502/UnsafeDeserializationRmi.expected b/java/ql/test/experimental/query-tests/security/CWE-502/UnsafeDeserializationRmi.expected index aaa0d3b04380..07b813d01faa 100644 --- a/java/ql/test/experimental/query-tests/security/CWE-502/UnsafeDeserializationRmi.expected +++ b/java/ql/test/experimental/query-tests/security/CWE-502/UnsafeDeserializationRmi.expected @@ -1,5 +1,5 @@ edges -| UnsafeDeserializationRmi.java:17:68:17:95 | new UnsafeRemoteObjectImpl(...) : UnsafeRemoteObjectImpl | UnsafeDeserializationRmi.java:17:35:17:96 | exportObject(...) | +| UnsafeDeserializationRmi.java:17:68:17:95 | new UnsafeRemoteObjectImpl(...) : UnsafeRemoteObjectImpl | UnsafeDeserializationRmi.java:17:35:17:96 | exportObject(...) | provenance | | nodes | UnsafeDeserializationRmi.java:15:33:15:60 | new UnsafeRemoteObjectImpl(...) | semmle.label | new UnsafeRemoteObjectImpl(...) | | UnsafeDeserializationRmi.java:16:35:16:62 | new UnsafeRemoteObjectImpl(...) | semmle.label | new UnsafeRemoteObjectImpl(...) | diff --git a/java/ql/test/experimental/query-tests/security/CWE-552/UnsafeUrlForward.expected b/java/ql/test/experimental/query-tests/security/CWE-552/UnsafeUrlForward.expected index 5d809244fdba..545471868e76 100644 --- a/java/ql/test/experimental/query-tests/security/CWE-552/UnsafeUrlForward.expected +++ b/java/ql/test/experimental/query-tests/security/CWE-552/UnsafeUrlForward.expected @@ -1,44 +1,44 @@ edges -| UnsafeLoadSpringResource.java:27:32:27:77 | fileName : String | UnsafeLoadSpringResource.java:31:49:31:56 | fileName : String | -| UnsafeLoadSpringResource.java:31:27:31:57 | new ClassPathResource(...) : ClassPathResource | UnsafeLoadSpringResource.java:35:31:35:33 | clr | -| UnsafeLoadSpringResource.java:31:49:31:56 | fileName : String | UnsafeLoadSpringResource.java:31:27:31:57 | new ClassPathResource(...) : ClassPathResource | -| UnsafeLoadSpringResource.java:68:32:68:77 | fileName : String | UnsafeLoadSpringResource.java:76:38:76:45 | fileName | -| UnsafeLoadSpringResource.java:108:32:108:77 | fileName : String | UnsafeLoadSpringResource.java:116:51:116:58 | fileName | -| UnsafeRequestPath.java:20:17:20:63 | getServletPath(...) : String | UnsafeRequestPath.java:23:33:23:36 | path | -| UnsafeResourceGet2.java:16:32:16:79 | getRequestParameterMap(...) : Map | UnsafeResourceGet2.java:17:20:17:25 | params : Map | -| UnsafeResourceGet2.java:17:20:17:25 | params : Map | UnsafeResourceGet2.java:17:20:17:40 | get(...) : String | -| UnsafeResourceGet2.java:17:20:17:40 | get(...) : String | UnsafeResourceGet2.java:19:93:19:99 | loadUrl | -| UnsafeResourceGet2.java:32:32:32:79 | getRequestParameterMap(...) : Map | UnsafeResourceGet2.java:33:20:33:25 | params : Map | -| UnsafeResourceGet2.java:33:20:33:25 | params : Map | UnsafeResourceGet2.java:33:20:33:40 | get(...) : String | -| UnsafeResourceGet2.java:33:20:33:40 | get(...) : String | UnsafeResourceGet2.java:35:49:35:55 | loadUrl : String | -| UnsafeResourceGet2.java:35:13:35:56 | getResource(...) : URL | UnsafeResourceGet2.java:37:20:37:22 | url | -| UnsafeResourceGet2.java:35:49:35:55 | loadUrl : String | UnsafeResourceGet2.java:35:13:35:56 | getResource(...) : URL | -| UnsafeResourceGet.java:32:23:32:56 | getParameter(...) : String | UnsafeResourceGet.java:39:28:39:37 | requestUrl : String | -| UnsafeResourceGet.java:39:13:39:38 | getResource(...) : URL | UnsafeResourceGet.java:41:20:41:22 | url | -| UnsafeResourceGet.java:39:28:39:37 | requestUrl : String | UnsafeResourceGet.java:39:13:39:38 | getResource(...) : URL | -| UnsafeResourceGet.java:111:24:111:58 | getParameter(...) : String | UnsafeResourceGet.java:115:68:115:78 | requestPath | -| UnsafeResourceGet.java:143:23:143:56 | getParameter(...) : String | UnsafeResourceGet.java:148:36:148:45 | requestUrl : String | -| UnsafeResourceGet.java:148:13:148:46 | getResource(...) : URL | UnsafeResourceGet.java:150:20:150:22 | url | -| UnsafeResourceGet.java:148:36:148:45 | requestUrl : String | UnsafeResourceGet.java:148:13:148:46 | getResource(...) : URL | -| UnsafeResourceGet.java:181:24:181:58 | getParameter(...) : String | UnsafeResourceGet.java:189:68:189:78 | requestPath | -| UnsafeResourceGet.java:219:23:219:56 | getParameter(...) : String | UnsafeResourceGet.java:224:53:224:62 | requestUrl : String | -| UnsafeResourceGet.java:224:13:224:63 | getResource(...) : URL | UnsafeResourceGet.java:226:20:226:22 | url | -| UnsafeResourceGet.java:224:53:224:62 | requestUrl : String | UnsafeResourceGet.java:224:13:224:63 | getResource(...) : URL | -| UnsafeResourceGet.java:237:24:237:58 | getParameter(...) : String | UnsafeResourceGet.java:241:33:241:43 | requestPath : String | -| UnsafeResourceGet.java:241:18:241:44 | getResource(...) : Resource | UnsafeResourceGet.java:245:21:245:22 | rs : Resource | -| UnsafeResourceGet.java:241:33:241:43 | requestPath : String | UnsafeResourceGet.java:241:18:241:44 | getResource(...) : Resource | -| UnsafeResourceGet.java:245:21:245:22 | rs : Resource | UnsafeResourceGet.java:245:21:245:32 | getPath(...) | -| UnsafeServletRequestDispatch.java:23:22:23:54 | getParameter(...) : String | UnsafeServletRequestDispatch.java:32:51:32:59 | returnURL | -| UnsafeServletRequestDispatch.java:42:22:42:54 | getParameter(...) : String | UnsafeServletRequestDispatch.java:48:56:48:64 | returnURL | -| UnsafeServletRequestDispatch.java:71:17:71:44 | getParameter(...) : String | UnsafeServletRequestDispatch.java:76:53:76:56 | path | -| UnsafeUrlForward.java:13:27:13:36 | url : String | UnsafeUrlForward.java:14:27:14:29 | url | -| UnsafeUrlForward.java:18:27:18:36 | url : String | UnsafeUrlForward.java:20:28:20:30 | url | -| UnsafeUrlForward.java:25:21:25:30 | url : String | UnsafeUrlForward.java:26:23:26:25 | url | -| UnsafeUrlForward.java:30:27:30:36 | url : String | UnsafeUrlForward.java:31:48:31:63 | ... + ... | -| UnsafeUrlForward.java:30:27:30:36 | url : String | UnsafeUrlForward.java:31:61:31:63 | url | -| UnsafeUrlForward.java:36:19:36:28 | url : String | UnsafeUrlForward.java:38:33:38:35 | url | -| UnsafeUrlForward.java:47:19:47:28 | url : String | UnsafeUrlForward.java:49:33:49:62 | ... + ... | -| UnsafeUrlForward.java:58:19:58:28 | url : String | UnsafeUrlForward.java:60:33:60:62 | ... + ... | +| UnsafeLoadSpringResource.java:27:32:27:77 | fileName : String | UnsafeLoadSpringResource.java:31:49:31:56 | fileName : String | provenance | | +| UnsafeLoadSpringResource.java:31:27:31:57 | new ClassPathResource(...) : ClassPathResource | UnsafeLoadSpringResource.java:35:31:35:33 | clr | provenance | | +| UnsafeLoadSpringResource.java:31:49:31:56 | fileName : String | UnsafeLoadSpringResource.java:31:27:31:57 | new ClassPathResource(...) : ClassPathResource | provenance | | +| UnsafeLoadSpringResource.java:68:32:68:77 | fileName : String | UnsafeLoadSpringResource.java:76:38:76:45 | fileName | provenance | | +| UnsafeLoadSpringResource.java:108:32:108:77 | fileName : String | UnsafeLoadSpringResource.java:116:51:116:58 | fileName | provenance | | +| UnsafeRequestPath.java:20:17:20:63 | getServletPath(...) : String | UnsafeRequestPath.java:23:33:23:36 | path | provenance | | +| UnsafeResourceGet2.java:16:32:16:79 | getRequestParameterMap(...) : Map | UnsafeResourceGet2.java:17:20:17:25 | params : Map | provenance | | +| UnsafeResourceGet2.java:17:20:17:25 | params : Map | UnsafeResourceGet2.java:17:20:17:40 | get(...) : String | provenance | | +| UnsafeResourceGet2.java:17:20:17:40 | get(...) : String | UnsafeResourceGet2.java:19:93:19:99 | loadUrl | provenance | | +| UnsafeResourceGet2.java:32:32:32:79 | getRequestParameterMap(...) : Map | UnsafeResourceGet2.java:33:20:33:25 | params : Map | provenance | | +| UnsafeResourceGet2.java:33:20:33:25 | params : Map | UnsafeResourceGet2.java:33:20:33:40 | get(...) : String | provenance | | +| UnsafeResourceGet2.java:33:20:33:40 | get(...) : String | UnsafeResourceGet2.java:35:49:35:55 | loadUrl : String | provenance | | +| UnsafeResourceGet2.java:35:13:35:56 | getResource(...) : URL | UnsafeResourceGet2.java:37:20:37:22 | url | provenance | | +| UnsafeResourceGet2.java:35:49:35:55 | loadUrl : String | UnsafeResourceGet2.java:35:13:35:56 | getResource(...) : URL | provenance | | +| UnsafeResourceGet.java:32:23:32:56 | getParameter(...) : String | UnsafeResourceGet.java:39:28:39:37 | requestUrl : String | provenance | | +| UnsafeResourceGet.java:39:13:39:38 | getResource(...) : URL | UnsafeResourceGet.java:41:20:41:22 | url | provenance | | +| UnsafeResourceGet.java:39:28:39:37 | requestUrl : String | UnsafeResourceGet.java:39:13:39:38 | getResource(...) : URL | provenance | | +| UnsafeResourceGet.java:111:24:111:58 | getParameter(...) : String | UnsafeResourceGet.java:115:68:115:78 | requestPath | provenance | | +| UnsafeResourceGet.java:143:23:143:56 | getParameter(...) : String | UnsafeResourceGet.java:148:36:148:45 | requestUrl : String | provenance | | +| UnsafeResourceGet.java:148:13:148:46 | getResource(...) : URL | UnsafeResourceGet.java:150:20:150:22 | url | provenance | | +| UnsafeResourceGet.java:148:36:148:45 | requestUrl : String | UnsafeResourceGet.java:148:13:148:46 | getResource(...) : URL | provenance | | +| UnsafeResourceGet.java:181:24:181:58 | getParameter(...) : String | UnsafeResourceGet.java:189:68:189:78 | requestPath | provenance | | +| UnsafeResourceGet.java:219:23:219:56 | getParameter(...) : String | UnsafeResourceGet.java:224:53:224:62 | requestUrl : String | provenance | | +| UnsafeResourceGet.java:224:13:224:63 | getResource(...) : URL | UnsafeResourceGet.java:226:20:226:22 | url | provenance | | +| UnsafeResourceGet.java:224:53:224:62 | requestUrl : String | UnsafeResourceGet.java:224:13:224:63 | getResource(...) : URL | provenance | | +| UnsafeResourceGet.java:237:24:237:58 | getParameter(...) : String | UnsafeResourceGet.java:241:33:241:43 | requestPath : String | provenance | | +| UnsafeResourceGet.java:241:18:241:44 | getResource(...) : Resource | UnsafeResourceGet.java:245:21:245:22 | rs : Resource | provenance | | +| UnsafeResourceGet.java:241:33:241:43 | requestPath : String | UnsafeResourceGet.java:241:18:241:44 | getResource(...) : Resource | provenance | | +| UnsafeResourceGet.java:245:21:245:22 | rs : Resource | UnsafeResourceGet.java:245:21:245:32 | getPath(...) | provenance | | +| UnsafeServletRequestDispatch.java:23:22:23:54 | getParameter(...) : String | UnsafeServletRequestDispatch.java:32:51:32:59 | returnURL | provenance | | +| UnsafeServletRequestDispatch.java:42:22:42:54 | getParameter(...) : String | UnsafeServletRequestDispatch.java:48:56:48:64 | returnURL | provenance | | +| UnsafeServletRequestDispatch.java:71:17:71:44 | getParameter(...) : String | UnsafeServletRequestDispatch.java:76:53:76:56 | path | provenance | | +| UnsafeUrlForward.java:13:27:13:36 | url : String | UnsafeUrlForward.java:14:27:14:29 | url | provenance | | +| UnsafeUrlForward.java:18:27:18:36 | url : String | UnsafeUrlForward.java:20:28:20:30 | url | provenance | | +| UnsafeUrlForward.java:25:21:25:30 | url : String | UnsafeUrlForward.java:26:23:26:25 | url | provenance | | +| UnsafeUrlForward.java:30:27:30:36 | url : String | UnsafeUrlForward.java:31:48:31:63 | ... + ... | provenance | | +| UnsafeUrlForward.java:30:27:30:36 | url : String | UnsafeUrlForward.java:31:61:31:63 | url | provenance | | +| UnsafeUrlForward.java:36:19:36:28 | url : String | UnsafeUrlForward.java:38:33:38:35 | url | provenance | | +| UnsafeUrlForward.java:47:19:47:28 | url : String | UnsafeUrlForward.java:49:33:49:62 | ... + ... | provenance | | +| UnsafeUrlForward.java:58:19:58:28 | url : String | UnsafeUrlForward.java:60:33:60:62 | ... + ... | provenance | | nodes | UnsafeLoadSpringResource.java:27:32:27:77 | fileName : String | semmle.label | fileName : String | | UnsafeLoadSpringResource.java:31:27:31:57 | new ClassPathResource(...) : ClassPathResource | semmle.label | new ClassPathResource(...) : ClassPathResource | diff --git a/java/ql/test/experimental/query-tests/security/CWE-598/SensitiveGetQuery.expected b/java/ql/test/experimental/query-tests/security/CWE-598/SensitiveGetQuery.expected index 284711443749..5d1bec7e0936 100644 --- a/java/ql/test/experimental/query-tests/security/CWE-598/SensitiveGetQuery.expected +++ b/java/ql/test/experimental/query-tests/security/CWE-598/SensitiveGetQuery.expected @@ -1,19 +1,19 @@ edges -| SensitiveGetQuery2.java:12:13:12:37 | getParameterMap(...) : Map | SensitiveGetQuery2.java:14:30:14:32 | map : Map | -| SensitiveGetQuery2.java:14:21:14:48 | (...)... : String | SensitiveGetQuery2.java:15:29:15:36 | password | -| SensitiveGetQuery2.java:14:21:14:48 | (...)... : String | SensitiveGetQuery2.java:15:29:15:36 | password : String | -| SensitiveGetQuery2.java:14:30:14:32 | map : Map | SensitiveGetQuery2.java:14:30:14:48 | get(...) : Object | -| SensitiveGetQuery2.java:14:30:14:48 | get(...) : Object | SensitiveGetQuery2.java:14:21:14:48 | (...)... : String | -| SensitiveGetQuery2.java:15:29:15:36 | password : String | SensitiveGetQuery2.java:18:40:18:54 | password : String | -| SensitiveGetQuery2.java:18:40:18:54 | password : String | SensitiveGetQuery2.java:19:61:19:68 | password | -| SensitiveGetQuery3.java:12:21:12:60 | getRequestParameter(...) : String | SensitiveGetQuery3.java:13:57:13:64 | password | -| SensitiveGetQuery3.java:17:10:17:40 | getParameter(...) : String | SensitiveGetQuery3.java:12:21:12:60 | getRequestParameter(...) : String | -| SensitiveGetQuery4.java:14:24:14:66 | getRequestParameter(...) : String | SensitiveGetQuery4.java:16:37:16:47 | accessToken | -| SensitiveGetQuery4.java:20:10:20:40 | getParameter(...) : String | SensitiveGetQuery4.java:14:24:14:66 | getRequestParameter(...) : String | -| SensitiveGetQuery.java:12:21:12:52 | getParameter(...) : String | SensitiveGetQuery.java:14:29:14:36 | password | -| SensitiveGetQuery.java:12:21:12:52 | getParameter(...) : String | SensitiveGetQuery.java:14:29:14:36 | password : String | -| SensitiveGetQuery.java:14:29:14:36 | password : String | SensitiveGetQuery.java:17:40:17:54 | password : String | -| SensitiveGetQuery.java:17:40:17:54 | password : String | SensitiveGetQuery.java:18:61:18:68 | password | +| SensitiveGetQuery2.java:12:13:12:37 | getParameterMap(...) : Map | SensitiveGetQuery2.java:14:30:14:32 | map : Map | provenance | | +| SensitiveGetQuery2.java:14:21:14:48 | (...)... : String | SensitiveGetQuery2.java:15:29:15:36 | password | provenance | | +| SensitiveGetQuery2.java:14:21:14:48 | (...)... : String | SensitiveGetQuery2.java:15:29:15:36 | password : String | provenance | | +| SensitiveGetQuery2.java:14:30:14:32 | map : Map | SensitiveGetQuery2.java:14:30:14:48 | get(...) : Object | provenance | | +| SensitiveGetQuery2.java:14:30:14:48 | get(...) : Object | SensitiveGetQuery2.java:14:21:14:48 | (...)... : String | provenance | | +| SensitiveGetQuery2.java:15:29:15:36 | password : String | SensitiveGetQuery2.java:18:40:18:54 | password : String | provenance | | +| SensitiveGetQuery2.java:18:40:18:54 | password : String | SensitiveGetQuery2.java:19:61:19:68 | password | provenance | | +| SensitiveGetQuery3.java:12:21:12:60 | getRequestParameter(...) : String | SensitiveGetQuery3.java:13:57:13:64 | password | provenance | | +| SensitiveGetQuery3.java:17:10:17:40 | getParameter(...) : String | SensitiveGetQuery3.java:12:21:12:60 | getRequestParameter(...) : String | provenance | | +| SensitiveGetQuery4.java:14:24:14:66 | getRequestParameter(...) : String | SensitiveGetQuery4.java:16:37:16:47 | accessToken | provenance | | +| SensitiveGetQuery4.java:20:10:20:40 | getParameter(...) : String | SensitiveGetQuery4.java:14:24:14:66 | getRequestParameter(...) : String | provenance | | +| SensitiveGetQuery.java:12:21:12:52 | getParameter(...) : String | SensitiveGetQuery.java:14:29:14:36 | password | provenance | | +| SensitiveGetQuery.java:12:21:12:52 | getParameter(...) : String | SensitiveGetQuery.java:14:29:14:36 | password : String | provenance | | +| SensitiveGetQuery.java:14:29:14:36 | password : String | SensitiveGetQuery.java:17:40:17:54 | password : String | provenance | | +| SensitiveGetQuery.java:17:40:17:54 | password : String | SensitiveGetQuery.java:18:61:18:68 | password | provenance | | nodes | SensitiveGetQuery2.java:12:13:12:37 | getParameterMap(...) : Map | semmle.label | getParameterMap(...) : Map | | SensitiveGetQuery2.java:14:21:14:48 | (...)... : String | semmle.label | (...)... : String | diff --git a/java/ql/test/experimental/query-tests/security/CWE-600/UncaughtServletException.expected b/java/ql/test/experimental/query-tests/security/CWE-600/UncaughtServletException.expected index c06301e37fb4..d257ae513247 100644 --- a/java/ql/test/experimental/query-tests/security/CWE-600/UncaughtServletException.expected +++ b/java/ql/test/experimental/query-tests/security/CWE-600/UncaughtServletException.expected @@ -1,8 +1,8 @@ edges -| UncaughtServletException.java:13:15:13:43 | getParameter(...) : String | UncaughtServletException.java:14:44:14:45 | ip | -| UncaughtServletException.java:16:19:16:41 | getRemoteUser(...) : String | UncaughtServletException.java:17:20:17:25 | userId | -| UncaughtServletException.java:54:16:54:44 | getParameter(...) : String | UncaughtServletException.java:55:45:55:46 | ip | -| UncaughtServletException.java:75:21:75:43 | getRemoteUser(...) : String | UncaughtServletException.java:76:22:76:27 | userId | +| UncaughtServletException.java:13:15:13:43 | getParameter(...) : String | UncaughtServletException.java:14:44:14:45 | ip | provenance | | +| UncaughtServletException.java:16:19:16:41 | getRemoteUser(...) : String | UncaughtServletException.java:17:20:17:25 | userId | provenance | | +| UncaughtServletException.java:54:16:54:44 | getParameter(...) : String | UncaughtServletException.java:55:45:55:46 | ip | provenance | | +| UncaughtServletException.java:75:21:75:43 | getRemoteUser(...) : String | UncaughtServletException.java:76:22:76:27 | userId | provenance | | nodes | UncaughtServletException.java:13:15:13:43 | getParameter(...) : String | semmle.label | getParameter(...) : String | | UncaughtServletException.java:14:44:14:45 | ip | semmle.label | ip | diff --git a/java/ql/test/experimental/query-tests/security/CWE-601/SpringUrlRedirect.expected b/java/ql/test/experimental/query-tests/security/CWE-601/SpringUrlRedirect.expected index 2269d357ec61..8042fd3ddedc 100644 --- a/java/ql/test/experimental/query-tests/security/CWE-601/SpringUrlRedirect.expected +++ b/java/ql/test/experimental/query-tests/security/CWE-601/SpringUrlRedirect.expected @@ -1,40 +1,40 @@ edges -| SpringUrlRedirect.java:17:30:17:47 | redirectUrl : String | SpringUrlRedirect.java:19:19:19:29 | redirectUrl | -| SpringUrlRedirect.java:24:24:24:41 | redirectUrl : String | SpringUrlRedirect.java:25:36:25:46 | redirectUrl | -| SpringUrlRedirect.java:30:30:30:47 | redirectUrl : String | SpringUrlRedirect.java:31:44:31:54 | redirectUrl | -| SpringUrlRedirect.java:36:30:36:47 | redirectUrl : String | SpringUrlRedirect.java:37:47:37:57 | redirectUrl | -| SpringUrlRedirect.java:41:24:41:41 | redirectUrl : String | SpringUrlRedirect.java:44:29:44:39 | redirectUrl | -| SpringUrlRedirect.java:49:24:49:41 | redirectUrl : String | SpringUrlRedirect.java:52:30:52:40 | redirectUrl | -| SpringUrlRedirect.java:57:24:57:41 | redirectUrl : String | SpringUrlRedirect.java:58:55:58:65 | redirectUrl : String | -| SpringUrlRedirect.java:58:30:58:66 | new ..[] { .. } : Object[] [[]] : String | SpringUrlRedirect.java:58:30:58:66 | format(...) | -| SpringUrlRedirect.java:58:55:58:65 | redirectUrl : String | SpringUrlRedirect.java:58:30:58:66 | new ..[] { .. } : Object[] [[]] : String | -| SpringUrlRedirect.java:62:24:62:41 | redirectUrl : String | SpringUrlRedirect.java:63:44:63:68 | ... + ... : String | -| SpringUrlRedirect.java:63:44:63:68 | ... + ... : String | SpringUrlRedirect.java:63:30:63:76 | format(...) | -| SpringUrlRedirect.java:89:38:89:55 | redirectUrl : String | SpringUrlRedirect.java:91:38:91:48 | redirectUrl : String | -| SpringUrlRedirect.java:91:38:91:48 | redirectUrl : String | SpringUrlRedirect.java:91:27:91:49 | create(...) | -| SpringUrlRedirect.java:96:39:96:56 | redirectUrl : String | SpringUrlRedirect.java:98:44:98:54 | redirectUrl : String | -| SpringUrlRedirect.java:98:9:98:19 | httpHeaders : HttpHeaders | SpringUrlRedirect.java:100:37:100:47 | httpHeaders | -| SpringUrlRedirect.java:98:33:98:55 | create(...) : URI | SpringUrlRedirect.java:98:9:98:19 | httpHeaders : HttpHeaders | -| SpringUrlRedirect.java:98:44:98:54 | redirectUrl : String | SpringUrlRedirect.java:98:33:98:55 | create(...) : URI | -| SpringUrlRedirect.java:104:39:104:56 | redirectUrl : String | SpringUrlRedirect.java:106:37:106:47 | redirectUrl : String | -| SpringUrlRedirect.java:106:9:106:19 | httpHeaders [post update] : HttpHeaders | SpringUrlRedirect.java:108:68:108:78 | httpHeaders | -| SpringUrlRedirect.java:106:9:106:19 | httpHeaders [post update] : HttpHeaders [, ] : String | SpringUrlRedirect.java:108:68:108:78 | httpHeaders | -| SpringUrlRedirect.java:106:37:106:47 | redirectUrl : String | SpringUrlRedirect.java:106:9:106:19 | httpHeaders [post update] : HttpHeaders | -| SpringUrlRedirect.java:106:37:106:47 | redirectUrl : String | SpringUrlRedirect.java:106:9:106:19 | httpHeaders [post update] : HttpHeaders [, ] : String | -| SpringUrlRedirect.java:112:39:112:56 | redirectUrl : String | SpringUrlRedirect.java:114:37:114:47 | redirectUrl : String | -| SpringUrlRedirect.java:114:9:114:19 | httpHeaders [post update] : HttpHeaders | SpringUrlRedirect.java:116:37:116:47 | httpHeaders | -| SpringUrlRedirect.java:114:9:114:19 | httpHeaders [post update] : HttpHeaders [, ] : String | SpringUrlRedirect.java:116:37:116:47 | httpHeaders | -| SpringUrlRedirect.java:114:37:114:47 | redirectUrl : String | SpringUrlRedirect.java:114:9:114:19 | httpHeaders [post update] : HttpHeaders | -| SpringUrlRedirect.java:114:37:114:47 | redirectUrl : String | SpringUrlRedirect.java:114:9:114:19 | httpHeaders [post update] : HttpHeaders [, ] : String | -| SpringUrlRedirect.java:120:33:120:50 | redirectUrl : String | SpringUrlRedirect.java:122:37:122:47 | redirectUrl : String | -| SpringUrlRedirect.java:122:9:122:19 | httpHeaders [post update] : HttpHeaders | SpringUrlRedirect.java:124:49:124:59 | httpHeaders | -| SpringUrlRedirect.java:122:9:122:19 | httpHeaders [post update] : HttpHeaders [, ] : String | SpringUrlRedirect.java:124:49:124:59 | httpHeaders | -| SpringUrlRedirect.java:122:37:122:47 | redirectUrl : String | SpringUrlRedirect.java:122:9:122:19 | httpHeaders [post update] : HttpHeaders | -| SpringUrlRedirect.java:122:37:122:47 | redirectUrl : String | SpringUrlRedirect.java:122:9:122:19 | httpHeaders [post update] : HttpHeaders [, ] : String | -| SpringUrlRedirect.java:128:33:128:50 | redirectUrl : String | SpringUrlRedirect.java:130:44:130:54 | redirectUrl : String | -| SpringUrlRedirect.java:130:9:130:19 | httpHeaders : HttpHeaders | SpringUrlRedirect.java:132:49:132:59 | httpHeaders | -| SpringUrlRedirect.java:130:33:130:55 | create(...) : URI | SpringUrlRedirect.java:130:9:130:19 | httpHeaders : HttpHeaders | -| SpringUrlRedirect.java:130:44:130:54 | redirectUrl : String | SpringUrlRedirect.java:130:33:130:55 | create(...) : URI | +| SpringUrlRedirect.java:17:30:17:47 | redirectUrl : String | SpringUrlRedirect.java:19:19:19:29 | redirectUrl | provenance | | +| SpringUrlRedirect.java:24:24:24:41 | redirectUrl : String | SpringUrlRedirect.java:25:36:25:46 | redirectUrl | provenance | | +| SpringUrlRedirect.java:30:30:30:47 | redirectUrl : String | SpringUrlRedirect.java:31:44:31:54 | redirectUrl | provenance | | +| SpringUrlRedirect.java:36:30:36:47 | redirectUrl : String | SpringUrlRedirect.java:37:47:37:57 | redirectUrl | provenance | | +| SpringUrlRedirect.java:41:24:41:41 | redirectUrl : String | SpringUrlRedirect.java:44:29:44:39 | redirectUrl | provenance | | +| SpringUrlRedirect.java:49:24:49:41 | redirectUrl : String | SpringUrlRedirect.java:52:30:52:40 | redirectUrl | provenance | | +| SpringUrlRedirect.java:57:24:57:41 | redirectUrl : String | SpringUrlRedirect.java:58:55:58:65 | redirectUrl : String | provenance | | +| SpringUrlRedirect.java:58:30:58:66 | new ..[] { .. } : Object[] [[]] : String | SpringUrlRedirect.java:58:30:58:66 | format(...) | provenance | | +| SpringUrlRedirect.java:58:55:58:65 | redirectUrl : String | SpringUrlRedirect.java:58:30:58:66 | new ..[] { .. } : Object[] [[]] : String | provenance | | +| SpringUrlRedirect.java:62:24:62:41 | redirectUrl : String | SpringUrlRedirect.java:63:44:63:68 | ... + ... : String | provenance | | +| SpringUrlRedirect.java:63:44:63:68 | ... + ... : String | SpringUrlRedirect.java:63:30:63:76 | format(...) | provenance | | +| SpringUrlRedirect.java:89:38:89:55 | redirectUrl : String | SpringUrlRedirect.java:91:38:91:48 | redirectUrl : String | provenance | | +| SpringUrlRedirect.java:91:38:91:48 | redirectUrl : String | SpringUrlRedirect.java:91:27:91:49 | create(...) | provenance | | +| SpringUrlRedirect.java:96:39:96:56 | redirectUrl : String | SpringUrlRedirect.java:98:44:98:54 | redirectUrl : String | provenance | | +| SpringUrlRedirect.java:98:9:98:19 | httpHeaders : HttpHeaders | SpringUrlRedirect.java:100:37:100:47 | httpHeaders | provenance | | +| SpringUrlRedirect.java:98:33:98:55 | create(...) : URI | SpringUrlRedirect.java:98:9:98:19 | httpHeaders : HttpHeaders | provenance | | +| SpringUrlRedirect.java:98:44:98:54 | redirectUrl : String | SpringUrlRedirect.java:98:33:98:55 | create(...) : URI | provenance | | +| SpringUrlRedirect.java:104:39:104:56 | redirectUrl : String | SpringUrlRedirect.java:106:37:106:47 | redirectUrl : String | provenance | | +| SpringUrlRedirect.java:106:9:106:19 | httpHeaders [post update] : HttpHeaders | SpringUrlRedirect.java:108:68:108:78 | httpHeaders | provenance | | +| SpringUrlRedirect.java:106:9:106:19 | httpHeaders [post update] : HttpHeaders [, ] : String | SpringUrlRedirect.java:108:68:108:78 | httpHeaders | provenance | | +| SpringUrlRedirect.java:106:37:106:47 | redirectUrl : String | SpringUrlRedirect.java:106:9:106:19 | httpHeaders [post update] : HttpHeaders | provenance | | +| SpringUrlRedirect.java:106:37:106:47 | redirectUrl : String | SpringUrlRedirect.java:106:9:106:19 | httpHeaders [post update] : HttpHeaders [, ] : String | provenance | | +| SpringUrlRedirect.java:112:39:112:56 | redirectUrl : String | SpringUrlRedirect.java:114:37:114:47 | redirectUrl : String | provenance | | +| SpringUrlRedirect.java:114:9:114:19 | httpHeaders [post update] : HttpHeaders | SpringUrlRedirect.java:116:37:116:47 | httpHeaders | provenance | | +| SpringUrlRedirect.java:114:9:114:19 | httpHeaders [post update] : HttpHeaders [, ] : String | SpringUrlRedirect.java:116:37:116:47 | httpHeaders | provenance | | +| SpringUrlRedirect.java:114:37:114:47 | redirectUrl : String | SpringUrlRedirect.java:114:9:114:19 | httpHeaders [post update] : HttpHeaders | provenance | | +| SpringUrlRedirect.java:114:37:114:47 | redirectUrl : String | SpringUrlRedirect.java:114:9:114:19 | httpHeaders [post update] : HttpHeaders [, ] : String | provenance | | +| SpringUrlRedirect.java:120:33:120:50 | redirectUrl : String | SpringUrlRedirect.java:122:37:122:47 | redirectUrl : String | provenance | | +| SpringUrlRedirect.java:122:9:122:19 | httpHeaders [post update] : HttpHeaders | SpringUrlRedirect.java:124:49:124:59 | httpHeaders | provenance | | +| SpringUrlRedirect.java:122:9:122:19 | httpHeaders [post update] : HttpHeaders [, ] : String | SpringUrlRedirect.java:124:49:124:59 | httpHeaders | provenance | | +| SpringUrlRedirect.java:122:37:122:47 | redirectUrl : String | SpringUrlRedirect.java:122:9:122:19 | httpHeaders [post update] : HttpHeaders | provenance | | +| SpringUrlRedirect.java:122:37:122:47 | redirectUrl : String | SpringUrlRedirect.java:122:9:122:19 | httpHeaders [post update] : HttpHeaders [, ] : String | provenance | | +| SpringUrlRedirect.java:128:33:128:50 | redirectUrl : String | SpringUrlRedirect.java:130:44:130:54 | redirectUrl : String | provenance | | +| SpringUrlRedirect.java:130:9:130:19 | httpHeaders : HttpHeaders | SpringUrlRedirect.java:132:49:132:59 | httpHeaders | provenance | | +| SpringUrlRedirect.java:130:33:130:55 | create(...) : URI | SpringUrlRedirect.java:130:9:130:19 | httpHeaders : HttpHeaders | provenance | | +| SpringUrlRedirect.java:130:44:130:54 | redirectUrl : String | SpringUrlRedirect.java:130:33:130:55 | create(...) : URI | provenance | | nodes | SpringUrlRedirect.java:17:30:17:47 | redirectUrl : String | semmle.label | redirectUrl : String | | SpringUrlRedirect.java:19:19:19:29 | redirectUrl | semmle.label | redirectUrl | diff --git a/java/ql/test/experimental/query-tests/security/CWE-625/PermissiveDotRegex.expected b/java/ql/test/experimental/query-tests/security/CWE-625/PermissiveDotRegex.expected index c8a387fa33d2..d6e5f12ec299 100644 --- a/java/ql/test/experimental/query-tests/security/CWE-625/PermissiveDotRegex.expected +++ b/java/ql/test/experimental/query-tests/security/CWE-625/PermissiveDotRegex.expected @@ -1,22 +1,22 @@ edges -| DotRegexFilter.java:29:19:29:43 | getPathInfo(...) : String | DotRegexFilter.java:32:25:32:30 | source | -| DotRegexServlet.java:19:19:19:39 | getPathInfo(...) : String | DotRegexServlet.java:22:25:22:30 | source | -| DotRegexServlet.java:57:19:57:41 | getRequestURI(...) : String | DotRegexServlet.java:59:21:59:26 | source | -| DotRegexServlet.java:75:19:75:39 | getPathInfo(...) : String | DotRegexServlet.java:77:56:77:61 | source | -| DotRegexServlet.java:112:19:112:39 | getPathInfo(...) : String | DotRegexServlet.java:115:25:115:30 | source | -| DotRegexSpring.java:20:26:20:50 | path : String | DotRegexSpring.java:22:21:22:24 | path : String | -| DotRegexSpring.java:22:10:22:25 | decodePath(...) : String | DotRegexSpring.java:23:25:23:28 | path | -| DotRegexSpring.java:22:21:22:24 | path : String | DotRegexSpring.java:22:10:22:25 | decodePath(...) : String | -| DotRegexSpring.java:22:21:22:24 | path : String | DotRegexSpring.java:69:28:69:38 | path : String | -| DotRegexSpring.java:37:40:37:64 | path : String | DotRegexSpring.java:39:21:39:24 | path : String | -| DotRegexSpring.java:39:10:39:25 | decodePath(...) : String | DotRegexSpring.java:40:25:40:28 | path | -| DotRegexSpring.java:39:21:39:24 | path : String | DotRegexSpring.java:39:10:39:25 | decodePath(...) : String | -| DotRegexSpring.java:39:21:39:24 | path : String | DotRegexSpring.java:69:28:69:38 | path : String | -| DotRegexSpring.java:69:28:69:38 | path : String | DotRegexSpring.java:71:29:71:32 | path : String | -| DotRegexSpring.java:69:28:69:38 | path : String | DotRegexSpring.java:73:10:73:13 | path : String | -| DotRegexSpring.java:71:11:71:42 | decode(...) : String | DotRegexSpring.java:71:29:71:32 | path : String | -| DotRegexSpring.java:71:11:71:42 | decode(...) : String | DotRegexSpring.java:73:10:73:13 | path : String | -| DotRegexSpring.java:71:29:71:32 | path : String | DotRegexSpring.java:71:11:71:42 | decode(...) : String | +| DotRegexFilter.java:29:19:29:43 | getPathInfo(...) : String | DotRegexFilter.java:32:25:32:30 | source | provenance | | +| DotRegexServlet.java:19:19:19:39 | getPathInfo(...) : String | DotRegexServlet.java:22:25:22:30 | source | provenance | | +| DotRegexServlet.java:57:19:57:41 | getRequestURI(...) : String | DotRegexServlet.java:59:21:59:26 | source | provenance | | +| DotRegexServlet.java:75:19:75:39 | getPathInfo(...) : String | DotRegexServlet.java:77:56:77:61 | source | provenance | | +| DotRegexServlet.java:112:19:112:39 | getPathInfo(...) : String | DotRegexServlet.java:115:25:115:30 | source | provenance | | +| DotRegexSpring.java:20:26:20:50 | path : String | DotRegexSpring.java:22:21:22:24 | path : String | provenance | | +| DotRegexSpring.java:22:10:22:25 | decodePath(...) : String | DotRegexSpring.java:23:25:23:28 | path | provenance | | +| DotRegexSpring.java:22:21:22:24 | path : String | DotRegexSpring.java:22:10:22:25 | decodePath(...) : String | provenance | | +| DotRegexSpring.java:22:21:22:24 | path : String | DotRegexSpring.java:69:28:69:38 | path : String | provenance | | +| DotRegexSpring.java:37:40:37:64 | path : String | DotRegexSpring.java:39:21:39:24 | path : String | provenance | | +| DotRegexSpring.java:39:10:39:25 | decodePath(...) : String | DotRegexSpring.java:40:25:40:28 | path | provenance | | +| DotRegexSpring.java:39:21:39:24 | path : String | DotRegexSpring.java:39:10:39:25 | decodePath(...) : String | provenance | | +| DotRegexSpring.java:39:21:39:24 | path : String | DotRegexSpring.java:69:28:69:38 | path : String | provenance | | +| DotRegexSpring.java:69:28:69:38 | path : String | DotRegexSpring.java:71:29:71:32 | path : String | provenance | | +| DotRegexSpring.java:69:28:69:38 | path : String | DotRegexSpring.java:73:10:73:13 | path : String | provenance | | +| DotRegexSpring.java:71:11:71:42 | decode(...) : String | DotRegexSpring.java:71:29:71:32 | path : String | provenance | | +| DotRegexSpring.java:71:11:71:42 | decode(...) : String | DotRegexSpring.java:73:10:73:13 | path : String | provenance | | +| DotRegexSpring.java:71:29:71:32 | path : String | DotRegexSpring.java:71:11:71:42 | decode(...) : String | provenance | | nodes | DotRegexFilter.java:29:19:29:43 | getPathInfo(...) : String | semmle.label | getPathInfo(...) : String | | DotRegexFilter.java:32:25:32:30 | source | semmle.label | source | diff --git a/java/ql/test/experimental/query-tests/security/CWE-652/XQueryInjection.expected b/java/ql/test/experimental/query-tests/security/CWE-652/XQueryInjection.expected index 47dfb5f426e1..60b0f3977ee0 100644 --- a/java/ql/test/experimental/query-tests/security/CWE-652/XQueryInjection.expected +++ b/java/ql/test/experimental/query-tests/security/CWE-652/XQueryInjection.expected @@ -1,31 +1,31 @@ edges -| XQueryInjection.java:45:23:45:50 | getParameter(...) : String | XQueryInjection.java:50:60:50:64 | query : String | -| XQueryInjection.java:50:37:50:65 | prepareExpression(...) : XQPreparedExpression | XQueryInjection.java:51:35:51:38 | xqpe | -| XQueryInjection.java:50:60:50:64 | query : String | XQueryInjection.java:50:37:50:65 | prepareExpression(...) : XQPreparedExpression | -| XQueryInjection.java:59:23:59:50 | getParameter(...) : String | XQueryInjection.java:65:53:65:57 | query | -| XQueryInjection.java:73:32:73:59 | nameStr : String | XQueryInjection.java:78:60:78:64 | query : String | -| XQueryInjection.java:78:37:78:65 | prepareExpression(...) : XQPreparedExpression | XQueryInjection.java:79:35:79:38 | xqpe | -| XQueryInjection.java:78:60:78:64 | query : String | XQueryInjection.java:78:37:78:65 | prepareExpression(...) : XQPreparedExpression | -| XQueryInjection.java:86:33:86:60 | nameStr : String | XQueryInjection.java:92:53:92:57 | query | -| XQueryInjection.java:100:28:100:51 | getInputStream(...) : ServletInputStream | XQueryInjection.java:103:60:103:63 | name : ServletInputStream | -| XQueryInjection.java:103:37:103:64 | prepareExpression(...) : XQPreparedExpression | XQueryInjection.java:104:35:104:38 | xqpe | -| XQueryInjection.java:103:60:103:63 | name : ServletInputStream | XQueryInjection.java:103:37:103:64 | prepareExpression(...) : XQPreparedExpression | -| XQueryInjection.java:112:28:112:51 | getInputStream(...) : ServletInputStream | XQueryInjection.java:116:53:116:56 | name | -| XQueryInjection.java:124:28:124:51 | getInputStream(...) : ServletInputStream | XQueryInjection.java:125:70:125:73 | name : ServletInputStream | -| XQueryInjection.java:125:29:125:75 | new BufferedReader(...) : BufferedReader | XQueryInjection.java:128:60:128:61 | br : BufferedReader | -| XQueryInjection.java:125:48:125:74 | new InputStreamReader(...) : InputStreamReader | XQueryInjection.java:125:29:125:75 | new BufferedReader(...) : BufferedReader | -| XQueryInjection.java:125:70:125:73 | name : ServletInputStream | XQueryInjection.java:125:48:125:74 | new InputStreamReader(...) : InputStreamReader | -| XQueryInjection.java:128:37:128:62 | prepareExpression(...) : XQPreparedExpression | XQueryInjection.java:129:35:129:38 | xqpe | -| XQueryInjection.java:128:60:128:61 | br : BufferedReader | XQueryInjection.java:128:37:128:62 | prepareExpression(...) : XQPreparedExpression | -| XQueryInjection.java:137:28:137:51 | getInputStream(...) : ServletInputStream | XQueryInjection.java:138:70:138:73 | name : ServletInputStream | -| XQueryInjection.java:138:29:138:75 | new BufferedReader(...) : BufferedReader | XQueryInjection.java:142:53:142:54 | br | -| XQueryInjection.java:138:48:138:74 | new InputStreamReader(...) : InputStreamReader | XQueryInjection.java:138:29:138:75 | new BufferedReader(...) : BufferedReader | -| XQueryInjection.java:138:70:138:73 | name : ServletInputStream | XQueryInjection.java:138:48:138:74 | new InputStreamReader(...) : InputStreamReader | -| XQueryInjection.java:150:23:150:50 | getParameter(...) : String | XQueryInjection.java:155:29:155:32 | name | -| XQueryInjection.java:157:26:157:49 | getInputStream(...) : ServletInputStream | XQueryInjection.java:158:70:158:71 | is : ServletInputStream | -| XQueryInjection.java:158:29:158:73 | new BufferedReader(...) : BufferedReader | XQueryInjection.java:159:29:159:30 | br | -| XQueryInjection.java:158:48:158:72 | new InputStreamReader(...) : InputStreamReader | XQueryInjection.java:158:29:158:73 | new BufferedReader(...) : BufferedReader | -| XQueryInjection.java:158:70:158:71 | is : ServletInputStream | XQueryInjection.java:158:48:158:72 | new InputStreamReader(...) : InputStreamReader | +| XQueryInjection.java:45:23:45:50 | getParameter(...) : String | XQueryInjection.java:50:60:50:64 | query : String | provenance | | +| XQueryInjection.java:50:37:50:65 | prepareExpression(...) : XQPreparedExpression | XQueryInjection.java:51:35:51:38 | xqpe | provenance | | +| XQueryInjection.java:50:60:50:64 | query : String | XQueryInjection.java:50:37:50:65 | prepareExpression(...) : XQPreparedExpression | provenance | | +| XQueryInjection.java:59:23:59:50 | getParameter(...) : String | XQueryInjection.java:65:53:65:57 | query | provenance | | +| XQueryInjection.java:73:32:73:59 | nameStr : String | XQueryInjection.java:78:60:78:64 | query : String | provenance | | +| XQueryInjection.java:78:37:78:65 | prepareExpression(...) : XQPreparedExpression | XQueryInjection.java:79:35:79:38 | xqpe | provenance | | +| XQueryInjection.java:78:60:78:64 | query : String | XQueryInjection.java:78:37:78:65 | prepareExpression(...) : XQPreparedExpression | provenance | | +| XQueryInjection.java:86:33:86:60 | nameStr : String | XQueryInjection.java:92:53:92:57 | query | provenance | | +| XQueryInjection.java:100:28:100:51 | getInputStream(...) : ServletInputStream | XQueryInjection.java:103:60:103:63 | name : ServletInputStream | provenance | | +| XQueryInjection.java:103:37:103:64 | prepareExpression(...) : XQPreparedExpression | XQueryInjection.java:104:35:104:38 | xqpe | provenance | | +| XQueryInjection.java:103:60:103:63 | name : ServletInputStream | XQueryInjection.java:103:37:103:64 | prepareExpression(...) : XQPreparedExpression | provenance | | +| XQueryInjection.java:112:28:112:51 | getInputStream(...) : ServletInputStream | XQueryInjection.java:116:53:116:56 | name | provenance | | +| XQueryInjection.java:124:28:124:51 | getInputStream(...) : ServletInputStream | XQueryInjection.java:125:70:125:73 | name : ServletInputStream | provenance | | +| XQueryInjection.java:125:29:125:75 | new BufferedReader(...) : BufferedReader | XQueryInjection.java:128:60:128:61 | br : BufferedReader | provenance | | +| XQueryInjection.java:125:48:125:74 | new InputStreamReader(...) : InputStreamReader | XQueryInjection.java:125:29:125:75 | new BufferedReader(...) : BufferedReader | provenance | | +| XQueryInjection.java:125:70:125:73 | name : ServletInputStream | XQueryInjection.java:125:48:125:74 | new InputStreamReader(...) : InputStreamReader | provenance | | +| XQueryInjection.java:128:37:128:62 | prepareExpression(...) : XQPreparedExpression | XQueryInjection.java:129:35:129:38 | xqpe | provenance | | +| XQueryInjection.java:128:60:128:61 | br : BufferedReader | XQueryInjection.java:128:37:128:62 | prepareExpression(...) : XQPreparedExpression | provenance | | +| XQueryInjection.java:137:28:137:51 | getInputStream(...) : ServletInputStream | XQueryInjection.java:138:70:138:73 | name : ServletInputStream | provenance | | +| XQueryInjection.java:138:29:138:75 | new BufferedReader(...) : BufferedReader | XQueryInjection.java:142:53:142:54 | br | provenance | | +| XQueryInjection.java:138:48:138:74 | new InputStreamReader(...) : InputStreamReader | XQueryInjection.java:138:29:138:75 | new BufferedReader(...) : BufferedReader | provenance | | +| XQueryInjection.java:138:70:138:73 | name : ServletInputStream | XQueryInjection.java:138:48:138:74 | new InputStreamReader(...) : InputStreamReader | provenance | | +| XQueryInjection.java:150:23:150:50 | getParameter(...) : String | XQueryInjection.java:155:29:155:32 | name | provenance | | +| XQueryInjection.java:157:26:157:49 | getInputStream(...) : ServletInputStream | XQueryInjection.java:158:70:158:71 | is : ServletInputStream | provenance | | +| XQueryInjection.java:158:29:158:73 | new BufferedReader(...) : BufferedReader | XQueryInjection.java:159:29:159:30 | br | provenance | | +| XQueryInjection.java:158:48:158:72 | new InputStreamReader(...) : InputStreamReader | XQueryInjection.java:158:29:158:73 | new BufferedReader(...) : BufferedReader | provenance | | +| XQueryInjection.java:158:70:158:71 | is : ServletInputStream | XQueryInjection.java:158:48:158:72 | new InputStreamReader(...) : InputStreamReader | provenance | | nodes | XQueryInjection.java:45:23:45:50 | getParameter(...) : String | semmle.label | getParameter(...) : String | | XQueryInjection.java:50:37:50:65 | prepareExpression(...) : XQPreparedExpression | semmle.label | prepareExpression(...) : XQPreparedExpression | diff --git a/java/ql/test/experimental/query-tests/security/CWE-755/NFEAndroidDoS.expected b/java/ql/test/experimental/query-tests/security/CWE-755/NFEAndroidDoS.expected index 5f0e5b028f90..80df54d749a2 100644 --- a/java/ql/test/experimental/query-tests/security/CWE-755/NFEAndroidDoS.expected +++ b/java/ql/test/experimental/query-tests/security/CWE-755/NFEAndroidDoS.expected @@ -1,13 +1,13 @@ edges -| NFEAndroidDoS.java:13:24:13:34 | getIntent(...) : Intent | NFEAndroidDoS.java:13:24:13:61 | getStringExtra(...) : String | -| NFEAndroidDoS.java:13:24:13:61 | getStringExtra(...) : String | NFEAndroidDoS.java:14:21:14:51 | parseDouble(...) | -| NFEAndroidDoS.java:22:21:22:31 | getIntent(...) : Intent | NFEAndroidDoS.java:22:21:22:55 | getStringExtra(...) : String | -| NFEAndroidDoS.java:22:21:22:55 | getStringExtra(...) : String | NFEAndroidDoS.java:23:15:23:40 | parseInt(...) | -| NFEAndroidDoS.java:25:22:25:32 | getIntent(...) : Intent | NFEAndroidDoS.java:25:22:25:57 | getStringExtra(...) : String | -| NFEAndroidDoS.java:25:22:25:57 | getStringExtra(...) : String | NFEAndroidDoS.java:26:16:26:42 | parseInt(...) | -| NFEAndroidDoS.java:43:24:43:34 | getIntent(...) : Intent | NFEAndroidDoS.java:43:24:43:61 | getStringExtra(...) : String | -| NFEAndroidDoS.java:43:24:43:61 | getStringExtra(...) : String | NFEAndroidDoS.java:44:21:44:43 | new Double(...) | -| NFEAndroidDoS.java:43:24:43:61 | getStringExtra(...) : String | NFEAndroidDoS.java:47:21:47:47 | valueOf(...) | +| NFEAndroidDoS.java:13:24:13:34 | getIntent(...) : Intent | NFEAndroidDoS.java:13:24:13:61 | getStringExtra(...) : String | provenance | | +| NFEAndroidDoS.java:13:24:13:61 | getStringExtra(...) : String | NFEAndroidDoS.java:14:21:14:51 | parseDouble(...) | provenance | | +| NFEAndroidDoS.java:22:21:22:31 | getIntent(...) : Intent | NFEAndroidDoS.java:22:21:22:55 | getStringExtra(...) : String | provenance | | +| NFEAndroidDoS.java:22:21:22:55 | getStringExtra(...) : String | NFEAndroidDoS.java:23:15:23:40 | parseInt(...) | provenance | | +| NFEAndroidDoS.java:25:22:25:32 | getIntent(...) : Intent | NFEAndroidDoS.java:25:22:25:57 | getStringExtra(...) : String | provenance | | +| NFEAndroidDoS.java:25:22:25:57 | getStringExtra(...) : String | NFEAndroidDoS.java:26:16:26:42 | parseInt(...) | provenance | | +| NFEAndroidDoS.java:43:24:43:34 | getIntent(...) : Intent | NFEAndroidDoS.java:43:24:43:61 | getStringExtra(...) : String | provenance | | +| NFEAndroidDoS.java:43:24:43:61 | getStringExtra(...) : String | NFEAndroidDoS.java:44:21:44:43 | new Double(...) | provenance | | +| NFEAndroidDoS.java:43:24:43:61 | getStringExtra(...) : String | NFEAndroidDoS.java:47:21:47:47 | valueOf(...) | provenance | | nodes | NFEAndroidDoS.java:13:24:13:34 | getIntent(...) : Intent | semmle.label | getIntent(...) : Intent | | NFEAndroidDoS.java:13:24:13:61 | getStringExtra(...) : String | semmle.label | getStringExtra(...) : String | diff --git a/java/ql/test/experimental/query-tests/security/CWE-759/HashWithoutSalt.expected b/java/ql/test/experimental/query-tests/security/CWE-759/HashWithoutSalt.expected index 8681b437222a..9666029ebdc2 100644 --- a/java/ql/test/experimental/query-tests/security/CWE-759/HashWithoutSalt.expected +++ b/java/ql/test/experimental/query-tests/security/CWE-759/HashWithoutSalt.expected @@ -1,10 +1,10 @@ edges -| HashWithoutSalt.java:10:36:10:43 | password : String | HashWithoutSalt.java:10:36:10:54 | getBytes(...) | -| HashWithoutSalt.java:25:13:25:20 | password : String | HashWithoutSalt.java:25:13:25:31 | getBytes(...) | -| HashWithoutSalt.java:93:22:93:29 | password : String | HashWithoutSalt.java:93:22:93:40 | getBytes(...) : byte[] | -| HashWithoutSalt.java:93:22:93:40 | getBytes(...) : byte[] | HashWithoutSalt.java:94:17:94:25 | passBytes | -| HashWithoutSalt.java:111:22:111:29 | password : String | HashWithoutSalt.java:111:22:111:40 | getBytes(...) : byte[] | -| HashWithoutSalt.java:111:22:111:40 | getBytes(...) : byte[] | HashWithoutSalt.java:112:18:112:26 | passBytes | +| HashWithoutSalt.java:10:36:10:43 | password : String | HashWithoutSalt.java:10:36:10:54 | getBytes(...) | provenance | | +| HashWithoutSalt.java:25:13:25:20 | password : String | HashWithoutSalt.java:25:13:25:31 | getBytes(...) | provenance | | +| HashWithoutSalt.java:93:22:93:29 | password : String | HashWithoutSalt.java:93:22:93:40 | getBytes(...) : byte[] | provenance | | +| HashWithoutSalt.java:93:22:93:40 | getBytes(...) : byte[] | HashWithoutSalt.java:94:17:94:25 | passBytes | provenance | | +| HashWithoutSalt.java:111:22:111:29 | password : String | HashWithoutSalt.java:111:22:111:40 | getBytes(...) : byte[] | provenance | | +| HashWithoutSalt.java:111:22:111:40 | getBytes(...) : byte[] | HashWithoutSalt.java:112:18:112:26 | passBytes | provenance | | nodes | HashWithoutSalt.java:10:36:10:43 | password : String | semmle.label | password : String | | HashWithoutSalt.java:10:36:10:54 | getBytes(...) | semmle.label | getBytes(...) | diff --git a/java/ql/test/library-tests/dataflow/call-sensitivity/flow.expected b/java/ql/test/library-tests/dataflow/call-sensitivity/flow.expected index 05552beb5d9c..dc35379e71ee 100644 --- a/java/ql/test/library-tests/dataflow/call-sensitivity/flow.expected +++ b/java/ql/test/library-tests/dataflow/call-sensitivity/flow.expected @@ -1,37 +1,37 @@ edges -| A2.java:15:15:15:28 | new Integer(...) : Number | A2.java:27:27:27:34 | o : Number | -| A2.java:27:27:27:34 | o : Number | A2.java:29:9:29:9 | o | -| A.java:6:28:6:35 | o : Number | A.java:8:11:8:11 | o : Number | -| A.java:6:28:6:35 | o : Number | A.java:8:11:8:11 | o : Number | -| A.java:14:29:14:36 | o : Number | A.java:16:9:16:9 | o | -| A.java:20:30:20:37 | o : Number | A.java:22:9:22:9 | o | -| A.java:26:31:26:38 | o : Number | A.java:28:9:28:9 | o | -| A.java:32:35:32:42 | o : Number | A.java:40:8:40:9 | o3 | -| A.java:43:36:43:43 | o : Number | A.java:51:8:51:9 | o3 | -| A.java:43:36:43:43 | o : Number | A.java:51:8:51:9 | o3 | -| A.java:43:36:43:43 | o : Number | A.java:51:8:51:9 | o3 | -| A.java:62:18:62:31 | new Integer(...) : Number | A.java:14:29:14:36 | o : Number | -| A.java:63:19:63:32 | new Integer(...) : Number | A.java:20:30:20:37 | o : Number | -| A.java:64:20:64:33 | new Integer(...) : Number | A.java:26:31:26:38 | o : Number | -| A.java:65:24:65:37 | new Integer(...) : Number | A.java:32:35:32:42 | o : Number | -| A.java:66:25:66:38 | new Integer(...) : Number | A.java:43:36:43:43 | o : Number | -| A.java:67:25:67:38 | new Integer(...) : Number | A.java:43:36:43:43 | o : Number | -| A.java:68:25:68:38 | new Integer(...) : Number | A.java:43:36:43:43 | o : Number | -| A.java:69:20:69:33 | new Integer(...) : Number | A.java:6:28:6:35 | o : Number | -| A.java:69:20:69:33 | new Integer(...) : Number | A.java:69:8:69:40 | flowThrough(...) | -| A.java:71:25:71:38 | new Integer(...) : Number | A.java:43:36:43:43 | o : Number | -| A.java:84:18:84:31 | new Integer(...) : Number | A.java:14:29:14:36 | o : Number | -| A.java:85:19:85:32 | new Integer(...) : Number | A.java:20:30:20:37 | o : Number | -| A.java:86:20:86:33 | new Integer(...) : Number | A.java:26:31:26:38 | o : Number | -| A.java:87:24:87:37 | new Integer(...) : Number | A.java:32:35:32:42 | o : Number | -| A.java:88:20:88:33 | new Integer(...) : Number | A.java:6:28:6:35 | o : Number | -| A.java:88:20:88:33 | new Integer(...) : Number | A.java:88:8:88:37 | flowThrough(...) | -| A.java:99:20:99:33 | new Integer(...) : Number | A.java:106:30:106:37 | o : Number | -| A.java:100:21:100:34 | new Integer(...) : Number | A.java:113:31:113:38 | o : Number | -| A.java:101:26:101:39 | new Integer(...) : Number | A.java:120:36:120:43 | o : Number | -| A.java:106:30:106:37 | o : Number | A.java:108:10:108:10 | o | -| A.java:113:31:113:38 | o : Number | A.java:115:10:115:10 | o | -| A.java:120:36:120:43 | o : Number | A.java:128:9:128:10 | o3 | +| A2.java:15:15:15:28 | new Integer(...) : Number | A2.java:27:27:27:34 | o : Number | provenance | | +| A2.java:27:27:27:34 | o : Number | A2.java:29:9:29:9 | o | provenance | | +| A.java:6:28:6:35 | o : Number | A.java:8:11:8:11 | o : Number | provenance | | +| A.java:6:28:6:35 | o : Number | A.java:8:11:8:11 | o : Number | provenance | | +| A.java:14:29:14:36 | o : Number | A.java:16:9:16:9 | o | provenance | | +| A.java:20:30:20:37 | o : Number | A.java:22:9:22:9 | o | provenance | | +| A.java:26:31:26:38 | o : Number | A.java:28:9:28:9 | o | provenance | | +| A.java:32:35:32:42 | o : Number | A.java:40:8:40:9 | o3 | provenance | | +| A.java:43:36:43:43 | o : Number | A.java:51:8:51:9 | o3 | provenance | | +| A.java:43:36:43:43 | o : Number | A.java:51:8:51:9 | o3 | provenance | | +| A.java:43:36:43:43 | o : Number | A.java:51:8:51:9 | o3 | provenance | | +| A.java:62:18:62:31 | new Integer(...) : Number | A.java:14:29:14:36 | o : Number | provenance | | +| A.java:63:19:63:32 | new Integer(...) : Number | A.java:20:30:20:37 | o : Number | provenance | | +| A.java:64:20:64:33 | new Integer(...) : Number | A.java:26:31:26:38 | o : Number | provenance | | +| A.java:65:24:65:37 | new Integer(...) : Number | A.java:32:35:32:42 | o : Number | provenance | | +| A.java:66:25:66:38 | new Integer(...) : Number | A.java:43:36:43:43 | o : Number | provenance | | +| A.java:67:25:67:38 | new Integer(...) : Number | A.java:43:36:43:43 | o : Number | provenance | | +| A.java:68:25:68:38 | new Integer(...) : Number | A.java:43:36:43:43 | o : Number | provenance | | +| A.java:69:20:69:33 | new Integer(...) : Number | A.java:6:28:6:35 | o : Number | provenance | | +| A.java:69:20:69:33 | new Integer(...) : Number | A.java:69:8:69:40 | flowThrough(...) | provenance | | +| A.java:71:25:71:38 | new Integer(...) : Number | A.java:43:36:43:43 | o : Number | provenance | | +| A.java:84:18:84:31 | new Integer(...) : Number | A.java:14:29:14:36 | o : Number | provenance | | +| A.java:85:19:85:32 | new Integer(...) : Number | A.java:20:30:20:37 | o : Number | provenance | | +| A.java:86:20:86:33 | new Integer(...) : Number | A.java:26:31:26:38 | o : Number | provenance | | +| A.java:87:24:87:37 | new Integer(...) : Number | A.java:32:35:32:42 | o : Number | provenance | | +| A.java:88:20:88:33 | new Integer(...) : Number | A.java:6:28:6:35 | o : Number | provenance | | +| A.java:88:20:88:33 | new Integer(...) : Number | A.java:88:8:88:37 | flowThrough(...) | provenance | | +| A.java:99:20:99:33 | new Integer(...) : Number | A.java:106:30:106:37 | o : Number | provenance | | +| A.java:100:21:100:34 | new Integer(...) : Number | A.java:113:31:113:38 | o : Number | provenance | | +| A.java:101:26:101:39 | new Integer(...) : Number | A.java:120:36:120:43 | o : Number | provenance | | +| A.java:106:30:106:37 | o : Number | A.java:108:10:108:10 | o | provenance | | +| A.java:113:31:113:38 | o : Number | A.java:115:10:115:10 | o | provenance | | +| A.java:120:36:120:43 | o : Number | A.java:128:9:128:10 | o3 | provenance | | nodes | A2.java:15:15:15:28 | new Integer(...) : Number | semmle.label | new Integer(...) : Number | | A2.java:27:27:27:34 | o : Number | semmle.label | o : Number | diff --git a/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest1.expected b/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest1.expected index 9dbde2c728d9..9be77dca3332 100644 --- a/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest1.expected +++ b/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest1.expected @@ -1,14 +1,14 @@ edges -| Test.java:10:31:10:41 | data : byte[] | Test.java:11:23:11:26 | data : byte[] | -| Test.java:11:23:11:26 | data : byte[] | Test.java:11:12:11:51 | new String(...) : String | -| Test.java:19:5:19:25 | getInputStream(...) : InputStream | Test.java:19:32:19:35 | data [post update] : byte[] | -| Test.java:19:32:19:35 | data [post update] : byte[] | Test.java:22:49:22:52 | data : byte[] | -| Test.java:19:32:19:35 | data [post update] : byte[] | Test.java:25:69:25:72 | data : byte[] | -| Test.java:22:49:22:52 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | -| Test.java:22:49:22:52 | data : byte[] | Test.java:22:36:22:53 | byteToString(...) | -| Test.java:25:56:25:73 | byteToString(...) : String | Test.java:25:26:25:80 | ... + ... | -| Test.java:25:69:25:72 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | -| Test.java:25:69:25:72 | data : byte[] | Test.java:25:56:25:73 | byteToString(...) : String | +| Test.java:10:31:10:41 | data : byte[] | Test.java:11:23:11:26 | data : byte[] | provenance | | +| Test.java:11:23:11:26 | data : byte[] | Test.java:11:12:11:51 | new String(...) : String | provenance | | +| Test.java:19:5:19:25 | getInputStream(...) : InputStream | Test.java:19:32:19:35 | data [post update] : byte[] | provenance | | +| Test.java:19:32:19:35 | data [post update] : byte[] | Test.java:22:49:22:52 | data : byte[] | provenance | | +| Test.java:19:32:19:35 | data [post update] : byte[] | Test.java:25:69:25:72 | data : byte[] | provenance | | +| Test.java:22:49:22:52 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | provenance | | +| Test.java:22:49:22:52 | data : byte[] | Test.java:22:36:22:53 | byteToString(...) | provenance | | +| Test.java:25:56:25:73 | byteToString(...) : String | Test.java:25:26:25:80 | ... + ... | provenance | | +| Test.java:25:69:25:72 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | provenance | | +| Test.java:25:69:25:72 | data : byte[] | Test.java:25:56:25:73 | byteToString(...) : String | provenance | | nodes | Test.java:10:31:10:41 | data : byte[] | semmle.label | data : byte[] | | Test.java:11:12:11:51 | new String(...) : String | semmle.label | new String(...) : String | diff --git a/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest2.expected b/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest2.expected index 69fad09766d4..c3d7b2f7a5f9 100644 --- a/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest2.expected +++ b/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest2.expected @@ -1,16 +1,16 @@ edges -| Test.java:10:31:10:41 | data : byte[] | Test.java:11:23:11:26 | data : byte[] | -| Test.java:11:23:11:26 | data : byte[] | Test.java:11:12:11:51 | new String(...) : String | -| Test.java:19:5:19:25 | getInputStream(...) : InputStream | Test.java:19:32:19:35 | data [post update] : byte[] | -| Test.java:19:32:19:35 | data [post update] : byte[] | Test.java:22:49:22:52 | data : byte[] | -| Test.java:19:32:19:35 | data [post update] : byte[] | Test.java:25:69:25:72 | data : byte[] | -| Test.java:22:49:22:52 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | -| Test.java:22:49:22:52 | data : byte[] | Test.java:22:36:22:53 | byteToString(...) | -| Test.java:25:56:25:73 | byteToString(...) : String | Test.java:25:26:25:80 | ... + ... | -| Test.java:25:69:25:72 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | -| Test.java:25:69:25:72 | data : byte[] | Test.java:25:56:25:73 | byteToString(...) : String | -| Test.java:30:21:30:61 | executeQuery(...) : String | Test.java:33:26:33:68 | ... + ... | -| Test.java:30:21:30:61 | executeQuery(...) : String | Test.java:36:36:36:41 | result | +| Test.java:10:31:10:41 | data : byte[] | Test.java:11:23:11:26 | data : byte[] | provenance | | +| Test.java:11:23:11:26 | data : byte[] | Test.java:11:12:11:51 | new String(...) : String | provenance | | +| Test.java:19:5:19:25 | getInputStream(...) : InputStream | Test.java:19:32:19:35 | data [post update] : byte[] | provenance | | +| Test.java:19:32:19:35 | data [post update] : byte[] | Test.java:22:49:22:52 | data : byte[] | provenance | | +| Test.java:19:32:19:35 | data [post update] : byte[] | Test.java:25:69:25:72 | data : byte[] | provenance | | +| Test.java:22:49:22:52 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | provenance | | +| Test.java:22:49:22:52 | data : byte[] | Test.java:22:36:22:53 | byteToString(...) | provenance | | +| Test.java:25:56:25:73 | byteToString(...) : String | Test.java:25:26:25:80 | ... + ... | provenance | | +| Test.java:25:69:25:72 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | provenance | | +| Test.java:25:69:25:72 | data : byte[] | Test.java:25:56:25:73 | byteToString(...) : String | provenance | | +| Test.java:30:21:30:61 | executeQuery(...) : String | Test.java:33:26:33:68 | ... + ... | provenance | | +| Test.java:30:21:30:61 | executeQuery(...) : String | Test.java:36:36:36:41 | result | provenance | | nodes | Test.java:10:31:10:41 | data : byte[] | semmle.label | data : byte[] | | Test.java:11:12:11:51 | new String(...) : String | semmle.label | new String(...) : String | diff --git a/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest3.expected b/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest3.expected index 35b2d7049a22..301b7bdc9110 100644 --- a/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest3.expected +++ b/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest3.expected @@ -1,26 +1,26 @@ edges -| Test.java:10:31:10:41 | data : byte[] | Test.java:11:23:11:26 | data : byte[] | -| Test.java:11:23:11:26 | data : byte[] | Test.java:11:12:11:51 | new String(...) : String | -| Test.java:19:5:19:25 | getInputStream(...) : InputStream | Test.java:19:32:19:35 | data [post update] : byte[] | -| Test.java:19:32:19:35 | data [post update] : byte[] | Test.java:22:49:22:52 | data : byte[] | -| Test.java:19:32:19:35 | data [post update] : byte[] | Test.java:25:69:25:72 | data : byte[] | -| Test.java:22:49:22:52 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | -| Test.java:22:49:22:52 | data : byte[] | Test.java:22:36:22:53 | byteToString(...) | -| Test.java:25:56:25:73 | byteToString(...) : String | Test.java:25:26:25:80 | ... + ... | -| Test.java:25:69:25:72 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | -| Test.java:25:69:25:72 | data : byte[] | Test.java:25:56:25:73 | byteToString(...) : String | -| Test.java:30:21:30:61 | executeQuery(...) : String | Test.java:33:26:33:68 | ... + ... | -| Test.java:30:21:30:61 | executeQuery(...) : String | Test.java:36:36:36:41 | result | -| Test.java:41:21:41:49 | readEnv(...) : String | Test.java:44:26:44:68 | ... + ... | -| Test.java:41:21:41:49 | readEnv(...) : String | Test.java:47:36:47:41 | result | -| Test.java:64:5:64:13 | System.in : InputStream | Test.java:64:20:64:23 | data [post update] : byte[] | -| Test.java:64:20:64:23 | data [post update] : byte[] | Test.java:67:69:67:72 | data : byte[] | -| Test.java:64:20:64:23 | data [post update] : byte[] | Test.java:70:49:70:52 | data : byte[] | -| Test.java:67:56:67:73 | byteToString(...) : String | Test.java:67:26:67:80 | ... + ... | -| Test.java:67:69:67:72 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | -| Test.java:67:69:67:72 | data : byte[] | Test.java:67:56:67:73 | byteToString(...) : String | -| Test.java:70:49:70:52 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | -| Test.java:70:49:70:52 | data : byte[] | Test.java:70:36:70:53 | byteToString(...) | +| Test.java:10:31:10:41 | data : byte[] | Test.java:11:23:11:26 | data : byte[] | provenance | | +| Test.java:11:23:11:26 | data : byte[] | Test.java:11:12:11:51 | new String(...) : String | provenance | | +| Test.java:19:5:19:25 | getInputStream(...) : InputStream | Test.java:19:32:19:35 | data [post update] : byte[] | provenance | | +| Test.java:19:32:19:35 | data [post update] : byte[] | Test.java:22:49:22:52 | data : byte[] | provenance | | +| Test.java:19:32:19:35 | data [post update] : byte[] | Test.java:25:69:25:72 | data : byte[] | provenance | | +| Test.java:22:49:22:52 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | provenance | | +| Test.java:22:49:22:52 | data : byte[] | Test.java:22:36:22:53 | byteToString(...) | provenance | | +| Test.java:25:56:25:73 | byteToString(...) : String | Test.java:25:26:25:80 | ... + ... | provenance | | +| Test.java:25:69:25:72 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | provenance | | +| Test.java:25:69:25:72 | data : byte[] | Test.java:25:56:25:73 | byteToString(...) : String | provenance | | +| Test.java:30:21:30:61 | executeQuery(...) : String | Test.java:33:26:33:68 | ... + ... | provenance | | +| Test.java:30:21:30:61 | executeQuery(...) : String | Test.java:36:36:36:41 | result | provenance | | +| Test.java:41:21:41:49 | readEnv(...) : String | Test.java:44:26:44:68 | ... + ... | provenance | | +| Test.java:41:21:41:49 | readEnv(...) : String | Test.java:47:36:47:41 | result | provenance | | +| Test.java:64:5:64:13 | System.in : InputStream | Test.java:64:20:64:23 | data [post update] : byte[] | provenance | | +| Test.java:64:20:64:23 | data [post update] : byte[] | Test.java:67:69:67:72 | data : byte[] | provenance | | +| Test.java:64:20:64:23 | data [post update] : byte[] | Test.java:70:49:70:52 | data : byte[] | provenance | | +| Test.java:67:56:67:73 | byteToString(...) : String | Test.java:67:26:67:80 | ... + ... | provenance | | +| Test.java:67:69:67:72 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | provenance | | +| Test.java:67:69:67:72 | data : byte[] | Test.java:67:56:67:73 | byteToString(...) : String | provenance | | +| Test.java:70:49:70:52 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | provenance | | +| Test.java:70:49:70:52 | data : byte[] | Test.java:70:36:70:53 | byteToString(...) | provenance | | nodes | Test.java:10:31:10:41 | data : byte[] | semmle.label | data : byte[] | | Test.java:11:12:11:51 | new String(...) : String | semmle.label | new String(...) : String | diff --git a/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest4.expected b/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest4.expected index 44f01c1485e6..0c536214b5ba 100644 --- a/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest4.expected +++ b/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest4.expected @@ -1,28 +1,28 @@ edges -| Test.java:10:31:10:41 | data : byte[] | Test.java:11:23:11:26 | data : byte[] | -| Test.java:11:23:11:26 | data : byte[] | Test.java:11:12:11:51 | new String(...) : String | -| Test.java:19:5:19:25 | getInputStream(...) : InputStream | Test.java:19:32:19:35 | data [post update] : byte[] | -| Test.java:19:32:19:35 | data [post update] : byte[] | Test.java:22:49:22:52 | data : byte[] | -| Test.java:19:32:19:35 | data [post update] : byte[] | Test.java:25:69:25:72 | data : byte[] | -| Test.java:22:49:22:52 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | -| Test.java:22:49:22:52 | data : byte[] | Test.java:22:36:22:53 | byteToString(...) | -| Test.java:25:56:25:73 | byteToString(...) : String | Test.java:25:26:25:80 | ... + ... | -| Test.java:25:69:25:72 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | -| Test.java:25:69:25:72 | data : byte[] | Test.java:25:56:25:73 | byteToString(...) : String | -| Test.java:30:21:30:61 | executeQuery(...) : String | Test.java:33:26:33:68 | ... + ... | -| Test.java:30:21:30:61 | executeQuery(...) : String | Test.java:36:36:36:41 | result | -| Test.java:41:21:41:49 | readEnv(...) : String | Test.java:44:26:44:68 | ... + ... | -| Test.java:41:21:41:49 | readEnv(...) : String | Test.java:47:36:47:41 | result | -| Test.java:52:21:52:47 | getCustom(...) : String | Test.java:55:26:55:68 | ... + ... | -| Test.java:52:21:52:47 | getCustom(...) : String | Test.java:58:36:58:41 | result | -| Test.java:64:5:64:13 | System.in : InputStream | Test.java:64:20:64:23 | data [post update] : byte[] | -| Test.java:64:20:64:23 | data [post update] : byte[] | Test.java:67:69:67:72 | data : byte[] | -| Test.java:64:20:64:23 | data [post update] : byte[] | Test.java:70:49:70:52 | data : byte[] | -| Test.java:67:56:67:73 | byteToString(...) : String | Test.java:67:26:67:80 | ... + ... | -| Test.java:67:69:67:72 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | -| Test.java:67:69:67:72 | data : byte[] | Test.java:67:56:67:73 | byteToString(...) : String | -| Test.java:70:49:70:52 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | -| Test.java:70:49:70:52 | data : byte[] | Test.java:70:36:70:53 | byteToString(...) | +| Test.java:10:31:10:41 | data : byte[] | Test.java:11:23:11:26 | data : byte[] | provenance | | +| Test.java:11:23:11:26 | data : byte[] | Test.java:11:12:11:51 | new String(...) : String | provenance | | +| Test.java:19:5:19:25 | getInputStream(...) : InputStream | Test.java:19:32:19:35 | data [post update] : byte[] | provenance | | +| Test.java:19:32:19:35 | data [post update] : byte[] | Test.java:22:49:22:52 | data : byte[] | provenance | | +| Test.java:19:32:19:35 | data [post update] : byte[] | Test.java:25:69:25:72 | data : byte[] | provenance | | +| Test.java:22:49:22:52 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | provenance | | +| Test.java:22:49:22:52 | data : byte[] | Test.java:22:36:22:53 | byteToString(...) | provenance | | +| Test.java:25:56:25:73 | byteToString(...) : String | Test.java:25:26:25:80 | ... + ... | provenance | | +| Test.java:25:69:25:72 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | provenance | | +| Test.java:25:69:25:72 | data : byte[] | Test.java:25:56:25:73 | byteToString(...) : String | provenance | | +| Test.java:30:21:30:61 | executeQuery(...) : String | Test.java:33:26:33:68 | ... + ... | provenance | | +| Test.java:30:21:30:61 | executeQuery(...) : String | Test.java:36:36:36:41 | result | provenance | | +| Test.java:41:21:41:49 | readEnv(...) : String | Test.java:44:26:44:68 | ... + ... | provenance | | +| Test.java:41:21:41:49 | readEnv(...) : String | Test.java:47:36:47:41 | result | provenance | | +| Test.java:52:21:52:47 | getCustom(...) : String | Test.java:55:26:55:68 | ... + ... | provenance | | +| Test.java:52:21:52:47 | getCustom(...) : String | Test.java:58:36:58:41 | result | provenance | | +| Test.java:64:5:64:13 | System.in : InputStream | Test.java:64:20:64:23 | data [post update] : byte[] | provenance | | +| Test.java:64:20:64:23 | data [post update] : byte[] | Test.java:67:69:67:72 | data : byte[] | provenance | | +| Test.java:64:20:64:23 | data [post update] : byte[] | Test.java:70:49:70:52 | data : byte[] | provenance | | +| Test.java:67:56:67:73 | byteToString(...) : String | Test.java:67:26:67:80 | ... + ... | provenance | | +| Test.java:67:69:67:72 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | provenance | | +| Test.java:67:69:67:72 | data : byte[] | Test.java:67:56:67:73 | byteToString(...) : String | provenance | | +| Test.java:70:49:70:52 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | provenance | | +| Test.java:70:49:70:52 | data : byte[] | Test.java:70:36:70:53 | byteToString(...) | provenance | | nodes | Test.java:10:31:10:41 | data : byte[] | semmle.label | data : byte[] | | Test.java:11:12:11:51 | new String(...) : String | semmle.label | new String(...) : String | diff --git a/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest5.expected b/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest5.expected index d535ba38f989..7a0b1572ac54 100644 --- a/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest5.expected +++ b/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest5.expected @@ -1,24 +1,24 @@ edges -| Test.java:10:31:10:41 | data : byte[] | Test.java:11:23:11:26 | data : byte[] | -| Test.java:11:23:11:26 | data : byte[] | Test.java:11:12:11:51 | new String(...) : String | -| Test.java:19:5:19:25 | getInputStream(...) : InputStream | Test.java:19:32:19:35 | data [post update] : byte[] | -| Test.java:19:32:19:35 | data [post update] : byte[] | Test.java:22:49:22:52 | data : byte[] | -| Test.java:19:32:19:35 | data [post update] : byte[] | Test.java:25:69:25:72 | data : byte[] | -| Test.java:22:49:22:52 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | -| Test.java:22:49:22:52 | data : byte[] | Test.java:22:36:22:53 | byteToString(...) | -| Test.java:25:56:25:73 | byteToString(...) : String | Test.java:25:26:25:80 | ... + ... | -| Test.java:25:69:25:72 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | -| Test.java:25:69:25:72 | data : byte[] | Test.java:25:56:25:73 | byteToString(...) : String | -| Test.java:41:21:41:49 | readEnv(...) : String | Test.java:44:26:44:68 | ... + ... | -| Test.java:41:21:41:49 | readEnv(...) : String | Test.java:47:36:47:41 | result | -| Test.java:64:5:64:13 | System.in : InputStream | Test.java:64:20:64:23 | data [post update] : byte[] | -| Test.java:64:20:64:23 | data [post update] : byte[] | Test.java:67:69:67:72 | data : byte[] | -| Test.java:64:20:64:23 | data [post update] : byte[] | Test.java:70:49:70:52 | data : byte[] | -| Test.java:67:56:67:73 | byteToString(...) : String | Test.java:67:26:67:80 | ... + ... | -| Test.java:67:69:67:72 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | -| Test.java:67:69:67:72 | data : byte[] | Test.java:67:56:67:73 | byteToString(...) : String | -| Test.java:70:49:70:52 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | -| Test.java:70:49:70:52 | data : byte[] | Test.java:70:36:70:53 | byteToString(...) | +| Test.java:10:31:10:41 | data : byte[] | Test.java:11:23:11:26 | data : byte[] | provenance | | +| Test.java:11:23:11:26 | data : byte[] | Test.java:11:12:11:51 | new String(...) : String | provenance | | +| Test.java:19:5:19:25 | getInputStream(...) : InputStream | Test.java:19:32:19:35 | data [post update] : byte[] | provenance | | +| Test.java:19:32:19:35 | data [post update] : byte[] | Test.java:22:49:22:52 | data : byte[] | provenance | | +| Test.java:19:32:19:35 | data [post update] : byte[] | Test.java:25:69:25:72 | data : byte[] | provenance | | +| Test.java:22:49:22:52 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | provenance | | +| Test.java:22:49:22:52 | data : byte[] | Test.java:22:36:22:53 | byteToString(...) | provenance | | +| Test.java:25:56:25:73 | byteToString(...) : String | Test.java:25:26:25:80 | ... + ... | provenance | | +| Test.java:25:69:25:72 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | provenance | | +| Test.java:25:69:25:72 | data : byte[] | Test.java:25:56:25:73 | byteToString(...) : String | provenance | | +| Test.java:41:21:41:49 | readEnv(...) : String | Test.java:44:26:44:68 | ... + ... | provenance | | +| Test.java:41:21:41:49 | readEnv(...) : String | Test.java:47:36:47:41 | result | provenance | | +| Test.java:64:5:64:13 | System.in : InputStream | Test.java:64:20:64:23 | data [post update] : byte[] | provenance | | +| Test.java:64:20:64:23 | data [post update] : byte[] | Test.java:67:69:67:72 | data : byte[] | provenance | | +| Test.java:64:20:64:23 | data [post update] : byte[] | Test.java:70:49:70:52 | data : byte[] | provenance | | +| Test.java:67:56:67:73 | byteToString(...) : String | Test.java:67:26:67:80 | ... + ... | provenance | | +| Test.java:67:69:67:72 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | provenance | | +| Test.java:67:69:67:72 | data : byte[] | Test.java:67:56:67:73 | byteToString(...) : String | provenance | | +| Test.java:70:49:70:52 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | provenance | | +| Test.java:70:49:70:52 | data : byte[] | Test.java:70:36:70:53 | byteToString(...) | provenance | | nodes | Test.java:10:31:10:41 | data : byte[] | semmle.label | data : byte[] | | Test.java:11:12:11:51 | new String(...) : String | semmle.label | new String(...) : String | diff --git a/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest6.expected b/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest6.expected index 9b5109ab7e97..ba132f5b7395 100644 --- a/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest6.expected +++ b/java/ql/test/library-tests/dataflow/threat-models/threat-models-flowtest6.expected @@ -1,24 +1,24 @@ edges -| Test.java:10:31:10:41 | data : byte[] | Test.java:11:23:11:26 | data : byte[] | -| Test.java:11:23:11:26 | data : byte[] | Test.java:11:12:11:51 | new String(...) : String | -| Test.java:19:5:19:25 | getInputStream(...) : InputStream | Test.java:19:32:19:35 | data [post update] : byte[] | -| Test.java:19:32:19:35 | data [post update] : byte[] | Test.java:22:49:22:52 | data : byte[] | -| Test.java:19:32:19:35 | data [post update] : byte[] | Test.java:25:69:25:72 | data : byte[] | -| Test.java:22:49:22:52 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | -| Test.java:22:49:22:52 | data : byte[] | Test.java:22:36:22:53 | byteToString(...) | -| Test.java:25:56:25:73 | byteToString(...) : String | Test.java:25:26:25:80 | ... + ... | -| Test.java:25:69:25:72 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | -| Test.java:25:69:25:72 | data : byte[] | Test.java:25:56:25:73 | byteToString(...) : String | -| Test.java:30:21:30:61 | executeQuery(...) : String | Test.java:33:26:33:68 | ... + ... | -| Test.java:30:21:30:61 | executeQuery(...) : String | Test.java:36:36:36:41 | result | -| Test.java:64:5:64:13 | System.in : InputStream | Test.java:64:20:64:23 | data [post update] : byte[] | -| Test.java:64:20:64:23 | data [post update] : byte[] | Test.java:67:69:67:72 | data : byte[] | -| Test.java:64:20:64:23 | data [post update] : byte[] | Test.java:70:49:70:52 | data : byte[] | -| Test.java:67:56:67:73 | byteToString(...) : String | Test.java:67:26:67:80 | ... + ... | -| Test.java:67:69:67:72 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | -| Test.java:67:69:67:72 | data : byte[] | Test.java:67:56:67:73 | byteToString(...) : String | -| Test.java:70:49:70:52 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | -| Test.java:70:49:70:52 | data : byte[] | Test.java:70:36:70:53 | byteToString(...) | +| Test.java:10:31:10:41 | data : byte[] | Test.java:11:23:11:26 | data : byte[] | provenance | | +| Test.java:11:23:11:26 | data : byte[] | Test.java:11:12:11:51 | new String(...) : String | provenance | | +| Test.java:19:5:19:25 | getInputStream(...) : InputStream | Test.java:19:32:19:35 | data [post update] : byte[] | provenance | | +| Test.java:19:32:19:35 | data [post update] : byte[] | Test.java:22:49:22:52 | data : byte[] | provenance | | +| Test.java:19:32:19:35 | data [post update] : byte[] | Test.java:25:69:25:72 | data : byte[] | provenance | | +| Test.java:22:49:22:52 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | provenance | | +| Test.java:22:49:22:52 | data : byte[] | Test.java:22:36:22:53 | byteToString(...) | provenance | | +| Test.java:25:56:25:73 | byteToString(...) : String | Test.java:25:26:25:80 | ... + ... | provenance | | +| Test.java:25:69:25:72 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | provenance | | +| Test.java:25:69:25:72 | data : byte[] | Test.java:25:56:25:73 | byteToString(...) : String | provenance | | +| Test.java:30:21:30:61 | executeQuery(...) : String | Test.java:33:26:33:68 | ... + ... | provenance | | +| Test.java:30:21:30:61 | executeQuery(...) : String | Test.java:36:36:36:41 | result | provenance | | +| Test.java:64:5:64:13 | System.in : InputStream | Test.java:64:20:64:23 | data [post update] : byte[] | provenance | | +| Test.java:64:20:64:23 | data [post update] : byte[] | Test.java:67:69:67:72 | data : byte[] | provenance | | +| Test.java:64:20:64:23 | data [post update] : byte[] | Test.java:70:49:70:52 | data : byte[] | provenance | | +| Test.java:67:56:67:73 | byteToString(...) : String | Test.java:67:26:67:80 | ... + ... | provenance | | +| Test.java:67:69:67:72 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | provenance | | +| Test.java:67:69:67:72 | data : byte[] | Test.java:67:56:67:73 | byteToString(...) : String | provenance | | +| Test.java:70:49:70:52 | data : byte[] | Test.java:10:31:10:41 | data : byte[] | provenance | | +| Test.java:70:49:70:52 | data : byte[] | Test.java:70:36:70:53 | byteToString(...) | provenance | | nodes | Test.java:10:31:10:41 | data : byte[] | semmle.label | data : byte[] | | Test.java:11:12:11:51 | new String(...) : String | semmle.label | new String(...) : String | diff --git a/java/ql/test/library-tests/frameworks/JaxWs/UrlRedirect.expected b/java/ql/test/library-tests/frameworks/JaxWs/UrlRedirect.expected index 1c0986ada311..57aadbcee428 100644 --- a/java/ql/test/library-tests/frameworks/JaxWs/UrlRedirect.expected +++ b/java/ql/test/library-tests/frameworks/JaxWs/UrlRedirect.expected @@ -1,8 +1,8 @@ edges -| UrlRedirectJakarta.java:10:32:10:61 | getParameter(...) : String | UrlRedirectJakarta.java:10:24:10:62 | new URI(...) | -| UrlRedirectJakarta.java:13:41:13:70 | getParameter(...) : String | UrlRedirectJakarta.java:13:33:13:71 | new URI(...) | -| UrlRedirectJax.java:10:32:10:61 | getParameter(...) : String | UrlRedirectJax.java:10:24:10:62 | new URI(...) | -| UrlRedirectJax.java:13:41:13:70 | getParameter(...) : String | UrlRedirectJax.java:13:33:13:71 | new URI(...) | +| UrlRedirectJakarta.java:10:32:10:61 | getParameter(...) : String | UrlRedirectJakarta.java:10:24:10:62 | new URI(...) | provenance | | +| UrlRedirectJakarta.java:13:41:13:70 | getParameter(...) : String | UrlRedirectJakarta.java:13:33:13:71 | new URI(...) | provenance | | +| UrlRedirectJax.java:10:32:10:61 | getParameter(...) : String | UrlRedirectJax.java:10:24:10:62 | new URI(...) | provenance | | +| UrlRedirectJax.java:13:41:13:70 | getParameter(...) : String | UrlRedirectJax.java:13:33:13:71 | new URI(...) | provenance | | nodes | UrlRedirectJakarta.java:10:24:10:62 | new URI(...) | semmle.label | new URI(...) | | UrlRedirectJakarta.java:10:32:10:61 | getParameter(...) : String | semmle.label | getParameter(...) : String | diff --git a/java/ql/test/query-tests/security/CWE-022/semmle/tests/ZipSlip.expected b/java/ql/test/query-tests/security/CWE-022/semmle/tests/ZipSlip.expected index 7c6a5bffc2ee..07beb3e1b00b 100644 --- a/java/ql/test/query-tests/security/CWE-022/semmle/tests/ZipSlip.expected +++ b/java/ql/test/query-tests/security/CWE-022/semmle/tests/ZipSlip.expected @@ -1,9 +1,9 @@ edges -| ZipTest.java:7:19:7:33 | getName(...) : String | ZipTest.java:8:31:8:34 | name : String | -| ZipTest.java:8:17:8:35 | new File(...) : File | ZipTest.java:9:48:9:51 | file | -| ZipTest.java:8:17:8:35 | new File(...) : File | ZipTest.java:10:49:10:52 | file | -| ZipTest.java:8:17:8:35 | new File(...) : File | ZipTest.java:11:36:11:39 | file | -| ZipTest.java:8:31:8:34 | name : String | ZipTest.java:8:17:8:35 | new File(...) : File | +| ZipTest.java:7:19:7:33 | getName(...) : String | ZipTest.java:8:31:8:34 | name : String | provenance | | +| ZipTest.java:8:17:8:35 | new File(...) : File | ZipTest.java:9:48:9:51 | file | provenance | | +| ZipTest.java:8:17:8:35 | new File(...) : File | ZipTest.java:10:49:10:52 | file | provenance | | +| ZipTest.java:8:17:8:35 | new File(...) : File | ZipTest.java:11:36:11:39 | file | provenance | | +| ZipTest.java:8:31:8:34 | name : String | ZipTest.java:8:17:8:35 | new File(...) : File | provenance | | nodes | ZipTest.java:7:19:7:33 | getName(...) : String | semmle.label | getName(...) : String | | ZipTest.java:8:17:8:35 | new File(...) : File | semmle.label | new File(...) : File | diff --git a/java/ql/test/query-tests/security/CWE-078/ExecTaintedLocal.expected b/java/ql/test/query-tests/security/CWE-078/ExecTaintedLocal.expected index fd2c8fb4d5cc..791ee28469ad 100644 --- a/java/ql/test/query-tests/security/CWE-078/ExecTaintedLocal.expected +++ b/java/ql/test/query-tests/security/CWE-078/ExecTaintedLocal.expected @@ -1,23 +1,23 @@ edges -| Test.java:6:35:6:44 | arg : String | Test.java:7:44:7:69 | ... + ... : String | -| Test.java:6:35:6:44 | arg : String | Test.java:10:61:10:73 | ... + ... : String | -| Test.java:6:35:6:44 | arg : String | Test.java:16:13:16:25 | ... + ... : String | -| Test.java:6:35:6:44 | arg : String | Test.java:22:15:22:27 | ... + ... : String | -| Test.java:7:25:7:70 | new ..[] { .. } : String[] [[]] : String | Test.java:7:25:7:70 | new ..[] { .. } | -| Test.java:7:44:7:69 | ... + ... : String | Test.java:7:25:7:70 | new ..[] { .. } : String[] [[]] : String | -| Test.java:10:29:10:74 | {...} : String[] [[]] : String | Test.java:10:29:10:74 | new String[] | -| Test.java:10:61:10:73 | ... + ... : String | Test.java:10:29:10:74 | {...} : String[] [[]] : String | -| Test.java:16:5:16:7 | cmd [post update] : ArrayList [] : String | Test.java:18:29:18:31 | cmd | -| Test.java:16:13:16:25 | ... + ... : String | Test.java:16:5:16:7 | cmd [post update] : ArrayList [] : String | -| Test.java:22:5:22:8 | cmd1 [post update] : String[] [[]] : String | Test.java:24:29:24:32 | cmd1 | -| Test.java:22:15:22:27 | ... + ... : String | Test.java:22:5:22:8 | cmd1 [post update] : String[] [[]] : String | -| Test.java:28:38:28:47 | arg : String | Test.java:29:44:29:64 | ... + ... : String | -| Test.java:29:25:29:65 | new ..[] { .. } : String[] [[]] : String | Test.java:29:25:29:65 | new ..[] { .. } | -| Test.java:29:44:29:64 | ... + ... : String | Test.java:29:25:29:65 | new ..[] { .. } : String[] [[]] : String | -| Test.java:57:27:57:39 | args : String[] | Test.java:60:20:60:22 | arg : String | -| Test.java:57:27:57:39 | args : String[] | Test.java:61:23:61:25 | arg : String | -| Test.java:60:20:60:22 | arg : String | Test.java:6:35:6:44 | arg : String | -| Test.java:61:23:61:25 | arg : String | Test.java:28:38:28:47 | arg : String | +| Test.java:6:35:6:44 | arg : String | Test.java:7:44:7:69 | ... + ... : String | provenance | | +| Test.java:6:35:6:44 | arg : String | Test.java:10:61:10:73 | ... + ... : String | provenance | | +| Test.java:6:35:6:44 | arg : String | Test.java:16:13:16:25 | ... + ... : String | provenance | | +| Test.java:6:35:6:44 | arg : String | Test.java:22:15:22:27 | ... + ... : String | provenance | | +| Test.java:7:25:7:70 | new ..[] { .. } : String[] [[]] : String | Test.java:7:25:7:70 | new ..[] { .. } | provenance | | +| Test.java:7:44:7:69 | ... + ... : String | Test.java:7:25:7:70 | new ..[] { .. } : String[] [[]] : String | provenance | | +| Test.java:10:29:10:74 | {...} : String[] [[]] : String | Test.java:10:29:10:74 | new String[] | provenance | | +| Test.java:10:61:10:73 | ... + ... : String | Test.java:10:29:10:74 | {...} : String[] [[]] : String | provenance | | +| Test.java:16:5:16:7 | cmd [post update] : ArrayList [] : String | Test.java:18:29:18:31 | cmd | provenance | | +| Test.java:16:13:16:25 | ... + ... : String | Test.java:16:5:16:7 | cmd [post update] : ArrayList [] : String | provenance | | +| Test.java:22:5:22:8 | cmd1 [post update] : String[] [[]] : String | Test.java:24:29:24:32 | cmd1 | provenance | | +| Test.java:22:15:22:27 | ... + ... : String | Test.java:22:5:22:8 | cmd1 [post update] : String[] [[]] : String | provenance | | +| Test.java:28:38:28:47 | arg : String | Test.java:29:44:29:64 | ... + ... : String | provenance | | +| Test.java:29:25:29:65 | new ..[] { .. } : String[] [[]] : String | Test.java:29:25:29:65 | new ..[] { .. } | provenance | | +| Test.java:29:44:29:64 | ... + ... : String | Test.java:29:25:29:65 | new ..[] { .. } : String[] [[]] : String | provenance | | +| Test.java:57:27:57:39 | args : String[] | Test.java:60:20:60:22 | arg : String | provenance | | +| Test.java:57:27:57:39 | args : String[] | Test.java:61:23:61:25 | arg : String | provenance | | +| Test.java:60:20:60:22 | arg : String | Test.java:6:35:6:44 | arg : String | provenance | | +| Test.java:61:23:61:25 | arg : String | Test.java:28:38:28:47 | arg : String | provenance | | nodes | Test.java:6:35:6:44 | arg : String | semmle.label | arg : String | | Test.java:7:25:7:70 | new ..[] { .. } | semmle.label | new ..[] { .. } | diff --git a/java/ql/test/query-tests/security/CWE-089/semmle/examples/SqlTaintedLocal.expected b/java/ql/test/query-tests/security/CWE-089/semmle/examples/SqlTaintedLocal.expected index 45577278a7e3..75c75b528ad6 100644 --- a/java/ql/test/query-tests/security/CWE-089/semmle/examples/SqlTaintedLocal.expected +++ b/java/ql/test/query-tests/security/CWE-089/semmle/examples/SqlTaintedLocal.expected @@ -1,25 +1,25 @@ edges -| Mongo.java:10:29:10:41 | args : String[] | Mongo.java:17:56:17:66 | stringQuery : String | -| Mongo.java:10:29:10:41 | args : String[] | Mongo.java:21:49:21:52 | json | -| Mongo.java:17:56:17:66 | stringQuery : String | Mongo.java:17:45:17:67 | parse(...) | -| Test.java:29:30:29:42 | args : String[] | Test.java:36:47:36:52 | query1 | -| Test.java:29:30:29:42 | args : String[] | Test.java:42:57:42:62 | query2 | -| Test.java:29:30:29:42 | args : String[] | Test.java:50:62:50:67 | query3 | -| Test.java:29:30:29:42 | args : String[] | Test.java:58:19:58:26 | category : String | -| Test.java:29:30:29:42 | args : String[] | Test.java:70:40:70:44 | query | -| Test.java:29:30:29:42 | args : String[] | Test.java:78:46:78:50 | query | -| Test.java:58:4:58:10 | querySb [post update] : StringBuilder | Test.java:60:29:60:35 | querySb : StringBuilder | -| Test.java:58:19:58:26 | category : String | Test.java:58:4:58:10 | querySb [post update] : StringBuilder | -| Test.java:60:29:60:35 | querySb : StringBuilder | Test.java:60:29:60:46 | toString(...) : String | -| Test.java:60:29:60:46 | toString(...) : String | Test.java:62:47:62:61 | querySbToString | -| Test.java:183:33:183:45 | args : String[] | Test.java:209:47:209:68 | queryWithUserTableName | -| Test.java:213:34:213:46 | args : String[] | Test.java:221:81:221:111 | ... + ... | -| Test.java:227:26:227:38 | args : String[] | Test.java:228:11:228:14 | args : String[] | -| Test.java:227:26:227:38 | args : String[] | Test.java:232:14:232:17 | args : String[] | -| Test.java:227:26:227:38 | args : String[] | Test.java:233:15:233:18 | args : String[] | -| Test.java:228:11:228:14 | args : String[] | Test.java:29:30:29:42 | args : String[] | -| Test.java:232:14:232:17 | args : String[] | Test.java:183:33:183:45 | args : String[] | -| Test.java:233:15:233:18 | args : String[] | Test.java:213:34:213:46 | args : String[] | +| Mongo.java:10:29:10:41 | args : String[] | Mongo.java:17:56:17:66 | stringQuery : String | provenance | | +| Mongo.java:10:29:10:41 | args : String[] | Mongo.java:21:49:21:52 | json | provenance | | +| Mongo.java:17:56:17:66 | stringQuery : String | Mongo.java:17:45:17:67 | parse(...) | provenance | | +| Test.java:29:30:29:42 | args : String[] | Test.java:36:47:36:52 | query1 | provenance | | +| Test.java:29:30:29:42 | args : String[] | Test.java:42:57:42:62 | query2 | provenance | | +| Test.java:29:30:29:42 | args : String[] | Test.java:50:62:50:67 | query3 | provenance | | +| Test.java:29:30:29:42 | args : String[] | Test.java:58:19:58:26 | category : String | provenance | | +| Test.java:29:30:29:42 | args : String[] | Test.java:70:40:70:44 | query | provenance | | +| Test.java:29:30:29:42 | args : String[] | Test.java:78:46:78:50 | query | provenance | | +| Test.java:58:4:58:10 | querySb [post update] : StringBuilder | Test.java:60:29:60:35 | querySb : StringBuilder | provenance | | +| Test.java:58:19:58:26 | category : String | Test.java:58:4:58:10 | querySb [post update] : StringBuilder | provenance | | +| Test.java:60:29:60:35 | querySb : StringBuilder | Test.java:60:29:60:46 | toString(...) : String | provenance | | +| Test.java:60:29:60:46 | toString(...) : String | Test.java:62:47:62:61 | querySbToString | provenance | | +| Test.java:183:33:183:45 | args : String[] | Test.java:209:47:209:68 | queryWithUserTableName | provenance | | +| Test.java:213:34:213:46 | args : String[] | Test.java:221:81:221:111 | ... + ... | provenance | | +| Test.java:227:26:227:38 | args : String[] | Test.java:228:11:228:14 | args : String[] | provenance | | +| Test.java:227:26:227:38 | args : String[] | Test.java:232:14:232:17 | args : String[] | provenance | | +| Test.java:227:26:227:38 | args : String[] | Test.java:233:15:233:18 | args : String[] | provenance | | +| Test.java:228:11:228:14 | args : String[] | Test.java:29:30:29:42 | args : String[] | provenance | | +| Test.java:232:14:232:17 | args : String[] | Test.java:183:33:183:45 | args : String[] | provenance | | +| Test.java:233:15:233:18 | args : String[] | Test.java:213:34:213:46 | args : String[] | provenance | | nodes | Mongo.java:10:29:10:41 | args : String[] | semmle.label | args : String[] | | Mongo.java:17:45:17:67 | parse(...) | semmle.label | parse(...) | diff --git a/java/ql/test/query-tests/security/CWE-090/LdapInjection.expected b/java/ql/test/query-tests/security/CWE-090/LdapInjection.expected index 961ad3ed6ef0..69c97ca84877 100644 --- a/java/ql/test/query-tests/security/CWE-090/LdapInjection.expected +++ b/java/ql/test/query-tests/security/CWE-090/LdapInjection.expected @@ -1,143 +1,143 @@ edges -| LdapInjection.java:45:28:45:52 | jBad : String | LdapInjection.java:47:38:47:57 | ... + ... | -| LdapInjection.java:45:55:45:81 | jBadDN : String | LdapInjection.java:47:16:47:35 | ... + ... | -| LdapInjection.java:51:28:51:52 | jBad : String | LdapInjection.java:53:56:53:75 | ... + ... | -| LdapInjection.java:51:55:51:85 | jBadDNName : String | LdapInjection.java:53:29:53:52 | ... + ... : String | -| LdapInjection.java:53:29:53:52 | ... + ... : String | LdapInjection.java:53:16:53:53 | new LdapName(...) | -| LdapInjection.java:57:28:57:52 | jBad : String | LdapInjection.java:59:63:59:82 | ... + ... | -| LdapInjection.java:63:28:63:59 | jBadInitial : String | LdapInjection.java:65:29:65:55 | ... + ... | -| LdapInjection.java:69:28:69:52 | jBad : String | LdapInjection.java:71:84:71:103 | ... + ... | -| LdapInjection.java:69:55:69:88 | jBadDNNameAdd : String | LdapInjection.java:71:53:71:79 | ... + ... : String | -| LdapInjection.java:71:40:71:80 | new LdapName(...) : LdapName | LdapInjection.java:71:16:71:81 | addAll(...) | -| LdapInjection.java:71:53:71:79 | ... + ... : String | LdapInjection.java:71:40:71:80 | new LdapName(...) : LdapName | -| LdapInjection.java:75:28:75:52 | jBad : String | LdapInjection.java:79:47:79:66 | ... + ... | -| LdapInjection.java:75:55:75:89 | jBadDNNameAdd2 : String | LdapInjection.java:78:30:78:57 | ... + ... : String | -| LdapInjection.java:78:5:78:8 | name : LdapName | LdapInjection.java:79:40:79:43 | name : LdapName | -| LdapInjection.java:78:17:78:58 | new LdapName(...) : LdapName | LdapInjection.java:78:17:78:68 | getRdns(...) : List | -| LdapInjection.java:78:17:78:68 | getRdns(...) : List | LdapInjection.java:78:5:78:8 | name : LdapName | -| LdapInjection.java:78:30:78:57 | ... + ... : String | LdapInjection.java:78:17:78:58 | new LdapName(...) : LdapName | -| LdapInjection.java:79:40:79:43 | name : LdapName | LdapInjection.java:79:16:79:44 | addAll(...) | -| LdapInjection.java:83:28:83:52 | jBad : String | LdapInjection.java:85:75:85:94 | ... + ... | -| LdapInjection.java:83:55:83:93 | jBadDNNameToString : String | LdapInjection.java:85:29:85:60 | ... + ... : String | -| LdapInjection.java:85:16:85:61 | new LdapName(...) : LdapName | LdapInjection.java:85:16:85:72 | toString(...) | -| LdapInjection.java:85:29:85:60 | ... + ... : String | LdapInjection.java:85:16:85:61 | new LdapName(...) : LdapName | -| LdapInjection.java:89:28:89:52 | jBad : String | LdapInjection.java:91:76:91:95 | ... + ... | -| LdapInjection.java:89:55:89:90 | jBadDNNameClone : String | LdapInjection.java:91:36:91:64 | ... + ... : String | -| LdapInjection.java:91:23:91:65 | new LdapName(...) : LdapName | LdapInjection.java:91:23:91:73 | clone(...) : Object | -| LdapInjection.java:91:23:91:73 | clone(...) : Object | LdapInjection.java:91:16:91:73 | (...)... | -| LdapInjection.java:91:36:91:64 | ... + ... : String | LdapInjection.java:91:23:91:65 | new LdapName(...) : LdapName | -| LdapInjection.java:106:31:106:55 | uBad : String | LdapInjection.java:108:67:108:86 | ... + ... | -| LdapInjection.java:106:58:106:84 | uBadDN : String | LdapInjection.java:108:20:108:39 | ... + ... | -| LdapInjection.java:112:31:112:67 | uBadFilterCreate : String | LdapInjection.java:113:72:113:87 | uBadFilterCreate : String | -| LdapInjection.java:113:72:113:87 | uBadFilterCreate : String | LdapInjection.java:113:58:113:88 | create(...) | -| LdapInjection.java:117:31:117:70 | uBadROSearchRequest : String | LdapInjection.java:120:9:120:43 | ... + ... : String | -| LdapInjection.java:117:73:117:103 | uBadROSRDN : String | LdapInjection.java:119:55:119:78 | ... + ... : String | -| LdapInjection.java:119:31:120:44 | new SearchRequest(...) : SearchRequest | LdapInjection.java:121:14:121:14 | s | -| LdapInjection.java:119:55:119:78 | ... + ... : String | LdapInjection.java:119:31:120:44 | new SearchRequest(...) : SearchRequest | -| LdapInjection.java:120:9:120:43 | ... + ... : String | LdapInjection.java:119:31:120:44 | new SearchRequest(...) : SearchRequest | -| LdapInjection.java:125:31:125:68 | uBadSearchRequest : String | LdapInjection.java:128:9:128:41 | ... + ... : String | -| LdapInjection.java:125:71:125:99 | uBadSRDN : String | LdapInjection.java:127:47:127:68 | ... + ... : String | -| LdapInjection.java:127:23:128:42 | new SearchRequest(...) : SearchRequest | LdapInjection.java:129:14:129:14 | s | -| LdapInjection.java:127:47:127:68 | ... + ... : String | LdapInjection.java:127:23:128:42 | new SearchRequest(...) : SearchRequest | -| LdapInjection.java:128:9:128:41 | ... + ... : String | LdapInjection.java:127:23:128:42 | new SearchRequest(...) : SearchRequest | -| LdapInjection.java:133:31:133:55 | uBad : String | LdapInjection.java:135:69:135:88 | ... + ... | -| LdapInjection.java:133:58:133:87 | uBadDNSFR : String | LdapInjection.java:135:22:135:44 | ... + ... | -| LdapInjection.java:139:31:139:75 | uBadROSearchRequestAsync : String | LdapInjection.java:142:9:142:48 | ... + ... : String | -| LdapInjection.java:139:78:139:113 | uBadROSRDNAsync : String | LdapInjection.java:141:55:141:83 | ... + ... : String | -| LdapInjection.java:141:31:142:49 | new SearchRequest(...) : SearchRequest | LdapInjection.java:143:19:143:19 | s | -| LdapInjection.java:141:55:141:83 | ... + ... : String | LdapInjection.java:141:31:142:49 | new SearchRequest(...) : SearchRequest | -| LdapInjection.java:142:9:142:48 | ... + ... : String | LdapInjection.java:141:31:142:49 | new SearchRequest(...) : SearchRequest | -| LdapInjection.java:147:31:147:73 | uBadSearchRequestAsync : String | LdapInjection.java:150:9:150:46 | ... + ... : String | -| LdapInjection.java:147:76:147:109 | uBadSRDNAsync : String | LdapInjection.java:149:47:149:73 | ... + ... : String | -| LdapInjection.java:149:23:150:47 | new SearchRequest(...) : SearchRequest | LdapInjection.java:151:19:151:19 | s | -| LdapInjection.java:149:47:149:73 | ... + ... : String | LdapInjection.java:149:23:150:47 | new SearchRequest(...) : SearchRequest | -| LdapInjection.java:150:9:150:46 | ... + ... : String | LdapInjection.java:149:23:150:47 | new SearchRequest(...) : SearchRequest | -| LdapInjection.java:155:31:155:70 | uBadFilterCreateNOT : String | LdapInjection.java:156:95:156:113 | uBadFilterCreateNOT : String | -| LdapInjection.java:156:81:156:114 | create(...) : Filter | LdapInjection.java:156:58:156:115 | createNOTFilter(...) | -| LdapInjection.java:156:95:156:113 | uBadFilterCreateNOT : String | LdapInjection.java:156:81:156:114 | create(...) : Filter | -| LdapInjection.java:160:31:160:75 | uBadFilterCreateToString : String | LdapInjection.java:161:72:161:95 | uBadFilterCreateToString : String | -| LdapInjection.java:161:58:161:96 | create(...) : Filter | LdapInjection.java:161:58:161:107 | toString(...) | -| LdapInjection.java:161:72:161:95 | uBadFilterCreateToString : String | LdapInjection.java:161:58:161:96 | create(...) : Filter | -| LdapInjection.java:165:32:165:82 | uBadFilterCreateToStringBuffer : String | LdapInjection.java:167:19:167:48 | uBadFilterCreateToStringBuffer : String | -| LdapInjection.java:167:5:167:49 | create(...) : Filter | LdapInjection.java:167:70:167:70 | b : StringBuilder | -| LdapInjection.java:167:19:167:48 | uBadFilterCreateToStringBuffer : String | LdapInjection.java:167:5:167:49 | create(...) : Filter | -| LdapInjection.java:167:70:167:70 | b : StringBuilder | LdapInjection.java:168:58:168:58 | b : StringBuilder | -| LdapInjection.java:168:58:168:58 | b : StringBuilder | LdapInjection.java:168:58:168:69 | toString(...) | -| LdapInjection.java:172:32:172:78 | uBadSearchRequestDuplicate : String | LdapInjection.java:175:9:175:50 | ... + ... : String | -| LdapInjection.java:174:23:175:51 | new SearchRequest(...) : SearchRequest | LdapInjection.java:176:14:176:14 | s : SearchRequest | -| LdapInjection.java:175:9:175:50 | ... + ... : String | LdapInjection.java:174:23:175:51 | new SearchRequest(...) : SearchRequest | -| LdapInjection.java:176:14:176:14 | s : SearchRequest | LdapInjection.java:176:14:176:26 | duplicate(...) | -| LdapInjection.java:180:32:180:80 | uBadROSearchRequestDuplicate : String | LdapInjection.java:183:9:183:52 | ... + ... : String | -| LdapInjection.java:182:31:183:53 | new SearchRequest(...) : SearchRequest | LdapInjection.java:184:14:184:14 | s : SearchRequest | -| LdapInjection.java:183:9:183:52 | ... + ... : String | LdapInjection.java:182:31:183:53 | new SearchRequest(...) : SearchRequest | -| LdapInjection.java:184:14:184:14 | s : SearchRequest | LdapInjection.java:184:14:184:26 | duplicate(...) | -| LdapInjection.java:188:32:188:74 | uBadSearchRequestSetDN : String | LdapInjection.java:191:17:191:38 | uBadSearchRequestSetDN : String | -| LdapInjection.java:191:5:191:5 | s : SearchRequest | LdapInjection.java:192:14:192:14 | s | -| LdapInjection.java:191:17:191:38 | uBadSearchRequestSetDN : String | LdapInjection.java:191:5:191:5 | s : SearchRequest | -| LdapInjection.java:196:32:196:78 | uBadSearchRequestSetFilter : String | LdapInjection.java:199:17:199:42 | uBadSearchRequestSetFilter : String | -| LdapInjection.java:199:5:199:5 | s : SearchRequest | LdapInjection.java:200:14:200:14 | s | -| LdapInjection.java:199:17:199:42 | uBadSearchRequestSetFilter : String | LdapInjection.java:199:5:199:5 | s : SearchRequest | -| LdapInjection.java:229:30:229:54 | sBad : String | LdapInjection.java:230:36:230:55 | ... + ... | -| LdapInjection.java:229:57:229:83 | sBadDN : String | LdapInjection.java:230:14:230:33 | ... + ... | -| LdapInjection.java:234:30:234:54 | sBad : String | LdapInjection.java:235:88:235:107 | ... + ... | -| LdapInjection.java:234:57:234:92 | sBadDNLNBuilder : String | LdapInjection.java:235:48:235:76 | ... + ... : String | -| LdapInjection.java:235:20:235:77 | newInstance(...) : LdapNameBuilder | LdapInjection.java:235:20:235:85 | build(...) | -| LdapInjection.java:235:48:235:76 | ... + ... : String | LdapInjection.java:235:20:235:77 | newInstance(...) : LdapNameBuilder | -| LdapInjection.java:239:30:239:54 | sBad : String | LdapInjection.java:240:100:240:119 | ... + ... | -| LdapInjection.java:239:57:239:95 | sBadDNLNBuilderAdd : String | LdapInjection.java:240:57:240:88 | ... + ... : String | -| LdapInjection.java:240:23:240:89 | add(...) : LdapNameBuilder | LdapInjection.java:240:23:240:97 | build(...) | -| LdapInjection.java:240:57:240:88 | ... + ... : String | LdapInjection.java:240:23:240:89 | add(...) : LdapNameBuilder | -| LdapInjection.java:244:30:244:63 | sBadLdapQuery : String | LdapInjection.java:245:47:245:75 | ... + ... : String | -| LdapInjection.java:245:47:245:75 | ... + ... : String | LdapInjection.java:245:15:245:76 | filter(...) | -| LdapInjection.java:249:30:249:60 | sBadFilter : String | LdapInjection.java:250:86:250:111 | ... + ... : String | -| LdapInjection.java:249:63:249:98 | sBadDNLdapUtils : String | LdapInjection.java:250:34:250:62 | ... + ... : String | -| LdapInjection.java:250:34:250:62 | ... + ... : String | LdapInjection.java:250:12:250:63 | newLdapName(...) | -| LdapInjection.java:250:86:250:111 | ... + ... : String | LdapInjection.java:250:66:250:112 | new HardcodedFilter(...) | -| LdapInjection.java:254:30:254:63 | sBadLdapQuery : String | LdapInjection.java:255:56:255:84 | ... + ... : String | -| LdapInjection.java:255:56:255:84 | ... + ... : String | LdapInjection.java:255:24:255:85 | filter(...) | -| LdapInjection.java:259:30:259:64 | sBadLdapQuery2 : String | LdapInjection.java:260:51:260:80 | ... + ... : String | -| LdapInjection.java:260:19:260:81 | filter(...) : LdapQuery | LdapInjection.java:261:24:261:24 | q | -| LdapInjection.java:260:51:260:80 | ... + ... : String | LdapInjection.java:260:19:260:81 | filter(...) : LdapQuery | -| LdapInjection.java:265:30:265:73 | sBadLdapQueryWithFilter : String | LdapInjection.java:266:76:266:114 | ... + ... : String | -| LdapInjection.java:266:56:266:115 | new HardcodedFilter(...) : HardcodedFilter | LdapInjection.java:266:24:266:116 | filter(...) | -| LdapInjection.java:266:76:266:114 | ... + ... : String | LdapInjection.java:266:56:266:115 | new HardcodedFilter(...) : HardcodedFilter | -| LdapInjection.java:270:30:270:74 | sBadLdapQueryWithFilter2 : String | LdapInjection.java:271:68:271:107 | ... + ... : String | -| LdapInjection.java:271:48:271:108 | new HardcodedFilter(...) : HardcodedFilter | LdapInjection.java:272:56:272:56 | f : HardcodedFilter | -| LdapInjection.java:271:68:271:107 | ... + ... : String | LdapInjection.java:271:48:271:108 | new HardcodedFilter(...) : HardcodedFilter | -| LdapInjection.java:272:56:272:56 | f : HardcodedFilter | LdapInjection.java:272:24:272:57 | filter(...) | -| LdapInjection.java:276:31:276:68 | sBadLdapQueryBase : String | LdapInjection.java:277:42:277:58 | sBadLdapQueryBase : String | -| LdapInjection.java:277:12:277:59 | base(...) : LdapQueryBuilder | LdapInjection.java:277:12:277:66 | base(...) | -| LdapInjection.java:277:42:277:58 | sBadLdapQueryBase : String | LdapInjection.java:277:12:277:59 | base(...) : LdapQueryBuilder | -| LdapInjection.java:281:31:281:71 | sBadLdapQueryComplex : String | LdapInjection.java:282:54:282:73 | sBadLdapQueryComplex : String | -| LdapInjection.java:282:24:282:74 | base(...) : LdapQueryBuilder | LdapInjection.java:282:24:282:87 | where(...) : ConditionCriteria | -| LdapInjection.java:282:24:282:87 | where(...) : ConditionCriteria | LdapInjection.java:282:24:282:98 | is(...) | -| LdapInjection.java:282:54:282:73 | sBadLdapQueryComplex : String | LdapInjection.java:282:24:282:74 | base(...) : LdapQueryBuilder | -| LdapInjection.java:286:31:286:69 | sBadFilterToString : String | LdapInjection.java:287:38:287:71 | ... + ... : String | -| LdapInjection.java:287:18:287:72 | new HardcodedFilter(...) : HardcodedFilter | LdapInjection.java:287:18:287:83 | toString(...) | -| LdapInjection.java:287:38:287:71 | ... + ... : String | LdapInjection.java:287:18:287:72 | new HardcodedFilter(...) : HardcodedFilter | -| LdapInjection.java:291:31:291:67 | sBadFilterEncode : String | LdapInjection.java:293:25:293:56 | ... + ... : String | -| LdapInjection.java:293:5:293:57 | new HardcodedFilter(...) : HardcodedFilter | LdapInjection.java:293:66:293:66 | s : StringBuffer | -| LdapInjection.java:293:25:293:56 | ... + ... : String | LdapInjection.java:293:5:293:57 | new HardcodedFilter(...) : HardcodedFilter | -| LdapInjection.java:293:66:293:66 | s : StringBuffer | LdapInjection.java:294:18:294:18 | s : StringBuffer | -| LdapInjection.java:294:18:294:18 | s : StringBuffer | LdapInjection.java:294:18:294:29 | toString(...) | -| LdapInjection.java:314:30:314:54 | aBad : String | LdapInjection.java:316:36:316:55 | ... + ... | -| LdapInjection.java:314:57:314:83 | aBadDN : String | LdapInjection.java:316:14:316:33 | ... + ... | -| LdapInjection.java:320:30:320:54 | aBad : String | LdapInjection.java:322:65:322:84 | ... + ... | -| LdapInjection.java:320:57:320:94 | aBadDNObjToString : String | LdapInjection.java:322:21:322:51 | ... + ... : String | -| LdapInjection.java:322:14:322:52 | new Dn(...) : Dn | LdapInjection.java:322:14:322:62 | getName(...) | -| LdapInjection.java:322:21:322:51 | ... + ... : String | LdapInjection.java:322:14:322:52 | new Dn(...) : Dn | -| LdapInjection.java:326:30:326:67 | aBadSearchRequest : String | LdapInjection.java:329:17:329:49 | ... + ... : String | -| LdapInjection.java:329:5:329:5 | s : SearchRequestImpl | LdapInjection.java:330:14:330:14 | s | -| LdapInjection.java:329:17:329:49 | ... + ... : String | LdapInjection.java:329:5:329:5 | s : SearchRequestImpl | -| LdapInjection.java:334:74:334:103 | aBadDNObj : String | LdapInjection.java:337:22:337:44 | ... + ... : String | -| LdapInjection.java:337:5:337:5 | s : SearchRequestImpl | LdapInjection.java:338:14:338:14 | s | -| LdapInjection.java:337:15:337:45 | new Dn(...) : Dn | LdapInjection.java:337:5:337:5 | s : SearchRequestImpl | -| LdapInjection.java:337:22:337:44 | ... + ... : String | LdapInjection.java:337:15:337:45 | new Dn(...) : Dn | -| LdapInjection.java:342:30:342:72 | aBadDNSearchRequestGet : String | LdapInjection.java:345:22:345:57 | ... + ... : String | -| LdapInjection.java:345:5:345:5 | s : SearchRequestImpl | LdapInjection.java:346:14:346:14 | s : SearchRequestImpl | -| LdapInjection.java:345:15:345:58 | new Dn(...) : Dn | LdapInjection.java:345:5:345:5 | s : SearchRequestImpl | -| LdapInjection.java:345:22:345:57 | ... + ... : String | LdapInjection.java:345:15:345:58 | new Dn(...) : Dn | -| LdapInjection.java:346:14:346:14 | s : SearchRequestImpl | LdapInjection.java:346:14:346:24 | getBase(...) | +| LdapInjection.java:45:28:45:52 | jBad : String | LdapInjection.java:47:38:47:57 | ... + ... | provenance | | +| LdapInjection.java:45:55:45:81 | jBadDN : String | LdapInjection.java:47:16:47:35 | ... + ... | provenance | | +| LdapInjection.java:51:28:51:52 | jBad : String | LdapInjection.java:53:56:53:75 | ... + ... | provenance | | +| LdapInjection.java:51:55:51:85 | jBadDNName : String | LdapInjection.java:53:29:53:52 | ... + ... : String | provenance | | +| LdapInjection.java:53:29:53:52 | ... + ... : String | LdapInjection.java:53:16:53:53 | new LdapName(...) | provenance | | +| LdapInjection.java:57:28:57:52 | jBad : String | LdapInjection.java:59:63:59:82 | ... + ... | provenance | | +| LdapInjection.java:63:28:63:59 | jBadInitial : String | LdapInjection.java:65:29:65:55 | ... + ... | provenance | | +| LdapInjection.java:69:28:69:52 | jBad : String | LdapInjection.java:71:84:71:103 | ... + ... | provenance | | +| LdapInjection.java:69:55:69:88 | jBadDNNameAdd : String | LdapInjection.java:71:53:71:79 | ... + ... : String | provenance | | +| LdapInjection.java:71:40:71:80 | new LdapName(...) : LdapName | LdapInjection.java:71:16:71:81 | addAll(...) | provenance | | +| LdapInjection.java:71:53:71:79 | ... + ... : String | LdapInjection.java:71:40:71:80 | new LdapName(...) : LdapName | provenance | | +| LdapInjection.java:75:28:75:52 | jBad : String | LdapInjection.java:79:47:79:66 | ... + ... | provenance | | +| LdapInjection.java:75:55:75:89 | jBadDNNameAdd2 : String | LdapInjection.java:78:30:78:57 | ... + ... : String | provenance | | +| LdapInjection.java:78:5:78:8 | name : LdapName | LdapInjection.java:79:40:79:43 | name : LdapName | provenance | | +| LdapInjection.java:78:17:78:58 | new LdapName(...) : LdapName | LdapInjection.java:78:17:78:68 | getRdns(...) : List | provenance | | +| LdapInjection.java:78:17:78:68 | getRdns(...) : List | LdapInjection.java:78:5:78:8 | name : LdapName | provenance | | +| LdapInjection.java:78:30:78:57 | ... + ... : String | LdapInjection.java:78:17:78:58 | new LdapName(...) : LdapName | provenance | | +| LdapInjection.java:79:40:79:43 | name : LdapName | LdapInjection.java:79:16:79:44 | addAll(...) | provenance | | +| LdapInjection.java:83:28:83:52 | jBad : String | LdapInjection.java:85:75:85:94 | ... + ... | provenance | | +| LdapInjection.java:83:55:83:93 | jBadDNNameToString : String | LdapInjection.java:85:29:85:60 | ... + ... : String | provenance | | +| LdapInjection.java:85:16:85:61 | new LdapName(...) : LdapName | LdapInjection.java:85:16:85:72 | toString(...) | provenance | | +| LdapInjection.java:85:29:85:60 | ... + ... : String | LdapInjection.java:85:16:85:61 | new LdapName(...) : LdapName | provenance | | +| LdapInjection.java:89:28:89:52 | jBad : String | LdapInjection.java:91:76:91:95 | ... + ... | provenance | | +| LdapInjection.java:89:55:89:90 | jBadDNNameClone : String | LdapInjection.java:91:36:91:64 | ... + ... : String | provenance | | +| LdapInjection.java:91:23:91:65 | new LdapName(...) : LdapName | LdapInjection.java:91:23:91:73 | clone(...) : Object | provenance | | +| LdapInjection.java:91:23:91:73 | clone(...) : Object | LdapInjection.java:91:16:91:73 | (...)... | provenance | | +| LdapInjection.java:91:36:91:64 | ... + ... : String | LdapInjection.java:91:23:91:65 | new LdapName(...) : LdapName | provenance | | +| LdapInjection.java:106:31:106:55 | uBad : String | LdapInjection.java:108:67:108:86 | ... + ... | provenance | | +| LdapInjection.java:106:58:106:84 | uBadDN : String | LdapInjection.java:108:20:108:39 | ... + ... | provenance | | +| LdapInjection.java:112:31:112:67 | uBadFilterCreate : String | LdapInjection.java:113:72:113:87 | uBadFilterCreate : String | provenance | | +| LdapInjection.java:113:72:113:87 | uBadFilterCreate : String | LdapInjection.java:113:58:113:88 | create(...) | provenance | | +| LdapInjection.java:117:31:117:70 | uBadROSearchRequest : String | LdapInjection.java:120:9:120:43 | ... + ... : String | provenance | | +| LdapInjection.java:117:73:117:103 | uBadROSRDN : String | LdapInjection.java:119:55:119:78 | ... + ... : String | provenance | | +| LdapInjection.java:119:31:120:44 | new SearchRequest(...) : SearchRequest | LdapInjection.java:121:14:121:14 | s | provenance | | +| LdapInjection.java:119:55:119:78 | ... + ... : String | LdapInjection.java:119:31:120:44 | new SearchRequest(...) : SearchRequest | provenance | | +| LdapInjection.java:120:9:120:43 | ... + ... : String | LdapInjection.java:119:31:120:44 | new SearchRequest(...) : SearchRequest | provenance | | +| LdapInjection.java:125:31:125:68 | uBadSearchRequest : String | LdapInjection.java:128:9:128:41 | ... + ... : String | provenance | | +| LdapInjection.java:125:71:125:99 | uBadSRDN : String | LdapInjection.java:127:47:127:68 | ... + ... : String | provenance | | +| LdapInjection.java:127:23:128:42 | new SearchRequest(...) : SearchRequest | LdapInjection.java:129:14:129:14 | s | provenance | | +| LdapInjection.java:127:47:127:68 | ... + ... : String | LdapInjection.java:127:23:128:42 | new SearchRequest(...) : SearchRequest | provenance | | +| LdapInjection.java:128:9:128:41 | ... + ... : String | LdapInjection.java:127:23:128:42 | new SearchRequest(...) : SearchRequest | provenance | | +| LdapInjection.java:133:31:133:55 | uBad : String | LdapInjection.java:135:69:135:88 | ... + ... | provenance | | +| LdapInjection.java:133:58:133:87 | uBadDNSFR : String | LdapInjection.java:135:22:135:44 | ... + ... | provenance | | +| LdapInjection.java:139:31:139:75 | uBadROSearchRequestAsync : String | LdapInjection.java:142:9:142:48 | ... + ... : String | provenance | | +| LdapInjection.java:139:78:139:113 | uBadROSRDNAsync : String | LdapInjection.java:141:55:141:83 | ... + ... : String | provenance | | +| LdapInjection.java:141:31:142:49 | new SearchRequest(...) : SearchRequest | LdapInjection.java:143:19:143:19 | s | provenance | | +| LdapInjection.java:141:55:141:83 | ... + ... : String | LdapInjection.java:141:31:142:49 | new SearchRequest(...) : SearchRequest | provenance | | +| LdapInjection.java:142:9:142:48 | ... + ... : String | LdapInjection.java:141:31:142:49 | new SearchRequest(...) : SearchRequest | provenance | | +| LdapInjection.java:147:31:147:73 | uBadSearchRequestAsync : String | LdapInjection.java:150:9:150:46 | ... + ... : String | provenance | | +| LdapInjection.java:147:76:147:109 | uBadSRDNAsync : String | LdapInjection.java:149:47:149:73 | ... + ... : String | provenance | | +| LdapInjection.java:149:23:150:47 | new SearchRequest(...) : SearchRequest | LdapInjection.java:151:19:151:19 | s | provenance | | +| LdapInjection.java:149:47:149:73 | ... + ... : String | LdapInjection.java:149:23:150:47 | new SearchRequest(...) : SearchRequest | provenance | | +| LdapInjection.java:150:9:150:46 | ... + ... : String | LdapInjection.java:149:23:150:47 | new SearchRequest(...) : SearchRequest | provenance | | +| LdapInjection.java:155:31:155:70 | uBadFilterCreateNOT : String | LdapInjection.java:156:95:156:113 | uBadFilterCreateNOT : String | provenance | | +| LdapInjection.java:156:81:156:114 | create(...) : Filter | LdapInjection.java:156:58:156:115 | createNOTFilter(...) | provenance | | +| LdapInjection.java:156:95:156:113 | uBadFilterCreateNOT : String | LdapInjection.java:156:81:156:114 | create(...) : Filter | provenance | | +| LdapInjection.java:160:31:160:75 | uBadFilterCreateToString : String | LdapInjection.java:161:72:161:95 | uBadFilterCreateToString : String | provenance | | +| LdapInjection.java:161:58:161:96 | create(...) : Filter | LdapInjection.java:161:58:161:107 | toString(...) | provenance | | +| LdapInjection.java:161:72:161:95 | uBadFilterCreateToString : String | LdapInjection.java:161:58:161:96 | create(...) : Filter | provenance | | +| LdapInjection.java:165:32:165:82 | uBadFilterCreateToStringBuffer : String | LdapInjection.java:167:19:167:48 | uBadFilterCreateToStringBuffer : String | provenance | | +| LdapInjection.java:167:5:167:49 | create(...) : Filter | LdapInjection.java:167:70:167:70 | b : StringBuilder | provenance | | +| LdapInjection.java:167:19:167:48 | uBadFilterCreateToStringBuffer : String | LdapInjection.java:167:5:167:49 | create(...) : Filter | provenance | | +| LdapInjection.java:167:70:167:70 | b : StringBuilder | LdapInjection.java:168:58:168:58 | b : StringBuilder | provenance | | +| LdapInjection.java:168:58:168:58 | b : StringBuilder | LdapInjection.java:168:58:168:69 | toString(...) | provenance | | +| LdapInjection.java:172:32:172:78 | uBadSearchRequestDuplicate : String | LdapInjection.java:175:9:175:50 | ... + ... : String | provenance | | +| LdapInjection.java:174:23:175:51 | new SearchRequest(...) : SearchRequest | LdapInjection.java:176:14:176:14 | s : SearchRequest | provenance | | +| LdapInjection.java:175:9:175:50 | ... + ... : String | LdapInjection.java:174:23:175:51 | new SearchRequest(...) : SearchRequest | provenance | | +| LdapInjection.java:176:14:176:14 | s : SearchRequest | LdapInjection.java:176:14:176:26 | duplicate(...) | provenance | | +| LdapInjection.java:180:32:180:80 | uBadROSearchRequestDuplicate : String | LdapInjection.java:183:9:183:52 | ... + ... : String | provenance | | +| LdapInjection.java:182:31:183:53 | new SearchRequest(...) : SearchRequest | LdapInjection.java:184:14:184:14 | s : SearchRequest | provenance | | +| LdapInjection.java:183:9:183:52 | ... + ... : String | LdapInjection.java:182:31:183:53 | new SearchRequest(...) : SearchRequest | provenance | | +| LdapInjection.java:184:14:184:14 | s : SearchRequest | LdapInjection.java:184:14:184:26 | duplicate(...) | provenance | | +| LdapInjection.java:188:32:188:74 | uBadSearchRequestSetDN : String | LdapInjection.java:191:17:191:38 | uBadSearchRequestSetDN : String | provenance | | +| LdapInjection.java:191:5:191:5 | s : SearchRequest | LdapInjection.java:192:14:192:14 | s | provenance | | +| LdapInjection.java:191:17:191:38 | uBadSearchRequestSetDN : String | LdapInjection.java:191:5:191:5 | s : SearchRequest | provenance | | +| LdapInjection.java:196:32:196:78 | uBadSearchRequestSetFilter : String | LdapInjection.java:199:17:199:42 | uBadSearchRequestSetFilter : String | provenance | | +| LdapInjection.java:199:5:199:5 | s : SearchRequest | LdapInjection.java:200:14:200:14 | s | provenance | | +| LdapInjection.java:199:17:199:42 | uBadSearchRequestSetFilter : String | LdapInjection.java:199:5:199:5 | s : SearchRequest | provenance | | +| LdapInjection.java:229:30:229:54 | sBad : String | LdapInjection.java:230:36:230:55 | ... + ... | provenance | | +| LdapInjection.java:229:57:229:83 | sBadDN : String | LdapInjection.java:230:14:230:33 | ... + ... | provenance | | +| LdapInjection.java:234:30:234:54 | sBad : String | LdapInjection.java:235:88:235:107 | ... + ... | provenance | | +| LdapInjection.java:234:57:234:92 | sBadDNLNBuilder : String | LdapInjection.java:235:48:235:76 | ... + ... : String | provenance | | +| LdapInjection.java:235:20:235:77 | newInstance(...) : LdapNameBuilder | LdapInjection.java:235:20:235:85 | build(...) | provenance | | +| LdapInjection.java:235:48:235:76 | ... + ... : String | LdapInjection.java:235:20:235:77 | newInstance(...) : LdapNameBuilder | provenance | | +| LdapInjection.java:239:30:239:54 | sBad : String | LdapInjection.java:240:100:240:119 | ... + ... | provenance | | +| LdapInjection.java:239:57:239:95 | sBadDNLNBuilderAdd : String | LdapInjection.java:240:57:240:88 | ... + ... : String | provenance | | +| LdapInjection.java:240:23:240:89 | add(...) : LdapNameBuilder | LdapInjection.java:240:23:240:97 | build(...) | provenance | | +| LdapInjection.java:240:57:240:88 | ... + ... : String | LdapInjection.java:240:23:240:89 | add(...) : LdapNameBuilder | provenance | | +| LdapInjection.java:244:30:244:63 | sBadLdapQuery : String | LdapInjection.java:245:47:245:75 | ... + ... : String | provenance | | +| LdapInjection.java:245:47:245:75 | ... + ... : String | LdapInjection.java:245:15:245:76 | filter(...) | provenance | | +| LdapInjection.java:249:30:249:60 | sBadFilter : String | LdapInjection.java:250:86:250:111 | ... + ... : String | provenance | | +| LdapInjection.java:249:63:249:98 | sBadDNLdapUtils : String | LdapInjection.java:250:34:250:62 | ... + ... : String | provenance | | +| LdapInjection.java:250:34:250:62 | ... + ... : String | LdapInjection.java:250:12:250:63 | newLdapName(...) | provenance | | +| LdapInjection.java:250:86:250:111 | ... + ... : String | LdapInjection.java:250:66:250:112 | new HardcodedFilter(...) | provenance | | +| LdapInjection.java:254:30:254:63 | sBadLdapQuery : String | LdapInjection.java:255:56:255:84 | ... + ... : String | provenance | | +| LdapInjection.java:255:56:255:84 | ... + ... : String | LdapInjection.java:255:24:255:85 | filter(...) | provenance | | +| LdapInjection.java:259:30:259:64 | sBadLdapQuery2 : String | LdapInjection.java:260:51:260:80 | ... + ... : String | provenance | | +| LdapInjection.java:260:19:260:81 | filter(...) : LdapQuery | LdapInjection.java:261:24:261:24 | q | provenance | | +| LdapInjection.java:260:51:260:80 | ... + ... : String | LdapInjection.java:260:19:260:81 | filter(...) : LdapQuery | provenance | | +| LdapInjection.java:265:30:265:73 | sBadLdapQueryWithFilter : String | LdapInjection.java:266:76:266:114 | ... + ... : String | provenance | | +| LdapInjection.java:266:56:266:115 | new HardcodedFilter(...) : HardcodedFilter | LdapInjection.java:266:24:266:116 | filter(...) | provenance | | +| LdapInjection.java:266:76:266:114 | ... + ... : String | LdapInjection.java:266:56:266:115 | new HardcodedFilter(...) : HardcodedFilter | provenance | | +| LdapInjection.java:270:30:270:74 | sBadLdapQueryWithFilter2 : String | LdapInjection.java:271:68:271:107 | ... + ... : String | provenance | | +| LdapInjection.java:271:48:271:108 | new HardcodedFilter(...) : HardcodedFilter | LdapInjection.java:272:56:272:56 | f : HardcodedFilter | provenance | | +| LdapInjection.java:271:68:271:107 | ... + ... : String | LdapInjection.java:271:48:271:108 | new HardcodedFilter(...) : HardcodedFilter | provenance | | +| LdapInjection.java:272:56:272:56 | f : HardcodedFilter | LdapInjection.java:272:24:272:57 | filter(...) | provenance | | +| LdapInjection.java:276:31:276:68 | sBadLdapQueryBase : String | LdapInjection.java:277:42:277:58 | sBadLdapQueryBase : String | provenance | | +| LdapInjection.java:277:12:277:59 | base(...) : LdapQueryBuilder | LdapInjection.java:277:12:277:66 | base(...) | provenance | | +| LdapInjection.java:277:42:277:58 | sBadLdapQueryBase : String | LdapInjection.java:277:12:277:59 | base(...) : LdapQueryBuilder | provenance | | +| LdapInjection.java:281:31:281:71 | sBadLdapQueryComplex : String | LdapInjection.java:282:54:282:73 | sBadLdapQueryComplex : String | provenance | | +| LdapInjection.java:282:24:282:74 | base(...) : LdapQueryBuilder | LdapInjection.java:282:24:282:87 | where(...) : ConditionCriteria | provenance | | +| LdapInjection.java:282:24:282:87 | where(...) : ConditionCriteria | LdapInjection.java:282:24:282:98 | is(...) | provenance | | +| LdapInjection.java:282:54:282:73 | sBadLdapQueryComplex : String | LdapInjection.java:282:24:282:74 | base(...) : LdapQueryBuilder | provenance | | +| LdapInjection.java:286:31:286:69 | sBadFilterToString : String | LdapInjection.java:287:38:287:71 | ... + ... : String | provenance | | +| LdapInjection.java:287:18:287:72 | new HardcodedFilter(...) : HardcodedFilter | LdapInjection.java:287:18:287:83 | toString(...) | provenance | | +| LdapInjection.java:287:38:287:71 | ... + ... : String | LdapInjection.java:287:18:287:72 | new HardcodedFilter(...) : HardcodedFilter | provenance | | +| LdapInjection.java:291:31:291:67 | sBadFilterEncode : String | LdapInjection.java:293:25:293:56 | ... + ... : String | provenance | | +| LdapInjection.java:293:5:293:57 | new HardcodedFilter(...) : HardcodedFilter | LdapInjection.java:293:66:293:66 | s : StringBuffer | provenance | | +| LdapInjection.java:293:25:293:56 | ... + ... : String | LdapInjection.java:293:5:293:57 | new HardcodedFilter(...) : HardcodedFilter | provenance | | +| LdapInjection.java:293:66:293:66 | s : StringBuffer | LdapInjection.java:294:18:294:18 | s : StringBuffer | provenance | | +| LdapInjection.java:294:18:294:18 | s : StringBuffer | LdapInjection.java:294:18:294:29 | toString(...) | provenance | | +| LdapInjection.java:314:30:314:54 | aBad : String | LdapInjection.java:316:36:316:55 | ... + ... | provenance | | +| LdapInjection.java:314:57:314:83 | aBadDN : String | LdapInjection.java:316:14:316:33 | ... + ... | provenance | | +| LdapInjection.java:320:30:320:54 | aBad : String | LdapInjection.java:322:65:322:84 | ... + ... | provenance | | +| LdapInjection.java:320:57:320:94 | aBadDNObjToString : String | LdapInjection.java:322:21:322:51 | ... + ... : String | provenance | | +| LdapInjection.java:322:14:322:52 | new Dn(...) : Dn | LdapInjection.java:322:14:322:62 | getName(...) | provenance | | +| LdapInjection.java:322:21:322:51 | ... + ... : String | LdapInjection.java:322:14:322:52 | new Dn(...) : Dn | provenance | | +| LdapInjection.java:326:30:326:67 | aBadSearchRequest : String | LdapInjection.java:329:17:329:49 | ... + ... : String | provenance | | +| LdapInjection.java:329:5:329:5 | s : SearchRequestImpl | LdapInjection.java:330:14:330:14 | s | provenance | | +| LdapInjection.java:329:17:329:49 | ... + ... : String | LdapInjection.java:329:5:329:5 | s : SearchRequestImpl | provenance | | +| LdapInjection.java:334:74:334:103 | aBadDNObj : String | LdapInjection.java:337:22:337:44 | ... + ... : String | provenance | | +| LdapInjection.java:337:5:337:5 | s : SearchRequestImpl | LdapInjection.java:338:14:338:14 | s | provenance | | +| LdapInjection.java:337:15:337:45 | new Dn(...) : Dn | LdapInjection.java:337:5:337:5 | s : SearchRequestImpl | provenance | | +| LdapInjection.java:337:22:337:44 | ... + ... : String | LdapInjection.java:337:15:337:45 | new Dn(...) : Dn | provenance | | +| LdapInjection.java:342:30:342:72 | aBadDNSearchRequestGet : String | LdapInjection.java:345:22:345:57 | ... + ... : String | provenance | | +| LdapInjection.java:345:5:345:5 | s : SearchRequestImpl | LdapInjection.java:346:14:346:14 | s : SearchRequestImpl | provenance | | +| LdapInjection.java:345:15:345:58 | new Dn(...) : Dn | LdapInjection.java:345:5:345:5 | s : SearchRequestImpl | provenance | | +| LdapInjection.java:345:22:345:57 | ... + ... : String | LdapInjection.java:345:15:345:58 | new Dn(...) : Dn | provenance | | +| LdapInjection.java:346:14:346:14 | s : SearchRequestImpl | LdapInjection.java:346:14:346:24 | getBase(...) | provenance | | nodes | LdapInjection.java:45:28:45:52 | jBad : String | semmle.label | jBad : String | | LdapInjection.java:45:55:45:81 | jBadDN : String | semmle.label | jBadDN : String | diff --git a/java/ql/test/query-tests/security/CWE-094/InsecureBeanValidation.expected b/java/ql/test/query-tests/security/CWE-094/InsecureBeanValidation.expected index 5388b0df98c3..adff0e4ca422 100644 --- a/java/ql/test/query-tests/security/CWE-094/InsecureBeanValidation.expected +++ b/java/ql/test/query-tests/security/CWE-094/InsecureBeanValidation.expected @@ -1,5 +1,5 @@ edges -| InsecureBeanValidation.java:7:28:7:40 | object : String | InsecureBeanValidation.java:11:64:11:68 | value | +| InsecureBeanValidation.java:7:28:7:40 | object : String | InsecureBeanValidation.java:11:64:11:68 | value | provenance | | nodes | InsecureBeanValidation.java:7:28:7:40 | object : String | semmle.label | object : String | | InsecureBeanValidation.java:11:64:11:68 | value | semmle.label | value | diff --git a/java/ql/test/query-tests/security/CWE-113/semmle/tests/ResponseSplitting.expected b/java/ql/test/query-tests/security/CWE-113/semmle/tests/ResponseSplitting.expected index 34a84f252e10..7ec4c978a03d 100644 --- a/java/ql/test/query-tests/security/CWE-113/semmle/tests/ResponseSplitting.expected +++ b/java/ql/test/query-tests/security/CWE-113/semmle/tests/ResponseSplitting.expected @@ -1,8 +1,8 @@ edges -| ResponseSplitting.java:22:20:22:67 | new Cookie(...) : Cookie | ResponseSplitting.java:23:23:23:28 | cookie | -| ResponseSplitting.java:22:39:22:66 | getParameter(...) : String | ResponseSplitting.java:22:20:22:67 | new Cookie(...) : Cookie | -| ResponseSplitting.java:53:14:53:48 | getParameter(...) : String | ResponseSplitting.java:59:27:59:27 | t : String | -| ResponseSplitting.java:59:27:59:27 | t : String | ResponseSplitting.java:59:27:59:57 | replaceFirst(...) | +| ResponseSplitting.java:22:20:22:67 | new Cookie(...) : Cookie | ResponseSplitting.java:23:23:23:28 | cookie | provenance | | +| ResponseSplitting.java:22:39:22:66 | getParameter(...) : String | ResponseSplitting.java:22:20:22:67 | new Cookie(...) : Cookie | provenance | | +| ResponseSplitting.java:53:14:53:48 | getParameter(...) : String | ResponseSplitting.java:59:27:59:27 | t : String | provenance | | +| ResponseSplitting.java:59:27:59:27 | t : String | ResponseSplitting.java:59:27:59:57 | replaceFirst(...) | provenance | | nodes | ResponseSplitting.java:22:20:22:67 | new Cookie(...) : Cookie | semmle.label | new Cookie(...) : Cookie | | ResponseSplitting.java:22:39:22:66 | getParameter(...) : String | semmle.label | getParameter(...) : String | diff --git a/java/ql/test/query-tests/security/CWE-129/semmle/tests/ImproperValidationOfArrayConstructionCodeSpecified.expected b/java/ql/test/query-tests/security/CWE-129/semmle/tests/ImproperValidationOfArrayConstructionCodeSpecified.expected index cd4530b30026..62f9df885f85 100644 --- a/java/ql/test/query-tests/security/CWE-129/semmle/tests/ImproperValidationOfArrayConstructionCodeSpecified.expected +++ b/java/ql/test/query-tests/security/CWE-129/semmle/tests/ImproperValidationOfArrayConstructionCodeSpecified.expected @@ -1,5 +1,5 @@ edges -| Test.java:105:16:105:16 | 0 : Number | Test.java:107:27:107:30 | size | +| Test.java:105:16:105:16 | 0 : Number | Test.java:107:27:107:30 | size | provenance | | nodes | Test.java:105:16:105:16 | 0 : Number | semmle.label | 0 : Number | | Test.java:107:27:107:30 | size | semmle.label | size | diff --git a/java/ql/test/query-tests/security/CWE-129/semmle/tests/ImproperValidationOfArrayConstructionLocal.expected b/java/ql/test/query-tests/security/CWE-129/semmle/tests/ImproperValidationOfArrayConstructionLocal.expected index abfb68f74a5e..2ae58aa9d563 100644 --- a/java/ql/test/query-tests/security/CWE-129/semmle/tests/ImproperValidationOfArrayConstructionLocal.expected +++ b/java/ql/test/query-tests/security/CWE-129/semmle/tests/ImproperValidationOfArrayConstructionLocal.expected @@ -1,8 +1,8 @@ edges -| Test.java:76:27:76:60 | getProperty(...) : String | Test.java:78:37:78:48 | userProperty : String | -| Test.java:78:37:78:48 | userProperty : String | Test.java:78:37:78:55 | trim(...) : String | -| Test.java:78:37:78:55 | trim(...) : String | Test.java:80:31:80:34 | size | -| Test.java:78:37:78:55 | trim(...) : String | Test.java:86:34:86:37 | size | +| Test.java:76:27:76:60 | getProperty(...) : String | Test.java:78:37:78:48 | userProperty : String | provenance | | +| Test.java:78:37:78:48 | userProperty : String | Test.java:78:37:78:55 | trim(...) : String | provenance | | +| Test.java:78:37:78:55 | trim(...) : String | Test.java:80:31:80:34 | size | provenance | | +| Test.java:78:37:78:55 | trim(...) : String | Test.java:86:34:86:37 | size | provenance | | nodes | Test.java:76:27:76:60 | getProperty(...) : String | semmle.label | getProperty(...) : String | | Test.java:78:37:78:48 | userProperty : String | semmle.label | userProperty : String | diff --git a/java/ql/test/query-tests/security/CWE-129/semmle/tests/ImproperValidationOfArrayIndexCodeSpecified.expected b/java/ql/test/query-tests/security/CWE-129/semmle/tests/ImproperValidationOfArrayIndexCodeSpecified.expected index 16de93aaec8c..b745c26ec0a4 100644 --- a/java/ql/test/query-tests/security/CWE-129/semmle/tests/ImproperValidationOfArrayIndexCodeSpecified.expected +++ b/java/ql/test/query-tests/security/CWE-129/semmle/tests/ImproperValidationOfArrayIndexCodeSpecified.expected @@ -1,12 +1,12 @@ edges -| ../../../../../stubs/apache-commons-lang3-3.7/org/apache/commons/lang3/RandomUtils.java:34:14:34:14 | 0 : Number | Test.java:59:17:59:42 | nextInt(...) : Number | -| Test.java:41:17:41:48 | nextInt(...) : Number | Test.java:44:30:44:34 | index | -| Test.java:41:17:41:48 | nextInt(...) : Number | Test.java:48:32:48:36 | index | -| Test.java:41:17:41:48 | nextInt(...) : Number | Test.java:52:39:52:43 | index | -| Test.java:59:17:59:42 | nextInt(...) : Number | Test.java:62:30:62:34 | index | -| Test.java:59:17:59:42 | nextInt(...) : Number | Test.java:66:32:66:36 | index | -| Test.java:59:17:59:42 | nextInt(...) : Number | Test.java:70:39:70:43 | index | -| Test.java:112:17:112:17 | 0 : Number | Test.java:115:32:115:36 | index | +| ../../../../../stubs/apache-commons-lang3-3.7/org/apache/commons/lang3/RandomUtils.java:34:14:34:14 | 0 : Number | Test.java:59:17:59:42 | nextInt(...) : Number | provenance | | +| Test.java:41:17:41:48 | nextInt(...) : Number | Test.java:44:30:44:34 | index | provenance | | +| Test.java:41:17:41:48 | nextInt(...) : Number | Test.java:48:32:48:36 | index | provenance | | +| Test.java:41:17:41:48 | nextInt(...) : Number | Test.java:52:39:52:43 | index | provenance | | +| Test.java:59:17:59:42 | nextInt(...) : Number | Test.java:62:30:62:34 | index | provenance | | +| Test.java:59:17:59:42 | nextInt(...) : Number | Test.java:66:32:66:36 | index | provenance | | +| Test.java:59:17:59:42 | nextInt(...) : Number | Test.java:70:39:70:43 | index | provenance | | +| Test.java:112:17:112:17 | 0 : Number | Test.java:115:32:115:36 | index | provenance | | nodes | ../../../../../stubs/apache-commons-lang3-3.7/org/apache/commons/lang3/RandomUtils.java:34:14:34:14 | 0 : Number | semmle.label | 0 : Number | | Test.java:41:17:41:48 | nextInt(...) : Number | semmle.label | nextInt(...) : Number | diff --git a/java/ql/test/query-tests/security/CWE-129/semmle/tests/ImproperValidationOfArrayIndexLocal.expected b/java/ql/test/query-tests/security/CWE-129/semmle/tests/ImproperValidationOfArrayIndexLocal.expected index 6e0738c8576c..40248b6c645b 100644 --- a/java/ql/test/query-tests/security/CWE-129/semmle/tests/ImproperValidationOfArrayIndexLocal.expected +++ b/java/ql/test/query-tests/security/CWE-129/semmle/tests/ImproperValidationOfArrayIndexLocal.expected @@ -1,7 +1,7 @@ edges -| Test.java:14:27:14:60 | getProperty(...) : String | Test.java:16:38:16:49 | userProperty : String | -| Test.java:16:38:16:49 | userProperty : String | Test.java:16:38:16:56 | trim(...) : String | -| Test.java:16:38:16:56 | trim(...) : String | Test.java:19:34:19:38 | index | +| Test.java:14:27:14:60 | getProperty(...) : String | Test.java:16:38:16:49 | userProperty : String | provenance | | +| Test.java:16:38:16:49 | userProperty : String | Test.java:16:38:16:56 | trim(...) : String | provenance | | +| Test.java:16:38:16:56 | trim(...) : String | Test.java:19:34:19:38 | index | provenance | | nodes | Test.java:14:27:14:60 | getProperty(...) : String | semmle.label | getProperty(...) : String | | Test.java:16:38:16:49 | userProperty : String | semmle.label | userProperty : String | diff --git a/java/ql/test/query-tests/security/CWE-134/semmle/tests/ExternallyControlledFormatString.expected b/java/ql/test/query-tests/security/CWE-134/semmle/tests/ExternallyControlledFormatString.expected index 5be160201753..d5b66f9d4b28 100644 --- a/java/ql/test/query-tests/security/CWE-134/semmle/tests/ExternallyControlledFormatString.expected +++ b/java/ql/test/query-tests/security/CWE-134/semmle/tests/ExternallyControlledFormatString.expected @@ -1,7 +1,7 @@ edges -| Test.java:33:30:33:74 | getParameter(...) : String | Test.java:34:20:34:32 | userParameter : String | -| Test.java:34:20:34:32 | userParameter : String | Test.java:37:31:37:43 | format : String | -| Test.java:37:31:37:43 | format : String | Test.java:39:25:39:30 | format | +| Test.java:33:30:33:74 | getParameter(...) : String | Test.java:34:20:34:32 | userParameter : String | provenance | | +| Test.java:34:20:34:32 | userParameter : String | Test.java:37:31:37:43 | format : String | provenance | | +| Test.java:37:31:37:43 | format : String | Test.java:39:25:39:30 | format | provenance | | nodes | Test.java:33:30:33:74 | getParameter(...) : String | semmle.label | getParameter(...) : String | | Test.java:34:20:34:32 | userParameter : String | semmle.label | userParameter : String | diff --git a/java/ql/test/query-tests/security/CWE-134/semmle/tests/ExternallyControlledFormatStringLocal.expected b/java/ql/test/query-tests/security/CWE-134/semmle/tests/ExternallyControlledFormatStringLocal.expected index 99e197a2e735..3f6e0a3ff234 100644 --- a/java/ql/test/query-tests/security/CWE-134/semmle/tests/ExternallyControlledFormatStringLocal.expected +++ b/java/ql/test/query-tests/security/CWE-134/semmle/tests/ExternallyControlledFormatStringLocal.expected @@ -1,9 +1,9 @@ edges -| Test.java:17:27:17:60 | getProperty(...) : String | Test.java:19:19:19:30 | userProperty | -| Test.java:17:27:17:60 | getProperty(...) : String | Test.java:21:23:21:34 | userProperty | -| Test.java:17:27:17:60 | getProperty(...) : String | Test.java:23:23:23:34 | userProperty | -| Test.java:17:27:17:60 | getProperty(...) : String | Test.java:25:28:25:39 | userProperty | -| Test.java:17:27:17:60 | getProperty(...) : String | Test.java:27:44:27:55 | userProperty | +| Test.java:17:27:17:60 | getProperty(...) : String | Test.java:19:19:19:30 | userProperty | provenance | | +| Test.java:17:27:17:60 | getProperty(...) : String | Test.java:21:23:21:34 | userProperty | provenance | | +| Test.java:17:27:17:60 | getProperty(...) : String | Test.java:23:23:23:34 | userProperty | provenance | | +| Test.java:17:27:17:60 | getProperty(...) : String | Test.java:25:28:25:39 | userProperty | provenance | | +| Test.java:17:27:17:60 | getProperty(...) : String | Test.java:27:44:27:55 | userProperty | provenance | | nodes | Test.java:17:27:17:60 | getProperty(...) : String | semmle.label | getProperty(...) : String | | Test.java:19:19:19:30 | userProperty | semmle.label | userProperty | diff --git a/java/ql/test/query-tests/security/CWE-190/semmle/tests/ArithmeticTaintedLocal.expected b/java/ql/test/query-tests/security/CWE-190/semmle/tests/ArithmeticTaintedLocal.expected index 1864576369c2..d051c41d4d05 100644 --- a/java/ql/test/query-tests/security/CWE-190/semmle/tests/ArithmeticTaintedLocal.expected +++ b/java/ql/test/query-tests/security/CWE-190/semmle/tests/ArithmeticTaintedLocal.expected @@ -1,45 +1,45 @@ edges -| ArithmeticTainted.java:17:24:17:64 | new InputStreamReader(...) : InputStreamReader | ArithmeticTainted.java:18:40:18:56 | readerInputStream : InputStreamReader | -| ArithmeticTainted.java:17:24:17:64 | new InputStreamReader(...) : InputStreamReader | ArithmeticTainted.java:18:40:18:56 | readerInputStream : InputStreamReader | -| ArithmeticTainted.java:17:46:17:54 | System.in : InputStream | ArithmeticTainted.java:17:24:17:64 | new InputStreamReader(...) : InputStreamReader | -| ArithmeticTainted.java:17:46:17:54 | System.in : InputStream | ArithmeticTainted.java:17:24:17:64 | new InputStreamReader(...) : InputStreamReader | -| ArithmeticTainted.java:18:21:18:57 | new BufferedReader(...) : BufferedReader | ArithmeticTainted.java:19:26:19:39 | readerBuffered : BufferedReader | -| ArithmeticTainted.java:18:21:18:57 | new BufferedReader(...) : BufferedReader | ArithmeticTainted.java:19:26:19:39 | readerBuffered : BufferedReader | -| ArithmeticTainted.java:18:40:18:56 | readerInputStream : InputStreamReader | ArithmeticTainted.java:18:21:18:57 | new BufferedReader(...) : BufferedReader | -| ArithmeticTainted.java:18:40:18:56 | readerInputStream : InputStreamReader | ArithmeticTainted.java:18:21:18:57 | new BufferedReader(...) : BufferedReader | -| ArithmeticTainted.java:19:26:19:39 | readerBuffered : BufferedReader | ArithmeticTainted.java:19:26:19:50 | readLine(...) : String | -| ArithmeticTainted.java:19:26:19:39 | readerBuffered : BufferedReader | ArithmeticTainted.java:19:26:19:50 | readLine(...) : String | -| ArithmeticTainted.java:19:26:19:50 | readLine(...) : String | ArithmeticTainted.java:21:29:21:40 | stringNumber : String | -| ArithmeticTainted.java:19:26:19:50 | readLine(...) : String | ArithmeticTainted.java:21:29:21:40 | stringNumber : String | -| ArithmeticTainted.java:21:29:21:40 | stringNumber : String | ArithmeticTainted.java:21:29:21:47 | trim(...) : String | -| ArithmeticTainted.java:21:29:21:40 | stringNumber : String | ArithmeticTainted.java:21:29:21:47 | trim(...) : String | -| ArithmeticTainted.java:21:29:21:47 | trim(...) : String | ArithmeticTainted.java:32:17:32:20 | data | -| ArithmeticTainted.java:21:29:21:47 | trim(...) : String | ArithmeticTainted.java:40:17:40:20 | data | -| ArithmeticTainted.java:21:29:21:47 | trim(...) : String | ArithmeticTainted.java:50:17:50:20 | data | -| ArithmeticTainted.java:21:29:21:47 | trim(...) : String | ArithmeticTainted.java:64:20:64:23 | data : Number | -| ArithmeticTainted.java:21:29:21:47 | trim(...) : String | ArithmeticTainted.java:95:37:95:40 | data | -| ArithmeticTainted.java:21:29:21:47 | trim(...) : String | ArithmeticTainted.java:118:9:118:12 | data : Number | -| ArithmeticTainted.java:21:29:21:47 | trim(...) : String | ArithmeticTainted.java:119:10:119:13 | data : Number | -| ArithmeticTainted.java:21:29:21:47 | trim(...) : String | ArithmeticTainted.java:120:10:120:13 | data : Number | -| ArithmeticTainted.java:21:29:21:47 | trim(...) : String | ArithmeticTainted.java:121:10:121:13 | data : Number | -| ArithmeticTainted.java:64:4:64:10 | tainted [post update] : Holder [dat] : Number | ArithmeticTainted.java:66:18:66:24 | tainted : Holder [dat] : Number | -| ArithmeticTainted.java:64:20:64:23 | data : Number | ArithmeticTainted.java:64:4:64:10 | tainted [post update] : Holder [dat] : Number | -| ArithmeticTainted.java:64:20:64:23 | data : Number | Holder.java:12:22:12:26 | d : Number | -| ArithmeticTainted.java:66:18:66:24 | tainted : Holder [dat] : Number | ArithmeticTainted.java:66:18:66:34 | getData(...) : Number | -| ArithmeticTainted.java:66:18:66:24 | tainted : Holder [dat] : Number | Holder.java:16:13:16:19 | parameter this : Holder [dat] : Number | -| ArithmeticTainted.java:66:18:66:34 | getData(...) : Number | ArithmeticTainted.java:71:17:71:23 | herring | -| ArithmeticTainted.java:118:9:118:12 | data : Number | ArithmeticTainted.java:125:26:125:33 | data : Number | -| ArithmeticTainted.java:119:10:119:13 | data : Number | ArithmeticTainted.java:129:27:129:34 | data : Number | -| ArithmeticTainted.java:120:10:120:13 | data : Number | ArithmeticTainted.java:133:27:133:34 | data : Number | -| ArithmeticTainted.java:121:10:121:13 | data : Number | ArithmeticTainted.java:137:27:137:34 | data : Number | -| ArithmeticTainted.java:125:26:125:33 | data : Number | ArithmeticTainted.java:127:3:127:6 | data | -| ArithmeticTainted.java:129:27:129:34 | data : Number | ArithmeticTainted.java:131:5:131:8 | data | -| ArithmeticTainted.java:133:27:133:34 | data : Number | ArithmeticTainted.java:135:3:135:6 | data | -| ArithmeticTainted.java:137:27:137:34 | data : Number | ArithmeticTainted.java:139:5:139:8 | data | -| Holder.java:12:22:12:26 | d : Number | Holder.java:13:9:13:9 | d : Number | -| Holder.java:13:9:13:9 | d : Number | Holder.java:13:3:13:5 | this <.field> [post update] : Holder [dat] : Number | -| Holder.java:16:13:16:19 | parameter this : Holder [dat] : Number | Holder.java:17:10:17:12 | this <.field> : Holder [dat] : Number | -| Holder.java:17:10:17:12 | this <.field> : Holder [dat] : Number | Holder.java:17:10:17:12 | dat : Number | +| ArithmeticTainted.java:17:24:17:64 | new InputStreamReader(...) : InputStreamReader | ArithmeticTainted.java:18:40:18:56 | readerInputStream : InputStreamReader | provenance | | +| ArithmeticTainted.java:17:24:17:64 | new InputStreamReader(...) : InputStreamReader | ArithmeticTainted.java:18:40:18:56 | readerInputStream : InputStreamReader | provenance | | +| ArithmeticTainted.java:17:46:17:54 | System.in : InputStream | ArithmeticTainted.java:17:24:17:64 | new InputStreamReader(...) : InputStreamReader | provenance | | +| ArithmeticTainted.java:17:46:17:54 | System.in : InputStream | ArithmeticTainted.java:17:24:17:64 | new InputStreamReader(...) : InputStreamReader | provenance | | +| ArithmeticTainted.java:18:21:18:57 | new BufferedReader(...) : BufferedReader | ArithmeticTainted.java:19:26:19:39 | readerBuffered : BufferedReader | provenance | | +| ArithmeticTainted.java:18:21:18:57 | new BufferedReader(...) : BufferedReader | ArithmeticTainted.java:19:26:19:39 | readerBuffered : BufferedReader | provenance | | +| ArithmeticTainted.java:18:40:18:56 | readerInputStream : InputStreamReader | ArithmeticTainted.java:18:21:18:57 | new BufferedReader(...) : BufferedReader | provenance | | +| ArithmeticTainted.java:18:40:18:56 | readerInputStream : InputStreamReader | ArithmeticTainted.java:18:21:18:57 | new BufferedReader(...) : BufferedReader | provenance | | +| ArithmeticTainted.java:19:26:19:39 | readerBuffered : BufferedReader | ArithmeticTainted.java:19:26:19:50 | readLine(...) : String | provenance | | +| ArithmeticTainted.java:19:26:19:39 | readerBuffered : BufferedReader | ArithmeticTainted.java:19:26:19:50 | readLine(...) : String | provenance | | +| ArithmeticTainted.java:19:26:19:50 | readLine(...) : String | ArithmeticTainted.java:21:29:21:40 | stringNumber : String | provenance | | +| ArithmeticTainted.java:19:26:19:50 | readLine(...) : String | ArithmeticTainted.java:21:29:21:40 | stringNumber : String | provenance | | +| ArithmeticTainted.java:21:29:21:40 | stringNumber : String | ArithmeticTainted.java:21:29:21:47 | trim(...) : String | provenance | | +| ArithmeticTainted.java:21:29:21:40 | stringNumber : String | ArithmeticTainted.java:21:29:21:47 | trim(...) : String | provenance | | +| ArithmeticTainted.java:21:29:21:47 | trim(...) : String | ArithmeticTainted.java:32:17:32:20 | data | provenance | | +| ArithmeticTainted.java:21:29:21:47 | trim(...) : String | ArithmeticTainted.java:40:17:40:20 | data | provenance | | +| ArithmeticTainted.java:21:29:21:47 | trim(...) : String | ArithmeticTainted.java:50:17:50:20 | data | provenance | | +| ArithmeticTainted.java:21:29:21:47 | trim(...) : String | ArithmeticTainted.java:64:20:64:23 | data : Number | provenance | | +| ArithmeticTainted.java:21:29:21:47 | trim(...) : String | ArithmeticTainted.java:95:37:95:40 | data | provenance | | +| ArithmeticTainted.java:21:29:21:47 | trim(...) : String | ArithmeticTainted.java:118:9:118:12 | data : Number | provenance | | +| ArithmeticTainted.java:21:29:21:47 | trim(...) : String | ArithmeticTainted.java:119:10:119:13 | data : Number | provenance | | +| ArithmeticTainted.java:21:29:21:47 | trim(...) : String | ArithmeticTainted.java:120:10:120:13 | data : Number | provenance | | +| ArithmeticTainted.java:21:29:21:47 | trim(...) : String | ArithmeticTainted.java:121:10:121:13 | data : Number | provenance | | +| ArithmeticTainted.java:64:4:64:10 | tainted [post update] : Holder [dat] : Number | ArithmeticTainted.java:66:18:66:24 | tainted : Holder [dat] : Number | provenance | | +| ArithmeticTainted.java:64:20:64:23 | data : Number | ArithmeticTainted.java:64:4:64:10 | tainted [post update] : Holder [dat] : Number | provenance | | +| ArithmeticTainted.java:64:20:64:23 | data : Number | Holder.java:12:22:12:26 | d : Number | provenance | | +| ArithmeticTainted.java:66:18:66:24 | tainted : Holder [dat] : Number | ArithmeticTainted.java:66:18:66:34 | getData(...) : Number | provenance | | +| ArithmeticTainted.java:66:18:66:24 | tainted : Holder [dat] : Number | Holder.java:16:13:16:19 | parameter this : Holder [dat] : Number | provenance | | +| ArithmeticTainted.java:66:18:66:34 | getData(...) : Number | ArithmeticTainted.java:71:17:71:23 | herring | provenance | | +| ArithmeticTainted.java:118:9:118:12 | data : Number | ArithmeticTainted.java:125:26:125:33 | data : Number | provenance | | +| ArithmeticTainted.java:119:10:119:13 | data : Number | ArithmeticTainted.java:129:27:129:34 | data : Number | provenance | | +| ArithmeticTainted.java:120:10:120:13 | data : Number | ArithmeticTainted.java:133:27:133:34 | data : Number | provenance | | +| ArithmeticTainted.java:121:10:121:13 | data : Number | ArithmeticTainted.java:137:27:137:34 | data : Number | provenance | | +| ArithmeticTainted.java:125:26:125:33 | data : Number | ArithmeticTainted.java:127:3:127:6 | data | provenance | | +| ArithmeticTainted.java:129:27:129:34 | data : Number | ArithmeticTainted.java:131:5:131:8 | data | provenance | | +| ArithmeticTainted.java:133:27:133:34 | data : Number | ArithmeticTainted.java:135:3:135:6 | data | provenance | | +| ArithmeticTainted.java:137:27:137:34 | data : Number | ArithmeticTainted.java:139:5:139:8 | data | provenance | | +| Holder.java:12:22:12:26 | d : Number | Holder.java:13:9:13:9 | d : Number | provenance | | +| Holder.java:13:9:13:9 | d : Number | Holder.java:13:3:13:5 | this <.field> [post update] : Holder [dat] : Number | provenance | | +| Holder.java:16:13:16:19 | parameter this : Holder [dat] : Number | Holder.java:17:10:17:12 | this <.field> : Holder [dat] : Number | provenance | | +| Holder.java:17:10:17:12 | this <.field> : Holder [dat] : Number | Holder.java:17:10:17:12 | dat : Number | provenance | | nodes | ArithmeticTainted.java:17:24:17:64 | new InputStreamReader(...) : InputStreamReader | semmle.label | new InputStreamReader(...) : InputStreamReader | | ArithmeticTainted.java:17:24:17:64 | new InputStreamReader(...) : InputStreamReader | semmle.label | new InputStreamReader(...) : InputStreamReader | diff --git a/java/ql/test/query-tests/security/CWE-190/semmle/tests/ArithmeticUncontrolled.expected b/java/ql/test/query-tests/security/CWE-190/semmle/tests/ArithmeticUncontrolled.expected index 43256841646d..5a305a82c889 100644 --- a/java/ql/test/query-tests/security/CWE-190/semmle/tests/ArithmeticUncontrolled.expected +++ b/java/ql/test/query-tests/security/CWE-190/semmle/tests/ArithmeticUncontrolled.expected @@ -1,8 +1,8 @@ edges -| Test.java:206:14:206:57 | nextInt(...) : Number | Test.java:210:17:210:20 | data | -| Test.java:206:14:206:57 | nextInt(...) : Number | Test.java:241:37:241:40 | data | -| Test.java:245:15:245:35 | nextInt(...) : Number | Test.java:249:17:249:21 | data2 | -| Test.java:245:15:245:35 | nextInt(...) : Number | Test.java:280:37:280:41 | data2 | +| Test.java:206:14:206:57 | nextInt(...) : Number | Test.java:210:17:210:20 | data | provenance | | +| Test.java:206:14:206:57 | nextInt(...) : Number | Test.java:241:37:241:40 | data | provenance | | +| Test.java:245:15:245:35 | nextInt(...) : Number | Test.java:249:17:249:21 | data2 | provenance | | +| Test.java:245:15:245:35 | nextInt(...) : Number | Test.java:280:37:280:41 | data2 | provenance | | nodes | Test.java:206:14:206:57 | nextInt(...) : Number | semmle.label | nextInt(...) : Number | | Test.java:210:17:210:20 | data | semmle.label | data | diff --git a/java/ql/test/query-tests/security/CWE-190/semmle/tests/ArithmeticWithExtremeValues.expected b/java/ql/test/query-tests/security/CWE-190/semmle/tests/ArithmeticWithExtremeValues.expected index 574dc3392a08..bd0b33f48100 100644 --- a/java/ql/test/query-tests/security/CWE-190/semmle/tests/ArithmeticWithExtremeValues.expected +++ b/java/ql/test/query-tests/security/CWE-190/semmle/tests/ArithmeticWithExtremeValues.expected @@ -1,11 +1,11 @@ edges -| Test.java:93:8:93:24 | Integer.MAX_VALUE : Number | Test.java:96:8:96:8 | i | -| Test.java:109:13:109:26 | Long.MIN_VALUE : Number | Test.java:111:13:111:13 | i | -| Test.java:138:9:138:25 | Integer.MAX_VALUE : Number | Test.java:139:14:139:14 | i | -| Test.java:144:12:144:28 | Integer.MAX_VALUE : Number | Test.java:147:14:147:14 | i | -| Test.java:185:13:185:26 | Byte.MAX_VALUE : Number | Test.java:188:39:188:39 | b | -| Test.java:192:14:192:28 | Short.MAX_VALUE : Number | Test.java:195:41:195:41 | s | -| Test.java:199:12:199:28 | Integer.MAX_VALUE : Number | Test.java:202:37:202:37 | i | +| Test.java:93:8:93:24 | Integer.MAX_VALUE : Number | Test.java:96:8:96:8 | i | provenance | | +| Test.java:109:13:109:26 | Long.MIN_VALUE : Number | Test.java:111:13:111:13 | i | provenance | | +| Test.java:138:9:138:25 | Integer.MAX_VALUE : Number | Test.java:139:14:139:14 | i | provenance | | +| Test.java:144:12:144:28 | Integer.MAX_VALUE : Number | Test.java:147:14:147:14 | i | provenance | | +| Test.java:185:13:185:26 | Byte.MAX_VALUE : Number | Test.java:188:39:188:39 | b | provenance | | +| Test.java:192:14:192:28 | Short.MAX_VALUE : Number | Test.java:195:41:195:41 | s | provenance | | +| Test.java:199:12:199:28 | Integer.MAX_VALUE : Number | Test.java:202:37:202:37 | i | provenance | | nodes | Test.java:93:8:93:24 | Integer.MAX_VALUE : Number | semmle.label | Integer.MAX_VALUE : Number | | Test.java:96:8:96:8 | i | semmle.label | i | diff --git a/java/ql/test/query-tests/security/CWE-200/semmle/tests/TempDirLocalInformationDisclosure/TempDirLocalInformationDisclosure.expected b/java/ql/test/query-tests/security/CWE-200/semmle/tests/TempDirLocalInformationDisclosure/TempDirLocalInformationDisclosure.expected index 03c431822b5c..21e9f7379c62 100644 --- a/java/ql/test/query-tests/security/CWE-200/semmle/tests/TempDirLocalInformationDisclosure/TempDirLocalInformationDisclosure.expected +++ b/java/ql/test/query-tests/security/CWE-200/semmle/tests/TempDirLocalInformationDisclosure/TempDirLocalInformationDisclosure.expected @@ -1,59 +1,59 @@ edges -| Files.java:10:24:10:69 | new File(...) : File | Files.java:14:37:14:43 | baseDir : File | -| Files.java:10:33:10:68 | getProperty(...) : String | Files.java:10:24:10:69 | new File(...) : File | -| Files.java:14:28:14:64 | new File(...) : File | Files.java:15:17:15:23 | tempDir | -| Files.java:14:37:14:43 | baseDir : File | Files.java:14:28:14:64 | new File(...) : File | -| Test.java:36:24:36:69 | new File(...) : File | Test.java:39:63:39:69 | tempDir | -| Test.java:36:33:36:68 | getProperty(...) : String | Test.java:36:24:36:69 | new File(...) : File | -| Test.java:50:29:50:94 | new File(...) : File | Test.java:53:63:53:74 | tempDirChild | -| Test.java:50:38:50:83 | new File(...) : File | Test.java:50:29:50:94 | new File(...) : File | -| Test.java:50:47:50:82 | getProperty(...) : String | Test.java:50:38:50:83 | new File(...) : File | -| Test.java:61:24:61:69 | new File(...) : File | Test.java:61:24:61:88 | getCanonicalFile(...) : File | -| Test.java:61:24:61:88 | getCanonicalFile(...) : File | Test.java:64:63:64:69 | tempDir | -| Test.java:61:33:61:68 | getProperty(...) : String | Test.java:61:24:61:69 | new File(...) : File | -| Test.java:75:24:75:69 | new File(...) : File | Test.java:75:24:75:87 | getAbsoluteFile(...) : File | -| Test.java:75:24:75:87 | getAbsoluteFile(...) : File | Test.java:78:63:78:69 | tempDir | -| Test.java:75:33:75:68 | getProperty(...) : String | Test.java:75:24:75:69 | new File(...) : File | -| Test.java:110:29:110:84 | new File(...) : File | Test.java:113:9:113:20 | tempDirChild | -| Test.java:110:38:110:73 | getProperty(...) : String | Test.java:110:29:110:84 | new File(...) : File | -| Test.java:134:29:134:84 | new File(...) : File | Test.java:137:9:137:20 | tempDirChild | -| Test.java:134:38:134:73 | getProperty(...) : String | Test.java:134:29:134:84 | new File(...) : File | -| Test.java:158:29:158:88 | new File(...) : File | Test.java:159:21:159:32 | tempDirChild : File | -| Test.java:158:38:158:73 | getProperty(...) : String | Test.java:158:29:158:88 | new File(...) : File | -| Test.java:159:21:159:32 | tempDirChild : File | Test.java:159:21:159:41 | toPath(...) | -| Test.java:187:29:187:88 | new File(...) : File | Test.java:188:21:188:32 | tempDirChild : File | -| Test.java:187:38:187:73 | getProperty(...) : String | Test.java:187:29:187:88 | new File(...) : File | -| Test.java:188:21:188:32 | tempDirChild : File | Test.java:188:21:188:41 | toPath(...) | -| Test.java:204:29:204:104 | new File(...) : File | Test.java:204:29:204:113 | toPath(...) : Path | -| Test.java:204:29:204:113 | toPath(...) : Path | Test.java:207:33:207:44 | tempDirChild | -| Test.java:204:38:204:73 | getProperty(...) : String | Test.java:204:29:204:104 | new File(...) : File | -| Test.java:216:29:216:102 | new File(...) : File | Test.java:216:29:216:111 | toPath(...) : Path | -| Test.java:216:29:216:111 | toPath(...) : Path | Test.java:219:31:219:42 | tempDirChild | -| Test.java:216:38:216:73 | getProperty(...) : String | Test.java:216:29:216:102 | new File(...) : File | -| Test.java:228:29:228:100 | new File(...) : File | Test.java:231:26:231:37 | tempDirChild : File | -| Test.java:228:38:228:73 | getProperty(...) : String | Test.java:228:29:228:100 | new File(...) : File | -| Test.java:231:26:231:37 | tempDirChild : File | Test.java:231:26:231:46 | toPath(...) | -| Test.java:249:29:249:101 | new File(...) : File | Test.java:252:31:252:42 | tempDirChild : File | -| Test.java:249:38:249:73 | getProperty(...) : String | Test.java:249:29:249:101 | new File(...) : File | -| Test.java:252:31:252:42 | tempDirChild : File | Test.java:252:31:252:51 | toPath(...) | -| Test.java:260:29:260:109 | new File(...) : File | Test.java:263:33:263:44 | tempDirChild : File | -| Test.java:260:38:260:73 | getProperty(...) : String | Test.java:260:29:260:109 | new File(...) : File | -| Test.java:263:33:263:44 | tempDirChild : File | Test.java:263:33:263:53 | toPath(...) | -| Test.java:294:29:294:101 | new File(...) : File | Test.java:298:35:298:46 | tempDirChild : File | -| Test.java:294:38:294:73 | getProperty(...) : String | Test.java:294:29:294:101 | new File(...) : File | -| Test.java:298:35:298:46 | tempDirChild : File | Test.java:298:35:298:55 | toPath(...) | -| Test.java:313:29:313:101 | new File(...) : File | Test.java:316:35:316:46 | tempDirChild : File | -| Test.java:313:38:313:73 | getProperty(...) : String | Test.java:313:29:313:101 | new File(...) : File | -| Test.java:316:35:316:46 | tempDirChild : File | Test.java:316:35:316:55 | toPath(...) | -| Test.java:322:29:322:101 | new File(...) : File | Test.java:326:35:326:46 | tempDirChild : File | -| Test.java:322:38:322:73 | getProperty(...) : String | Test.java:322:29:322:101 | new File(...) : File | -| Test.java:326:35:326:46 | tempDirChild : File | Test.java:326:35:326:55 | toPath(...) | -| Test.java:350:29:350:101 | new File(...) : File | Test.java:355:35:355:46 | tempDirChild : File | -| Test.java:350:38:350:73 | getProperty(...) : String | Test.java:350:29:350:101 | new File(...) : File | -| Test.java:355:35:355:46 | tempDirChild : File | Test.java:355:35:355:55 | toPath(...) | -| Test.java:361:29:361:101 | new File(...) : File | Test.java:366:35:366:46 | tempDirChild : File | -| Test.java:361:38:361:73 | getProperty(...) : String | Test.java:361:29:361:101 | new File(...) : File | -| Test.java:366:35:366:46 | tempDirChild : File | Test.java:366:35:366:55 | toPath(...) | +| Files.java:10:24:10:69 | new File(...) : File | Files.java:14:37:14:43 | baseDir : File | provenance | | +| Files.java:10:33:10:68 | getProperty(...) : String | Files.java:10:24:10:69 | new File(...) : File | provenance | | +| Files.java:14:28:14:64 | new File(...) : File | Files.java:15:17:15:23 | tempDir | provenance | | +| Files.java:14:37:14:43 | baseDir : File | Files.java:14:28:14:64 | new File(...) : File | provenance | | +| Test.java:36:24:36:69 | new File(...) : File | Test.java:39:63:39:69 | tempDir | provenance | | +| Test.java:36:33:36:68 | getProperty(...) : String | Test.java:36:24:36:69 | new File(...) : File | provenance | | +| Test.java:50:29:50:94 | new File(...) : File | Test.java:53:63:53:74 | tempDirChild | provenance | | +| Test.java:50:38:50:83 | new File(...) : File | Test.java:50:29:50:94 | new File(...) : File | provenance | | +| Test.java:50:47:50:82 | getProperty(...) : String | Test.java:50:38:50:83 | new File(...) : File | provenance | | +| Test.java:61:24:61:69 | new File(...) : File | Test.java:61:24:61:88 | getCanonicalFile(...) : File | provenance | | +| Test.java:61:24:61:88 | getCanonicalFile(...) : File | Test.java:64:63:64:69 | tempDir | provenance | | +| Test.java:61:33:61:68 | getProperty(...) : String | Test.java:61:24:61:69 | new File(...) : File | provenance | | +| Test.java:75:24:75:69 | new File(...) : File | Test.java:75:24:75:87 | getAbsoluteFile(...) : File | provenance | | +| Test.java:75:24:75:87 | getAbsoluteFile(...) : File | Test.java:78:63:78:69 | tempDir | provenance | | +| Test.java:75:33:75:68 | getProperty(...) : String | Test.java:75:24:75:69 | new File(...) : File | provenance | | +| Test.java:110:29:110:84 | new File(...) : File | Test.java:113:9:113:20 | tempDirChild | provenance | | +| Test.java:110:38:110:73 | getProperty(...) : String | Test.java:110:29:110:84 | new File(...) : File | provenance | | +| Test.java:134:29:134:84 | new File(...) : File | Test.java:137:9:137:20 | tempDirChild | provenance | | +| Test.java:134:38:134:73 | getProperty(...) : String | Test.java:134:29:134:84 | new File(...) : File | provenance | | +| Test.java:158:29:158:88 | new File(...) : File | Test.java:159:21:159:32 | tempDirChild : File | provenance | | +| Test.java:158:38:158:73 | getProperty(...) : String | Test.java:158:29:158:88 | new File(...) : File | provenance | | +| Test.java:159:21:159:32 | tempDirChild : File | Test.java:159:21:159:41 | toPath(...) | provenance | | +| Test.java:187:29:187:88 | new File(...) : File | Test.java:188:21:188:32 | tempDirChild : File | provenance | | +| Test.java:187:38:187:73 | getProperty(...) : String | Test.java:187:29:187:88 | new File(...) : File | provenance | | +| Test.java:188:21:188:32 | tempDirChild : File | Test.java:188:21:188:41 | toPath(...) | provenance | | +| Test.java:204:29:204:104 | new File(...) : File | Test.java:204:29:204:113 | toPath(...) : Path | provenance | | +| Test.java:204:29:204:113 | toPath(...) : Path | Test.java:207:33:207:44 | tempDirChild | provenance | | +| Test.java:204:38:204:73 | getProperty(...) : String | Test.java:204:29:204:104 | new File(...) : File | provenance | | +| Test.java:216:29:216:102 | new File(...) : File | Test.java:216:29:216:111 | toPath(...) : Path | provenance | | +| Test.java:216:29:216:111 | toPath(...) : Path | Test.java:219:31:219:42 | tempDirChild | provenance | | +| Test.java:216:38:216:73 | getProperty(...) : String | Test.java:216:29:216:102 | new File(...) : File | provenance | | +| Test.java:228:29:228:100 | new File(...) : File | Test.java:231:26:231:37 | tempDirChild : File | provenance | | +| Test.java:228:38:228:73 | getProperty(...) : String | Test.java:228:29:228:100 | new File(...) : File | provenance | | +| Test.java:231:26:231:37 | tempDirChild : File | Test.java:231:26:231:46 | toPath(...) | provenance | | +| Test.java:249:29:249:101 | new File(...) : File | Test.java:252:31:252:42 | tempDirChild : File | provenance | | +| Test.java:249:38:249:73 | getProperty(...) : String | Test.java:249:29:249:101 | new File(...) : File | provenance | | +| Test.java:252:31:252:42 | tempDirChild : File | Test.java:252:31:252:51 | toPath(...) | provenance | | +| Test.java:260:29:260:109 | new File(...) : File | Test.java:263:33:263:44 | tempDirChild : File | provenance | | +| Test.java:260:38:260:73 | getProperty(...) : String | Test.java:260:29:260:109 | new File(...) : File | provenance | | +| Test.java:263:33:263:44 | tempDirChild : File | Test.java:263:33:263:53 | toPath(...) | provenance | | +| Test.java:294:29:294:101 | new File(...) : File | Test.java:298:35:298:46 | tempDirChild : File | provenance | | +| Test.java:294:38:294:73 | getProperty(...) : String | Test.java:294:29:294:101 | new File(...) : File | provenance | | +| Test.java:298:35:298:46 | tempDirChild : File | Test.java:298:35:298:55 | toPath(...) | provenance | | +| Test.java:313:29:313:101 | new File(...) : File | Test.java:316:35:316:46 | tempDirChild : File | provenance | | +| Test.java:313:38:313:73 | getProperty(...) : String | Test.java:313:29:313:101 | new File(...) : File | provenance | | +| Test.java:316:35:316:46 | tempDirChild : File | Test.java:316:35:316:55 | toPath(...) | provenance | | +| Test.java:322:29:322:101 | new File(...) : File | Test.java:326:35:326:46 | tempDirChild : File | provenance | | +| Test.java:322:38:322:73 | getProperty(...) : String | Test.java:322:29:322:101 | new File(...) : File | provenance | | +| Test.java:326:35:326:46 | tempDirChild : File | Test.java:326:35:326:55 | toPath(...) | provenance | | +| Test.java:350:29:350:101 | new File(...) : File | Test.java:355:35:355:46 | tempDirChild : File | provenance | | +| Test.java:350:38:350:73 | getProperty(...) : String | Test.java:350:29:350:101 | new File(...) : File | provenance | | +| Test.java:355:35:355:46 | tempDirChild : File | Test.java:355:35:355:55 | toPath(...) | provenance | | +| Test.java:361:29:361:101 | new File(...) : File | Test.java:366:35:366:46 | tempDirChild : File | provenance | | +| Test.java:361:38:361:73 | getProperty(...) : String | Test.java:361:29:361:101 | new File(...) : File | provenance | | +| Test.java:366:35:366:46 | tempDirChild : File | Test.java:366:35:366:55 | toPath(...) | provenance | | nodes | Files.java:10:24:10:69 | new File(...) : File | semmle.label | new File(...) : File | | Files.java:10:33:10:68 | getProperty(...) : String | semmle.label | getProperty(...) : String | diff --git a/java/ql/test/query-tests/security/CWE-297/UnsafeHostnameVerification.expected b/java/ql/test/query-tests/security/CWE-297/UnsafeHostnameVerification.expected index 86e91b2003b6..8377276e40c1 100644 --- a/java/ql/test/query-tests/security/CWE-297/UnsafeHostnameVerification.expected +++ b/java/ql/test/query-tests/security/CWE-297/UnsafeHostnameVerification.expected @@ -1,8 +1,8 @@ edges -| UnsafeHostnameVerification.java:66:37:80:9 | new (...) : new HostnameVerifier(...) { ... } | UnsafeHostnameVerification.java:81:55:81:62 | verifier | -| UnsafeHostnameVerification.java:88:37:93:9 | new (...) : new HostnameVerifier(...) { ... } | UnsafeHostnameVerification.java:94:55:94:62 | verifier | -| UnsafeHostnameVerification.java:97:42:97:68 | ALLOW_ALL_HOSTNAME_VERIFIER : new HostnameVerifier(...) { ... } | UnsafeHostnameVerification.java:34:59:34:85 | ALLOW_ALL_HOSTNAME_VERIFIER | -| UnsafeHostnameVerification.java:97:72:102:5 | new (...) : new HostnameVerifier(...) { ... } | UnsafeHostnameVerification.java:97:42:97:68 | ALLOW_ALL_HOSTNAME_VERIFIER : new HostnameVerifier(...) { ... } | +| UnsafeHostnameVerification.java:66:37:80:9 | new (...) : new HostnameVerifier(...) { ... } | UnsafeHostnameVerification.java:81:55:81:62 | verifier | provenance | | +| UnsafeHostnameVerification.java:88:37:93:9 | new (...) : new HostnameVerifier(...) { ... } | UnsafeHostnameVerification.java:94:55:94:62 | verifier | provenance | | +| UnsafeHostnameVerification.java:97:42:97:68 | ALLOW_ALL_HOSTNAME_VERIFIER : new HostnameVerifier(...) { ... } | UnsafeHostnameVerification.java:34:59:34:85 | ALLOW_ALL_HOSTNAME_VERIFIER | provenance | | +| UnsafeHostnameVerification.java:97:72:102:5 | new (...) : new HostnameVerifier(...) { ... } | UnsafeHostnameVerification.java:97:42:97:68 | ALLOW_ALL_HOSTNAME_VERIFIER : new HostnameVerifier(...) { ... } | provenance | | nodes | UnsafeHostnameVerification.java:14:55:19:9 | new (...) | semmle.label | new (...) | | UnsafeHostnameVerification.java:26:55:26:71 | ...->... | semmle.label | ...->... | diff --git a/java/ql/test/query-tests/security/CWE-311/CWE-319/HttpsUrls.expected b/java/ql/test/query-tests/security/CWE-311/CWE-319/HttpsUrls.expected index baef4c539b8f..2b2ff6478ce6 100644 --- a/java/ql/test/query-tests/security/CWE-311/CWE-319/HttpsUrls.expected +++ b/java/ql/test/query-tests/security/CWE-311/CWE-319/HttpsUrls.expected @@ -1,16 +1,16 @@ edges -| HttpsUrlsTest.java:23:23:23:31 | "http://" : String | HttpsUrlsTest.java:24:21:24:56 | ... + ... : String | -| HttpsUrlsTest.java:24:13:24:57 | new URL(...) : URL | HttpsUrlsTest.java:28:50:28:50 | u | -| HttpsUrlsTest.java:24:21:24:56 | ... + ... : String | HttpsUrlsTest.java:24:13:24:57 | new URL(...) : URL | -| HttpsUrlsTest.java:36:23:36:28 | "http" : String | HttpsUrlsTest.java:37:21:37:28 | protocol : String | -| HttpsUrlsTest.java:37:13:37:62 | new URL(...) : URL | HttpsUrlsTest.java:41:50:41:50 | u | -| HttpsUrlsTest.java:37:21:37:28 | protocol : String | HttpsUrlsTest.java:37:13:37:62 | new URL(...) : URL | -| HttpsUrlsTest.java:49:23:49:31 | "http://" : String | HttpsUrlsTest.java:51:64:51:98 | ... + ... : String | -| HttpsUrlsTest.java:51:13:51:99 | new URL(...) : URL | HttpsUrlsTest.java:55:50:55:50 | u | -| HttpsUrlsTest.java:51:64:51:98 | ... + ... : String | HttpsUrlsTest.java:51:13:51:99 | new URL(...) : URL | -| HttpsUrlsTest.java:87:23:87:28 | "http" : String | HttpsUrlsTest.java:88:21:88:28 | protocol : String | -| HttpsUrlsTest.java:88:13:88:52 | new URL(...) : URL | HttpsUrlsTest.java:92:50:92:50 | u | -| HttpsUrlsTest.java:88:21:88:28 | protocol : String | HttpsUrlsTest.java:88:13:88:52 | new URL(...) : URL | +| HttpsUrlsTest.java:23:23:23:31 | "http://" : String | HttpsUrlsTest.java:24:21:24:56 | ... + ... : String | provenance | | +| HttpsUrlsTest.java:24:13:24:57 | new URL(...) : URL | HttpsUrlsTest.java:28:50:28:50 | u | provenance | | +| HttpsUrlsTest.java:24:21:24:56 | ... + ... : String | HttpsUrlsTest.java:24:13:24:57 | new URL(...) : URL | provenance | | +| HttpsUrlsTest.java:36:23:36:28 | "http" : String | HttpsUrlsTest.java:37:21:37:28 | protocol : String | provenance | | +| HttpsUrlsTest.java:37:13:37:62 | new URL(...) : URL | HttpsUrlsTest.java:41:50:41:50 | u | provenance | | +| HttpsUrlsTest.java:37:21:37:28 | protocol : String | HttpsUrlsTest.java:37:13:37:62 | new URL(...) : URL | provenance | | +| HttpsUrlsTest.java:49:23:49:31 | "http://" : String | HttpsUrlsTest.java:51:64:51:98 | ... + ... : String | provenance | | +| HttpsUrlsTest.java:51:13:51:99 | new URL(...) : URL | HttpsUrlsTest.java:55:50:55:50 | u | provenance | | +| HttpsUrlsTest.java:51:64:51:98 | ... + ... : String | HttpsUrlsTest.java:51:13:51:99 | new URL(...) : URL | provenance | | +| HttpsUrlsTest.java:87:23:87:28 | "http" : String | HttpsUrlsTest.java:88:21:88:28 | protocol : String | provenance | | +| HttpsUrlsTest.java:88:13:88:52 | new URL(...) : URL | HttpsUrlsTest.java:92:50:92:50 | u | provenance | | +| HttpsUrlsTest.java:88:21:88:28 | protocol : String | HttpsUrlsTest.java:88:13:88:52 | new URL(...) : URL | provenance | | nodes | HttpsUrlsTest.java:23:23:23:31 | "http://" : String | semmle.label | "http://" : String | | HttpsUrlsTest.java:24:13:24:57 | new URL(...) : URL | semmle.label | new URL(...) : URL | diff --git a/java/ql/test/query-tests/security/CWE-327/semmle/tests/BrokenCryptoAlgorithm.expected b/java/ql/test/query-tests/security/CWE-327/semmle/tests/BrokenCryptoAlgorithm.expected index 3965182c6d4b..7c3a7f3f0828 100644 --- a/java/ql/test/query-tests/security/CWE-327/semmle/tests/BrokenCryptoAlgorithm.expected +++ b/java/ql/test/query-tests/security/CWE-327/semmle/tests/BrokenCryptoAlgorithm.expected @@ -1,5 +1,5 @@ edges -| WeakHashing.java:21:86:21:90 | "MD5" : String | WeakHashing.java:21:56:21:91 | getProperty(...) | +| WeakHashing.java:21:86:21:90 | "MD5" : String | WeakHashing.java:21:56:21:91 | getProperty(...) | provenance | | nodes | Test.java:19:45:19:49 | "DES" | semmle.label | "DES" | | Test.java:42:33:42:37 | "RC2" | semmle.label | "RC2" | diff --git a/java/ql/test/query-tests/security/CWE-601/semmle/tests/UrlRedirect.expected b/java/ql/test/query-tests/security/CWE-601/semmle/tests/UrlRedirect.expected index 974005e801be..d49af28117c6 100644 --- a/java/ql/test/query-tests/security/CWE-601/semmle/tests/UrlRedirect.expected +++ b/java/ql/test/query-tests/security/CWE-601/semmle/tests/UrlRedirect.expected @@ -1,11 +1,11 @@ edges -| UrlRedirect.java:32:37:32:66 | getParameter(...) : String | UrlRedirect.java:32:25:32:67 | weakCleanup(...) | -| UrlRedirect.java:32:37:32:66 | getParameter(...) : String | UrlRedirect.java:45:28:45:39 | input : String | -| UrlRedirect.java:36:58:36:89 | getParameter(...) : String | UrlRedirect.java:36:25:36:89 | ... + ... | -| UrlRedirect.java:45:28:45:39 | input : String | UrlRedirect.java:46:10:46:14 | input : String | -| UrlRedirect.java:46:10:46:14 | input : String | UrlRedirect.java:46:10:46:40 | replaceAll(...) : String | -| mad/Test.java:9:16:9:41 | getParameter(...) : String | mad/Test.java:14:31:14:38 | source(...) : String | -| mad/Test.java:14:31:14:38 | source(...) : String | mad/Test.java:14:22:14:38 | (...)... | +| UrlRedirect.java:32:37:32:66 | getParameter(...) : String | UrlRedirect.java:32:25:32:67 | weakCleanup(...) | provenance | | +| UrlRedirect.java:32:37:32:66 | getParameter(...) : String | UrlRedirect.java:45:28:45:39 | input : String | provenance | | +| UrlRedirect.java:36:58:36:89 | getParameter(...) : String | UrlRedirect.java:36:25:36:89 | ... + ... | provenance | | +| UrlRedirect.java:45:28:45:39 | input : String | UrlRedirect.java:46:10:46:14 | input : String | provenance | | +| UrlRedirect.java:46:10:46:14 | input : String | UrlRedirect.java:46:10:46:40 | replaceAll(...) : String | provenance | | +| mad/Test.java:9:16:9:41 | getParameter(...) : String | mad/Test.java:14:31:14:38 | source(...) : String | provenance | | +| mad/Test.java:14:31:14:38 | source(...) : String | mad/Test.java:14:22:14:38 | (...)... | provenance | | nodes | UrlRedirect.java:23:25:23:54 | getParameter(...) | semmle.label | getParameter(...) | | UrlRedirect.java:32:25:32:67 | weakCleanup(...) | semmle.label | weakCleanup(...) | diff --git a/java/ql/test/query-tests/security/CWE-681/semmle/tests/NumericCastTaintedLocal.expected b/java/ql/test/query-tests/security/CWE-681/semmle/tests/NumericCastTaintedLocal.expected index 6ab99919c336..89bf2054d1d6 100644 --- a/java/ql/test/query-tests/security/CWE-681/semmle/tests/NumericCastTaintedLocal.expected +++ b/java/ql/test/query-tests/security/CWE-681/semmle/tests/NumericCastTaintedLocal.expected @@ -1,11 +1,11 @@ edges -| Test.java:10:36:11:47 | new BufferedReader(...) : BufferedReader | Test.java:12:26:12:39 | readerBuffered : BufferedReader | -| Test.java:11:6:11:46 | new InputStreamReader(...) : InputStreamReader | Test.java:10:36:11:47 | new BufferedReader(...) : BufferedReader | -| Test.java:11:28:11:36 | System.in : InputStream | Test.java:11:6:11:46 | new InputStreamReader(...) : InputStreamReader | -| Test.java:12:26:12:39 | readerBuffered : BufferedReader | Test.java:12:26:12:50 | readLine(...) : String | -| Test.java:12:26:12:50 | readLine(...) : String | Test.java:14:27:14:38 | stringNumber : String | -| Test.java:14:27:14:38 | stringNumber : String | Test.java:14:27:14:45 | trim(...) : String | -| Test.java:14:27:14:45 | trim(...) : String | Test.java:21:22:21:25 | data | +| Test.java:10:36:11:47 | new BufferedReader(...) : BufferedReader | Test.java:12:26:12:39 | readerBuffered : BufferedReader | provenance | | +| Test.java:11:6:11:46 | new InputStreamReader(...) : InputStreamReader | Test.java:10:36:11:47 | new BufferedReader(...) : BufferedReader | provenance | | +| Test.java:11:28:11:36 | System.in : InputStream | Test.java:11:6:11:46 | new InputStreamReader(...) : InputStreamReader | provenance | | +| Test.java:12:26:12:39 | readerBuffered : BufferedReader | Test.java:12:26:12:50 | readLine(...) : String | provenance | | +| Test.java:12:26:12:50 | readLine(...) : String | Test.java:14:27:14:38 | stringNumber : String | provenance | | +| Test.java:14:27:14:38 | stringNumber : String | Test.java:14:27:14:45 | trim(...) : String | provenance | | +| Test.java:14:27:14:45 | trim(...) : String | Test.java:21:22:21:25 | data | provenance | | nodes | Test.java:10:36:11:47 | new BufferedReader(...) : BufferedReader | semmle.label | new BufferedReader(...) : BufferedReader | | Test.java:11:6:11:46 | new InputStreamReader(...) : InputStreamReader | semmle.label | new InputStreamReader(...) : InputStreamReader | diff --git a/java/ql/test/query-tests/security/CWE-807/semmle/tests/TaintedPermissionsCheck.expected b/java/ql/test/query-tests/security/CWE-807/semmle/tests/TaintedPermissionsCheck.expected index 2349a61216f5..9d67e3e6c3df 100644 --- a/java/ql/test/query-tests/security/CWE-807/semmle/tests/TaintedPermissionsCheck.expected +++ b/java/ql/test/query-tests/security/CWE-807/semmle/tests/TaintedPermissionsCheck.expected @@ -1,5 +1,5 @@ edges -| TaintedPermissionsCheckTest.java:12:19:12:48 | getParameter(...) : String | TaintedPermissionsCheckTest.java:15:27:15:53 | ... + ... | +| TaintedPermissionsCheckTest.java:12:19:12:48 | getParameter(...) : String | TaintedPermissionsCheckTest.java:15:27:15:53 | ... + ... | provenance | | nodes | TaintedPermissionsCheckTest.java:12:19:12:48 | getParameter(...) : String | semmle.label | getParameter(...) : String | | TaintedPermissionsCheckTest.java:15:27:15:53 | ... + ... | semmle.label | ... + ... | diff --git a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowPrivate.qll b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowPrivate.qll index c9fb086ea49d..55252e22c323 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowPrivate.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowPrivate.qll @@ -474,7 +474,7 @@ import StepRelationTransformations predicate simpleLocalFlowStep(Node nodeFrom, Node nodeTo) { simpleLocalFlowStepForTypetracking(nodeFrom, nodeTo) or - summaryFlowSteps(nodeFrom, nodeTo) + summaryLocalStep(nodeFrom, nodeTo) or variableCaptureLocalFlowStep(nodeFrom, nodeTo) } @@ -495,10 +495,6 @@ private predicate summaryLocalStep(Node nodeFrom, Node nodeTo) { nodeTo.(FlowSummaryNode).getSummaryNode(), true) } -predicate summaryFlowSteps(Node nodeFrom, Node nodeTo) { - IncludePostUpdateFlow::step/2>::step(nodeFrom, nodeTo) -} - predicate variableCaptureLocalFlowStep(Node nodeFrom, Node nodeTo) { // Blindly applying use-use flow can result in a node that steps to itself, for // example in while-loops. To uphold dataflow consistency checks, we don't want diff --git a/python/ql/test/experimental/dataflow/summaries/summaries.expected b/python/ql/test/experimental/dataflow/summaries/summaries.expected index d7b64ceaf1f8..a1f354a654ff 100644 --- a/python/ql/test/experimental/dataflow/summaries/summaries.expected +++ b/python/ql/test/experimental/dataflow/summaries/summaries.expected @@ -1,44 +1,44 @@ edges -| summaries.py:32:1:32:7 | ControlFlowNode for tainted | summaries.py:33:6:33:12 | ControlFlowNode for tainted | -| summaries.py:32:11:32:26 | ControlFlowNode for identity() | summaries.py:32:1:32:7 | ControlFlowNode for tainted | -| summaries.py:32:20:32:25 | ControlFlowNode for SOURCE | summaries.py:32:11:32:26 | ControlFlowNode for identity() | -| summaries.py:36:1:36:14 | ControlFlowNode for tainted_lambda | summaries.py:37:6:37:19 | ControlFlowNode for tainted_lambda | -| summaries.py:36:18:36:54 | ControlFlowNode for apply_lambda() | summaries.py:36:1:36:14 | ControlFlowNode for tainted_lambda | -| summaries.py:36:48:36:53 | ControlFlowNode for SOURCE | summaries.py:36:18:36:54 | ControlFlowNode for apply_lambda() | -| summaries.py:44:1:44:12 | ControlFlowNode for tainted_list | summaries.py:45:6:45:20 | ControlFlowNode for Subscript | -| summaries.py:44:1:44:12 | ControlFlowNode for tainted_list [List element] | summaries.py:45:6:45:17 | ControlFlowNode for tainted_list [List element] | -| summaries.py:44:16:44:33 | ControlFlowNode for reversed() | summaries.py:44:1:44:12 | ControlFlowNode for tainted_list | -| summaries.py:44:16:44:33 | ControlFlowNode for reversed() [List element] | summaries.py:44:1:44:12 | ControlFlowNode for tainted_list [List element] | -| summaries.py:44:25:44:32 | ControlFlowNode for List | summaries.py:44:16:44:33 | ControlFlowNode for reversed() | -| summaries.py:44:25:44:32 | ControlFlowNode for List [List element] | summaries.py:44:16:44:33 | ControlFlowNode for reversed() [List element] | -| summaries.py:44:26:44:31 | ControlFlowNode for SOURCE | summaries.py:44:25:44:32 | ControlFlowNode for List | -| summaries.py:44:26:44:31 | ControlFlowNode for SOURCE | summaries.py:44:25:44:32 | ControlFlowNode for List [List element] | -| summaries.py:45:6:45:17 | ControlFlowNode for tainted_list [List element] | summaries.py:45:6:45:20 | ControlFlowNode for Subscript | -| summaries.py:51:1:51:14 | ControlFlowNode for tainted_mapped [List element] | summaries.py:52:6:52:19 | ControlFlowNode for tainted_mapped [List element] | -| summaries.py:51:18:51:46 | ControlFlowNode for list_map() [List element] | summaries.py:51:1:51:14 | ControlFlowNode for tainted_mapped [List element] | -| summaries.py:51:38:51:45 | ControlFlowNode for List [List element] | summaries.py:51:18:51:46 | ControlFlowNode for list_map() [List element] | -| summaries.py:51:39:51:44 | ControlFlowNode for SOURCE | summaries.py:51:38:51:45 | ControlFlowNode for List [List element] | -| summaries.py:52:6:52:19 | ControlFlowNode for tainted_mapped [List element] | summaries.py:52:6:52:22 | ControlFlowNode for Subscript | -| summaries.py:57:1:57:23 | ControlFlowNode for tainted_mapped_explicit [List element] | summaries.py:58:6:58:28 | ControlFlowNode for tainted_mapped_explicit [List element] | -| summaries.py:57:27:57:63 | ControlFlowNode for list_map() [List element] | summaries.py:57:1:57:23 | ControlFlowNode for tainted_mapped_explicit [List element] | -| summaries.py:57:55:57:62 | ControlFlowNode for List [List element] | summaries.py:57:27:57:63 | ControlFlowNode for list_map() [List element] | -| summaries.py:57:56:57:61 | ControlFlowNode for SOURCE | summaries.py:57:55:57:62 | ControlFlowNode for List [List element] | -| summaries.py:58:6:58:28 | ControlFlowNode for tainted_mapped_explicit [List element] | summaries.py:58:6:58:31 | ControlFlowNode for Subscript | -| summaries.py:60:1:60:22 | ControlFlowNode for tainted_mapped_summary [List element] | summaries.py:61:6:61:27 | ControlFlowNode for tainted_mapped_summary [List element] | -| summaries.py:60:26:60:53 | ControlFlowNode for list_map() [List element] | summaries.py:60:1:60:22 | ControlFlowNode for tainted_mapped_summary [List element] | -| summaries.py:60:45:60:52 | ControlFlowNode for List [List element] | summaries.py:60:26:60:53 | ControlFlowNode for list_map() [List element] | -| summaries.py:60:46:60:51 | ControlFlowNode for SOURCE | summaries.py:60:45:60:52 | ControlFlowNode for List [List element] | -| summaries.py:61:6:61:27 | ControlFlowNode for tainted_mapped_summary [List element] | summaries.py:61:6:61:30 | ControlFlowNode for Subscript | -| summaries.py:63:1:63:12 | ControlFlowNode for tainted_list [List element] | summaries.py:64:6:64:17 | ControlFlowNode for tainted_list [List element] | -| summaries.py:63:16:63:41 | ControlFlowNode for append_to_list() [List element] | summaries.py:63:1:63:12 | ControlFlowNode for tainted_list [List element] | -| summaries.py:63:35:63:40 | ControlFlowNode for SOURCE | summaries.py:63:16:63:41 | ControlFlowNode for append_to_list() [List element] | -| summaries.py:64:6:64:17 | ControlFlowNode for tainted_list [List element] | summaries.py:64:6:64:20 | ControlFlowNode for Subscript | -| summaries.py:67:1:67:18 | ControlFlowNode for tainted_resultlist | summaries.py:68:6:68:26 | ControlFlowNode for Subscript | -| summaries.py:67:1:67:18 | ControlFlowNode for tainted_resultlist [List element] | summaries.py:68:6:68:23 | ControlFlowNode for tainted_resultlist [List element] | -| summaries.py:67:22:67:39 | ControlFlowNode for json_loads() [List element] | summaries.py:67:1:67:18 | ControlFlowNode for tainted_resultlist [List element] | -| summaries.py:67:33:67:38 | ControlFlowNode for SOURCE | summaries.py:67:1:67:18 | ControlFlowNode for tainted_resultlist | -| summaries.py:67:33:67:38 | ControlFlowNode for SOURCE | summaries.py:67:22:67:39 | ControlFlowNode for json_loads() [List element] | -| summaries.py:68:6:68:23 | ControlFlowNode for tainted_resultlist [List element] | summaries.py:68:6:68:26 | ControlFlowNode for Subscript | +| summaries.py:32:1:32:7 | ControlFlowNode for tainted | summaries.py:33:6:33:12 | ControlFlowNode for tainted | provenance | | +| summaries.py:32:11:32:26 | ControlFlowNode for identity() | summaries.py:32:1:32:7 | ControlFlowNode for tainted | provenance | | +| summaries.py:32:20:32:25 | ControlFlowNode for SOURCE | summaries.py:32:11:32:26 | ControlFlowNode for identity() | provenance | | +| summaries.py:36:1:36:14 | ControlFlowNode for tainted_lambda | summaries.py:37:6:37:19 | ControlFlowNode for tainted_lambda | provenance | | +| summaries.py:36:18:36:54 | ControlFlowNode for apply_lambda() | summaries.py:36:1:36:14 | ControlFlowNode for tainted_lambda | provenance | | +| summaries.py:36:48:36:53 | ControlFlowNode for SOURCE | summaries.py:36:18:36:54 | ControlFlowNode for apply_lambda() | provenance | | +| summaries.py:44:1:44:12 | ControlFlowNode for tainted_list | summaries.py:45:6:45:20 | ControlFlowNode for Subscript | provenance | | +| summaries.py:44:1:44:12 | ControlFlowNode for tainted_list [List element] | summaries.py:45:6:45:17 | ControlFlowNode for tainted_list [List element] | provenance | | +| summaries.py:44:16:44:33 | ControlFlowNode for reversed() | summaries.py:44:1:44:12 | ControlFlowNode for tainted_list | provenance | | +| summaries.py:44:16:44:33 | ControlFlowNode for reversed() [List element] | summaries.py:44:1:44:12 | ControlFlowNode for tainted_list [List element] | provenance | | +| summaries.py:44:25:44:32 | ControlFlowNode for List | summaries.py:44:16:44:33 | ControlFlowNode for reversed() | provenance | | +| summaries.py:44:25:44:32 | ControlFlowNode for List [List element] | summaries.py:44:16:44:33 | ControlFlowNode for reversed() [List element] | provenance | | +| summaries.py:44:26:44:31 | ControlFlowNode for SOURCE | summaries.py:44:25:44:32 | ControlFlowNode for List | provenance | | +| summaries.py:44:26:44:31 | ControlFlowNode for SOURCE | summaries.py:44:25:44:32 | ControlFlowNode for List [List element] | provenance | | +| summaries.py:45:6:45:17 | ControlFlowNode for tainted_list [List element] | summaries.py:45:6:45:20 | ControlFlowNode for Subscript | provenance | | +| summaries.py:51:1:51:14 | ControlFlowNode for tainted_mapped [List element] | summaries.py:52:6:52:19 | ControlFlowNode for tainted_mapped [List element] | provenance | | +| summaries.py:51:18:51:46 | ControlFlowNode for list_map() [List element] | summaries.py:51:1:51:14 | ControlFlowNode for tainted_mapped [List element] | provenance | | +| summaries.py:51:38:51:45 | ControlFlowNode for List [List element] | summaries.py:51:18:51:46 | ControlFlowNode for list_map() [List element] | provenance | | +| summaries.py:51:39:51:44 | ControlFlowNode for SOURCE | summaries.py:51:38:51:45 | ControlFlowNode for List [List element] | provenance | | +| summaries.py:52:6:52:19 | ControlFlowNode for tainted_mapped [List element] | summaries.py:52:6:52:22 | ControlFlowNode for Subscript | provenance | | +| summaries.py:57:1:57:23 | ControlFlowNode for tainted_mapped_explicit [List element] | summaries.py:58:6:58:28 | ControlFlowNode for tainted_mapped_explicit [List element] | provenance | | +| summaries.py:57:27:57:63 | ControlFlowNode for list_map() [List element] | summaries.py:57:1:57:23 | ControlFlowNode for tainted_mapped_explicit [List element] | provenance | | +| summaries.py:57:55:57:62 | ControlFlowNode for List [List element] | summaries.py:57:27:57:63 | ControlFlowNode for list_map() [List element] | provenance | | +| summaries.py:57:56:57:61 | ControlFlowNode for SOURCE | summaries.py:57:55:57:62 | ControlFlowNode for List [List element] | provenance | | +| summaries.py:58:6:58:28 | ControlFlowNode for tainted_mapped_explicit [List element] | summaries.py:58:6:58:31 | ControlFlowNode for Subscript | provenance | | +| summaries.py:60:1:60:22 | ControlFlowNode for tainted_mapped_summary [List element] | summaries.py:61:6:61:27 | ControlFlowNode for tainted_mapped_summary [List element] | provenance | | +| summaries.py:60:26:60:53 | ControlFlowNode for list_map() [List element] | summaries.py:60:1:60:22 | ControlFlowNode for tainted_mapped_summary [List element] | provenance | | +| summaries.py:60:45:60:52 | ControlFlowNode for List [List element] | summaries.py:60:26:60:53 | ControlFlowNode for list_map() [List element] | provenance | | +| summaries.py:60:46:60:51 | ControlFlowNode for SOURCE | summaries.py:60:45:60:52 | ControlFlowNode for List [List element] | provenance | | +| summaries.py:61:6:61:27 | ControlFlowNode for tainted_mapped_summary [List element] | summaries.py:61:6:61:30 | ControlFlowNode for Subscript | provenance | | +| summaries.py:63:1:63:12 | ControlFlowNode for tainted_list [List element] | summaries.py:64:6:64:17 | ControlFlowNode for tainted_list [List element] | provenance | | +| summaries.py:63:16:63:41 | ControlFlowNode for append_to_list() [List element] | summaries.py:63:1:63:12 | ControlFlowNode for tainted_list [List element] | provenance | | +| summaries.py:63:35:63:40 | ControlFlowNode for SOURCE | summaries.py:63:16:63:41 | ControlFlowNode for append_to_list() [List element] | provenance | | +| summaries.py:64:6:64:17 | ControlFlowNode for tainted_list [List element] | summaries.py:64:6:64:20 | ControlFlowNode for Subscript | provenance | | +| summaries.py:67:1:67:18 | ControlFlowNode for tainted_resultlist | summaries.py:68:6:68:26 | ControlFlowNode for Subscript | provenance | | +| summaries.py:67:1:67:18 | ControlFlowNode for tainted_resultlist [List element] | summaries.py:68:6:68:23 | ControlFlowNode for tainted_resultlist [List element] | provenance | | +| summaries.py:67:22:67:39 | ControlFlowNode for json_loads() [List element] | summaries.py:67:1:67:18 | ControlFlowNode for tainted_resultlist [List element] | provenance | | +| summaries.py:67:33:67:38 | ControlFlowNode for SOURCE | summaries.py:67:1:67:18 | ControlFlowNode for tainted_resultlist | provenance | | +| summaries.py:67:33:67:38 | ControlFlowNode for SOURCE | summaries.py:67:22:67:39 | ControlFlowNode for json_loads() [List element] | provenance | | +| summaries.py:68:6:68:23 | ControlFlowNode for tainted_resultlist [List element] | summaries.py:68:6:68:26 | ControlFlowNode for Subscript | provenance | | nodes | summaries.py:32:1:32:7 | ControlFlowNode for tainted | semmle.label | ControlFlowNode for tainted | | summaries.py:32:11:32:26 | ControlFlowNode for identity() | semmle.label | ControlFlowNode for identity() | diff --git a/python/ql/test/experimental/query-tests/Security/CWE-022-TarSlip/TarSlip.expected b/python/ql/test/experimental/query-tests/Security/CWE-022-TarSlip/TarSlip.expected index d785d0e54601..b96f44e358bb 100644 --- a/python/ql/test/experimental/query-tests/Security/CWE-022-TarSlip/TarSlip.expected +++ b/python/ql/test/experimental/query-tests/Security/CWE-022-TarSlip/TarSlip.expected @@ -1,89 +1,89 @@ edges -| TarSlipImprov.py:15:1:15:3 | ControlFlowNode for tar | TarSlipImprov.py:17:5:17:10 | ControlFlowNode for member | -| TarSlipImprov.py:15:7:15:39 | ControlFlowNode for Attribute() | TarSlipImprov.py:15:1:15:3 | ControlFlowNode for tar | -| TarSlipImprov.py:17:5:17:10 | ControlFlowNode for member | TarSlipImprov.py:20:19:20:24 | ControlFlowNode for member | -| TarSlipImprov.py:20:5:20:10 | [post] ControlFlowNode for result | TarSlipImprov.py:22:35:22:40 | ControlFlowNode for result | -| TarSlipImprov.py:20:19:20:24 | ControlFlowNode for member | TarSlipImprov.py:20:5:20:10 | [post] ControlFlowNode for result | -| TarSlipImprov.py:26:21:26:27 | ControlFlowNode for tarfile | TarSlipImprov.py:28:9:28:14 | ControlFlowNode for member | -| TarSlipImprov.py:28:9:28:14 | ControlFlowNode for member | TarSlipImprov.py:35:23:35:28 | ControlFlowNode for member | -| TarSlipImprov.py:35:9:35:14 | [post] ControlFlowNode for result | TarSlipImprov.py:36:12:36:17 | ControlFlowNode for result | -| TarSlipImprov.py:35:23:35:28 | ControlFlowNode for member | TarSlipImprov.py:35:9:35:14 | [post] ControlFlowNode for result | -| TarSlipImprov.py:38:1:38:3 | ControlFlowNode for tar | TarSlipImprov.py:39:65:39:67 | ControlFlowNode for tar | -| TarSlipImprov.py:38:7:38:39 | ControlFlowNode for Attribute() | TarSlipImprov.py:38:1:38:3 | ControlFlowNode for tar | -| TarSlipImprov.py:39:65:39:67 | ControlFlowNode for tar | TarSlipImprov.py:26:21:26:27 | ControlFlowNode for tarfile | -| TarSlipImprov.py:39:65:39:67 | ControlFlowNode for tar | TarSlipImprov.py:39:49:39:68 | ControlFlowNode for members_filter1() | -| TarSlipImprov.py:43:6:43:38 | ControlFlowNode for Attribute() | TarSlipImprov.py:43:43:43:45 | ControlFlowNode for tar | -| TarSlipImprov.py:43:43:43:45 | ControlFlowNode for tar | TarSlipImprov.py:44:9:44:13 | ControlFlowNode for entry | -| TarSlipImprov.py:44:9:44:13 | ControlFlowNode for entry | TarSlipImprov.py:47:21:47:25 | ControlFlowNode for entry | -| TarSlipImprov.py:54:6:54:38 | ControlFlowNode for Attribute() | TarSlipImprov.py:54:43:54:45 | ControlFlowNode for tar | -| TarSlipImprov.py:54:43:54:45 | ControlFlowNode for tar | TarSlipImprov.py:56:9:56:13 | ControlFlowNode for entry | -| TarSlipImprov.py:56:9:56:13 | ControlFlowNode for entry | TarSlipImprov.py:58:21:58:25 | ControlFlowNode for entry | -| TarSlipImprov.py:88:6:88:43 | ControlFlowNode for Attribute() | TarSlipImprov.py:88:48:88:50 | ControlFlowNode for tar | -| TarSlipImprov.py:88:48:88:50 | ControlFlowNode for tar | TarSlipImprov.py:91:5:91:7 | ControlFlowNode for tar | -| TarSlipImprov.py:111:1:111:3 | ControlFlowNode for tar | TarSlipImprov.py:115:9:115:11 | ControlFlowNode for tar | -| TarSlipImprov.py:111:7:111:39 | ControlFlowNode for Attribute() | TarSlipImprov.py:111:1:111:3 | ControlFlowNode for tar | -| TarSlipImprov.py:123:6:123:29 | ControlFlowNode for Attribute() | TarSlipImprov.py:123:34:123:36 | ControlFlowNode for tar | -| TarSlipImprov.py:123:34:123:36 | ControlFlowNode for tar | TarSlipImprov.py:124:9:124:13 | ControlFlowNode for entry | -| TarSlipImprov.py:124:9:124:13 | ControlFlowNode for entry | TarSlipImprov.py:125:36:125:40 | ControlFlowNode for entry | -| TarSlipImprov.py:129:6:129:26 | ControlFlowNode for Attribute() | TarSlipImprov.py:129:31:129:33 | ControlFlowNode for tar | -| TarSlipImprov.py:129:31:129:33 | ControlFlowNode for tar | TarSlipImprov.py:130:5:130:7 | ControlFlowNode for tar | -| TarSlipImprov.py:133:1:133:3 | ControlFlowNode for tar | TarSlipImprov.py:134:1:134:3 | ControlFlowNode for tar | -| TarSlipImprov.py:133:7:133:39 | ControlFlowNode for Attribute() | TarSlipImprov.py:133:1:133:3 | ControlFlowNode for tar | -| TarSlipImprov.py:141:6:141:29 | ControlFlowNode for Attribute() | TarSlipImprov.py:141:34:141:36 | ControlFlowNode for tar | -| TarSlipImprov.py:141:34:141:36 | ControlFlowNode for tar | TarSlipImprov.py:142:9:142:13 | ControlFlowNode for entry | -| TarSlipImprov.py:142:9:142:13 | ControlFlowNode for entry | TarSlipImprov.py:143:36:143:40 | ControlFlowNode for entry | -| TarSlipImprov.py:151:14:151:50 | ControlFlowNode for closing() | TarSlipImprov.py:151:55:151:56 | ControlFlowNode for tf | -| TarSlipImprov.py:151:22:151:49 | ControlFlowNode for Attribute() | TarSlipImprov.py:151:14:151:50 | ControlFlowNode for closing() | -| TarSlipImprov.py:151:55:151:56 | ControlFlowNode for tf | TarSlipImprov.py:152:19:152:20 | ControlFlowNode for tf | -| TarSlipImprov.py:152:19:152:20 | ControlFlowNode for tf | TarSlipImprov.py:157:18:157:40 | ControlFlowNode for py2_tarxz() | -| TarSlipImprov.py:157:9:157:14 | ControlFlowNode for tar_cm | TarSlipImprov.py:162:20:162:23 | ControlFlowNode for tarc | -| TarSlipImprov.py:157:18:157:40 | ControlFlowNode for py2_tarxz() | TarSlipImprov.py:157:9:157:14 | ControlFlowNode for tar_cm | -| TarSlipImprov.py:159:9:159:14 | ControlFlowNode for tar_cm | TarSlipImprov.py:162:20:162:23 | ControlFlowNode for tarc | -| TarSlipImprov.py:159:18:159:52 | ControlFlowNode for closing() | TarSlipImprov.py:159:9:159:14 | ControlFlowNode for tar_cm | -| TarSlipImprov.py:159:26:159:51 | ControlFlowNode for Attribute() | TarSlipImprov.py:159:18:159:52 | ControlFlowNode for closing() | -| TarSlipImprov.py:162:20:162:23 | ControlFlowNode for tarc | TarSlipImprov.py:169:9:169:12 | ControlFlowNode for tarc | -| TarSlipImprov.py:176:6:176:31 | ControlFlowNode for Attribute() | TarSlipImprov.py:176:36:176:38 | ControlFlowNode for tar | -| TarSlipImprov.py:176:36:176:38 | ControlFlowNode for tar | TarSlipImprov.py:177:9:177:13 | ControlFlowNode for entry | -| TarSlipImprov.py:177:9:177:13 | ControlFlowNode for entry | TarSlipImprov.py:178:36:178:40 | ControlFlowNode for entry | -| TarSlipImprov.py:182:6:182:31 | ControlFlowNode for Attribute() | TarSlipImprov.py:182:36:182:38 | ControlFlowNode for tar | -| TarSlipImprov.py:182:36:182:38 | ControlFlowNode for tar | TarSlipImprov.py:183:9:183:13 | ControlFlowNode for entry | -| TarSlipImprov.py:183:9:183:13 | ControlFlowNode for entry | TarSlipImprov.py:184:21:184:25 | ControlFlowNode for entry | -| TarSlipImprov.py:188:1:188:3 | ControlFlowNode for tar | TarSlipImprov.py:189:1:189:3 | ControlFlowNode for tar | -| TarSlipImprov.py:188:7:188:27 | ControlFlowNode for Attribute() | TarSlipImprov.py:188:1:188:3 | ControlFlowNode for tar | -| TarSlipImprov.py:193:6:193:31 | ControlFlowNode for Attribute() | TarSlipImprov.py:193:36:193:38 | ControlFlowNode for tar | -| TarSlipImprov.py:193:36:193:38 | ControlFlowNode for tar | TarSlipImprov.py:194:49:194:51 | ControlFlowNode for tar | -| TarSlipImprov.py:210:6:210:43 | ControlFlowNode for Attribute() | TarSlipImprov.py:210:48:210:50 | ControlFlowNode for tar | -| TarSlipImprov.py:210:48:210:50 | ControlFlowNode for tar | TarSlipImprov.py:211:5:211:7 | ControlFlowNode for tar | -| TarSlipImprov.py:231:6:231:38 | ControlFlowNode for Attribute() | TarSlipImprov.py:231:43:231:52 | ControlFlowNode for corpus_tar | -| TarSlipImprov.py:231:43:231:52 | ControlFlowNode for corpus_tar | TarSlipImprov.py:233:9:233:9 | ControlFlowNode for f | -| TarSlipImprov.py:233:9:233:9 | ControlFlowNode for f | TarSlipImprov.py:235:28:235:28 | ControlFlowNode for f | -| TarSlipImprov.py:235:13:235:19 | [post] ControlFlowNode for members | TarSlipImprov.py:236:44:236:50 | ControlFlowNode for members | -| TarSlipImprov.py:235:28:235:28 | ControlFlowNode for f | TarSlipImprov.py:235:13:235:19 | [post] ControlFlowNode for members | -| TarSlipImprov.py:258:6:258:26 | ControlFlowNode for Attribute() | TarSlipImprov.py:258:31:258:33 | ControlFlowNode for tar | -| TarSlipImprov.py:258:31:258:33 | ControlFlowNode for tar | TarSlipImprov.py:259:9:259:13 | ControlFlowNode for entry | -| TarSlipImprov.py:259:9:259:13 | ControlFlowNode for entry | TarSlipImprov.py:261:25:261:29 | ControlFlowNode for entry | -| TarSlipImprov.py:264:6:264:38 | ControlFlowNode for Attribute() | TarSlipImprov.py:264:43:264:45 | ControlFlowNode for tar | -| TarSlipImprov.py:264:43:264:45 | ControlFlowNode for tar | TarSlipImprov.py:265:9:265:13 | ControlFlowNode for entry | -| TarSlipImprov.py:265:9:265:13 | ControlFlowNode for entry | TarSlipImprov.py:268:21:268:25 | ControlFlowNode for entry | -| TarSlipImprov.py:271:6:271:39 | ControlFlowNode for Attribute() | TarSlipImprov.py:271:44:271:46 | ControlFlowNode for tar | -| TarSlipImprov.py:271:44:271:46 | ControlFlowNode for tar | TarSlipImprov.py:272:9:272:13 | ControlFlowNode for entry | -| TarSlipImprov.py:272:9:272:13 | ControlFlowNode for entry | TarSlipImprov.py:274:25:274:29 | ControlFlowNode for entry | -| TarSlipImprov.py:276:6:276:38 | ControlFlowNode for Attribute() | TarSlipImprov.py:276:43:276:45 | ControlFlowNode for tar | -| TarSlipImprov.py:276:43:276:45 | ControlFlowNode for tar | TarSlipImprov.py:277:9:277:13 | ControlFlowNode for entry | -| TarSlipImprov.py:277:9:277:13 | ControlFlowNode for entry | TarSlipImprov.py:280:21:280:25 | ControlFlowNode for entry | -| TarSlipImprov.py:283:6:283:51 | ControlFlowNode for Attribute() | TarSlipImprov.py:283:56:283:58 | ControlFlowNode for tar | -| TarSlipImprov.py:283:56:283:58 | ControlFlowNode for tar | TarSlipImprov.py:284:5:284:7 | ControlFlowNode for tar | -| TarSlipImprov.py:287:1:287:3 | ControlFlowNode for tar | TarSlipImprov.py:288:49:288:51 | ControlFlowNode for tar | -| TarSlipImprov.py:287:7:287:28 | ControlFlowNode for Attribute() | TarSlipImprov.py:287:1:287:3 | ControlFlowNode for tar | -| TarSlipImprov.py:292:1:292:3 | ControlFlowNode for tar | TarSlipImprov.py:293:1:293:3 | ControlFlowNode for tar | -| TarSlipImprov.py:292:7:292:39 | ControlFlowNode for Attribute() | TarSlipImprov.py:292:1:292:3 | ControlFlowNode for tar | -| TarSlipImprov.py:300:6:300:51 | ControlFlowNode for Attribute() | TarSlipImprov.py:300:56:300:58 | ControlFlowNode for tar | -| TarSlipImprov.py:300:56:300:58 | ControlFlowNode for tar | TarSlipImprov.py:301:49:301:51 | ControlFlowNode for tar | -| TarSlipImprov.py:304:1:304:3 | ControlFlowNode for tar | TarSlipImprov.py:306:5:306:10 | ControlFlowNode for member | -| TarSlipImprov.py:304:7:304:39 | ControlFlowNode for Attribute() | TarSlipImprov.py:304:1:304:3 | ControlFlowNode for tar | -| TarSlipImprov.py:306:5:306:10 | ControlFlowNode for member | TarSlipImprov.py:309:19:309:24 | ControlFlowNode for member | -| TarSlipImprov.py:309:5:309:10 | [post] ControlFlowNode for result | TarSlipImprov.py:310:49:310:54 | ControlFlowNode for result | -| TarSlipImprov.py:309:19:309:24 | ControlFlowNode for member | TarSlipImprov.py:309:5:309:10 | [post] ControlFlowNode for result | +| TarSlipImprov.py:15:1:15:3 | ControlFlowNode for tar | TarSlipImprov.py:17:5:17:10 | ControlFlowNode for member | provenance | | +| TarSlipImprov.py:15:7:15:39 | ControlFlowNode for Attribute() | TarSlipImprov.py:15:1:15:3 | ControlFlowNode for tar | provenance | | +| TarSlipImprov.py:17:5:17:10 | ControlFlowNode for member | TarSlipImprov.py:20:19:20:24 | ControlFlowNode for member | provenance | | +| TarSlipImprov.py:20:5:20:10 | [post] ControlFlowNode for result | TarSlipImprov.py:22:35:22:40 | ControlFlowNode for result | provenance | | +| TarSlipImprov.py:20:19:20:24 | ControlFlowNode for member | TarSlipImprov.py:20:5:20:10 | [post] ControlFlowNode for result | provenance | | +| TarSlipImprov.py:26:21:26:27 | ControlFlowNode for tarfile | TarSlipImprov.py:28:9:28:14 | ControlFlowNode for member | provenance | | +| TarSlipImprov.py:28:9:28:14 | ControlFlowNode for member | TarSlipImprov.py:35:23:35:28 | ControlFlowNode for member | provenance | | +| TarSlipImprov.py:35:9:35:14 | [post] ControlFlowNode for result | TarSlipImprov.py:36:12:36:17 | ControlFlowNode for result | provenance | | +| TarSlipImprov.py:35:23:35:28 | ControlFlowNode for member | TarSlipImprov.py:35:9:35:14 | [post] ControlFlowNode for result | provenance | | +| TarSlipImprov.py:38:1:38:3 | ControlFlowNode for tar | TarSlipImprov.py:39:65:39:67 | ControlFlowNode for tar | provenance | | +| TarSlipImprov.py:38:7:38:39 | ControlFlowNode for Attribute() | TarSlipImprov.py:38:1:38:3 | ControlFlowNode for tar | provenance | | +| TarSlipImprov.py:39:65:39:67 | ControlFlowNode for tar | TarSlipImprov.py:26:21:26:27 | ControlFlowNode for tarfile | provenance | | +| TarSlipImprov.py:39:65:39:67 | ControlFlowNode for tar | TarSlipImprov.py:39:49:39:68 | ControlFlowNode for members_filter1() | provenance | | +| TarSlipImprov.py:43:6:43:38 | ControlFlowNode for Attribute() | TarSlipImprov.py:43:43:43:45 | ControlFlowNode for tar | provenance | | +| TarSlipImprov.py:43:43:43:45 | ControlFlowNode for tar | TarSlipImprov.py:44:9:44:13 | ControlFlowNode for entry | provenance | | +| TarSlipImprov.py:44:9:44:13 | ControlFlowNode for entry | TarSlipImprov.py:47:21:47:25 | ControlFlowNode for entry | provenance | | +| TarSlipImprov.py:54:6:54:38 | ControlFlowNode for Attribute() | TarSlipImprov.py:54:43:54:45 | ControlFlowNode for tar | provenance | | +| TarSlipImprov.py:54:43:54:45 | ControlFlowNode for tar | TarSlipImprov.py:56:9:56:13 | ControlFlowNode for entry | provenance | | +| TarSlipImprov.py:56:9:56:13 | ControlFlowNode for entry | TarSlipImprov.py:58:21:58:25 | ControlFlowNode for entry | provenance | | +| TarSlipImprov.py:88:6:88:43 | ControlFlowNode for Attribute() | TarSlipImprov.py:88:48:88:50 | ControlFlowNode for tar | provenance | | +| TarSlipImprov.py:88:48:88:50 | ControlFlowNode for tar | TarSlipImprov.py:91:5:91:7 | ControlFlowNode for tar | provenance | | +| TarSlipImprov.py:111:1:111:3 | ControlFlowNode for tar | TarSlipImprov.py:115:9:115:11 | ControlFlowNode for tar | provenance | | +| TarSlipImprov.py:111:7:111:39 | ControlFlowNode for Attribute() | TarSlipImprov.py:111:1:111:3 | ControlFlowNode for tar | provenance | | +| TarSlipImprov.py:123:6:123:29 | ControlFlowNode for Attribute() | TarSlipImprov.py:123:34:123:36 | ControlFlowNode for tar | provenance | | +| TarSlipImprov.py:123:34:123:36 | ControlFlowNode for tar | TarSlipImprov.py:124:9:124:13 | ControlFlowNode for entry | provenance | | +| TarSlipImprov.py:124:9:124:13 | ControlFlowNode for entry | TarSlipImprov.py:125:36:125:40 | ControlFlowNode for entry | provenance | | +| TarSlipImprov.py:129:6:129:26 | ControlFlowNode for Attribute() | TarSlipImprov.py:129:31:129:33 | ControlFlowNode for tar | provenance | | +| TarSlipImprov.py:129:31:129:33 | ControlFlowNode for tar | TarSlipImprov.py:130:5:130:7 | ControlFlowNode for tar | provenance | | +| TarSlipImprov.py:133:1:133:3 | ControlFlowNode for tar | TarSlipImprov.py:134:1:134:3 | ControlFlowNode for tar | provenance | | +| TarSlipImprov.py:133:7:133:39 | ControlFlowNode for Attribute() | TarSlipImprov.py:133:1:133:3 | ControlFlowNode for tar | provenance | | +| TarSlipImprov.py:141:6:141:29 | ControlFlowNode for Attribute() | TarSlipImprov.py:141:34:141:36 | ControlFlowNode for tar | provenance | | +| TarSlipImprov.py:141:34:141:36 | ControlFlowNode for tar | TarSlipImprov.py:142:9:142:13 | ControlFlowNode for entry | provenance | | +| TarSlipImprov.py:142:9:142:13 | ControlFlowNode for entry | TarSlipImprov.py:143:36:143:40 | ControlFlowNode for entry | provenance | | +| TarSlipImprov.py:151:14:151:50 | ControlFlowNode for closing() | TarSlipImprov.py:151:55:151:56 | ControlFlowNode for tf | provenance | | +| TarSlipImprov.py:151:22:151:49 | ControlFlowNode for Attribute() | TarSlipImprov.py:151:14:151:50 | ControlFlowNode for closing() | provenance | | +| TarSlipImprov.py:151:55:151:56 | ControlFlowNode for tf | TarSlipImprov.py:152:19:152:20 | ControlFlowNode for tf | provenance | | +| TarSlipImprov.py:152:19:152:20 | ControlFlowNode for tf | TarSlipImprov.py:157:18:157:40 | ControlFlowNode for py2_tarxz() | provenance | | +| TarSlipImprov.py:157:9:157:14 | ControlFlowNode for tar_cm | TarSlipImprov.py:162:20:162:23 | ControlFlowNode for tarc | provenance | | +| TarSlipImprov.py:157:18:157:40 | ControlFlowNode for py2_tarxz() | TarSlipImprov.py:157:9:157:14 | ControlFlowNode for tar_cm | provenance | | +| TarSlipImprov.py:159:9:159:14 | ControlFlowNode for tar_cm | TarSlipImprov.py:162:20:162:23 | ControlFlowNode for tarc | provenance | | +| TarSlipImprov.py:159:18:159:52 | ControlFlowNode for closing() | TarSlipImprov.py:159:9:159:14 | ControlFlowNode for tar_cm | provenance | | +| TarSlipImprov.py:159:26:159:51 | ControlFlowNode for Attribute() | TarSlipImprov.py:159:18:159:52 | ControlFlowNode for closing() | provenance | | +| TarSlipImprov.py:162:20:162:23 | ControlFlowNode for tarc | TarSlipImprov.py:169:9:169:12 | ControlFlowNode for tarc | provenance | | +| TarSlipImprov.py:176:6:176:31 | ControlFlowNode for Attribute() | TarSlipImprov.py:176:36:176:38 | ControlFlowNode for tar | provenance | | +| TarSlipImprov.py:176:36:176:38 | ControlFlowNode for tar | TarSlipImprov.py:177:9:177:13 | ControlFlowNode for entry | provenance | | +| TarSlipImprov.py:177:9:177:13 | ControlFlowNode for entry | TarSlipImprov.py:178:36:178:40 | ControlFlowNode for entry | provenance | | +| TarSlipImprov.py:182:6:182:31 | ControlFlowNode for Attribute() | TarSlipImprov.py:182:36:182:38 | ControlFlowNode for tar | provenance | | +| TarSlipImprov.py:182:36:182:38 | ControlFlowNode for tar | TarSlipImprov.py:183:9:183:13 | ControlFlowNode for entry | provenance | | +| TarSlipImprov.py:183:9:183:13 | ControlFlowNode for entry | TarSlipImprov.py:184:21:184:25 | ControlFlowNode for entry | provenance | | +| TarSlipImprov.py:188:1:188:3 | ControlFlowNode for tar | TarSlipImprov.py:189:1:189:3 | ControlFlowNode for tar | provenance | | +| TarSlipImprov.py:188:7:188:27 | ControlFlowNode for Attribute() | TarSlipImprov.py:188:1:188:3 | ControlFlowNode for tar | provenance | | +| TarSlipImprov.py:193:6:193:31 | ControlFlowNode for Attribute() | TarSlipImprov.py:193:36:193:38 | ControlFlowNode for tar | provenance | | +| TarSlipImprov.py:193:36:193:38 | ControlFlowNode for tar | TarSlipImprov.py:194:49:194:51 | ControlFlowNode for tar | provenance | | +| TarSlipImprov.py:210:6:210:43 | ControlFlowNode for Attribute() | TarSlipImprov.py:210:48:210:50 | ControlFlowNode for tar | provenance | | +| TarSlipImprov.py:210:48:210:50 | ControlFlowNode for tar | TarSlipImprov.py:211:5:211:7 | ControlFlowNode for tar | provenance | | +| TarSlipImprov.py:231:6:231:38 | ControlFlowNode for Attribute() | TarSlipImprov.py:231:43:231:52 | ControlFlowNode for corpus_tar | provenance | | +| TarSlipImprov.py:231:43:231:52 | ControlFlowNode for corpus_tar | TarSlipImprov.py:233:9:233:9 | ControlFlowNode for f | provenance | | +| TarSlipImprov.py:233:9:233:9 | ControlFlowNode for f | TarSlipImprov.py:235:28:235:28 | ControlFlowNode for f | provenance | | +| TarSlipImprov.py:235:13:235:19 | [post] ControlFlowNode for members | TarSlipImprov.py:236:44:236:50 | ControlFlowNode for members | provenance | | +| TarSlipImprov.py:235:28:235:28 | ControlFlowNode for f | TarSlipImprov.py:235:13:235:19 | [post] ControlFlowNode for members | provenance | | +| TarSlipImprov.py:258:6:258:26 | ControlFlowNode for Attribute() | TarSlipImprov.py:258:31:258:33 | ControlFlowNode for tar | provenance | | +| TarSlipImprov.py:258:31:258:33 | ControlFlowNode for tar | TarSlipImprov.py:259:9:259:13 | ControlFlowNode for entry | provenance | | +| TarSlipImprov.py:259:9:259:13 | ControlFlowNode for entry | TarSlipImprov.py:261:25:261:29 | ControlFlowNode for entry | provenance | | +| TarSlipImprov.py:264:6:264:38 | ControlFlowNode for Attribute() | TarSlipImprov.py:264:43:264:45 | ControlFlowNode for tar | provenance | | +| TarSlipImprov.py:264:43:264:45 | ControlFlowNode for tar | TarSlipImprov.py:265:9:265:13 | ControlFlowNode for entry | provenance | | +| TarSlipImprov.py:265:9:265:13 | ControlFlowNode for entry | TarSlipImprov.py:268:21:268:25 | ControlFlowNode for entry | provenance | | +| TarSlipImprov.py:271:6:271:39 | ControlFlowNode for Attribute() | TarSlipImprov.py:271:44:271:46 | ControlFlowNode for tar | provenance | | +| TarSlipImprov.py:271:44:271:46 | ControlFlowNode for tar | TarSlipImprov.py:272:9:272:13 | ControlFlowNode for entry | provenance | | +| TarSlipImprov.py:272:9:272:13 | ControlFlowNode for entry | TarSlipImprov.py:274:25:274:29 | ControlFlowNode for entry | provenance | | +| TarSlipImprov.py:276:6:276:38 | ControlFlowNode for Attribute() | TarSlipImprov.py:276:43:276:45 | ControlFlowNode for tar | provenance | | +| TarSlipImprov.py:276:43:276:45 | ControlFlowNode for tar | TarSlipImprov.py:277:9:277:13 | ControlFlowNode for entry | provenance | | +| TarSlipImprov.py:277:9:277:13 | ControlFlowNode for entry | TarSlipImprov.py:280:21:280:25 | ControlFlowNode for entry | provenance | | +| TarSlipImprov.py:283:6:283:51 | ControlFlowNode for Attribute() | TarSlipImprov.py:283:56:283:58 | ControlFlowNode for tar | provenance | | +| TarSlipImprov.py:283:56:283:58 | ControlFlowNode for tar | TarSlipImprov.py:284:5:284:7 | ControlFlowNode for tar | provenance | | +| TarSlipImprov.py:287:1:287:3 | ControlFlowNode for tar | TarSlipImprov.py:288:49:288:51 | ControlFlowNode for tar | provenance | | +| TarSlipImprov.py:287:7:287:28 | ControlFlowNode for Attribute() | TarSlipImprov.py:287:1:287:3 | ControlFlowNode for tar | provenance | | +| TarSlipImprov.py:292:1:292:3 | ControlFlowNode for tar | TarSlipImprov.py:293:1:293:3 | ControlFlowNode for tar | provenance | | +| TarSlipImprov.py:292:7:292:39 | ControlFlowNode for Attribute() | TarSlipImprov.py:292:1:292:3 | ControlFlowNode for tar | provenance | | +| TarSlipImprov.py:300:6:300:51 | ControlFlowNode for Attribute() | TarSlipImprov.py:300:56:300:58 | ControlFlowNode for tar | provenance | | +| TarSlipImprov.py:300:56:300:58 | ControlFlowNode for tar | TarSlipImprov.py:301:49:301:51 | ControlFlowNode for tar | provenance | | +| TarSlipImprov.py:304:1:304:3 | ControlFlowNode for tar | TarSlipImprov.py:306:5:306:10 | ControlFlowNode for member | provenance | | +| TarSlipImprov.py:304:7:304:39 | ControlFlowNode for Attribute() | TarSlipImprov.py:304:1:304:3 | ControlFlowNode for tar | provenance | | +| TarSlipImprov.py:306:5:306:10 | ControlFlowNode for member | TarSlipImprov.py:309:19:309:24 | ControlFlowNode for member | provenance | | +| TarSlipImprov.py:309:5:309:10 | [post] ControlFlowNode for result | TarSlipImprov.py:310:49:310:54 | ControlFlowNode for result | provenance | | +| TarSlipImprov.py:309:19:309:24 | ControlFlowNode for member | TarSlipImprov.py:309:5:309:10 | [post] ControlFlowNode for result | provenance | | nodes | TarSlipImprov.py:15:1:15:3 | ControlFlowNode for tar | semmle.label | ControlFlowNode for tar | | TarSlipImprov.py:15:7:15:39 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | diff --git a/python/ql/test/experimental/query-tests/Security/CWE-022-TarSlip/ZipSlip.expected b/python/ql/test/experimental/query-tests/Security/CWE-022-TarSlip/ZipSlip.expected index e99928a05b8b..6b618335d810 100644 --- a/python/ql/test/experimental/query-tests/Security/CWE-022-TarSlip/ZipSlip.expected +++ b/python/ql/test/experimental/query-tests/Security/CWE-022-TarSlip/ZipSlip.expected @@ -1,19 +1,19 @@ edges -| zipslip_bad.py:8:10:8:31 | ControlFlowNode for Attribute() | zipslip_bad.py:8:36:8:39 | ControlFlowNode for zipf | -| zipslip_bad.py:8:36:8:39 | ControlFlowNode for zipf | zipslip_bad.py:10:13:10:17 | ControlFlowNode for entry | -| zipslip_bad.py:10:13:10:17 | ControlFlowNode for entry | zipslip_bad.py:11:25:11:29 | ControlFlowNode for entry | -| zipslip_bad.py:14:10:14:28 | ControlFlowNode for Attribute() | zipslip_bad.py:14:33:14:36 | ControlFlowNode for zipf | -| zipslip_bad.py:14:33:14:36 | ControlFlowNode for zipf | zipslip_bad.py:16:13:16:17 | ControlFlowNode for entry | -| zipslip_bad.py:16:13:16:17 | ControlFlowNode for entry | zipslip_bad.py:17:26:17:30 | ControlFlowNode for entry | -| zipslip_bad.py:20:10:20:27 | ControlFlowNode for Attribute() | zipslip_bad.py:20:32:20:35 | ControlFlowNode for zipf | -| zipslip_bad.py:20:32:20:35 | ControlFlowNode for zipf | zipslip_bad.py:22:13:22:17 | ControlFlowNode for entry | -| zipslip_bad.py:22:13:22:17 | ControlFlowNode for entry | zipslip_bad.py:23:29:23:33 | ControlFlowNode for entry | -| zipslip_bad.py:27:10:27:22 | ControlFlowNode for Attribute() | zipslip_bad.py:27:27:27:34 | ControlFlowNode for filelist | -| zipslip_bad.py:27:27:27:34 | ControlFlowNode for filelist | zipslip_bad.py:29:13:29:13 | ControlFlowNode for x | -| zipslip_bad.py:29:13:29:13 | ControlFlowNode for x | zipslip_bad.py:30:25:30:25 | ControlFlowNode for x | -| zipslip_bad.py:34:5:34:12 | ControlFlowNode for filelist | zipslip_bad.py:35:9:35:9 | ControlFlowNode for x | -| zipslip_bad.py:34:16:34:28 | ControlFlowNode for Attribute() | zipslip_bad.py:34:5:34:12 | ControlFlowNode for filelist | -| zipslip_bad.py:35:9:35:9 | ControlFlowNode for x | zipslip_bad.py:37:32:37:32 | ControlFlowNode for x | +| zipslip_bad.py:8:10:8:31 | ControlFlowNode for Attribute() | zipslip_bad.py:8:36:8:39 | ControlFlowNode for zipf | provenance | | +| zipslip_bad.py:8:36:8:39 | ControlFlowNode for zipf | zipslip_bad.py:10:13:10:17 | ControlFlowNode for entry | provenance | | +| zipslip_bad.py:10:13:10:17 | ControlFlowNode for entry | zipslip_bad.py:11:25:11:29 | ControlFlowNode for entry | provenance | | +| zipslip_bad.py:14:10:14:28 | ControlFlowNode for Attribute() | zipslip_bad.py:14:33:14:36 | ControlFlowNode for zipf | provenance | | +| zipslip_bad.py:14:33:14:36 | ControlFlowNode for zipf | zipslip_bad.py:16:13:16:17 | ControlFlowNode for entry | provenance | | +| zipslip_bad.py:16:13:16:17 | ControlFlowNode for entry | zipslip_bad.py:17:26:17:30 | ControlFlowNode for entry | provenance | | +| zipslip_bad.py:20:10:20:27 | ControlFlowNode for Attribute() | zipslip_bad.py:20:32:20:35 | ControlFlowNode for zipf | provenance | | +| zipslip_bad.py:20:32:20:35 | ControlFlowNode for zipf | zipslip_bad.py:22:13:22:17 | ControlFlowNode for entry | provenance | | +| zipslip_bad.py:22:13:22:17 | ControlFlowNode for entry | zipslip_bad.py:23:29:23:33 | ControlFlowNode for entry | provenance | | +| zipslip_bad.py:27:10:27:22 | ControlFlowNode for Attribute() | zipslip_bad.py:27:27:27:34 | ControlFlowNode for filelist | provenance | | +| zipslip_bad.py:27:27:27:34 | ControlFlowNode for filelist | zipslip_bad.py:29:13:29:13 | ControlFlowNode for x | provenance | | +| zipslip_bad.py:29:13:29:13 | ControlFlowNode for x | zipslip_bad.py:30:25:30:25 | ControlFlowNode for x | provenance | | +| zipslip_bad.py:34:5:34:12 | ControlFlowNode for filelist | zipslip_bad.py:35:9:35:9 | ControlFlowNode for x | provenance | | +| zipslip_bad.py:34:16:34:28 | ControlFlowNode for Attribute() | zipslip_bad.py:34:5:34:12 | ControlFlowNode for filelist | provenance | | +| zipslip_bad.py:35:9:35:9 | ControlFlowNode for x | zipslip_bad.py:37:32:37:32 | ControlFlowNode for x | provenance | | nodes | zipslip_bad.py:8:10:8:31 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | | zipslip_bad.py:8:36:8:39 | ControlFlowNode for zipf | semmle.label | ControlFlowNode for zipf | diff --git a/python/ql/test/experimental/query-tests/Security/CWE-022-UnsafeUnpacking/UnsafeUnpack.expected b/python/ql/test/experimental/query-tests/Security/CWE-022-UnsafeUnpacking/UnsafeUnpack.expected index 742eecdb92e3..f5af1aac6479 100644 --- a/python/ql/test/experimental/query-tests/Security/CWE-022-UnsafeUnpacking/UnsafeUnpack.expected +++ b/python/ql/test/experimental/query-tests/Security/CWE-022-UnsafeUnpacking/UnsafeUnpack.expected @@ -1,86 +1,86 @@ edges -| UnsafeUnpack.py:5:26:5:32 | ControlFlowNode for ImportMember | UnsafeUnpack.py:5:26:5:32 | ControlFlowNode for request | -| UnsafeUnpack.py:5:26:5:32 | ControlFlowNode for request | UnsafeUnpack.py:11:18:11:24 | ControlFlowNode for request | -| UnsafeUnpack.py:11:7:11:14 | ControlFlowNode for filename | UnsafeUnpack.py:13:24:13:58 | ControlFlowNode for Attribute() | -| UnsafeUnpack.py:11:18:11:24 | ControlFlowNode for request | UnsafeUnpack.py:11:18:11:29 | ControlFlowNode for Attribute | -| UnsafeUnpack.py:11:18:11:29 | ControlFlowNode for Attribute | UnsafeUnpack.py:11:18:11:49 | ControlFlowNode for Attribute() | -| UnsafeUnpack.py:11:18:11:49 | ControlFlowNode for Attribute() | UnsafeUnpack.py:11:7:11:14 | ControlFlowNode for filename | -| UnsafeUnpack.py:13:13:13:20 | ControlFlowNode for response | UnsafeUnpack.py:17:27:17:34 | ControlFlowNode for response | -| UnsafeUnpack.py:13:24:13:58 | ControlFlowNode for Attribute() | UnsafeUnpack.py:13:13:13:20 | ControlFlowNode for response | -| UnsafeUnpack.py:16:23:16:29 | ControlFlowNode for tarpath | UnsafeUnpack.py:19:35:19:41 | ControlFlowNode for tarpath | -| UnsafeUnpack.py:17:19:17:19 | ControlFlowNode for f | UnsafeUnpack.py:16:23:16:29 | ControlFlowNode for tarpath | -| UnsafeUnpack.py:17:27:17:34 | ControlFlowNode for response | UnsafeUnpack.py:17:27:17:38 | ControlFlowNode for Attribute | -| UnsafeUnpack.py:17:27:17:38 | ControlFlowNode for Attribute | UnsafeUnpack.py:17:27:17:45 | ControlFlowNode for Attribute() | -| UnsafeUnpack.py:17:27:17:45 | ControlFlowNode for Attribute() | UnsafeUnpack.py:17:19:17:19 | ControlFlowNode for f | -| UnsafeUnpack.py:33:50:33:65 | ControlFlowNode for local_ziped_path | UnsafeUnpack.py:34:23:34:38 | ControlFlowNode for local_ziped_path | -| UnsafeUnpack.py:47:20:47:34 | ControlFlowNode for compressed_file | UnsafeUnpack.py:48:23:48:37 | ControlFlowNode for compressed_file | -| UnsafeUnpack.py:51:1:51:15 | ControlFlowNode for compressed_file | UnsafeUnpack.py:52:23:52:37 | ControlFlowNode for compressed_file | -| UnsafeUnpack.py:51:19:51:36 | ControlFlowNode for Attribute() | UnsafeUnpack.py:51:1:51:15 | ControlFlowNode for compressed_file | -| UnsafeUnpack.py:65:1:65:15 | ControlFlowNode for compressed_file | UnsafeUnpack.py:66:23:66:37 | ControlFlowNode for compressed_file | -| UnsafeUnpack.py:65:19:65:31 | ControlFlowNode for Attribute | UnsafeUnpack.py:65:1:65:15 | ControlFlowNode for compressed_file | -| UnsafeUnpack.py:79:1:79:12 | ControlFlowNode for url_filename | UnsafeUnpack.py:81:12:81:50 | ControlFlowNode for Attribute() | -| UnsafeUnpack.py:79:1:79:12 | ControlFlowNode for url_filename | UnsafeUnpack.py:171:12:171:50 | ControlFlowNode for Attribute() | -| UnsafeUnpack.py:79:16:79:28 | ControlFlowNode for Attribute | UnsafeUnpack.py:79:1:79:12 | ControlFlowNode for url_filename | -| UnsafeUnpack.py:81:1:81:8 | ControlFlowNode for response | UnsafeUnpack.py:85:15:85:22 | ControlFlowNode for response | -| UnsafeUnpack.py:81:12:81:50 | ControlFlowNode for Attribute() | UnsafeUnpack.py:81:1:81:8 | ControlFlowNode for response | -| UnsafeUnpack.py:84:11:84:17 | ControlFlowNode for tarpath | UnsafeUnpack.py:87:23:87:29 | ControlFlowNode for tarpath | -| UnsafeUnpack.py:85:7:85:7 | ControlFlowNode for f | UnsafeUnpack.py:84:11:84:17 | ControlFlowNode for tarpath | -| UnsafeUnpack.py:85:15:85:22 | ControlFlowNode for response | UnsafeUnpack.py:85:15:85:26 | ControlFlowNode for Attribute | -| UnsafeUnpack.py:85:15:85:26 | ControlFlowNode for Attribute | UnsafeUnpack.py:85:15:85:33 | ControlFlowNode for Attribute() | -| UnsafeUnpack.py:85:15:85:33 | ControlFlowNode for Attribute() | UnsafeUnpack.py:85:7:85:7 | ControlFlowNode for f | -| UnsafeUnpack.py:102:23:102:30 | ControlFlowNode for savepath | UnsafeUnpack.py:105:35:105:42 | ControlFlowNode for savepath | -| UnsafeUnpack.py:103:23:103:27 | ControlFlowNode for chunk | UnsafeUnpack.py:104:37:104:41 | ControlFlowNode for chunk | -| UnsafeUnpack.py:103:32:103:44 | ControlFlowNode for Attribute | UnsafeUnpack.py:103:32:103:54 | ControlFlowNode for Subscript | -| UnsafeUnpack.py:103:32:103:54 | ControlFlowNode for Subscript | UnsafeUnpack.py:103:32:103:63 | ControlFlowNode for Attribute() | -| UnsafeUnpack.py:103:32:103:63 | ControlFlowNode for Attribute() | UnsafeUnpack.py:103:23:103:27 | ControlFlowNode for chunk | -| UnsafeUnpack.py:104:25:104:29 | ControlFlowNode for wfile | UnsafeUnpack.py:102:23:102:30 | ControlFlowNode for savepath | -| UnsafeUnpack.py:104:37:104:41 | ControlFlowNode for chunk | UnsafeUnpack.py:104:25:104:29 | ControlFlowNode for wfile | -| UnsafeUnpack.py:108:13:108:18 | ControlFlowNode for myfile | UnsafeUnpack.py:111:27:111:32 | ControlFlowNode for myfile | -| UnsafeUnpack.py:108:22:108:34 | ControlFlowNode for Attribute | UnsafeUnpack.py:108:22:108:48 | ControlFlowNode for Attribute() | -| UnsafeUnpack.py:108:22:108:48 | ControlFlowNode for Attribute() | UnsafeUnpack.py:108:13:108:18 | ControlFlowNode for myfile | -| UnsafeUnpack.py:110:18:110:26 | ControlFlowNode for file_path | UnsafeUnpack.py:112:35:112:43 | ControlFlowNode for file_path | -| UnsafeUnpack.py:111:19:111:19 | ControlFlowNode for f | UnsafeUnpack.py:110:18:110:26 | ControlFlowNode for file_path | -| UnsafeUnpack.py:111:27:111:32 | ControlFlowNode for myfile | UnsafeUnpack.py:111:27:111:39 | ControlFlowNode for Attribute() | -| UnsafeUnpack.py:111:27:111:39 | ControlFlowNode for Attribute() | UnsafeUnpack.py:111:19:111:19 | ControlFlowNode for f | -| UnsafeUnpack.py:116:17:116:21 | ControlFlowNode for ufile | UnsafeUnpack.py:118:38:118:42 | ControlFlowNode for ufile | -| UnsafeUnpack.py:116:27:116:39 | ControlFlowNode for Attribute | UnsafeUnpack.py:116:27:116:49 | ControlFlowNode for Attribute() | -| UnsafeUnpack.py:116:27:116:49 | ControlFlowNode for Attribute() | UnsafeUnpack.py:116:17:116:21 | ControlFlowNode for ufile | -| UnsafeUnpack.py:118:19:118:26 | ControlFlowNode for filename | UnsafeUnpack.py:119:48:119:55 | ControlFlowNode for filename | -| UnsafeUnpack.py:118:30:118:55 | ControlFlowNode for Attribute() | UnsafeUnpack.py:118:19:118:26 | ControlFlowNode for filename | -| UnsafeUnpack.py:118:38:118:42 | ControlFlowNode for ufile | UnsafeUnpack.py:118:38:118:47 | ControlFlowNode for Attribute | -| UnsafeUnpack.py:118:38:118:47 | ControlFlowNode for Attribute | UnsafeUnpack.py:118:30:118:55 | ControlFlowNode for Attribute() | -| UnsafeUnpack.py:119:19:119:36 | ControlFlowNode for uploaded_file_path | UnsafeUnpack.py:120:41:120:58 | ControlFlowNode for uploaded_file_path | -| UnsafeUnpack.py:119:40:119:56 | ControlFlowNode for Attribute() | UnsafeUnpack.py:119:19:119:36 | ControlFlowNode for uploaded_file_path | -| UnsafeUnpack.py:119:48:119:55 | ControlFlowNode for filename | UnsafeUnpack.py:119:40:119:56 | ControlFlowNode for Attribute() | -| UnsafeUnpack.py:140:1:140:19 | ControlFlowNode for unsafe_filename_tar | UnsafeUnpack.py:141:22:141:40 | ControlFlowNode for unsafe_filename_tar | -| UnsafeUnpack.py:140:23:140:35 | ControlFlowNode for Attribute | UnsafeUnpack.py:140:1:140:19 | ControlFlowNode for unsafe_filename_tar | -| UnsafeUnpack.py:141:6:141:51 | ControlFlowNode for Attribute() | UnsafeUnpack.py:141:56:141:58 | ControlFlowNode for tar | -| UnsafeUnpack.py:141:22:141:40 | ControlFlowNode for unsafe_filename_tar | UnsafeUnpack.py:141:6:141:51 | ControlFlowNode for Attribute() | -| UnsafeUnpack.py:141:56:141:58 | ControlFlowNode for tar | UnsafeUnpack.py:142:49:142:51 | ControlFlowNode for tar | -| UnsafeUnpack.py:157:23:157:30 | ControlFlowNode for savepath | UnsafeUnpack.py:161:38:161:45 | ControlFlowNode for savepath | -| UnsafeUnpack.py:158:23:158:27 | ControlFlowNode for chunk | UnsafeUnpack.py:159:37:159:41 | ControlFlowNode for chunk | -| UnsafeUnpack.py:158:32:158:44 | ControlFlowNode for Attribute | UnsafeUnpack.py:158:32:158:54 | ControlFlowNode for Subscript | -| UnsafeUnpack.py:158:32:158:54 | ControlFlowNode for Subscript | UnsafeUnpack.py:158:32:158:63 | ControlFlowNode for Attribute() | -| UnsafeUnpack.py:158:32:158:63 | ControlFlowNode for Attribute() | UnsafeUnpack.py:158:23:158:27 | ControlFlowNode for chunk | -| UnsafeUnpack.py:159:25:159:29 | ControlFlowNode for wfile | UnsafeUnpack.py:157:23:157:30 | ControlFlowNode for savepath | -| UnsafeUnpack.py:159:37:159:41 | ControlFlowNode for chunk | UnsafeUnpack.py:159:25:159:29 | ControlFlowNode for wfile | -| UnsafeUnpack.py:161:19:161:21 | ControlFlowNode for tar | UnsafeUnpack.py:163:33:163:35 | ControlFlowNode for tar | -| UnsafeUnpack.py:161:25:161:46 | ControlFlowNode for Attribute() | UnsafeUnpack.py:161:19:161:21 | ControlFlowNode for tar | -| UnsafeUnpack.py:161:38:161:45 | ControlFlowNode for savepath | UnsafeUnpack.py:161:25:161:46 | ControlFlowNode for Attribute() | -| UnsafeUnpack.py:163:23:163:28 | ControlFlowNode for member | UnsafeUnpack.py:166:37:166:42 | ControlFlowNode for member | -| UnsafeUnpack.py:163:33:163:35 | ControlFlowNode for tar | UnsafeUnpack.py:163:23:163:28 | ControlFlowNode for member | -| UnsafeUnpack.py:166:23:166:28 | [post] ControlFlowNode for result | UnsafeUnpack.py:167:67:167:72 | ControlFlowNode for result | -| UnsafeUnpack.py:166:37:166:42 | ControlFlowNode for member | UnsafeUnpack.py:166:23:166:28 | [post] ControlFlowNode for result | -| UnsafeUnpack.py:171:1:171:8 | ControlFlowNode for response | UnsafeUnpack.py:174:15:174:22 | ControlFlowNode for response | -| UnsafeUnpack.py:171:12:171:50 | ControlFlowNode for Attribute() | UnsafeUnpack.py:171:1:171:8 | ControlFlowNode for response | -| UnsafeUnpack.py:173:11:173:17 | ControlFlowNode for tarpath | UnsafeUnpack.py:176:17:176:23 | ControlFlowNode for tarpath | -| UnsafeUnpack.py:174:7:174:7 | ControlFlowNode for f | UnsafeUnpack.py:173:11:173:17 | ControlFlowNode for tarpath | -| UnsafeUnpack.py:174:15:174:22 | ControlFlowNode for response | UnsafeUnpack.py:174:15:174:26 | ControlFlowNode for Attribute | -| UnsafeUnpack.py:174:15:174:26 | ControlFlowNode for Attribute | UnsafeUnpack.py:174:15:174:33 | ControlFlowNode for Attribute() | -| UnsafeUnpack.py:174:15:174:33 | ControlFlowNode for Attribute() | UnsafeUnpack.py:174:7:174:7 | ControlFlowNode for f | -| UnsafeUnpack.py:176:17:176:23 | ControlFlowNode for tarpath | UnsafeUnpack.py:176:1:176:34 | ControlFlowNode for Attribute() | -| UnsafeUnpack.py:194:53:194:55 | ControlFlowNode for tmp | UnsafeUnpack.py:201:29:201:31 | ControlFlowNode for tmp | -| UnsafeUnpack.py:201:29:201:31 | ControlFlowNode for tmp | UnsafeUnpack.py:201:29:201:36 | ControlFlowNode for Attribute | +| UnsafeUnpack.py:5:26:5:32 | ControlFlowNode for ImportMember | UnsafeUnpack.py:5:26:5:32 | ControlFlowNode for request | provenance | | +| UnsafeUnpack.py:5:26:5:32 | ControlFlowNode for request | UnsafeUnpack.py:11:18:11:24 | ControlFlowNode for request | provenance | | +| UnsafeUnpack.py:11:7:11:14 | ControlFlowNode for filename | UnsafeUnpack.py:13:24:13:58 | ControlFlowNode for Attribute() | provenance | | +| UnsafeUnpack.py:11:18:11:24 | ControlFlowNode for request | UnsafeUnpack.py:11:18:11:29 | ControlFlowNode for Attribute | provenance | | +| UnsafeUnpack.py:11:18:11:29 | ControlFlowNode for Attribute | UnsafeUnpack.py:11:18:11:49 | ControlFlowNode for Attribute() | provenance | | +| UnsafeUnpack.py:11:18:11:49 | ControlFlowNode for Attribute() | UnsafeUnpack.py:11:7:11:14 | ControlFlowNode for filename | provenance | | +| UnsafeUnpack.py:13:13:13:20 | ControlFlowNode for response | UnsafeUnpack.py:17:27:17:34 | ControlFlowNode for response | provenance | | +| UnsafeUnpack.py:13:24:13:58 | ControlFlowNode for Attribute() | UnsafeUnpack.py:13:13:13:20 | ControlFlowNode for response | provenance | | +| UnsafeUnpack.py:16:23:16:29 | ControlFlowNode for tarpath | UnsafeUnpack.py:19:35:19:41 | ControlFlowNode for tarpath | provenance | | +| UnsafeUnpack.py:17:19:17:19 | ControlFlowNode for f | UnsafeUnpack.py:16:23:16:29 | ControlFlowNode for tarpath | provenance | | +| UnsafeUnpack.py:17:27:17:34 | ControlFlowNode for response | UnsafeUnpack.py:17:27:17:38 | ControlFlowNode for Attribute | provenance | | +| UnsafeUnpack.py:17:27:17:38 | ControlFlowNode for Attribute | UnsafeUnpack.py:17:27:17:45 | ControlFlowNode for Attribute() | provenance | | +| UnsafeUnpack.py:17:27:17:45 | ControlFlowNode for Attribute() | UnsafeUnpack.py:17:19:17:19 | ControlFlowNode for f | provenance | | +| UnsafeUnpack.py:33:50:33:65 | ControlFlowNode for local_ziped_path | UnsafeUnpack.py:34:23:34:38 | ControlFlowNode for local_ziped_path | provenance | | +| UnsafeUnpack.py:47:20:47:34 | ControlFlowNode for compressed_file | UnsafeUnpack.py:48:23:48:37 | ControlFlowNode for compressed_file | provenance | | +| UnsafeUnpack.py:51:1:51:15 | ControlFlowNode for compressed_file | UnsafeUnpack.py:52:23:52:37 | ControlFlowNode for compressed_file | provenance | | +| UnsafeUnpack.py:51:19:51:36 | ControlFlowNode for Attribute() | UnsafeUnpack.py:51:1:51:15 | ControlFlowNode for compressed_file | provenance | | +| UnsafeUnpack.py:65:1:65:15 | ControlFlowNode for compressed_file | UnsafeUnpack.py:66:23:66:37 | ControlFlowNode for compressed_file | provenance | | +| UnsafeUnpack.py:65:19:65:31 | ControlFlowNode for Attribute | UnsafeUnpack.py:65:1:65:15 | ControlFlowNode for compressed_file | provenance | | +| UnsafeUnpack.py:79:1:79:12 | ControlFlowNode for url_filename | UnsafeUnpack.py:81:12:81:50 | ControlFlowNode for Attribute() | provenance | | +| UnsafeUnpack.py:79:1:79:12 | ControlFlowNode for url_filename | UnsafeUnpack.py:171:12:171:50 | ControlFlowNode for Attribute() | provenance | | +| UnsafeUnpack.py:79:16:79:28 | ControlFlowNode for Attribute | UnsafeUnpack.py:79:1:79:12 | ControlFlowNode for url_filename | provenance | | +| UnsafeUnpack.py:81:1:81:8 | ControlFlowNode for response | UnsafeUnpack.py:85:15:85:22 | ControlFlowNode for response | provenance | | +| UnsafeUnpack.py:81:12:81:50 | ControlFlowNode for Attribute() | UnsafeUnpack.py:81:1:81:8 | ControlFlowNode for response | provenance | | +| UnsafeUnpack.py:84:11:84:17 | ControlFlowNode for tarpath | UnsafeUnpack.py:87:23:87:29 | ControlFlowNode for tarpath | provenance | | +| UnsafeUnpack.py:85:7:85:7 | ControlFlowNode for f | UnsafeUnpack.py:84:11:84:17 | ControlFlowNode for tarpath | provenance | | +| UnsafeUnpack.py:85:15:85:22 | ControlFlowNode for response | UnsafeUnpack.py:85:15:85:26 | ControlFlowNode for Attribute | provenance | | +| UnsafeUnpack.py:85:15:85:26 | ControlFlowNode for Attribute | UnsafeUnpack.py:85:15:85:33 | ControlFlowNode for Attribute() | provenance | | +| UnsafeUnpack.py:85:15:85:33 | ControlFlowNode for Attribute() | UnsafeUnpack.py:85:7:85:7 | ControlFlowNode for f | provenance | | +| UnsafeUnpack.py:102:23:102:30 | ControlFlowNode for savepath | UnsafeUnpack.py:105:35:105:42 | ControlFlowNode for savepath | provenance | | +| UnsafeUnpack.py:103:23:103:27 | ControlFlowNode for chunk | UnsafeUnpack.py:104:37:104:41 | ControlFlowNode for chunk | provenance | | +| UnsafeUnpack.py:103:32:103:44 | ControlFlowNode for Attribute | UnsafeUnpack.py:103:32:103:54 | ControlFlowNode for Subscript | provenance | | +| UnsafeUnpack.py:103:32:103:54 | ControlFlowNode for Subscript | UnsafeUnpack.py:103:32:103:63 | ControlFlowNode for Attribute() | provenance | | +| UnsafeUnpack.py:103:32:103:63 | ControlFlowNode for Attribute() | UnsafeUnpack.py:103:23:103:27 | ControlFlowNode for chunk | provenance | | +| UnsafeUnpack.py:104:25:104:29 | ControlFlowNode for wfile | UnsafeUnpack.py:102:23:102:30 | ControlFlowNode for savepath | provenance | | +| UnsafeUnpack.py:104:37:104:41 | ControlFlowNode for chunk | UnsafeUnpack.py:104:25:104:29 | ControlFlowNode for wfile | provenance | | +| UnsafeUnpack.py:108:13:108:18 | ControlFlowNode for myfile | UnsafeUnpack.py:111:27:111:32 | ControlFlowNode for myfile | provenance | | +| UnsafeUnpack.py:108:22:108:34 | ControlFlowNode for Attribute | UnsafeUnpack.py:108:22:108:48 | ControlFlowNode for Attribute() | provenance | | +| UnsafeUnpack.py:108:22:108:48 | ControlFlowNode for Attribute() | UnsafeUnpack.py:108:13:108:18 | ControlFlowNode for myfile | provenance | | +| UnsafeUnpack.py:110:18:110:26 | ControlFlowNode for file_path | UnsafeUnpack.py:112:35:112:43 | ControlFlowNode for file_path | provenance | | +| UnsafeUnpack.py:111:19:111:19 | ControlFlowNode for f | UnsafeUnpack.py:110:18:110:26 | ControlFlowNode for file_path | provenance | | +| UnsafeUnpack.py:111:27:111:32 | ControlFlowNode for myfile | UnsafeUnpack.py:111:27:111:39 | ControlFlowNode for Attribute() | provenance | | +| UnsafeUnpack.py:111:27:111:39 | ControlFlowNode for Attribute() | UnsafeUnpack.py:111:19:111:19 | ControlFlowNode for f | provenance | | +| UnsafeUnpack.py:116:17:116:21 | ControlFlowNode for ufile | UnsafeUnpack.py:118:38:118:42 | ControlFlowNode for ufile | provenance | | +| UnsafeUnpack.py:116:27:116:39 | ControlFlowNode for Attribute | UnsafeUnpack.py:116:27:116:49 | ControlFlowNode for Attribute() | provenance | | +| UnsafeUnpack.py:116:27:116:49 | ControlFlowNode for Attribute() | UnsafeUnpack.py:116:17:116:21 | ControlFlowNode for ufile | provenance | | +| UnsafeUnpack.py:118:19:118:26 | ControlFlowNode for filename | UnsafeUnpack.py:119:48:119:55 | ControlFlowNode for filename | provenance | | +| UnsafeUnpack.py:118:30:118:55 | ControlFlowNode for Attribute() | UnsafeUnpack.py:118:19:118:26 | ControlFlowNode for filename | provenance | | +| UnsafeUnpack.py:118:38:118:42 | ControlFlowNode for ufile | UnsafeUnpack.py:118:38:118:47 | ControlFlowNode for Attribute | provenance | | +| UnsafeUnpack.py:118:38:118:47 | ControlFlowNode for Attribute | UnsafeUnpack.py:118:30:118:55 | ControlFlowNode for Attribute() | provenance | | +| UnsafeUnpack.py:119:19:119:36 | ControlFlowNode for uploaded_file_path | UnsafeUnpack.py:120:41:120:58 | ControlFlowNode for uploaded_file_path | provenance | | +| UnsafeUnpack.py:119:40:119:56 | ControlFlowNode for Attribute() | UnsafeUnpack.py:119:19:119:36 | ControlFlowNode for uploaded_file_path | provenance | | +| UnsafeUnpack.py:119:48:119:55 | ControlFlowNode for filename | UnsafeUnpack.py:119:40:119:56 | ControlFlowNode for Attribute() | provenance | | +| UnsafeUnpack.py:140:1:140:19 | ControlFlowNode for unsafe_filename_tar | UnsafeUnpack.py:141:22:141:40 | ControlFlowNode for unsafe_filename_tar | provenance | | +| UnsafeUnpack.py:140:23:140:35 | ControlFlowNode for Attribute | UnsafeUnpack.py:140:1:140:19 | ControlFlowNode for unsafe_filename_tar | provenance | | +| UnsafeUnpack.py:141:6:141:51 | ControlFlowNode for Attribute() | UnsafeUnpack.py:141:56:141:58 | ControlFlowNode for tar | provenance | | +| UnsafeUnpack.py:141:22:141:40 | ControlFlowNode for unsafe_filename_tar | UnsafeUnpack.py:141:6:141:51 | ControlFlowNode for Attribute() | provenance | | +| UnsafeUnpack.py:141:56:141:58 | ControlFlowNode for tar | UnsafeUnpack.py:142:49:142:51 | ControlFlowNode for tar | provenance | | +| UnsafeUnpack.py:157:23:157:30 | ControlFlowNode for savepath | UnsafeUnpack.py:161:38:161:45 | ControlFlowNode for savepath | provenance | | +| UnsafeUnpack.py:158:23:158:27 | ControlFlowNode for chunk | UnsafeUnpack.py:159:37:159:41 | ControlFlowNode for chunk | provenance | | +| UnsafeUnpack.py:158:32:158:44 | ControlFlowNode for Attribute | UnsafeUnpack.py:158:32:158:54 | ControlFlowNode for Subscript | provenance | | +| UnsafeUnpack.py:158:32:158:54 | ControlFlowNode for Subscript | UnsafeUnpack.py:158:32:158:63 | ControlFlowNode for Attribute() | provenance | | +| UnsafeUnpack.py:158:32:158:63 | ControlFlowNode for Attribute() | UnsafeUnpack.py:158:23:158:27 | ControlFlowNode for chunk | provenance | | +| UnsafeUnpack.py:159:25:159:29 | ControlFlowNode for wfile | UnsafeUnpack.py:157:23:157:30 | ControlFlowNode for savepath | provenance | | +| UnsafeUnpack.py:159:37:159:41 | ControlFlowNode for chunk | UnsafeUnpack.py:159:25:159:29 | ControlFlowNode for wfile | provenance | | +| UnsafeUnpack.py:161:19:161:21 | ControlFlowNode for tar | UnsafeUnpack.py:163:33:163:35 | ControlFlowNode for tar | provenance | | +| UnsafeUnpack.py:161:25:161:46 | ControlFlowNode for Attribute() | UnsafeUnpack.py:161:19:161:21 | ControlFlowNode for tar | provenance | | +| UnsafeUnpack.py:161:38:161:45 | ControlFlowNode for savepath | UnsafeUnpack.py:161:25:161:46 | ControlFlowNode for Attribute() | provenance | | +| UnsafeUnpack.py:163:23:163:28 | ControlFlowNode for member | UnsafeUnpack.py:166:37:166:42 | ControlFlowNode for member | provenance | | +| UnsafeUnpack.py:163:33:163:35 | ControlFlowNode for tar | UnsafeUnpack.py:163:23:163:28 | ControlFlowNode for member | provenance | | +| UnsafeUnpack.py:166:23:166:28 | [post] ControlFlowNode for result | UnsafeUnpack.py:167:67:167:72 | ControlFlowNode for result | provenance | | +| UnsafeUnpack.py:166:37:166:42 | ControlFlowNode for member | UnsafeUnpack.py:166:23:166:28 | [post] ControlFlowNode for result | provenance | | +| UnsafeUnpack.py:171:1:171:8 | ControlFlowNode for response | UnsafeUnpack.py:174:15:174:22 | ControlFlowNode for response | provenance | | +| UnsafeUnpack.py:171:12:171:50 | ControlFlowNode for Attribute() | UnsafeUnpack.py:171:1:171:8 | ControlFlowNode for response | provenance | | +| UnsafeUnpack.py:173:11:173:17 | ControlFlowNode for tarpath | UnsafeUnpack.py:176:17:176:23 | ControlFlowNode for tarpath | provenance | | +| UnsafeUnpack.py:174:7:174:7 | ControlFlowNode for f | UnsafeUnpack.py:173:11:173:17 | ControlFlowNode for tarpath | provenance | | +| UnsafeUnpack.py:174:15:174:22 | ControlFlowNode for response | UnsafeUnpack.py:174:15:174:26 | ControlFlowNode for Attribute | provenance | | +| UnsafeUnpack.py:174:15:174:26 | ControlFlowNode for Attribute | UnsafeUnpack.py:174:15:174:33 | ControlFlowNode for Attribute() | provenance | | +| UnsafeUnpack.py:174:15:174:33 | ControlFlowNode for Attribute() | UnsafeUnpack.py:174:7:174:7 | ControlFlowNode for f | provenance | | +| UnsafeUnpack.py:176:17:176:23 | ControlFlowNode for tarpath | UnsafeUnpack.py:176:1:176:34 | ControlFlowNode for Attribute() | provenance | | +| UnsafeUnpack.py:194:53:194:55 | ControlFlowNode for tmp | UnsafeUnpack.py:201:29:201:31 | ControlFlowNode for tmp | provenance | | +| UnsafeUnpack.py:201:29:201:31 | ControlFlowNode for tmp | UnsafeUnpack.py:201:29:201:36 | ControlFlowNode for Attribute | provenance | | nodes | UnsafeUnpack.py:5:26:5:32 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | | UnsafeUnpack.py:5:26:5:32 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | diff --git a/python/ql/test/experimental/query-tests/Security/CWE-074-TemplateInjection/TemplateInjection.expected b/python/ql/test/experimental/query-tests/Security/CWE-074-TemplateInjection/TemplateInjection.expected index 0bfa6affc399..2754b5b8c065 100644 --- a/python/ql/test/experimental/query-tests/Security/CWE-074-TemplateInjection/TemplateInjection.expected +++ b/python/ql/test/experimental/query-tests/Security/CWE-074-TemplateInjection/TemplateInjection.expected @@ -1,46 +1,46 @@ edges -| AirspeedSsti.py:2:26:2:32 | ControlFlowNode for ImportMember | AirspeedSsti.py:2:26:2:32 | ControlFlowNode for request | -| AirspeedSsti.py:2:26:2:32 | ControlFlowNode for request | AirspeedSsti.py:10:16:10:22 | ControlFlowNode for request | -| AirspeedSsti.py:10:5:10:12 | ControlFlowNode for template | AirspeedSsti.py:11:30:11:37 | ControlFlowNode for template | -| AirspeedSsti.py:10:16:10:22 | ControlFlowNode for request | AirspeedSsti.py:10:16:10:27 | ControlFlowNode for Attribute | -| AirspeedSsti.py:10:16:10:27 | ControlFlowNode for Attribute | AirspeedSsti.py:10:16:10:43 | ControlFlowNode for Attribute() | -| AirspeedSsti.py:10:16:10:43 | ControlFlowNode for Attribute() | AirspeedSsti.py:10:5:10:12 | ControlFlowNode for template | -| CheetahSinks.py:1:26:1:32 | ControlFlowNode for ImportMember | CheetahSinks.py:1:26:1:32 | ControlFlowNode for request | -| CheetahSinks.py:1:26:1:32 | ControlFlowNode for request | CheetahSinks.py:10:16:10:22 | ControlFlowNode for request | -| CheetahSinks.py:1:26:1:32 | ControlFlowNode for request | CheetahSinks.py:21:16:21:22 | ControlFlowNode for request | -| CheetahSinks.py:10:5:10:12 | ControlFlowNode for template | CheetahSinks.py:11:21:11:28 | ControlFlowNode for template | -| CheetahSinks.py:10:16:10:22 | ControlFlowNode for request | CheetahSinks.py:10:16:10:27 | ControlFlowNode for Attribute | -| CheetahSinks.py:10:16:10:27 | ControlFlowNode for Attribute | CheetahSinks.py:10:16:10:43 | ControlFlowNode for Attribute() | -| CheetahSinks.py:10:16:10:43 | ControlFlowNode for Attribute() | CheetahSinks.py:10:5:10:12 | ControlFlowNode for template | -| CheetahSinks.py:21:5:21:12 | ControlFlowNode for template | CheetahSinks.py:22:20:22:27 | ControlFlowNode for template | -| CheetahSinks.py:21:16:21:22 | ControlFlowNode for request | CheetahSinks.py:21:16:21:27 | ControlFlowNode for Attribute | -| CheetahSinks.py:21:16:21:27 | ControlFlowNode for Attribute | CheetahSinks.py:21:16:21:43 | ControlFlowNode for Attribute() | -| CheetahSinks.py:21:16:21:43 | ControlFlowNode for Attribute() | CheetahSinks.py:21:5:21:12 | ControlFlowNode for template | -| ChevronSsti.py:1:26:1:32 | ControlFlowNode for ImportMember | ChevronSsti.py:1:26:1:32 | ControlFlowNode for request | -| ChevronSsti.py:1:26:1:32 | ControlFlowNode for request | ChevronSsti.py:10:16:10:22 | ControlFlowNode for request | -| ChevronSsti.py:10:5:10:12 | ControlFlowNode for template | ChevronSsti.py:11:27:11:34 | ControlFlowNode for template | -| ChevronSsti.py:10:16:10:22 | ControlFlowNode for request | ChevronSsti.py:10:16:10:27 | ControlFlowNode for Attribute | -| ChevronSsti.py:10:16:10:27 | ControlFlowNode for Attribute | ChevronSsti.py:10:16:10:43 | ControlFlowNode for Attribute() | -| ChevronSsti.py:10:16:10:43 | ControlFlowNode for Attribute() | ChevronSsti.py:10:5:10:12 | ControlFlowNode for template | -| DjangoTemplates.py:6:8:6:14 | ControlFlowNode for request | DjangoTemplates.py:8:5:8:12 | ControlFlowNode for template | -| DjangoTemplates.py:8:5:8:12 | ControlFlowNode for template | DjangoTemplates.py:9:18:9:25 | ControlFlowNode for template | -| FlaskTemplate.py:1:26:1:32 | ControlFlowNode for ImportMember | FlaskTemplate.py:1:26:1:32 | ControlFlowNode for request | -| FlaskTemplate.py:1:26:1:32 | ControlFlowNode for request | FlaskTemplate.py:10:8:10:14 | ControlFlowNode for request | -| FlaskTemplate.py:1:26:1:32 | ControlFlowNode for request | FlaskTemplate.py:11:39:11:45 | ControlFlowNode for request | -| FlaskTemplate.py:1:26:1:32 | ControlFlowNode for request | FlaskTemplate.py:17:41:17:47 | ControlFlowNode for request | -| FlaskTemplate.py:10:8:10:14 | ControlFlowNode for request | FlaskTemplate.py:11:39:11:50 | ControlFlowNode for Attribute | -| FlaskTemplate.py:11:39:11:45 | ControlFlowNode for request | FlaskTemplate.py:11:39:11:50 | ControlFlowNode for Attribute | -| FlaskTemplate.py:11:39:11:50 | ControlFlowNode for Attribute | FlaskTemplate.py:11:39:11:66 | ControlFlowNode for Attribute() | -| FlaskTemplate.py:17:41:17:47 | ControlFlowNode for request | FlaskTemplate.py:17:41:17:52 | ControlFlowNode for Attribute | -| FlaskTemplate.py:17:41:17:52 | ControlFlowNode for Attribute | FlaskTemplate.py:17:41:17:68 | ControlFlowNode for Attribute() | -| JinjaSsti.py:7:7:7:13 | ControlFlowNode for request | JinjaSsti.py:9:5:9:12 | ControlFlowNode for template | -| JinjaSsti.py:9:5:9:12 | ControlFlowNode for template | JinjaSsti.py:10:25:10:32 | ControlFlowNode for template | -| JinjaSsti.py:16:7:16:13 | ControlFlowNode for request | JinjaSsti.py:19:5:19:12 | ControlFlowNode for template | -| JinjaSsti.py:19:5:19:12 | ControlFlowNode for template | JinjaSsti.py:20:28:20:35 | ControlFlowNode for template | -| MakoSsti.py:6:10:6:16 | ControlFlowNode for request | MakoSsti.py:8:5:8:12 | ControlFlowNode for template | -| MakoSsti.py:8:5:8:12 | ControlFlowNode for template | MakoSsti.py:9:27:9:34 | ControlFlowNode for template | -| TRender.py:5:13:5:19 | ControlFlowNode for request | TRender.py:6:5:6:12 | ControlFlowNode for template | -| TRender.py:6:5:6:12 | ControlFlowNode for template | TRender.py:7:24:7:31 | ControlFlowNode for template | +| AirspeedSsti.py:2:26:2:32 | ControlFlowNode for ImportMember | AirspeedSsti.py:2:26:2:32 | ControlFlowNode for request | provenance | | +| AirspeedSsti.py:2:26:2:32 | ControlFlowNode for request | AirspeedSsti.py:10:16:10:22 | ControlFlowNode for request | provenance | | +| AirspeedSsti.py:10:5:10:12 | ControlFlowNode for template | AirspeedSsti.py:11:30:11:37 | ControlFlowNode for template | provenance | | +| AirspeedSsti.py:10:16:10:22 | ControlFlowNode for request | AirspeedSsti.py:10:16:10:27 | ControlFlowNode for Attribute | provenance | | +| AirspeedSsti.py:10:16:10:27 | ControlFlowNode for Attribute | AirspeedSsti.py:10:16:10:43 | ControlFlowNode for Attribute() | provenance | | +| AirspeedSsti.py:10:16:10:43 | ControlFlowNode for Attribute() | AirspeedSsti.py:10:5:10:12 | ControlFlowNode for template | provenance | | +| CheetahSinks.py:1:26:1:32 | ControlFlowNode for ImportMember | CheetahSinks.py:1:26:1:32 | ControlFlowNode for request | provenance | | +| CheetahSinks.py:1:26:1:32 | ControlFlowNode for request | CheetahSinks.py:10:16:10:22 | ControlFlowNode for request | provenance | | +| CheetahSinks.py:1:26:1:32 | ControlFlowNode for request | CheetahSinks.py:21:16:21:22 | ControlFlowNode for request | provenance | | +| CheetahSinks.py:10:5:10:12 | ControlFlowNode for template | CheetahSinks.py:11:21:11:28 | ControlFlowNode for template | provenance | | +| CheetahSinks.py:10:16:10:22 | ControlFlowNode for request | CheetahSinks.py:10:16:10:27 | ControlFlowNode for Attribute | provenance | | +| CheetahSinks.py:10:16:10:27 | ControlFlowNode for Attribute | CheetahSinks.py:10:16:10:43 | ControlFlowNode for Attribute() | provenance | | +| CheetahSinks.py:10:16:10:43 | ControlFlowNode for Attribute() | CheetahSinks.py:10:5:10:12 | ControlFlowNode for template | provenance | | +| CheetahSinks.py:21:5:21:12 | ControlFlowNode for template | CheetahSinks.py:22:20:22:27 | ControlFlowNode for template | provenance | | +| CheetahSinks.py:21:16:21:22 | ControlFlowNode for request | CheetahSinks.py:21:16:21:27 | ControlFlowNode for Attribute | provenance | | +| CheetahSinks.py:21:16:21:27 | ControlFlowNode for Attribute | CheetahSinks.py:21:16:21:43 | ControlFlowNode for Attribute() | provenance | | +| CheetahSinks.py:21:16:21:43 | ControlFlowNode for Attribute() | CheetahSinks.py:21:5:21:12 | ControlFlowNode for template | provenance | | +| ChevronSsti.py:1:26:1:32 | ControlFlowNode for ImportMember | ChevronSsti.py:1:26:1:32 | ControlFlowNode for request | provenance | | +| ChevronSsti.py:1:26:1:32 | ControlFlowNode for request | ChevronSsti.py:10:16:10:22 | ControlFlowNode for request | provenance | | +| ChevronSsti.py:10:5:10:12 | ControlFlowNode for template | ChevronSsti.py:11:27:11:34 | ControlFlowNode for template | provenance | | +| ChevronSsti.py:10:16:10:22 | ControlFlowNode for request | ChevronSsti.py:10:16:10:27 | ControlFlowNode for Attribute | provenance | | +| ChevronSsti.py:10:16:10:27 | ControlFlowNode for Attribute | ChevronSsti.py:10:16:10:43 | ControlFlowNode for Attribute() | provenance | | +| ChevronSsti.py:10:16:10:43 | ControlFlowNode for Attribute() | ChevronSsti.py:10:5:10:12 | ControlFlowNode for template | provenance | | +| DjangoTemplates.py:6:8:6:14 | ControlFlowNode for request | DjangoTemplates.py:8:5:8:12 | ControlFlowNode for template | provenance | | +| DjangoTemplates.py:8:5:8:12 | ControlFlowNode for template | DjangoTemplates.py:9:18:9:25 | ControlFlowNode for template | provenance | | +| FlaskTemplate.py:1:26:1:32 | ControlFlowNode for ImportMember | FlaskTemplate.py:1:26:1:32 | ControlFlowNode for request | provenance | | +| FlaskTemplate.py:1:26:1:32 | ControlFlowNode for request | FlaskTemplate.py:10:8:10:14 | ControlFlowNode for request | provenance | | +| FlaskTemplate.py:1:26:1:32 | ControlFlowNode for request | FlaskTemplate.py:11:39:11:45 | ControlFlowNode for request | provenance | | +| FlaskTemplate.py:1:26:1:32 | ControlFlowNode for request | FlaskTemplate.py:17:41:17:47 | ControlFlowNode for request | provenance | | +| FlaskTemplate.py:10:8:10:14 | ControlFlowNode for request | FlaskTemplate.py:11:39:11:50 | ControlFlowNode for Attribute | provenance | | +| FlaskTemplate.py:11:39:11:45 | ControlFlowNode for request | FlaskTemplate.py:11:39:11:50 | ControlFlowNode for Attribute | provenance | | +| FlaskTemplate.py:11:39:11:50 | ControlFlowNode for Attribute | FlaskTemplate.py:11:39:11:66 | ControlFlowNode for Attribute() | provenance | | +| FlaskTemplate.py:17:41:17:47 | ControlFlowNode for request | FlaskTemplate.py:17:41:17:52 | ControlFlowNode for Attribute | provenance | | +| FlaskTemplate.py:17:41:17:52 | ControlFlowNode for Attribute | FlaskTemplate.py:17:41:17:68 | ControlFlowNode for Attribute() | provenance | | +| JinjaSsti.py:7:7:7:13 | ControlFlowNode for request | JinjaSsti.py:9:5:9:12 | ControlFlowNode for template | provenance | | +| JinjaSsti.py:9:5:9:12 | ControlFlowNode for template | JinjaSsti.py:10:25:10:32 | ControlFlowNode for template | provenance | | +| JinjaSsti.py:16:7:16:13 | ControlFlowNode for request | JinjaSsti.py:19:5:19:12 | ControlFlowNode for template | provenance | | +| JinjaSsti.py:19:5:19:12 | ControlFlowNode for template | JinjaSsti.py:20:28:20:35 | ControlFlowNode for template | provenance | | +| MakoSsti.py:6:10:6:16 | ControlFlowNode for request | MakoSsti.py:8:5:8:12 | ControlFlowNode for template | provenance | | +| MakoSsti.py:8:5:8:12 | ControlFlowNode for template | MakoSsti.py:9:27:9:34 | ControlFlowNode for template | provenance | | +| TRender.py:5:13:5:19 | ControlFlowNode for request | TRender.py:6:5:6:12 | ControlFlowNode for template | provenance | | +| TRender.py:6:5:6:12 | ControlFlowNode for template | TRender.py:7:24:7:31 | ControlFlowNode for template | provenance | | nodes | AirspeedSsti.py:2:26:2:32 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | | AirspeedSsti.py:2:26:2:32 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | diff --git a/python/ql/test/experimental/query-tests/Security/CWE-074-paramiko/paramiko.expected b/python/ql/test/experimental/query-tests/Security/CWE-074-paramiko/paramiko.expected index b31006425a6b..d7793ad996d6 100644 --- a/python/ql/test/experimental/query-tests/Security/CWE-074-paramiko/paramiko.expected +++ b/python/ql/test/experimental/query-tests/Security/CWE-074-paramiko/paramiko.expected @@ -1,8 +1,8 @@ edges -| paramiko.py:15:21:15:23 | ControlFlowNode for cmd | paramiko.py:16:62:16:64 | ControlFlowNode for cmd | -| paramiko.py:20:21:20:23 | ControlFlowNode for cmd | paramiko.py:21:70:21:72 | ControlFlowNode for cmd | -| paramiko.py:25:21:25:23 | ControlFlowNode for cmd | paramiko.py:26:136:26:138 | ControlFlowNode for cmd | -| paramiko.py:26:136:26:138 | ControlFlowNode for cmd | paramiko.py:26:114:26:139 | ControlFlowNode for Attribute() | +| paramiko.py:15:21:15:23 | ControlFlowNode for cmd | paramiko.py:16:62:16:64 | ControlFlowNode for cmd | provenance | | +| paramiko.py:20:21:20:23 | ControlFlowNode for cmd | paramiko.py:21:70:21:72 | ControlFlowNode for cmd | provenance | | +| paramiko.py:25:21:25:23 | ControlFlowNode for cmd | paramiko.py:26:136:26:138 | ControlFlowNode for cmd | provenance | | +| paramiko.py:26:136:26:138 | ControlFlowNode for cmd | paramiko.py:26:114:26:139 | ControlFlowNode for Attribute() | provenance | | nodes | paramiko.py:15:21:15:23 | ControlFlowNode for cmd | semmle.label | ControlFlowNode for cmd | | paramiko.py:16:62:16:64 | ControlFlowNode for cmd | semmle.label | ControlFlowNode for cmd | diff --git a/python/ql/test/experimental/query-tests/Security/CWE-079/EmailXss.expected b/python/ql/test/experimental/query-tests/Security/CWE-079/EmailXss.expected index 00172d78319c..8581fcda227f 100644 --- a/python/ql/test/experimental/query-tests/Security/CWE-079/EmailXss.expected +++ b/python/ql/test/experimental/query-tests/Security/CWE-079/EmailXss.expected @@ -1,40 +1,40 @@ edges -| flask_mail.py:1:19:1:25 | ControlFlowNode for ImportMember | flask_mail.py:1:19:1:25 | ControlFlowNode for request | -| flask_mail.py:1:19:1:25 | ControlFlowNode for request | flask_mail.py:13:22:13:28 | ControlFlowNode for request | -| flask_mail.py:1:19:1:25 | ControlFlowNode for request | flask_mail.py:18:14:18:20 | ControlFlowNode for request | -| flask_mail.py:1:19:1:25 | ControlFlowNode for request | flask_mail.py:31:24:31:30 | ControlFlowNode for request | -| flask_mail.py:13:22:13:28 | ControlFlowNode for request | flask_mail.py:13:22:13:41 | ControlFlowNode for Subscript | -| flask_mail.py:13:22:13:28 | ControlFlowNode for request | flask_mail.py:18:14:18:33 | ControlFlowNode for Subscript | -| flask_mail.py:18:14:18:20 | ControlFlowNode for request | flask_mail.py:18:14:18:33 | ControlFlowNode for Subscript | -| flask_mail.py:31:24:31:30 | ControlFlowNode for request | flask_mail.py:31:24:31:43 | ControlFlowNode for Subscript | -| sendgrid_mail.py:1:19:1:25 | ControlFlowNode for ImportMember | sendgrid_mail.py:1:19:1:25 | ControlFlowNode for request | -| sendgrid_mail.py:1:19:1:25 | ControlFlowNode for request | sendgrid_mail.py:14:22:14:28 | ControlFlowNode for request | -| sendgrid_mail.py:1:19:1:25 | ControlFlowNode for request | sendgrid_mail.py:26:34:26:40 | ControlFlowNode for request | -| sendgrid_mail.py:1:19:1:25 | ControlFlowNode for request | sendgrid_mail.py:37:41:37:47 | ControlFlowNode for request | -| sendgrid_mail.py:14:22:14:28 | ControlFlowNode for request | sendgrid_mail.py:14:22:14:49 | ControlFlowNode for Subscript | -| sendgrid_mail.py:26:34:26:40 | ControlFlowNode for request | sendgrid_mail.py:26:34:26:61 | ControlFlowNode for Subscript | -| sendgrid_mail.py:26:34:26:61 | ControlFlowNode for Subscript | sendgrid_mail.py:26:22:26:62 | ControlFlowNode for HtmlContent() | -| sendgrid_mail.py:37:41:37:47 | ControlFlowNode for request | sendgrid_mail.py:37:41:37:68 | ControlFlowNode for Subscript | -| sendgrid_via_mail_send_post_request_body_bad.py:3:19:3:25 | ControlFlowNode for ImportMember | sendgrid_via_mail_send_post_request_body_bad.py:3:19:3:25 | ControlFlowNode for request | -| sendgrid_via_mail_send_post_request_body_bad.py:3:19:3:25 | ControlFlowNode for request | sendgrid_via_mail_send_post_request_body_bad.py:16:51:16:57 | ControlFlowNode for request | -| sendgrid_via_mail_send_post_request_body_bad.py:3:19:3:25 | ControlFlowNode for request | sendgrid_via_mail_send_post_request_body_bad.py:27:50:27:56 | ControlFlowNode for request | -| sendgrid_via_mail_send_post_request_body_bad.py:3:19:3:25 | ControlFlowNode for request | sendgrid_via_mail_send_post_request_body_bad.py:41:50:41:56 | ControlFlowNode for request | -| sendgrid_via_mail_send_post_request_body_bad.py:16:51:16:57 | ControlFlowNode for request | sendgrid_via_mail_send_post_request_body_bad.py:16:26:16:79 | ControlFlowNode for Attribute() | -| sendgrid_via_mail_send_post_request_body_bad.py:16:51:16:57 | ControlFlowNode for request | sendgrid_via_mail_send_post_request_body_bad.py:27:25:27:77 | ControlFlowNode for Attribute() | -| sendgrid_via_mail_send_post_request_body_bad.py:16:51:16:57 | ControlFlowNode for request | sendgrid_via_mail_send_post_request_body_bad.py:41:25:41:79 | ControlFlowNode for Attribute() | -| sendgrid_via_mail_send_post_request_body_bad.py:27:50:27:56 | ControlFlowNode for request | sendgrid_via_mail_send_post_request_body_bad.py:27:25:27:77 | ControlFlowNode for Attribute() | -| sendgrid_via_mail_send_post_request_body_bad.py:27:50:27:56 | ControlFlowNode for request | sendgrid_via_mail_send_post_request_body_bad.py:41:25:41:79 | ControlFlowNode for Attribute() | -| sendgrid_via_mail_send_post_request_body_bad.py:41:50:41:56 | ControlFlowNode for request | sendgrid_via_mail_send_post_request_body_bad.py:41:25:41:79 | ControlFlowNode for Attribute() | -| smtplib_bad_subparts.py:2:26:2:32 | ControlFlowNode for ImportMember | smtplib_bad_subparts.py:2:26:2:32 | ControlFlowNode for request | -| smtplib_bad_subparts.py:2:26:2:32 | ControlFlowNode for request | smtplib_bad_subparts.py:17:12:17:18 | ControlFlowNode for request | -| smtplib_bad_subparts.py:17:5:17:8 | ControlFlowNode for name | smtplib_bad_subparts.py:20:5:20:8 | ControlFlowNode for html | -| smtplib_bad_subparts.py:17:12:17:18 | ControlFlowNode for request | smtplib_bad_subparts.py:17:5:17:8 | ControlFlowNode for name | -| smtplib_bad_subparts.py:20:5:20:8 | ControlFlowNode for html | smtplib_bad_subparts.py:24:22:24:25 | ControlFlowNode for html | -| smtplib_bad_via_attach.py:2:26:2:32 | ControlFlowNode for ImportMember | smtplib_bad_via_attach.py:2:26:2:32 | ControlFlowNode for request | -| smtplib_bad_via_attach.py:2:26:2:32 | ControlFlowNode for request | smtplib_bad_via_attach.py:20:12:20:18 | ControlFlowNode for request | -| smtplib_bad_via_attach.py:20:5:20:8 | ControlFlowNode for name | smtplib_bad_via_attach.py:23:5:23:8 | ControlFlowNode for html | -| smtplib_bad_via_attach.py:20:12:20:18 | ControlFlowNode for request | smtplib_bad_via_attach.py:20:5:20:8 | ControlFlowNode for name | -| smtplib_bad_via_attach.py:23:5:23:8 | ControlFlowNode for html | smtplib_bad_via_attach.py:27:22:27:25 | ControlFlowNode for html | +| flask_mail.py:1:19:1:25 | ControlFlowNode for ImportMember | flask_mail.py:1:19:1:25 | ControlFlowNode for request | provenance | | +| flask_mail.py:1:19:1:25 | ControlFlowNode for request | flask_mail.py:13:22:13:28 | ControlFlowNode for request | provenance | | +| flask_mail.py:1:19:1:25 | ControlFlowNode for request | flask_mail.py:18:14:18:20 | ControlFlowNode for request | provenance | | +| flask_mail.py:1:19:1:25 | ControlFlowNode for request | flask_mail.py:31:24:31:30 | ControlFlowNode for request | provenance | | +| flask_mail.py:13:22:13:28 | ControlFlowNode for request | flask_mail.py:13:22:13:41 | ControlFlowNode for Subscript | provenance | | +| flask_mail.py:13:22:13:28 | ControlFlowNode for request | flask_mail.py:18:14:18:33 | ControlFlowNode for Subscript | provenance | | +| flask_mail.py:18:14:18:20 | ControlFlowNode for request | flask_mail.py:18:14:18:33 | ControlFlowNode for Subscript | provenance | | +| flask_mail.py:31:24:31:30 | ControlFlowNode for request | flask_mail.py:31:24:31:43 | ControlFlowNode for Subscript | provenance | | +| sendgrid_mail.py:1:19:1:25 | ControlFlowNode for ImportMember | sendgrid_mail.py:1:19:1:25 | ControlFlowNode for request | provenance | | +| sendgrid_mail.py:1:19:1:25 | ControlFlowNode for request | sendgrid_mail.py:14:22:14:28 | ControlFlowNode for request | provenance | | +| sendgrid_mail.py:1:19:1:25 | ControlFlowNode for request | sendgrid_mail.py:26:34:26:40 | ControlFlowNode for request | provenance | | +| sendgrid_mail.py:1:19:1:25 | ControlFlowNode for request | sendgrid_mail.py:37:41:37:47 | ControlFlowNode for request | provenance | | +| sendgrid_mail.py:14:22:14:28 | ControlFlowNode for request | sendgrid_mail.py:14:22:14:49 | ControlFlowNode for Subscript | provenance | | +| sendgrid_mail.py:26:34:26:40 | ControlFlowNode for request | sendgrid_mail.py:26:34:26:61 | ControlFlowNode for Subscript | provenance | | +| sendgrid_mail.py:26:34:26:61 | ControlFlowNode for Subscript | sendgrid_mail.py:26:22:26:62 | ControlFlowNode for HtmlContent() | provenance | | +| sendgrid_mail.py:37:41:37:47 | ControlFlowNode for request | sendgrid_mail.py:37:41:37:68 | ControlFlowNode for Subscript | provenance | | +| sendgrid_via_mail_send_post_request_body_bad.py:3:19:3:25 | ControlFlowNode for ImportMember | sendgrid_via_mail_send_post_request_body_bad.py:3:19:3:25 | ControlFlowNode for request | provenance | | +| sendgrid_via_mail_send_post_request_body_bad.py:3:19:3:25 | ControlFlowNode for request | sendgrid_via_mail_send_post_request_body_bad.py:16:51:16:57 | ControlFlowNode for request | provenance | | +| sendgrid_via_mail_send_post_request_body_bad.py:3:19:3:25 | ControlFlowNode for request | sendgrid_via_mail_send_post_request_body_bad.py:27:50:27:56 | ControlFlowNode for request | provenance | | +| sendgrid_via_mail_send_post_request_body_bad.py:3:19:3:25 | ControlFlowNode for request | sendgrid_via_mail_send_post_request_body_bad.py:41:50:41:56 | ControlFlowNode for request | provenance | | +| sendgrid_via_mail_send_post_request_body_bad.py:16:51:16:57 | ControlFlowNode for request | sendgrid_via_mail_send_post_request_body_bad.py:16:26:16:79 | ControlFlowNode for Attribute() | provenance | | +| sendgrid_via_mail_send_post_request_body_bad.py:16:51:16:57 | ControlFlowNode for request | sendgrid_via_mail_send_post_request_body_bad.py:27:25:27:77 | ControlFlowNode for Attribute() | provenance | | +| sendgrid_via_mail_send_post_request_body_bad.py:16:51:16:57 | ControlFlowNode for request | sendgrid_via_mail_send_post_request_body_bad.py:41:25:41:79 | ControlFlowNode for Attribute() | provenance | | +| sendgrid_via_mail_send_post_request_body_bad.py:27:50:27:56 | ControlFlowNode for request | sendgrid_via_mail_send_post_request_body_bad.py:27:25:27:77 | ControlFlowNode for Attribute() | provenance | | +| sendgrid_via_mail_send_post_request_body_bad.py:27:50:27:56 | ControlFlowNode for request | sendgrid_via_mail_send_post_request_body_bad.py:41:25:41:79 | ControlFlowNode for Attribute() | provenance | | +| sendgrid_via_mail_send_post_request_body_bad.py:41:50:41:56 | ControlFlowNode for request | sendgrid_via_mail_send_post_request_body_bad.py:41:25:41:79 | ControlFlowNode for Attribute() | provenance | | +| smtplib_bad_subparts.py:2:26:2:32 | ControlFlowNode for ImportMember | smtplib_bad_subparts.py:2:26:2:32 | ControlFlowNode for request | provenance | | +| smtplib_bad_subparts.py:2:26:2:32 | ControlFlowNode for request | smtplib_bad_subparts.py:17:12:17:18 | ControlFlowNode for request | provenance | | +| smtplib_bad_subparts.py:17:5:17:8 | ControlFlowNode for name | smtplib_bad_subparts.py:20:5:20:8 | ControlFlowNode for html | provenance | | +| smtplib_bad_subparts.py:17:12:17:18 | ControlFlowNode for request | smtplib_bad_subparts.py:17:5:17:8 | ControlFlowNode for name | provenance | | +| smtplib_bad_subparts.py:20:5:20:8 | ControlFlowNode for html | smtplib_bad_subparts.py:24:22:24:25 | ControlFlowNode for html | provenance | | +| smtplib_bad_via_attach.py:2:26:2:32 | ControlFlowNode for ImportMember | smtplib_bad_via_attach.py:2:26:2:32 | ControlFlowNode for request | provenance | | +| smtplib_bad_via_attach.py:2:26:2:32 | ControlFlowNode for request | smtplib_bad_via_attach.py:20:12:20:18 | ControlFlowNode for request | provenance | | +| smtplib_bad_via_attach.py:20:5:20:8 | ControlFlowNode for name | smtplib_bad_via_attach.py:23:5:23:8 | ControlFlowNode for html | provenance | | +| smtplib_bad_via_attach.py:20:12:20:18 | ControlFlowNode for request | smtplib_bad_via_attach.py:20:5:20:8 | ControlFlowNode for name | provenance | | +| smtplib_bad_via_attach.py:23:5:23:8 | ControlFlowNode for html | smtplib_bad_via_attach.py:27:22:27:25 | ControlFlowNode for html | provenance | | nodes | django_mail.py:14:48:14:82 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | | django_mail.py:23:30:23:64 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | diff --git a/python/ql/test/experimental/query-tests/Security/CWE-091-XsltInjection/XsltInjection.expected b/python/ql/test/experimental/query-tests/Security/CWE-091-XsltInjection/XsltInjection.expected index fba2ae1acdc7..5f899a4d1a12 100644 --- a/python/ql/test/experimental/query-tests/Security/CWE-091-XsltInjection/XsltInjection.expected +++ b/python/ql/test/experimental/query-tests/Security/CWE-091-XsltInjection/XsltInjection.expected @@ -1,55 +1,55 @@ edges -| xslt.py:3:26:3:32 | ControlFlowNode for ImportMember | xslt.py:3:26:3:32 | ControlFlowNode for request | -| xslt.py:3:26:3:32 | ControlFlowNode for request | xslt.py:10:17:10:23 | ControlFlowNode for request | -| xslt.py:10:5:10:13 | ControlFlowNode for xsltQuery | xslt.py:11:27:11:35 | ControlFlowNode for xsltQuery | -| xslt.py:10:17:10:23 | ControlFlowNode for request | xslt.py:10:17:10:28 | ControlFlowNode for Attribute | -| xslt.py:10:17:10:28 | ControlFlowNode for Attribute | xslt.py:10:17:10:43 | ControlFlowNode for Attribute() | -| xslt.py:10:17:10:43 | ControlFlowNode for Attribute() | xslt.py:10:5:10:13 | ControlFlowNode for xsltQuery | -| xslt.py:11:5:11:13 | ControlFlowNode for xslt_root | xslt.py:14:29:14:37 | ControlFlowNode for xslt_root | -| xslt.py:11:17:11:36 | ControlFlowNode for Attribute() | xslt.py:11:5:11:13 | ControlFlowNode for xslt_root | -| xslt.py:11:27:11:35 | ControlFlowNode for xsltQuery | xslt.py:11:17:11:36 | ControlFlowNode for Attribute() | -| xsltInjection.py:3:26:3:32 | ControlFlowNode for ImportMember | xsltInjection.py:3:26:3:32 | ControlFlowNode for request | -| xsltInjection.py:3:26:3:32 | ControlFlowNode for request | xsltInjection.py:10:17:10:23 | ControlFlowNode for request | -| xsltInjection.py:3:26:3:32 | ControlFlowNode for request | xsltInjection.py:17:17:17:23 | ControlFlowNode for request | -| xsltInjection.py:3:26:3:32 | ControlFlowNode for request | xsltInjection.py:26:17:26:23 | ControlFlowNode for request | -| xsltInjection.py:3:26:3:32 | ControlFlowNode for request | xsltInjection.py:35:17:35:23 | ControlFlowNode for request | -| xsltInjection.py:3:26:3:32 | ControlFlowNode for request | xsltInjection.py:44:17:44:23 | ControlFlowNode for request | -| xsltInjection.py:10:5:10:13 | ControlFlowNode for xsltQuery | xsltInjection.py:11:27:11:35 | ControlFlowNode for xsltQuery | -| xsltInjection.py:10:17:10:23 | ControlFlowNode for request | xsltInjection.py:10:17:10:28 | ControlFlowNode for Attribute | -| xsltInjection.py:10:17:10:28 | ControlFlowNode for Attribute | xsltInjection.py:10:17:10:43 | ControlFlowNode for Attribute() | -| xsltInjection.py:10:17:10:43 | ControlFlowNode for Attribute() | xsltInjection.py:10:5:10:13 | ControlFlowNode for xsltQuery | -| xsltInjection.py:11:5:11:13 | ControlFlowNode for xslt_root | xsltInjection.py:12:28:12:36 | ControlFlowNode for xslt_root | -| xsltInjection.py:11:17:11:36 | ControlFlowNode for Attribute() | xsltInjection.py:11:5:11:13 | ControlFlowNode for xslt_root | -| xsltInjection.py:11:27:11:35 | ControlFlowNode for xsltQuery | xsltInjection.py:11:17:11:36 | ControlFlowNode for Attribute() | -| xsltInjection.py:17:5:17:13 | ControlFlowNode for xsltQuery | xsltInjection.py:18:27:18:35 | ControlFlowNode for xsltQuery | -| xsltInjection.py:17:17:17:23 | ControlFlowNode for request | xsltInjection.py:17:17:17:28 | ControlFlowNode for Attribute | -| xsltInjection.py:17:17:17:28 | ControlFlowNode for Attribute | xsltInjection.py:17:17:17:43 | ControlFlowNode for Attribute() | -| xsltInjection.py:17:17:17:43 | ControlFlowNode for Attribute() | xsltInjection.py:17:5:17:13 | ControlFlowNode for xsltQuery | -| xsltInjection.py:18:5:18:13 | ControlFlowNode for xslt_root | xsltInjection.py:21:29:21:37 | ControlFlowNode for xslt_root | -| xsltInjection.py:18:17:18:36 | ControlFlowNode for Attribute() | xsltInjection.py:18:5:18:13 | ControlFlowNode for xslt_root | -| xsltInjection.py:18:27:18:35 | ControlFlowNode for xsltQuery | xsltInjection.py:18:17:18:36 | ControlFlowNode for Attribute() | -| xsltInjection.py:26:5:26:13 | ControlFlowNode for xsltQuery | xsltInjection.py:27:27:27:35 | ControlFlowNode for xsltQuery | -| xsltInjection.py:26:17:26:23 | ControlFlowNode for request | xsltInjection.py:26:17:26:28 | ControlFlowNode for Attribute | -| xsltInjection.py:26:17:26:28 | ControlFlowNode for Attribute | xsltInjection.py:26:17:26:43 | ControlFlowNode for Attribute() | -| xsltInjection.py:26:17:26:43 | ControlFlowNode for Attribute() | xsltInjection.py:26:5:26:13 | ControlFlowNode for xsltQuery | -| xsltInjection.py:27:5:27:13 | ControlFlowNode for xslt_root | xsltInjection.py:31:24:31:32 | ControlFlowNode for xslt_root | -| xsltInjection.py:27:17:27:36 | ControlFlowNode for Attribute() | xsltInjection.py:27:5:27:13 | ControlFlowNode for xslt_root | -| xsltInjection.py:27:27:27:35 | ControlFlowNode for xsltQuery | xsltInjection.py:27:17:27:36 | ControlFlowNode for Attribute() | -| xsltInjection.py:35:5:35:13 | ControlFlowNode for xsltQuery | xsltInjection.py:36:34:36:42 | ControlFlowNode for xsltQuery | -| xsltInjection.py:35:17:35:23 | ControlFlowNode for request | xsltInjection.py:35:17:35:28 | ControlFlowNode for Attribute | -| xsltInjection.py:35:17:35:28 | ControlFlowNode for Attribute | xsltInjection.py:35:17:35:43 | ControlFlowNode for Attribute() | -| xsltInjection.py:35:17:35:43 | ControlFlowNode for Attribute() | xsltInjection.py:35:5:35:13 | ControlFlowNode for xsltQuery | -| xsltInjection.py:36:5:36:13 | ControlFlowNode for xslt_root | xsltInjection.py:40:24:40:32 | ControlFlowNode for xslt_root | -| xsltInjection.py:36:17:36:43 | ControlFlowNode for Attribute() | xsltInjection.py:36:5:36:13 | ControlFlowNode for xslt_root | -| xsltInjection.py:36:34:36:42 | ControlFlowNode for xsltQuery | xsltInjection.py:36:17:36:43 | ControlFlowNode for Attribute() | -| xsltInjection.py:44:5:44:13 | ControlFlowNode for xsltQuery | xsltInjection.py:45:5:45:15 | ControlFlowNode for xsltStrings | -| xsltInjection.py:44:17:44:23 | ControlFlowNode for request | xsltInjection.py:44:17:44:28 | ControlFlowNode for Attribute | -| xsltInjection.py:44:17:44:28 | ControlFlowNode for Attribute | xsltInjection.py:44:17:44:43 | ControlFlowNode for Attribute() | -| xsltInjection.py:44:17:44:43 | ControlFlowNode for Attribute() | xsltInjection.py:44:5:44:13 | ControlFlowNode for xsltQuery | -| xsltInjection.py:45:5:45:15 | ControlFlowNode for xsltStrings | xsltInjection.py:46:38:46:48 | ControlFlowNode for xsltStrings | -| xsltInjection.py:46:5:46:13 | ControlFlowNode for xslt_root | xsltInjection.py:50:24:50:32 | ControlFlowNode for xslt_root | -| xsltInjection.py:46:17:46:49 | ControlFlowNode for Attribute() | xsltInjection.py:46:5:46:13 | ControlFlowNode for xslt_root | -| xsltInjection.py:46:38:46:48 | ControlFlowNode for xsltStrings | xsltInjection.py:46:17:46:49 | ControlFlowNode for Attribute() | +| xslt.py:3:26:3:32 | ControlFlowNode for ImportMember | xslt.py:3:26:3:32 | ControlFlowNode for request | provenance | | +| xslt.py:3:26:3:32 | ControlFlowNode for request | xslt.py:10:17:10:23 | ControlFlowNode for request | provenance | | +| xslt.py:10:5:10:13 | ControlFlowNode for xsltQuery | xslt.py:11:27:11:35 | ControlFlowNode for xsltQuery | provenance | | +| xslt.py:10:17:10:23 | ControlFlowNode for request | xslt.py:10:17:10:28 | ControlFlowNode for Attribute | provenance | | +| xslt.py:10:17:10:28 | ControlFlowNode for Attribute | xslt.py:10:17:10:43 | ControlFlowNode for Attribute() | provenance | | +| xslt.py:10:17:10:43 | ControlFlowNode for Attribute() | xslt.py:10:5:10:13 | ControlFlowNode for xsltQuery | provenance | | +| xslt.py:11:5:11:13 | ControlFlowNode for xslt_root | xslt.py:14:29:14:37 | ControlFlowNode for xslt_root | provenance | | +| xslt.py:11:17:11:36 | ControlFlowNode for Attribute() | xslt.py:11:5:11:13 | ControlFlowNode for xslt_root | provenance | | +| xslt.py:11:27:11:35 | ControlFlowNode for xsltQuery | xslt.py:11:17:11:36 | ControlFlowNode for Attribute() | provenance | | +| xsltInjection.py:3:26:3:32 | ControlFlowNode for ImportMember | xsltInjection.py:3:26:3:32 | ControlFlowNode for request | provenance | | +| xsltInjection.py:3:26:3:32 | ControlFlowNode for request | xsltInjection.py:10:17:10:23 | ControlFlowNode for request | provenance | | +| xsltInjection.py:3:26:3:32 | ControlFlowNode for request | xsltInjection.py:17:17:17:23 | ControlFlowNode for request | provenance | | +| xsltInjection.py:3:26:3:32 | ControlFlowNode for request | xsltInjection.py:26:17:26:23 | ControlFlowNode for request | provenance | | +| xsltInjection.py:3:26:3:32 | ControlFlowNode for request | xsltInjection.py:35:17:35:23 | ControlFlowNode for request | provenance | | +| xsltInjection.py:3:26:3:32 | ControlFlowNode for request | xsltInjection.py:44:17:44:23 | ControlFlowNode for request | provenance | | +| xsltInjection.py:10:5:10:13 | ControlFlowNode for xsltQuery | xsltInjection.py:11:27:11:35 | ControlFlowNode for xsltQuery | provenance | | +| xsltInjection.py:10:17:10:23 | ControlFlowNode for request | xsltInjection.py:10:17:10:28 | ControlFlowNode for Attribute | provenance | | +| xsltInjection.py:10:17:10:28 | ControlFlowNode for Attribute | xsltInjection.py:10:17:10:43 | ControlFlowNode for Attribute() | provenance | | +| xsltInjection.py:10:17:10:43 | ControlFlowNode for Attribute() | xsltInjection.py:10:5:10:13 | ControlFlowNode for xsltQuery | provenance | | +| xsltInjection.py:11:5:11:13 | ControlFlowNode for xslt_root | xsltInjection.py:12:28:12:36 | ControlFlowNode for xslt_root | provenance | | +| xsltInjection.py:11:17:11:36 | ControlFlowNode for Attribute() | xsltInjection.py:11:5:11:13 | ControlFlowNode for xslt_root | provenance | | +| xsltInjection.py:11:27:11:35 | ControlFlowNode for xsltQuery | xsltInjection.py:11:17:11:36 | ControlFlowNode for Attribute() | provenance | | +| xsltInjection.py:17:5:17:13 | ControlFlowNode for xsltQuery | xsltInjection.py:18:27:18:35 | ControlFlowNode for xsltQuery | provenance | | +| xsltInjection.py:17:17:17:23 | ControlFlowNode for request | xsltInjection.py:17:17:17:28 | ControlFlowNode for Attribute | provenance | | +| xsltInjection.py:17:17:17:28 | ControlFlowNode for Attribute | xsltInjection.py:17:17:17:43 | ControlFlowNode for Attribute() | provenance | | +| xsltInjection.py:17:17:17:43 | ControlFlowNode for Attribute() | xsltInjection.py:17:5:17:13 | ControlFlowNode for xsltQuery | provenance | | +| xsltInjection.py:18:5:18:13 | ControlFlowNode for xslt_root | xsltInjection.py:21:29:21:37 | ControlFlowNode for xslt_root | provenance | | +| xsltInjection.py:18:17:18:36 | ControlFlowNode for Attribute() | xsltInjection.py:18:5:18:13 | ControlFlowNode for xslt_root | provenance | | +| xsltInjection.py:18:27:18:35 | ControlFlowNode for xsltQuery | xsltInjection.py:18:17:18:36 | ControlFlowNode for Attribute() | provenance | | +| xsltInjection.py:26:5:26:13 | ControlFlowNode for xsltQuery | xsltInjection.py:27:27:27:35 | ControlFlowNode for xsltQuery | provenance | | +| xsltInjection.py:26:17:26:23 | ControlFlowNode for request | xsltInjection.py:26:17:26:28 | ControlFlowNode for Attribute | provenance | | +| xsltInjection.py:26:17:26:28 | ControlFlowNode for Attribute | xsltInjection.py:26:17:26:43 | ControlFlowNode for Attribute() | provenance | | +| xsltInjection.py:26:17:26:43 | ControlFlowNode for Attribute() | xsltInjection.py:26:5:26:13 | ControlFlowNode for xsltQuery | provenance | | +| xsltInjection.py:27:5:27:13 | ControlFlowNode for xslt_root | xsltInjection.py:31:24:31:32 | ControlFlowNode for xslt_root | provenance | | +| xsltInjection.py:27:17:27:36 | ControlFlowNode for Attribute() | xsltInjection.py:27:5:27:13 | ControlFlowNode for xslt_root | provenance | | +| xsltInjection.py:27:27:27:35 | ControlFlowNode for xsltQuery | xsltInjection.py:27:17:27:36 | ControlFlowNode for Attribute() | provenance | | +| xsltInjection.py:35:5:35:13 | ControlFlowNode for xsltQuery | xsltInjection.py:36:34:36:42 | ControlFlowNode for xsltQuery | provenance | | +| xsltInjection.py:35:17:35:23 | ControlFlowNode for request | xsltInjection.py:35:17:35:28 | ControlFlowNode for Attribute | provenance | | +| xsltInjection.py:35:17:35:28 | ControlFlowNode for Attribute | xsltInjection.py:35:17:35:43 | ControlFlowNode for Attribute() | provenance | | +| xsltInjection.py:35:17:35:43 | ControlFlowNode for Attribute() | xsltInjection.py:35:5:35:13 | ControlFlowNode for xsltQuery | provenance | | +| xsltInjection.py:36:5:36:13 | ControlFlowNode for xslt_root | xsltInjection.py:40:24:40:32 | ControlFlowNode for xslt_root | provenance | | +| xsltInjection.py:36:17:36:43 | ControlFlowNode for Attribute() | xsltInjection.py:36:5:36:13 | ControlFlowNode for xslt_root | provenance | | +| xsltInjection.py:36:34:36:42 | ControlFlowNode for xsltQuery | xsltInjection.py:36:17:36:43 | ControlFlowNode for Attribute() | provenance | | +| xsltInjection.py:44:5:44:13 | ControlFlowNode for xsltQuery | xsltInjection.py:45:5:45:15 | ControlFlowNode for xsltStrings | provenance | | +| xsltInjection.py:44:17:44:23 | ControlFlowNode for request | xsltInjection.py:44:17:44:28 | ControlFlowNode for Attribute | provenance | | +| xsltInjection.py:44:17:44:28 | ControlFlowNode for Attribute | xsltInjection.py:44:17:44:43 | ControlFlowNode for Attribute() | provenance | | +| xsltInjection.py:44:17:44:43 | ControlFlowNode for Attribute() | xsltInjection.py:44:5:44:13 | ControlFlowNode for xsltQuery | provenance | | +| xsltInjection.py:45:5:45:15 | ControlFlowNode for xsltStrings | xsltInjection.py:46:38:46:48 | ControlFlowNode for xsltStrings | provenance | | +| xsltInjection.py:46:5:46:13 | ControlFlowNode for xslt_root | xsltInjection.py:50:24:50:32 | ControlFlowNode for xslt_root | provenance | | +| xsltInjection.py:46:17:46:49 | ControlFlowNode for Attribute() | xsltInjection.py:46:5:46:13 | ControlFlowNode for xslt_root | provenance | | +| xsltInjection.py:46:38:46:48 | ControlFlowNode for xsltStrings | xsltInjection.py:46:17:46:49 | ControlFlowNode for Attribute() | provenance | | nodes | xslt.py:3:26:3:32 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | | xslt.py:3:26:3:32 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | diff --git a/python/ql/test/experimental/query-tests/Security/CWE-113/HeaderInjection.expected b/python/ql/test/experimental/query-tests/Security/CWE-113/HeaderInjection.expected index 55a7c5de9998..67144ed11995 100644 --- a/python/ql/test/experimental/query-tests/Security/CWE-113/HeaderInjection.expected +++ b/python/ql/test/experimental/query-tests/Security/CWE-113/HeaderInjection.expected @@ -1,21 +1,21 @@ edges -| django_bad.py:5:5:5:14 | ControlFlowNode for rfs_header | django_bad.py:7:40:7:49 | ControlFlowNode for rfs_header | -| django_bad.py:5:18:5:58 | ControlFlowNode for Attribute() | django_bad.py:5:5:5:14 | ControlFlowNode for rfs_header | -| django_bad.py:12:5:12:14 | ControlFlowNode for rfs_header | django_bad.py:14:30:14:39 | ControlFlowNode for rfs_header | -| django_bad.py:12:18:12:58 | ControlFlowNode for Attribute() | django_bad.py:12:5:12:14 | ControlFlowNode for rfs_header | -| flask_bad.py:1:29:1:35 | ControlFlowNode for ImportMember | flask_bad.py:1:29:1:35 | ControlFlowNode for request | -| flask_bad.py:1:29:1:35 | ControlFlowNode for request | flask_bad.py:9:18:9:24 | ControlFlowNode for request | -| flask_bad.py:1:29:1:35 | ControlFlowNode for request | flask_bad.py:19:18:19:24 | ControlFlowNode for request | -| flask_bad.py:1:29:1:35 | ControlFlowNode for request | flask_bad.py:27:18:27:24 | ControlFlowNode for request | -| flask_bad.py:1:29:1:35 | ControlFlowNode for request | flask_bad.py:35:18:35:24 | ControlFlowNode for request | -| flask_bad.py:9:5:9:14 | ControlFlowNode for rfs_header | flask_bad.py:12:31:12:40 | ControlFlowNode for rfs_header | -| flask_bad.py:9:18:9:24 | ControlFlowNode for request | flask_bad.py:9:5:9:14 | ControlFlowNode for rfs_header | -| flask_bad.py:19:5:19:14 | ControlFlowNode for rfs_header | flask_bad.py:21:38:21:47 | ControlFlowNode for rfs_header | -| flask_bad.py:19:18:19:24 | ControlFlowNode for request | flask_bad.py:19:5:19:14 | ControlFlowNode for rfs_header | -| flask_bad.py:27:5:27:14 | ControlFlowNode for rfs_header | flask_bad.py:29:34:29:43 | ControlFlowNode for rfs_header | -| flask_bad.py:27:18:27:24 | ControlFlowNode for request | flask_bad.py:27:5:27:14 | ControlFlowNode for rfs_header | -| flask_bad.py:35:5:35:14 | ControlFlowNode for rfs_header | flask_bad.py:38:24:38:33 | ControlFlowNode for rfs_header | -| flask_bad.py:35:18:35:24 | ControlFlowNode for request | flask_bad.py:35:5:35:14 | ControlFlowNode for rfs_header | +| django_bad.py:5:5:5:14 | ControlFlowNode for rfs_header | django_bad.py:7:40:7:49 | ControlFlowNode for rfs_header | provenance | | +| django_bad.py:5:18:5:58 | ControlFlowNode for Attribute() | django_bad.py:5:5:5:14 | ControlFlowNode for rfs_header | provenance | | +| django_bad.py:12:5:12:14 | ControlFlowNode for rfs_header | django_bad.py:14:30:14:39 | ControlFlowNode for rfs_header | provenance | | +| django_bad.py:12:18:12:58 | ControlFlowNode for Attribute() | django_bad.py:12:5:12:14 | ControlFlowNode for rfs_header | provenance | | +| flask_bad.py:1:29:1:35 | ControlFlowNode for ImportMember | flask_bad.py:1:29:1:35 | ControlFlowNode for request | provenance | | +| flask_bad.py:1:29:1:35 | ControlFlowNode for request | flask_bad.py:9:18:9:24 | ControlFlowNode for request | provenance | | +| flask_bad.py:1:29:1:35 | ControlFlowNode for request | flask_bad.py:19:18:19:24 | ControlFlowNode for request | provenance | | +| flask_bad.py:1:29:1:35 | ControlFlowNode for request | flask_bad.py:27:18:27:24 | ControlFlowNode for request | provenance | | +| flask_bad.py:1:29:1:35 | ControlFlowNode for request | flask_bad.py:35:18:35:24 | ControlFlowNode for request | provenance | | +| flask_bad.py:9:5:9:14 | ControlFlowNode for rfs_header | flask_bad.py:12:31:12:40 | ControlFlowNode for rfs_header | provenance | | +| flask_bad.py:9:18:9:24 | ControlFlowNode for request | flask_bad.py:9:5:9:14 | ControlFlowNode for rfs_header | provenance | | +| flask_bad.py:19:5:19:14 | ControlFlowNode for rfs_header | flask_bad.py:21:38:21:47 | ControlFlowNode for rfs_header | provenance | | +| flask_bad.py:19:18:19:24 | ControlFlowNode for request | flask_bad.py:19:5:19:14 | ControlFlowNode for rfs_header | provenance | | +| flask_bad.py:27:5:27:14 | ControlFlowNode for rfs_header | flask_bad.py:29:34:29:43 | ControlFlowNode for rfs_header | provenance | | +| flask_bad.py:27:18:27:24 | ControlFlowNode for request | flask_bad.py:27:5:27:14 | ControlFlowNode for rfs_header | provenance | | +| flask_bad.py:35:5:35:14 | ControlFlowNode for rfs_header | flask_bad.py:38:24:38:33 | ControlFlowNode for rfs_header | provenance | | +| flask_bad.py:35:18:35:24 | ControlFlowNode for request | flask_bad.py:35:5:35:14 | ControlFlowNode for rfs_header | provenance | | nodes | django_bad.py:5:5:5:14 | ControlFlowNode for rfs_header | semmle.label | ControlFlowNode for rfs_header | | django_bad.py:5:18:5:58 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | diff --git a/python/ql/test/experimental/query-tests/Security/CWE-1236/CsvInjection.expected b/python/ql/test/experimental/query-tests/Security/CWE-1236/CsvInjection.expected index 2fb925fb6645..170dda187e93 100644 --- a/python/ql/test/experimental/query-tests/Security/CWE-1236/CsvInjection.expected +++ b/python/ql/test/experimental/query-tests/Security/CWE-1236/CsvInjection.expected @@ -1,16 +1,16 @@ edges -| csv_bad.py:9:19:9:25 | ControlFlowNode for ImportMember | csv_bad.py:9:19:9:25 | ControlFlowNode for request | -| csv_bad.py:9:19:9:25 | ControlFlowNode for request | csv_bad.py:16:16:16:22 | ControlFlowNode for request | -| csv_bad.py:9:19:9:25 | ControlFlowNode for request | csv_bad.py:24:16:24:22 | ControlFlowNode for request | -| csv_bad.py:16:5:16:12 | ControlFlowNode for csv_data | csv_bad.py:18:24:18:31 | ControlFlowNode for csv_data | -| csv_bad.py:16:5:16:12 | ControlFlowNode for csv_data | csv_bad.py:19:25:19:32 | ControlFlowNode for csv_data | -| csv_bad.py:16:16:16:22 | ControlFlowNode for request | csv_bad.py:16:16:16:27 | ControlFlowNode for Attribute | -| csv_bad.py:16:16:16:27 | ControlFlowNode for Attribute | csv_bad.py:16:16:16:38 | ControlFlowNode for Attribute() | -| csv_bad.py:16:16:16:38 | ControlFlowNode for Attribute() | csv_bad.py:16:5:16:12 | ControlFlowNode for csv_data | -| csv_bad.py:24:5:24:12 | ControlFlowNode for csv_data | csv_bad.py:25:46:25:53 | ControlFlowNode for csv_data | -| csv_bad.py:24:16:24:22 | ControlFlowNode for request | csv_bad.py:24:16:24:27 | ControlFlowNode for Attribute | -| csv_bad.py:24:16:24:27 | ControlFlowNode for Attribute | csv_bad.py:24:16:24:38 | ControlFlowNode for Attribute() | -| csv_bad.py:24:16:24:38 | ControlFlowNode for Attribute() | csv_bad.py:24:5:24:12 | ControlFlowNode for csv_data | +| csv_bad.py:9:19:9:25 | ControlFlowNode for ImportMember | csv_bad.py:9:19:9:25 | ControlFlowNode for request | provenance | | +| csv_bad.py:9:19:9:25 | ControlFlowNode for request | csv_bad.py:16:16:16:22 | ControlFlowNode for request | provenance | | +| csv_bad.py:9:19:9:25 | ControlFlowNode for request | csv_bad.py:24:16:24:22 | ControlFlowNode for request | provenance | | +| csv_bad.py:16:5:16:12 | ControlFlowNode for csv_data | csv_bad.py:18:24:18:31 | ControlFlowNode for csv_data | provenance | | +| csv_bad.py:16:5:16:12 | ControlFlowNode for csv_data | csv_bad.py:19:25:19:32 | ControlFlowNode for csv_data | provenance | | +| csv_bad.py:16:16:16:22 | ControlFlowNode for request | csv_bad.py:16:16:16:27 | ControlFlowNode for Attribute | provenance | | +| csv_bad.py:16:16:16:27 | ControlFlowNode for Attribute | csv_bad.py:16:16:16:38 | ControlFlowNode for Attribute() | provenance | | +| csv_bad.py:16:16:16:38 | ControlFlowNode for Attribute() | csv_bad.py:16:5:16:12 | ControlFlowNode for csv_data | provenance | | +| csv_bad.py:24:5:24:12 | ControlFlowNode for csv_data | csv_bad.py:25:46:25:53 | ControlFlowNode for csv_data | provenance | | +| csv_bad.py:24:16:24:22 | ControlFlowNode for request | csv_bad.py:24:16:24:27 | ControlFlowNode for Attribute | provenance | | +| csv_bad.py:24:16:24:27 | ControlFlowNode for Attribute | csv_bad.py:24:16:24:38 | ControlFlowNode for Attribute() | provenance | | +| csv_bad.py:24:16:24:38 | ControlFlowNode for Attribute() | csv_bad.py:24:5:24:12 | ControlFlowNode for csv_data | provenance | | nodes | csv_bad.py:9:19:9:25 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | | csv_bad.py:9:19:9:25 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | diff --git a/python/ql/test/experimental/query-tests/Security/CWE-176/UnicodeBypassValidation.expected b/python/ql/test/experimental/query-tests/Security/CWE-176/UnicodeBypassValidation.expected index 24f62f1a1077..aabdf46044eb 100644 --- a/python/ql/test/experimental/query-tests/Security/CWE-176/UnicodeBypassValidation.expected +++ b/python/ql/test/experimental/query-tests/Security/CWE-176/UnicodeBypassValidation.expected @@ -1,17 +1,17 @@ edges -| samples.py:2:26:2:32 | ControlFlowNode for ImportMember | samples.py:2:26:2:32 | ControlFlowNode for request | -| samples.py:2:26:2:32 | ControlFlowNode for request | samples.py:9:25:9:31 | ControlFlowNode for request | -| samples.py:2:26:2:32 | ControlFlowNode for request | samples.py:16:25:16:31 | ControlFlowNode for request | -| samples.py:9:5:9:14 | ControlFlowNode for user_input | samples.py:10:59:10:68 | ControlFlowNode for user_input | -| samples.py:9:18:9:47 | ControlFlowNode for escape() | samples.py:9:5:9:14 | ControlFlowNode for user_input | -| samples.py:9:25:9:31 | ControlFlowNode for request | samples.py:9:25:9:36 | ControlFlowNode for Attribute | -| samples.py:9:25:9:36 | ControlFlowNode for Attribute | samples.py:9:25:9:46 | ControlFlowNode for Attribute() | -| samples.py:9:25:9:46 | ControlFlowNode for Attribute() | samples.py:9:18:9:47 | ControlFlowNode for escape() | -| samples.py:16:5:16:14 | ControlFlowNode for user_input | samples.py:20:62:20:71 | ControlFlowNode for user_input | -| samples.py:16:18:16:47 | ControlFlowNode for escape() | samples.py:16:5:16:14 | ControlFlowNode for user_input | -| samples.py:16:25:16:31 | ControlFlowNode for request | samples.py:16:25:16:36 | ControlFlowNode for Attribute | -| samples.py:16:25:16:36 | ControlFlowNode for Attribute | samples.py:16:25:16:46 | ControlFlowNode for Attribute() | -| samples.py:16:25:16:46 | ControlFlowNode for Attribute() | samples.py:16:18:16:47 | ControlFlowNode for escape() | +| samples.py:2:26:2:32 | ControlFlowNode for ImportMember | samples.py:2:26:2:32 | ControlFlowNode for request | provenance | | +| samples.py:2:26:2:32 | ControlFlowNode for request | samples.py:9:25:9:31 | ControlFlowNode for request | provenance | | +| samples.py:2:26:2:32 | ControlFlowNode for request | samples.py:16:25:16:31 | ControlFlowNode for request | provenance | | +| samples.py:9:5:9:14 | ControlFlowNode for user_input | samples.py:10:59:10:68 | ControlFlowNode for user_input | provenance | | +| samples.py:9:18:9:47 | ControlFlowNode for escape() | samples.py:9:5:9:14 | ControlFlowNode for user_input | provenance | | +| samples.py:9:25:9:31 | ControlFlowNode for request | samples.py:9:25:9:36 | ControlFlowNode for Attribute | provenance | | +| samples.py:9:25:9:36 | ControlFlowNode for Attribute | samples.py:9:25:9:46 | ControlFlowNode for Attribute() | provenance | | +| samples.py:9:25:9:46 | ControlFlowNode for Attribute() | samples.py:9:18:9:47 | ControlFlowNode for escape() | provenance | | +| samples.py:16:5:16:14 | ControlFlowNode for user_input | samples.py:20:62:20:71 | ControlFlowNode for user_input | provenance | | +| samples.py:16:18:16:47 | ControlFlowNode for escape() | samples.py:16:5:16:14 | ControlFlowNode for user_input | provenance | | +| samples.py:16:25:16:31 | ControlFlowNode for request | samples.py:16:25:16:36 | ControlFlowNode for Attribute | provenance | | +| samples.py:16:25:16:36 | ControlFlowNode for Attribute | samples.py:16:25:16:46 | ControlFlowNode for Attribute() | provenance | | +| samples.py:16:25:16:46 | ControlFlowNode for Attribute() | samples.py:16:18:16:47 | ControlFlowNode for escape() | provenance | | nodes | samples.py:2:26:2:32 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | | samples.py:2:26:2:32 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | diff --git a/python/ql/test/experimental/query-tests/Security/CWE-208/TimingAttackAgainstHash/PossibleTimingAttackAgainstHash.expected b/python/ql/test/experimental/query-tests/Security/CWE-208/TimingAttackAgainstHash/PossibleTimingAttackAgainstHash.expected index c0fbf3b7eab0..8846e9087981 100644 --- a/python/ql/test/experimental/query-tests/Security/CWE-208/TimingAttackAgainstHash/PossibleTimingAttackAgainstHash.expected +++ b/python/ql/test/experimental/query-tests/Security/CWE-208/TimingAttackAgainstHash/PossibleTimingAttackAgainstHash.expected @@ -1,7 +1,7 @@ edges -| TimingAttackAgainstHash.py:26:5:26:13 | ControlFlowNode for signature | TimingAttackAgainstHash.py:27:24:27:32 | ControlFlowNode for signature | -| TimingAttackAgainstHash.py:26:17:26:41 | ControlFlowNode for Attribute() | TimingAttackAgainstHash.py:26:5:26:13 | ControlFlowNode for signature | -| TimingAttackAgainstHash.py:30:12:30:47 | ControlFlowNode for Attribute() | TimingAttackAgainstHash.py:37:19:37:48 | ControlFlowNode for sign() | +| TimingAttackAgainstHash.py:26:5:26:13 | ControlFlowNode for signature | TimingAttackAgainstHash.py:27:24:27:32 | ControlFlowNode for signature | provenance | | +| TimingAttackAgainstHash.py:26:17:26:41 | ControlFlowNode for Attribute() | TimingAttackAgainstHash.py:26:5:26:13 | ControlFlowNode for signature | provenance | | +| TimingAttackAgainstHash.py:30:12:30:47 | ControlFlowNode for Attribute() | TimingAttackAgainstHash.py:37:19:37:48 | ControlFlowNode for sign() | provenance | | nodes | TimingAttackAgainstHash.py:26:5:26:13 | ControlFlowNode for signature | semmle.label | ControlFlowNode for signature | | TimingAttackAgainstHash.py:26:17:26:41 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | diff --git a/python/ql/test/experimental/query-tests/Security/CWE-208/TimingAttackAgainstSensitiveInfo/PossibleTimingAttackAgainstSensitiveInfo.expected b/python/ql/test/experimental/query-tests/Security/CWE-208/TimingAttackAgainstSensitiveInfo/PossibleTimingAttackAgainstSensitiveInfo.expected index 724913de062f..80b074348966 100644 --- a/python/ql/test/experimental/query-tests/Security/CWE-208/TimingAttackAgainstSensitiveInfo/PossibleTimingAttackAgainstSensitiveInfo.expected +++ b/python/ql/test/experimental/query-tests/Security/CWE-208/TimingAttackAgainstSensitiveInfo/PossibleTimingAttackAgainstSensitiveInfo.expected @@ -1,5 +1,5 @@ edges -| TimingAttackAgainstSensitiveInfo.py:15:9:15:16 | ControlFlowNode for password | TimingAttackAgainstSensitiveInfo.py:16:16:16:23 | ControlFlowNode for password | +| TimingAttackAgainstSensitiveInfo.py:15:9:15:16 | ControlFlowNode for password | TimingAttackAgainstSensitiveInfo.py:16:16:16:23 | ControlFlowNode for password | provenance | | nodes | TimingAttackAgainstSensitiveInfo.py:15:9:15:16 | ControlFlowNode for password | semmle.label | ControlFlowNode for password | | TimingAttackAgainstSensitiveInfo.py:16:16:16:23 | ControlFlowNode for password | semmle.label | ControlFlowNode for password | diff --git a/python/ql/test/experimental/query-tests/Security/CWE-287-ConstantSecretKey/ConstantSecretKey.expected b/python/ql/test/experimental/query-tests/Security/CWE-287-ConstantSecretKey/ConstantSecretKey.expected index eebb4f2cf1f7..d339e0adc215 100644 --- a/python/ql/test/experimental/query-tests/Security/CWE-287-ConstantSecretKey/ConstantSecretKey.expected +++ b/python/ql/test/experimental/query-tests/Security/CWE-287-ConstantSecretKey/ConstantSecretKey.expected @@ -1,19 +1,19 @@ edges -| app_unsafe.py:4:1:4:9 | ControlFlowNode for aConstant | app_unsafe.py:5:28:5:36 | ControlFlowNode for aConstant | -| app_unsafe.py:4:1:4:9 | ControlFlowNode for aConstant | app_unsafe.py:6:18:6:26 | ControlFlowNode for aConstant | -| app_unsafe.py:4:1:4:9 | ControlFlowNode for aConstant | app_unsafe.py:7:30:7:38 | ControlFlowNode for aConstant | -| app_unsafe.py:4:1:4:9 | ControlFlowNode for aConstant | app_unsafe.py:8:36:8:44 | ControlFlowNode for aConstant | -| app_unsafe.py:4:13:4:23 | ControlFlowNode for Str | app_unsafe.py:4:1:4:9 | ControlFlowNode for aConstant | -| config.py:7:1:7:9 | ControlFlowNode for aConstant | config.py:12:18:12:26 | ControlFlowNode for aConstant | -| config.py:7:1:7:9 | ControlFlowNode for aConstant | config.py:12:18:12:26 | ControlFlowNode for aConstant | -| config.py:7:1:7:9 | ControlFlowNode for aConstant | config.py:17:38:17:46 | ControlFlowNode for aConstant | -| config.py:7:1:7:9 | ControlFlowNode for aConstant | config.py:18:43:18:51 | ControlFlowNode for aConstant | -| config.py:7:13:7:23 | ControlFlowNode for Str | config.py:7:1:7:9 | ControlFlowNode for aConstant | -| config.py:12:18:12:26 | ControlFlowNode for aConstant | config.py:17:38:17:46 | ControlFlowNode for aConstant | -| config.py:12:18:12:26 | ControlFlowNode for aConstant | config.py:18:43:18:51 | ControlFlowNode for aConstant | -| config.py:17:38:17:46 | ControlFlowNode for aConstant | config.py:17:18:17:47 | ControlFlowNode for Attribute() | -| config.py:17:38:17:46 | ControlFlowNode for aConstant | config.py:18:43:18:51 | ControlFlowNode for aConstant | -| config.py:18:43:18:51 | ControlFlowNode for aConstant | config.py:18:18:18:52 | ControlFlowNode for Attribute() | +| app_unsafe.py:4:1:4:9 | ControlFlowNode for aConstant | app_unsafe.py:5:28:5:36 | ControlFlowNode for aConstant | provenance | | +| app_unsafe.py:4:1:4:9 | ControlFlowNode for aConstant | app_unsafe.py:6:18:6:26 | ControlFlowNode for aConstant | provenance | | +| app_unsafe.py:4:1:4:9 | ControlFlowNode for aConstant | app_unsafe.py:7:30:7:38 | ControlFlowNode for aConstant | provenance | | +| app_unsafe.py:4:1:4:9 | ControlFlowNode for aConstant | app_unsafe.py:8:36:8:44 | ControlFlowNode for aConstant | provenance | | +| app_unsafe.py:4:13:4:23 | ControlFlowNode for Str | app_unsafe.py:4:1:4:9 | ControlFlowNode for aConstant | provenance | | +| config.py:7:1:7:9 | ControlFlowNode for aConstant | config.py:12:18:12:26 | ControlFlowNode for aConstant | provenance | | +| config.py:7:1:7:9 | ControlFlowNode for aConstant | config.py:12:18:12:26 | ControlFlowNode for aConstant | provenance | | +| config.py:7:1:7:9 | ControlFlowNode for aConstant | config.py:17:38:17:46 | ControlFlowNode for aConstant | provenance | | +| config.py:7:1:7:9 | ControlFlowNode for aConstant | config.py:18:43:18:51 | ControlFlowNode for aConstant | provenance | | +| config.py:7:13:7:23 | ControlFlowNode for Str | config.py:7:1:7:9 | ControlFlowNode for aConstant | provenance | | +| config.py:12:18:12:26 | ControlFlowNode for aConstant | config.py:17:38:17:46 | ControlFlowNode for aConstant | provenance | | +| config.py:12:18:12:26 | ControlFlowNode for aConstant | config.py:18:43:18:51 | ControlFlowNode for aConstant | provenance | | +| config.py:17:38:17:46 | ControlFlowNode for aConstant | config.py:17:18:17:47 | ControlFlowNode for Attribute() | provenance | | +| config.py:17:38:17:46 | ControlFlowNode for aConstant | config.py:18:43:18:51 | ControlFlowNode for aConstant | provenance | | +| config.py:18:43:18:51 | ControlFlowNode for aConstant | config.py:18:18:18:52 | ControlFlowNode for Attribute() | provenance | | nodes | app_safe.py:5:28:5:37 | ControlFlowNode for Str | semmle.label | ControlFlowNode for Str | | app_unsafe.py:4:1:4:9 | ControlFlowNode for aConstant | semmle.label | ControlFlowNode for aConstant | diff --git a/python/ql/test/experimental/query-tests/Security/CWE-327-UnsafeUsageOfClientSideEncryptionVersion/UnsafeUsageOfClientSideEncryptionVersion.expected b/python/ql/test/experimental/query-tests/Security/CWE-327-UnsafeUsageOfClientSideEncryptionVersion/UnsafeUsageOfClientSideEncryptionVersion.expected index 0bed45a110f3..d97d5510dfaa 100644 --- a/python/ql/test/experimental/query-tests/Security/CWE-327-UnsafeUsageOfClientSideEncryptionVersion/UnsafeUsageOfClientSideEncryptionVersion.expected +++ b/python/ql/test/experimental/query-tests/Security/CWE-327-UnsafeUsageOfClientSideEncryptionVersion/UnsafeUsageOfClientSideEncryptionVersion.expected @@ -1,45 +1,45 @@ edges -| test.py:3:1:3:3 | ControlFlowNode for BSC | test.py:7:19:7:21 | ControlFlowNode for BSC | -| test.py:3:1:3:3 | ControlFlowNode for BSC | test.py:35:19:35:21 | ControlFlowNode for BSC | -| test.py:3:1:3:3 | ControlFlowNode for BSC | test.py:66:19:66:21 | ControlFlowNode for BSC | -| test.py:3:7:3:51 | ControlFlowNode for Attribute() | test.py:3:1:3:3 | ControlFlowNode for BSC | -| test.py:7:5:7:15 | ControlFlowNode for blob_client | test.py:8:5:8:15 | ControlFlowNode for blob_client | -| test.py:7:19:7:21 | ControlFlowNode for BSC | test.py:7:19:7:42 | ControlFlowNode for Attribute() | -| test.py:7:19:7:42 | ControlFlowNode for Attribute() | test.py:7:5:7:15 | ControlFlowNode for blob_client | -| test.py:8:5:8:15 | ControlFlowNode for blob_client | test.py:9:5:9:15 | ControlFlowNode for blob_client | -| test.py:9:5:9:15 | ControlFlowNode for blob_client | test.py:9:5:9:15 | [post] ControlFlowNode for blob_client | -| test.py:9:5:9:15 | [post] ControlFlowNode for blob_client | test.py:11:9:11:19 | ControlFlowNode for blob_client | -| test.py:15:5:15:23 | ControlFlowNode for blob_service_client | test.py:16:5:16:23 | ControlFlowNode for blob_service_client | -| test.py:15:27:15:71 | ControlFlowNode for Attribute() | test.py:15:5:15:23 | ControlFlowNode for blob_service_client | -| test.py:16:5:16:23 | ControlFlowNode for blob_service_client | test.py:17:5:17:23 | ControlFlowNode for blob_service_client | -| test.py:17:5:17:23 | ControlFlowNode for blob_service_client | test.py:17:5:17:23 | [post] ControlFlowNode for blob_service_client | -| test.py:17:5:17:23 | [post] ControlFlowNode for blob_service_client | test.py:19:19:19:37 | ControlFlowNode for blob_service_client | -| test.py:19:5:19:15 | ControlFlowNode for blob_client | test.py:21:9:21:19 | ControlFlowNode for blob_client | -| test.py:19:19:19:37 | ControlFlowNode for blob_service_client | test.py:19:19:19:58 | ControlFlowNode for Attribute() | -| test.py:19:19:19:58 | ControlFlowNode for Attribute() | test.py:19:5:19:15 | ControlFlowNode for blob_client | -| test.py:25:5:25:20 | ControlFlowNode for container_client | test.py:26:5:26:20 | ControlFlowNode for container_client | -| test.py:25:24:25:66 | ControlFlowNode for Attribute() | test.py:25:5:25:20 | ControlFlowNode for container_client | -| test.py:26:5:26:20 | ControlFlowNode for container_client | test.py:27:5:27:20 | ControlFlowNode for container_client | -| test.py:27:5:27:20 | ControlFlowNode for container_client | test.py:27:5:27:20 | [post] ControlFlowNode for container_client | -| test.py:27:5:27:20 | [post] ControlFlowNode for container_client | test.py:29:19:29:34 | ControlFlowNode for container_client | -| test.py:29:5:29:15 | ControlFlowNode for blob_client | test.py:31:9:31:19 | ControlFlowNode for blob_client | -| test.py:29:19:29:34 | ControlFlowNode for container_client | test.py:29:19:29:55 | ControlFlowNode for Attribute() | -| test.py:29:19:29:55 | ControlFlowNode for Attribute() | test.py:29:5:29:15 | ControlFlowNode for blob_client | -| test.py:35:5:35:15 | ControlFlowNode for blob_client | test.py:36:5:36:15 | ControlFlowNode for blob_client | -| test.py:35:19:35:21 | ControlFlowNode for BSC | test.py:35:19:35:42 | ControlFlowNode for Attribute() | -| test.py:35:19:35:42 | ControlFlowNode for Attribute() | test.py:35:5:35:15 | ControlFlowNode for blob_client | -| test.py:36:5:36:15 | ControlFlowNode for blob_client | test.py:37:5:37:15 | ControlFlowNode for blob_client | -| test.py:37:5:37:15 | ControlFlowNode for blob_client | test.py:37:5:37:15 | [post] ControlFlowNode for blob_client | -| test.py:37:5:37:15 | [post] ControlFlowNode for blob_client | test.py:43:9:43:19 | ControlFlowNode for blob_client | -| test.py:66:5:66:15 | ControlFlowNode for blob_client | test.py:67:5:67:15 | ControlFlowNode for blob_client | -| test.py:66:19:66:21 | ControlFlowNode for BSC | test.py:66:19:66:42 | ControlFlowNode for Attribute() | -| test.py:66:19:66:42 | ControlFlowNode for Attribute() | test.py:66:5:66:15 | ControlFlowNode for blob_client | -| test.py:67:5:67:15 | ControlFlowNode for blob_client | test.py:68:5:68:15 | ControlFlowNode for blob_client | -| test.py:68:5:68:15 | ControlFlowNode for blob_client | test.py:68:5:68:15 | [post] ControlFlowNode for blob_client | -| test.py:68:5:68:15 | [post] ControlFlowNode for blob_client | test.py:69:12:69:22 | ControlFlowNode for blob_client | -| test.py:69:12:69:22 | ControlFlowNode for blob_client | test.py:73:10:73:33 | ControlFlowNode for get_unsafe_blob_client() | -| test.py:73:5:73:6 | ControlFlowNode for bc | test.py:75:9:75:10 | ControlFlowNode for bc | -| test.py:73:10:73:33 | ControlFlowNode for get_unsafe_blob_client() | test.py:73:5:73:6 | ControlFlowNode for bc | +| test.py:3:1:3:3 | ControlFlowNode for BSC | test.py:7:19:7:21 | ControlFlowNode for BSC | provenance | | +| test.py:3:1:3:3 | ControlFlowNode for BSC | test.py:35:19:35:21 | ControlFlowNode for BSC | provenance | | +| test.py:3:1:3:3 | ControlFlowNode for BSC | test.py:66:19:66:21 | ControlFlowNode for BSC | provenance | | +| test.py:3:7:3:51 | ControlFlowNode for Attribute() | test.py:3:1:3:3 | ControlFlowNode for BSC | provenance | | +| test.py:7:5:7:15 | ControlFlowNode for blob_client | test.py:8:5:8:15 | ControlFlowNode for blob_client | provenance | | +| test.py:7:19:7:21 | ControlFlowNode for BSC | test.py:7:19:7:42 | ControlFlowNode for Attribute() | provenance | | +| test.py:7:19:7:42 | ControlFlowNode for Attribute() | test.py:7:5:7:15 | ControlFlowNode for blob_client | provenance | | +| test.py:8:5:8:15 | ControlFlowNode for blob_client | test.py:9:5:9:15 | ControlFlowNode for blob_client | provenance | | +| test.py:9:5:9:15 | ControlFlowNode for blob_client | test.py:9:5:9:15 | [post] ControlFlowNode for blob_client | provenance | | +| test.py:9:5:9:15 | [post] ControlFlowNode for blob_client | test.py:11:9:11:19 | ControlFlowNode for blob_client | provenance | | +| test.py:15:5:15:23 | ControlFlowNode for blob_service_client | test.py:16:5:16:23 | ControlFlowNode for blob_service_client | provenance | | +| test.py:15:27:15:71 | ControlFlowNode for Attribute() | test.py:15:5:15:23 | ControlFlowNode for blob_service_client | provenance | | +| test.py:16:5:16:23 | ControlFlowNode for blob_service_client | test.py:17:5:17:23 | ControlFlowNode for blob_service_client | provenance | | +| test.py:17:5:17:23 | ControlFlowNode for blob_service_client | test.py:17:5:17:23 | [post] ControlFlowNode for blob_service_client | provenance | | +| test.py:17:5:17:23 | [post] ControlFlowNode for blob_service_client | test.py:19:19:19:37 | ControlFlowNode for blob_service_client | provenance | | +| test.py:19:5:19:15 | ControlFlowNode for blob_client | test.py:21:9:21:19 | ControlFlowNode for blob_client | provenance | | +| test.py:19:19:19:37 | ControlFlowNode for blob_service_client | test.py:19:19:19:58 | ControlFlowNode for Attribute() | provenance | | +| test.py:19:19:19:58 | ControlFlowNode for Attribute() | test.py:19:5:19:15 | ControlFlowNode for blob_client | provenance | | +| test.py:25:5:25:20 | ControlFlowNode for container_client | test.py:26:5:26:20 | ControlFlowNode for container_client | provenance | | +| test.py:25:24:25:66 | ControlFlowNode for Attribute() | test.py:25:5:25:20 | ControlFlowNode for container_client | provenance | | +| test.py:26:5:26:20 | ControlFlowNode for container_client | test.py:27:5:27:20 | ControlFlowNode for container_client | provenance | | +| test.py:27:5:27:20 | ControlFlowNode for container_client | test.py:27:5:27:20 | [post] ControlFlowNode for container_client | provenance | | +| test.py:27:5:27:20 | [post] ControlFlowNode for container_client | test.py:29:19:29:34 | ControlFlowNode for container_client | provenance | | +| test.py:29:5:29:15 | ControlFlowNode for blob_client | test.py:31:9:31:19 | ControlFlowNode for blob_client | provenance | | +| test.py:29:19:29:34 | ControlFlowNode for container_client | test.py:29:19:29:55 | ControlFlowNode for Attribute() | provenance | | +| test.py:29:19:29:55 | ControlFlowNode for Attribute() | test.py:29:5:29:15 | ControlFlowNode for blob_client | provenance | | +| test.py:35:5:35:15 | ControlFlowNode for blob_client | test.py:36:5:36:15 | ControlFlowNode for blob_client | provenance | | +| test.py:35:19:35:21 | ControlFlowNode for BSC | test.py:35:19:35:42 | ControlFlowNode for Attribute() | provenance | | +| test.py:35:19:35:42 | ControlFlowNode for Attribute() | test.py:35:5:35:15 | ControlFlowNode for blob_client | provenance | | +| test.py:36:5:36:15 | ControlFlowNode for blob_client | test.py:37:5:37:15 | ControlFlowNode for blob_client | provenance | | +| test.py:37:5:37:15 | ControlFlowNode for blob_client | test.py:37:5:37:15 | [post] ControlFlowNode for blob_client | provenance | | +| test.py:37:5:37:15 | [post] ControlFlowNode for blob_client | test.py:43:9:43:19 | ControlFlowNode for blob_client | provenance | | +| test.py:66:5:66:15 | ControlFlowNode for blob_client | test.py:67:5:67:15 | ControlFlowNode for blob_client | provenance | | +| test.py:66:19:66:21 | ControlFlowNode for BSC | test.py:66:19:66:42 | ControlFlowNode for Attribute() | provenance | | +| test.py:66:19:66:42 | ControlFlowNode for Attribute() | test.py:66:5:66:15 | ControlFlowNode for blob_client | provenance | | +| test.py:67:5:67:15 | ControlFlowNode for blob_client | test.py:68:5:68:15 | ControlFlowNode for blob_client | provenance | | +| test.py:68:5:68:15 | ControlFlowNode for blob_client | test.py:68:5:68:15 | [post] ControlFlowNode for blob_client | provenance | | +| test.py:68:5:68:15 | [post] ControlFlowNode for blob_client | test.py:69:12:69:22 | ControlFlowNode for blob_client | provenance | | +| test.py:69:12:69:22 | ControlFlowNode for blob_client | test.py:73:10:73:33 | ControlFlowNode for get_unsafe_blob_client() | provenance | | +| test.py:73:5:73:6 | ControlFlowNode for bc | test.py:75:9:75:10 | ControlFlowNode for bc | provenance | | +| test.py:73:10:73:33 | ControlFlowNode for get_unsafe_blob_client() | test.py:73:5:73:6 | ControlFlowNode for bc | provenance | | nodes | test.py:3:1:3:3 | ControlFlowNode for BSC | semmle.label | ControlFlowNode for BSC | | test.py:3:7:3:51 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | diff --git a/python/ql/test/experimental/query-tests/Security/CWE-348/ClientSuppliedIpUsedInSecurityCheck.expected b/python/ql/test/experimental/query-tests/Security/CWE-348/ClientSuppliedIpUsedInSecurityCheck.expected index 5bfe6e649173..1d529f3b3ea0 100644 --- a/python/ql/test/experimental/query-tests/Security/CWE-348/ClientSuppliedIpUsedInSecurityCheck.expected +++ b/python/ql/test/experimental/query-tests/Security/CWE-348/ClientSuppliedIpUsedInSecurityCheck.expected @@ -1,10 +1,10 @@ edges -| flask_bad.py:13:5:13:13 | ControlFlowNode for client_ip | flask_bad.py:14:12:14:20 | ControlFlowNode for client_ip | -| flask_bad.py:13:17:13:54 | ControlFlowNode for Attribute() | flask_bad.py:13:5:13:13 | ControlFlowNode for client_ip | -| flask_bad.py:20:5:20:13 | ControlFlowNode for client_ip | flask_bad.py:21:12:21:20 | ControlFlowNode for client_ip | -| flask_bad.py:20:17:20:54 | ControlFlowNode for Attribute() | flask_bad.py:20:5:20:13 | ControlFlowNode for client_ip | -| tornado_bad.py:22:13:22:21 | ControlFlowNode for client_ip | tornado_bad.py:23:16:23:24 | ControlFlowNode for client_ip | -| tornado_bad.py:22:25:22:69 | ControlFlowNode for Attribute() | tornado_bad.py:22:13:22:21 | ControlFlowNode for client_ip | +| flask_bad.py:13:5:13:13 | ControlFlowNode for client_ip | flask_bad.py:14:12:14:20 | ControlFlowNode for client_ip | provenance | | +| flask_bad.py:13:17:13:54 | ControlFlowNode for Attribute() | flask_bad.py:13:5:13:13 | ControlFlowNode for client_ip | provenance | | +| flask_bad.py:20:5:20:13 | ControlFlowNode for client_ip | flask_bad.py:21:12:21:20 | ControlFlowNode for client_ip | provenance | | +| flask_bad.py:20:17:20:54 | ControlFlowNode for Attribute() | flask_bad.py:20:5:20:13 | ControlFlowNode for client_ip | provenance | | +| tornado_bad.py:22:13:22:21 | ControlFlowNode for client_ip | tornado_bad.py:23:16:23:24 | ControlFlowNode for client_ip | provenance | | +| tornado_bad.py:22:25:22:69 | ControlFlowNode for Attribute() | tornado_bad.py:22:13:22:21 | ControlFlowNode for client_ip | provenance | | nodes | flask_bad.py:13:5:13:13 | ControlFlowNode for client_ip | semmle.label | ControlFlowNode for client_ip | | flask_bad.py:13:17:13:54 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | diff --git a/python/ql/test/experimental/query-tests/Security/CWE-522/LdapInsecureAuth.expected b/python/ql/test/experimental/query-tests/Security/CWE-522/LdapInsecureAuth.expected index a4c97c8ead7c..6ca5069e476d 100644 --- a/python/ql/test/experimental/query-tests/Security/CWE-522/LdapInsecureAuth.expected +++ b/python/ql/test/experimental/query-tests/Security/CWE-522/LdapInsecureAuth.expected @@ -1,14 +1,14 @@ edges -| ldap3_remote.py:2:19:2:25 | ControlFlowNode for ImportMember | ldap3_remote.py:2:19:2:25 | ControlFlowNode for request | -| ldap3_remote.py:2:19:2:25 | ControlFlowNode for request | ldap3_remote.py:138:21:138:27 | ControlFlowNode for request | -| ldap3_remote.py:101:5:101:8 | ControlFlowNode for host | ldap3_remote.py:102:18:102:21 | ControlFlowNode for host | -| ldap3_remote.py:101:12:101:49 | ControlFlowNode for BinaryExpr | ldap3_remote.py:101:5:101:8 | ControlFlowNode for host | -| ldap3_remote.py:114:5:114:8 | ControlFlowNode for host | ldap3_remote.py:115:18:115:21 | ControlFlowNode for host | -| ldap3_remote.py:114:12:114:49 | ControlFlowNode for BinaryExpr | ldap3_remote.py:114:5:114:8 | ControlFlowNode for host | -| ldap3_remote.py:126:5:126:8 | ControlFlowNode for host | ldap3_remote.py:127:18:127:21 | ControlFlowNode for host | -| ldap3_remote.py:126:12:126:31 | ControlFlowNode for BinaryExpr | ldap3_remote.py:126:5:126:8 | ControlFlowNode for host | -| ldap3_remote.py:138:5:138:8 | ControlFlowNode for host | ldap3_remote.py:139:18:139:21 | ControlFlowNode for host | -| ldap3_remote.py:138:21:138:27 | ControlFlowNode for request | ldap3_remote.py:138:5:138:8 | ControlFlowNode for host | +| ldap3_remote.py:2:19:2:25 | ControlFlowNode for ImportMember | ldap3_remote.py:2:19:2:25 | ControlFlowNode for request | provenance | | +| ldap3_remote.py:2:19:2:25 | ControlFlowNode for request | ldap3_remote.py:138:21:138:27 | ControlFlowNode for request | provenance | | +| ldap3_remote.py:101:5:101:8 | ControlFlowNode for host | ldap3_remote.py:102:18:102:21 | ControlFlowNode for host | provenance | | +| ldap3_remote.py:101:12:101:49 | ControlFlowNode for BinaryExpr | ldap3_remote.py:101:5:101:8 | ControlFlowNode for host | provenance | | +| ldap3_remote.py:114:5:114:8 | ControlFlowNode for host | ldap3_remote.py:115:18:115:21 | ControlFlowNode for host | provenance | | +| ldap3_remote.py:114:12:114:49 | ControlFlowNode for BinaryExpr | ldap3_remote.py:114:5:114:8 | ControlFlowNode for host | provenance | | +| ldap3_remote.py:126:5:126:8 | ControlFlowNode for host | ldap3_remote.py:127:18:127:21 | ControlFlowNode for host | provenance | | +| ldap3_remote.py:126:12:126:31 | ControlFlowNode for BinaryExpr | ldap3_remote.py:126:5:126:8 | ControlFlowNode for host | provenance | | +| ldap3_remote.py:138:5:138:8 | ControlFlowNode for host | ldap3_remote.py:139:18:139:21 | ControlFlowNode for host | provenance | | +| ldap3_remote.py:138:21:138:27 | ControlFlowNode for request | ldap3_remote.py:138:5:138:8 | ControlFlowNode for host | provenance | | nodes | ldap2_remote.py:45:41:45:60 | ControlFlowNode for BinaryExpr | semmle.label | ControlFlowNode for BinaryExpr | | ldap2_remote.py:56:41:56:60 | ControlFlowNode for BinaryExpr | semmle.label | ControlFlowNode for BinaryExpr | diff --git a/python/ql/test/experimental/query-tests/Security/CWE-614/CookieInjection.expected b/python/ql/test/experimental/query-tests/Security/CWE-614/CookieInjection.expected index afc8302354ec..36e0074c7848 100644 --- a/python/ql/test/experimental/query-tests/Security/CWE-614/CookieInjection.expected +++ b/python/ql/test/experimental/query-tests/Security/CWE-614/CookieInjection.expected @@ -1,16 +1,16 @@ edges -| django_bad.py:27:33:27:67 | ControlFlowNode for Attribute() | django_bad.py:27:30:27:124 | ControlFlowNode for Fstring | -| django_bad.py:27:71:27:106 | ControlFlowNode for Attribute() | django_bad.py:27:30:27:124 | ControlFlowNode for Fstring | -| flask_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | flask_bad.py:1:26:1:32 | ControlFlowNode for request | -| flask_bad.py:1:26:1:32 | ControlFlowNode for request | flask_bad.py:24:21:24:27 | ControlFlowNode for request | -| flask_bad.py:1:26:1:32 | ControlFlowNode for request | flask_bad.py:24:49:24:55 | ControlFlowNode for request | -| flask_bad.py:1:26:1:32 | ControlFlowNode for request | flask_bad.py:32:37:32:43 | ControlFlowNode for request | -| flask_bad.py:1:26:1:32 | ControlFlowNode for request | flask_bad.py:32:60:32:66 | ControlFlowNode for request | -| flask_bad.py:24:21:24:27 | ControlFlowNode for request | flask_bad.py:24:21:24:40 | ControlFlowNode for Subscript | -| flask_bad.py:24:21:24:27 | ControlFlowNode for request | flask_bad.py:24:49:24:69 | ControlFlowNode for Subscript | -| flask_bad.py:24:49:24:55 | ControlFlowNode for request | flask_bad.py:24:49:24:69 | ControlFlowNode for Subscript | -| flask_bad.py:32:37:32:43 | ControlFlowNode for request | flask_bad.py:32:34:32:98 | ControlFlowNode for Fstring | -| flask_bad.py:32:60:32:66 | ControlFlowNode for request | flask_bad.py:32:34:32:98 | ControlFlowNode for Fstring | +| django_bad.py:27:33:27:67 | ControlFlowNode for Attribute() | django_bad.py:27:30:27:124 | ControlFlowNode for Fstring | provenance | | +| django_bad.py:27:71:27:106 | ControlFlowNode for Attribute() | django_bad.py:27:30:27:124 | ControlFlowNode for Fstring | provenance | | +| flask_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | flask_bad.py:1:26:1:32 | ControlFlowNode for request | provenance | | +| flask_bad.py:1:26:1:32 | ControlFlowNode for request | flask_bad.py:24:21:24:27 | ControlFlowNode for request | provenance | | +| flask_bad.py:1:26:1:32 | ControlFlowNode for request | flask_bad.py:24:49:24:55 | ControlFlowNode for request | provenance | | +| flask_bad.py:1:26:1:32 | ControlFlowNode for request | flask_bad.py:32:37:32:43 | ControlFlowNode for request | provenance | | +| flask_bad.py:1:26:1:32 | ControlFlowNode for request | flask_bad.py:32:60:32:66 | ControlFlowNode for request | provenance | | +| flask_bad.py:24:21:24:27 | ControlFlowNode for request | flask_bad.py:24:21:24:40 | ControlFlowNode for Subscript | provenance | | +| flask_bad.py:24:21:24:27 | ControlFlowNode for request | flask_bad.py:24:49:24:69 | ControlFlowNode for Subscript | provenance | | +| flask_bad.py:24:49:24:55 | ControlFlowNode for request | flask_bad.py:24:49:24:69 | ControlFlowNode for Subscript | provenance | | +| flask_bad.py:32:37:32:43 | ControlFlowNode for request | flask_bad.py:32:34:32:98 | ControlFlowNode for Fstring | provenance | | +| flask_bad.py:32:60:32:66 | ControlFlowNode for request | flask_bad.py:32:34:32:98 | ControlFlowNode for Fstring | provenance | | nodes | django_bad.py:19:21:19:55 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | | django_bad.py:20:21:20:56 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | diff --git a/python/ql/test/library-tests/frameworks/django-orm/ReflectedXss.expected b/python/ql/test/library-tests/frameworks/django-orm/ReflectedXss.expected index 2c888521d477..b93c133cd5a0 100644 --- a/python/ql/test/library-tests/frameworks/django-orm/ReflectedXss.expected +++ b/python/ql/test/library-tests/frameworks/django-orm/ReflectedXss.expected @@ -1,53 +1,53 @@ edges -| testapp/orm_security_tests.py:15:1:15:27 | [orm-model] Class Person [Attribute age] | testapp/orm_security_tests.py:42:23:42:42 | ControlFlowNode for Attribute() [List element, Attribute age] | -| testapp/orm_security_tests.py:15:1:15:27 | [orm-model] Class Person [Attribute age] | testapp/orm_security_tests.py:51:14:51:53 | ControlFlowNode for Attribute() [Attribute age] | -| testapp/orm_security_tests.py:15:1:15:27 | [orm-model] Class Person [Attribute name] | testapp/orm_security_tests.py:42:23:42:42 | ControlFlowNode for Attribute() [List element, Attribute name] | -| testapp/orm_security_tests.py:15:1:15:27 | [orm-model] Class Person [Attribute name] | testapp/orm_security_tests.py:47:14:47:53 | ControlFlowNode for Attribute() [Attribute name] | -| testapp/orm_security_tests.py:19:12:19:18 | ControlFlowNode for request | testapp/orm_security_tests.py:22:23:22:42 | ControlFlowNode for Subscript | -| testapp/orm_security_tests.py:19:12:19:18 | ControlFlowNode for request | testapp/orm_security_tests.py:23:22:23:40 | ControlFlowNode for Subscript | -| testapp/orm_security_tests.py:22:9:22:14 | [post] ControlFlowNode for person [Attribute name] | testapp/orm_security_tests.py:23:9:23:14 | ControlFlowNode for person [Attribute name] | -| testapp/orm_security_tests.py:22:23:22:42 | ControlFlowNode for Subscript | testapp/orm_security_tests.py:22:9:22:14 | [post] ControlFlowNode for person [Attribute name] | -| testapp/orm_security_tests.py:23:9:23:14 | ControlFlowNode for person [Attribute name] | testapp/orm_security_tests.py:28:9:28:14 | ControlFlowNode for person [Attribute name] | -| testapp/orm_security_tests.py:23:9:23:14 | [post] ControlFlowNode for person [Attribute age] | testapp/orm_security_tests.py:28:9:28:14 | ControlFlowNode for person [Attribute age] | -| testapp/orm_security_tests.py:23:22:23:40 | ControlFlowNode for Subscript | testapp/orm_security_tests.py:23:9:23:14 | [post] ControlFlowNode for person [Attribute age] | -| testapp/orm_security_tests.py:28:9:28:14 | ControlFlowNode for person [Attribute age] | testapp/orm_security_tests.py:15:1:15:27 | [orm-model] Class Person [Attribute age] | -| testapp/orm_security_tests.py:28:9:28:14 | ControlFlowNode for person [Attribute name] | testapp/orm_security_tests.py:15:1:15:27 | [orm-model] Class Person [Attribute name] | -| testapp/orm_security_tests.py:42:13:42:18 | ControlFlowNode for person [Attribute age] | testapp/orm_security_tests.py:43:62:43:67 | ControlFlowNode for person [Attribute age] | -| testapp/orm_security_tests.py:42:13:42:18 | ControlFlowNode for person [Attribute name] | testapp/orm_security_tests.py:43:49:43:54 | ControlFlowNode for person [Attribute name] | -| testapp/orm_security_tests.py:42:23:42:42 | ControlFlowNode for Attribute() [List element, Attribute age] | testapp/orm_security_tests.py:42:13:42:18 | ControlFlowNode for person [Attribute age] | -| testapp/orm_security_tests.py:42:23:42:42 | ControlFlowNode for Attribute() [List element, Attribute name] | testapp/orm_security_tests.py:42:13:42:18 | ControlFlowNode for person [Attribute name] | -| testapp/orm_security_tests.py:43:13:43:21 | ControlFlowNode for resp_text | testapp/orm_security_tests.py:43:13:43:21 | ControlFlowNode for resp_text | -| testapp/orm_security_tests.py:43:13:43:21 | ControlFlowNode for resp_text | testapp/orm_security_tests.py:44:29:44:37 | ControlFlowNode for resp_text | -| testapp/orm_security_tests.py:43:49:43:54 | ControlFlowNode for person [Attribute name] | testapp/orm_security_tests.py:43:49:43:59 | ControlFlowNode for Attribute | -| testapp/orm_security_tests.py:43:49:43:59 | ControlFlowNode for Attribute | testapp/orm_security_tests.py:43:13:43:21 | ControlFlowNode for resp_text | -| testapp/orm_security_tests.py:43:62:43:67 | ControlFlowNode for person [Attribute age] | testapp/orm_security_tests.py:43:62:43:71 | ControlFlowNode for Attribute | -| testapp/orm_security_tests.py:43:62:43:71 | ControlFlowNode for Attribute | testapp/orm_security_tests.py:43:13:43:21 | ControlFlowNode for resp_text | -| testapp/orm_security_tests.py:47:5:47:10 | ControlFlowNode for person [Attribute name] | testapp/orm_security_tests.py:48:46:48:51 | ControlFlowNode for person [Attribute name] | -| testapp/orm_security_tests.py:47:14:47:53 | ControlFlowNode for Attribute() [Attribute name] | testapp/orm_security_tests.py:47:5:47:10 | ControlFlowNode for person [Attribute name] | -| testapp/orm_security_tests.py:48:46:48:51 | ControlFlowNode for person [Attribute name] | testapp/orm_security_tests.py:48:46:48:56 | ControlFlowNode for Attribute | -| testapp/orm_security_tests.py:48:46:48:56 | ControlFlowNode for Attribute | testapp/orm_security_tests.py:48:25:48:57 | ControlFlowNode for Attribute() | -| testapp/orm_security_tests.py:51:5:51:10 | ControlFlowNode for person [Attribute age] | testapp/orm_security_tests.py:55:45:55:50 | ControlFlowNode for person [Attribute age] | -| testapp/orm_security_tests.py:51:14:51:53 | ControlFlowNode for Attribute() [Attribute age] | testapp/orm_security_tests.py:51:5:51:10 | ControlFlowNode for person [Attribute age] | -| testapp/orm_security_tests.py:55:45:55:50 | ControlFlowNode for person [Attribute age] | testapp/orm_security_tests.py:55:45:55:54 | ControlFlowNode for Attribute | -| testapp/orm_security_tests.py:55:45:55:54 | ControlFlowNode for Attribute | testapp/orm_security_tests.py:55:25:55:55 | ControlFlowNode for Attribute() | -| testapp/orm_security_tests.py:92:1:92:44 | [orm-model] Class CommentValidatorNotUsed [Attribute text] | testapp/orm_security_tests.py:101:15:101:52 | ControlFlowNode for Attribute() [Attribute text] | -| testapp/orm_security_tests.py:95:37:95:43 | ControlFlowNode for request | testapp/orm_security_tests.py:96:44:96:63 | ControlFlowNode for Subscript | -| testapp/orm_security_tests.py:96:5:96:11 | ControlFlowNode for comment [Attribute text] | testapp/orm_security_tests.py:97:5:97:11 | ControlFlowNode for comment [Attribute text] | -| testapp/orm_security_tests.py:96:15:96:64 | ControlFlowNode for CommentValidatorNotUsed() [Attribute text] | testapp/orm_security_tests.py:96:5:96:11 | ControlFlowNode for comment [Attribute text] | -| testapp/orm_security_tests.py:96:44:96:63 | ControlFlowNode for Subscript | testapp/orm_security_tests.py:96:15:96:64 | ControlFlowNode for CommentValidatorNotUsed() [Attribute text] | -| testapp/orm_security_tests.py:97:5:97:11 | ControlFlowNode for comment [Attribute text] | testapp/orm_security_tests.py:92:1:92:44 | [orm-model] Class CommentValidatorNotUsed [Attribute text] | -| testapp/orm_security_tests.py:101:5:101:11 | ControlFlowNode for comment [Attribute text] | testapp/orm_security_tests.py:102:25:102:31 | ControlFlowNode for comment [Attribute text] | -| testapp/orm_security_tests.py:101:15:101:52 | ControlFlowNode for Attribute() [Attribute text] | testapp/orm_security_tests.py:101:5:101:11 | ControlFlowNode for comment [Attribute text] | -| testapp/orm_security_tests.py:102:25:102:31 | ControlFlowNode for comment [Attribute text] | testapp/orm_security_tests.py:102:25:102:36 | ControlFlowNode for Attribute | -| testapp/orm_security_tests.py:111:1:111:41 | [orm-model] Class CommentValidatorUsed [Attribute text] | testapp/orm_security_tests.py:120:15:120:49 | ControlFlowNode for Attribute() [Attribute text] | -| testapp/orm_security_tests.py:114:33:114:39 | ControlFlowNode for request | testapp/orm_security_tests.py:115:41:115:60 | ControlFlowNode for Subscript | -| testapp/orm_security_tests.py:115:5:115:11 | ControlFlowNode for comment [Attribute text] | testapp/orm_security_tests.py:117:5:117:11 | ControlFlowNode for comment [Attribute text] | -| testapp/orm_security_tests.py:115:15:115:61 | ControlFlowNode for CommentValidatorUsed() [Attribute text] | testapp/orm_security_tests.py:115:5:115:11 | ControlFlowNode for comment [Attribute text] | -| testapp/orm_security_tests.py:115:41:115:60 | ControlFlowNode for Subscript | testapp/orm_security_tests.py:115:15:115:61 | ControlFlowNode for CommentValidatorUsed() [Attribute text] | -| testapp/orm_security_tests.py:117:5:117:11 | ControlFlowNode for comment [Attribute text] | testapp/orm_security_tests.py:111:1:111:41 | [orm-model] Class CommentValidatorUsed [Attribute text] | -| testapp/orm_security_tests.py:120:5:120:11 | ControlFlowNode for comment [Attribute text] | testapp/orm_security_tests.py:121:25:121:31 | ControlFlowNode for comment [Attribute text] | -| testapp/orm_security_tests.py:120:15:120:49 | ControlFlowNode for Attribute() [Attribute text] | testapp/orm_security_tests.py:120:5:120:11 | ControlFlowNode for comment [Attribute text] | -| testapp/orm_security_tests.py:121:25:121:31 | ControlFlowNode for comment [Attribute text] | testapp/orm_security_tests.py:121:25:121:36 | ControlFlowNode for Attribute | +| testapp/orm_security_tests.py:15:1:15:27 | [orm-model] Class Person [Attribute age] | testapp/orm_security_tests.py:42:23:42:42 | ControlFlowNode for Attribute() [List element, Attribute age] | provenance | | +| testapp/orm_security_tests.py:15:1:15:27 | [orm-model] Class Person [Attribute age] | testapp/orm_security_tests.py:51:14:51:53 | ControlFlowNode for Attribute() [Attribute age] | provenance | | +| testapp/orm_security_tests.py:15:1:15:27 | [orm-model] Class Person [Attribute name] | testapp/orm_security_tests.py:42:23:42:42 | ControlFlowNode for Attribute() [List element, Attribute name] | provenance | | +| testapp/orm_security_tests.py:15:1:15:27 | [orm-model] Class Person [Attribute name] | testapp/orm_security_tests.py:47:14:47:53 | ControlFlowNode for Attribute() [Attribute name] | provenance | | +| testapp/orm_security_tests.py:19:12:19:18 | ControlFlowNode for request | testapp/orm_security_tests.py:22:23:22:42 | ControlFlowNode for Subscript | provenance | | +| testapp/orm_security_tests.py:19:12:19:18 | ControlFlowNode for request | testapp/orm_security_tests.py:23:22:23:40 | ControlFlowNode for Subscript | provenance | | +| testapp/orm_security_tests.py:22:9:22:14 | [post] ControlFlowNode for person [Attribute name] | testapp/orm_security_tests.py:23:9:23:14 | ControlFlowNode for person [Attribute name] | provenance | | +| testapp/orm_security_tests.py:22:23:22:42 | ControlFlowNode for Subscript | testapp/orm_security_tests.py:22:9:22:14 | [post] ControlFlowNode for person [Attribute name] | provenance | | +| testapp/orm_security_tests.py:23:9:23:14 | ControlFlowNode for person [Attribute name] | testapp/orm_security_tests.py:28:9:28:14 | ControlFlowNode for person [Attribute name] | provenance | | +| testapp/orm_security_tests.py:23:9:23:14 | [post] ControlFlowNode for person [Attribute age] | testapp/orm_security_tests.py:28:9:28:14 | ControlFlowNode for person [Attribute age] | provenance | | +| testapp/orm_security_tests.py:23:22:23:40 | ControlFlowNode for Subscript | testapp/orm_security_tests.py:23:9:23:14 | [post] ControlFlowNode for person [Attribute age] | provenance | | +| testapp/orm_security_tests.py:28:9:28:14 | ControlFlowNode for person [Attribute age] | testapp/orm_security_tests.py:15:1:15:27 | [orm-model] Class Person [Attribute age] | provenance | | +| testapp/orm_security_tests.py:28:9:28:14 | ControlFlowNode for person [Attribute name] | testapp/orm_security_tests.py:15:1:15:27 | [orm-model] Class Person [Attribute name] | provenance | | +| testapp/orm_security_tests.py:42:13:42:18 | ControlFlowNode for person [Attribute age] | testapp/orm_security_tests.py:43:62:43:67 | ControlFlowNode for person [Attribute age] | provenance | | +| testapp/orm_security_tests.py:42:13:42:18 | ControlFlowNode for person [Attribute name] | testapp/orm_security_tests.py:43:49:43:54 | ControlFlowNode for person [Attribute name] | provenance | | +| testapp/orm_security_tests.py:42:23:42:42 | ControlFlowNode for Attribute() [List element, Attribute age] | testapp/orm_security_tests.py:42:13:42:18 | ControlFlowNode for person [Attribute age] | provenance | | +| testapp/orm_security_tests.py:42:23:42:42 | ControlFlowNode for Attribute() [List element, Attribute name] | testapp/orm_security_tests.py:42:13:42:18 | ControlFlowNode for person [Attribute name] | provenance | | +| testapp/orm_security_tests.py:43:13:43:21 | ControlFlowNode for resp_text | testapp/orm_security_tests.py:43:13:43:21 | ControlFlowNode for resp_text | provenance | | +| testapp/orm_security_tests.py:43:13:43:21 | ControlFlowNode for resp_text | testapp/orm_security_tests.py:44:29:44:37 | ControlFlowNode for resp_text | provenance | | +| testapp/orm_security_tests.py:43:49:43:54 | ControlFlowNode for person [Attribute name] | testapp/orm_security_tests.py:43:49:43:59 | ControlFlowNode for Attribute | provenance | | +| testapp/orm_security_tests.py:43:49:43:59 | ControlFlowNode for Attribute | testapp/orm_security_tests.py:43:13:43:21 | ControlFlowNode for resp_text | provenance | | +| testapp/orm_security_tests.py:43:62:43:67 | ControlFlowNode for person [Attribute age] | testapp/orm_security_tests.py:43:62:43:71 | ControlFlowNode for Attribute | provenance | | +| testapp/orm_security_tests.py:43:62:43:71 | ControlFlowNode for Attribute | testapp/orm_security_tests.py:43:13:43:21 | ControlFlowNode for resp_text | provenance | | +| testapp/orm_security_tests.py:47:5:47:10 | ControlFlowNode for person [Attribute name] | testapp/orm_security_tests.py:48:46:48:51 | ControlFlowNode for person [Attribute name] | provenance | | +| testapp/orm_security_tests.py:47:14:47:53 | ControlFlowNode for Attribute() [Attribute name] | testapp/orm_security_tests.py:47:5:47:10 | ControlFlowNode for person [Attribute name] | provenance | | +| testapp/orm_security_tests.py:48:46:48:51 | ControlFlowNode for person [Attribute name] | testapp/orm_security_tests.py:48:46:48:56 | ControlFlowNode for Attribute | provenance | | +| testapp/orm_security_tests.py:48:46:48:56 | ControlFlowNode for Attribute | testapp/orm_security_tests.py:48:25:48:57 | ControlFlowNode for Attribute() | provenance | | +| testapp/orm_security_tests.py:51:5:51:10 | ControlFlowNode for person [Attribute age] | testapp/orm_security_tests.py:55:45:55:50 | ControlFlowNode for person [Attribute age] | provenance | | +| testapp/orm_security_tests.py:51:14:51:53 | ControlFlowNode for Attribute() [Attribute age] | testapp/orm_security_tests.py:51:5:51:10 | ControlFlowNode for person [Attribute age] | provenance | | +| testapp/orm_security_tests.py:55:45:55:50 | ControlFlowNode for person [Attribute age] | testapp/orm_security_tests.py:55:45:55:54 | ControlFlowNode for Attribute | provenance | | +| testapp/orm_security_tests.py:55:45:55:54 | ControlFlowNode for Attribute | testapp/orm_security_tests.py:55:25:55:55 | ControlFlowNode for Attribute() | provenance | | +| testapp/orm_security_tests.py:92:1:92:44 | [orm-model] Class CommentValidatorNotUsed [Attribute text] | testapp/orm_security_tests.py:101:15:101:52 | ControlFlowNode for Attribute() [Attribute text] | provenance | | +| testapp/orm_security_tests.py:95:37:95:43 | ControlFlowNode for request | testapp/orm_security_tests.py:96:44:96:63 | ControlFlowNode for Subscript | provenance | | +| testapp/orm_security_tests.py:96:5:96:11 | ControlFlowNode for comment [Attribute text] | testapp/orm_security_tests.py:97:5:97:11 | ControlFlowNode for comment [Attribute text] | provenance | | +| testapp/orm_security_tests.py:96:15:96:64 | ControlFlowNode for CommentValidatorNotUsed() [Attribute text] | testapp/orm_security_tests.py:96:5:96:11 | ControlFlowNode for comment [Attribute text] | provenance | | +| testapp/orm_security_tests.py:96:44:96:63 | ControlFlowNode for Subscript | testapp/orm_security_tests.py:96:15:96:64 | ControlFlowNode for CommentValidatorNotUsed() [Attribute text] | provenance | | +| testapp/orm_security_tests.py:97:5:97:11 | ControlFlowNode for comment [Attribute text] | testapp/orm_security_tests.py:92:1:92:44 | [orm-model] Class CommentValidatorNotUsed [Attribute text] | provenance | | +| testapp/orm_security_tests.py:101:5:101:11 | ControlFlowNode for comment [Attribute text] | testapp/orm_security_tests.py:102:25:102:31 | ControlFlowNode for comment [Attribute text] | provenance | | +| testapp/orm_security_tests.py:101:15:101:52 | ControlFlowNode for Attribute() [Attribute text] | testapp/orm_security_tests.py:101:5:101:11 | ControlFlowNode for comment [Attribute text] | provenance | | +| testapp/orm_security_tests.py:102:25:102:31 | ControlFlowNode for comment [Attribute text] | testapp/orm_security_tests.py:102:25:102:36 | ControlFlowNode for Attribute | provenance | | +| testapp/orm_security_tests.py:111:1:111:41 | [orm-model] Class CommentValidatorUsed [Attribute text] | testapp/orm_security_tests.py:120:15:120:49 | ControlFlowNode for Attribute() [Attribute text] | provenance | | +| testapp/orm_security_tests.py:114:33:114:39 | ControlFlowNode for request | testapp/orm_security_tests.py:115:41:115:60 | ControlFlowNode for Subscript | provenance | | +| testapp/orm_security_tests.py:115:5:115:11 | ControlFlowNode for comment [Attribute text] | testapp/orm_security_tests.py:117:5:117:11 | ControlFlowNode for comment [Attribute text] | provenance | | +| testapp/orm_security_tests.py:115:15:115:61 | ControlFlowNode for CommentValidatorUsed() [Attribute text] | testapp/orm_security_tests.py:115:5:115:11 | ControlFlowNode for comment [Attribute text] | provenance | | +| testapp/orm_security_tests.py:115:41:115:60 | ControlFlowNode for Subscript | testapp/orm_security_tests.py:115:15:115:61 | ControlFlowNode for CommentValidatorUsed() [Attribute text] | provenance | | +| testapp/orm_security_tests.py:117:5:117:11 | ControlFlowNode for comment [Attribute text] | testapp/orm_security_tests.py:111:1:111:41 | [orm-model] Class CommentValidatorUsed [Attribute text] | provenance | | +| testapp/orm_security_tests.py:120:5:120:11 | ControlFlowNode for comment [Attribute text] | testapp/orm_security_tests.py:121:25:121:31 | ControlFlowNode for comment [Attribute text] | provenance | | +| testapp/orm_security_tests.py:120:15:120:49 | ControlFlowNode for Attribute() [Attribute text] | testapp/orm_security_tests.py:120:5:120:11 | ControlFlowNode for comment [Attribute text] | provenance | | +| testapp/orm_security_tests.py:121:25:121:31 | ControlFlowNode for comment [Attribute text] | testapp/orm_security_tests.py:121:25:121:36 | ControlFlowNode for Attribute | provenance | | nodes | testapp/orm_security_tests.py:15:1:15:27 | [orm-model] Class Person [Attribute age] | semmle.label | [orm-model] Class Person [Attribute age] | | testapp/orm_security_tests.py:15:1:15:27 | [orm-model] Class Person [Attribute name] | semmle.label | [orm-model] Class Person [Attribute name] | diff --git a/python/ql/test/library-tests/frameworks/modeling-example/NaiveModel.expected b/python/ql/test/library-tests/frameworks/modeling-example/NaiveModel.expected index 77d13352758c..b1347bde3fb7 100644 --- a/python/ql/test/library-tests/frameworks/modeling-example/NaiveModel.expected +++ b/python/ql/test/library-tests/frameworks/modeling-example/NaiveModel.expected @@ -1,19 +1,19 @@ edges -| test.py:21:11:21:18 | ControlFlowNode for source() | test.py:22:10:22:24 | ControlFlowNode for Attribute() | -| test.py:29:11:29:18 | ControlFlowNode for source() | test.py:32:5:32:7 | ControlFlowNode for val | -| test.py:32:5:32:7 | ControlFlowNode for val | test.py:33:10:33:12 | ControlFlowNode for val | -| test.py:40:5:40:7 | ControlFlowNode for val | test.py:41:10:41:12 | ControlFlowNode for val | -| test.py:40:11:40:25 | ControlFlowNode for Attribute() | test.py:40:5:40:7 | ControlFlowNode for val | -| test.py:45:11:45:18 | ControlFlowNode for source() | test.py:40:11:40:25 | ControlFlowNode for Attribute() | -| test.py:53:5:53:7 | ControlFlowNode for val | test.py:54:10:54:12 | ControlFlowNode for val | -| test.py:53:11:53:25 | ControlFlowNode for Attribute() | test.py:53:5:53:7 | ControlFlowNode for val | -| test.py:70:11:70:18 | ControlFlowNode for source() | test.py:53:11:53:25 | ControlFlowNode for Attribute() | -| test.py:78:5:78:7 | ControlFlowNode for val | test.py:79:10:79:12 | ControlFlowNode for val | -| test.py:78:11:78:14 | ControlFlowNode for bm() | test.py:78:5:78:7 | ControlFlowNode for val | -| test.py:83:11:83:18 | ControlFlowNode for source() | test.py:78:11:78:14 | ControlFlowNode for bm() | -| test.py:90:5:90:7 | ControlFlowNode for val | test.py:91:10:91:12 | ControlFlowNode for val | -| test.py:90:11:90:14 | ControlFlowNode for bm() | test.py:90:5:90:7 | ControlFlowNode for val | -| test.py:107:11:107:18 | ControlFlowNode for source() | test.py:90:11:90:14 | ControlFlowNode for bm() | +| test.py:21:11:21:18 | ControlFlowNode for source() | test.py:22:10:22:24 | ControlFlowNode for Attribute() | provenance | | +| test.py:29:11:29:18 | ControlFlowNode for source() | test.py:32:5:32:7 | ControlFlowNode for val | provenance | | +| test.py:32:5:32:7 | ControlFlowNode for val | test.py:33:10:33:12 | ControlFlowNode for val | provenance | | +| test.py:40:5:40:7 | ControlFlowNode for val | test.py:41:10:41:12 | ControlFlowNode for val | provenance | | +| test.py:40:11:40:25 | ControlFlowNode for Attribute() | test.py:40:5:40:7 | ControlFlowNode for val | provenance | | +| test.py:45:11:45:18 | ControlFlowNode for source() | test.py:40:11:40:25 | ControlFlowNode for Attribute() | provenance | | +| test.py:53:5:53:7 | ControlFlowNode for val | test.py:54:10:54:12 | ControlFlowNode for val | provenance | | +| test.py:53:11:53:25 | ControlFlowNode for Attribute() | test.py:53:5:53:7 | ControlFlowNode for val | provenance | | +| test.py:70:11:70:18 | ControlFlowNode for source() | test.py:53:11:53:25 | ControlFlowNode for Attribute() | provenance | | +| test.py:78:5:78:7 | ControlFlowNode for val | test.py:79:10:79:12 | ControlFlowNode for val | provenance | | +| test.py:78:11:78:14 | ControlFlowNode for bm() | test.py:78:5:78:7 | ControlFlowNode for val | provenance | | +| test.py:83:11:83:18 | ControlFlowNode for source() | test.py:78:11:78:14 | ControlFlowNode for bm() | provenance | | +| test.py:90:5:90:7 | ControlFlowNode for val | test.py:91:10:91:12 | ControlFlowNode for val | provenance | | +| test.py:90:11:90:14 | ControlFlowNode for bm() | test.py:90:5:90:7 | ControlFlowNode for val | provenance | | +| test.py:107:11:107:18 | ControlFlowNode for source() | test.py:90:11:90:14 | ControlFlowNode for bm() | provenance | | nodes | test.py:21:11:21:18 | ControlFlowNode for source() | semmle.label | ControlFlowNode for source() | | test.py:22:10:22:24 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | diff --git a/python/ql/test/library-tests/frameworks/modeling-example/ProperModel.expected b/python/ql/test/library-tests/frameworks/modeling-example/ProperModel.expected index 004af2780c09..1d3e33431134 100644 --- a/python/ql/test/library-tests/frameworks/modeling-example/ProperModel.expected +++ b/python/ql/test/library-tests/frameworks/modeling-example/ProperModel.expected @@ -1,43 +1,43 @@ edges -| test.py:21:5:21:7 | ControlFlowNode for src | test.py:22:10:22:24 | ControlFlowNode for Attribute() | -| test.py:21:11:21:18 | ControlFlowNode for source() | test.py:21:5:21:7 | ControlFlowNode for src | -| test.py:29:5:29:7 | ControlFlowNode for src | test.py:30:5:30:7 | ControlFlowNode for foo | -| test.py:29:11:29:18 | ControlFlowNode for source() | test.py:29:5:29:7 | ControlFlowNode for src | -| test.py:30:5:30:7 | ControlFlowNode for foo | test.py:31:5:31:16 | ControlFlowNode for bound_method | -| test.py:31:5:31:16 | ControlFlowNode for bound_method | test.py:32:5:32:7 | ControlFlowNode for val | -| test.py:32:5:32:7 | ControlFlowNode for val | test.py:33:10:33:12 | ControlFlowNode for val | -| test.py:39:15:39:17 | ControlFlowNode for arg | test.py:40:5:40:7 | ControlFlowNode for val | -| test.py:40:5:40:7 | ControlFlowNode for val | test.py:41:10:41:12 | ControlFlowNode for val | -| test.py:45:5:45:7 | ControlFlowNode for src | test.py:46:15:46:17 | ControlFlowNode for src | -| test.py:45:11:45:18 | ControlFlowNode for source() | test.py:45:5:45:7 | ControlFlowNode for src | -| test.py:46:15:46:17 | ControlFlowNode for src | test.py:39:15:39:17 | ControlFlowNode for arg | -| test.py:52:24:52:26 | ControlFlowNode for arg | test.py:53:5:53:7 | ControlFlowNode for val | -| test.py:53:5:53:7 | ControlFlowNode for val | test.py:54:10:54:12 | ControlFlowNode for val | -| test.py:57:33:57:35 | ControlFlowNode for arg | test.py:58:24:58:26 | ControlFlowNode for arg | -| test.py:58:24:58:26 | ControlFlowNode for arg | test.py:52:24:52:26 | ControlFlowNode for arg | -| test.py:61:33:61:35 | ControlFlowNode for arg | test.py:62:33:62:35 | ControlFlowNode for arg | -| test.py:62:33:62:35 | ControlFlowNode for arg | test.py:57:33:57:35 | ControlFlowNode for arg | -| test.py:65:33:65:35 | ControlFlowNode for arg | test.py:66:33:66:35 | ControlFlowNode for arg | -| test.py:66:33:66:35 | ControlFlowNode for arg | test.py:61:33:61:35 | ControlFlowNode for arg | -| test.py:70:5:70:7 | ControlFlowNode for src | test.py:71:33:71:35 | ControlFlowNode for src | -| test.py:70:11:70:18 | ControlFlowNode for source() | test.py:70:5:70:7 | ControlFlowNode for src | -| test.py:71:33:71:35 | ControlFlowNode for src | test.py:65:33:65:35 | ControlFlowNode for arg | -| test.py:77:23:77:24 | ControlFlowNode for bm | test.py:78:5:78:7 | ControlFlowNode for val | -| test.py:78:5:78:7 | ControlFlowNode for val | test.py:79:10:79:12 | ControlFlowNode for val | -| test.py:83:5:83:7 | ControlFlowNode for src | test.py:84:23:84:35 | ControlFlowNode for Attribute | -| test.py:83:11:83:18 | ControlFlowNode for source() | test.py:83:5:83:7 | ControlFlowNode for src | -| test.py:84:23:84:35 | ControlFlowNode for Attribute | test.py:77:23:77:24 | ControlFlowNode for bm | -| test.py:89:37:89:38 | ControlFlowNode for bm | test.py:90:5:90:7 | ControlFlowNode for val | -| test.py:90:5:90:7 | ControlFlowNode for val | test.py:91:10:91:12 | ControlFlowNode for val | -| test.py:94:46:94:47 | ControlFlowNode for bm | test.py:95:37:95:38 | ControlFlowNode for bm | -| test.py:95:37:95:38 | ControlFlowNode for bm | test.py:89:37:89:38 | ControlFlowNode for bm | -| test.py:98:46:98:47 | ControlFlowNode for bm | test.py:99:46:99:47 | ControlFlowNode for bm | -| test.py:99:46:99:47 | ControlFlowNode for bm | test.py:94:46:94:47 | ControlFlowNode for bm | -| test.py:102:46:102:47 | ControlFlowNode for bm | test.py:103:46:103:47 | ControlFlowNode for bm | -| test.py:103:46:103:47 | ControlFlowNode for bm | test.py:98:46:98:47 | ControlFlowNode for bm | -| test.py:107:5:107:7 | ControlFlowNode for src | test.py:108:46:108:58 | ControlFlowNode for Attribute | -| test.py:107:11:107:18 | ControlFlowNode for source() | test.py:107:5:107:7 | ControlFlowNode for src | -| test.py:108:46:108:58 | ControlFlowNode for Attribute | test.py:102:46:102:47 | ControlFlowNode for bm | +| test.py:21:5:21:7 | ControlFlowNode for src | test.py:22:10:22:24 | ControlFlowNode for Attribute() | provenance | | +| test.py:21:11:21:18 | ControlFlowNode for source() | test.py:21:5:21:7 | ControlFlowNode for src | provenance | | +| test.py:29:5:29:7 | ControlFlowNode for src | test.py:30:5:30:7 | ControlFlowNode for foo | provenance | | +| test.py:29:11:29:18 | ControlFlowNode for source() | test.py:29:5:29:7 | ControlFlowNode for src | provenance | | +| test.py:30:5:30:7 | ControlFlowNode for foo | test.py:31:5:31:16 | ControlFlowNode for bound_method | provenance | | +| test.py:31:5:31:16 | ControlFlowNode for bound_method | test.py:32:5:32:7 | ControlFlowNode for val | provenance | | +| test.py:32:5:32:7 | ControlFlowNode for val | test.py:33:10:33:12 | ControlFlowNode for val | provenance | | +| test.py:39:15:39:17 | ControlFlowNode for arg | test.py:40:5:40:7 | ControlFlowNode for val | provenance | | +| test.py:40:5:40:7 | ControlFlowNode for val | test.py:41:10:41:12 | ControlFlowNode for val | provenance | | +| test.py:45:5:45:7 | ControlFlowNode for src | test.py:46:15:46:17 | ControlFlowNode for src | provenance | | +| test.py:45:11:45:18 | ControlFlowNode for source() | test.py:45:5:45:7 | ControlFlowNode for src | provenance | | +| test.py:46:15:46:17 | ControlFlowNode for src | test.py:39:15:39:17 | ControlFlowNode for arg | provenance | | +| test.py:52:24:52:26 | ControlFlowNode for arg | test.py:53:5:53:7 | ControlFlowNode for val | provenance | | +| test.py:53:5:53:7 | ControlFlowNode for val | test.py:54:10:54:12 | ControlFlowNode for val | provenance | | +| test.py:57:33:57:35 | ControlFlowNode for arg | test.py:58:24:58:26 | ControlFlowNode for arg | provenance | | +| test.py:58:24:58:26 | ControlFlowNode for arg | test.py:52:24:52:26 | ControlFlowNode for arg | provenance | | +| test.py:61:33:61:35 | ControlFlowNode for arg | test.py:62:33:62:35 | ControlFlowNode for arg | provenance | | +| test.py:62:33:62:35 | ControlFlowNode for arg | test.py:57:33:57:35 | ControlFlowNode for arg | provenance | | +| test.py:65:33:65:35 | ControlFlowNode for arg | test.py:66:33:66:35 | ControlFlowNode for arg | provenance | | +| test.py:66:33:66:35 | ControlFlowNode for arg | test.py:61:33:61:35 | ControlFlowNode for arg | provenance | | +| test.py:70:5:70:7 | ControlFlowNode for src | test.py:71:33:71:35 | ControlFlowNode for src | provenance | | +| test.py:70:11:70:18 | ControlFlowNode for source() | test.py:70:5:70:7 | ControlFlowNode for src | provenance | | +| test.py:71:33:71:35 | ControlFlowNode for src | test.py:65:33:65:35 | ControlFlowNode for arg | provenance | | +| test.py:77:23:77:24 | ControlFlowNode for bm | test.py:78:5:78:7 | ControlFlowNode for val | provenance | | +| test.py:78:5:78:7 | ControlFlowNode for val | test.py:79:10:79:12 | ControlFlowNode for val | provenance | | +| test.py:83:5:83:7 | ControlFlowNode for src | test.py:84:23:84:35 | ControlFlowNode for Attribute | provenance | | +| test.py:83:11:83:18 | ControlFlowNode for source() | test.py:83:5:83:7 | ControlFlowNode for src | provenance | | +| test.py:84:23:84:35 | ControlFlowNode for Attribute | test.py:77:23:77:24 | ControlFlowNode for bm | provenance | | +| test.py:89:37:89:38 | ControlFlowNode for bm | test.py:90:5:90:7 | ControlFlowNode for val | provenance | | +| test.py:90:5:90:7 | ControlFlowNode for val | test.py:91:10:91:12 | ControlFlowNode for val | provenance | | +| test.py:94:46:94:47 | ControlFlowNode for bm | test.py:95:37:95:38 | ControlFlowNode for bm | provenance | | +| test.py:95:37:95:38 | ControlFlowNode for bm | test.py:89:37:89:38 | ControlFlowNode for bm | provenance | | +| test.py:98:46:98:47 | ControlFlowNode for bm | test.py:99:46:99:47 | ControlFlowNode for bm | provenance | | +| test.py:99:46:99:47 | ControlFlowNode for bm | test.py:94:46:94:47 | ControlFlowNode for bm | provenance | | +| test.py:102:46:102:47 | ControlFlowNode for bm | test.py:103:46:103:47 | ControlFlowNode for bm | provenance | | +| test.py:103:46:103:47 | ControlFlowNode for bm | test.py:98:46:98:47 | ControlFlowNode for bm | provenance | | +| test.py:107:5:107:7 | ControlFlowNode for src | test.py:108:46:108:58 | ControlFlowNode for Attribute | provenance | | +| test.py:107:11:107:18 | ControlFlowNode for source() | test.py:107:5:107:7 | ControlFlowNode for src | provenance | | +| test.py:108:46:108:58 | ControlFlowNode for Attribute | test.py:102:46:102:47 | ControlFlowNode for bm | provenance | | nodes | test.py:21:5:21:7 | ControlFlowNode for src | semmle.label | ControlFlowNode for src | | test.py:21:11:21:18 | ControlFlowNode for source() | semmle.label | ControlFlowNode for source() | diff --git a/python/ql/test/query-tests/Functions/ModificationOfParameterWithDefault/ModificationOfParameterWithDefault.expected b/python/ql/test/query-tests/Functions/ModificationOfParameterWithDefault/ModificationOfParameterWithDefault.expected index b33afdac80db..2bed4495c438 100644 --- a/python/ql/test/query-tests/Functions/ModificationOfParameterWithDefault/ModificationOfParameterWithDefault.expected +++ b/python/ql/test/query-tests/Functions/ModificationOfParameterWithDefault/ModificationOfParameterWithDefault.expected @@ -1,45 +1,45 @@ edges -| test.py:2:12:2:12 | ControlFlowNode for l | test.py:3:5:3:5 | ControlFlowNode for l | -| test.py:7:11:7:11 | ControlFlowNode for l | test.py:8:5:8:5 | ControlFlowNode for l | -| test.py:12:14:12:14 | ControlFlowNode for l | test.py:13:9:13:9 | ControlFlowNode for l | -| test.py:17:15:17:15 | ControlFlowNode for l | test.py:18:5:18:5 | ControlFlowNode for l | -| test.py:22:15:22:15 | ControlFlowNode for l | test.py:23:5:23:5 | ControlFlowNode for l | -| test.py:27:12:27:12 | ControlFlowNode for l | test.py:28:5:28:5 | ControlFlowNode for l | -| test.py:38:13:38:13 | ControlFlowNode for l | test.py:39:5:39:5 | ControlFlowNode for l | -| test.py:43:14:43:14 | ControlFlowNode for l | test.py:44:13:44:13 | ControlFlowNode for l | -| test.py:44:13:44:13 | ControlFlowNode for l | test.py:38:13:38:13 | ControlFlowNode for l | -| test.py:48:14:48:14 | ControlFlowNode for l | test.py:49:5:49:5 | ControlFlowNode for l | -| test.py:53:10:53:10 | ControlFlowNode for d | test.py:54:5:54:5 | ControlFlowNode for d | -| test.py:58:19:58:19 | ControlFlowNode for d | test.py:59:5:59:5 | ControlFlowNode for d | -| test.py:63:28:63:28 | ControlFlowNode for d | test.py:64:5:64:5 | ControlFlowNode for d | -| test.py:67:14:67:14 | ControlFlowNode for d | test.py:68:5:68:5 | ControlFlowNode for d | -| test.py:72:19:72:19 | ControlFlowNode for d | test.py:73:14:73:14 | ControlFlowNode for d | -| test.py:73:14:73:14 | ControlFlowNode for d | test.py:67:14:67:14 | ControlFlowNode for d | -| test.py:77:17:77:17 | ControlFlowNode for d | test.py:78:5:78:5 | ControlFlowNode for d | -| test.py:82:26:82:26 | ControlFlowNode for d | test.py:83:5:83:5 | ControlFlowNode for d | -| test.py:87:35:87:35 | ControlFlowNode for d | test.py:88:5:88:5 | ControlFlowNode for d | -| test.py:91:21:91:21 | ControlFlowNode for d | test.py:92:5:92:5 | ControlFlowNode for d | -| test.py:96:26:96:26 | ControlFlowNode for d | test.py:97:21:97:21 | ControlFlowNode for d | -| test.py:97:21:97:21 | ControlFlowNode for d | test.py:91:21:91:21 | ControlFlowNode for d | -| test.py:108:14:108:14 | ControlFlowNode for d | test.py:109:9:109:9 | ControlFlowNode for d | -| test.py:113:20:113:20 | ControlFlowNode for d | test.py:115:5:115:5 | ControlFlowNode for d | -| test.py:119:29:119:29 | ControlFlowNode for d | test.py:121:5:121:5 | ControlFlowNode for d | -| test.py:124:15:124:15 | ControlFlowNode for l | test.py:128:9:128:9 | ControlFlowNode for l | -| test.py:131:23:131:23 | ControlFlowNode for l | test.py:135:9:135:9 | ControlFlowNode for l | -| test.py:138:15:138:15 | ControlFlowNode for l | test.py:140:9:140:9 | ControlFlowNode for l | -| test.py:145:23:145:23 | ControlFlowNode for l | test.py:147:9:147:9 | ControlFlowNode for l | -| test.py:153:25:153:25 | ControlFlowNode for x | test.py:154:5:154:5 | ControlFlowNode for x | -| test.py:156:21:156:21 | ControlFlowNode for x | test.py:157:5:157:5 | ControlFlowNode for x | -| test.py:159:27:159:27 | ControlFlowNode for y | test.py:160:25:160:25 | ControlFlowNode for y | -| test.py:159:27:159:27 | ControlFlowNode for y | test.py:161:21:161:21 | ControlFlowNode for y | -| test.py:160:25:160:25 | ControlFlowNode for y | test.py:153:25:153:25 | ControlFlowNode for x | -| test.py:161:21:161:21 | ControlFlowNode for y | test.py:156:21:156:21 | ControlFlowNode for x | -| test.py:181:28:181:28 | ControlFlowNode for x | test.py:185:9:185:9 | ControlFlowNode for x | -| test.py:181:28:181:28 | ControlFlowNode for x | test.py:187:9:187:9 | ControlFlowNode for x | -| test.py:194:18:194:18 | ControlFlowNode for x | test.py:195:28:195:28 | ControlFlowNode for x | -| test.py:195:28:195:28 | ControlFlowNode for x | test.py:181:28:181:28 | ControlFlowNode for x | -| test.py:197:18:197:18 | ControlFlowNode for x | test.py:198:28:198:28 | ControlFlowNode for x | -| test.py:198:28:198:28 | ControlFlowNode for x | test.py:181:28:181:28 | ControlFlowNode for x | +| test.py:2:12:2:12 | ControlFlowNode for l | test.py:3:5:3:5 | ControlFlowNode for l | provenance | | +| test.py:7:11:7:11 | ControlFlowNode for l | test.py:8:5:8:5 | ControlFlowNode for l | provenance | | +| test.py:12:14:12:14 | ControlFlowNode for l | test.py:13:9:13:9 | ControlFlowNode for l | provenance | | +| test.py:17:15:17:15 | ControlFlowNode for l | test.py:18:5:18:5 | ControlFlowNode for l | provenance | | +| test.py:22:15:22:15 | ControlFlowNode for l | test.py:23:5:23:5 | ControlFlowNode for l | provenance | | +| test.py:27:12:27:12 | ControlFlowNode for l | test.py:28:5:28:5 | ControlFlowNode for l | provenance | | +| test.py:38:13:38:13 | ControlFlowNode for l | test.py:39:5:39:5 | ControlFlowNode for l | provenance | | +| test.py:43:14:43:14 | ControlFlowNode for l | test.py:44:13:44:13 | ControlFlowNode for l | provenance | | +| test.py:44:13:44:13 | ControlFlowNode for l | test.py:38:13:38:13 | ControlFlowNode for l | provenance | | +| test.py:48:14:48:14 | ControlFlowNode for l | test.py:49:5:49:5 | ControlFlowNode for l | provenance | | +| test.py:53:10:53:10 | ControlFlowNode for d | test.py:54:5:54:5 | ControlFlowNode for d | provenance | | +| test.py:58:19:58:19 | ControlFlowNode for d | test.py:59:5:59:5 | ControlFlowNode for d | provenance | | +| test.py:63:28:63:28 | ControlFlowNode for d | test.py:64:5:64:5 | ControlFlowNode for d | provenance | | +| test.py:67:14:67:14 | ControlFlowNode for d | test.py:68:5:68:5 | ControlFlowNode for d | provenance | | +| test.py:72:19:72:19 | ControlFlowNode for d | test.py:73:14:73:14 | ControlFlowNode for d | provenance | | +| test.py:73:14:73:14 | ControlFlowNode for d | test.py:67:14:67:14 | ControlFlowNode for d | provenance | | +| test.py:77:17:77:17 | ControlFlowNode for d | test.py:78:5:78:5 | ControlFlowNode for d | provenance | | +| test.py:82:26:82:26 | ControlFlowNode for d | test.py:83:5:83:5 | ControlFlowNode for d | provenance | | +| test.py:87:35:87:35 | ControlFlowNode for d | test.py:88:5:88:5 | ControlFlowNode for d | provenance | | +| test.py:91:21:91:21 | ControlFlowNode for d | test.py:92:5:92:5 | ControlFlowNode for d | provenance | | +| test.py:96:26:96:26 | ControlFlowNode for d | test.py:97:21:97:21 | ControlFlowNode for d | provenance | | +| test.py:97:21:97:21 | ControlFlowNode for d | test.py:91:21:91:21 | ControlFlowNode for d | provenance | | +| test.py:108:14:108:14 | ControlFlowNode for d | test.py:109:9:109:9 | ControlFlowNode for d | provenance | | +| test.py:113:20:113:20 | ControlFlowNode for d | test.py:115:5:115:5 | ControlFlowNode for d | provenance | | +| test.py:119:29:119:29 | ControlFlowNode for d | test.py:121:5:121:5 | ControlFlowNode for d | provenance | | +| test.py:124:15:124:15 | ControlFlowNode for l | test.py:128:9:128:9 | ControlFlowNode for l | provenance | | +| test.py:131:23:131:23 | ControlFlowNode for l | test.py:135:9:135:9 | ControlFlowNode for l | provenance | | +| test.py:138:15:138:15 | ControlFlowNode for l | test.py:140:9:140:9 | ControlFlowNode for l | provenance | | +| test.py:145:23:145:23 | ControlFlowNode for l | test.py:147:9:147:9 | ControlFlowNode for l | provenance | | +| test.py:153:25:153:25 | ControlFlowNode for x | test.py:154:5:154:5 | ControlFlowNode for x | provenance | | +| test.py:156:21:156:21 | ControlFlowNode for x | test.py:157:5:157:5 | ControlFlowNode for x | provenance | | +| test.py:159:27:159:27 | ControlFlowNode for y | test.py:160:25:160:25 | ControlFlowNode for y | provenance | | +| test.py:159:27:159:27 | ControlFlowNode for y | test.py:161:21:161:21 | ControlFlowNode for y | provenance | | +| test.py:160:25:160:25 | ControlFlowNode for y | test.py:153:25:153:25 | ControlFlowNode for x | provenance | | +| test.py:161:21:161:21 | ControlFlowNode for y | test.py:156:21:156:21 | ControlFlowNode for x | provenance | | +| test.py:181:28:181:28 | ControlFlowNode for x | test.py:185:9:185:9 | ControlFlowNode for x | provenance | | +| test.py:181:28:181:28 | ControlFlowNode for x | test.py:187:9:187:9 | ControlFlowNode for x | provenance | | +| test.py:194:18:194:18 | ControlFlowNode for x | test.py:195:28:195:28 | ControlFlowNode for x | provenance | | +| test.py:195:28:195:28 | ControlFlowNode for x | test.py:181:28:181:28 | ControlFlowNode for x | provenance | | +| test.py:197:18:197:18 | ControlFlowNode for x | test.py:198:28:198:28 | ControlFlowNode for x | provenance | | +| test.py:198:28:198:28 | ControlFlowNode for x | test.py:181:28:181:28 | ControlFlowNode for x | provenance | | nodes | test.py:2:12:2:12 | ControlFlowNode for l | semmle.label | ControlFlowNode for l | | test.py:3:5:3:5 | ControlFlowNode for l | semmle.label | ControlFlowNode for l | diff --git a/python/ql/test/query-tests/Security/CWE-020-ExternalAPIs/UntrustedDataToExternalAPI.expected b/python/ql/test/query-tests/Security/CWE-020-ExternalAPIs/UntrustedDataToExternalAPI.expected index 0f63973da06d..1f820cfa5e11 100644 --- a/python/ql/test/query-tests/Security/CWE-020-ExternalAPIs/UntrustedDataToExternalAPI.expected +++ b/python/ql/test/query-tests/Security/CWE-020-ExternalAPIs/UntrustedDataToExternalAPI.expected @@ -1,36 +1,36 @@ edges -| test.py:5:26:5:32 | ControlFlowNode for ImportMember | test.py:5:26:5:32 | ControlFlowNode for request | -| test.py:5:26:5:32 | ControlFlowNode for request | test.py:13:16:13:22 | ControlFlowNode for request | -| test.py:5:26:5:32 | ControlFlowNode for request | test.py:23:16:23:22 | ControlFlowNode for request | -| test.py:5:26:5:32 | ControlFlowNode for request | test.py:34:12:34:18 | ControlFlowNode for request | -| test.py:5:26:5:32 | ControlFlowNode for request | test.py:42:12:42:18 | ControlFlowNode for request | -| test.py:5:26:5:32 | ControlFlowNode for request | test.py:54:12:54:18 | ControlFlowNode for request | -| test.py:13:5:13:12 | ControlFlowNode for data_raw | test.py:14:5:14:8 | ControlFlowNode for data | -| test.py:13:16:13:22 | ControlFlowNode for request | test.py:13:16:13:27 | ControlFlowNode for Attribute | -| test.py:13:16:13:27 | ControlFlowNode for Attribute | test.py:13:16:13:39 | ControlFlowNode for Attribute() | -| test.py:13:16:13:39 | ControlFlowNode for Attribute() | test.py:13:5:13:12 | ControlFlowNode for data_raw | -| test.py:14:5:14:8 | ControlFlowNode for data | test.py:15:36:15:39 | ControlFlowNode for data | -| test.py:23:5:23:12 | ControlFlowNode for data_raw | test.py:24:5:24:8 | ControlFlowNode for data | -| test.py:23:16:23:22 | ControlFlowNode for request | test.py:23:16:23:27 | ControlFlowNode for Attribute | -| test.py:23:16:23:27 | ControlFlowNode for Attribute | test.py:23:16:23:39 | ControlFlowNode for Attribute() | -| test.py:23:16:23:39 | ControlFlowNode for Attribute() | test.py:23:5:23:12 | ControlFlowNode for data_raw | -| test.py:24:5:24:8 | ControlFlowNode for data | test.py:25:44:25:47 | ControlFlowNode for data | -| test.py:34:5:34:8 | ControlFlowNode for data | test.py:35:10:35:13 | ControlFlowNode for data | -| test.py:34:5:34:8 | ControlFlowNode for data | test.py:36:13:36:16 | ControlFlowNode for data | -| test.py:34:12:34:18 | ControlFlowNode for request | test.py:34:12:34:23 | ControlFlowNode for Attribute | -| test.py:34:12:34:23 | ControlFlowNode for Attribute | test.py:34:12:34:35 | ControlFlowNode for Attribute() | -| test.py:34:12:34:35 | ControlFlowNode for Attribute() | test.py:34:5:34:8 | ControlFlowNode for data | -| test.py:42:5:42:8 | ControlFlowNode for data | test.py:43:22:43:25 | ControlFlowNode for data | -| test.py:42:5:42:8 | ControlFlowNode for data | test.py:44:25:44:28 | ControlFlowNode for data | -| test.py:42:12:42:18 | ControlFlowNode for request | test.py:42:12:42:23 | ControlFlowNode for Attribute | -| test.py:42:12:42:23 | ControlFlowNode for Attribute | test.py:42:12:42:35 | ControlFlowNode for Attribute() | -| test.py:42:12:42:35 | ControlFlowNode for Attribute() | test.py:42:5:42:8 | ControlFlowNode for data | -| test.py:47:17:47:19 | ControlFlowNode for arg | test.py:50:32:50:34 | ControlFlowNode for arg | -| test.py:54:5:54:8 | ControlFlowNode for data | test.py:55:17:55:20 | ControlFlowNode for data | -| test.py:54:12:54:18 | ControlFlowNode for request | test.py:54:12:54:23 | ControlFlowNode for Attribute | -| test.py:54:12:54:23 | ControlFlowNode for Attribute | test.py:54:12:54:35 | ControlFlowNode for Attribute() | -| test.py:54:12:54:35 | ControlFlowNode for Attribute() | test.py:54:5:54:8 | ControlFlowNode for data | -| test.py:55:17:55:20 | ControlFlowNode for data | test.py:47:17:47:19 | ControlFlowNode for arg | +| test.py:5:26:5:32 | ControlFlowNode for ImportMember | test.py:5:26:5:32 | ControlFlowNode for request | provenance | | +| test.py:5:26:5:32 | ControlFlowNode for request | test.py:13:16:13:22 | ControlFlowNode for request | provenance | | +| test.py:5:26:5:32 | ControlFlowNode for request | test.py:23:16:23:22 | ControlFlowNode for request | provenance | | +| test.py:5:26:5:32 | ControlFlowNode for request | test.py:34:12:34:18 | ControlFlowNode for request | provenance | | +| test.py:5:26:5:32 | ControlFlowNode for request | test.py:42:12:42:18 | ControlFlowNode for request | provenance | | +| test.py:5:26:5:32 | ControlFlowNode for request | test.py:54:12:54:18 | ControlFlowNode for request | provenance | | +| test.py:13:5:13:12 | ControlFlowNode for data_raw | test.py:14:5:14:8 | ControlFlowNode for data | provenance | | +| test.py:13:16:13:22 | ControlFlowNode for request | test.py:13:16:13:27 | ControlFlowNode for Attribute | provenance | | +| test.py:13:16:13:27 | ControlFlowNode for Attribute | test.py:13:16:13:39 | ControlFlowNode for Attribute() | provenance | | +| test.py:13:16:13:39 | ControlFlowNode for Attribute() | test.py:13:5:13:12 | ControlFlowNode for data_raw | provenance | | +| test.py:14:5:14:8 | ControlFlowNode for data | test.py:15:36:15:39 | ControlFlowNode for data | provenance | | +| test.py:23:5:23:12 | ControlFlowNode for data_raw | test.py:24:5:24:8 | ControlFlowNode for data | provenance | | +| test.py:23:16:23:22 | ControlFlowNode for request | test.py:23:16:23:27 | ControlFlowNode for Attribute | provenance | | +| test.py:23:16:23:27 | ControlFlowNode for Attribute | test.py:23:16:23:39 | ControlFlowNode for Attribute() | provenance | | +| test.py:23:16:23:39 | ControlFlowNode for Attribute() | test.py:23:5:23:12 | ControlFlowNode for data_raw | provenance | | +| test.py:24:5:24:8 | ControlFlowNode for data | test.py:25:44:25:47 | ControlFlowNode for data | provenance | | +| test.py:34:5:34:8 | ControlFlowNode for data | test.py:35:10:35:13 | ControlFlowNode for data | provenance | | +| test.py:34:5:34:8 | ControlFlowNode for data | test.py:36:13:36:16 | ControlFlowNode for data | provenance | | +| test.py:34:12:34:18 | ControlFlowNode for request | test.py:34:12:34:23 | ControlFlowNode for Attribute | provenance | | +| test.py:34:12:34:23 | ControlFlowNode for Attribute | test.py:34:12:34:35 | ControlFlowNode for Attribute() | provenance | | +| test.py:34:12:34:35 | ControlFlowNode for Attribute() | test.py:34:5:34:8 | ControlFlowNode for data | provenance | | +| test.py:42:5:42:8 | ControlFlowNode for data | test.py:43:22:43:25 | ControlFlowNode for data | provenance | | +| test.py:42:5:42:8 | ControlFlowNode for data | test.py:44:25:44:28 | ControlFlowNode for data | provenance | | +| test.py:42:12:42:18 | ControlFlowNode for request | test.py:42:12:42:23 | ControlFlowNode for Attribute | provenance | | +| test.py:42:12:42:23 | ControlFlowNode for Attribute | test.py:42:12:42:35 | ControlFlowNode for Attribute() | provenance | | +| test.py:42:12:42:35 | ControlFlowNode for Attribute() | test.py:42:5:42:8 | ControlFlowNode for data | provenance | | +| test.py:47:17:47:19 | ControlFlowNode for arg | test.py:50:32:50:34 | ControlFlowNode for arg | provenance | | +| test.py:54:5:54:8 | ControlFlowNode for data | test.py:55:17:55:20 | ControlFlowNode for data | provenance | | +| test.py:54:12:54:18 | ControlFlowNode for request | test.py:54:12:54:23 | ControlFlowNode for Attribute | provenance | | +| test.py:54:12:54:23 | ControlFlowNode for Attribute | test.py:54:12:54:35 | ControlFlowNode for Attribute() | provenance | | +| test.py:54:12:54:35 | ControlFlowNode for Attribute() | test.py:54:5:54:8 | ControlFlowNode for data | provenance | | +| test.py:55:17:55:20 | ControlFlowNode for data | test.py:47:17:47:19 | ControlFlowNode for arg | provenance | | nodes | test.py:5:26:5:32 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | | test.py:5:26:5:32 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | diff --git a/python/ql/test/query-tests/Security/CWE-022-PathInjection/PathInjection.expected b/python/ql/test/query-tests/Security/CWE-022-PathInjection/PathInjection.expected index 2099e5e9d854..4fe7b60580ca 100644 --- a/python/ql/test/query-tests/Security/CWE-022-PathInjection/PathInjection.expected +++ b/python/ql/test/query-tests/Security/CWE-022-PathInjection/PathInjection.expected @@ -1,126 +1,126 @@ edges -| flask_path_injection.py:1:26:1:32 | ControlFlowNode for ImportMember | flask_path_injection.py:1:26:1:32 | ControlFlowNode for request | -| flask_path_injection.py:1:26:1:32 | ControlFlowNode for request | flask_path_injection.py:19:15:19:21 | ControlFlowNode for request | -| flask_path_injection.py:19:5:19:11 | ControlFlowNode for dirname | flask_path_injection.py:21:32:21:38 | ControlFlowNode for dirname | -| flask_path_injection.py:19:15:19:21 | ControlFlowNode for request | flask_path_injection.py:19:15:19:26 | ControlFlowNode for Attribute | -| flask_path_injection.py:19:15:19:26 | ControlFlowNode for Attribute | flask_path_injection.py:19:15:19:45 | ControlFlowNode for Attribute() | -| flask_path_injection.py:19:15:19:45 | ControlFlowNode for Attribute() | flask_path_injection.py:19:5:19:11 | ControlFlowNode for dirname | -| path_injection.py:3:26:3:32 | ControlFlowNode for ImportMember | path_injection.py:3:26:3:32 | ControlFlowNode for request | -| path_injection.py:3:26:3:32 | ControlFlowNode for request | path_injection.py:12:16:12:22 | ControlFlowNode for request | -| path_injection.py:3:26:3:32 | ControlFlowNode for request | path_injection.py:19:16:19:22 | ControlFlowNode for request | -| path_injection.py:3:26:3:32 | ControlFlowNode for request | path_injection.py:27:16:27:22 | ControlFlowNode for request | -| path_injection.py:3:26:3:32 | ControlFlowNode for request | path_injection.py:46:16:46:22 | ControlFlowNode for request | -| path_injection.py:3:26:3:32 | ControlFlowNode for request | path_injection.py:63:16:63:22 | ControlFlowNode for request | -| path_injection.py:3:26:3:32 | ControlFlowNode for request | path_injection.py:84:16:84:22 | ControlFlowNode for request | -| path_injection.py:3:26:3:32 | ControlFlowNode for request | path_injection.py:107:16:107:22 | ControlFlowNode for request | -| path_injection.py:3:26:3:32 | ControlFlowNode for request | path_injection.py:118:16:118:22 | ControlFlowNode for request | -| path_injection.py:3:26:3:32 | ControlFlowNode for request | path_injection.py:129:16:129:22 | ControlFlowNode for request | -| path_injection.py:3:26:3:32 | ControlFlowNode for request | path_injection.py:138:16:138:22 | ControlFlowNode for request | -| path_injection.py:3:26:3:32 | ControlFlowNode for request | path_injection.py:149:16:149:22 | ControlFlowNode for request | -| path_injection.py:12:5:12:12 | ControlFlowNode for filename | path_injection.py:13:14:13:47 | ControlFlowNode for Attribute() | -| path_injection.py:12:16:12:22 | ControlFlowNode for request | path_injection.py:12:16:12:27 | ControlFlowNode for Attribute | -| path_injection.py:12:16:12:27 | ControlFlowNode for Attribute | path_injection.py:12:16:12:47 | ControlFlowNode for Attribute() | -| path_injection.py:12:16:12:47 | ControlFlowNode for Attribute() | path_injection.py:12:5:12:12 | ControlFlowNode for filename | -| path_injection.py:19:5:19:12 | ControlFlowNode for filename | path_injection.py:20:30:20:63 | ControlFlowNode for Attribute() | -| path_injection.py:19:16:19:22 | ControlFlowNode for request | path_injection.py:19:16:19:27 | ControlFlowNode for Attribute | -| path_injection.py:19:16:19:27 | ControlFlowNode for Attribute | path_injection.py:19:16:19:47 | ControlFlowNode for Attribute() | -| path_injection.py:19:16:19:47 | ControlFlowNode for Attribute() | path_injection.py:19:5:19:12 | ControlFlowNode for filename | -| path_injection.py:20:5:20:9 | ControlFlowNode for npath | path_injection.py:21:14:21:18 | ControlFlowNode for npath | -| path_injection.py:20:13:20:64 | ControlFlowNode for Attribute() | path_injection.py:20:5:20:9 | ControlFlowNode for npath | -| path_injection.py:20:30:20:63 | ControlFlowNode for Attribute() | path_injection.py:20:13:20:64 | ControlFlowNode for Attribute() | -| path_injection.py:27:5:27:12 | ControlFlowNode for filename | path_injection.py:28:30:28:63 | ControlFlowNode for Attribute() | -| path_injection.py:27:16:27:22 | ControlFlowNode for request | path_injection.py:27:16:27:27 | ControlFlowNode for Attribute | -| path_injection.py:27:16:27:27 | ControlFlowNode for Attribute | path_injection.py:27:16:27:47 | ControlFlowNode for Attribute() | -| path_injection.py:27:16:27:47 | ControlFlowNode for Attribute() | path_injection.py:27:5:27:12 | ControlFlowNode for filename | -| path_injection.py:28:5:28:9 | ControlFlowNode for npath | path_injection.py:31:14:31:18 | ControlFlowNode for npath | -| path_injection.py:28:13:28:64 | ControlFlowNode for Attribute() | path_injection.py:28:5:28:9 | ControlFlowNode for npath | -| path_injection.py:28:30:28:63 | ControlFlowNode for Attribute() | path_injection.py:28:13:28:64 | ControlFlowNode for Attribute() | -| path_injection.py:46:5:46:12 | ControlFlowNode for filename | path_injection.py:47:30:47:63 | ControlFlowNode for Attribute() | -| path_injection.py:46:16:46:22 | ControlFlowNode for request | path_injection.py:46:16:46:27 | ControlFlowNode for Attribute | -| path_injection.py:46:16:46:27 | ControlFlowNode for Attribute | path_injection.py:46:16:46:47 | ControlFlowNode for Attribute() | -| path_injection.py:46:16:46:47 | ControlFlowNode for Attribute() | path_injection.py:46:5:46:12 | ControlFlowNode for filename | -| path_injection.py:47:5:47:9 | ControlFlowNode for npath | path_injection.py:48:14:48:18 | ControlFlowNode for npath | -| path_injection.py:47:13:47:64 | ControlFlowNode for Attribute() | path_injection.py:47:5:47:9 | ControlFlowNode for npath | -| path_injection.py:47:30:47:63 | ControlFlowNode for Attribute() | path_injection.py:47:13:47:64 | ControlFlowNode for Attribute() | -| path_injection.py:63:5:63:12 | ControlFlowNode for filename | path_injection.py:64:29:64:62 | ControlFlowNode for Attribute() | -| path_injection.py:63:16:63:22 | ControlFlowNode for request | path_injection.py:63:16:63:27 | ControlFlowNode for Attribute | -| path_injection.py:63:16:63:27 | ControlFlowNode for Attribute | path_injection.py:63:16:63:47 | ControlFlowNode for Attribute() | -| path_injection.py:63:16:63:47 | ControlFlowNode for Attribute() | path_injection.py:63:5:63:12 | ControlFlowNode for filename | -| path_injection.py:64:5:64:9 | ControlFlowNode for npath | path_injection.py:65:14:65:18 | ControlFlowNode for npath | -| path_injection.py:64:13:64:63 | ControlFlowNode for Attribute() | path_injection.py:64:5:64:9 | ControlFlowNode for npath | -| path_injection.py:64:29:64:62 | ControlFlowNode for Attribute() | path_injection.py:64:13:64:63 | ControlFlowNode for Attribute() | -| path_injection.py:84:5:84:12 | ControlFlowNode for filename | path_injection.py:85:5:85:24 | ControlFlowNode for possibly_unsafe_path | -| path_injection.py:84:16:84:22 | ControlFlowNode for request | path_injection.py:84:16:84:27 | ControlFlowNode for Attribute | -| path_injection.py:84:16:84:27 | ControlFlowNode for Attribute | path_injection.py:84:16:84:47 | ControlFlowNode for Attribute() | -| path_injection.py:84:16:84:47 | ControlFlowNode for Attribute() | path_injection.py:84:5:84:12 | ControlFlowNode for filename | -| path_injection.py:85:5:85:24 | ControlFlowNode for possibly_unsafe_path | path_injection.py:86:24:86:43 | ControlFlowNode for possibly_unsafe_path | -| path_injection.py:86:24:86:43 | ControlFlowNode for possibly_unsafe_path | path_injection.py:87:18:87:37 | ControlFlowNode for possibly_unsafe_path | -| path_injection.py:91:20:91:25 | ControlFlowNode for foo_id | path_injection.py:93:5:93:8 | ControlFlowNode for path | -| path_injection.py:93:5:93:8 | ControlFlowNode for path | path_injection.py:94:14:94:17 | ControlFlowNode for path | -| path_injection.py:98:20:98:22 | ControlFlowNode for foo | path_injection.py:101:5:101:8 | ControlFlowNode for path | -| path_injection.py:101:5:101:8 | ControlFlowNode for path | path_injection.py:102:14:102:17 | ControlFlowNode for path | -| path_injection.py:107:5:107:12 | ControlFlowNode for filename | path_injection.py:108:5:108:8 | ControlFlowNode for path | -| path_injection.py:107:16:107:22 | ControlFlowNode for request | path_injection.py:107:16:107:27 | ControlFlowNode for Attribute | -| path_injection.py:107:16:107:27 | ControlFlowNode for Attribute | path_injection.py:107:16:107:47 | ControlFlowNode for Attribute() | -| path_injection.py:107:16:107:47 | ControlFlowNode for Attribute() | path_injection.py:107:5:107:12 | ControlFlowNode for filename | -| path_injection.py:108:5:108:8 | ControlFlowNode for path | path_injection.py:113:14:113:17 | ControlFlowNode for path | -| path_injection.py:118:5:118:12 | ControlFlowNode for filename | path_injection.py:119:5:119:8 | ControlFlowNode for path | -| path_injection.py:118:16:118:22 | ControlFlowNode for request | path_injection.py:118:16:118:27 | ControlFlowNode for Attribute | -| path_injection.py:118:16:118:27 | ControlFlowNode for Attribute | path_injection.py:118:16:118:47 | ControlFlowNode for Attribute() | -| path_injection.py:118:16:118:47 | ControlFlowNode for Attribute() | path_injection.py:118:5:118:12 | ControlFlowNode for filename | -| path_injection.py:119:5:119:8 | ControlFlowNode for path | path_injection.py:124:14:124:17 | ControlFlowNode for path | -| path_injection.py:129:5:129:12 | ControlFlowNode for filename | path_injection.py:130:5:130:8 | ControlFlowNode for path | -| path_injection.py:129:16:129:22 | ControlFlowNode for request | path_injection.py:129:16:129:27 | ControlFlowNode for Attribute | -| path_injection.py:129:16:129:27 | ControlFlowNode for Attribute | path_injection.py:129:16:129:47 | ControlFlowNode for Attribute() | -| path_injection.py:129:16:129:47 | ControlFlowNode for Attribute() | path_injection.py:129:5:129:12 | ControlFlowNode for filename | -| path_injection.py:130:5:130:8 | ControlFlowNode for path | path_injection.py:131:5:131:13 | ControlFlowNode for sanitized | -| path_injection.py:131:5:131:13 | ControlFlowNode for sanitized | path_injection.py:132:14:132:22 | ControlFlowNode for sanitized | -| path_injection.py:138:5:138:12 | ControlFlowNode for filename | path_injection.py:139:5:139:8 | ControlFlowNode for path | -| path_injection.py:138:16:138:22 | ControlFlowNode for request | path_injection.py:138:16:138:27 | ControlFlowNode for Attribute | -| path_injection.py:138:16:138:27 | ControlFlowNode for Attribute | path_injection.py:138:16:138:47 | ControlFlowNode for Attribute() | -| path_injection.py:138:16:138:47 | ControlFlowNode for Attribute() | path_injection.py:138:5:138:12 | ControlFlowNode for filename | -| path_injection.py:139:5:139:8 | ControlFlowNode for path | path_injection.py:140:47:140:50 | ControlFlowNode for path | -| path_injection.py:140:47:140:50 | ControlFlowNode for path | path_injection.py:142:14:142:17 | ControlFlowNode for path | -| path_injection.py:149:5:149:12 | ControlFlowNode for filename | path_injection.py:151:9:151:12 | ControlFlowNode for path | -| path_injection.py:149:16:149:22 | ControlFlowNode for request | path_injection.py:149:16:149:27 | ControlFlowNode for Attribute | -| path_injection.py:149:16:149:27 | ControlFlowNode for Attribute | path_injection.py:149:16:149:47 | ControlFlowNode for Attribute() | -| path_injection.py:149:16:149:47 | ControlFlowNode for Attribute() | path_injection.py:149:5:149:12 | ControlFlowNode for filename | -| path_injection.py:151:9:151:12 | ControlFlowNode for path | path_injection.py:152:18:152:21 | ControlFlowNode for path | -| pathlib_use.py:3:26:3:32 | ControlFlowNode for ImportMember | pathlib_use.py:3:26:3:32 | ControlFlowNode for request | -| pathlib_use.py:3:26:3:32 | ControlFlowNode for request | pathlib_use.py:12:16:12:22 | ControlFlowNode for request | -| pathlib_use.py:12:5:12:12 | ControlFlowNode for filename | pathlib_use.py:13:5:13:5 | ControlFlowNode for p | -| pathlib_use.py:12:5:12:12 | ControlFlowNode for filename | pathlib_use.py:16:5:16:6 | ControlFlowNode for p2 | -| pathlib_use.py:12:16:12:22 | ControlFlowNode for request | pathlib_use.py:12:16:12:27 | ControlFlowNode for Attribute | -| pathlib_use.py:12:16:12:27 | ControlFlowNode for Attribute | pathlib_use.py:12:16:12:47 | ControlFlowNode for Attribute() | -| pathlib_use.py:12:16:12:47 | ControlFlowNode for Attribute() | pathlib_use.py:12:5:12:12 | ControlFlowNode for filename | -| pathlib_use.py:13:5:13:5 | ControlFlowNode for p | pathlib_use.py:14:5:14:5 | ControlFlowNode for p | -| pathlib_use.py:16:5:16:6 | ControlFlowNode for p2 | pathlib_use.py:17:5:17:6 | ControlFlowNode for p2 | -| test.py:3:26:3:32 | ControlFlowNode for ImportMember | test.py:3:26:3:32 | ControlFlowNode for request | -| test.py:3:26:3:32 | ControlFlowNode for request | test.py:9:12:9:18 | ControlFlowNode for request | -| test.py:9:12:9:18 | ControlFlowNode for request | test.py:9:12:9:23 | ControlFlowNode for Attribute | -| test.py:9:12:9:23 | ControlFlowNode for Attribute | test.py:9:12:9:39 | ControlFlowNode for Attribute() | -| test.py:9:12:9:39 | ControlFlowNode for Attribute() | test.py:18:9:18:16 | ControlFlowNode for source() | -| test.py:9:12:9:39 | ControlFlowNode for Attribute() | test.py:24:9:24:16 | ControlFlowNode for source() | -| test.py:9:12:9:39 | ControlFlowNode for Attribute() | test.py:31:9:31:16 | ControlFlowNode for source() | -| test.py:9:12:9:39 | ControlFlowNode for Attribute() | test.py:46:9:46:16 | ControlFlowNode for source() | -| test.py:12:15:12:15 | ControlFlowNode for x | test.py:13:29:13:29 | ControlFlowNode for x | -| test.py:13:29:13:29 | ControlFlowNode for x | test.py:13:12:13:30 | ControlFlowNode for Attribute() | -| test.py:18:5:18:5 | ControlFlowNode for x | test.py:19:10:19:10 | ControlFlowNode for x | -| test.py:18:9:18:16 | ControlFlowNode for source() | test.py:18:5:18:5 | ControlFlowNode for x | -| test.py:24:5:24:5 | ControlFlowNode for x | test.py:25:19:25:19 | ControlFlowNode for x | -| test.py:24:9:24:16 | ControlFlowNode for source() | test.py:24:5:24:5 | ControlFlowNode for x | -| test.py:25:5:25:5 | ControlFlowNode for y | test.py:26:10:26:10 | ControlFlowNode for y | -| test.py:25:9:25:20 | ControlFlowNode for normalize() | test.py:25:5:25:5 | ControlFlowNode for y | -| test.py:25:19:25:19 | ControlFlowNode for x | test.py:12:15:12:15 | ControlFlowNode for x | -| test.py:25:19:25:19 | ControlFlowNode for x | test.py:25:9:25:20 | ControlFlowNode for normalize() | -| test.py:31:5:31:5 | ControlFlowNode for x | test.py:33:14:33:14 | ControlFlowNode for x | -| test.py:31:9:31:16 | ControlFlowNode for source() | test.py:31:5:31:5 | ControlFlowNode for x | -| test.py:46:5:46:5 | ControlFlowNode for x | test.py:48:23:48:23 | ControlFlowNode for x | -| test.py:46:9:46:16 | ControlFlowNode for source() | test.py:46:5:46:5 | ControlFlowNode for x | -| test.py:48:9:48:9 | ControlFlowNode for y | test.py:49:14:49:14 | ControlFlowNode for y | -| test.py:48:13:48:24 | ControlFlowNode for normalize() | test.py:48:9:48:9 | ControlFlowNode for y | -| test.py:48:23:48:23 | ControlFlowNode for x | test.py:12:15:12:15 | ControlFlowNode for x | -| test.py:48:23:48:23 | ControlFlowNode for x | test.py:48:13:48:24 | ControlFlowNode for normalize() | +| flask_path_injection.py:1:26:1:32 | ControlFlowNode for ImportMember | flask_path_injection.py:1:26:1:32 | ControlFlowNode for request | provenance | | +| flask_path_injection.py:1:26:1:32 | ControlFlowNode for request | flask_path_injection.py:19:15:19:21 | ControlFlowNode for request | provenance | | +| flask_path_injection.py:19:5:19:11 | ControlFlowNode for dirname | flask_path_injection.py:21:32:21:38 | ControlFlowNode for dirname | provenance | | +| flask_path_injection.py:19:15:19:21 | ControlFlowNode for request | flask_path_injection.py:19:15:19:26 | ControlFlowNode for Attribute | provenance | | +| flask_path_injection.py:19:15:19:26 | ControlFlowNode for Attribute | flask_path_injection.py:19:15:19:45 | ControlFlowNode for Attribute() | provenance | | +| flask_path_injection.py:19:15:19:45 | ControlFlowNode for Attribute() | flask_path_injection.py:19:5:19:11 | ControlFlowNode for dirname | provenance | | +| path_injection.py:3:26:3:32 | ControlFlowNode for ImportMember | path_injection.py:3:26:3:32 | ControlFlowNode for request | provenance | | +| path_injection.py:3:26:3:32 | ControlFlowNode for request | path_injection.py:12:16:12:22 | ControlFlowNode for request | provenance | | +| path_injection.py:3:26:3:32 | ControlFlowNode for request | path_injection.py:19:16:19:22 | ControlFlowNode for request | provenance | | +| path_injection.py:3:26:3:32 | ControlFlowNode for request | path_injection.py:27:16:27:22 | ControlFlowNode for request | provenance | | +| path_injection.py:3:26:3:32 | ControlFlowNode for request | path_injection.py:46:16:46:22 | ControlFlowNode for request | provenance | | +| path_injection.py:3:26:3:32 | ControlFlowNode for request | path_injection.py:63:16:63:22 | ControlFlowNode for request | provenance | | +| path_injection.py:3:26:3:32 | ControlFlowNode for request | path_injection.py:84:16:84:22 | ControlFlowNode for request | provenance | | +| path_injection.py:3:26:3:32 | ControlFlowNode for request | path_injection.py:107:16:107:22 | ControlFlowNode for request | provenance | | +| path_injection.py:3:26:3:32 | ControlFlowNode for request | path_injection.py:118:16:118:22 | ControlFlowNode for request | provenance | | +| path_injection.py:3:26:3:32 | ControlFlowNode for request | path_injection.py:129:16:129:22 | ControlFlowNode for request | provenance | | +| path_injection.py:3:26:3:32 | ControlFlowNode for request | path_injection.py:138:16:138:22 | ControlFlowNode for request | provenance | | +| path_injection.py:3:26:3:32 | ControlFlowNode for request | path_injection.py:149:16:149:22 | ControlFlowNode for request | provenance | | +| path_injection.py:12:5:12:12 | ControlFlowNode for filename | path_injection.py:13:14:13:47 | ControlFlowNode for Attribute() | provenance | | +| path_injection.py:12:16:12:22 | ControlFlowNode for request | path_injection.py:12:16:12:27 | ControlFlowNode for Attribute | provenance | | +| path_injection.py:12:16:12:27 | ControlFlowNode for Attribute | path_injection.py:12:16:12:47 | ControlFlowNode for Attribute() | provenance | | +| path_injection.py:12:16:12:47 | ControlFlowNode for Attribute() | path_injection.py:12:5:12:12 | ControlFlowNode for filename | provenance | | +| path_injection.py:19:5:19:12 | ControlFlowNode for filename | path_injection.py:20:30:20:63 | ControlFlowNode for Attribute() | provenance | | +| path_injection.py:19:16:19:22 | ControlFlowNode for request | path_injection.py:19:16:19:27 | ControlFlowNode for Attribute | provenance | | +| path_injection.py:19:16:19:27 | ControlFlowNode for Attribute | path_injection.py:19:16:19:47 | ControlFlowNode for Attribute() | provenance | | +| path_injection.py:19:16:19:47 | ControlFlowNode for Attribute() | path_injection.py:19:5:19:12 | ControlFlowNode for filename | provenance | | +| path_injection.py:20:5:20:9 | ControlFlowNode for npath | path_injection.py:21:14:21:18 | ControlFlowNode for npath | provenance | | +| path_injection.py:20:13:20:64 | ControlFlowNode for Attribute() | path_injection.py:20:5:20:9 | ControlFlowNode for npath | provenance | | +| path_injection.py:20:30:20:63 | ControlFlowNode for Attribute() | path_injection.py:20:13:20:64 | ControlFlowNode for Attribute() | provenance | | +| path_injection.py:27:5:27:12 | ControlFlowNode for filename | path_injection.py:28:30:28:63 | ControlFlowNode for Attribute() | provenance | | +| path_injection.py:27:16:27:22 | ControlFlowNode for request | path_injection.py:27:16:27:27 | ControlFlowNode for Attribute | provenance | | +| path_injection.py:27:16:27:27 | ControlFlowNode for Attribute | path_injection.py:27:16:27:47 | ControlFlowNode for Attribute() | provenance | | +| path_injection.py:27:16:27:47 | ControlFlowNode for Attribute() | path_injection.py:27:5:27:12 | ControlFlowNode for filename | provenance | | +| path_injection.py:28:5:28:9 | ControlFlowNode for npath | path_injection.py:31:14:31:18 | ControlFlowNode for npath | provenance | | +| path_injection.py:28:13:28:64 | ControlFlowNode for Attribute() | path_injection.py:28:5:28:9 | ControlFlowNode for npath | provenance | | +| path_injection.py:28:30:28:63 | ControlFlowNode for Attribute() | path_injection.py:28:13:28:64 | ControlFlowNode for Attribute() | provenance | | +| path_injection.py:46:5:46:12 | ControlFlowNode for filename | path_injection.py:47:30:47:63 | ControlFlowNode for Attribute() | provenance | | +| path_injection.py:46:16:46:22 | ControlFlowNode for request | path_injection.py:46:16:46:27 | ControlFlowNode for Attribute | provenance | | +| path_injection.py:46:16:46:27 | ControlFlowNode for Attribute | path_injection.py:46:16:46:47 | ControlFlowNode for Attribute() | provenance | | +| path_injection.py:46:16:46:47 | ControlFlowNode for Attribute() | path_injection.py:46:5:46:12 | ControlFlowNode for filename | provenance | | +| path_injection.py:47:5:47:9 | ControlFlowNode for npath | path_injection.py:48:14:48:18 | ControlFlowNode for npath | provenance | | +| path_injection.py:47:13:47:64 | ControlFlowNode for Attribute() | path_injection.py:47:5:47:9 | ControlFlowNode for npath | provenance | | +| path_injection.py:47:30:47:63 | ControlFlowNode for Attribute() | path_injection.py:47:13:47:64 | ControlFlowNode for Attribute() | provenance | | +| path_injection.py:63:5:63:12 | ControlFlowNode for filename | path_injection.py:64:29:64:62 | ControlFlowNode for Attribute() | provenance | | +| path_injection.py:63:16:63:22 | ControlFlowNode for request | path_injection.py:63:16:63:27 | ControlFlowNode for Attribute | provenance | | +| path_injection.py:63:16:63:27 | ControlFlowNode for Attribute | path_injection.py:63:16:63:47 | ControlFlowNode for Attribute() | provenance | | +| path_injection.py:63:16:63:47 | ControlFlowNode for Attribute() | path_injection.py:63:5:63:12 | ControlFlowNode for filename | provenance | | +| path_injection.py:64:5:64:9 | ControlFlowNode for npath | path_injection.py:65:14:65:18 | ControlFlowNode for npath | provenance | | +| path_injection.py:64:13:64:63 | ControlFlowNode for Attribute() | path_injection.py:64:5:64:9 | ControlFlowNode for npath | provenance | | +| path_injection.py:64:29:64:62 | ControlFlowNode for Attribute() | path_injection.py:64:13:64:63 | ControlFlowNode for Attribute() | provenance | | +| path_injection.py:84:5:84:12 | ControlFlowNode for filename | path_injection.py:85:5:85:24 | ControlFlowNode for possibly_unsafe_path | provenance | | +| path_injection.py:84:16:84:22 | ControlFlowNode for request | path_injection.py:84:16:84:27 | ControlFlowNode for Attribute | provenance | | +| path_injection.py:84:16:84:27 | ControlFlowNode for Attribute | path_injection.py:84:16:84:47 | ControlFlowNode for Attribute() | provenance | | +| path_injection.py:84:16:84:47 | ControlFlowNode for Attribute() | path_injection.py:84:5:84:12 | ControlFlowNode for filename | provenance | | +| path_injection.py:85:5:85:24 | ControlFlowNode for possibly_unsafe_path | path_injection.py:86:24:86:43 | ControlFlowNode for possibly_unsafe_path | provenance | | +| path_injection.py:86:24:86:43 | ControlFlowNode for possibly_unsafe_path | path_injection.py:87:18:87:37 | ControlFlowNode for possibly_unsafe_path | provenance | | +| path_injection.py:91:20:91:25 | ControlFlowNode for foo_id | path_injection.py:93:5:93:8 | ControlFlowNode for path | provenance | | +| path_injection.py:93:5:93:8 | ControlFlowNode for path | path_injection.py:94:14:94:17 | ControlFlowNode for path | provenance | | +| path_injection.py:98:20:98:22 | ControlFlowNode for foo | path_injection.py:101:5:101:8 | ControlFlowNode for path | provenance | | +| path_injection.py:101:5:101:8 | ControlFlowNode for path | path_injection.py:102:14:102:17 | ControlFlowNode for path | provenance | | +| path_injection.py:107:5:107:12 | ControlFlowNode for filename | path_injection.py:108:5:108:8 | ControlFlowNode for path | provenance | | +| path_injection.py:107:16:107:22 | ControlFlowNode for request | path_injection.py:107:16:107:27 | ControlFlowNode for Attribute | provenance | | +| path_injection.py:107:16:107:27 | ControlFlowNode for Attribute | path_injection.py:107:16:107:47 | ControlFlowNode for Attribute() | provenance | | +| path_injection.py:107:16:107:47 | ControlFlowNode for Attribute() | path_injection.py:107:5:107:12 | ControlFlowNode for filename | provenance | | +| path_injection.py:108:5:108:8 | ControlFlowNode for path | path_injection.py:113:14:113:17 | ControlFlowNode for path | provenance | | +| path_injection.py:118:5:118:12 | ControlFlowNode for filename | path_injection.py:119:5:119:8 | ControlFlowNode for path | provenance | | +| path_injection.py:118:16:118:22 | ControlFlowNode for request | path_injection.py:118:16:118:27 | ControlFlowNode for Attribute | provenance | | +| path_injection.py:118:16:118:27 | ControlFlowNode for Attribute | path_injection.py:118:16:118:47 | ControlFlowNode for Attribute() | provenance | | +| path_injection.py:118:16:118:47 | ControlFlowNode for Attribute() | path_injection.py:118:5:118:12 | ControlFlowNode for filename | provenance | | +| path_injection.py:119:5:119:8 | ControlFlowNode for path | path_injection.py:124:14:124:17 | ControlFlowNode for path | provenance | | +| path_injection.py:129:5:129:12 | ControlFlowNode for filename | path_injection.py:130:5:130:8 | ControlFlowNode for path | provenance | | +| path_injection.py:129:16:129:22 | ControlFlowNode for request | path_injection.py:129:16:129:27 | ControlFlowNode for Attribute | provenance | | +| path_injection.py:129:16:129:27 | ControlFlowNode for Attribute | path_injection.py:129:16:129:47 | ControlFlowNode for Attribute() | provenance | | +| path_injection.py:129:16:129:47 | ControlFlowNode for Attribute() | path_injection.py:129:5:129:12 | ControlFlowNode for filename | provenance | | +| path_injection.py:130:5:130:8 | ControlFlowNode for path | path_injection.py:131:5:131:13 | ControlFlowNode for sanitized | provenance | | +| path_injection.py:131:5:131:13 | ControlFlowNode for sanitized | path_injection.py:132:14:132:22 | ControlFlowNode for sanitized | provenance | | +| path_injection.py:138:5:138:12 | ControlFlowNode for filename | path_injection.py:139:5:139:8 | ControlFlowNode for path | provenance | | +| path_injection.py:138:16:138:22 | ControlFlowNode for request | path_injection.py:138:16:138:27 | ControlFlowNode for Attribute | provenance | | +| path_injection.py:138:16:138:27 | ControlFlowNode for Attribute | path_injection.py:138:16:138:47 | ControlFlowNode for Attribute() | provenance | | +| path_injection.py:138:16:138:47 | ControlFlowNode for Attribute() | path_injection.py:138:5:138:12 | ControlFlowNode for filename | provenance | | +| path_injection.py:139:5:139:8 | ControlFlowNode for path | path_injection.py:140:47:140:50 | ControlFlowNode for path | provenance | | +| path_injection.py:140:47:140:50 | ControlFlowNode for path | path_injection.py:142:14:142:17 | ControlFlowNode for path | provenance | | +| path_injection.py:149:5:149:12 | ControlFlowNode for filename | path_injection.py:151:9:151:12 | ControlFlowNode for path | provenance | | +| path_injection.py:149:16:149:22 | ControlFlowNode for request | path_injection.py:149:16:149:27 | ControlFlowNode for Attribute | provenance | | +| path_injection.py:149:16:149:27 | ControlFlowNode for Attribute | path_injection.py:149:16:149:47 | ControlFlowNode for Attribute() | provenance | | +| path_injection.py:149:16:149:47 | ControlFlowNode for Attribute() | path_injection.py:149:5:149:12 | ControlFlowNode for filename | provenance | | +| path_injection.py:151:9:151:12 | ControlFlowNode for path | path_injection.py:152:18:152:21 | ControlFlowNode for path | provenance | | +| pathlib_use.py:3:26:3:32 | ControlFlowNode for ImportMember | pathlib_use.py:3:26:3:32 | ControlFlowNode for request | provenance | | +| pathlib_use.py:3:26:3:32 | ControlFlowNode for request | pathlib_use.py:12:16:12:22 | ControlFlowNode for request | provenance | | +| pathlib_use.py:12:5:12:12 | ControlFlowNode for filename | pathlib_use.py:13:5:13:5 | ControlFlowNode for p | provenance | | +| pathlib_use.py:12:5:12:12 | ControlFlowNode for filename | pathlib_use.py:16:5:16:6 | ControlFlowNode for p2 | provenance | | +| pathlib_use.py:12:16:12:22 | ControlFlowNode for request | pathlib_use.py:12:16:12:27 | ControlFlowNode for Attribute | provenance | | +| pathlib_use.py:12:16:12:27 | ControlFlowNode for Attribute | pathlib_use.py:12:16:12:47 | ControlFlowNode for Attribute() | provenance | | +| pathlib_use.py:12:16:12:47 | ControlFlowNode for Attribute() | pathlib_use.py:12:5:12:12 | ControlFlowNode for filename | provenance | | +| pathlib_use.py:13:5:13:5 | ControlFlowNode for p | pathlib_use.py:14:5:14:5 | ControlFlowNode for p | provenance | | +| pathlib_use.py:16:5:16:6 | ControlFlowNode for p2 | pathlib_use.py:17:5:17:6 | ControlFlowNode for p2 | provenance | | +| test.py:3:26:3:32 | ControlFlowNode for ImportMember | test.py:3:26:3:32 | ControlFlowNode for request | provenance | | +| test.py:3:26:3:32 | ControlFlowNode for request | test.py:9:12:9:18 | ControlFlowNode for request | provenance | | +| test.py:9:12:9:18 | ControlFlowNode for request | test.py:9:12:9:23 | ControlFlowNode for Attribute | provenance | | +| test.py:9:12:9:23 | ControlFlowNode for Attribute | test.py:9:12:9:39 | ControlFlowNode for Attribute() | provenance | | +| test.py:9:12:9:39 | ControlFlowNode for Attribute() | test.py:18:9:18:16 | ControlFlowNode for source() | provenance | | +| test.py:9:12:9:39 | ControlFlowNode for Attribute() | test.py:24:9:24:16 | ControlFlowNode for source() | provenance | | +| test.py:9:12:9:39 | ControlFlowNode for Attribute() | test.py:31:9:31:16 | ControlFlowNode for source() | provenance | | +| test.py:9:12:9:39 | ControlFlowNode for Attribute() | test.py:46:9:46:16 | ControlFlowNode for source() | provenance | | +| test.py:12:15:12:15 | ControlFlowNode for x | test.py:13:29:13:29 | ControlFlowNode for x | provenance | | +| test.py:13:29:13:29 | ControlFlowNode for x | test.py:13:12:13:30 | ControlFlowNode for Attribute() | provenance | | +| test.py:18:5:18:5 | ControlFlowNode for x | test.py:19:10:19:10 | ControlFlowNode for x | provenance | | +| test.py:18:9:18:16 | ControlFlowNode for source() | test.py:18:5:18:5 | ControlFlowNode for x | provenance | | +| test.py:24:5:24:5 | ControlFlowNode for x | test.py:25:19:25:19 | ControlFlowNode for x | provenance | | +| test.py:24:9:24:16 | ControlFlowNode for source() | test.py:24:5:24:5 | ControlFlowNode for x | provenance | | +| test.py:25:5:25:5 | ControlFlowNode for y | test.py:26:10:26:10 | ControlFlowNode for y | provenance | | +| test.py:25:9:25:20 | ControlFlowNode for normalize() | test.py:25:5:25:5 | ControlFlowNode for y | provenance | | +| test.py:25:19:25:19 | ControlFlowNode for x | test.py:12:15:12:15 | ControlFlowNode for x | provenance | | +| test.py:25:19:25:19 | ControlFlowNode for x | test.py:25:9:25:20 | ControlFlowNode for normalize() | provenance | | +| test.py:31:5:31:5 | ControlFlowNode for x | test.py:33:14:33:14 | ControlFlowNode for x | provenance | | +| test.py:31:9:31:16 | ControlFlowNode for source() | test.py:31:5:31:5 | ControlFlowNode for x | provenance | | +| test.py:46:5:46:5 | ControlFlowNode for x | test.py:48:23:48:23 | ControlFlowNode for x | provenance | | +| test.py:46:9:46:16 | ControlFlowNode for source() | test.py:46:5:46:5 | ControlFlowNode for x | provenance | | +| test.py:48:9:48:9 | ControlFlowNode for y | test.py:49:14:49:14 | ControlFlowNode for y | provenance | | +| test.py:48:13:48:24 | ControlFlowNode for normalize() | test.py:48:9:48:9 | ControlFlowNode for y | provenance | | +| test.py:48:23:48:23 | ControlFlowNode for x | test.py:12:15:12:15 | ControlFlowNode for x | provenance | | +| test.py:48:23:48:23 | ControlFlowNode for x | test.py:48:13:48:24 | ControlFlowNode for normalize() | provenance | | nodes | flask_path_injection.py:1:26:1:32 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | | flask_path_injection.py:1:26:1:32 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | diff --git a/python/ql/test/query-tests/Security/CWE-022-TarSlip/TarSlip.expected b/python/ql/test/query-tests/Security/CWE-022-TarSlip/TarSlip.expected index 2fb4890c82ef..6f98ea1aae2b 100644 --- a/python/ql/test/query-tests/Security/CWE-022-TarSlip/TarSlip.expected +++ b/python/ql/test/query-tests/Security/CWE-022-TarSlip/TarSlip.expected @@ -1,26 +1,26 @@ edges -| tarslip.py:14:1:14:3 | ControlFlowNode for tar | tarslip.py:15:1:15:3 | ControlFlowNode for tar | -| tarslip.py:14:7:14:39 | ControlFlowNode for Attribute() | tarslip.py:14:1:14:3 | ControlFlowNode for tar | -| tarslip.py:18:1:18:3 | ControlFlowNode for tar | tarslip.py:19:5:19:9 | ControlFlowNode for entry | -| tarslip.py:18:7:18:39 | ControlFlowNode for Attribute() | tarslip.py:18:1:18:3 | ControlFlowNode for tar | -| tarslip.py:19:5:19:9 | ControlFlowNode for entry | tarslip.py:20:17:20:21 | ControlFlowNode for entry | -| tarslip.py:35:1:35:3 | ControlFlowNode for tar | tarslip.py:36:5:36:9 | ControlFlowNode for entry | -| tarslip.py:35:7:35:39 | ControlFlowNode for Attribute() | tarslip.py:35:1:35:3 | ControlFlowNode for tar | -| tarslip.py:36:5:36:9 | ControlFlowNode for entry | tarslip.py:39:17:39:21 | ControlFlowNode for entry | -| tarslip.py:42:1:42:3 | ControlFlowNode for tar | tarslip.py:43:24:43:26 | ControlFlowNode for tar | -| tarslip.py:42:7:42:39 | ControlFlowNode for Attribute() | tarslip.py:42:1:42:3 | ControlFlowNode for tar | -| tarslip.py:58:1:58:3 | ControlFlowNode for tar | tarslip.py:59:5:59:9 | ControlFlowNode for entry | -| tarslip.py:58:7:58:39 | ControlFlowNode for Attribute() | tarslip.py:58:1:58:3 | ControlFlowNode for tar | -| tarslip.py:59:5:59:9 | ControlFlowNode for entry | tarslip.py:61:21:61:25 | ControlFlowNode for entry | -| tarslip.py:90:1:90:3 | ControlFlowNode for tar | tarslip.py:91:1:91:3 | ControlFlowNode for tar | -| tarslip.py:90:7:90:39 | ControlFlowNode for Attribute() | tarslip.py:90:1:90:3 | ControlFlowNode for tar | -| tarslip.py:94:1:94:3 | ControlFlowNode for tar | tarslip.py:95:5:95:9 | ControlFlowNode for entry | -| tarslip.py:94:7:94:39 | ControlFlowNode for Attribute() | tarslip.py:94:1:94:3 | ControlFlowNode for tar | -| tarslip.py:95:5:95:9 | ControlFlowNode for entry | tarslip.py:96:17:96:21 | ControlFlowNode for entry | -| tarslip.py:109:1:109:3 | ControlFlowNode for tar | tarslip.py:110:1:110:3 | ControlFlowNode for tar | -| tarslip.py:109:7:109:39 | ControlFlowNode for Attribute() | tarslip.py:109:1:109:3 | ControlFlowNode for tar | -| tarslip.py:112:1:112:3 | ControlFlowNode for tar | tarslip.py:113:24:113:26 | ControlFlowNode for tar | -| tarslip.py:112:7:112:39 | ControlFlowNode for Attribute() | tarslip.py:112:1:112:3 | ControlFlowNode for tar | +| tarslip.py:14:1:14:3 | ControlFlowNode for tar | tarslip.py:15:1:15:3 | ControlFlowNode for tar | provenance | | +| tarslip.py:14:7:14:39 | ControlFlowNode for Attribute() | tarslip.py:14:1:14:3 | ControlFlowNode for tar | provenance | | +| tarslip.py:18:1:18:3 | ControlFlowNode for tar | tarslip.py:19:5:19:9 | ControlFlowNode for entry | provenance | | +| tarslip.py:18:7:18:39 | ControlFlowNode for Attribute() | tarslip.py:18:1:18:3 | ControlFlowNode for tar | provenance | | +| tarslip.py:19:5:19:9 | ControlFlowNode for entry | tarslip.py:20:17:20:21 | ControlFlowNode for entry | provenance | | +| tarslip.py:35:1:35:3 | ControlFlowNode for tar | tarslip.py:36:5:36:9 | ControlFlowNode for entry | provenance | | +| tarslip.py:35:7:35:39 | ControlFlowNode for Attribute() | tarslip.py:35:1:35:3 | ControlFlowNode for tar | provenance | | +| tarslip.py:36:5:36:9 | ControlFlowNode for entry | tarslip.py:39:17:39:21 | ControlFlowNode for entry | provenance | | +| tarslip.py:42:1:42:3 | ControlFlowNode for tar | tarslip.py:43:24:43:26 | ControlFlowNode for tar | provenance | | +| tarslip.py:42:7:42:39 | ControlFlowNode for Attribute() | tarslip.py:42:1:42:3 | ControlFlowNode for tar | provenance | | +| tarslip.py:58:1:58:3 | ControlFlowNode for tar | tarslip.py:59:5:59:9 | ControlFlowNode for entry | provenance | | +| tarslip.py:58:7:58:39 | ControlFlowNode for Attribute() | tarslip.py:58:1:58:3 | ControlFlowNode for tar | provenance | | +| tarslip.py:59:5:59:9 | ControlFlowNode for entry | tarslip.py:61:21:61:25 | ControlFlowNode for entry | provenance | | +| tarslip.py:90:1:90:3 | ControlFlowNode for tar | tarslip.py:91:1:91:3 | ControlFlowNode for tar | provenance | | +| tarslip.py:90:7:90:39 | ControlFlowNode for Attribute() | tarslip.py:90:1:90:3 | ControlFlowNode for tar | provenance | | +| tarslip.py:94:1:94:3 | ControlFlowNode for tar | tarslip.py:95:5:95:9 | ControlFlowNode for entry | provenance | | +| tarslip.py:94:7:94:39 | ControlFlowNode for Attribute() | tarslip.py:94:1:94:3 | ControlFlowNode for tar | provenance | | +| tarslip.py:95:5:95:9 | ControlFlowNode for entry | tarslip.py:96:17:96:21 | ControlFlowNode for entry | provenance | | +| tarslip.py:109:1:109:3 | ControlFlowNode for tar | tarslip.py:110:1:110:3 | ControlFlowNode for tar | provenance | | +| tarslip.py:109:7:109:39 | ControlFlowNode for Attribute() | tarslip.py:109:1:109:3 | ControlFlowNode for tar | provenance | | +| tarslip.py:112:1:112:3 | ControlFlowNode for tar | tarslip.py:113:24:113:26 | ControlFlowNode for tar | provenance | | +| tarslip.py:112:7:112:39 | ControlFlowNode for Attribute() | tarslip.py:112:1:112:3 | ControlFlowNode for tar | provenance | | nodes | tarslip.py:14:1:14:3 | ControlFlowNode for tar | semmle.label | ControlFlowNode for tar | | tarslip.py:14:7:14:39 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | diff --git a/python/ql/test/query-tests/Security/CWE-078-CommandInjection-py2/CommandInjection.expected b/python/ql/test/query-tests/Security/CWE-078-CommandInjection-py2/CommandInjection.expected index 021f917ec0bc..469559c02581 100644 --- a/python/ql/test/query-tests/Security/CWE-078-CommandInjection-py2/CommandInjection.expected +++ b/python/ql/test/query-tests/Security/CWE-078-CommandInjection-py2/CommandInjection.expected @@ -1,18 +1,18 @@ edges -| command_injection.py:5:26:5:32 | ControlFlowNode for ImportMember | command_injection.py:5:26:5:32 | ControlFlowNode for request | -| command_injection.py:5:26:5:32 | ControlFlowNode for request | command_injection.py:18:13:18:19 | ControlFlowNode for request | -| command_injection.py:18:5:18:9 | ControlFlowNode for files | command_injection.py:19:15:19:27 | ControlFlowNode for BinaryExpr | -| command_injection.py:18:5:18:9 | ControlFlowNode for files | command_injection.py:20:15:20:27 | ControlFlowNode for BinaryExpr | -| command_injection.py:18:5:18:9 | ControlFlowNode for files | command_injection.py:21:15:21:27 | ControlFlowNode for BinaryExpr | -| command_injection.py:18:5:18:9 | ControlFlowNode for files | command_injection.py:23:20:23:32 | ControlFlowNode for BinaryExpr | -| command_injection.py:18:5:18:9 | ControlFlowNode for files | command_injection.py:25:19:25:31 | ControlFlowNode for BinaryExpr | -| command_injection.py:18:5:18:9 | ControlFlowNode for files | command_injection.py:26:19:26:31 | ControlFlowNode for BinaryExpr | -| command_injection.py:18:5:18:9 | ControlFlowNode for files | command_injection.py:27:19:27:31 | ControlFlowNode for BinaryExpr | -| command_injection.py:18:5:18:9 | ControlFlowNode for files | command_injection.py:28:19:28:31 | ControlFlowNode for BinaryExpr | -| command_injection.py:18:5:18:9 | ControlFlowNode for files | command_injection.py:29:19:29:31 | ControlFlowNode for BinaryExpr | -| command_injection.py:18:13:18:19 | ControlFlowNode for request | command_injection.py:18:13:18:24 | ControlFlowNode for Attribute | -| command_injection.py:18:13:18:24 | ControlFlowNode for Attribute | command_injection.py:18:13:18:41 | ControlFlowNode for Attribute() | -| command_injection.py:18:13:18:41 | ControlFlowNode for Attribute() | command_injection.py:18:5:18:9 | ControlFlowNode for files | +| command_injection.py:5:26:5:32 | ControlFlowNode for ImportMember | command_injection.py:5:26:5:32 | ControlFlowNode for request | provenance | | +| command_injection.py:5:26:5:32 | ControlFlowNode for request | command_injection.py:18:13:18:19 | ControlFlowNode for request | provenance | | +| command_injection.py:18:5:18:9 | ControlFlowNode for files | command_injection.py:19:15:19:27 | ControlFlowNode for BinaryExpr | provenance | | +| command_injection.py:18:5:18:9 | ControlFlowNode for files | command_injection.py:20:15:20:27 | ControlFlowNode for BinaryExpr | provenance | | +| command_injection.py:18:5:18:9 | ControlFlowNode for files | command_injection.py:21:15:21:27 | ControlFlowNode for BinaryExpr | provenance | | +| command_injection.py:18:5:18:9 | ControlFlowNode for files | command_injection.py:23:20:23:32 | ControlFlowNode for BinaryExpr | provenance | | +| command_injection.py:18:5:18:9 | ControlFlowNode for files | command_injection.py:25:19:25:31 | ControlFlowNode for BinaryExpr | provenance | | +| command_injection.py:18:5:18:9 | ControlFlowNode for files | command_injection.py:26:19:26:31 | ControlFlowNode for BinaryExpr | provenance | | +| command_injection.py:18:5:18:9 | ControlFlowNode for files | command_injection.py:27:19:27:31 | ControlFlowNode for BinaryExpr | provenance | | +| command_injection.py:18:5:18:9 | ControlFlowNode for files | command_injection.py:28:19:28:31 | ControlFlowNode for BinaryExpr | provenance | | +| command_injection.py:18:5:18:9 | ControlFlowNode for files | command_injection.py:29:19:29:31 | ControlFlowNode for BinaryExpr | provenance | | +| command_injection.py:18:13:18:19 | ControlFlowNode for request | command_injection.py:18:13:18:24 | ControlFlowNode for Attribute | provenance | | +| command_injection.py:18:13:18:24 | ControlFlowNode for Attribute | command_injection.py:18:13:18:41 | ControlFlowNode for Attribute() | provenance | | +| command_injection.py:18:13:18:41 | ControlFlowNode for Attribute() | command_injection.py:18:5:18:9 | ControlFlowNode for files | provenance | | nodes | command_injection.py:5:26:5:32 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | | command_injection.py:5:26:5:32 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | diff --git a/python/ql/test/query-tests/Security/CWE-078-CommandInjection/CommandInjection.expected b/python/ql/test/query-tests/Security/CWE-078-CommandInjection/CommandInjection.expected index b968144d7630..3031876928f0 100644 --- a/python/ql/test/query-tests/Security/CWE-078-CommandInjection/CommandInjection.expected +++ b/python/ql/test/query-tests/Security/CWE-078-CommandInjection/CommandInjection.expected @@ -1,50 +1,50 @@ edges -| command_injection.py:5:26:5:32 | ControlFlowNode for ImportMember | command_injection.py:5:26:5:32 | ControlFlowNode for request | -| command_injection.py:5:26:5:32 | ControlFlowNode for request | command_injection.py:11:13:11:19 | ControlFlowNode for request | -| command_injection.py:5:26:5:32 | ControlFlowNode for request | command_injection.py:18:13:18:19 | ControlFlowNode for request | -| command_injection.py:5:26:5:32 | ControlFlowNode for request | command_injection.py:25:11:25:17 | ControlFlowNode for request | -| command_injection.py:5:26:5:32 | ControlFlowNode for request | command_injection.py:31:13:31:19 | ControlFlowNode for request | -| command_injection.py:5:26:5:32 | ControlFlowNode for request | command_injection.py:38:15:38:21 | ControlFlowNode for request | -| command_injection.py:5:26:5:32 | ControlFlowNode for request | command_injection.py:54:15:54:21 | ControlFlowNode for request | -| command_injection.py:5:26:5:32 | ControlFlowNode for request | command_injection.py:71:12:71:18 | ControlFlowNode for request | -| command_injection.py:5:26:5:32 | ControlFlowNode for request | command_injection.py:78:12:78:18 | ControlFlowNode for request | -| command_injection.py:11:5:11:9 | ControlFlowNode for files | command_injection.py:13:15:13:27 | ControlFlowNode for BinaryExpr | -| command_injection.py:11:13:11:19 | ControlFlowNode for request | command_injection.py:11:13:11:24 | ControlFlowNode for Attribute | -| command_injection.py:11:13:11:24 | ControlFlowNode for Attribute | command_injection.py:11:13:11:41 | ControlFlowNode for Attribute() | -| command_injection.py:11:13:11:41 | ControlFlowNode for Attribute() | command_injection.py:11:5:11:9 | ControlFlowNode for files | -| command_injection.py:18:5:18:9 | ControlFlowNode for files | command_injection.py:20:22:20:34 | ControlFlowNode for BinaryExpr | -| command_injection.py:18:13:18:19 | ControlFlowNode for request | command_injection.py:18:13:18:24 | ControlFlowNode for Attribute | -| command_injection.py:18:13:18:24 | ControlFlowNode for Attribute | command_injection.py:18:13:18:41 | ControlFlowNode for Attribute() | -| command_injection.py:18:13:18:41 | ControlFlowNode for Attribute() | command_injection.py:18:5:18:9 | ControlFlowNode for files | -| command_injection.py:25:5:25:7 | ControlFlowNode for cmd | command_injection.py:26:23:26:25 | ControlFlowNode for cmd | -| command_injection.py:25:11:25:17 | ControlFlowNode for request | command_injection.py:25:11:25:22 | ControlFlowNode for Attribute | -| command_injection.py:25:11:25:22 | ControlFlowNode for Attribute | command_injection.py:25:11:25:37 | ControlFlowNode for Attribute() | -| command_injection.py:25:11:25:37 | ControlFlowNode for Attribute() | command_injection.py:25:5:25:7 | ControlFlowNode for cmd | -| command_injection.py:31:5:31:9 | ControlFlowNode for files | command_injection.py:33:14:33:26 | ControlFlowNode for BinaryExpr | -| command_injection.py:31:13:31:19 | ControlFlowNode for request | command_injection.py:31:13:31:24 | ControlFlowNode for Attribute | -| command_injection.py:31:13:31:24 | ControlFlowNode for Attribute | command_injection.py:31:13:31:41 | ControlFlowNode for Attribute() | -| command_injection.py:31:13:31:41 | ControlFlowNode for Attribute() | command_injection.py:31:5:31:9 | ControlFlowNode for files | -| command_injection.py:38:5:38:11 | ControlFlowNode for command | command_injection.py:41:15:41:21 | ControlFlowNode for command | -| command_injection.py:38:5:38:11 | ControlFlowNode for command | command_injection.py:42:15:42:21 | ControlFlowNode for command | -| command_injection.py:38:15:38:21 | ControlFlowNode for request | command_injection.py:38:15:38:26 | ControlFlowNode for Attribute | -| command_injection.py:38:15:38:26 | ControlFlowNode for Attribute | command_injection.py:38:15:38:45 | ControlFlowNode for Attribute() | -| command_injection.py:38:15:38:45 | ControlFlowNode for Attribute() | command_injection.py:38:5:38:11 | ControlFlowNode for command | -| command_injection.py:54:5:54:11 | ControlFlowNode for command | command_injection.py:55:15:55:21 | ControlFlowNode for command | -| command_injection.py:54:5:54:11 | ControlFlowNode for command | command_injection.py:56:14:56:20 | ControlFlowNode for command | -| command_injection.py:54:5:54:11 | ControlFlowNode for command | command_injection.py:57:21:57:27 | ControlFlowNode for command | -| command_injection.py:54:5:54:11 | ControlFlowNode for command | command_injection.py:58:27:58:33 | ControlFlowNode for command | -| command_injection.py:54:5:54:11 | ControlFlowNode for command | command_injection.py:59:20:59:26 | ControlFlowNode for command | -| command_injection.py:54:15:54:21 | ControlFlowNode for request | command_injection.py:54:15:54:26 | ControlFlowNode for Attribute | -| command_injection.py:54:15:54:26 | ControlFlowNode for Attribute | command_injection.py:54:15:54:45 | ControlFlowNode for Attribute() | -| command_injection.py:54:15:54:45 | ControlFlowNode for Attribute() | command_injection.py:54:5:54:11 | ControlFlowNode for command | -| command_injection.py:71:5:71:8 | ControlFlowNode for path | command_injection.py:73:19:73:30 | ControlFlowNode for BinaryExpr | -| command_injection.py:71:12:71:18 | ControlFlowNode for request | command_injection.py:71:12:71:23 | ControlFlowNode for Attribute | -| command_injection.py:71:12:71:23 | ControlFlowNode for Attribute | command_injection.py:71:12:71:39 | ControlFlowNode for Attribute() | -| command_injection.py:71:12:71:39 | ControlFlowNode for Attribute() | command_injection.py:71:5:71:8 | ControlFlowNode for path | -| command_injection.py:78:5:78:8 | ControlFlowNode for path | command_injection.py:80:19:80:30 | ControlFlowNode for BinaryExpr | -| command_injection.py:78:12:78:18 | ControlFlowNode for request | command_injection.py:78:12:78:23 | ControlFlowNode for Attribute | -| command_injection.py:78:12:78:23 | ControlFlowNode for Attribute | command_injection.py:78:12:78:39 | ControlFlowNode for Attribute() | -| command_injection.py:78:12:78:39 | ControlFlowNode for Attribute() | command_injection.py:78:5:78:8 | ControlFlowNode for path | +| command_injection.py:5:26:5:32 | ControlFlowNode for ImportMember | command_injection.py:5:26:5:32 | ControlFlowNode for request | provenance | | +| command_injection.py:5:26:5:32 | ControlFlowNode for request | command_injection.py:11:13:11:19 | ControlFlowNode for request | provenance | | +| command_injection.py:5:26:5:32 | ControlFlowNode for request | command_injection.py:18:13:18:19 | ControlFlowNode for request | provenance | | +| command_injection.py:5:26:5:32 | ControlFlowNode for request | command_injection.py:25:11:25:17 | ControlFlowNode for request | provenance | | +| command_injection.py:5:26:5:32 | ControlFlowNode for request | command_injection.py:31:13:31:19 | ControlFlowNode for request | provenance | | +| command_injection.py:5:26:5:32 | ControlFlowNode for request | command_injection.py:38:15:38:21 | ControlFlowNode for request | provenance | | +| command_injection.py:5:26:5:32 | ControlFlowNode for request | command_injection.py:54:15:54:21 | ControlFlowNode for request | provenance | | +| command_injection.py:5:26:5:32 | ControlFlowNode for request | command_injection.py:71:12:71:18 | ControlFlowNode for request | provenance | | +| command_injection.py:5:26:5:32 | ControlFlowNode for request | command_injection.py:78:12:78:18 | ControlFlowNode for request | provenance | | +| command_injection.py:11:5:11:9 | ControlFlowNode for files | command_injection.py:13:15:13:27 | ControlFlowNode for BinaryExpr | provenance | | +| command_injection.py:11:13:11:19 | ControlFlowNode for request | command_injection.py:11:13:11:24 | ControlFlowNode for Attribute | provenance | | +| command_injection.py:11:13:11:24 | ControlFlowNode for Attribute | command_injection.py:11:13:11:41 | ControlFlowNode for Attribute() | provenance | | +| command_injection.py:11:13:11:41 | ControlFlowNode for Attribute() | command_injection.py:11:5:11:9 | ControlFlowNode for files | provenance | | +| command_injection.py:18:5:18:9 | ControlFlowNode for files | command_injection.py:20:22:20:34 | ControlFlowNode for BinaryExpr | provenance | | +| command_injection.py:18:13:18:19 | ControlFlowNode for request | command_injection.py:18:13:18:24 | ControlFlowNode for Attribute | provenance | | +| command_injection.py:18:13:18:24 | ControlFlowNode for Attribute | command_injection.py:18:13:18:41 | ControlFlowNode for Attribute() | provenance | | +| command_injection.py:18:13:18:41 | ControlFlowNode for Attribute() | command_injection.py:18:5:18:9 | ControlFlowNode for files | provenance | | +| command_injection.py:25:5:25:7 | ControlFlowNode for cmd | command_injection.py:26:23:26:25 | ControlFlowNode for cmd | provenance | | +| command_injection.py:25:11:25:17 | ControlFlowNode for request | command_injection.py:25:11:25:22 | ControlFlowNode for Attribute | provenance | | +| command_injection.py:25:11:25:22 | ControlFlowNode for Attribute | command_injection.py:25:11:25:37 | ControlFlowNode for Attribute() | provenance | | +| command_injection.py:25:11:25:37 | ControlFlowNode for Attribute() | command_injection.py:25:5:25:7 | ControlFlowNode for cmd | provenance | | +| command_injection.py:31:5:31:9 | ControlFlowNode for files | command_injection.py:33:14:33:26 | ControlFlowNode for BinaryExpr | provenance | | +| command_injection.py:31:13:31:19 | ControlFlowNode for request | command_injection.py:31:13:31:24 | ControlFlowNode for Attribute | provenance | | +| command_injection.py:31:13:31:24 | ControlFlowNode for Attribute | command_injection.py:31:13:31:41 | ControlFlowNode for Attribute() | provenance | | +| command_injection.py:31:13:31:41 | ControlFlowNode for Attribute() | command_injection.py:31:5:31:9 | ControlFlowNode for files | provenance | | +| command_injection.py:38:5:38:11 | ControlFlowNode for command | command_injection.py:41:15:41:21 | ControlFlowNode for command | provenance | | +| command_injection.py:38:5:38:11 | ControlFlowNode for command | command_injection.py:42:15:42:21 | ControlFlowNode for command | provenance | | +| command_injection.py:38:15:38:21 | ControlFlowNode for request | command_injection.py:38:15:38:26 | ControlFlowNode for Attribute | provenance | | +| command_injection.py:38:15:38:26 | ControlFlowNode for Attribute | command_injection.py:38:15:38:45 | ControlFlowNode for Attribute() | provenance | | +| command_injection.py:38:15:38:45 | ControlFlowNode for Attribute() | command_injection.py:38:5:38:11 | ControlFlowNode for command | provenance | | +| command_injection.py:54:5:54:11 | ControlFlowNode for command | command_injection.py:55:15:55:21 | ControlFlowNode for command | provenance | | +| command_injection.py:54:5:54:11 | ControlFlowNode for command | command_injection.py:56:14:56:20 | ControlFlowNode for command | provenance | | +| command_injection.py:54:5:54:11 | ControlFlowNode for command | command_injection.py:57:21:57:27 | ControlFlowNode for command | provenance | | +| command_injection.py:54:5:54:11 | ControlFlowNode for command | command_injection.py:58:27:58:33 | ControlFlowNode for command | provenance | | +| command_injection.py:54:5:54:11 | ControlFlowNode for command | command_injection.py:59:20:59:26 | ControlFlowNode for command | provenance | | +| command_injection.py:54:15:54:21 | ControlFlowNode for request | command_injection.py:54:15:54:26 | ControlFlowNode for Attribute | provenance | | +| command_injection.py:54:15:54:26 | ControlFlowNode for Attribute | command_injection.py:54:15:54:45 | ControlFlowNode for Attribute() | provenance | | +| command_injection.py:54:15:54:45 | ControlFlowNode for Attribute() | command_injection.py:54:5:54:11 | ControlFlowNode for command | provenance | | +| command_injection.py:71:5:71:8 | ControlFlowNode for path | command_injection.py:73:19:73:30 | ControlFlowNode for BinaryExpr | provenance | | +| command_injection.py:71:12:71:18 | ControlFlowNode for request | command_injection.py:71:12:71:23 | ControlFlowNode for Attribute | provenance | | +| command_injection.py:71:12:71:23 | ControlFlowNode for Attribute | command_injection.py:71:12:71:39 | ControlFlowNode for Attribute() | provenance | | +| command_injection.py:71:12:71:39 | ControlFlowNode for Attribute() | command_injection.py:71:5:71:8 | ControlFlowNode for path | provenance | | +| command_injection.py:78:5:78:8 | ControlFlowNode for path | command_injection.py:80:19:80:30 | ControlFlowNode for BinaryExpr | provenance | | +| command_injection.py:78:12:78:18 | ControlFlowNode for request | command_injection.py:78:12:78:23 | ControlFlowNode for Attribute | provenance | | +| command_injection.py:78:12:78:23 | ControlFlowNode for Attribute | command_injection.py:78:12:78:39 | ControlFlowNode for Attribute() | provenance | | +| command_injection.py:78:12:78:39 | ControlFlowNode for Attribute() | command_injection.py:78:5:78:8 | ControlFlowNode for path | provenance | | nodes | command_injection.py:5:26:5:32 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | | command_injection.py:5:26:5:32 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | diff --git a/python/ql/test/query-tests/Security/CWE-078-UnsafeShellCommandConstruction/UnsafeShellCommandConstruction.expected b/python/ql/test/query-tests/Security/CWE-078-UnsafeShellCommandConstruction/UnsafeShellCommandConstruction.expected index 88015c57ebfd..e53508f61a5a 100644 --- a/python/ql/test/query-tests/Security/CWE-078-UnsafeShellCommandConstruction/UnsafeShellCommandConstruction.expected +++ b/python/ql/test/query-tests/Security/CWE-078-UnsafeShellCommandConstruction/UnsafeShellCommandConstruction.expected @@ -1,15 +1,15 @@ edges -| src/unsafe_shell_test.py:4:22:4:25 | ControlFlowNode for name | src/unsafe_shell_test.py:5:25:5:28 | ControlFlowNode for name | -| src/unsafe_shell_test.py:4:22:4:25 | ControlFlowNode for name | src/unsafe_shell_test.py:8:23:8:26 | ControlFlowNode for name | -| src/unsafe_shell_test.py:4:22:4:25 | ControlFlowNode for name | src/unsafe_shell_test.py:11:25:11:38 | ControlFlowNode for Attribute() | -| src/unsafe_shell_test.py:4:22:4:25 | ControlFlowNode for name | src/unsafe_shell_test.py:14:25:14:40 | ControlFlowNode for Attribute() | -| src/unsafe_shell_test.py:4:22:4:25 | ControlFlowNode for name | src/unsafe_shell_test.py:17:32:17:35 | ControlFlowNode for name | -| src/unsafe_shell_test.py:4:22:4:25 | ControlFlowNode for name | src/unsafe_shell_test.py:20:27:20:30 | ControlFlowNode for name | -| src/unsafe_shell_test.py:26:20:26:23 | ControlFlowNode for name | src/unsafe_shell_test.py:29:30:29:33 | ControlFlowNode for name | -| src/unsafe_shell_test.py:36:22:36:25 | ControlFlowNode for name | src/unsafe_shell_test.py:39:30:39:33 | ControlFlowNode for name | -| src/unsafe_shell_test.py:36:22:36:25 | ControlFlowNode for name | src/unsafe_shell_test.py:44:20:44:23 | ControlFlowNode for name | -| src/unsafe_shell_test.py:41:24:41:24 | ControlFlowNode for x | src/unsafe_shell_test.py:42:34:42:34 | ControlFlowNode for x | -| src/unsafe_shell_test.py:44:20:44:23 | ControlFlowNode for name | src/unsafe_shell_test.py:41:24:41:24 | ControlFlowNode for x | +| src/unsafe_shell_test.py:4:22:4:25 | ControlFlowNode for name | src/unsafe_shell_test.py:5:25:5:28 | ControlFlowNode for name | provenance | | +| src/unsafe_shell_test.py:4:22:4:25 | ControlFlowNode for name | src/unsafe_shell_test.py:8:23:8:26 | ControlFlowNode for name | provenance | | +| src/unsafe_shell_test.py:4:22:4:25 | ControlFlowNode for name | src/unsafe_shell_test.py:11:25:11:38 | ControlFlowNode for Attribute() | provenance | | +| src/unsafe_shell_test.py:4:22:4:25 | ControlFlowNode for name | src/unsafe_shell_test.py:14:25:14:40 | ControlFlowNode for Attribute() | provenance | | +| src/unsafe_shell_test.py:4:22:4:25 | ControlFlowNode for name | src/unsafe_shell_test.py:17:32:17:35 | ControlFlowNode for name | provenance | | +| src/unsafe_shell_test.py:4:22:4:25 | ControlFlowNode for name | src/unsafe_shell_test.py:20:27:20:30 | ControlFlowNode for name | provenance | | +| src/unsafe_shell_test.py:26:20:26:23 | ControlFlowNode for name | src/unsafe_shell_test.py:29:30:29:33 | ControlFlowNode for name | provenance | | +| src/unsafe_shell_test.py:36:22:36:25 | ControlFlowNode for name | src/unsafe_shell_test.py:39:30:39:33 | ControlFlowNode for name | provenance | | +| src/unsafe_shell_test.py:36:22:36:25 | ControlFlowNode for name | src/unsafe_shell_test.py:44:20:44:23 | ControlFlowNode for name | provenance | | +| src/unsafe_shell_test.py:41:24:41:24 | ControlFlowNode for x | src/unsafe_shell_test.py:42:34:42:34 | ControlFlowNode for x | provenance | | +| src/unsafe_shell_test.py:44:20:44:23 | ControlFlowNode for name | src/unsafe_shell_test.py:41:24:41:24 | ControlFlowNode for x | provenance | | nodes | src/unsafe_shell_test.py:4:22:4:25 | ControlFlowNode for name | semmle.label | ControlFlowNode for name | | src/unsafe_shell_test.py:5:25:5:28 | ControlFlowNode for name | semmle.label | ControlFlowNode for name | diff --git a/python/ql/test/query-tests/Security/CWE-079-ReflectedXss/ReflectedXss.expected b/python/ql/test/query-tests/Security/CWE-079-ReflectedXss/ReflectedXss.expected index a779dea257fe..26ac30701840 100644 --- a/python/ql/test/query-tests/Security/CWE-079-ReflectedXss/ReflectedXss.expected +++ b/python/ql/test/query-tests/Security/CWE-079-ReflectedXss/ReflectedXss.expected @@ -1,16 +1,16 @@ edges -| reflected_xss.py:2:26:2:32 | ControlFlowNode for ImportMember | reflected_xss.py:2:26:2:32 | ControlFlowNode for request | -| reflected_xss.py:2:26:2:32 | ControlFlowNode for request | reflected_xss.py:9:18:9:24 | ControlFlowNode for request | -| reflected_xss.py:2:26:2:32 | ControlFlowNode for request | reflected_xss.py:21:23:21:29 | ControlFlowNode for request | -| reflected_xss.py:2:26:2:32 | ControlFlowNode for request | reflected_xss.py:27:23:27:29 | ControlFlowNode for request | -| reflected_xss.py:9:5:9:14 | ControlFlowNode for first_name | reflected_xss.py:10:26:10:53 | ControlFlowNode for BinaryExpr | -| reflected_xss.py:9:18:9:24 | ControlFlowNode for request | reflected_xss.py:9:18:9:29 | ControlFlowNode for Attribute | -| reflected_xss.py:9:18:9:29 | ControlFlowNode for Attribute | reflected_xss.py:9:18:9:45 | ControlFlowNode for Attribute() | -| reflected_xss.py:9:18:9:45 | ControlFlowNode for Attribute() | reflected_xss.py:9:5:9:14 | ControlFlowNode for first_name | -| reflected_xss.py:21:5:21:8 | ControlFlowNode for data | reflected_xss.py:22:26:22:41 | ControlFlowNode for Attribute() | -| reflected_xss.py:21:23:21:29 | ControlFlowNode for request | reflected_xss.py:21:5:21:8 | ControlFlowNode for data | -| reflected_xss.py:27:5:27:8 | ControlFlowNode for data | reflected_xss.py:28:26:28:41 | ControlFlowNode for Attribute() | -| reflected_xss.py:27:23:27:29 | ControlFlowNode for request | reflected_xss.py:27:5:27:8 | ControlFlowNode for data | +| reflected_xss.py:2:26:2:32 | ControlFlowNode for ImportMember | reflected_xss.py:2:26:2:32 | ControlFlowNode for request | provenance | | +| reflected_xss.py:2:26:2:32 | ControlFlowNode for request | reflected_xss.py:9:18:9:24 | ControlFlowNode for request | provenance | | +| reflected_xss.py:2:26:2:32 | ControlFlowNode for request | reflected_xss.py:21:23:21:29 | ControlFlowNode for request | provenance | | +| reflected_xss.py:2:26:2:32 | ControlFlowNode for request | reflected_xss.py:27:23:27:29 | ControlFlowNode for request | provenance | | +| reflected_xss.py:9:5:9:14 | ControlFlowNode for first_name | reflected_xss.py:10:26:10:53 | ControlFlowNode for BinaryExpr | provenance | | +| reflected_xss.py:9:18:9:24 | ControlFlowNode for request | reflected_xss.py:9:18:9:29 | ControlFlowNode for Attribute | provenance | | +| reflected_xss.py:9:18:9:29 | ControlFlowNode for Attribute | reflected_xss.py:9:18:9:45 | ControlFlowNode for Attribute() | provenance | | +| reflected_xss.py:9:18:9:45 | ControlFlowNode for Attribute() | reflected_xss.py:9:5:9:14 | ControlFlowNode for first_name | provenance | | +| reflected_xss.py:21:5:21:8 | ControlFlowNode for data | reflected_xss.py:22:26:22:41 | ControlFlowNode for Attribute() | provenance | | +| reflected_xss.py:21:23:21:29 | ControlFlowNode for request | reflected_xss.py:21:5:21:8 | ControlFlowNode for data | provenance | | +| reflected_xss.py:27:5:27:8 | ControlFlowNode for data | reflected_xss.py:28:26:28:41 | ControlFlowNode for Attribute() | provenance | | +| reflected_xss.py:27:23:27:29 | ControlFlowNode for request | reflected_xss.py:27:5:27:8 | ControlFlowNode for data | provenance | | nodes | reflected_xss.py:2:26:2:32 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | | reflected_xss.py:2:26:2:32 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | diff --git a/python/ql/test/query-tests/Security/CWE-089-SqlInjection/SqlInjection.expected b/python/ql/test/query-tests/Security/CWE-089-SqlInjection/SqlInjection.expected index 46379fcbbc42..9ff8b1d718c1 100644 --- a/python/ql/test/query-tests/Security/CWE-089-SqlInjection/SqlInjection.expected +++ b/python/ql/test/query-tests/Security/CWE-089-SqlInjection/SqlInjection.expected @@ -1,20 +1,20 @@ edges -| sql_injection.py:14:15:14:22 | ControlFlowNode for username | sql_injection.py:21:24:21:77 | ControlFlowNode for BinaryExpr | -| sql_injection.py:14:15:14:22 | ControlFlowNode for username | sql_injection.py:24:38:24:95 | ControlFlowNode for BinaryExpr | -| sql_injection.py:14:15:14:22 | ControlFlowNode for username | sql_injection.py:25:26:25:83 | ControlFlowNode for BinaryExpr | -| sql_injection.py:14:15:14:22 | ControlFlowNode for username | sql_injection.py:26:28:26:85 | ControlFlowNode for BinaryExpr | -| sqlalchemy_textclause.py:23:15:23:22 | ControlFlowNode for username | sqlalchemy_textclause.py:27:28:27:87 | ControlFlowNode for Attribute() | -| sqlalchemy_textclause.py:23:15:23:22 | ControlFlowNode for username | sqlalchemy_textclause.py:31:50:31:72 | ControlFlowNode for Attribute() | -| sqlalchemy_textclause.py:23:15:23:22 | ControlFlowNode for username | sqlalchemy_textclause.py:41:26:41:33 | ControlFlowNode for username | -| sqlalchemy_textclause.py:23:15:23:22 | ControlFlowNode for username | sqlalchemy_textclause.py:42:31:42:38 | ControlFlowNode for username | -| sqlalchemy_textclause.py:23:15:23:22 | ControlFlowNode for username | sqlalchemy_textclause.py:43:30:43:37 | ControlFlowNode for username | -| sqlalchemy_textclause.py:23:15:23:22 | ControlFlowNode for username | sqlalchemy_textclause.py:44:35:44:42 | ControlFlowNode for username | -| sqlalchemy_textclause.py:23:15:23:22 | ControlFlowNode for username | sqlalchemy_textclause.py:45:41:45:48 | ControlFlowNode for username | -| sqlalchemy_textclause.py:23:15:23:22 | ControlFlowNode for username | sqlalchemy_textclause.py:46:46:46:53 | ControlFlowNode for username | -| sqlalchemy_textclause.py:23:15:23:22 | ControlFlowNode for username | sqlalchemy_textclause.py:47:47:47:54 | ControlFlowNode for username | -| sqlalchemy_textclause.py:23:15:23:22 | ControlFlowNode for username | sqlalchemy_textclause.py:48:52:48:59 | ControlFlowNode for username | -| sqlalchemy_textclause.py:23:15:23:22 | ControlFlowNode for username | sqlalchemy_textclause.py:50:18:50:25 | ControlFlowNode for username | -| sqlalchemy_textclause.py:23:15:23:22 | ControlFlowNode for username | sqlalchemy_textclause.py:51:24:51:31 | ControlFlowNode for username | +| sql_injection.py:14:15:14:22 | ControlFlowNode for username | sql_injection.py:21:24:21:77 | ControlFlowNode for BinaryExpr | provenance | | +| sql_injection.py:14:15:14:22 | ControlFlowNode for username | sql_injection.py:24:38:24:95 | ControlFlowNode for BinaryExpr | provenance | | +| sql_injection.py:14:15:14:22 | ControlFlowNode for username | sql_injection.py:25:26:25:83 | ControlFlowNode for BinaryExpr | provenance | | +| sql_injection.py:14:15:14:22 | ControlFlowNode for username | sql_injection.py:26:28:26:85 | ControlFlowNode for BinaryExpr | provenance | | +| sqlalchemy_textclause.py:23:15:23:22 | ControlFlowNode for username | sqlalchemy_textclause.py:27:28:27:87 | ControlFlowNode for Attribute() | provenance | | +| sqlalchemy_textclause.py:23:15:23:22 | ControlFlowNode for username | sqlalchemy_textclause.py:31:50:31:72 | ControlFlowNode for Attribute() | provenance | | +| sqlalchemy_textclause.py:23:15:23:22 | ControlFlowNode for username | sqlalchemy_textclause.py:41:26:41:33 | ControlFlowNode for username | provenance | | +| sqlalchemy_textclause.py:23:15:23:22 | ControlFlowNode for username | sqlalchemy_textclause.py:42:31:42:38 | ControlFlowNode for username | provenance | | +| sqlalchemy_textclause.py:23:15:23:22 | ControlFlowNode for username | sqlalchemy_textclause.py:43:30:43:37 | ControlFlowNode for username | provenance | | +| sqlalchemy_textclause.py:23:15:23:22 | ControlFlowNode for username | sqlalchemy_textclause.py:44:35:44:42 | ControlFlowNode for username | provenance | | +| sqlalchemy_textclause.py:23:15:23:22 | ControlFlowNode for username | sqlalchemy_textclause.py:45:41:45:48 | ControlFlowNode for username | provenance | | +| sqlalchemy_textclause.py:23:15:23:22 | ControlFlowNode for username | sqlalchemy_textclause.py:46:46:46:53 | ControlFlowNode for username | provenance | | +| sqlalchemy_textclause.py:23:15:23:22 | ControlFlowNode for username | sqlalchemy_textclause.py:47:47:47:54 | ControlFlowNode for username | provenance | | +| sqlalchemy_textclause.py:23:15:23:22 | ControlFlowNode for username | sqlalchemy_textclause.py:48:52:48:59 | ControlFlowNode for username | provenance | | +| sqlalchemy_textclause.py:23:15:23:22 | ControlFlowNode for username | sqlalchemy_textclause.py:50:18:50:25 | ControlFlowNode for username | provenance | | +| sqlalchemy_textclause.py:23:15:23:22 | ControlFlowNode for username | sqlalchemy_textclause.py:51:24:51:31 | ControlFlowNode for username | provenance | | nodes | sql_injection.py:14:15:14:22 | ControlFlowNode for username | semmle.label | ControlFlowNode for username | | sql_injection.py:21:24:21:77 | ControlFlowNode for BinaryExpr | semmle.label | ControlFlowNode for BinaryExpr | diff --git a/python/ql/test/query-tests/Security/CWE-090-LdapInjection/LdapInjection.expected b/python/ql/test/query-tests/Security/CWE-090-LdapInjection/LdapInjection.expected index 3461b853756d..295e2e889554 100644 --- a/python/ql/test/query-tests/Security/CWE-090-LdapInjection/LdapInjection.expected +++ b/python/ql/test/query-tests/Security/CWE-090-LdapInjection/LdapInjection.expected @@ -1,58 +1,58 @@ edges -| ldap3_bad.py:1:19:1:25 | ControlFlowNode for ImportMember | ldap3_bad.py:1:19:1:25 | ControlFlowNode for request | -| ldap3_bad.py:1:19:1:25 | ControlFlowNode for ImportMember | ldap3_bad.py:1:19:1:25 | ControlFlowNode for request | -| ldap3_bad.py:1:19:1:25 | ControlFlowNode for request | ldap3_bad.py:13:17:13:23 | ControlFlowNode for request | -| ldap3_bad.py:1:19:1:25 | ControlFlowNode for request | ldap3_bad.py:13:17:13:23 | ControlFlowNode for request | -| ldap3_bad.py:1:19:1:25 | ControlFlowNode for request | ldap3_bad.py:14:21:14:27 | ControlFlowNode for request | -| ldap3_bad.py:1:19:1:25 | ControlFlowNode for request | ldap3_bad.py:30:17:30:23 | ControlFlowNode for request | -| ldap3_bad.py:1:19:1:25 | ControlFlowNode for request | ldap3_bad.py:30:17:30:23 | ControlFlowNode for request | -| ldap3_bad.py:1:19:1:25 | ControlFlowNode for request | ldap3_bad.py:31:21:31:27 | ControlFlowNode for request | -| ldap3_bad.py:13:5:13:13 | ControlFlowNode for unsafe_dc | ldap3_bad.py:16:5:16:6 | ControlFlowNode for dn | -| ldap3_bad.py:13:17:13:23 | ControlFlowNode for request | ldap3_bad.py:13:5:13:13 | ControlFlowNode for unsafe_dc | -| ldap3_bad.py:13:17:13:23 | ControlFlowNode for request | ldap3_bad.py:14:5:14:17 | ControlFlowNode for unsafe_filter | -| ldap3_bad.py:14:5:14:17 | ControlFlowNode for unsafe_filter | ldap3_bad.py:17:5:17:17 | ControlFlowNode for search_filter | -| ldap3_bad.py:14:21:14:27 | ControlFlowNode for request | ldap3_bad.py:14:5:14:17 | ControlFlowNode for unsafe_filter | -| ldap3_bad.py:16:5:16:6 | ControlFlowNode for dn | ldap3_bad.py:21:17:21:18 | ControlFlowNode for dn | -| ldap3_bad.py:17:5:17:17 | ControlFlowNode for search_filter | ldap3_bad.py:21:21:21:33 | ControlFlowNode for search_filter | -| ldap3_bad.py:30:5:30:13 | ControlFlowNode for unsafe_dc | ldap3_bad.py:33:5:33:6 | ControlFlowNode for dn | -| ldap3_bad.py:30:17:30:23 | ControlFlowNode for request | ldap3_bad.py:30:5:30:13 | ControlFlowNode for unsafe_dc | -| ldap3_bad.py:30:17:30:23 | ControlFlowNode for request | ldap3_bad.py:31:5:31:17 | ControlFlowNode for unsafe_filter | -| ldap3_bad.py:31:5:31:17 | ControlFlowNode for unsafe_filter | ldap3_bad.py:34:5:34:17 | ControlFlowNode for search_filter | -| ldap3_bad.py:31:21:31:27 | ControlFlowNode for request | ldap3_bad.py:31:5:31:17 | ControlFlowNode for unsafe_filter | -| ldap3_bad.py:33:5:33:6 | ControlFlowNode for dn | ldap3_bad.py:38:9:38:10 | ControlFlowNode for dn | -| ldap3_bad.py:34:5:34:17 | ControlFlowNode for search_filter | ldap3_bad.py:38:13:38:25 | ControlFlowNode for search_filter | -| ldap_bad.py:1:19:1:25 | ControlFlowNode for ImportMember | ldap_bad.py:1:19:1:25 | ControlFlowNode for request | -| ldap_bad.py:1:19:1:25 | ControlFlowNode for ImportMember | ldap_bad.py:1:19:1:25 | ControlFlowNode for request | -| ldap_bad.py:1:19:1:25 | ControlFlowNode for request | ldap_bad.py:13:17:13:23 | ControlFlowNode for request | -| ldap_bad.py:1:19:1:25 | ControlFlowNode for request | ldap_bad.py:13:17:13:23 | ControlFlowNode for request | -| ldap_bad.py:1:19:1:25 | ControlFlowNode for request | ldap_bad.py:14:21:14:27 | ControlFlowNode for request | -| ldap_bad.py:1:19:1:25 | ControlFlowNode for request | ldap_bad.py:30:17:30:23 | ControlFlowNode for request | -| ldap_bad.py:1:19:1:25 | ControlFlowNode for request | ldap_bad.py:30:17:30:23 | ControlFlowNode for request | -| ldap_bad.py:1:19:1:25 | ControlFlowNode for request | ldap_bad.py:31:21:31:27 | ControlFlowNode for request | -| ldap_bad.py:1:19:1:25 | ControlFlowNode for request | ldap_bad.py:47:17:47:23 | ControlFlowNode for request | -| ldap_bad.py:1:19:1:25 | ControlFlowNode for request | ldap_bad.py:47:17:47:23 | ControlFlowNode for request | -| ldap_bad.py:1:19:1:25 | ControlFlowNode for request | ldap_bad.py:48:21:48:27 | ControlFlowNode for request | -| ldap_bad.py:13:5:13:13 | ControlFlowNode for unsafe_dc | ldap_bad.py:16:5:16:6 | ControlFlowNode for dn | -| ldap_bad.py:13:17:13:23 | ControlFlowNode for request | ldap_bad.py:13:5:13:13 | ControlFlowNode for unsafe_dc | -| ldap_bad.py:13:17:13:23 | ControlFlowNode for request | ldap_bad.py:14:5:14:17 | ControlFlowNode for unsafe_filter | -| ldap_bad.py:14:5:14:17 | ControlFlowNode for unsafe_filter | ldap_bad.py:17:5:17:17 | ControlFlowNode for search_filter | -| ldap_bad.py:14:21:14:27 | ControlFlowNode for request | ldap_bad.py:14:5:14:17 | ControlFlowNode for unsafe_filter | -| ldap_bad.py:16:5:16:6 | ControlFlowNode for dn | ldap_bad.py:21:9:21:10 | ControlFlowNode for dn | -| ldap_bad.py:17:5:17:17 | ControlFlowNode for search_filter | ldap_bad.py:21:33:21:45 | ControlFlowNode for search_filter | -| ldap_bad.py:30:5:30:13 | ControlFlowNode for unsafe_dc | ldap_bad.py:33:5:33:6 | ControlFlowNode for dn | -| ldap_bad.py:30:17:30:23 | ControlFlowNode for request | ldap_bad.py:30:5:30:13 | ControlFlowNode for unsafe_dc | -| ldap_bad.py:30:17:30:23 | ControlFlowNode for request | ldap_bad.py:31:5:31:17 | ControlFlowNode for unsafe_filter | -| ldap_bad.py:31:5:31:17 | ControlFlowNode for unsafe_filter | ldap_bad.py:34:5:34:17 | ControlFlowNode for search_filter | -| ldap_bad.py:31:21:31:27 | ControlFlowNode for request | ldap_bad.py:31:5:31:17 | ControlFlowNode for unsafe_filter | -| ldap_bad.py:33:5:33:6 | ControlFlowNode for dn | ldap_bad.py:37:9:37:10 | ControlFlowNode for dn | -| ldap_bad.py:34:5:34:17 | ControlFlowNode for search_filter | ldap_bad.py:37:33:37:45 | ControlFlowNode for search_filter | -| ldap_bad.py:47:5:47:13 | ControlFlowNode for unsafe_dc | ldap_bad.py:50:5:50:6 | ControlFlowNode for dn | -| ldap_bad.py:47:17:47:23 | ControlFlowNode for request | ldap_bad.py:47:5:47:13 | ControlFlowNode for unsafe_dc | -| ldap_bad.py:47:17:47:23 | ControlFlowNode for request | ldap_bad.py:48:5:48:17 | ControlFlowNode for unsafe_filter | -| ldap_bad.py:48:5:48:17 | ControlFlowNode for unsafe_filter | ldap_bad.py:51:5:51:17 | ControlFlowNode for search_filter | -| ldap_bad.py:48:21:48:27 | ControlFlowNode for request | ldap_bad.py:48:5:48:17 | ControlFlowNode for unsafe_filter | -| ldap_bad.py:50:5:50:6 | ControlFlowNode for dn | ldap_bad.py:55:9:55:10 | ControlFlowNode for dn | -| ldap_bad.py:51:5:51:17 | ControlFlowNode for search_filter | ldap_bad.py:55:43:55:55 | ControlFlowNode for search_filter | +| ldap3_bad.py:1:19:1:25 | ControlFlowNode for ImportMember | ldap3_bad.py:1:19:1:25 | ControlFlowNode for request | provenance | | +| ldap3_bad.py:1:19:1:25 | ControlFlowNode for ImportMember | ldap3_bad.py:1:19:1:25 | ControlFlowNode for request | provenance | | +| ldap3_bad.py:1:19:1:25 | ControlFlowNode for request | ldap3_bad.py:13:17:13:23 | ControlFlowNode for request | provenance | | +| ldap3_bad.py:1:19:1:25 | ControlFlowNode for request | ldap3_bad.py:13:17:13:23 | ControlFlowNode for request | provenance | | +| ldap3_bad.py:1:19:1:25 | ControlFlowNode for request | ldap3_bad.py:14:21:14:27 | ControlFlowNode for request | provenance | | +| ldap3_bad.py:1:19:1:25 | ControlFlowNode for request | ldap3_bad.py:30:17:30:23 | ControlFlowNode for request | provenance | | +| ldap3_bad.py:1:19:1:25 | ControlFlowNode for request | ldap3_bad.py:30:17:30:23 | ControlFlowNode for request | provenance | | +| ldap3_bad.py:1:19:1:25 | ControlFlowNode for request | ldap3_bad.py:31:21:31:27 | ControlFlowNode for request | provenance | | +| ldap3_bad.py:13:5:13:13 | ControlFlowNode for unsafe_dc | ldap3_bad.py:16:5:16:6 | ControlFlowNode for dn | provenance | | +| ldap3_bad.py:13:17:13:23 | ControlFlowNode for request | ldap3_bad.py:13:5:13:13 | ControlFlowNode for unsafe_dc | provenance | | +| ldap3_bad.py:13:17:13:23 | ControlFlowNode for request | ldap3_bad.py:14:5:14:17 | ControlFlowNode for unsafe_filter | provenance | | +| ldap3_bad.py:14:5:14:17 | ControlFlowNode for unsafe_filter | ldap3_bad.py:17:5:17:17 | ControlFlowNode for search_filter | provenance | | +| ldap3_bad.py:14:21:14:27 | ControlFlowNode for request | ldap3_bad.py:14:5:14:17 | ControlFlowNode for unsafe_filter | provenance | | +| ldap3_bad.py:16:5:16:6 | ControlFlowNode for dn | ldap3_bad.py:21:17:21:18 | ControlFlowNode for dn | provenance | | +| ldap3_bad.py:17:5:17:17 | ControlFlowNode for search_filter | ldap3_bad.py:21:21:21:33 | ControlFlowNode for search_filter | provenance | | +| ldap3_bad.py:30:5:30:13 | ControlFlowNode for unsafe_dc | ldap3_bad.py:33:5:33:6 | ControlFlowNode for dn | provenance | | +| ldap3_bad.py:30:17:30:23 | ControlFlowNode for request | ldap3_bad.py:30:5:30:13 | ControlFlowNode for unsafe_dc | provenance | | +| ldap3_bad.py:30:17:30:23 | ControlFlowNode for request | ldap3_bad.py:31:5:31:17 | ControlFlowNode for unsafe_filter | provenance | | +| ldap3_bad.py:31:5:31:17 | ControlFlowNode for unsafe_filter | ldap3_bad.py:34:5:34:17 | ControlFlowNode for search_filter | provenance | | +| ldap3_bad.py:31:21:31:27 | ControlFlowNode for request | ldap3_bad.py:31:5:31:17 | ControlFlowNode for unsafe_filter | provenance | | +| ldap3_bad.py:33:5:33:6 | ControlFlowNode for dn | ldap3_bad.py:38:9:38:10 | ControlFlowNode for dn | provenance | | +| ldap3_bad.py:34:5:34:17 | ControlFlowNode for search_filter | ldap3_bad.py:38:13:38:25 | ControlFlowNode for search_filter | provenance | | +| ldap_bad.py:1:19:1:25 | ControlFlowNode for ImportMember | ldap_bad.py:1:19:1:25 | ControlFlowNode for request | provenance | | +| ldap_bad.py:1:19:1:25 | ControlFlowNode for ImportMember | ldap_bad.py:1:19:1:25 | ControlFlowNode for request | provenance | | +| ldap_bad.py:1:19:1:25 | ControlFlowNode for request | ldap_bad.py:13:17:13:23 | ControlFlowNode for request | provenance | | +| ldap_bad.py:1:19:1:25 | ControlFlowNode for request | ldap_bad.py:13:17:13:23 | ControlFlowNode for request | provenance | | +| ldap_bad.py:1:19:1:25 | ControlFlowNode for request | ldap_bad.py:14:21:14:27 | ControlFlowNode for request | provenance | | +| ldap_bad.py:1:19:1:25 | ControlFlowNode for request | ldap_bad.py:30:17:30:23 | ControlFlowNode for request | provenance | | +| ldap_bad.py:1:19:1:25 | ControlFlowNode for request | ldap_bad.py:30:17:30:23 | ControlFlowNode for request | provenance | | +| ldap_bad.py:1:19:1:25 | ControlFlowNode for request | ldap_bad.py:31:21:31:27 | ControlFlowNode for request | provenance | | +| ldap_bad.py:1:19:1:25 | ControlFlowNode for request | ldap_bad.py:47:17:47:23 | ControlFlowNode for request | provenance | | +| ldap_bad.py:1:19:1:25 | ControlFlowNode for request | ldap_bad.py:47:17:47:23 | ControlFlowNode for request | provenance | | +| ldap_bad.py:1:19:1:25 | ControlFlowNode for request | ldap_bad.py:48:21:48:27 | ControlFlowNode for request | provenance | | +| ldap_bad.py:13:5:13:13 | ControlFlowNode for unsafe_dc | ldap_bad.py:16:5:16:6 | ControlFlowNode for dn | provenance | | +| ldap_bad.py:13:17:13:23 | ControlFlowNode for request | ldap_bad.py:13:5:13:13 | ControlFlowNode for unsafe_dc | provenance | | +| ldap_bad.py:13:17:13:23 | ControlFlowNode for request | ldap_bad.py:14:5:14:17 | ControlFlowNode for unsafe_filter | provenance | | +| ldap_bad.py:14:5:14:17 | ControlFlowNode for unsafe_filter | ldap_bad.py:17:5:17:17 | ControlFlowNode for search_filter | provenance | | +| ldap_bad.py:14:21:14:27 | ControlFlowNode for request | ldap_bad.py:14:5:14:17 | ControlFlowNode for unsafe_filter | provenance | | +| ldap_bad.py:16:5:16:6 | ControlFlowNode for dn | ldap_bad.py:21:9:21:10 | ControlFlowNode for dn | provenance | | +| ldap_bad.py:17:5:17:17 | ControlFlowNode for search_filter | ldap_bad.py:21:33:21:45 | ControlFlowNode for search_filter | provenance | | +| ldap_bad.py:30:5:30:13 | ControlFlowNode for unsafe_dc | ldap_bad.py:33:5:33:6 | ControlFlowNode for dn | provenance | | +| ldap_bad.py:30:17:30:23 | ControlFlowNode for request | ldap_bad.py:30:5:30:13 | ControlFlowNode for unsafe_dc | provenance | | +| ldap_bad.py:30:17:30:23 | ControlFlowNode for request | ldap_bad.py:31:5:31:17 | ControlFlowNode for unsafe_filter | provenance | | +| ldap_bad.py:31:5:31:17 | ControlFlowNode for unsafe_filter | ldap_bad.py:34:5:34:17 | ControlFlowNode for search_filter | provenance | | +| ldap_bad.py:31:21:31:27 | ControlFlowNode for request | ldap_bad.py:31:5:31:17 | ControlFlowNode for unsafe_filter | provenance | | +| ldap_bad.py:33:5:33:6 | ControlFlowNode for dn | ldap_bad.py:37:9:37:10 | ControlFlowNode for dn | provenance | | +| ldap_bad.py:34:5:34:17 | ControlFlowNode for search_filter | ldap_bad.py:37:33:37:45 | ControlFlowNode for search_filter | provenance | | +| ldap_bad.py:47:5:47:13 | ControlFlowNode for unsafe_dc | ldap_bad.py:50:5:50:6 | ControlFlowNode for dn | provenance | | +| ldap_bad.py:47:17:47:23 | ControlFlowNode for request | ldap_bad.py:47:5:47:13 | ControlFlowNode for unsafe_dc | provenance | | +| ldap_bad.py:47:17:47:23 | ControlFlowNode for request | ldap_bad.py:48:5:48:17 | ControlFlowNode for unsafe_filter | provenance | | +| ldap_bad.py:48:5:48:17 | ControlFlowNode for unsafe_filter | ldap_bad.py:51:5:51:17 | ControlFlowNode for search_filter | provenance | | +| ldap_bad.py:48:21:48:27 | ControlFlowNode for request | ldap_bad.py:48:5:48:17 | ControlFlowNode for unsafe_filter | provenance | | +| ldap_bad.py:50:5:50:6 | ControlFlowNode for dn | ldap_bad.py:55:9:55:10 | ControlFlowNode for dn | provenance | | +| ldap_bad.py:51:5:51:17 | ControlFlowNode for search_filter | ldap_bad.py:55:43:55:55 | ControlFlowNode for search_filter | provenance | | nodes | ldap3_bad.py:1:19:1:25 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | | ldap3_bad.py:1:19:1:25 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | diff --git a/python/ql/test/query-tests/Security/CWE-094-CodeInjection/CodeInjection.expected b/python/ql/test/query-tests/Security/CWE-094-CodeInjection/CodeInjection.expected index 2de776c3b288..ff55d1689067 100644 --- a/python/ql/test/query-tests/Security/CWE-094-CodeInjection/CodeInjection.expected +++ b/python/ql/test/query-tests/Security/CWE-094-CodeInjection/CodeInjection.expected @@ -1,18 +1,18 @@ edges -| code_injection.py:1:26:1:32 | ControlFlowNode for ImportMember | code_injection.py:1:26:1:32 | ControlFlowNode for request | -| code_injection.py:1:26:1:32 | ControlFlowNode for request | code_injection.py:6:12:6:18 | ControlFlowNode for request | -| code_injection.py:1:26:1:32 | ControlFlowNode for request | code_injection.py:18:16:18:22 | ControlFlowNode for request | -| code_injection.py:6:5:6:8 | ControlFlowNode for code | code_injection.py:7:10:7:13 | ControlFlowNode for code | -| code_injection.py:6:5:6:8 | ControlFlowNode for code | code_injection.py:8:10:8:13 | ControlFlowNode for code | -| code_injection.py:6:5:6:8 | ControlFlowNode for code | code_injection.py:9:5:9:7 | ControlFlowNode for cmd | -| code_injection.py:6:12:6:18 | ControlFlowNode for request | code_injection.py:6:12:6:23 | ControlFlowNode for Attribute | -| code_injection.py:6:12:6:23 | ControlFlowNode for Attribute | code_injection.py:6:12:6:35 | ControlFlowNode for Attribute() | -| code_injection.py:6:12:6:35 | ControlFlowNode for Attribute() | code_injection.py:6:5:6:8 | ControlFlowNode for code | -| code_injection.py:9:5:9:7 | ControlFlowNode for cmd | code_injection.py:10:10:10:12 | ControlFlowNode for cmd | -| code_injection.py:18:5:18:12 | ControlFlowNode for obj_name | code_injection.py:21:20:21:27 | ControlFlowNode for obj_name | -| code_injection.py:18:16:18:22 | ControlFlowNode for request | code_injection.py:18:16:18:27 | ControlFlowNode for Attribute | -| code_injection.py:18:16:18:27 | ControlFlowNode for Attribute | code_injection.py:18:16:18:38 | ControlFlowNode for Attribute() | -| code_injection.py:18:16:18:38 | ControlFlowNode for Attribute() | code_injection.py:18:5:18:12 | ControlFlowNode for obj_name | +| code_injection.py:1:26:1:32 | ControlFlowNode for ImportMember | code_injection.py:1:26:1:32 | ControlFlowNode for request | provenance | | +| code_injection.py:1:26:1:32 | ControlFlowNode for request | code_injection.py:6:12:6:18 | ControlFlowNode for request | provenance | | +| code_injection.py:1:26:1:32 | ControlFlowNode for request | code_injection.py:18:16:18:22 | ControlFlowNode for request | provenance | | +| code_injection.py:6:5:6:8 | ControlFlowNode for code | code_injection.py:7:10:7:13 | ControlFlowNode for code | provenance | | +| code_injection.py:6:5:6:8 | ControlFlowNode for code | code_injection.py:8:10:8:13 | ControlFlowNode for code | provenance | | +| code_injection.py:6:5:6:8 | ControlFlowNode for code | code_injection.py:9:5:9:7 | ControlFlowNode for cmd | provenance | | +| code_injection.py:6:12:6:18 | ControlFlowNode for request | code_injection.py:6:12:6:23 | ControlFlowNode for Attribute | provenance | | +| code_injection.py:6:12:6:23 | ControlFlowNode for Attribute | code_injection.py:6:12:6:35 | ControlFlowNode for Attribute() | provenance | | +| code_injection.py:6:12:6:35 | ControlFlowNode for Attribute() | code_injection.py:6:5:6:8 | ControlFlowNode for code | provenance | | +| code_injection.py:9:5:9:7 | ControlFlowNode for cmd | code_injection.py:10:10:10:12 | ControlFlowNode for cmd | provenance | | +| code_injection.py:18:5:18:12 | ControlFlowNode for obj_name | code_injection.py:21:20:21:27 | ControlFlowNode for obj_name | provenance | | +| code_injection.py:18:16:18:22 | ControlFlowNode for request | code_injection.py:18:16:18:27 | ControlFlowNode for Attribute | provenance | | +| code_injection.py:18:16:18:27 | ControlFlowNode for Attribute | code_injection.py:18:16:18:38 | ControlFlowNode for Attribute() | provenance | | +| code_injection.py:18:16:18:38 | ControlFlowNode for Attribute() | code_injection.py:18:5:18:12 | ControlFlowNode for obj_name | provenance | | nodes | code_injection.py:1:26:1:32 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | | code_injection.py:1:26:1:32 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | diff --git a/python/ql/test/query-tests/Security/CWE-117-LogInjection/LogInjection.expected b/python/ql/test/query-tests/Security/CWE-117-LogInjection/LogInjection.expected index 1d8c78d35b7e..d0e05dd24212 100644 --- a/python/ql/test/query-tests/Security/CWE-117-LogInjection/LogInjection.expected +++ b/python/ql/test/query-tests/Security/CWE-117-LogInjection/LogInjection.expected @@ -1,25 +1,25 @@ edges -| LogInjectionBad.py:7:19:7:25 | ControlFlowNode for ImportMember | LogInjectionBad.py:7:19:7:25 | ControlFlowNode for request | -| LogInjectionBad.py:7:19:7:25 | ControlFlowNode for request | LogInjectionBad.py:17:12:17:18 | ControlFlowNode for request | -| LogInjectionBad.py:7:19:7:25 | ControlFlowNode for request | LogInjectionBad.py:23:12:23:18 | ControlFlowNode for request | -| LogInjectionBad.py:7:19:7:25 | ControlFlowNode for request | LogInjectionBad.py:29:12:29:18 | ControlFlowNode for request | -| LogInjectionBad.py:7:19:7:25 | ControlFlowNode for request | LogInjectionBad.py:35:12:35:18 | ControlFlowNode for request | -| LogInjectionBad.py:17:5:17:8 | ControlFlowNode for name | LogInjectionBad.py:18:21:18:40 | ControlFlowNode for BinaryExpr | -| LogInjectionBad.py:17:12:17:18 | ControlFlowNode for request | LogInjectionBad.py:17:12:17:23 | ControlFlowNode for Attribute | -| LogInjectionBad.py:17:12:17:23 | ControlFlowNode for Attribute | LogInjectionBad.py:17:12:17:35 | ControlFlowNode for Attribute() | -| LogInjectionBad.py:17:12:17:35 | ControlFlowNode for Attribute() | LogInjectionBad.py:17:5:17:8 | ControlFlowNode for name | -| LogInjectionBad.py:23:5:23:8 | ControlFlowNode for name | LogInjectionBad.py:24:18:24:37 | ControlFlowNode for BinaryExpr | -| LogInjectionBad.py:23:12:23:18 | ControlFlowNode for request | LogInjectionBad.py:23:12:23:23 | ControlFlowNode for Attribute | -| LogInjectionBad.py:23:12:23:23 | ControlFlowNode for Attribute | LogInjectionBad.py:23:12:23:35 | ControlFlowNode for Attribute() | -| LogInjectionBad.py:23:12:23:35 | ControlFlowNode for Attribute() | LogInjectionBad.py:23:5:23:8 | ControlFlowNode for name | -| LogInjectionBad.py:29:5:29:8 | ControlFlowNode for name | LogInjectionBad.py:30:25:30:44 | ControlFlowNode for BinaryExpr | -| LogInjectionBad.py:29:12:29:18 | ControlFlowNode for request | LogInjectionBad.py:29:12:29:23 | ControlFlowNode for Attribute | -| LogInjectionBad.py:29:12:29:23 | ControlFlowNode for Attribute | LogInjectionBad.py:29:12:29:35 | ControlFlowNode for Attribute() | -| LogInjectionBad.py:29:12:29:35 | ControlFlowNode for Attribute() | LogInjectionBad.py:29:5:29:8 | ControlFlowNode for name | -| LogInjectionBad.py:35:5:35:8 | ControlFlowNode for name | LogInjectionBad.py:37:19:37:38 | ControlFlowNode for BinaryExpr | -| LogInjectionBad.py:35:12:35:18 | ControlFlowNode for request | LogInjectionBad.py:35:12:35:23 | ControlFlowNode for Attribute | -| LogInjectionBad.py:35:12:35:23 | ControlFlowNode for Attribute | LogInjectionBad.py:35:12:35:35 | ControlFlowNode for Attribute() | -| LogInjectionBad.py:35:12:35:35 | ControlFlowNode for Attribute() | LogInjectionBad.py:35:5:35:8 | ControlFlowNode for name | +| LogInjectionBad.py:7:19:7:25 | ControlFlowNode for ImportMember | LogInjectionBad.py:7:19:7:25 | ControlFlowNode for request | provenance | | +| LogInjectionBad.py:7:19:7:25 | ControlFlowNode for request | LogInjectionBad.py:17:12:17:18 | ControlFlowNode for request | provenance | | +| LogInjectionBad.py:7:19:7:25 | ControlFlowNode for request | LogInjectionBad.py:23:12:23:18 | ControlFlowNode for request | provenance | | +| LogInjectionBad.py:7:19:7:25 | ControlFlowNode for request | LogInjectionBad.py:29:12:29:18 | ControlFlowNode for request | provenance | | +| LogInjectionBad.py:7:19:7:25 | ControlFlowNode for request | LogInjectionBad.py:35:12:35:18 | ControlFlowNode for request | provenance | | +| LogInjectionBad.py:17:5:17:8 | ControlFlowNode for name | LogInjectionBad.py:18:21:18:40 | ControlFlowNode for BinaryExpr | provenance | | +| LogInjectionBad.py:17:12:17:18 | ControlFlowNode for request | LogInjectionBad.py:17:12:17:23 | ControlFlowNode for Attribute | provenance | | +| LogInjectionBad.py:17:12:17:23 | ControlFlowNode for Attribute | LogInjectionBad.py:17:12:17:35 | ControlFlowNode for Attribute() | provenance | | +| LogInjectionBad.py:17:12:17:35 | ControlFlowNode for Attribute() | LogInjectionBad.py:17:5:17:8 | ControlFlowNode for name | provenance | | +| LogInjectionBad.py:23:5:23:8 | ControlFlowNode for name | LogInjectionBad.py:24:18:24:37 | ControlFlowNode for BinaryExpr | provenance | | +| LogInjectionBad.py:23:12:23:18 | ControlFlowNode for request | LogInjectionBad.py:23:12:23:23 | ControlFlowNode for Attribute | provenance | | +| LogInjectionBad.py:23:12:23:23 | ControlFlowNode for Attribute | LogInjectionBad.py:23:12:23:35 | ControlFlowNode for Attribute() | provenance | | +| LogInjectionBad.py:23:12:23:35 | ControlFlowNode for Attribute() | LogInjectionBad.py:23:5:23:8 | ControlFlowNode for name | provenance | | +| LogInjectionBad.py:29:5:29:8 | ControlFlowNode for name | LogInjectionBad.py:30:25:30:44 | ControlFlowNode for BinaryExpr | provenance | | +| LogInjectionBad.py:29:12:29:18 | ControlFlowNode for request | LogInjectionBad.py:29:12:29:23 | ControlFlowNode for Attribute | provenance | | +| LogInjectionBad.py:29:12:29:23 | ControlFlowNode for Attribute | LogInjectionBad.py:29:12:29:35 | ControlFlowNode for Attribute() | provenance | | +| LogInjectionBad.py:29:12:29:35 | ControlFlowNode for Attribute() | LogInjectionBad.py:29:5:29:8 | ControlFlowNode for name | provenance | | +| LogInjectionBad.py:35:5:35:8 | ControlFlowNode for name | LogInjectionBad.py:37:19:37:38 | ControlFlowNode for BinaryExpr | provenance | | +| LogInjectionBad.py:35:12:35:18 | ControlFlowNode for request | LogInjectionBad.py:35:12:35:23 | ControlFlowNode for Attribute | provenance | | +| LogInjectionBad.py:35:12:35:23 | ControlFlowNode for Attribute | LogInjectionBad.py:35:12:35:35 | ControlFlowNode for Attribute() | provenance | | +| LogInjectionBad.py:35:12:35:35 | ControlFlowNode for Attribute() | LogInjectionBad.py:35:5:35:8 | ControlFlowNode for name | provenance | | nodes | LogInjectionBad.py:7:19:7:25 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | | LogInjectionBad.py:7:19:7:25 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | diff --git a/python/ql/test/query-tests/Security/CWE-209-StackTraceExposure/StackTraceExposure.expected b/python/ql/test/query-tests/Security/CWE-209-StackTraceExposure/StackTraceExposure.expected index 20857567c492..b1023db5e62e 100644 --- a/python/ql/test/query-tests/Security/CWE-209-StackTraceExposure/StackTraceExposure.expected +++ b/python/ql/test/query-tests/Security/CWE-209-StackTraceExposure/StackTraceExposure.expected @@ -1,13 +1,13 @@ edges -| test.py:23:25:23:25 | ControlFlowNode for e | test.py:24:16:24:16 | ControlFlowNode for e | -| test.py:31:25:31:25 | ControlFlowNode for e | test.py:32:16:32:16 | ControlFlowNode for e | -| test.py:32:16:32:16 | ControlFlowNode for e | test.py:32:16:32:30 | ControlFlowNode for Attribute | -| test.py:49:9:49:11 | ControlFlowNode for err | test.py:50:29:50:31 | ControlFlowNode for err | -| test.py:49:15:49:36 | ControlFlowNode for Attribute() | test.py:49:9:49:11 | ControlFlowNode for err | -| test.py:50:29:50:31 | ControlFlowNode for err | test.py:50:16:50:32 | ControlFlowNode for format_error() | -| test.py:50:29:50:31 | ControlFlowNode for err | test.py:52:18:52:20 | ControlFlowNode for msg | -| test.py:52:18:52:20 | ControlFlowNode for msg | test.py:53:12:53:27 | ControlFlowNode for BinaryExpr | -| test.py:65:25:65:25 | ControlFlowNode for e | test.py:66:24:66:40 | ControlFlowNode for Dict | +| test.py:23:25:23:25 | ControlFlowNode for e | test.py:24:16:24:16 | ControlFlowNode for e | provenance | | +| test.py:31:25:31:25 | ControlFlowNode for e | test.py:32:16:32:16 | ControlFlowNode for e | provenance | | +| test.py:32:16:32:16 | ControlFlowNode for e | test.py:32:16:32:30 | ControlFlowNode for Attribute | provenance | | +| test.py:49:9:49:11 | ControlFlowNode for err | test.py:50:29:50:31 | ControlFlowNode for err | provenance | | +| test.py:49:15:49:36 | ControlFlowNode for Attribute() | test.py:49:9:49:11 | ControlFlowNode for err | provenance | | +| test.py:50:29:50:31 | ControlFlowNode for err | test.py:50:16:50:32 | ControlFlowNode for format_error() | provenance | | +| test.py:50:29:50:31 | ControlFlowNode for err | test.py:52:18:52:20 | ControlFlowNode for msg | provenance | | +| test.py:52:18:52:20 | ControlFlowNode for msg | test.py:53:12:53:27 | ControlFlowNode for BinaryExpr | provenance | | +| test.py:65:25:65:25 | ControlFlowNode for e | test.py:66:24:66:40 | ControlFlowNode for Dict | provenance | | nodes | test.py:16:16:16:37 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | | test.py:23:25:23:25 | ControlFlowNode for e | semmle.label | ControlFlowNode for e | diff --git a/python/ql/test/query-tests/Security/CWE-285-PamAuthorization/PamAuthorization.expected b/python/ql/test/query-tests/Security/CWE-285-PamAuthorization/PamAuthorization.expected index 8f69b8c32e36..132383876f6e 100644 --- a/python/ql/test/query-tests/Security/CWE-285-PamAuthorization/PamAuthorization.expected +++ b/python/ql/test/query-tests/Security/CWE-285-PamAuthorization/PamAuthorization.expected @@ -1,13 +1,13 @@ edges -| pam_test.py:4:26:4:32 | ControlFlowNode for ImportMember | pam_test.py:4:26:4:32 | ControlFlowNode for request | -| pam_test.py:4:26:4:32 | ControlFlowNode for request | pam_test.py:71:16:71:22 | ControlFlowNode for request | -| pam_test.py:71:5:71:12 | ControlFlowNode for username | pam_test.py:74:33:74:40 | ControlFlowNode for username | -| pam_test.py:71:16:71:22 | ControlFlowNode for request | pam_test.py:71:16:71:27 | ControlFlowNode for Attribute | -| pam_test.py:71:16:71:27 | ControlFlowNode for Attribute | pam_test.py:71:16:71:47 | ControlFlowNode for Attribute() | -| pam_test.py:71:16:71:47 | ControlFlowNode for Attribute() | pam_test.py:71:5:71:12 | ControlFlowNode for username | -| pam_test.py:74:33:74:40 | ControlFlowNode for username | pam_test.py:74:62:74:67 | ControlFlowNode for handle | -| pam_test.py:74:62:74:67 | ControlFlowNode for handle | pam_test.py:76:31:76:36 | ControlFlowNode for handle | -| pam_test.py:76:31:76:36 | ControlFlowNode for handle | pam_test.py:76:14:76:40 | ControlFlowNode for pam_authenticate() | +| pam_test.py:4:26:4:32 | ControlFlowNode for ImportMember | pam_test.py:4:26:4:32 | ControlFlowNode for request | provenance | | +| pam_test.py:4:26:4:32 | ControlFlowNode for request | pam_test.py:71:16:71:22 | ControlFlowNode for request | provenance | | +| pam_test.py:71:5:71:12 | ControlFlowNode for username | pam_test.py:74:33:74:40 | ControlFlowNode for username | provenance | | +| pam_test.py:71:16:71:22 | ControlFlowNode for request | pam_test.py:71:16:71:27 | ControlFlowNode for Attribute | provenance | | +| pam_test.py:71:16:71:27 | ControlFlowNode for Attribute | pam_test.py:71:16:71:47 | ControlFlowNode for Attribute() | provenance | | +| pam_test.py:71:16:71:47 | ControlFlowNode for Attribute() | pam_test.py:71:5:71:12 | ControlFlowNode for username | provenance | | +| pam_test.py:74:33:74:40 | ControlFlowNode for username | pam_test.py:74:62:74:67 | ControlFlowNode for handle | provenance | | +| pam_test.py:74:62:74:67 | ControlFlowNode for handle | pam_test.py:76:31:76:36 | ControlFlowNode for handle | provenance | | +| pam_test.py:76:31:76:36 | ControlFlowNode for handle | pam_test.py:76:14:76:40 | ControlFlowNode for pam_authenticate() | provenance | | nodes | pam_test.py:4:26:4:32 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | | pam_test.py:4:26:4:32 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | diff --git a/python/ql/test/query-tests/Security/CWE-312-CleartextLogging/CleartextLogging.expected b/python/ql/test/query-tests/Security/CWE-312-CleartextLogging/CleartextLogging.expected index f579afece001..f4b5ef932048 100644 --- a/python/ql/test/query-tests/Security/CWE-312-CleartextLogging/CleartextLogging.expected +++ b/python/ql/test/query-tests/Security/CWE-312-CleartextLogging/CleartextLogging.expected @@ -1,14 +1,14 @@ edges -| test.py:19:5:19:12 | ControlFlowNode for password | test.py:20:48:20:55 | ControlFlowNode for password | -| test.py:19:5:19:12 | ControlFlowNode for password | test.py:22:58:22:65 | ControlFlowNode for password | -| test.py:19:5:19:12 | ControlFlowNode for password | test.py:23:58:23:65 | ControlFlowNode for password | -| test.py:19:5:19:12 | ControlFlowNode for password | test.py:27:40:27:47 | ControlFlowNode for password | -| test.py:19:5:19:12 | ControlFlowNode for password | test.py:30:58:30:65 | ControlFlowNode for password | -| test.py:19:16:19:29 | ControlFlowNode for get_password() | test.py:19:5:19:12 | ControlFlowNode for password | -| test.py:44:5:44:5 | ControlFlowNode for x | test.py:45:11:45:11 | ControlFlowNode for x | -| test.py:44:9:44:25 | ControlFlowNode for Attribute() | test.py:44:5:44:5 | ControlFlowNode for x | -| test.py:70:5:70:10 | ControlFlowNode for config | test.py:74:11:74:31 | ControlFlowNode for Subscript | -| test.py:72:21:72:37 | ControlFlowNode for Attribute | test.py:70:5:70:10 | ControlFlowNode for config | +| test.py:19:5:19:12 | ControlFlowNode for password | test.py:20:48:20:55 | ControlFlowNode for password | provenance | | +| test.py:19:5:19:12 | ControlFlowNode for password | test.py:22:58:22:65 | ControlFlowNode for password | provenance | | +| test.py:19:5:19:12 | ControlFlowNode for password | test.py:23:58:23:65 | ControlFlowNode for password | provenance | | +| test.py:19:5:19:12 | ControlFlowNode for password | test.py:27:40:27:47 | ControlFlowNode for password | provenance | | +| test.py:19:5:19:12 | ControlFlowNode for password | test.py:30:58:30:65 | ControlFlowNode for password | provenance | | +| test.py:19:16:19:29 | ControlFlowNode for get_password() | test.py:19:5:19:12 | ControlFlowNode for password | provenance | | +| test.py:44:5:44:5 | ControlFlowNode for x | test.py:45:11:45:11 | ControlFlowNode for x | provenance | | +| test.py:44:9:44:25 | ControlFlowNode for Attribute() | test.py:44:5:44:5 | ControlFlowNode for x | provenance | | +| test.py:70:5:70:10 | ControlFlowNode for config | test.py:74:11:74:31 | ControlFlowNode for Subscript | provenance | | +| test.py:72:21:72:37 | ControlFlowNode for Attribute | test.py:70:5:70:10 | ControlFlowNode for config | provenance | | nodes | test.py:19:5:19:12 | ControlFlowNode for password | semmle.label | ControlFlowNode for password | | test.py:19:16:19:29 | ControlFlowNode for get_password() | semmle.label | ControlFlowNode for get_password() | diff --git a/python/ql/test/query-tests/Security/CWE-312-CleartextStorage-py3/CleartextStorage.expected b/python/ql/test/query-tests/Security/CWE-312-CleartextStorage-py3/CleartextStorage.expected index 03ff729bf7d6..6b252ea78330 100644 --- a/python/ql/test/query-tests/Security/CWE-312-CleartextStorage-py3/CleartextStorage.expected +++ b/python/ql/test/query-tests/Security/CWE-312-CleartextStorage-py3/CleartextStorage.expected @@ -1,8 +1,8 @@ edges -| test.py:9:5:9:8 | ControlFlowNode for cert | test.py:12:21:12:24 | ControlFlowNode for cert | -| test.py:9:5:9:8 | ControlFlowNode for cert | test.py:13:22:13:41 | ControlFlowNode for Attribute() | -| test.py:9:5:9:8 | ControlFlowNode for cert | test.py:15:26:15:29 | ControlFlowNode for cert | -| test.py:9:12:9:21 | ControlFlowNode for get_cert() | test.py:9:5:9:8 | ControlFlowNode for cert | +| test.py:9:5:9:8 | ControlFlowNode for cert | test.py:12:21:12:24 | ControlFlowNode for cert | provenance | | +| test.py:9:5:9:8 | ControlFlowNode for cert | test.py:13:22:13:41 | ControlFlowNode for Attribute() | provenance | | +| test.py:9:5:9:8 | ControlFlowNode for cert | test.py:15:26:15:29 | ControlFlowNode for cert | provenance | | +| test.py:9:12:9:21 | ControlFlowNode for get_cert() | test.py:9:5:9:8 | ControlFlowNode for cert | provenance | | nodes | test.py:9:5:9:8 | ControlFlowNode for cert | semmle.label | ControlFlowNode for cert | | test.py:9:12:9:21 | ControlFlowNode for get_cert() | semmle.label | ControlFlowNode for get_cert() | diff --git a/python/ql/test/query-tests/Security/CWE-312-CleartextStorage/CleartextStorage.expected b/python/ql/test/query-tests/Security/CWE-312-CleartextStorage/CleartextStorage.expected index 0afd9a578b04..eac0bd37b1bf 100644 --- a/python/ql/test/query-tests/Security/CWE-312-CleartextStorage/CleartextStorage.expected +++ b/python/ql/test/query-tests/Security/CWE-312-CleartextStorage/CleartextStorage.expected @@ -1,12 +1,12 @@ edges -| password_in_cookie.py:7:5:7:12 | ControlFlowNode for password | password_in_cookie.py:9:33:9:40 | ControlFlowNode for password | -| password_in_cookie.py:7:16:7:43 | ControlFlowNode for Attribute() | password_in_cookie.py:7:5:7:12 | ControlFlowNode for password | -| password_in_cookie.py:14:5:14:12 | ControlFlowNode for password | password_in_cookie.py:16:33:16:40 | ControlFlowNode for password | -| password_in_cookie.py:14:16:14:43 | ControlFlowNode for Attribute() | password_in_cookie.py:14:5:14:12 | ControlFlowNode for password | -| test.py:6:5:6:8 | ControlFlowNode for cert | test.py:8:20:8:23 | ControlFlowNode for cert | -| test.py:6:5:6:8 | ControlFlowNode for cert | test.py:9:9:9:13 | ControlFlowNode for lines | -| test.py:6:12:6:21 | ControlFlowNode for get_cert() | test.py:6:5:6:8 | ControlFlowNode for cert | -| test.py:9:9:9:13 | ControlFlowNode for lines | test.py:10:25:10:29 | ControlFlowNode for lines | +| password_in_cookie.py:7:5:7:12 | ControlFlowNode for password | password_in_cookie.py:9:33:9:40 | ControlFlowNode for password | provenance | | +| password_in_cookie.py:7:16:7:43 | ControlFlowNode for Attribute() | password_in_cookie.py:7:5:7:12 | ControlFlowNode for password | provenance | | +| password_in_cookie.py:14:5:14:12 | ControlFlowNode for password | password_in_cookie.py:16:33:16:40 | ControlFlowNode for password | provenance | | +| password_in_cookie.py:14:16:14:43 | ControlFlowNode for Attribute() | password_in_cookie.py:14:5:14:12 | ControlFlowNode for password | provenance | | +| test.py:6:5:6:8 | ControlFlowNode for cert | test.py:8:20:8:23 | ControlFlowNode for cert | provenance | | +| test.py:6:5:6:8 | ControlFlowNode for cert | test.py:9:9:9:13 | ControlFlowNode for lines | provenance | | +| test.py:6:12:6:21 | ControlFlowNode for get_cert() | test.py:6:5:6:8 | ControlFlowNode for cert | provenance | | +| test.py:9:9:9:13 | ControlFlowNode for lines | test.py:10:25:10:29 | ControlFlowNode for lines | provenance | | nodes | password_in_cookie.py:7:5:7:12 | ControlFlowNode for password | semmle.label | ControlFlowNode for password | | password_in_cookie.py:7:16:7:43 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | diff --git a/python/ql/test/query-tests/Security/CWE-327-WeakSensitiveDataHashing/WeakSensitiveDataHashing.expected b/python/ql/test/query-tests/Security/CWE-327-WeakSensitiveDataHashing/WeakSensitiveDataHashing.expected index dd3a65bc8fab..ac27f304de82 100644 --- a/python/ql/test/query-tests/Security/CWE-327-WeakSensitiveDataHashing/WeakSensitiveDataHashing.expected +++ b/python/ql/test/query-tests/Security/CWE-327-WeakSensitiveDataHashing/WeakSensitiveDataHashing.expected @@ -1,32 +1,32 @@ edges -| test_cryptodome.py:2:23:2:34 | ControlFlowNode for ImportMember | test_cryptodome.py:2:23:2:34 | ControlFlowNode for get_password | -| test_cryptodome.py:2:23:2:34 | ControlFlowNode for get_password | test_cryptodome.py:13:17:13:28 | ControlFlowNode for get_password | -| test_cryptodome.py:2:23:2:34 | ControlFlowNode for get_password | test_cryptodome.py:20:17:20:28 | ControlFlowNode for get_password | -| test_cryptodome.py:2:37:2:51 | ControlFlowNode for ImportMember | test_cryptodome.py:2:37:2:51 | ControlFlowNode for get_certificate | -| test_cryptodome.py:2:37:2:51 | ControlFlowNode for get_certificate | test_cryptodome.py:6:17:6:31 | ControlFlowNode for get_certificate | -| test_cryptodome.py:6:5:6:13 | ControlFlowNode for dangerous | test_cryptodome.py:8:19:8:27 | ControlFlowNode for dangerous | -| test_cryptodome.py:6:17:6:31 | ControlFlowNode for get_certificate | test_cryptodome.py:6:17:6:33 | ControlFlowNode for get_certificate() | -| test_cryptodome.py:6:17:6:33 | ControlFlowNode for get_certificate() | test_cryptodome.py:6:5:6:13 | ControlFlowNode for dangerous | -| test_cryptodome.py:13:5:13:13 | ControlFlowNode for dangerous | test_cryptodome.py:15:19:15:27 | ControlFlowNode for dangerous | -| test_cryptodome.py:13:17:13:28 | ControlFlowNode for get_password | test_cryptodome.py:13:17:13:30 | ControlFlowNode for get_password() | -| test_cryptodome.py:13:17:13:30 | ControlFlowNode for get_password() | test_cryptodome.py:13:5:13:13 | ControlFlowNode for dangerous | -| test_cryptodome.py:20:5:20:13 | ControlFlowNode for dangerous | test_cryptodome.py:24:19:24:27 | ControlFlowNode for dangerous | -| test_cryptodome.py:20:17:20:28 | ControlFlowNode for get_password | test_cryptodome.py:20:17:20:30 | ControlFlowNode for get_password() | -| test_cryptodome.py:20:17:20:30 | ControlFlowNode for get_password() | test_cryptodome.py:20:5:20:13 | ControlFlowNode for dangerous | -| test_cryptography.py:3:23:3:34 | ControlFlowNode for ImportMember | test_cryptography.py:3:23:3:34 | ControlFlowNode for get_password | -| test_cryptography.py:3:23:3:34 | ControlFlowNode for get_password | test_cryptography.py:15:17:15:28 | ControlFlowNode for get_password | -| test_cryptography.py:3:23:3:34 | ControlFlowNode for get_password | test_cryptography.py:23:17:23:28 | ControlFlowNode for get_password | -| test_cryptography.py:3:37:3:51 | ControlFlowNode for ImportMember | test_cryptography.py:3:37:3:51 | ControlFlowNode for get_certificate | -| test_cryptography.py:3:37:3:51 | ControlFlowNode for get_certificate | test_cryptography.py:7:17:7:31 | ControlFlowNode for get_certificate | -| test_cryptography.py:7:5:7:13 | ControlFlowNode for dangerous | test_cryptography.py:9:19:9:27 | ControlFlowNode for dangerous | -| test_cryptography.py:7:17:7:31 | ControlFlowNode for get_certificate | test_cryptography.py:7:17:7:33 | ControlFlowNode for get_certificate() | -| test_cryptography.py:7:17:7:33 | ControlFlowNode for get_certificate() | test_cryptography.py:7:5:7:13 | ControlFlowNode for dangerous | -| test_cryptography.py:15:5:15:13 | ControlFlowNode for dangerous | test_cryptography.py:17:19:17:27 | ControlFlowNode for dangerous | -| test_cryptography.py:15:17:15:28 | ControlFlowNode for get_password | test_cryptography.py:15:17:15:30 | ControlFlowNode for get_password() | -| test_cryptography.py:15:17:15:30 | ControlFlowNode for get_password() | test_cryptography.py:15:5:15:13 | ControlFlowNode for dangerous | -| test_cryptography.py:23:5:23:13 | ControlFlowNode for dangerous | test_cryptography.py:27:19:27:27 | ControlFlowNode for dangerous | -| test_cryptography.py:23:17:23:28 | ControlFlowNode for get_password | test_cryptography.py:23:17:23:30 | ControlFlowNode for get_password() | -| test_cryptography.py:23:17:23:30 | ControlFlowNode for get_password() | test_cryptography.py:23:5:23:13 | ControlFlowNode for dangerous | +| test_cryptodome.py:2:23:2:34 | ControlFlowNode for ImportMember | test_cryptodome.py:2:23:2:34 | ControlFlowNode for get_password | provenance | | +| test_cryptodome.py:2:23:2:34 | ControlFlowNode for get_password | test_cryptodome.py:13:17:13:28 | ControlFlowNode for get_password | provenance | | +| test_cryptodome.py:2:23:2:34 | ControlFlowNode for get_password | test_cryptodome.py:20:17:20:28 | ControlFlowNode for get_password | provenance | | +| test_cryptodome.py:2:37:2:51 | ControlFlowNode for ImportMember | test_cryptodome.py:2:37:2:51 | ControlFlowNode for get_certificate | provenance | | +| test_cryptodome.py:2:37:2:51 | ControlFlowNode for get_certificate | test_cryptodome.py:6:17:6:31 | ControlFlowNode for get_certificate | provenance | | +| test_cryptodome.py:6:5:6:13 | ControlFlowNode for dangerous | test_cryptodome.py:8:19:8:27 | ControlFlowNode for dangerous | provenance | | +| test_cryptodome.py:6:17:6:31 | ControlFlowNode for get_certificate | test_cryptodome.py:6:17:6:33 | ControlFlowNode for get_certificate() | provenance | | +| test_cryptodome.py:6:17:6:33 | ControlFlowNode for get_certificate() | test_cryptodome.py:6:5:6:13 | ControlFlowNode for dangerous | provenance | | +| test_cryptodome.py:13:5:13:13 | ControlFlowNode for dangerous | test_cryptodome.py:15:19:15:27 | ControlFlowNode for dangerous | provenance | | +| test_cryptodome.py:13:17:13:28 | ControlFlowNode for get_password | test_cryptodome.py:13:17:13:30 | ControlFlowNode for get_password() | provenance | | +| test_cryptodome.py:13:17:13:30 | ControlFlowNode for get_password() | test_cryptodome.py:13:5:13:13 | ControlFlowNode for dangerous | provenance | | +| test_cryptodome.py:20:5:20:13 | ControlFlowNode for dangerous | test_cryptodome.py:24:19:24:27 | ControlFlowNode for dangerous | provenance | | +| test_cryptodome.py:20:17:20:28 | ControlFlowNode for get_password | test_cryptodome.py:20:17:20:30 | ControlFlowNode for get_password() | provenance | | +| test_cryptodome.py:20:17:20:30 | ControlFlowNode for get_password() | test_cryptodome.py:20:5:20:13 | ControlFlowNode for dangerous | provenance | | +| test_cryptography.py:3:23:3:34 | ControlFlowNode for ImportMember | test_cryptography.py:3:23:3:34 | ControlFlowNode for get_password | provenance | | +| test_cryptography.py:3:23:3:34 | ControlFlowNode for get_password | test_cryptography.py:15:17:15:28 | ControlFlowNode for get_password | provenance | | +| test_cryptography.py:3:23:3:34 | ControlFlowNode for get_password | test_cryptography.py:23:17:23:28 | ControlFlowNode for get_password | provenance | | +| test_cryptography.py:3:37:3:51 | ControlFlowNode for ImportMember | test_cryptography.py:3:37:3:51 | ControlFlowNode for get_certificate | provenance | | +| test_cryptography.py:3:37:3:51 | ControlFlowNode for get_certificate | test_cryptography.py:7:17:7:31 | ControlFlowNode for get_certificate | provenance | | +| test_cryptography.py:7:5:7:13 | ControlFlowNode for dangerous | test_cryptography.py:9:19:9:27 | ControlFlowNode for dangerous | provenance | | +| test_cryptography.py:7:17:7:31 | ControlFlowNode for get_certificate | test_cryptography.py:7:17:7:33 | ControlFlowNode for get_certificate() | provenance | | +| test_cryptography.py:7:17:7:33 | ControlFlowNode for get_certificate() | test_cryptography.py:7:5:7:13 | ControlFlowNode for dangerous | provenance | | +| test_cryptography.py:15:5:15:13 | ControlFlowNode for dangerous | test_cryptography.py:17:19:17:27 | ControlFlowNode for dangerous | provenance | | +| test_cryptography.py:15:17:15:28 | ControlFlowNode for get_password | test_cryptography.py:15:17:15:30 | ControlFlowNode for get_password() | provenance | | +| test_cryptography.py:15:17:15:30 | ControlFlowNode for get_password() | test_cryptography.py:15:5:15:13 | ControlFlowNode for dangerous | provenance | | +| test_cryptography.py:23:5:23:13 | ControlFlowNode for dangerous | test_cryptography.py:27:19:27:27 | ControlFlowNode for dangerous | provenance | | +| test_cryptography.py:23:17:23:28 | ControlFlowNode for get_password | test_cryptography.py:23:17:23:30 | ControlFlowNode for get_password() | provenance | | +| test_cryptography.py:23:17:23:30 | ControlFlowNode for get_password() | test_cryptography.py:23:5:23:13 | ControlFlowNode for dangerous | provenance | | nodes | test_cryptodome.py:2:23:2:34 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | | test_cryptodome.py:2:23:2:34 | ControlFlowNode for get_password | semmle.label | ControlFlowNode for get_password | diff --git a/python/ql/test/query-tests/Security/CWE-502-UnsafeDeserialization/UnsafeDeserialization.expected b/python/ql/test/query-tests/Security/CWE-502-UnsafeDeserialization/UnsafeDeserialization.expected index 2980b6fbb1bf..44fb2a8e9619 100644 --- a/python/ql/test/query-tests/Security/CWE-502-UnsafeDeserialization/UnsafeDeserialization.expected +++ b/python/ql/test/query-tests/Security/CWE-502-UnsafeDeserialization/UnsafeDeserialization.expected @@ -1,14 +1,14 @@ edges -| unsafe_deserialization.py:8:26:8:32 | ControlFlowNode for ImportMember | unsafe_deserialization.py:8:26:8:32 | ControlFlowNode for request | -| unsafe_deserialization.py:8:26:8:32 | ControlFlowNode for request | unsafe_deserialization.py:14:15:14:21 | ControlFlowNode for request | -| unsafe_deserialization.py:14:5:14:11 | ControlFlowNode for payload | unsafe_deserialization.py:15:18:15:24 | ControlFlowNode for payload | -| unsafe_deserialization.py:14:5:14:11 | ControlFlowNode for payload | unsafe_deserialization.py:16:15:16:21 | ControlFlowNode for payload | -| unsafe_deserialization.py:14:5:14:11 | ControlFlowNode for payload | unsafe_deserialization.py:18:19:18:25 | ControlFlowNode for payload | -| unsafe_deserialization.py:14:5:14:11 | ControlFlowNode for payload | unsafe_deserialization.py:21:16:21:22 | ControlFlowNode for payload | -| unsafe_deserialization.py:14:5:14:11 | ControlFlowNode for payload | unsafe_deserialization.py:24:24:24:30 | ControlFlowNode for payload | -| unsafe_deserialization.py:14:15:14:21 | ControlFlowNode for request | unsafe_deserialization.py:14:15:14:26 | ControlFlowNode for Attribute | -| unsafe_deserialization.py:14:15:14:26 | ControlFlowNode for Attribute | unsafe_deserialization.py:14:15:14:41 | ControlFlowNode for Attribute() | -| unsafe_deserialization.py:14:15:14:41 | ControlFlowNode for Attribute() | unsafe_deserialization.py:14:5:14:11 | ControlFlowNode for payload | +| unsafe_deserialization.py:8:26:8:32 | ControlFlowNode for ImportMember | unsafe_deserialization.py:8:26:8:32 | ControlFlowNode for request | provenance | | +| unsafe_deserialization.py:8:26:8:32 | ControlFlowNode for request | unsafe_deserialization.py:14:15:14:21 | ControlFlowNode for request | provenance | | +| unsafe_deserialization.py:14:5:14:11 | ControlFlowNode for payload | unsafe_deserialization.py:15:18:15:24 | ControlFlowNode for payload | provenance | | +| unsafe_deserialization.py:14:5:14:11 | ControlFlowNode for payload | unsafe_deserialization.py:16:15:16:21 | ControlFlowNode for payload | provenance | | +| unsafe_deserialization.py:14:5:14:11 | ControlFlowNode for payload | unsafe_deserialization.py:18:19:18:25 | ControlFlowNode for payload | provenance | | +| unsafe_deserialization.py:14:5:14:11 | ControlFlowNode for payload | unsafe_deserialization.py:21:16:21:22 | ControlFlowNode for payload | provenance | | +| unsafe_deserialization.py:14:5:14:11 | ControlFlowNode for payload | unsafe_deserialization.py:24:24:24:30 | ControlFlowNode for payload | provenance | | +| unsafe_deserialization.py:14:15:14:21 | ControlFlowNode for request | unsafe_deserialization.py:14:15:14:26 | ControlFlowNode for Attribute | provenance | | +| unsafe_deserialization.py:14:15:14:26 | ControlFlowNode for Attribute | unsafe_deserialization.py:14:15:14:41 | ControlFlowNode for Attribute() | provenance | | +| unsafe_deserialization.py:14:15:14:41 | ControlFlowNode for Attribute() | unsafe_deserialization.py:14:5:14:11 | ControlFlowNode for payload | provenance | | nodes | unsafe_deserialization.py:8:26:8:32 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | | unsafe_deserialization.py:8:26:8:32 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | diff --git a/python/ql/test/query-tests/Security/CWE-601-UrlRedirect/UrlRedirect.expected b/python/ql/test/query-tests/Security/CWE-601-UrlRedirect/UrlRedirect.expected index cff78889b889..d77c850b2a47 100644 --- a/python/ql/test/query-tests/Security/CWE-601-UrlRedirect/UrlRedirect.expected +++ b/python/ql/test/query-tests/Security/CWE-601-UrlRedirect/UrlRedirect.expected @@ -1,72 +1,72 @@ edges -| test.py:1:26:1:32 | ControlFlowNode for ImportMember | test.py:1:26:1:32 | ControlFlowNode for request | -| test.py:1:26:1:32 | ControlFlowNode for request | test.py:7:14:7:20 | ControlFlowNode for request | -| test.py:1:26:1:32 | ControlFlowNode for request | test.py:30:17:30:23 | ControlFlowNode for request | -| test.py:1:26:1:32 | ControlFlowNode for request | test.py:37:17:37:23 | ControlFlowNode for request | -| test.py:1:26:1:32 | ControlFlowNode for request | test.py:44:17:44:23 | ControlFlowNode for request | -| test.py:1:26:1:32 | ControlFlowNode for request | test.py:60:17:60:23 | ControlFlowNode for request | -| test.py:1:26:1:32 | ControlFlowNode for request | test.py:67:17:67:23 | ControlFlowNode for request | -| test.py:1:26:1:32 | ControlFlowNode for request | test.py:74:17:74:23 | ControlFlowNode for request | -| test.py:1:26:1:32 | ControlFlowNode for request | test.py:81:17:81:23 | ControlFlowNode for request | -| test.py:1:26:1:32 | ControlFlowNode for request | test.py:90:17:90:23 | ControlFlowNode for request | -| test.py:1:26:1:32 | ControlFlowNode for request | test.py:111:17:111:23 | ControlFlowNode for request | -| test.py:1:26:1:32 | ControlFlowNode for request | test.py:137:17:137:23 | ControlFlowNode for request | -| test.py:1:26:1:32 | ControlFlowNode for request | test.py:145:17:145:23 | ControlFlowNode for request | -| test.py:7:5:7:10 | ControlFlowNode for target | test.py:8:21:8:26 | ControlFlowNode for target | -| test.py:7:14:7:20 | ControlFlowNode for request | test.py:7:14:7:25 | ControlFlowNode for Attribute | -| test.py:7:14:7:25 | ControlFlowNode for Attribute | test.py:7:14:7:43 | ControlFlowNode for Attribute() | -| test.py:7:14:7:43 | ControlFlowNode for Attribute() | test.py:7:5:7:10 | ControlFlowNode for target | -| test.py:30:5:30:13 | ControlFlowNode for untrusted | test.py:31:5:31:8 | ControlFlowNode for safe | -| test.py:30:17:30:23 | ControlFlowNode for request | test.py:30:17:30:28 | ControlFlowNode for Attribute | -| test.py:30:17:30:28 | ControlFlowNode for Attribute | test.py:30:17:30:46 | ControlFlowNode for Attribute() | -| test.py:30:17:30:46 | ControlFlowNode for Attribute() | test.py:30:5:30:13 | ControlFlowNode for untrusted | -| test.py:31:5:31:8 | ControlFlowNode for safe | test.py:32:21:32:24 | ControlFlowNode for safe | -| test.py:37:5:37:13 | ControlFlowNode for untrusted | test.py:38:5:38:8 | ControlFlowNode for safe | -| test.py:37:17:37:23 | ControlFlowNode for request | test.py:37:17:37:28 | ControlFlowNode for Attribute | -| test.py:37:17:37:28 | ControlFlowNode for Attribute | test.py:37:17:37:46 | ControlFlowNode for Attribute() | -| test.py:37:17:37:46 | ControlFlowNode for Attribute() | test.py:37:5:37:13 | ControlFlowNode for untrusted | -| test.py:38:5:38:8 | ControlFlowNode for safe | test.py:39:21:39:24 | ControlFlowNode for safe | -| test.py:44:5:44:13 | ControlFlowNode for untrusted | test.py:45:5:45:8 | ControlFlowNode for safe | -| test.py:44:17:44:23 | ControlFlowNode for request | test.py:44:17:44:28 | ControlFlowNode for Attribute | -| test.py:44:17:44:28 | ControlFlowNode for Attribute | test.py:44:17:44:46 | ControlFlowNode for Attribute() | -| test.py:44:17:44:46 | ControlFlowNode for Attribute() | test.py:44:5:44:13 | ControlFlowNode for untrusted | -| test.py:45:5:45:8 | ControlFlowNode for safe | test.py:46:21:46:24 | ControlFlowNode for safe | -| test.py:60:5:60:13 | ControlFlowNode for untrusted | test.py:61:5:61:10 | ControlFlowNode for unsafe | -| test.py:60:17:60:23 | ControlFlowNode for request | test.py:60:17:60:28 | ControlFlowNode for Attribute | -| test.py:60:17:60:28 | ControlFlowNode for Attribute | test.py:60:17:60:46 | ControlFlowNode for Attribute() | -| test.py:60:17:60:46 | ControlFlowNode for Attribute() | test.py:60:5:60:13 | ControlFlowNode for untrusted | -| test.py:61:5:61:10 | ControlFlowNode for unsafe | test.py:62:21:62:26 | ControlFlowNode for unsafe | -| test.py:67:5:67:13 | ControlFlowNode for untrusted | test.py:68:5:68:10 | ControlFlowNode for unsafe | -| test.py:67:17:67:23 | ControlFlowNode for request | test.py:67:17:67:28 | ControlFlowNode for Attribute | -| test.py:67:17:67:28 | ControlFlowNode for Attribute | test.py:67:17:67:46 | ControlFlowNode for Attribute() | -| test.py:67:17:67:46 | ControlFlowNode for Attribute() | test.py:67:5:67:13 | ControlFlowNode for untrusted | -| test.py:68:5:68:10 | ControlFlowNode for unsafe | test.py:69:21:69:26 | ControlFlowNode for unsafe | -| test.py:74:5:74:13 | ControlFlowNode for untrusted | test.py:75:5:75:10 | ControlFlowNode for unsafe | -| test.py:74:17:74:23 | ControlFlowNode for request | test.py:74:17:74:28 | ControlFlowNode for Attribute | -| test.py:74:17:74:28 | ControlFlowNode for Attribute | test.py:74:17:74:46 | ControlFlowNode for Attribute() | -| test.py:74:17:74:46 | ControlFlowNode for Attribute() | test.py:74:5:74:13 | ControlFlowNode for untrusted | -| test.py:75:5:75:10 | ControlFlowNode for unsafe | test.py:76:21:76:26 | ControlFlowNode for unsafe | -| test.py:81:5:81:13 | ControlFlowNode for untrusted | test.py:82:5:82:10 | ControlFlowNode for unsafe | -| test.py:81:17:81:23 | ControlFlowNode for request | test.py:81:17:81:28 | ControlFlowNode for Attribute | -| test.py:81:17:81:28 | ControlFlowNode for Attribute | test.py:81:17:81:46 | ControlFlowNode for Attribute() | -| test.py:81:17:81:46 | ControlFlowNode for Attribute() | test.py:81:5:81:13 | ControlFlowNode for untrusted | -| test.py:82:5:82:10 | ControlFlowNode for unsafe | test.py:83:21:83:26 | ControlFlowNode for unsafe | -| test.py:90:5:90:13 | ControlFlowNode for untrusted | test.py:93:18:93:26 | ControlFlowNode for untrusted | -| test.py:90:17:90:23 | ControlFlowNode for request | test.py:90:17:90:28 | ControlFlowNode for Attribute | -| test.py:90:17:90:28 | ControlFlowNode for Attribute | test.py:90:17:90:46 | ControlFlowNode for Attribute() | -| test.py:90:17:90:46 | ControlFlowNode for Attribute() | test.py:90:5:90:13 | ControlFlowNode for untrusted | -| test.py:111:5:111:13 | ControlFlowNode for untrusted | test.py:114:25:114:33 | ControlFlowNode for untrusted | -| test.py:111:17:111:23 | ControlFlowNode for request | test.py:111:17:111:28 | ControlFlowNode for Attribute | -| test.py:111:17:111:28 | ControlFlowNode for Attribute | test.py:111:17:111:46 | ControlFlowNode for Attribute() | -| test.py:111:17:111:46 | ControlFlowNode for Attribute() | test.py:111:5:111:13 | ControlFlowNode for untrusted | -| test.py:137:5:137:13 | ControlFlowNode for untrusted | test.py:140:25:140:33 | ControlFlowNode for untrusted | -| test.py:137:17:137:23 | ControlFlowNode for request | test.py:137:17:137:28 | ControlFlowNode for Attribute | -| test.py:137:17:137:28 | ControlFlowNode for Attribute | test.py:137:17:137:46 | ControlFlowNode for Attribute() | -| test.py:137:17:137:46 | ControlFlowNode for Attribute() | test.py:137:5:137:13 | ControlFlowNode for untrusted | -| test.py:145:5:145:13 | ControlFlowNode for untrusted | test.py:148:25:148:33 | ControlFlowNode for untrusted | -| test.py:145:17:145:23 | ControlFlowNode for request | test.py:145:17:145:28 | ControlFlowNode for Attribute | -| test.py:145:17:145:28 | ControlFlowNode for Attribute | test.py:145:17:145:46 | ControlFlowNode for Attribute() | -| test.py:145:17:145:46 | ControlFlowNode for Attribute() | test.py:145:5:145:13 | ControlFlowNode for untrusted | +| test.py:1:26:1:32 | ControlFlowNode for ImportMember | test.py:1:26:1:32 | ControlFlowNode for request | provenance | | +| test.py:1:26:1:32 | ControlFlowNode for request | test.py:7:14:7:20 | ControlFlowNode for request | provenance | | +| test.py:1:26:1:32 | ControlFlowNode for request | test.py:30:17:30:23 | ControlFlowNode for request | provenance | | +| test.py:1:26:1:32 | ControlFlowNode for request | test.py:37:17:37:23 | ControlFlowNode for request | provenance | | +| test.py:1:26:1:32 | ControlFlowNode for request | test.py:44:17:44:23 | ControlFlowNode for request | provenance | | +| test.py:1:26:1:32 | ControlFlowNode for request | test.py:60:17:60:23 | ControlFlowNode for request | provenance | | +| test.py:1:26:1:32 | ControlFlowNode for request | test.py:67:17:67:23 | ControlFlowNode for request | provenance | | +| test.py:1:26:1:32 | ControlFlowNode for request | test.py:74:17:74:23 | ControlFlowNode for request | provenance | | +| test.py:1:26:1:32 | ControlFlowNode for request | test.py:81:17:81:23 | ControlFlowNode for request | provenance | | +| test.py:1:26:1:32 | ControlFlowNode for request | test.py:90:17:90:23 | ControlFlowNode for request | provenance | | +| test.py:1:26:1:32 | ControlFlowNode for request | test.py:111:17:111:23 | ControlFlowNode for request | provenance | | +| test.py:1:26:1:32 | ControlFlowNode for request | test.py:137:17:137:23 | ControlFlowNode for request | provenance | | +| test.py:1:26:1:32 | ControlFlowNode for request | test.py:145:17:145:23 | ControlFlowNode for request | provenance | | +| test.py:7:5:7:10 | ControlFlowNode for target | test.py:8:21:8:26 | ControlFlowNode for target | provenance | | +| test.py:7:14:7:20 | ControlFlowNode for request | test.py:7:14:7:25 | ControlFlowNode for Attribute | provenance | | +| test.py:7:14:7:25 | ControlFlowNode for Attribute | test.py:7:14:7:43 | ControlFlowNode for Attribute() | provenance | | +| test.py:7:14:7:43 | ControlFlowNode for Attribute() | test.py:7:5:7:10 | ControlFlowNode for target | provenance | | +| test.py:30:5:30:13 | ControlFlowNode for untrusted | test.py:31:5:31:8 | ControlFlowNode for safe | provenance | | +| test.py:30:17:30:23 | ControlFlowNode for request | test.py:30:17:30:28 | ControlFlowNode for Attribute | provenance | | +| test.py:30:17:30:28 | ControlFlowNode for Attribute | test.py:30:17:30:46 | ControlFlowNode for Attribute() | provenance | | +| test.py:30:17:30:46 | ControlFlowNode for Attribute() | test.py:30:5:30:13 | ControlFlowNode for untrusted | provenance | | +| test.py:31:5:31:8 | ControlFlowNode for safe | test.py:32:21:32:24 | ControlFlowNode for safe | provenance | | +| test.py:37:5:37:13 | ControlFlowNode for untrusted | test.py:38:5:38:8 | ControlFlowNode for safe | provenance | | +| test.py:37:17:37:23 | ControlFlowNode for request | test.py:37:17:37:28 | ControlFlowNode for Attribute | provenance | | +| test.py:37:17:37:28 | ControlFlowNode for Attribute | test.py:37:17:37:46 | ControlFlowNode for Attribute() | provenance | | +| test.py:37:17:37:46 | ControlFlowNode for Attribute() | test.py:37:5:37:13 | ControlFlowNode for untrusted | provenance | | +| test.py:38:5:38:8 | ControlFlowNode for safe | test.py:39:21:39:24 | ControlFlowNode for safe | provenance | | +| test.py:44:5:44:13 | ControlFlowNode for untrusted | test.py:45:5:45:8 | ControlFlowNode for safe | provenance | | +| test.py:44:17:44:23 | ControlFlowNode for request | test.py:44:17:44:28 | ControlFlowNode for Attribute | provenance | | +| test.py:44:17:44:28 | ControlFlowNode for Attribute | test.py:44:17:44:46 | ControlFlowNode for Attribute() | provenance | | +| test.py:44:17:44:46 | ControlFlowNode for Attribute() | test.py:44:5:44:13 | ControlFlowNode for untrusted | provenance | | +| test.py:45:5:45:8 | ControlFlowNode for safe | test.py:46:21:46:24 | ControlFlowNode for safe | provenance | | +| test.py:60:5:60:13 | ControlFlowNode for untrusted | test.py:61:5:61:10 | ControlFlowNode for unsafe | provenance | | +| test.py:60:17:60:23 | ControlFlowNode for request | test.py:60:17:60:28 | ControlFlowNode for Attribute | provenance | | +| test.py:60:17:60:28 | ControlFlowNode for Attribute | test.py:60:17:60:46 | ControlFlowNode for Attribute() | provenance | | +| test.py:60:17:60:46 | ControlFlowNode for Attribute() | test.py:60:5:60:13 | ControlFlowNode for untrusted | provenance | | +| test.py:61:5:61:10 | ControlFlowNode for unsafe | test.py:62:21:62:26 | ControlFlowNode for unsafe | provenance | | +| test.py:67:5:67:13 | ControlFlowNode for untrusted | test.py:68:5:68:10 | ControlFlowNode for unsafe | provenance | | +| test.py:67:17:67:23 | ControlFlowNode for request | test.py:67:17:67:28 | ControlFlowNode for Attribute | provenance | | +| test.py:67:17:67:28 | ControlFlowNode for Attribute | test.py:67:17:67:46 | ControlFlowNode for Attribute() | provenance | | +| test.py:67:17:67:46 | ControlFlowNode for Attribute() | test.py:67:5:67:13 | ControlFlowNode for untrusted | provenance | | +| test.py:68:5:68:10 | ControlFlowNode for unsafe | test.py:69:21:69:26 | ControlFlowNode for unsafe | provenance | | +| test.py:74:5:74:13 | ControlFlowNode for untrusted | test.py:75:5:75:10 | ControlFlowNode for unsafe | provenance | | +| test.py:74:17:74:23 | ControlFlowNode for request | test.py:74:17:74:28 | ControlFlowNode for Attribute | provenance | | +| test.py:74:17:74:28 | ControlFlowNode for Attribute | test.py:74:17:74:46 | ControlFlowNode for Attribute() | provenance | | +| test.py:74:17:74:46 | ControlFlowNode for Attribute() | test.py:74:5:74:13 | ControlFlowNode for untrusted | provenance | | +| test.py:75:5:75:10 | ControlFlowNode for unsafe | test.py:76:21:76:26 | ControlFlowNode for unsafe | provenance | | +| test.py:81:5:81:13 | ControlFlowNode for untrusted | test.py:82:5:82:10 | ControlFlowNode for unsafe | provenance | | +| test.py:81:17:81:23 | ControlFlowNode for request | test.py:81:17:81:28 | ControlFlowNode for Attribute | provenance | | +| test.py:81:17:81:28 | ControlFlowNode for Attribute | test.py:81:17:81:46 | ControlFlowNode for Attribute() | provenance | | +| test.py:81:17:81:46 | ControlFlowNode for Attribute() | test.py:81:5:81:13 | ControlFlowNode for untrusted | provenance | | +| test.py:82:5:82:10 | ControlFlowNode for unsafe | test.py:83:21:83:26 | ControlFlowNode for unsafe | provenance | | +| test.py:90:5:90:13 | ControlFlowNode for untrusted | test.py:93:18:93:26 | ControlFlowNode for untrusted | provenance | | +| test.py:90:17:90:23 | ControlFlowNode for request | test.py:90:17:90:28 | ControlFlowNode for Attribute | provenance | | +| test.py:90:17:90:28 | ControlFlowNode for Attribute | test.py:90:17:90:46 | ControlFlowNode for Attribute() | provenance | | +| test.py:90:17:90:46 | ControlFlowNode for Attribute() | test.py:90:5:90:13 | ControlFlowNode for untrusted | provenance | | +| test.py:111:5:111:13 | ControlFlowNode for untrusted | test.py:114:25:114:33 | ControlFlowNode for untrusted | provenance | | +| test.py:111:17:111:23 | ControlFlowNode for request | test.py:111:17:111:28 | ControlFlowNode for Attribute | provenance | | +| test.py:111:17:111:28 | ControlFlowNode for Attribute | test.py:111:17:111:46 | ControlFlowNode for Attribute() | provenance | | +| test.py:111:17:111:46 | ControlFlowNode for Attribute() | test.py:111:5:111:13 | ControlFlowNode for untrusted | provenance | | +| test.py:137:5:137:13 | ControlFlowNode for untrusted | test.py:140:25:140:33 | ControlFlowNode for untrusted | provenance | | +| test.py:137:17:137:23 | ControlFlowNode for request | test.py:137:17:137:28 | ControlFlowNode for Attribute | provenance | | +| test.py:137:17:137:28 | ControlFlowNode for Attribute | test.py:137:17:137:46 | ControlFlowNode for Attribute() | provenance | | +| test.py:137:17:137:46 | ControlFlowNode for Attribute() | test.py:137:5:137:13 | ControlFlowNode for untrusted | provenance | | +| test.py:145:5:145:13 | ControlFlowNode for untrusted | test.py:148:25:148:33 | ControlFlowNode for untrusted | provenance | | +| test.py:145:17:145:23 | ControlFlowNode for request | test.py:145:17:145:28 | ControlFlowNode for Attribute | provenance | | +| test.py:145:17:145:28 | ControlFlowNode for Attribute | test.py:145:17:145:46 | ControlFlowNode for Attribute() | provenance | | +| test.py:145:17:145:46 | ControlFlowNode for Attribute() | test.py:145:5:145:13 | ControlFlowNode for untrusted | provenance | | nodes | test.py:1:26:1:32 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | | test.py:1:26:1:32 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | diff --git a/python/ql/test/query-tests/Security/CWE-611-Xxe/Xxe.expected b/python/ql/test/query-tests/Security/CWE-611-Xxe/Xxe.expected index 6d1b03c5c378..9f37afb885e5 100644 --- a/python/ql/test/query-tests/Security/CWE-611-Xxe/Xxe.expected +++ b/python/ql/test/query-tests/Security/CWE-611-Xxe/Xxe.expected @@ -1,11 +1,11 @@ edges -| test.py:1:26:1:32 | ControlFlowNode for ImportMember | test.py:1:26:1:32 | ControlFlowNode for request | -| test.py:1:26:1:32 | ControlFlowNode for request | test.py:9:19:9:25 | ControlFlowNode for request | -| test.py:1:26:1:32 | ControlFlowNode for request | test.py:20:19:20:25 | ControlFlowNode for request | -| test.py:9:5:9:15 | ControlFlowNode for xml_content | test.py:10:34:10:44 | ControlFlowNode for xml_content | -| test.py:9:19:9:25 | ControlFlowNode for request | test.py:9:5:9:15 | ControlFlowNode for xml_content | -| test.py:20:5:20:15 | ControlFlowNode for xml_content | test.py:31:34:31:44 | ControlFlowNode for xml_content | -| test.py:20:19:20:25 | ControlFlowNode for request | test.py:20:5:20:15 | ControlFlowNode for xml_content | +| test.py:1:26:1:32 | ControlFlowNode for ImportMember | test.py:1:26:1:32 | ControlFlowNode for request | provenance | | +| test.py:1:26:1:32 | ControlFlowNode for request | test.py:9:19:9:25 | ControlFlowNode for request | provenance | | +| test.py:1:26:1:32 | ControlFlowNode for request | test.py:20:19:20:25 | ControlFlowNode for request | provenance | | +| test.py:9:5:9:15 | ControlFlowNode for xml_content | test.py:10:34:10:44 | ControlFlowNode for xml_content | provenance | | +| test.py:9:19:9:25 | ControlFlowNode for request | test.py:9:5:9:15 | ControlFlowNode for xml_content | provenance | | +| test.py:20:5:20:15 | ControlFlowNode for xml_content | test.py:31:34:31:44 | ControlFlowNode for xml_content | provenance | | +| test.py:20:19:20:25 | ControlFlowNode for request | test.py:20:5:20:15 | ControlFlowNode for xml_content | provenance | | nodes | test.py:1:26:1:32 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | | test.py:1:26:1:32 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | diff --git a/python/ql/test/query-tests/Security/CWE-643-XPathInjection/XpathInjection.expected b/python/ql/test/query-tests/Security/CWE-643-XPathInjection/XpathInjection.expected index 0e8e826b7a73..efd2576dd71a 100644 --- a/python/ql/test/query-tests/Security/CWE-643-XPathInjection/XpathInjection.expected +++ b/python/ql/test/query-tests/Security/CWE-643-XPathInjection/XpathInjection.expected @@ -1,32 +1,32 @@ edges -| xpathBad.py:9:7:9:13 | ControlFlowNode for request | xpathBad.py:10:5:10:9 | ControlFlowNode for value | -| xpathBad.py:10:5:10:9 | ControlFlowNode for value | xpathBad.py:13:20:13:43 | ControlFlowNode for BinaryExpr | -| xpathFlow.py:2:26:2:32 | ControlFlowNode for ImportMember | xpathFlow.py:2:26:2:32 | ControlFlowNode for request | -| xpathFlow.py:2:26:2:32 | ControlFlowNode for request | xpathFlow.py:11:18:11:24 | ControlFlowNode for request | -| xpathFlow.py:2:26:2:32 | ControlFlowNode for request | xpathFlow.py:20:18:20:24 | ControlFlowNode for request | -| xpathFlow.py:2:26:2:32 | ControlFlowNode for request | xpathFlow.py:30:18:30:24 | ControlFlowNode for request | -| xpathFlow.py:2:26:2:32 | ControlFlowNode for request | xpathFlow.py:39:18:39:24 | ControlFlowNode for request | -| xpathFlow.py:2:26:2:32 | ControlFlowNode for request | xpathFlow.py:47:18:47:24 | ControlFlowNode for request | -| xpathFlow.py:11:5:11:14 | ControlFlowNode for xpathQuery | xpathFlow.py:14:20:14:29 | ControlFlowNode for xpathQuery | -| xpathFlow.py:11:18:11:24 | ControlFlowNode for request | xpathFlow.py:11:18:11:29 | ControlFlowNode for Attribute | -| xpathFlow.py:11:18:11:29 | ControlFlowNode for Attribute | xpathFlow.py:11:18:11:44 | ControlFlowNode for Attribute() | -| xpathFlow.py:11:18:11:44 | ControlFlowNode for Attribute() | xpathFlow.py:11:5:11:14 | ControlFlowNode for xpathQuery | -| xpathFlow.py:20:5:20:14 | ControlFlowNode for xpathQuery | xpathFlow.py:23:29:23:38 | ControlFlowNode for xpathQuery | -| xpathFlow.py:20:18:20:24 | ControlFlowNode for request | xpathFlow.py:20:18:20:29 | ControlFlowNode for Attribute | -| xpathFlow.py:20:18:20:29 | ControlFlowNode for Attribute | xpathFlow.py:20:18:20:44 | ControlFlowNode for Attribute() | -| xpathFlow.py:20:18:20:44 | ControlFlowNode for Attribute() | xpathFlow.py:20:5:20:14 | ControlFlowNode for xpathQuery | -| xpathFlow.py:30:5:30:14 | ControlFlowNode for xpathQuery | xpathFlow.py:32:29:32:38 | ControlFlowNode for xpathQuery | -| xpathFlow.py:30:18:30:24 | ControlFlowNode for request | xpathFlow.py:30:18:30:29 | ControlFlowNode for Attribute | -| xpathFlow.py:30:18:30:29 | ControlFlowNode for Attribute | xpathFlow.py:30:18:30:44 | ControlFlowNode for Attribute() | -| xpathFlow.py:30:18:30:44 | ControlFlowNode for Attribute() | xpathFlow.py:30:5:30:14 | ControlFlowNode for xpathQuery | -| xpathFlow.py:39:5:39:14 | ControlFlowNode for xpathQuery | xpathFlow.py:41:31:41:40 | ControlFlowNode for xpathQuery | -| xpathFlow.py:39:18:39:24 | ControlFlowNode for request | xpathFlow.py:39:18:39:29 | ControlFlowNode for Attribute | -| xpathFlow.py:39:18:39:29 | ControlFlowNode for Attribute | xpathFlow.py:39:18:39:44 | ControlFlowNode for Attribute() | -| xpathFlow.py:39:18:39:44 | ControlFlowNode for Attribute() | xpathFlow.py:39:5:39:14 | ControlFlowNode for xpathQuery | -| xpathFlow.py:47:5:47:14 | ControlFlowNode for xpathQuery | xpathFlow.py:49:29:49:38 | ControlFlowNode for xpathQuery | -| xpathFlow.py:47:18:47:24 | ControlFlowNode for request | xpathFlow.py:47:18:47:29 | ControlFlowNode for Attribute | -| xpathFlow.py:47:18:47:29 | ControlFlowNode for Attribute | xpathFlow.py:47:18:47:44 | ControlFlowNode for Attribute() | -| xpathFlow.py:47:18:47:44 | ControlFlowNode for Attribute() | xpathFlow.py:47:5:47:14 | ControlFlowNode for xpathQuery | +| xpathBad.py:9:7:9:13 | ControlFlowNode for request | xpathBad.py:10:5:10:9 | ControlFlowNode for value | provenance | | +| xpathBad.py:10:5:10:9 | ControlFlowNode for value | xpathBad.py:13:20:13:43 | ControlFlowNode for BinaryExpr | provenance | | +| xpathFlow.py:2:26:2:32 | ControlFlowNode for ImportMember | xpathFlow.py:2:26:2:32 | ControlFlowNode for request | provenance | | +| xpathFlow.py:2:26:2:32 | ControlFlowNode for request | xpathFlow.py:11:18:11:24 | ControlFlowNode for request | provenance | | +| xpathFlow.py:2:26:2:32 | ControlFlowNode for request | xpathFlow.py:20:18:20:24 | ControlFlowNode for request | provenance | | +| xpathFlow.py:2:26:2:32 | ControlFlowNode for request | xpathFlow.py:30:18:30:24 | ControlFlowNode for request | provenance | | +| xpathFlow.py:2:26:2:32 | ControlFlowNode for request | xpathFlow.py:39:18:39:24 | ControlFlowNode for request | provenance | | +| xpathFlow.py:2:26:2:32 | ControlFlowNode for request | xpathFlow.py:47:18:47:24 | ControlFlowNode for request | provenance | | +| xpathFlow.py:11:5:11:14 | ControlFlowNode for xpathQuery | xpathFlow.py:14:20:14:29 | ControlFlowNode for xpathQuery | provenance | | +| xpathFlow.py:11:18:11:24 | ControlFlowNode for request | xpathFlow.py:11:18:11:29 | ControlFlowNode for Attribute | provenance | | +| xpathFlow.py:11:18:11:29 | ControlFlowNode for Attribute | xpathFlow.py:11:18:11:44 | ControlFlowNode for Attribute() | provenance | | +| xpathFlow.py:11:18:11:44 | ControlFlowNode for Attribute() | xpathFlow.py:11:5:11:14 | ControlFlowNode for xpathQuery | provenance | | +| xpathFlow.py:20:5:20:14 | ControlFlowNode for xpathQuery | xpathFlow.py:23:29:23:38 | ControlFlowNode for xpathQuery | provenance | | +| xpathFlow.py:20:18:20:24 | ControlFlowNode for request | xpathFlow.py:20:18:20:29 | ControlFlowNode for Attribute | provenance | | +| xpathFlow.py:20:18:20:29 | ControlFlowNode for Attribute | xpathFlow.py:20:18:20:44 | ControlFlowNode for Attribute() | provenance | | +| xpathFlow.py:20:18:20:44 | ControlFlowNode for Attribute() | xpathFlow.py:20:5:20:14 | ControlFlowNode for xpathQuery | provenance | | +| xpathFlow.py:30:5:30:14 | ControlFlowNode for xpathQuery | xpathFlow.py:32:29:32:38 | ControlFlowNode for xpathQuery | provenance | | +| xpathFlow.py:30:18:30:24 | ControlFlowNode for request | xpathFlow.py:30:18:30:29 | ControlFlowNode for Attribute | provenance | | +| xpathFlow.py:30:18:30:29 | ControlFlowNode for Attribute | xpathFlow.py:30:18:30:44 | ControlFlowNode for Attribute() | provenance | | +| xpathFlow.py:30:18:30:44 | ControlFlowNode for Attribute() | xpathFlow.py:30:5:30:14 | ControlFlowNode for xpathQuery | provenance | | +| xpathFlow.py:39:5:39:14 | ControlFlowNode for xpathQuery | xpathFlow.py:41:31:41:40 | ControlFlowNode for xpathQuery | provenance | | +| xpathFlow.py:39:18:39:24 | ControlFlowNode for request | xpathFlow.py:39:18:39:29 | ControlFlowNode for Attribute | provenance | | +| xpathFlow.py:39:18:39:29 | ControlFlowNode for Attribute | xpathFlow.py:39:18:39:44 | ControlFlowNode for Attribute() | provenance | | +| xpathFlow.py:39:18:39:44 | ControlFlowNode for Attribute() | xpathFlow.py:39:5:39:14 | ControlFlowNode for xpathQuery | provenance | | +| xpathFlow.py:47:5:47:14 | ControlFlowNode for xpathQuery | xpathFlow.py:49:29:49:38 | ControlFlowNode for xpathQuery | provenance | | +| xpathFlow.py:47:18:47:24 | ControlFlowNode for request | xpathFlow.py:47:18:47:29 | ControlFlowNode for Attribute | provenance | | +| xpathFlow.py:47:18:47:29 | ControlFlowNode for Attribute | xpathFlow.py:47:18:47:44 | ControlFlowNode for Attribute() | provenance | | +| xpathFlow.py:47:18:47:44 | ControlFlowNode for Attribute() | xpathFlow.py:47:5:47:14 | ControlFlowNode for xpathQuery | provenance | | nodes | xpathBad.py:9:7:9:13 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | | xpathBad.py:10:5:10:9 | ControlFlowNode for value | semmle.label | ControlFlowNode for value | diff --git a/python/ql/test/query-tests/Security/CWE-730-PolynomialReDoS/PolynomialReDoS.expected b/python/ql/test/query-tests/Security/CWE-730-PolynomialReDoS/PolynomialReDoS.expected index d26a768c1a6b..6a8e36aef704 100644 --- a/python/ql/test/query-tests/Security/CWE-730-PolynomialReDoS/PolynomialReDoS.expected +++ b/python/ql/test/query-tests/Security/CWE-730-PolynomialReDoS/PolynomialReDoS.expected @@ -1,16 +1,16 @@ edges -| test.py:2:26:2:32 | ControlFlowNode for ImportMember | test.py:2:26:2:32 | ControlFlowNode for request | -| test.py:2:26:2:32 | ControlFlowNode for request | test.py:7:12:7:18 | ControlFlowNode for request | -| test.py:7:5:7:8 | ControlFlowNode for text | test.py:8:30:8:33 | ControlFlowNode for text | -| test.py:7:5:7:8 | ControlFlowNode for text | test.py:9:32:9:35 | ControlFlowNode for text | -| test.py:7:5:7:8 | ControlFlowNode for text | test.py:12:17:12:20 | ControlFlowNode for text | -| test.py:7:5:7:8 | ControlFlowNode for text | test.py:18:28:18:31 | ControlFlowNode for text | -| test.py:7:5:7:8 | ControlFlowNode for text | test.py:21:18:21:21 | ControlFlowNode for text | -| test.py:7:12:7:18 | ControlFlowNode for request | test.py:7:12:7:23 | ControlFlowNode for Attribute | -| test.py:7:12:7:23 | ControlFlowNode for Attribute | test.py:7:12:7:35 | ControlFlowNode for Attribute() | -| test.py:7:12:7:35 | ControlFlowNode for Attribute() | test.py:7:5:7:8 | ControlFlowNode for text | -| test.py:14:33:14:39 | ControlFlowNode for my_text | test.py:16:24:16:30 | ControlFlowNode for my_text | -| test.py:18:28:18:31 | ControlFlowNode for text | test.py:14:33:14:39 | ControlFlowNode for my_text | +| test.py:2:26:2:32 | ControlFlowNode for ImportMember | test.py:2:26:2:32 | ControlFlowNode for request | provenance | | +| test.py:2:26:2:32 | ControlFlowNode for request | test.py:7:12:7:18 | ControlFlowNode for request | provenance | | +| test.py:7:5:7:8 | ControlFlowNode for text | test.py:8:30:8:33 | ControlFlowNode for text | provenance | | +| test.py:7:5:7:8 | ControlFlowNode for text | test.py:9:32:9:35 | ControlFlowNode for text | provenance | | +| test.py:7:5:7:8 | ControlFlowNode for text | test.py:12:17:12:20 | ControlFlowNode for text | provenance | | +| test.py:7:5:7:8 | ControlFlowNode for text | test.py:18:28:18:31 | ControlFlowNode for text | provenance | | +| test.py:7:5:7:8 | ControlFlowNode for text | test.py:21:18:21:21 | ControlFlowNode for text | provenance | | +| test.py:7:12:7:18 | ControlFlowNode for request | test.py:7:12:7:23 | ControlFlowNode for Attribute | provenance | | +| test.py:7:12:7:23 | ControlFlowNode for Attribute | test.py:7:12:7:35 | ControlFlowNode for Attribute() | provenance | | +| test.py:7:12:7:35 | ControlFlowNode for Attribute() | test.py:7:5:7:8 | ControlFlowNode for text | provenance | | +| test.py:14:33:14:39 | ControlFlowNode for my_text | test.py:16:24:16:30 | ControlFlowNode for my_text | provenance | | +| test.py:18:28:18:31 | ControlFlowNode for text | test.py:14:33:14:39 | ControlFlowNode for my_text | provenance | | nodes | test.py:2:26:2:32 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | | test.py:2:26:2:32 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | diff --git a/python/ql/test/query-tests/Security/CWE-730-RegexInjection/RegexInjection.expected b/python/ql/test/query-tests/Security/CWE-730-RegexInjection/RegexInjection.expected index 12913198622c..48bbda48416b 100644 --- a/python/ql/test/query-tests/Security/CWE-730-RegexInjection/RegexInjection.expected +++ b/python/ql/test/query-tests/Security/CWE-730-RegexInjection/RegexInjection.expected @@ -1,14 +1,14 @@ edges -| re_bad.py:1:19:1:25 | ControlFlowNode for ImportMember | re_bad.py:1:19:1:25 | ControlFlowNode for request | -| re_bad.py:1:19:1:25 | ControlFlowNode for request | re_bad.py:13:22:13:28 | ControlFlowNode for request | -| re_bad.py:1:19:1:25 | ControlFlowNode for request | re_bad.py:24:22:24:28 | ControlFlowNode for request | -| re_bad.py:1:19:1:25 | ControlFlowNode for request | re_bad.py:36:22:36:28 | ControlFlowNode for request | -| re_bad.py:13:5:13:18 | ControlFlowNode for unsafe_pattern | re_bad.py:14:15:14:28 | ControlFlowNode for unsafe_pattern | -| re_bad.py:13:22:13:28 | ControlFlowNode for request | re_bad.py:13:5:13:18 | ControlFlowNode for unsafe_pattern | -| re_bad.py:24:5:24:18 | ControlFlowNode for unsafe_pattern | re_bad.py:25:35:25:48 | ControlFlowNode for unsafe_pattern | -| re_bad.py:24:22:24:28 | ControlFlowNode for request | re_bad.py:24:5:24:18 | ControlFlowNode for unsafe_pattern | -| re_bad.py:36:5:36:18 | ControlFlowNode for unsafe_pattern | re_bad.py:37:16:37:29 | ControlFlowNode for unsafe_pattern | -| re_bad.py:36:22:36:28 | ControlFlowNode for request | re_bad.py:36:5:36:18 | ControlFlowNode for unsafe_pattern | +| re_bad.py:1:19:1:25 | ControlFlowNode for ImportMember | re_bad.py:1:19:1:25 | ControlFlowNode for request | provenance | | +| re_bad.py:1:19:1:25 | ControlFlowNode for request | re_bad.py:13:22:13:28 | ControlFlowNode for request | provenance | | +| re_bad.py:1:19:1:25 | ControlFlowNode for request | re_bad.py:24:22:24:28 | ControlFlowNode for request | provenance | | +| re_bad.py:1:19:1:25 | ControlFlowNode for request | re_bad.py:36:22:36:28 | ControlFlowNode for request | provenance | | +| re_bad.py:13:5:13:18 | ControlFlowNode for unsafe_pattern | re_bad.py:14:15:14:28 | ControlFlowNode for unsafe_pattern | provenance | | +| re_bad.py:13:22:13:28 | ControlFlowNode for request | re_bad.py:13:5:13:18 | ControlFlowNode for unsafe_pattern | provenance | | +| re_bad.py:24:5:24:18 | ControlFlowNode for unsafe_pattern | re_bad.py:25:35:25:48 | ControlFlowNode for unsafe_pattern | provenance | | +| re_bad.py:24:22:24:28 | ControlFlowNode for request | re_bad.py:24:5:24:18 | ControlFlowNode for unsafe_pattern | provenance | | +| re_bad.py:36:5:36:18 | ControlFlowNode for unsafe_pattern | re_bad.py:37:16:37:29 | ControlFlowNode for unsafe_pattern | provenance | | +| re_bad.py:36:22:36:28 | ControlFlowNode for request | re_bad.py:36:5:36:18 | ControlFlowNode for unsafe_pattern | provenance | | nodes | re_bad.py:1:19:1:25 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | | re_bad.py:1:19:1:25 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | diff --git a/python/ql/test/query-tests/Security/CWE-776-XmlBomb/XmlBomb.expected b/python/ql/test/query-tests/Security/CWE-776-XmlBomb/XmlBomb.expected index 59a175e8ae67..944856ca0db6 100644 --- a/python/ql/test/query-tests/Security/CWE-776-XmlBomb/XmlBomb.expected +++ b/python/ql/test/query-tests/Security/CWE-776-XmlBomb/XmlBomb.expected @@ -1,8 +1,8 @@ edges -| test.py:1:26:1:32 | ControlFlowNode for ImportMember | test.py:1:26:1:32 | ControlFlowNode for request | -| test.py:1:26:1:32 | ControlFlowNode for request | test.py:19:19:19:25 | ControlFlowNode for request | -| test.py:19:5:19:15 | ControlFlowNode for xml_content | test.py:30:34:30:44 | ControlFlowNode for xml_content | -| test.py:19:19:19:25 | ControlFlowNode for request | test.py:19:5:19:15 | ControlFlowNode for xml_content | +| test.py:1:26:1:32 | ControlFlowNode for ImportMember | test.py:1:26:1:32 | ControlFlowNode for request | provenance | | +| test.py:1:26:1:32 | ControlFlowNode for request | test.py:19:19:19:25 | ControlFlowNode for request | provenance | | +| test.py:19:5:19:15 | ControlFlowNode for xml_content | test.py:30:34:30:44 | ControlFlowNode for xml_content | provenance | | +| test.py:19:19:19:25 | ControlFlowNode for request | test.py:19:5:19:15 | ControlFlowNode for xml_content | provenance | | nodes | test.py:1:26:1:32 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | | test.py:1:26:1:32 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | diff --git a/python/ql/test/query-tests/Security/CWE-798-HardcodedCredentials/HardcodedCredentials.expected b/python/ql/test/query-tests/Security/CWE-798-HardcodedCredentials/HardcodedCredentials.expected index 78ebc9bd0491..5f494e9ba7a4 100644 --- a/python/ql/test/query-tests/Security/CWE-798-HardcodedCredentials/HardcodedCredentials.expected +++ b/python/ql/test/query-tests/Security/CWE-798-HardcodedCredentials/HardcodedCredentials.expected @@ -1,8 +1,8 @@ edges -| test.py:5:1:5:8 | ControlFlowNode for USERNAME | test.py:14:18:14:25 | ControlFlowNode for USERNAME | -| test.py:5:12:5:24 | ControlFlowNode for Str | test.py:5:1:5:8 | ControlFlowNode for USERNAME | -| test.py:6:1:6:8 | ControlFlowNode for PASSWORD | test.py:15:18:15:25 | ControlFlowNode for PASSWORD | -| test.py:6:12:6:25 | ControlFlowNode for Str | test.py:6:1:6:8 | ControlFlowNode for PASSWORD | +| test.py:5:1:5:8 | ControlFlowNode for USERNAME | test.py:14:18:14:25 | ControlFlowNode for USERNAME | provenance | | +| test.py:5:12:5:24 | ControlFlowNode for Str | test.py:5:1:5:8 | ControlFlowNode for USERNAME | provenance | | +| test.py:6:1:6:8 | ControlFlowNode for PASSWORD | test.py:15:18:15:25 | ControlFlowNode for PASSWORD | provenance | | +| test.py:6:12:6:25 | ControlFlowNode for Str | test.py:6:1:6:8 | ControlFlowNode for PASSWORD | provenance | | nodes | test.py:5:1:5:8 | ControlFlowNode for USERNAME | semmle.label | ControlFlowNode for USERNAME | | test.py:5:12:5:24 | ControlFlowNode for Str | semmle.label | ControlFlowNode for Str | diff --git a/python/ql/test/query-tests/Security/CWE-918-ServerSideRequestForgery/FullServerSideRequestForgery.expected b/python/ql/test/query-tests/Security/CWE-918-ServerSideRequestForgery/FullServerSideRequestForgery.expected index c6b1c77d40ee..cc0a986aedba 100644 --- a/python/ql/test/query-tests/Security/CWE-918-ServerSideRequestForgery/FullServerSideRequestForgery.expected +++ b/python/ql/test/query-tests/Security/CWE-918-ServerSideRequestForgery/FullServerSideRequestForgery.expected @@ -1,56 +1,56 @@ edges -| full_partial_test.py:1:19:1:25 | ControlFlowNode for ImportMember | full_partial_test.py:1:19:1:25 | ControlFlowNode for request | -| full_partial_test.py:1:19:1:25 | ControlFlowNode for request | full_partial_test.py:7:18:7:24 | ControlFlowNode for request | -| full_partial_test.py:1:19:1:25 | ControlFlowNode for request | full_partial_test.py:37:18:37:24 | ControlFlowNode for request | -| full_partial_test.py:1:19:1:25 | ControlFlowNode for request | full_partial_test.py:57:18:57:24 | ControlFlowNode for request | -| full_partial_test.py:1:19:1:25 | ControlFlowNode for request | full_partial_test.py:71:18:71:24 | ControlFlowNode for request | -| full_partial_test.py:7:5:7:14 | ControlFlowNode for user_input | full_partial_test.py:10:18:10:27 | ControlFlowNode for user_input | -| full_partial_test.py:7:5:7:14 | ControlFlowNode for user_input | full_partial_test.py:12:5:12:7 | ControlFlowNode for url | -| full_partial_test.py:7:5:7:14 | ControlFlowNode for user_input | full_partial_test.py:18:5:18:7 | ControlFlowNode for url | -| full_partial_test.py:7:5:7:14 | ControlFlowNode for user_input | full_partial_test.py:22:5:22:7 | ControlFlowNode for url | -| full_partial_test.py:7:18:7:24 | ControlFlowNode for request | full_partial_test.py:7:5:7:14 | ControlFlowNode for user_input | -| full_partial_test.py:12:5:12:7 | ControlFlowNode for url | full_partial_test.py:13:18:13:20 | ControlFlowNode for url | -| full_partial_test.py:18:5:18:7 | ControlFlowNode for url | full_partial_test.py:19:18:19:20 | ControlFlowNode for url | -| full_partial_test.py:22:5:22:7 | ControlFlowNode for url | full_partial_test.py:23:18:23:20 | ControlFlowNode for url | -| full_partial_test.py:37:5:37:14 | ControlFlowNode for user_input | full_partial_test.py:41:5:41:7 | ControlFlowNode for url | -| full_partial_test.py:37:5:37:14 | ControlFlowNode for user_input | full_partial_test.py:44:5:44:7 | ControlFlowNode for url | -| full_partial_test.py:37:5:37:14 | ControlFlowNode for user_input | full_partial_test.py:47:5:47:7 | ControlFlowNode for url | -| full_partial_test.py:37:5:37:14 | ControlFlowNode for user_input | full_partial_test.py:50:5:50:7 | ControlFlowNode for url | -| full_partial_test.py:37:5:37:14 | ControlFlowNode for user_input | full_partial_test.py:53:5:53:7 | ControlFlowNode for url | -| full_partial_test.py:37:18:37:24 | ControlFlowNode for request | full_partial_test.py:37:5:37:14 | ControlFlowNode for user_input | -| full_partial_test.py:41:5:41:7 | ControlFlowNode for url | full_partial_test.py:42:18:42:20 | ControlFlowNode for url | -| full_partial_test.py:44:5:44:7 | ControlFlowNode for url | full_partial_test.py:45:18:45:20 | ControlFlowNode for url | -| full_partial_test.py:47:5:47:7 | ControlFlowNode for url | full_partial_test.py:48:18:48:20 | ControlFlowNode for url | -| full_partial_test.py:50:5:50:7 | ControlFlowNode for url | full_partial_test.py:51:18:51:20 | ControlFlowNode for url | -| full_partial_test.py:53:5:53:7 | ControlFlowNode for url | full_partial_test.py:54:18:54:20 | ControlFlowNode for url | -| full_partial_test.py:57:5:57:14 | ControlFlowNode for user_input | full_partial_test.py:61:5:61:7 | ControlFlowNode for url | -| full_partial_test.py:57:5:57:14 | ControlFlowNode for user_input | full_partial_test.py:64:5:64:7 | ControlFlowNode for url | -| full_partial_test.py:57:18:57:24 | ControlFlowNode for request | full_partial_test.py:57:5:57:14 | ControlFlowNode for user_input | -| full_partial_test.py:61:5:61:7 | ControlFlowNode for url | full_partial_test.py:62:18:62:20 | ControlFlowNode for url | -| full_partial_test.py:64:5:64:7 | ControlFlowNode for url | full_partial_test.py:65:18:65:20 | ControlFlowNode for url | -| full_partial_test.py:71:5:71:14 | ControlFlowNode for user_input | full_partial_test.py:75:5:75:7 | ControlFlowNode for url | -| full_partial_test.py:71:5:71:14 | ControlFlowNode for user_input | full_partial_test.py:78:5:78:7 | ControlFlowNode for url | -| full_partial_test.py:71:5:71:14 | ControlFlowNode for user_input | full_partial_test.py:81:5:81:7 | ControlFlowNode for url | -| full_partial_test.py:71:18:71:24 | ControlFlowNode for request | full_partial_test.py:71:5:71:14 | ControlFlowNode for user_input | -| full_partial_test.py:75:5:75:7 | ControlFlowNode for url | full_partial_test.py:76:18:76:20 | ControlFlowNode for url | -| full_partial_test.py:78:5:78:7 | ControlFlowNode for url | full_partial_test.py:79:18:79:20 | ControlFlowNode for url | -| full_partial_test.py:81:5:81:7 | ControlFlowNode for url | full_partial_test.py:82:18:82:20 | ControlFlowNode for url | -| test_http_client.py:1:26:1:32 | ControlFlowNode for ImportMember | test_http_client.py:1:26:1:32 | ControlFlowNode for request | -| test_http_client.py:1:26:1:32 | ControlFlowNode for request | test_http_client.py:9:19:9:25 | ControlFlowNode for request | -| test_http_client.py:1:26:1:32 | ControlFlowNode for request | test_http_client.py:10:19:10:25 | ControlFlowNode for request | -| test_http_client.py:9:5:9:15 | ControlFlowNode for unsafe_host | test_http_client.py:13:27:13:37 | ControlFlowNode for unsafe_host | -| test_http_client.py:9:5:9:15 | ControlFlowNode for unsafe_host | test_http_client.py:18:27:18:37 | ControlFlowNode for unsafe_host | -| test_http_client.py:9:5:9:15 | ControlFlowNode for unsafe_host | test_http_client.py:25:27:25:37 | ControlFlowNode for unsafe_host | -| test_http_client.py:9:19:9:25 | ControlFlowNode for request | test_http_client.py:9:5:9:15 | ControlFlowNode for unsafe_host | -| test_http_client.py:9:19:9:25 | ControlFlowNode for request | test_http_client.py:10:5:10:15 | ControlFlowNode for unsafe_path | -| test_http_client.py:10:5:10:15 | ControlFlowNode for unsafe_path | test_http_client.py:14:25:14:35 | ControlFlowNode for unsafe_path | -| test_http_client.py:10:5:10:15 | ControlFlowNode for unsafe_path | test_http_client.py:19:25:19:35 | ControlFlowNode for unsafe_path | -| test_http_client.py:10:5:10:15 | ControlFlowNode for unsafe_path | test_http_client.py:29:25:29:35 | ControlFlowNode for unsafe_path | -| test_http_client.py:10:19:10:25 | ControlFlowNode for request | test_http_client.py:10:5:10:15 | ControlFlowNode for unsafe_path | -| test_requests.py:1:19:1:25 | ControlFlowNode for ImportMember | test_requests.py:1:19:1:25 | ControlFlowNode for request | -| test_requests.py:1:19:1:25 | ControlFlowNode for request | test_requests.py:6:18:6:24 | ControlFlowNode for request | -| test_requests.py:6:5:6:14 | ControlFlowNode for user_input | test_requests.py:8:18:8:27 | ControlFlowNode for user_input | -| test_requests.py:6:18:6:24 | ControlFlowNode for request | test_requests.py:6:5:6:14 | ControlFlowNode for user_input | +| full_partial_test.py:1:19:1:25 | ControlFlowNode for ImportMember | full_partial_test.py:1:19:1:25 | ControlFlowNode for request | provenance | | +| full_partial_test.py:1:19:1:25 | ControlFlowNode for request | full_partial_test.py:7:18:7:24 | ControlFlowNode for request | provenance | | +| full_partial_test.py:1:19:1:25 | ControlFlowNode for request | full_partial_test.py:37:18:37:24 | ControlFlowNode for request | provenance | | +| full_partial_test.py:1:19:1:25 | ControlFlowNode for request | full_partial_test.py:57:18:57:24 | ControlFlowNode for request | provenance | | +| full_partial_test.py:1:19:1:25 | ControlFlowNode for request | full_partial_test.py:71:18:71:24 | ControlFlowNode for request | provenance | | +| full_partial_test.py:7:5:7:14 | ControlFlowNode for user_input | full_partial_test.py:10:18:10:27 | ControlFlowNode for user_input | provenance | | +| full_partial_test.py:7:5:7:14 | ControlFlowNode for user_input | full_partial_test.py:12:5:12:7 | ControlFlowNode for url | provenance | | +| full_partial_test.py:7:5:7:14 | ControlFlowNode for user_input | full_partial_test.py:18:5:18:7 | ControlFlowNode for url | provenance | | +| full_partial_test.py:7:5:7:14 | ControlFlowNode for user_input | full_partial_test.py:22:5:22:7 | ControlFlowNode for url | provenance | | +| full_partial_test.py:7:18:7:24 | ControlFlowNode for request | full_partial_test.py:7:5:7:14 | ControlFlowNode for user_input | provenance | | +| full_partial_test.py:12:5:12:7 | ControlFlowNode for url | full_partial_test.py:13:18:13:20 | ControlFlowNode for url | provenance | | +| full_partial_test.py:18:5:18:7 | ControlFlowNode for url | full_partial_test.py:19:18:19:20 | ControlFlowNode for url | provenance | | +| full_partial_test.py:22:5:22:7 | ControlFlowNode for url | full_partial_test.py:23:18:23:20 | ControlFlowNode for url | provenance | | +| full_partial_test.py:37:5:37:14 | ControlFlowNode for user_input | full_partial_test.py:41:5:41:7 | ControlFlowNode for url | provenance | | +| full_partial_test.py:37:5:37:14 | ControlFlowNode for user_input | full_partial_test.py:44:5:44:7 | ControlFlowNode for url | provenance | | +| full_partial_test.py:37:5:37:14 | ControlFlowNode for user_input | full_partial_test.py:47:5:47:7 | ControlFlowNode for url | provenance | | +| full_partial_test.py:37:5:37:14 | ControlFlowNode for user_input | full_partial_test.py:50:5:50:7 | ControlFlowNode for url | provenance | | +| full_partial_test.py:37:5:37:14 | ControlFlowNode for user_input | full_partial_test.py:53:5:53:7 | ControlFlowNode for url | provenance | | +| full_partial_test.py:37:18:37:24 | ControlFlowNode for request | full_partial_test.py:37:5:37:14 | ControlFlowNode for user_input | provenance | | +| full_partial_test.py:41:5:41:7 | ControlFlowNode for url | full_partial_test.py:42:18:42:20 | ControlFlowNode for url | provenance | | +| full_partial_test.py:44:5:44:7 | ControlFlowNode for url | full_partial_test.py:45:18:45:20 | ControlFlowNode for url | provenance | | +| full_partial_test.py:47:5:47:7 | ControlFlowNode for url | full_partial_test.py:48:18:48:20 | ControlFlowNode for url | provenance | | +| full_partial_test.py:50:5:50:7 | ControlFlowNode for url | full_partial_test.py:51:18:51:20 | ControlFlowNode for url | provenance | | +| full_partial_test.py:53:5:53:7 | ControlFlowNode for url | full_partial_test.py:54:18:54:20 | ControlFlowNode for url | provenance | | +| full_partial_test.py:57:5:57:14 | ControlFlowNode for user_input | full_partial_test.py:61:5:61:7 | ControlFlowNode for url | provenance | | +| full_partial_test.py:57:5:57:14 | ControlFlowNode for user_input | full_partial_test.py:64:5:64:7 | ControlFlowNode for url | provenance | | +| full_partial_test.py:57:18:57:24 | ControlFlowNode for request | full_partial_test.py:57:5:57:14 | ControlFlowNode for user_input | provenance | | +| full_partial_test.py:61:5:61:7 | ControlFlowNode for url | full_partial_test.py:62:18:62:20 | ControlFlowNode for url | provenance | | +| full_partial_test.py:64:5:64:7 | ControlFlowNode for url | full_partial_test.py:65:18:65:20 | ControlFlowNode for url | provenance | | +| full_partial_test.py:71:5:71:14 | ControlFlowNode for user_input | full_partial_test.py:75:5:75:7 | ControlFlowNode for url | provenance | | +| full_partial_test.py:71:5:71:14 | ControlFlowNode for user_input | full_partial_test.py:78:5:78:7 | ControlFlowNode for url | provenance | | +| full_partial_test.py:71:5:71:14 | ControlFlowNode for user_input | full_partial_test.py:81:5:81:7 | ControlFlowNode for url | provenance | | +| full_partial_test.py:71:18:71:24 | ControlFlowNode for request | full_partial_test.py:71:5:71:14 | ControlFlowNode for user_input | provenance | | +| full_partial_test.py:75:5:75:7 | ControlFlowNode for url | full_partial_test.py:76:18:76:20 | ControlFlowNode for url | provenance | | +| full_partial_test.py:78:5:78:7 | ControlFlowNode for url | full_partial_test.py:79:18:79:20 | ControlFlowNode for url | provenance | | +| full_partial_test.py:81:5:81:7 | ControlFlowNode for url | full_partial_test.py:82:18:82:20 | ControlFlowNode for url | provenance | | +| test_http_client.py:1:26:1:32 | ControlFlowNode for ImportMember | test_http_client.py:1:26:1:32 | ControlFlowNode for request | provenance | | +| test_http_client.py:1:26:1:32 | ControlFlowNode for request | test_http_client.py:9:19:9:25 | ControlFlowNode for request | provenance | | +| test_http_client.py:1:26:1:32 | ControlFlowNode for request | test_http_client.py:10:19:10:25 | ControlFlowNode for request | provenance | | +| test_http_client.py:9:5:9:15 | ControlFlowNode for unsafe_host | test_http_client.py:13:27:13:37 | ControlFlowNode for unsafe_host | provenance | | +| test_http_client.py:9:5:9:15 | ControlFlowNode for unsafe_host | test_http_client.py:18:27:18:37 | ControlFlowNode for unsafe_host | provenance | | +| test_http_client.py:9:5:9:15 | ControlFlowNode for unsafe_host | test_http_client.py:25:27:25:37 | ControlFlowNode for unsafe_host | provenance | | +| test_http_client.py:9:19:9:25 | ControlFlowNode for request | test_http_client.py:9:5:9:15 | ControlFlowNode for unsafe_host | provenance | | +| test_http_client.py:9:19:9:25 | ControlFlowNode for request | test_http_client.py:10:5:10:15 | ControlFlowNode for unsafe_path | provenance | | +| test_http_client.py:10:5:10:15 | ControlFlowNode for unsafe_path | test_http_client.py:14:25:14:35 | ControlFlowNode for unsafe_path | provenance | | +| test_http_client.py:10:5:10:15 | ControlFlowNode for unsafe_path | test_http_client.py:19:25:19:35 | ControlFlowNode for unsafe_path | provenance | | +| test_http_client.py:10:5:10:15 | ControlFlowNode for unsafe_path | test_http_client.py:29:25:29:35 | ControlFlowNode for unsafe_path | provenance | | +| test_http_client.py:10:19:10:25 | ControlFlowNode for request | test_http_client.py:10:5:10:15 | ControlFlowNode for unsafe_path | provenance | | +| test_requests.py:1:19:1:25 | ControlFlowNode for ImportMember | test_requests.py:1:19:1:25 | ControlFlowNode for request | provenance | | +| test_requests.py:1:19:1:25 | ControlFlowNode for request | test_requests.py:6:18:6:24 | ControlFlowNode for request | provenance | | +| test_requests.py:6:5:6:14 | ControlFlowNode for user_input | test_requests.py:8:18:8:27 | ControlFlowNode for user_input | provenance | | +| test_requests.py:6:18:6:24 | ControlFlowNode for request | test_requests.py:6:5:6:14 | ControlFlowNode for user_input | provenance | | nodes | full_partial_test.py:1:19:1:25 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | | full_partial_test.py:1:19:1:25 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | diff --git a/python/ql/test/query-tests/Security/CWE-918-ServerSideRequestForgery/PartialServerSideRequestForgery.expected b/python/ql/test/query-tests/Security/CWE-918-ServerSideRequestForgery/PartialServerSideRequestForgery.expected index 1960ec4b80db..33f6bc363e42 100644 --- a/python/ql/test/query-tests/Security/CWE-918-ServerSideRequestForgery/PartialServerSideRequestForgery.expected +++ b/python/ql/test/query-tests/Security/CWE-918-ServerSideRequestForgery/PartialServerSideRequestForgery.expected @@ -1,106 +1,106 @@ edges -| full_partial_test.py:1:19:1:25 | ControlFlowNode for ImportMember | full_partial_test.py:1:19:1:25 | ControlFlowNode for request | -| full_partial_test.py:1:19:1:25 | ControlFlowNode for request | full_partial_test.py:7:18:7:24 | ControlFlowNode for request | -| full_partial_test.py:1:19:1:25 | ControlFlowNode for request | full_partial_test.py:8:17:8:23 | ControlFlowNode for request | -| full_partial_test.py:1:19:1:25 | ControlFlowNode for request | full_partial_test.py:37:18:37:24 | ControlFlowNode for request | -| full_partial_test.py:1:19:1:25 | ControlFlowNode for request | full_partial_test.py:38:17:38:23 | ControlFlowNode for request | -| full_partial_test.py:1:19:1:25 | ControlFlowNode for request | full_partial_test.py:57:18:57:24 | ControlFlowNode for request | -| full_partial_test.py:1:19:1:25 | ControlFlowNode for request | full_partial_test.py:58:17:58:23 | ControlFlowNode for request | -| full_partial_test.py:1:19:1:25 | ControlFlowNode for request | full_partial_test.py:71:18:71:24 | ControlFlowNode for request | -| full_partial_test.py:1:19:1:25 | ControlFlowNode for request | full_partial_test.py:72:17:72:23 | ControlFlowNode for request | -| full_partial_test.py:1:19:1:25 | ControlFlowNode for request | full_partial_test.py:86:18:86:24 | ControlFlowNode for request | -| full_partial_test.py:1:19:1:25 | ControlFlowNode for request | full_partial_test.py:92:18:92:24 | ControlFlowNode for request | -| full_partial_test.py:1:19:1:25 | ControlFlowNode for request | full_partial_test.py:98:18:98:24 | ControlFlowNode for request | -| full_partial_test.py:1:19:1:25 | ControlFlowNode for request | full_partial_test.py:104:18:104:24 | ControlFlowNode for request | -| full_partial_test.py:1:19:1:25 | ControlFlowNode for request | full_partial_test.py:110:18:110:24 | ControlFlowNode for request | -| full_partial_test.py:1:19:1:25 | ControlFlowNode for request | full_partial_test.py:119:18:119:24 | ControlFlowNode for request | -| full_partial_test.py:7:5:7:14 | ControlFlowNode for user_input | full_partial_test.py:10:18:10:27 | ControlFlowNode for user_input | -| full_partial_test.py:7:5:7:14 | ControlFlowNode for user_input | full_partial_test.py:12:5:12:7 | ControlFlowNode for url | -| full_partial_test.py:7:5:7:14 | ControlFlowNode for user_input | full_partial_test.py:18:5:18:7 | ControlFlowNode for url | -| full_partial_test.py:7:5:7:14 | ControlFlowNode for user_input | full_partial_test.py:22:5:22:7 | ControlFlowNode for url | -| full_partial_test.py:7:18:7:24 | ControlFlowNode for request | full_partial_test.py:7:5:7:14 | ControlFlowNode for user_input | -| full_partial_test.py:7:18:7:24 | ControlFlowNode for request | full_partial_test.py:8:5:8:13 | ControlFlowNode for query_val | -| full_partial_test.py:8:5:8:13 | ControlFlowNode for query_val | full_partial_test.py:22:5:22:7 | ControlFlowNode for url | -| full_partial_test.py:8:17:8:23 | ControlFlowNode for request | full_partial_test.py:8:5:8:13 | ControlFlowNode for query_val | -| full_partial_test.py:12:5:12:7 | ControlFlowNode for url | full_partial_test.py:13:18:13:20 | ControlFlowNode for url | -| full_partial_test.py:18:5:18:7 | ControlFlowNode for url | full_partial_test.py:19:18:19:20 | ControlFlowNode for url | -| full_partial_test.py:22:5:22:7 | ControlFlowNode for url | full_partial_test.py:23:18:23:20 | ControlFlowNode for url | -| full_partial_test.py:37:5:37:14 | ControlFlowNode for user_input | full_partial_test.py:41:5:41:7 | ControlFlowNode for url | -| full_partial_test.py:37:5:37:14 | ControlFlowNode for user_input | full_partial_test.py:44:5:44:7 | ControlFlowNode for url | -| full_partial_test.py:37:5:37:14 | ControlFlowNode for user_input | full_partial_test.py:47:5:47:7 | ControlFlowNode for url | -| full_partial_test.py:37:5:37:14 | ControlFlowNode for user_input | full_partial_test.py:50:5:50:7 | ControlFlowNode for url | -| full_partial_test.py:37:5:37:14 | ControlFlowNode for user_input | full_partial_test.py:53:5:53:7 | ControlFlowNode for url | -| full_partial_test.py:37:18:37:24 | ControlFlowNode for request | full_partial_test.py:37:5:37:14 | ControlFlowNode for user_input | -| full_partial_test.py:37:18:37:24 | ControlFlowNode for request | full_partial_test.py:38:5:38:13 | ControlFlowNode for query_val | -| full_partial_test.py:38:5:38:13 | ControlFlowNode for query_val | full_partial_test.py:47:5:47:7 | ControlFlowNode for url | -| full_partial_test.py:38:17:38:23 | ControlFlowNode for request | full_partial_test.py:38:5:38:13 | ControlFlowNode for query_val | -| full_partial_test.py:41:5:41:7 | ControlFlowNode for url | full_partial_test.py:42:18:42:20 | ControlFlowNode for url | -| full_partial_test.py:44:5:44:7 | ControlFlowNode for url | full_partial_test.py:45:18:45:20 | ControlFlowNode for url | -| full_partial_test.py:47:5:47:7 | ControlFlowNode for url | full_partial_test.py:48:18:48:20 | ControlFlowNode for url | -| full_partial_test.py:50:5:50:7 | ControlFlowNode for url | full_partial_test.py:51:18:51:20 | ControlFlowNode for url | -| full_partial_test.py:53:5:53:7 | ControlFlowNode for url | full_partial_test.py:54:18:54:20 | ControlFlowNode for url | -| full_partial_test.py:57:5:57:14 | ControlFlowNode for user_input | full_partial_test.py:61:5:61:7 | ControlFlowNode for url | -| full_partial_test.py:57:5:57:14 | ControlFlowNode for user_input | full_partial_test.py:64:5:64:7 | ControlFlowNode for url | -| full_partial_test.py:57:5:57:14 | ControlFlowNode for user_input | full_partial_test.py:67:5:67:7 | ControlFlowNode for url | -| full_partial_test.py:57:18:57:24 | ControlFlowNode for request | full_partial_test.py:57:5:57:14 | ControlFlowNode for user_input | -| full_partial_test.py:57:18:57:24 | ControlFlowNode for request | full_partial_test.py:58:5:58:13 | ControlFlowNode for query_val | -| full_partial_test.py:58:5:58:13 | ControlFlowNode for query_val | full_partial_test.py:67:5:67:7 | ControlFlowNode for url | -| full_partial_test.py:58:17:58:23 | ControlFlowNode for request | full_partial_test.py:58:5:58:13 | ControlFlowNode for query_val | -| full_partial_test.py:61:5:61:7 | ControlFlowNode for url | full_partial_test.py:62:18:62:20 | ControlFlowNode for url | -| full_partial_test.py:64:5:64:7 | ControlFlowNode for url | full_partial_test.py:65:18:65:20 | ControlFlowNode for url | -| full_partial_test.py:67:5:67:7 | ControlFlowNode for url | full_partial_test.py:68:18:68:20 | ControlFlowNode for url | -| full_partial_test.py:71:5:71:14 | ControlFlowNode for user_input | full_partial_test.py:75:5:75:7 | ControlFlowNode for url | -| full_partial_test.py:71:5:71:14 | ControlFlowNode for user_input | full_partial_test.py:78:5:78:7 | ControlFlowNode for url | -| full_partial_test.py:71:5:71:14 | ControlFlowNode for user_input | full_partial_test.py:81:5:81:7 | ControlFlowNode for url | -| full_partial_test.py:71:18:71:24 | ControlFlowNode for request | full_partial_test.py:71:5:71:14 | ControlFlowNode for user_input | -| full_partial_test.py:71:18:71:24 | ControlFlowNode for request | full_partial_test.py:72:5:72:13 | ControlFlowNode for query_val | -| full_partial_test.py:72:5:72:13 | ControlFlowNode for query_val | full_partial_test.py:81:5:81:7 | ControlFlowNode for url | -| full_partial_test.py:72:17:72:23 | ControlFlowNode for request | full_partial_test.py:72:5:72:13 | ControlFlowNode for query_val | -| full_partial_test.py:75:5:75:7 | ControlFlowNode for url | full_partial_test.py:76:18:76:20 | ControlFlowNode for url | -| full_partial_test.py:78:5:78:7 | ControlFlowNode for url | full_partial_test.py:79:18:79:20 | ControlFlowNode for url | -| full_partial_test.py:81:5:81:7 | ControlFlowNode for url | full_partial_test.py:82:18:82:20 | ControlFlowNode for url | -| full_partial_test.py:86:5:86:14 | ControlFlowNode for user_input | full_partial_test.py:88:5:88:7 | ControlFlowNode for url | -| full_partial_test.py:86:18:86:24 | ControlFlowNode for request | full_partial_test.py:86:5:86:14 | ControlFlowNode for user_input | -| full_partial_test.py:88:5:88:7 | ControlFlowNode for url | full_partial_test.py:89:18:89:20 | ControlFlowNode for url | -| full_partial_test.py:92:5:92:14 | ControlFlowNode for user_input | full_partial_test.py:94:5:94:7 | ControlFlowNode for url | -| full_partial_test.py:92:18:92:24 | ControlFlowNode for request | full_partial_test.py:92:5:92:14 | ControlFlowNode for user_input | -| full_partial_test.py:94:5:94:7 | ControlFlowNode for url | full_partial_test.py:95:18:95:20 | ControlFlowNode for url | -| full_partial_test.py:98:5:98:14 | ControlFlowNode for user_input | full_partial_test.py:100:5:100:7 | ControlFlowNode for url | -| full_partial_test.py:98:18:98:24 | ControlFlowNode for request | full_partial_test.py:98:5:98:14 | ControlFlowNode for user_input | -| full_partial_test.py:100:5:100:7 | ControlFlowNode for url | full_partial_test.py:101:18:101:20 | ControlFlowNode for url | -| full_partial_test.py:104:5:104:14 | ControlFlowNode for user_input | full_partial_test.py:106:5:106:7 | ControlFlowNode for url | -| full_partial_test.py:104:18:104:24 | ControlFlowNode for request | full_partial_test.py:104:5:104:14 | ControlFlowNode for user_input | -| full_partial_test.py:106:5:106:7 | ControlFlowNode for url | full_partial_test.py:107:18:107:20 | ControlFlowNode for url | -| full_partial_test.py:110:5:110:14 | ControlFlowNode for user_input | full_partial_test.py:115:5:115:7 | ControlFlowNode for url | -| full_partial_test.py:110:18:110:24 | ControlFlowNode for request | full_partial_test.py:110:5:110:14 | ControlFlowNode for user_input | -| full_partial_test.py:115:5:115:7 | ControlFlowNode for url | full_partial_test.py:116:18:116:20 | ControlFlowNode for url | -| full_partial_test.py:119:5:119:14 | ControlFlowNode for user_input | full_partial_test.py:121:5:121:7 | ControlFlowNode for url | -| full_partial_test.py:119:18:119:24 | ControlFlowNode for request | full_partial_test.py:119:5:119:14 | ControlFlowNode for user_input | -| full_partial_test.py:121:5:121:7 | ControlFlowNode for url | full_partial_test.py:122:18:122:20 | ControlFlowNode for url | -| test_http_client.py:1:26:1:32 | ControlFlowNode for ImportMember | test_http_client.py:1:26:1:32 | ControlFlowNode for request | -| test_http_client.py:1:26:1:32 | ControlFlowNode for request | test_http_client.py:9:19:9:25 | ControlFlowNode for request | -| test_http_client.py:1:26:1:32 | ControlFlowNode for request | test_http_client.py:10:19:10:25 | ControlFlowNode for request | -| test_http_client.py:1:26:1:32 | ControlFlowNode for request | test_http_client.py:11:18:11:24 | ControlFlowNode for request | -| test_http_client.py:9:5:9:15 | ControlFlowNode for unsafe_host | test_http_client.py:13:27:13:37 | ControlFlowNode for unsafe_host | -| test_http_client.py:9:5:9:15 | ControlFlowNode for unsafe_host | test_http_client.py:18:27:18:37 | ControlFlowNode for unsafe_host | -| test_http_client.py:9:5:9:15 | ControlFlowNode for unsafe_host | test_http_client.py:25:27:25:37 | ControlFlowNode for unsafe_host | -| test_http_client.py:9:19:9:25 | ControlFlowNode for request | test_http_client.py:9:5:9:15 | ControlFlowNode for unsafe_host | -| test_http_client.py:9:19:9:25 | ControlFlowNode for request | test_http_client.py:10:5:10:15 | ControlFlowNode for unsafe_path | -| test_http_client.py:9:19:9:25 | ControlFlowNode for request | test_http_client.py:11:5:11:14 | ControlFlowNode for user_input | -| test_http_client.py:10:5:10:15 | ControlFlowNode for unsafe_path | test_http_client.py:14:25:14:35 | ControlFlowNode for unsafe_path | -| test_http_client.py:10:5:10:15 | ControlFlowNode for unsafe_path | test_http_client.py:19:25:19:35 | ControlFlowNode for unsafe_path | -| test_http_client.py:10:5:10:15 | ControlFlowNode for unsafe_path | test_http_client.py:29:25:29:35 | ControlFlowNode for unsafe_path | -| test_http_client.py:10:19:10:25 | ControlFlowNode for request | test_http_client.py:10:5:10:15 | ControlFlowNode for unsafe_path | -| test_http_client.py:10:19:10:25 | ControlFlowNode for request | test_http_client.py:11:5:11:14 | ControlFlowNode for user_input | -| test_http_client.py:11:5:11:14 | ControlFlowNode for user_input | test_http_client.py:31:5:31:8 | ControlFlowNode for path | -| test_http_client.py:11:5:11:14 | ControlFlowNode for user_input | test_http_client.py:35:5:35:8 | ControlFlowNode for path | -| test_http_client.py:11:18:11:24 | ControlFlowNode for request | test_http_client.py:11:5:11:14 | ControlFlowNode for user_input | -| test_http_client.py:31:5:31:8 | ControlFlowNode for path | test_http_client.py:33:25:33:28 | ControlFlowNode for path | -| test_http_client.py:35:5:35:8 | ControlFlowNode for path | test_http_client.py:37:25:37:28 | ControlFlowNode for path | -| test_requests.py:1:19:1:25 | ControlFlowNode for ImportMember | test_requests.py:1:19:1:25 | ControlFlowNode for request | -| test_requests.py:1:19:1:25 | ControlFlowNode for request | test_requests.py:6:18:6:24 | ControlFlowNode for request | -| test_requests.py:6:5:6:14 | ControlFlowNode for user_input | test_requests.py:8:18:8:27 | ControlFlowNode for user_input | -| test_requests.py:6:18:6:24 | ControlFlowNode for request | test_requests.py:6:5:6:14 | ControlFlowNode for user_input | +| full_partial_test.py:1:19:1:25 | ControlFlowNode for ImportMember | full_partial_test.py:1:19:1:25 | ControlFlowNode for request | provenance | | +| full_partial_test.py:1:19:1:25 | ControlFlowNode for request | full_partial_test.py:7:18:7:24 | ControlFlowNode for request | provenance | | +| full_partial_test.py:1:19:1:25 | ControlFlowNode for request | full_partial_test.py:8:17:8:23 | ControlFlowNode for request | provenance | | +| full_partial_test.py:1:19:1:25 | ControlFlowNode for request | full_partial_test.py:37:18:37:24 | ControlFlowNode for request | provenance | | +| full_partial_test.py:1:19:1:25 | ControlFlowNode for request | full_partial_test.py:38:17:38:23 | ControlFlowNode for request | provenance | | +| full_partial_test.py:1:19:1:25 | ControlFlowNode for request | full_partial_test.py:57:18:57:24 | ControlFlowNode for request | provenance | | +| full_partial_test.py:1:19:1:25 | ControlFlowNode for request | full_partial_test.py:58:17:58:23 | ControlFlowNode for request | provenance | | +| full_partial_test.py:1:19:1:25 | ControlFlowNode for request | full_partial_test.py:71:18:71:24 | ControlFlowNode for request | provenance | | +| full_partial_test.py:1:19:1:25 | ControlFlowNode for request | full_partial_test.py:72:17:72:23 | ControlFlowNode for request | provenance | | +| full_partial_test.py:1:19:1:25 | ControlFlowNode for request | full_partial_test.py:86:18:86:24 | ControlFlowNode for request | provenance | | +| full_partial_test.py:1:19:1:25 | ControlFlowNode for request | full_partial_test.py:92:18:92:24 | ControlFlowNode for request | provenance | | +| full_partial_test.py:1:19:1:25 | ControlFlowNode for request | full_partial_test.py:98:18:98:24 | ControlFlowNode for request | provenance | | +| full_partial_test.py:1:19:1:25 | ControlFlowNode for request | full_partial_test.py:104:18:104:24 | ControlFlowNode for request | provenance | | +| full_partial_test.py:1:19:1:25 | ControlFlowNode for request | full_partial_test.py:110:18:110:24 | ControlFlowNode for request | provenance | | +| full_partial_test.py:1:19:1:25 | ControlFlowNode for request | full_partial_test.py:119:18:119:24 | ControlFlowNode for request | provenance | | +| full_partial_test.py:7:5:7:14 | ControlFlowNode for user_input | full_partial_test.py:10:18:10:27 | ControlFlowNode for user_input | provenance | | +| full_partial_test.py:7:5:7:14 | ControlFlowNode for user_input | full_partial_test.py:12:5:12:7 | ControlFlowNode for url | provenance | | +| full_partial_test.py:7:5:7:14 | ControlFlowNode for user_input | full_partial_test.py:18:5:18:7 | ControlFlowNode for url | provenance | | +| full_partial_test.py:7:5:7:14 | ControlFlowNode for user_input | full_partial_test.py:22:5:22:7 | ControlFlowNode for url | provenance | | +| full_partial_test.py:7:18:7:24 | ControlFlowNode for request | full_partial_test.py:7:5:7:14 | ControlFlowNode for user_input | provenance | | +| full_partial_test.py:7:18:7:24 | ControlFlowNode for request | full_partial_test.py:8:5:8:13 | ControlFlowNode for query_val | provenance | | +| full_partial_test.py:8:5:8:13 | ControlFlowNode for query_val | full_partial_test.py:22:5:22:7 | ControlFlowNode for url | provenance | | +| full_partial_test.py:8:17:8:23 | ControlFlowNode for request | full_partial_test.py:8:5:8:13 | ControlFlowNode for query_val | provenance | | +| full_partial_test.py:12:5:12:7 | ControlFlowNode for url | full_partial_test.py:13:18:13:20 | ControlFlowNode for url | provenance | | +| full_partial_test.py:18:5:18:7 | ControlFlowNode for url | full_partial_test.py:19:18:19:20 | ControlFlowNode for url | provenance | | +| full_partial_test.py:22:5:22:7 | ControlFlowNode for url | full_partial_test.py:23:18:23:20 | ControlFlowNode for url | provenance | | +| full_partial_test.py:37:5:37:14 | ControlFlowNode for user_input | full_partial_test.py:41:5:41:7 | ControlFlowNode for url | provenance | | +| full_partial_test.py:37:5:37:14 | ControlFlowNode for user_input | full_partial_test.py:44:5:44:7 | ControlFlowNode for url | provenance | | +| full_partial_test.py:37:5:37:14 | ControlFlowNode for user_input | full_partial_test.py:47:5:47:7 | ControlFlowNode for url | provenance | | +| full_partial_test.py:37:5:37:14 | ControlFlowNode for user_input | full_partial_test.py:50:5:50:7 | ControlFlowNode for url | provenance | | +| full_partial_test.py:37:5:37:14 | ControlFlowNode for user_input | full_partial_test.py:53:5:53:7 | ControlFlowNode for url | provenance | | +| full_partial_test.py:37:18:37:24 | ControlFlowNode for request | full_partial_test.py:37:5:37:14 | ControlFlowNode for user_input | provenance | | +| full_partial_test.py:37:18:37:24 | ControlFlowNode for request | full_partial_test.py:38:5:38:13 | ControlFlowNode for query_val | provenance | | +| full_partial_test.py:38:5:38:13 | ControlFlowNode for query_val | full_partial_test.py:47:5:47:7 | ControlFlowNode for url | provenance | | +| full_partial_test.py:38:17:38:23 | ControlFlowNode for request | full_partial_test.py:38:5:38:13 | ControlFlowNode for query_val | provenance | | +| full_partial_test.py:41:5:41:7 | ControlFlowNode for url | full_partial_test.py:42:18:42:20 | ControlFlowNode for url | provenance | | +| full_partial_test.py:44:5:44:7 | ControlFlowNode for url | full_partial_test.py:45:18:45:20 | ControlFlowNode for url | provenance | | +| full_partial_test.py:47:5:47:7 | ControlFlowNode for url | full_partial_test.py:48:18:48:20 | ControlFlowNode for url | provenance | | +| full_partial_test.py:50:5:50:7 | ControlFlowNode for url | full_partial_test.py:51:18:51:20 | ControlFlowNode for url | provenance | | +| full_partial_test.py:53:5:53:7 | ControlFlowNode for url | full_partial_test.py:54:18:54:20 | ControlFlowNode for url | provenance | | +| full_partial_test.py:57:5:57:14 | ControlFlowNode for user_input | full_partial_test.py:61:5:61:7 | ControlFlowNode for url | provenance | | +| full_partial_test.py:57:5:57:14 | ControlFlowNode for user_input | full_partial_test.py:64:5:64:7 | ControlFlowNode for url | provenance | | +| full_partial_test.py:57:5:57:14 | ControlFlowNode for user_input | full_partial_test.py:67:5:67:7 | ControlFlowNode for url | provenance | | +| full_partial_test.py:57:18:57:24 | ControlFlowNode for request | full_partial_test.py:57:5:57:14 | ControlFlowNode for user_input | provenance | | +| full_partial_test.py:57:18:57:24 | ControlFlowNode for request | full_partial_test.py:58:5:58:13 | ControlFlowNode for query_val | provenance | | +| full_partial_test.py:58:5:58:13 | ControlFlowNode for query_val | full_partial_test.py:67:5:67:7 | ControlFlowNode for url | provenance | | +| full_partial_test.py:58:17:58:23 | ControlFlowNode for request | full_partial_test.py:58:5:58:13 | ControlFlowNode for query_val | provenance | | +| full_partial_test.py:61:5:61:7 | ControlFlowNode for url | full_partial_test.py:62:18:62:20 | ControlFlowNode for url | provenance | | +| full_partial_test.py:64:5:64:7 | ControlFlowNode for url | full_partial_test.py:65:18:65:20 | ControlFlowNode for url | provenance | | +| full_partial_test.py:67:5:67:7 | ControlFlowNode for url | full_partial_test.py:68:18:68:20 | ControlFlowNode for url | provenance | | +| full_partial_test.py:71:5:71:14 | ControlFlowNode for user_input | full_partial_test.py:75:5:75:7 | ControlFlowNode for url | provenance | | +| full_partial_test.py:71:5:71:14 | ControlFlowNode for user_input | full_partial_test.py:78:5:78:7 | ControlFlowNode for url | provenance | | +| full_partial_test.py:71:5:71:14 | ControlFlowNode for user_input | full_partial_test.py:81:5:81:7 | ControlFlowNode for url | provenance | | +| full_partial_test.py:71:18:71:24 | ControlFlowNode for request | full_partial_test.py:71:5:71:14 | ControlFlowNode for user_input | provenance | | +| full_partial_test.py:71:18:71:24 | ControlFlowNode for request | full_partial_test.py:72:5:72:13 | ControlFlowNode for query_val | provenance | | +| full_partial_test.py:72:5:72:13 | ControlFlowNode for query_val | full_partial_test.py:81:5:81:7 | ControlFlowNode for url | provenance | | +| full_partial_test.py:72:17:72:23 | ControlFlowNode for request | full_partial_test.py:72:5:72:13 | ControlFlowNode for query_val | provenance | | +| full_partial_test.py:75:5:75:7 | ControlFlowNode for url | full_partial_test.py:76:18:76:20 | ControlFlowNode for url | provenance | | +| full_partial_test.py:78:5:78:7 | ControlFlowNode for url | full_partial_test.py:79:18:79:20 | ControlFlowNode for url | provenance | | +| full_partial_test.py:81:5:81:7 | ControlFlowNode for url | full_partial_test.py:82:18:82:20 | ControlFlowNode for url | provenance | | +| full_partial_test.py:86:5:86:14 | ControlFlowNode for user_input | full_partial_test.py:88:5:88:7 | ControlFlowNode for url | provenance | | +| full_partial_test.py:86:18:86:24 | ControlFlowNode for request | full_partial_test.py:86:5:86:14 | ControlFlowNode for user_input | provenance | | +| full_partial_test.py:88:5:88:7 | ControlFlowNode for url | full_partial_test.py:89:18:89:20 | ControlFlowNode for url | provenance | | +| full_partial_test.py:92:5:92:14 | ControlFlowNode for user_input | full_partial_test.py:94:5:94:7 | ControlFlowNode for url | provenance | | +| full_partial_test.py:92:18:92:24 | ControlFlowNode for request | full_partial_test.py:92:5:92:14 | ControlFlowNode for user_input | provenance | | +| full_partial_test.py:94:5:94:7 | ControlFlowNode for url | full_partial_test.py:95:18:95:20 | ControlFlowNode for url | provenance | | +| full_partial_test.py:98:5:98:14 | ControlFlowNode for user_input | full_partial_test.py:100:5:100:7 | ControlFlowNode for url | provenance | | +| full_partial_test.py:98:18:98:24 | ControlFlowNode for request | full_partial_test.py:98:5:98:14 | ControlFlowNode for user_input | provenance | | +| full_partial_test.py:100:5:100:7 | ControlFlowNode for url | full_partial_test.py:101:18:101:20 | ControlFlowNode for url | provenance | | +| full_partial_test.py:104:5:104:14 | ControlFlowNode for user_input | full_partial_test.py:106:5:106:7 | ControlFlowNode for url | provenance | | +| full_partial_test.py:104:18:104:24 | ControlFlowNode for request | full_partial_test.py:104:5:104:14 | ControlFlowNode for user_input | provenance | | +| full_partial_test.py:106:5:106:7 | ControlFlowNode for url | full_partial_test.py:107:18:107:20 | ControlFlowNode for url | provenance | | +| full_partial_test.py:110:5:110:14 | ControlFlowNode for user_input | full_partial_test.py:115:5:115:7 | ControlFlowNode for url | provenance | | +| full_partial_test.py:110:18:110:24 | ControlFlowNode for request | full_partial_test.py:110:5:110:14 | ControlFlowNode for user_input | provenance | | +| full_partial_test.py:115:5:115:7 | ControlFlowNode for url | full_partial_test.py:116:18:116:20 | ControlFlowNode for url | provenance | | +| full_partial_test.py:119:5:119:14 | ControlFlowNode for user_input | full_partial_test.py:121:5:121:7 | ControlFlowNode for url | provenance | | +| full_partial_test.py:119:18:119:24 | ControlFlowNode for request | full_partial_test.py:119:5:119:14 | ControlFlowNode for user_input | provenance | | +| full_partial_test.py:121:5:121:7 | ControlFlowNode for url | full_partial_test.py:122:18:122:20 | ControlFlowNode for url | provenance | | +| test_http_client.py:1:26:1:32 | ControlFlowNode for ImportMember | test_http_client.py:1:26:1:32 | ControlFlowNode for request | provenance | | +| test_http_client.py:1:26:1:32 | ControlFlowNode for request | test_http_client.py:9:19:9:25 | ControlFlowNode for request | provenance | | +| test_http_client.py:1:26:1:32 | ControlFlowNode for request | test_http_client.py:10:19:10:25 | ControlFlowNode for request | provenance | | +| test_http_client.py:1:26:1:32 | ControlFlowNode for request | test_http_client.py:11:18:11:24 | ControlFlowNode for request | provenance | | +| test_http_client.py:9:5:9:15 | ControlFlowNode for unsafe_host | test_http_client.py:13:27:13:37 | ControlFlowNode for unsafe_host | provenance | | +| test_http_client.py:9:5:9:15 | ControlFlowNode for unsafe_host | test_http_client.py:18:27:18:37 | ControlFlowNode for unsafe_host | provenance | | +| test_http_client.py:9:5:9:15 | ControlFlowNode for unsafe_host | test_http_client.py:25:27:25:37 | ControlFlowNode for unsafe_host | provenance | | +| test_http_client.py:9:19:9:25 | ControlFlowNode for request | test_http_client.py:9:5:9:15 | ControlFlowNode for unsafe_host | provenance | | +| test_http_client.py:9:19:9:25 | ControlFlowNode for request | test_http_client.py:10:5:10:15 | ControlFlowNode for unsafe_path | provenance | | +| test_http_client.py:9:19:9:25 | ControlFlowNode for request | test_http_client.py:11:5:11:14 | ControlFlowNode for user_input | provenance | | +| test_http_client.py:10:5:10:15 | ControlFlowNode for unsafe_path | test_http_client.py:14:25:14:35 | ControlFlowNode for unsafe_path | provenance | | +| test_http_client.py:10:5:10:15 | ControlFlowNode for unsafe_path | test_http_client.py:19:25:19:35 | ControlFlowNode for unsafe_path | provenance | | +| test_http_client.py:10:5:10:15 | ControlFlowNode for unsafe_path | test_http_client.py:29:25:29:35 | ControlFlowNode for unsafe_path | provenance | | +| test_http_client.py:10:19:10:25 | ControlFlowNode for request | test_http_client.py:10:5:10:15 | ControlFlowNode for unsafe_path | provenance | | +| test_http_client.py:10:19:10:25 | ControlFlowNode for request | test_http_client.py:11:5:11:14 | ControlFlowNode for user_input | provenance | | +| test_http_client.py:11:5:11:14 | ControlFlowNode for user_input | test_http_client.py:31:5:31:8 | ControlFlowNode for path | provenance | | +| test_http_client.py:11:5:11:14 | ControlFlowNode for user_input | test_http_client.py:35:5:35:8 | ControlFlowNode for path | provenance | | +| test_http_client.py:11:18:11:24 | ControlFlowNode for request | test_http_client.py:11:5:11:14 | ControlFlowNode for user_input | provenance | | +| test_http_client.py:31:5:31:8 | ControlFlowNode for path | test_http_client.py:33:25:33:28 | ControlFlowNode for path | provenance | | +| test_http_client.py:35:5:35:8 | ControlFlowNode for path | test_http_client.py:37:25:37:28 | ControlFlowNode for path | provenance | | +| test_requests.py:1:19:1:25 | ControlFlowNode for ImportMember | test_requests.py:1:19:1:25 | ControlFlowNode for request | provenance | | +| test_requests.py:1:19:1:25 | ControlFlowNode for request | test_requests.py:6:18:6:24 | ControlFlowNode for request | provenance | | +| test_requests.py:6:5:6:14 | ControlFlowNode for user_input | test_requests.py:8:18:8:27 | ControlFlowNode for user_input | provenance | | +| test_requests.py:6:18:6:24 | ControlFlowNode for request | test_requests.py:6:5:6:14 | ControlFlowNode for user_input | provenance | | nodes | full_partial_test.py:1:19:1:25 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | | full_partial_test.py:1:19:1:25 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | diff --git a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/NoSqlInjection.expected b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/NoSqlInjection.expected index e10f3312dd2f..9604e8b92c6d 100644 --- a/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/NoSqlInjection.expected +++ b/python/ql/test/query-tests/Security/CWE-943-NoSqlInjection/NoSqlInjection.expected @@ -1,121 +1,121 @@ edges -| PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | PoC/server.py:1:26:1:32 | ControlFlowNode for request | -| PoC/server.py:1:26:1:32 | ControlFlowNode for request | PoC/server.py:26:21:26:27 | ControlFlowNode for request | -| PoC/server.py:1:26:1:32 | ControlFlowNode for request | PoC/server.py:43:14:43:20 | ControlFlowNode for request | -| PoC/server.py:1:26:1:32 | ControlFlowNode for request | PoC/server.py:52:14:52:20 | ControlFlowNode for request | -| PoC/server.py:1:26:1:32 | ControlFlowNode for request | PoC/server.py:77:14:77:20 | ControlFlowNode for request | -| PoC/server.py:1:26:1:32 | ControlFlowNode for request | PoC/server.py:98:14:98:20 | ControlFlowNode for request | -| PoC/server.py:26:5:26:17 | ControlFlowNode for author_string | PoC/server.py:27:25:27:37 | ControlFlowNode for author_string | -| PoC/server.py:26:21:26:27 | ControlFlowNode for request | PoC/server.py:26:5:26:17 | ControlFlowNode for author_string | -| PoC/server.py:27:5:27:10 | ControlFlowNode for author | PoC/server.py:30:27:30:44 | ControlFlowNode for Dict | -| PoC/server.py:27:5:27:10 | ControlFlowNode for author | PoC/server.py:31:34:31:51 | ControlFlowNode for Dict | -| PoC/server.py:27:14:27:38 | ControlFlowNode for Attribute() | PoC/server.py:27:5:27:10 | ControlFlowNode for author | -| PoC/server.py:27:25:27:37 | ControlFlowNode for author_string | PoC/server.py:27:14:27:38 | ControlFlowNode for Attribute() | -| PoC/server.py:43:5:43:10 | ControlFlowNode for author | PoC/server.py:47:38:47:67 | ControlFlowNode for BinaryExpr | -| PoC/server.py:43:14:43:20 | ControlFlowNode for request | PoC/server.py:43:5:43:10 | ControlFlowNode for author | -| PoC/server.py:47:38:47:67 | ControlFlowNode for BinaryExpr | PoC/server.py:47:27:47:68 | ControlFlowNode for Dict | -| PoC/server.py:52:5:52:10 | ControlFlowNode for author | PoC/server.py:54:17:54:70 | ControlFlowNode for BinaryExpr | -| PoC/server.py:52:14:52:20 | ControlFlowNode for request | PoC/server.py:52:5:52:10 | ControlFlowNode for author | -| PoC/server.py:53:5:53:10 | ControlFlowNode for search | PoC/server.py:61:27:61:58 | ControlFlowNode for Dict | -| PoC/server.py:53:14:57:5 | ControlFlowNode for Dict | PoC/server.py:53:5:53:10 | ControlFlowNode for search | -| PoC/server.py:54:17:54:70 | ControlFlowNode for BinaryExpr | PoC/server.py:53:14:57:5 | ControlFlowNode for Dict | -| PoC/server.py:77:5:77:10 | ControlFlowNode for author | PoC/server.py:80:23:80:101 | ControlFlowNode for BinaryExpr | -| PoC/server.py:77:14:77:20 | ControlFlowNode for request | PoC/server.py:77:5:77:10 | ControlFlowNode for author | -| PoC/server.py:78:5:78:15 | ControlFlowNode for accumulator | PoC/server.py:84:5:84:9 | ControlFlowNode for group | -| PoC/server.py:78:19:83:5 | ControlFlowNode for Dict | PoC/server.py:78:5:78:15 | ControlFlowNode for accumulator | -| PoC/server.py:80:23:80:101 | ControlFlowNode for BinaryExpr | PoC/server.py:78:19:83:5 | ControlFlowNode for Dict | -| PoC/server.py:84:5:84:9 | ControlFlowNode for group | PoC/server.py:91:29:91:47 | ControlFlowNode for Dict | -| PoC/server.py:84:5:84:9 | ControlFlowNode for group | PoC/server.py:92:38:92:56 | ControlFlowNode for Dict | -| PoC/server.py:98:5:98:10 | ControlFlowNode for author | PoC/server.py:99:5:99:10 | ControlFlowNode for mapper | -| PoC/server.py:98:14:98:20 | ControlFlowNode for request | PoC/server.py:98:5:98:10 | ControlFlowNode for author | -| PoC/server.py:99:5:99:10 | ControlFlowNode for mapper | PoC/server.py:102:9:102:14 | ControlFlowNode for mapper | -| flask_mongoengine_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | flask_mongoengine_bad.py:1:26:1:32 | ControlFlowNode for request | -| flask_mongoengine_bad.py:1:26:1:32 | ControlFlowNode for request | flask_mongoengine_bad.py:19:21:19:27 | ControlFlowNode for request | -| flask_mongoengine_bad.py:1:26:1:32 | ControlFlowNode for request | flask_mongoengine_bad.py:26:21:26:27 | ControlFlowNode for request | -| flask_mongoengine_bad.py:19:5:19:17 | ControlFlowNode for unsafe_search | flask_mongoengine_bad.py:20:30:20:42 | ControlFlowNode for unsafe_search | -| flask_mongoengine_bad.py:19:21:19:27 | ControlFlowNode for request | flask_mongoengine_bad.py:19:5:19:17 | ControlFlowNode for unsafe_search | -| flask_mongoengine_bad.py:20:5:20:15 | ControlFlowNode for json_search | flask_mongoengine_bad.py:22:34:22:44 | ControlFlowNode for json_search | -| flask_mongoengine_bad.py:20:19:20:43 | ControlFlowNode for Attribute() | flask_mongoengine_bad.py:20:5:20:15 | ControlFlowNode for json_search | -| flask_mongoengine_bad.py:20:30:20:42 | ControlFlowNode for unsafe_search | flask_mongoengine_bad.py:20:19:20:43 | ControlFlowNode for Attribute() | -| flask_mongoengine_bad.py:26:5:26:17 | ControlFlowNode for unsafe_search | flask_mongoengine_bad.py:27:30:27:42 | ControlFlowNode for unsafe_search | -| flask_mongoengine_bad.py:26:21:26:27 | ControlFlowNode for request | flask_mongoengine_bad.py:26:5:26:17 | ControlFlowNode for unsafe_search | -| flask_mongoengine_bad.py:27:5:27:15 | ControlFlowNode for json_search | flask_mongoengine_bad.py:30:39:30:59 | ControlFlowNode for Dict | -| flask_mongoengine_bad.py:27:19:27:43 | ControlFlowNode for Attribute() | flask_mongoengine_bad.py:27:5:27:15 | ControlFlowNode for json_search | -| flask_mongoengine_bad.py:27:30:27:42 | ControlFlowNode for unsafe_search | flask_mongoengine_bad.py:27:19:27:43 | ControlFlowNode for Attribute() | -| flask_pymongo_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | flask_pymongo_bad.py:1:26:1:32 | ControlFlowNode for request | -| flask_pymongo_bad.py:1:26:1:32 | ControlFlowNode for request | flask_pymongo_bad.py:11:21:11:27 | ControlFlowNode for request | -| flask_pymongo_bad.py:11:5:11:17 | ControlFlowNode for unsafe_search | flask_pymongo_bad.py:12:30:12:42 | ControlFlowNode for unsafe_search | -| flask_pymongo_bad.py:11:21:11:27 | ControlFlowNode for request | flask_pymongo_bad.py:11:5:11:17 | ControlFlowNode for unsafe_search | -| flask_pymongo_bad.py:12:5:12:15 | ControlFlowNode for json_search | flask_pymongo_bad.py:14:31:14:51 | ControlFlowNode for Dict | -| flask_pymongo_bad.py:12:19:12:43 | ControlFlowNode for Attribute() | flask_pymongo_bad.py:12:5:12:15 | ControlFlowNode for json_search | -| flask_pymongo_bad.py:12:30:12:42 | ControlFlowNode for unsafe_search | flask_pymongo_bad.py:12:19:12:43 | ControlFlowNode for Attribute() | -| mongoengine_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | mongoengine_bad.py:1:26:1:32 | ControlFlowNode for request | -| mongoengine_bad.py:1:26:1:32 | ControlFlowNode for request | mongoengine_bad.py:18:21:18:27 | ControlFlowNode for request | -| mongoengine_bad.py:1:26:1:32 | ControlFlowNode for request | mongoengine_bad.py:26:21:26:27 | ControlFlowNode for request | -| mongoengine_bad.py:1:26:1:32 | ControlFlowNode for request | mongoengine_bad.py:34:21:34:27 | ControlFlowNode for request | -| mongoengine_bad.py:1:26:1:32 | ControlFlowNode for request | mongoengine_bad.py:42:21:42:27 | ControlFlowNode for request | -| mongoengine_bad.py:1:26:1:32 | ControlFlowNode for request | mongoengine_bad.py:50:21:50:27 | ControlFlowNode for request | -| mongoengine_bad.py:1:26:1:32 | ControlFlowNode for request | mongoengine_bad.py:57:21:57:27 | ControlFlowNode for request | -| mongoengine_bad.py:18:5:18:17 | ControlFlowNode for unsafe_search | mongoengine_bad.py:19:30:19:42 | ControlFlowNode for unsafe_search | -| mongoengine_bad.py:18:21:18:27 | ControlFlowNode for request | mongoengine_bad.py:18:5:18:17 | ControlFlowNode for unsafe_search | -| mongoengine_bad.py:19:5:19:15 | ControlFlowNode for json_search | mongoengine_bad.py:22:26:22:46 | ControlFlowNode for Dict | -| mongoengine_bad.py:19:19:19:43 | ControlFlowNode for Attribute() | mongoengine_bad.py:19:5:19:15 | ControlFlowNode for json_search | -| mongoengine_bad.py:19:30:19:42 | ControlFlowNode for unsafe_search | mongoengine_bad.py:19:19:19:43 | ControlFlowNode for Attribute() | -| mongoengine_bad.py:26:5:26:17 | ControlFlowNode for unsafe_search | mongoengine_bad.py:27:30:27:42 | ControlFlowNode for unsafe_search | -| mongoengine_bad.py:26:21:26:27 | ControlFlowNode for request | mongoengine_bad.py:26:5:26:17 | ControlFlowNode for unsafe_search | -| mongoengine_bad.py:27:5:27:15 | ControlFlowNode for json_search | mongoengine_bad.py:30:26:30:46 | ControlFlowNode for Dict | -| mongoengine_bad.py:27:19:27:43 | ControlFlowNode for Attribute() | mongoengine_bad.py:27:5:27:15 | ControlFlowNode for json_search | -| mongoengine_bad.py:27:30:27:42 | ControlFlowNode for unsafe_search | mongoengine_bad.py:27:19:27:43 | ControlFlowNode for Attribute() | -| mongoengine_bad.py:34:5:34:17 | ControlFlowNode for unsafe_search | mongoengine_bad.py:35:30:35:42 | ControlFlowNode for unsafe_search | -| mongoengine_bad.py:34:21:34:27 | ControlFlowNode for request | mongoengine_bad.py:34:5:34:17 | ControlFlowNode for unsafe_search | -| mongoengine_bad.py:35:5:35:15 | ControlFlowNode for json_search | mongoengine_bad.py:38:26:38:46 | ControlFlowNode for Dict | -| mongoengine_bad.py:35:19:35:43 | ControlFlowNode for Attribute() | mongoengine_bad.py:35:5:35:15 | ControlFlowNode for json_search | -| mongoengine_bad.py:35:30:35:42 | ControlFlowNode for unsafe_search | mongoengine_bad.py:35:19:35:43 | ControlFlowNode for Attribute() | -| mongoengine_bad.py:42:5:42:17 | ControlFlowNode for unsafe_search | mongoengine_bad.py:43:30:43:42 | ControlFlowNode for unsafe_search | -| mongoengine_bad.py:42:21:42:27 | ControlFlowNode for request | mongoengine_bad.py:42:5:42:17 | ControlFlowNode for unsafe_search | -| mongoengine_bad.py:43:5:43:15 | ControlFlowNode for json_search | mongoengine_bad.py:46:26:46:46 | ControlFlowNode for Dict | -| mongoengine_bad.py:43:19:43:43 | ControlFlowNode for Attribute() | mongoengine_bad.py:43:5:43:15 | ControlFlowNode for json_search | -| mongoengine_bad.py:43:30:43:42 | ControlFlowNode for unsafe_search | mongoengine_bad.py:43:19:43:43 | ControlFlowNode for Attribute() | -| mongoengine_bad.py:50:5:50:17 | ControlFlowNode for unsafe_search | mongoengine_bad.py:51:30:51:42 | ControlFlowNode for unsafe_search | -| mongoengine_bad.py:50:21:50:27 | ControlFlowNode for request | mongoengine_bad.py:50:5:50:17 | ControlFlowNode for unsafe_search | -| mongoengine_bad.py:51:5:51:15 | ControlFlowNode for json_search | mongoengine_bad.py:53:34:53:44 | ControlFlowNode for json_search | -| mongoengine_bad.py:51:19:51:43 | ControlFlowNode for Attribute() | mongoengine_bad.py:51:5:51:15 | ControlFlowNode for json_search | -| mongoengine_bad.py:51:30:51:42 | ControlFlowNode for unsafe_search | mongoengine_bad.py:51:19:51:43 | ControlFlowNode for Attribute() | -| mongoengine_bad.py:57:5:57:17 | ControlFlowNode for unsafe_search | mongoengine_bad.py:58:30:58:42 | ControlFlowNode for unsafe_search | -| mongoengine_bad.py:57:21:57:27 | ControlFlowNode for request | mongoengine_bad.py:57:5:57:17 | ControlFlowNode for unsafe_search | -| mongoengine_bad.py:58:5:58:15 | ControlFlowNode for json_search | mongoengine_bad.py:61:29:61:49 | ControlFlowNode for Dict | -| mongoengine_bad.py:58:19:58:43 | ControlFlowNode for Attribute() | mongoengine_bad.py:58:5:58:15 | ControlFlowNode for json_search | -| mongoengine_bad.py:58:30:58:42 | ControlFlowNode for unsafe_search | mongoengine_bad.py:58:19:58:43 | ControlFlowNode for Attribute() | -| pymongo_test.py:1:26:1:32 | ControlFlowNode for ImportMember | pymongo_test.py:1:26:1:32 | ControlFlowNode for request | -| pymongo_test.py:1:26:1:32 | ControlFlowNode for request | pymongo_test.py:12:21:12:27 | ControlFlowNode for request | -| pymongo_test.py:1:26:1:32 | ControlFlowNode for request | pymongo_test.py:29:27:29:33 | ControlFlowNode for request | -| pymongo_test.py:1:26:1:32 | ControlFlowNode for request | pymongo_test.py:39:27:39:33 | ControlFlowNode for request | -| pymongo_test.py:1:26:1:32 | ControlFlowNode for request | pymongo_test.py:52:26:52:32 | ControlFlowNode for request | -| pymongo_test.py:12:5:12:17 | ControlFlowNode for unsafe_search | pymongo_test.py:13:30:13:42 | ControlFlowNode for unsafe_search | -| pymongo_test.py:12:21:12:27 | ControlFlowNode for request | pymongo_test.py:12:5:12:17 | ControlFlowNode for unsafe_search | -| pymongo_test.py:13:5:13:15 | ControlFlowNode for json_search | pymongo_test.py:15:42:15:62 | ControlFlowNode for Dict | -| pymongo_test.py:13:19:13:43 | ControlFlowNode for Attribute() | pymongo_test.py:13:5:13:15 | ControlFlowNode for json_search | -| pymongo_test.py:13:30:13:42 | ControlFlowNode for unsafe_search | pymongo_test.py:13:19:13:43 | ControlFlowNode for Attribute() | -| pymongo_test.py:29:5:29:12 | ControlFlowNode for event_id | pymongo_test.py:33:45:33:72 | ControlFlowNode for Fstring | -| pymongo_test.py:29:16:29:51 | ControlFlowNode for Attribute() | pymongo_test.py:29:5:29:12 | ControlFlowNode for event_id | -| pymongo_test.py:29:27:29:33 | ControlFlowNode for request | pymongo_test.py:29:27:29:50 | ControlFlowNode for Subscript | -| pymongo_test.py:29:27:29:50 | ControlFlowNode for Subscript | pymongo_test.py:29:16:29:51 | ControlFlowNode for Attribute() | -| pymongo_test.py:33:45:33:72 | ControlFlowNode for Fstring | pymongo_test.py:33:34:33:73 | ControlFlowNode for Dict | -| pymongo_test.py:39:5:39:12 | ControlFlowNode for event_id | pymongo_test.py:43:45:43:72 | ControlFlowNode for Fstring | -| pymongo_test.py:39:16:39:51 | ControlFlowNode for Attribute() | pymongo_test.py:39:5:39:12 | ControlFlowNode for event_id | -| pymongo_test.py:39:27:39:33 | ControlFlowNode for request | pymongo_test.py:39:27:39:50 | ControlFlowNode for Subscript | -| pymongo_test.py:39:27:39:50 | ControlFlowNode for Subscript | pymongo_test.py:39:16:39:51 | ControlFlowNode for Attribute() | -| pymongo_test.py:43:45:43:72 | ControlFlowNode for Fstring | pymongo_test.py:43:34:43:73 | ControlFlowNode for Dict | -| pymongo_test.py:52:5:52:11 | ControlFlowNode for decoded | pymongo_test.py:55:17:55:23 | ControlFlowNode for decoded | -| pymongo_test.py:52:15:52:50 | ControlFlowNode for Attribute() | pymongo_test.py:52:5:52:11 | ControlFlowNode for decoded | -| pymongo_test.py:52:26:52:32 | ControlFlowNode for request | pymongo_test.py:52:26:52:49 | ControlFlowNode for Subscript | -| pymongo_test.py:52:26:52:49 | ControlFlowNode for Subscript | pymongo_test.py:52:15:52:50 | ControlFlowNode for Attribute() | -| pymongo_test.py:54:5:54:10 | ControlFlowNode for search | pymongo_test.py:59:25:59:56 | ControlFlowNode for Dict | -| pymongo_test.py:54:14:58:5 | ControlFlowNode for Dict | pymongo_test.py:54:5:54:10 | ControlFlowNode for search | -| pymongo_test.py:55:17:55:23 | ControlFlowNode for decoded | pymongo_test.py:54:14:58:5 | ControlFlowNode for Dict | -| pymongo_test.py:55:17:55:23 | ControlFlowNode for decoded | pymongo_test.py:61:25:61:57 | ControlFlowNode for Dict | -| pymongo_test.py:55:17:55:23 | ControlFlowNode for decoded | pymongo_test.py:62:25:62:42 | ControlFlowNode for Dict | -| pymongo_test.py:55:17:55:23 | ControlFlowNode for decoded | pymongo_test.py:63:25:63:31 | ControlFlowNode for decoded | +| PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | PoC/server.py:1:26:1:32 | ControlFlowNode for request | provenance | | +| PoC/server.py:1:26:1:32 | ControlFlowNode for request | PoC/server.py:26:21:26:27 | ControlFlowNode for request | provenance | | +| PoC/server.py:1:26:1:32 | ControlFlowNode for request | PoC/server.py:43:14:43:20 | ControlFlowNode for request | provenance | | +| PoC/server.py:1:26:1:32 | ControlFlowNode for request | PoC/server.py:52:14:52:20 | ControlFlowNode for request | provenance | | +| PoC/server.py:1:26:1:32 | ControlFlowNode for request | PoC/server.py:77:14:77:20 | ControlFlowNode for request | provenance | | +| PoC/server.py:1:26:1:32 | ControlFlowNode for request | PoC/server.py:98:14:98:20 | ControlFlowNode for request | provenance | | +| PoC/server.py:26:5:26:17 | ControlFlowNode for author_string | PoC/server.py:27:25:27:37 | ControlFlowNode for author_string | provenance | | +| PoC/server.py:26:21:26:27 | ControlFlowNode for request | PoC/server.py:26:5:26:17 | ControlFlowNode for author_string | provenance | | +| PoC/server.py:27:5:27:10 | ControlFlowNode for author | PoC/server.py:30:27:30:44 | ControlFlowNode for Dict | provenance | | +| PoC/server.py:27:5:27:10 | ControlFlowNode for author | PoC/server.py:31:34:31:51 | ControlFlowNode for Dict | provenance | | +| PoC/server.py:27:14:27:38 | ControlFlowNode for Attribute() | PoC/server.py:27:5:27:10 | ControlFlowNode for author | provenance | | +| PoC/server.py:27:25:27:37 | ControlFlowNode for author_string | PoC/server.py:27:14:27:38 | ControlFlowNode for Attribute() | provenance | | +| PoC/server.py:43:5:43:10 | ControlFlowNode for author | PoC/server.py:47:38:47:67 | ControlFlowNode for BinaryExpr | provenance | | +| PoC/server.py:43:14:43:20 | ControlFlowNode for request | PoC/server.py:43:5:43:10 | ControlFlowNode for author | provenance | | +| PoC/server.py:47:38:47:67 | ControlFlowNode for BinaryExpr | PoC/server.py:47:27:47:68 | ControlFlowNode for Dict | provenance | | +| PoC/server.py:52:5:52:10 | ControlFlowNode for author | PoC/server.py:54:17:54:70 | ControlFlowNode for BinaryExpr | provenance | | +| PoC/server.py:52:14:52:20 | ControlFlowNode for request | PoC/server.py:52:5:52:10 | ControlFlowNode for author | provenance | | +| PoC/server.py:53:5:53:10 | ControlFlowNode for search | PoC/server.py:61:27:61:58 | ControlFlowNode for Dict | provenance | | +| PoC/server.py:53:14:57:5 | ControlFlowNode for Dict | PoC/server.py:53:5:53:10 | ControlFlowNode for search | provenance | | +| PoC/server.py:54:17:54:70 | ControlFlowNode for BinaryExpr | PoC/server.py:53:14:57:5 | ControlFlowNode for Dict | provenance | | +| PoC/server.py:77:5:77:10 | ControlFlowNode for author | PoC/server.py:80:23:80:101 | ControlFlowNode for BinaryExpr | provenance | | +| PoC/server.py:77:14:77:20 | ControlFlowNode for request | PoC/server.py:77:5:77:10 | ControlFlowNode for author | provenance | | +| PoC/server.py:78:5:78:15 | ControlFlowNode for accumulator | PoC/server.py:84:5:84:9 | ControlFlowNode for group | provenance | | +| PoC/server.py:78:19:83:5 | ControlFlowNode for Dict | PoC/server.py:78:5:78:15 | ControlFlowNode for accumulator | provenance | | +| PoC/server.py:80:23:80:101 | ControlFlowNode for BinaryExpr | PoC/server.py:78:19:83:5 | ControlFlowNode for Dict | provenance | | +| PoC/server.py:84:5:84:9 | ControlFlowNode for group | PoC/server.py:91:29:91:47 | ControlFlowNode for Dict | provenance | | +| PoC/server.py:84:5:84:9 | ControlFlowNode for group | PoC/server.py:92:38:92:56 | ControlFlowNode for Dict | provenance | | +| PoC/server.py:98:5:98:10 | ControlFlowNode for author | PoC/server.py:99:5:99:10 | ControlFlowNode for mapper | provenance | | +| PoC/server.py:98:14:98:20 | ControlFlowNode for request | PoC/server.py:98:5:98:10 | ControlFlowNode for author | provenance | | +| PoC/server.py:99:5:99:10 | ControlFlowNode for mapper | PoC/server.py:102:9:102:14 | ControlFlowNode for mapper | provenance | | +| flask_mongoengine_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | flask_mongoengine_bad.py:1:26:1:32 | ControlFlowNode for request | provenance | | +| flask_mongoengine_bad.py:1:26:1:32 | ControlFlowNode for request | flask_mongoengine_bad.py:19:21:19:27 | ControlFlowNode for request | provenance | | +| flask_mongoengine_bad.py:1:26:1:32 | ControlFlowNode for request | flask_mongoengine_bad.py:26:21:26:27 | ControlFlowNode for request | provenance | | +| flask_mongoengine_bad.py:19:5:19:17 | ControlFlowNode for unsafe_search | flask_mongoengine_bad.py:20:30:20:42 | ControlFlowNode for unsafe_search | provenance | | +| flask_mongoengine_bad.py:19:21:19:27 | ControlFlowNode for request | flask_mongoengine_bad.py:19:5:19:17 | ControlFlowNode for unsafe_search | provenance | | +| flask_mongoengine_bad.py:20:5:20:15 | ControlFlowNode for json_search | flask_mongoengine_bad.py:22:34:22:44 | ControlFlowNode for json_search | provenance | | +| flask_mongoengine_bad.py:20:19:20:43 | ControlFlowNode for Attribute() | flask_mongoengine_bad.py:20:5:20:15 | ControlFlowNode for json_search | provenance | | +| flask_mongoengine_bad.py:20:30:20:42 | ControlFlowNode for unsafe_search | flask_mongoengine_bad.py:20:19:20:43 | ControlFlowNode for Attribute() | provenance | | +| flask_mongoengine_bad.py:26:5:26:17 | ControlFlowNode for unsafe_search | flask_mongoengine_bad.py:27:30:27:42 | ControlFlowNode for unsafe_search | provenance | | +| flask_mongoengine_bad.py:26:21:26:27 | ControlFlowNode for request | flask_mongoengine_bad.py:26:5:26:17 | ControlFlowNode for unsafe_search | provenance | | +| flask_mongoengine_bad.py:27:5:27:15 | ControlFlowNode for json_search | flask_mongoengine_bad.py:30:39:30:59 | ControlFlowNode for Dict | provenance | | +| flask_mongoengine_bad.py:27:19:27:43 | ControlFlowNode for Attribute() | flask_mongoengine_bad.py:27:5:27:15 | ControlFlowNode for json_search | provenance | | +| flask_mongoengine_bad.py:27:30:27:42 | ControlFlowNode for unsafe_search | flask_mongoengine_bad.py:27:19:27:43 | ControlFlowNode for Attribute() | provenance | | +| flask_pymongo_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | flask_pymongo_bad.py:1:26:1:32 | ControlFlowNode for request | provenance | | +| flask_pymongo_bad.py:1:26:1:32 | ControlFlowNode for request | flask_pymongo_bad.py:11:21:11:27 | ControlFlowNode for request | provenance | | +| flask_pymongo_bad.py:11:5:11:17 | ControlFlowNode for unsafe_search | flask_pymongo_bad.py:12:30:12:42 | ControlFlowNode for unsafe_search | provenance | | +| flask_pymongo_bad.py:11:21:11:27 | ControlFlowNode for request | flask_pymongo_bad.py:11:5:11:17 | ControlFlowNode for unsafe_search | provenance | | +| flask_pymongo_bad.py:12:5:12:15 | ControlFlowNode for json_search | flask_pymongo_bad.py:14:31:14:51 | ControlFlowNode for Dict | provenance | | +| flask_pymongo_bad.py:12:19:12:43 | ControlFlowNode for Attribute() | flask_pymongo_bad.py:12:5:12:15 | ControlFlowNode for json_search | provenance | | +| flask_pymongo_bad.py:12:30:12:42 | ControlFlowNode for unsafe_search | flask_pymongo_bad.py:12:19:12:43 | ControlFlowNode for Attribute() | provenance | | +| mongoengine_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | mongoengine_bad.py:1:26:1:32 | ControlFlowNode for request | provenance | | +| mongoengine_bad.py:1:26:1:32 | ControlFlowNode for request | mongoengine_bad.py:18:21:18:27 | ControlFlowNode for request | provenance | | +| mongoengine_bad.py:1:26:1:32 | ControlFlowNode for request | mongoengine_bad.py:26:21:26:27 | ControlFlowNode for request | provenance | | +| mongoengine_bad.py:1:26:1:32 | ControlFlowNode for request | mongoengine_bad.py:34:21:34:27 | ControlFlowNode for request | provenance | | +| mongoengine_bad.py:1:26:1:32 | ControlFlowNode for request | mongoengine_bad.py:42:21:42:27 | ControlFlowNode for request | provenance | | +| mongoengine_bad.py:1:26:1:32 | ControlFlowNode for request | mongoengine_bad.py:50:21:50:27 | ControlFlowNode for request | provenance | | +| mongoengine_bad.py:1:26:1:32 | ControlFlowNode for request | mongoengine_bad.py:57:21:57:27 | ControlFlowNode for request | provenance | | +| mongoengine_bad.py:18:5:18:17 | ControlFlowNode for unsafe_search | mongoengine_bad.py:19:30:19:42 | ControlFlowNode for unsafe_search | provenance | | +| mongoengine_bad.py:18:21:18:27 | ControlFlowNode for request | mongoengine_bad.py:18:5:18:17 | ControlFlowNode for unsafe_search | provenance | | +| mongoengine_bad.py:19:5:19:15 | ControlFlowNode for json_search | mongoengine_bad.py:22:26:22:46 | ControlFlowNode for Dict | provenance | | +| mongoengine_bad.py:19:19:19:43 | ControlFlowNode for Attribute() | mongoengine_bad.py:19:5:19:15 | ControlFlowNode for json_search | provenance | | +| mongoengine_bad.py:19:30:19:42 | ControlFlowNode for unsafe_search | mongoengine_bad.py:19:19:19:43 | ControlFlowNode for Attribute() | provenance | | +| mongoengine_bad.py:26:5:26:17 | ControlFlowNode for unsafe_search | mongoengine_bad.py:27:30:27:42 | ControlFlowNode for unsafe_search | provenance | | +| mongoengine_bad.py:26:21:26:27 | ControlFlowNode for request | mongoengine_bad.py:26:5:26:17 | ControlFlowNode for unsafe_search | provenance | | +| mongoengine_bad.py:27:5:27:15 | ControlFlowNode for json_search | mongoengine_bad.py:30:26:30:46 | ControlFlowNode for Dict | provenance | | +| mongoengine_bad.py:27:19:27:43 | ControlFlowNode for Attribute() | mongoengine_bad.py:27:5:27:15 | ControlFlowNode for json_search | provenance | | +| mongoengine_bad.py:27:30:27:42 | ControlFlowNode for unsafe_search | mongoengine_bad.py:27:19:27:43 | ControlFlowNode for Attribute() | provenance | | +| mongoengine_bad.py:34:5:34:17 | ControlFlowNode for unsafe_search | mongoengine_bad.py:35:30:35:42 | ControlFlowNode for unsafe_search | provenance | | +| mongoengine_bad.py:34:21:34:27 | ControlFlowNode for request | mongoengine_bad.py:34:5:34:17 | ControlFlowNode for unsafe_search | provenance | | +| mongoengine_bad.py:35:5:35:15 | ControlFlowNode for json_search | mongoengine_bad.py:38:26:38:46 | ControlFlowNode for Dict | provenance | | +| mongoengine_bad.py:35:19:35:43 | ControlFlowNode for Attribute() | mongoengine_bad.py:35:5:35:15 | ControlFlowNode for json_search | provenance | | +| mongoengine_bad.py:35:30:35:42 | ControlFlowNode for unsafe_search | mongoengine_bad.py:35:19:35:43 | ControlFlowNode for Attribute() | provenance | | +| mongoengine_bad.py:42:5:42:17 | ControlFlowNode for unsafe_search | mongoengine_bad.py:43:30:43:42 | ControlFlowNode for unsafe_search | provenance | | +| mongoengine_bad.py:42:21:42:27 | ControlFlowNode for request | mongoengine_bad.py:42:5:42:17 | ControlFlowNode for unsafe_search | provenance | | +| mongoengine_bad.py:43:5:43:15 | ControlFlowNode for json_search | mongoengine_bad.py:46:26:46:46 | ControlFlowNode for Dict | provenance | | +| mongoengine_bad.py:43:19:43:43 | ControlFlowNode for Attribute() | mongoengine_bad.py:43:5:43:15 | ControlFlowNode for json_search | provenance | | +| mongoengine_bad.py:43:30:43:42 | ControlFlowNode for unsafe_search | mongoengine_bad.py:43:19:43:43 | ControlFlowNode for Attribute() | provenance | | +| mongoengine_bad.py:50:5:50:17 | ControlFlowNode for unsafe_search | mongoengine_bad.py:51:30:51:42 | ControlFlowNode for unsafe_search | provenance | | +| mongoengine_bad.py:50:21:50:27 | ControlFlowNode for request | mongoengine_bad.py:50:5:50:17 | ControlFlowNode for unsafe_search | provenance | | +| mongoengine_bad.py:51:5:51:15 | ControlFlowNode for json_search | mongoengine_bad.py:53:34:53:44 | ControlFlowNode for json_search | provenance | | +| mongoengine_bad.py:51:19:51:43 | ControlFlowNode for Attribute() | mongoengine_bad.py:51:5:51:15 | ControlFlowNode for json_search | provenance | | +| mongoengine_bad.py:51:30:51:42 | ControlFlowNode for unsafe_search | mongoengine_bad.py:51:19:51:43 | ControlFlowNode for Attribute() | provenance | | +| mongoengine_bad.py:57:5:57:17 | ControlFlowNode for unsafe_search | mongoengine_bad.py:58:30:58:42 | ControlFlowNode for unsafe_search | provenance | | +| mongoengine_bad.py:57:21:57:27 | ControlFlowNode for request | mongoengine_bad.py:57:5:57:17 | ControlFlowNode for unsafe_search | provenance | | +| mongoengine_bad.py:58:5:58:15 | ControlFlowNode for json_search | mongoengine_bad.py:61:29:61:49 | ControlFlowNode for Dict | provenance | | +| mongoengine_bad.py:58:19:58:43 | ControlFlowNode for Attribute() | mongoengine_bad.py:58:5:58:15 | ControlFlowNode for json_search | provenance | | +| mongoengine_bad.py:58:30:58:42 | ControlFlowNode for unsafe_search | mongoengine_bad.py:58:19:58:43 | ControlFlowNode for Attribute() | provenance | | +| pymongo_test.py:1:26:1:32 | ControlFlowNode for ImportMember | pymongo_test.py:1:26:1:32 | ControlFlowNode for request | provenance | | +| pymongo_test.py:1:26:1:32 | ControlFlowNode for request | pymongo_test.py:12:21:12:27 | ControlFlowNode for request | provenance | | +| pymongo_test.py:1:26:1:32 | ControlFlowNode for request | pymongo_test.py:29:27:29:33 | ControlFlowNode for request | provenance | | +| pymongo_test.py:1:26:1:32 | ControlFlowNode for request | pymongo_test.py:39:27:39:33 | ControlFlowNode for request | provenance | | +| pymongo_test.py:1:26:1:32 | ControlFlowNode for request | pymongo_test.py:52:26:52:32 | ControlFlowNode for request | provenance | | +| pymongo_test.py:12:5:12:17 | ControlFlowNode for unsafe_search | pymongo_test.py:13:30:13:42 | ControlFlowNode for unsafe_search | provenance | | +| pymongo_test.py:12:21:12:27 | ControlFlowNode for request | pymongo_test.py:12:5:12:17 | ControlFlowNode for unsafe_search | provenance | | +| pymongo_test.py:13:5:13:15 | ControlFlowNode for json_search | pymongo_test.py:15:42:15:62 | ControlFlowNode for Dict | provenance | | +| pymongo_test.py:13:19:13:43 | ControlFlowNode for Attribute() | pymongo_test.py:13:5:13:15 | ControlFlowNode for json_search | provenance | | +| pymongo_test.py:13:30:13:42 | ControlFlowNode for unsafe_search | pymongo_test.py:13:19:13:43 | ControlFlowNode for Attribute() | provenance | | +| pymongo_test.py:29:5:29:12 | ControlFlowNode for event_id | pymongo_test.py:33:45:33:72 | ControlFlowNode for Fstring | provenance | | +| pymongo_test.py:29:16:29:51 | ControlFlowNode for Attribute() | pymongo_test.py:29:5:29:12 | ControlFlowNode for event_id | provenance | | +| pymongo_test.py:29:27:29:33 | ControlFlowNode for request | pymongo_test.py:29:27:29:50 | ControlFlowNode for Subscript | provenance | | +| pymongo_test.py:29:27:29:50 | ControlFlowNode for Subscript | pymongo_test.py:29:16:29:51 | ControlFlowNode for Attribute() | provenance | | +| pymongo_test.py:33:45:33:72 | ControlFlowNode for Fstring | pymongo_test.py:33:34:33:73 | ControlFlowNode for Dict | provenance | | +| pymongo_test.py:39:5:39:12 | ControlFlowNode for event_id | pymongo_test.py:43:45:43:72 | ControlFlowNode for Fstring | provenance | | +| pymongo_test.py:39:16:39:51 | ControlFlowNode for Attribute() | pymongo_test.py:39:5:39:12 | ControlFlowNode for event_id | provenance | | +| pymongo_test.py:39:27:39:33 | ControlFlowNode for request | pymongo_test.py:39:27:39:50 | ControlFlowNode for Subscript | provenance | | +| pymongo_test.py:39:27:39:50 | ControlFlowNode for Subscript | pymongo_test.py:39:16:39:51 | ControlFlowNode for Attribute() | provenance | | +| pymongo_test.py:43:45:43:72 | ControlFlowNode for Fstring | pymongo_test.py:43:34:43:73 | ControlFlowNode for Dict | provenance | | +| pymongo_test.py:52:5:52:11 | ControlFlowNode for decoded | pymongo_test.py:55:17:55:23 | ControlFlowNode for decoded | provenance | | +| pymongo_test.py:52:15:52:50 | ControlFlowNode for Attribute() | pymongo_test.py:52:5:52:11 | ControlFlowNode for decoded | provenance | | +| pymongo_test.py:52:26:52:32 | ControlFlowNode for request | pymongo_test.py:52:26:52:49 | ControlFlowNode for Subscript | provenance | | +| pymongo_test.py:52:26:52:49 | ControlFlowNode for Subscript | pymongo_test.py:52:15:52:50 | ControlFlowNode for Attribute() | provenance | | +| pymongo_test.py:54:5:54:10 | ControlFlowNode for search | pymongo_test.py:59:25:59:56 | ControlFlowNode for Dict | provenance | | +| pymongo_test.py:54:14:58:5 | ControlFlowNode for Dict | pymongo_test.py:54:5:54:10 | ControlFlowNode for search | provenance | | +| pymongo_test.py:55:17:55:23 | ControlFlowNode for decoded | pymongo_test.py:54:14:58:5 | ControlFlowNode for Dict | provenance | | +| pymongo_test.py:55:17:55:23 | ControlFlowNode for decoded | pymongo_test.py:61:25:61:57 | ControlFlowNode for Dict | provenance | | +| pymongo_test.py:55:17:55:23 | ControlFlowNode for decoded | pymongo_test.py:62:25:62:42 | ControlFlowNode for Dict | provenance | | +| pymongo_test.py:55:17:55:23 | ControlFlowNode for decoded | pymongo_test.py:63:25:63:31 | ControlFlowNode for decoded | provenance | | nodes | PoC/server.py:1:26:1:32 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | | PoC/server.py:1:26:1:32 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | diff --git a/ruby/ql/test/library-tests/dataflow/array-flow/array-flow.expected b/ruby/ql/test/library-tests/dataflow/array-flow/array-flow.expected index f36cf514b893..046f19b454e3 100644 --- a/ruby/ql/test/library-tests/dataflow/array-flow/array-flow.expected +++ b/ruby/ql/test/library-tests/dataflow/array-flow/array-flow.expected @@ -1,2125 +1,2125 @@ testFailures edges -| array_flow.rb:2:5:2:5 | a [element 0] | array_flow.rb:3:10:3:10 | a [element 0] | -| array_flow.rb:2:5:2:5 | a [element 0] | array_flow.rb:5:10:5:10 | a [element 0] | -| array_flow.rb:2:9:2:20 | * ... [element 0] | array_flow.rb:2:5:2:5 | a [element 0] | -| array_flow.rb:2:10:2:20 | call to source | array_flow.rb:2:9:2:20 | * ... [element 0] | -| array_flow.rb:3:10:3:10 | a [element 0] | array_flow.rb:3:10:3:13 | ...[...] | -| array_flow.rb:5:10:5:10 | a [element 0] | array_flow.rb:5:10:5:13 | ...[...] | -| array_flow.rb:9:5:9:5 | a [element 1] | array_flow.rb:11:10:11:10 | a [element 1] | -| array_flow.rb:9:5:9:5 | a [element 1] | array_flow.rb:13:10:13:10 | a [element 1] | -| array_flow.rb:9:13:9:21 | call to source | array_flow.rb:9:5:9:5 | a [element 1] | -| array_flow.rb:11:10:11:10 | a [element 1] | array_flow.rb:11:10:11:13 | ...[...] | -| array_flow.rb:13:10:13:10 | a [element 1] | array_flow.rb:13:10:13:13 | ...[...] | -| array_flow.rb:17:5:17:5 | a [element] | array_flow.rb:18:10:18:10 | a [element] | -| array_flow.rb:17:5:17:5 | a [element] | array_flow.rb:19:10:19:10 | a [element] | -| array_flow.rb:17:5:17:5 | a [element] | array_flow.rb:21:19:21:19 | a [element] | -| array_flow.rb:17:9:17:33 | call to new [element] | array_flow.rb:17:5:17:5 | a [element] | -| array_flow.rb:17:22:17:32 | call to source | array_flow.rb:17:9:17:33 | call to new [element] | -| array_flow.rb:18:10:18:10 | a [element] | array_flow.rb:18:10:18:13 | ...[...] | -| array_flow.rb:19:10:19:10 | a [element] | array_flow.rb:19:10:19:13 | ...[...] | -| array_flow.rb:21:5:21:5 | b [element] | array_flow.rb:22:10:22:10 | b [element] | -| array_flow.rb:21:5:21:5 | b [element] | array_flow.rb:23:10:23:10 | b [element] | -| array_flow.rb:21:9:21:20 | call to new [element] | array_flow.rb:21:5:21:5 | b [element] | -| array_flow.rb:21:19:21:19 | a [element] | array_flow.rb:21:9:21:20 | call to new [element] | -| array_flow.rb:22:10:22:10 | b [element] | array_flow.rb:22:10:22:13 | ...[...] | -| array_flow.rb:23:10:23:10 | b [element] | array_flow.rb:23:10:23:13 | ...[...] | -| array_flow.rb:25:5:25:5 | c [element] | array_flow.rb:28:10:28:10 | c [element] | -| array_flow.rb:25:5:25:5 | c [element] | array_flow.rb:29:10:29:10 | c [element] | -| array_flow.rb:25:9:27:7 | call to new [element] | array_flow.rb:25:5:25:5 | c [element] | -| array_flow.rb:26:9:26:19 | call to source | array_flow.rb:25:9:27:7 | call to new [element] | -| array_flow.rb:28:10:28:10 | c [element] | array_flow.rb:28:10:28:13 | ...[...] | -| array_flow.rb:29:10:29:10 | c [element] | array_flow.rb:29:10:29:13 | ...[...] | -| array_flow.rb:33:5:33:5 | a [element 0] | array_flow.rb:34:27:34:27 | a [element 0] | -| array_flow.rb:33:10:33:18 | call to source | array_flow.rb:33:5:33:5 | a [element 0] | -| array_flow.rb:34:5:34:5 | b [element 0] | array_flow.rb:35:10:35:10 | b [element 0] | -| array_flow.rb:34:9:34:28 | call to try_convert [element 0] | array_flow.rb:34:5:34:5 | b [element 0] | -| array_flow.rb:34:27:34:27 | a [element 0] | array_flow.rb:34:9:34:28 | call to try_convert [element 0] | -| array_flow.rb:35:10:35:10 | b [element 0] | array_flow.rb:35:10:35:13 | ...[...] | -| array_flow.rb:40:5:40:5 | a [element 0] | array_flow.rb:42:9:42:9 | a [element 0] | -| array_flow.rb:40:10:40:20 | call to source | array_flow.rb:40:5:40:5 | a [element 0] | -| array_flow.rb:41:5:41:5 | b [element 2] | array_flow.rb:42:13:42:13 | b [element 2] | -| array_flow.rb:41:16:41:26 | call to source | array_flow.rb:41:5:41:5 | b [element 2] | -| array_flow.rb:42:5:42:5 | c [element] | array_flow.rb:43:10:43:10 | c [element] | -| array_flow.rb:42:5:42:5 | c [element] | array_flow.rb:44:10:44:10 | c [element] | -| array_flow.rb:42:9:42:9 | a [element 0] | array_flow.rb:42:9:42:13 | ... & ... [element] | -| array_flow.rb:42:9:42:13 | ... & ... [element] | array_flow.rb:42:5:42:5 | c [element] | -| array_flow.rb:42:13:42:13 | b [element 2] | array_flow.rb:42:9:42:13 | ... & ... [element] | -| array_flow.rb:43:10:43:10 | c [element] | array_flow.rb:43:10:43:13 | ...[...] | -| array_flow.rb:44:10:44:10 | c [element] | array_flow.rb:44:10:44:13 | ...[...] | -| array_flow.rb:48:5:48:5 | a [element 0] | array_flow.rb:49:9:49:9 | a [element 0] | -| array_flow.rb:48:10:48:18 | call to source | array_flow.rb:48:5:48:5 | a [element 0] | -| array_flow.rb:49:5:49:5 | b [element] | array_flow.rb:50:10:50:10 | b [element] | -| array_flow.rb:49:5:49:5 | b [element] | array_flow.rb:51:10:51:10 | b [element] | -| array_flow.rb:49:9:49:9 | a [element 0] | array_flow.rb:49:9:49:13 | ... * ... [element] | -| array_flow.rb:49:9:49:13 | ... * ... [element] | array_flow.rb:49:5:49:5 | b [element] | -| array_flow.rb:50:10:50:10 | b [element] | array_flow.rb:50:10:50:13 | ...[...] | -| array_flow.rb:51:10:51:10 | b [element] | array_flow.rb:51:10:51:13 | ...[...] | -| array_flow.rb:55:5:55:5 | a [element 0] | array_flow.rb:57:9:57:9 | a [element 0] | -| array_flow.rb:55:10:55:20 | call to source | array_flow.rb:55:5:55:5 | a [element 0] | -| array_flow.rb:56:5:56:5 | b [element 1] | array_flow.rb:57:13:57:13 | b [element 1] | -| array_flow.rb:56:13:56:23 | call to source | array_flow.rb:56:5:56:5 | b [element 1] | -| array_flow.rb:57:5:57:5 | c [element 0] | array_flow.rb:58:10:58:10 | c [element 0] | -| array_flow.rb:57:5:57:5 | c [element] | array_flow.rb:58:10:58:10 | c [element] | -| array_flow.rb:57:5:57:5 | c [element] | array_flow.rb:59:10:59:10 | c [element] | -| array_flow.rb:57:9:57:9 | a [element 0] | array_flow.rb:57:9:57:13 | ... + ... [element 0] | -| array_flow.rb:57:9:57:13 | ... + ... [element 0] | array_flow.rb:57:5:57:5 | c [element 0] | -| array_flow.rb:57:9:57:13 | ... + ... [element] | array_flow.rb:57:5:57:5 | c [element] | -| array_flow.rb:57:13:57:13 | b [element 1] | array_flow.rb:57:9:57:13 | ... + ... [element] | -| array_flow.rb:58:10:58:10 | c [element 0] | array_flow.rb:58:10:58:13 | ...[...] | -| array_flow.rb:58:10:58:10 | c [element] | array_flow.rb:58:10:58:13 | ...[...] | -| array_flow.rb:59:10:59:10 | c [element] | array_flow.rb:59:10:59:13 | ...[...] | -| array_flow.rb:63:5:63:5 | a [element 0] | array_flow.rb:65:9:65:9 | a [element 0] | -| array_flow.rb:63:10:63:20 | call to source | array_flow.rb:63:5:63:5 | a [element 0] | -| array_flow.rb:65:5:65:5 | c [element] | array_flow.rb:66:10:66:10 | c [element] | -| array_flow.rb:65:5:65:5 | c [element] | array_flow.rb:67:10:67:10 | c [element] | -| array_flow.rb:65:9:65:9 | a [element 0] | array_flow.rb:65:9:65:13 | ... - ... [element] | -| array_flow.rb:65:9:65:13 | ... - ... [element] | array_flow.rb:65:5:65:5 | c [element] | -| array_flow.rb:66:10:66:10 | c [element] | array_flow.rb:66:10:66:13 | ...[...] | -| array_flow.rb:67:10:67:10 | c [element] | array_flow.rb:67:10:67:13 | ...[...] | -| array_flow.rb:71:5:71:5 | a [element 0] | array_flow.rb:72:9:72:9 | a [element 0] | -| array_flow.rb:71:5:71:5 | a [element 0] | array_flow.rb:73:10:73:10 | a [element 0] | -| array_flow.rb:71:10:71:20 | call to source | array_flow.rb:71:5:71:5 | a [element 0] | -| array_flow.rb:72:5:72:5 | b [element 0] | array_flow.rb:75:10:75:10 | b [element 0] | -| array_flow.rb:72:5:72:5 | b [element] | array_flow.rb:75:10:75:10 | b [element] | -| array_flow.rb:72:5:72:5 | b [element] | array_flow.rb:76:10:76:10 | b [element] | -| array_flow.rb:72:9:72:9 | [post] a [element] | array_flow.rb:73:10:73:10 | a [element] | -| array_flow.rb:72:9:72:9 | [post] a [element] | array_flow.rb:74:10:74:10 | a [element] | -| array_flow.rb:72:9:72:9 | a [element 0] | array_flow.rb:72:9:72:24 | ... << ... [element 0] | -| array_flow.rb:72:9:72:24 | ... << ... [element 0] | array_flow.rb:72:5:72:5 | b [element 0] | -| array_flow.rb:72:9:72:24 | ... << ... [element] | array_flow.rb:72:5:72:5 | b [element] | -| array_flow.rb:72:14:72:24 | call to source | array_flow.rb:72:9:72:9 | [post] a [element] | -| array_flow.rb:72:14:72:24 | call to source | array_flow.rb:72:9:72:24 | ... << ... [element] | -| array_flow.rb:73:10:73:10 | a [element 0] | array_flow.rb:73:10:73:13 | ...[...] | -| array_flow.rb:73:10:73:10 | a [element] | array_flow.rb:73:10:73:13 | ...[...] | -| array_flow.rb:74:10:74:10 | a [element] | array_flow.rb:74:10:74:13 | ...[...] | -| array_flow.rb:75:10:75:10 | b [element 0] | array_flow.rb:75:10:75:13 | ...[...] | -| array_flow.rb:75:10:75:10 | b [element] | array_flow.rb:75:10:75:13 | ...[...] | -| array_flow.rb:76:10:76:10 | b [element] | array_flow.rb:76:10:76:13 | ...[...] | -| array_flow.rb:80:5:80:5 | a [element 1] | array_flow.rb:81:15:81:15 | a [element 1] | -| array_flow.rb:80:13:80:21 | call to source | array_flow.rb:80:5:80:5 | a [element 1] | -| array_flow.rb:81:8:81:8 | c | array_flow.rb:83:10:83:10 | c | -| array_flow.rb:81:15:81:15 | a [element 1] | array_flow.rb:81:8:81:8 | c | -| array_flow.rb:88:5:88:5 | a [element 1] | array_flow.rb:89:9:89:9 | a [element 1] | -| array_flow.rb:88:13:88:22 | call to source | array_flow.rb:88:5:88:5 | a [element 1] | -| array_flow.rb:89:5:89:5 | b [element 1] | array_flow.rb:91:10:91:10 | b [element 1] | -| array_flow.rb:89:5:89:5 | b [element 1] | array_flow.rb:92:10:92:10 | b [element 1] | -| array_flow.rb:89:9:89:9 | a [element 1] | array_flow.rb:89:9:89:15 | ...[...] [element 1] | -| array_flow.rb:89:9:89:15 | ...[...] [element 1] | array_flow.rb:89:5:89:5 | b [element 1] | -| array_flow.rb:91:10:91:10 | b [element 1] | array_flow.rb:91:10:91:13 | ...[...] | -| array_flow.rb:92:10:92:10 | b [element 1] | array_flow.rb:92:10:92:13 | ...[...] | -| array_flow.rb:96:5:96:5 | a [element 1] | array_flow.rb:97:9:97:9 | a [element 1] | -| array_flow.rb:96:13:96:22 | call to source | array_flow.rb:96:5:96:5 | a [element 1] | -| array_flow.rb:97:5:97:5 | b [element 1] | array_flow.rb:99:10:99:10 | b [element 1] | -| array_flow.rb:97:5:97:5 | b [element 1] | array_flow.rb:101:10:101:10 | b [element 1] | -| array_flow.rb:97:9:97:9 | a [element 1] | array_flow.rb:97:9:97:15 | ...[...] [element 1] | -| array_flow.rb:97:9:97:15 | ...[...] [element 1] | array_flow.rb:97:5:97:5 | b [element 1] | -| array_flow.rb:99:10:99:10 | b [element 1] | array_flow.rb:99:10:99:13 | ...[...] | -| array_flow.rb:101:10:101:10 | b [element 1] | array_flow.rb:101:10:101:13 | ...[...] | -| array_flow.rb:103:5:103:5 | a [element 1] | array_flow.rb:104:9:104:9 | a [element 1] | -| array_flow.rb:103:13:103:24 | call to source | array_flow.rb:103:5:103:5 | a [element 1] | -| array_flow.rb:104:5:104:5 | b [element 1] | array_flow.rb:106:10:106:10 | b [element 1] | -| array_flow.rb:104:9:104:9 | a [element 1] | array_flow.rb:104:9:104:16 | ...[...] [element 1] | -| array_flow.rb:104:9:104:16 | ...[...] [element 1] | array_flow.rb:104:5:104:5 | b [element 1] | -| array_flow.rb:106:10:106:10 | b [element 1] | array_flow.rb:106:10:106:13 | ...[...] | -| array_flow.rb:109:5:109:5 | a [element 1] | array_flow.rb:110:9:110:9 | a [element 1] | -| array_flow.rb:109:5:109:5 | a [element 1] | array_flow.rb:114:9:114:9 | a [element 1] | -| array_flow.rb:109:5:109:5 | a [element 3] | array_flow.rb:110:9:110:9 | a [element 3] | -| array_flow.rb:109:5:109:5 | a [element 3] | array_flow.rb:114:9:114:9 | a [element 3] | -| array_flow.rb:109:13:109:24 | call to source | array_flow.rb:109:5:109:5 | a [element 1] | -| array_flow.rb:109:30:109:41 | call to source | array_flow.rb:109:5:109:5 | a [element 3] | -| array_flow.rb:110:5:110:5 | b [element] | array_flow.rb:111:10:111:10 | b [element] | -| array_flow.rb:110:5:110:5 | b [element] | array_flow.rb:112:10:112:10 | b [element] | -| array_flow.rb:110:9:110:9 | a [element 1] | array_flow.rb:110:9:110:18 | ...[...] [element] | -| array_flow.rb:110:9:110:9 | a [element 3] | array_flow.rb:110:9:110:18 | ...[...] [element] | -| array_flow.rb:110:9:110:18 | ...[...] [element] | array_flow.rb:110:5:110:5 | b [element] | -| array_flow.rb:111:10:111:10 | b [element] | array_flow.rb:111:10:111:13 | ...[...] | -| array_flow.rb:112:10:112:10 | b [element] | array_flow.rb:112:10:112:13 | ...[...] | -| array_flow.rb:114:5:114:5 | b [element] | array_flow.rb:115:10:115:10 | b [element] | -| array_flow.rb:114:5:114:5 | b [element] | array_flow.rb:116:10:116:10 | b [element] | -| array_flow.rb:114:9:114:9 | a [element 1] | array_flow.rb:114:9:114:19 | ...[...] [element] | -| array_flow.rb:114:9:114:9 | a [element 3] | array_flow.rb:114:9:114:19 | ...[...] [element] | -| array_flow.rb:114:9:114:19 | ...[...] [element] | array_flow.rb:114:5:114:5 | b [element] | -| array_flow.rb:115:10:115:10 | b [element] | array_flow.rb:115:10:115:13 | ...[...] | -| array_flow.rb:116:10:116:10 | b [element] | array_flow.rb:116:10:116:13 | ...[...] | -| array_flow.rb:121:5:121:5 | [post] a [element] | array_flow.rb:122:10:122:10 | a [element] | -| array_flow.rb:121:5:121:5 | [post] a [element] | array_flow.rb:123:10:123:10 | a [element] | -| array_flow.rb:121:5:121:5 | [post] a [element] | array_flow.rb:124:10:124:10 | a [element] | -| array_flow.rb:121:15:121:24 | call to source | array_flow.rb:121:5:121:5 | [post] a [element] | -| array_flow.rb:122:10:122:10 | a [element] | array_flow.rb:122:10:122:13 | ...[...] | -| array_flow.rb:123:10:123:10 | a [element] | array_flow.rb:123:10:123:13 | ...[...] | -| array_flow.rb:124:10:124:10 | a [element] | array_flow.rb:124:10:124:13 | ...[...] | -| array_flow.rb:129:5:129:5 | [post] a [element] | array_flow.rb:130:10:130:10 | a [element] | -| array_flow.rb:129:5:129:5 | [post] a [element] | array_flow.rb:131:10:131:10 | a [element] | -| array_flow.rb:129:5:129:5 | [post] a [element] | array_flow.rb:132:10:132:10 | a [element] | -| array_flow.rb:129:19:129:28 | call to source | array_flow.rb:129:5:129:5 | [post] a [element] | -| array_flow.rb:130:10:130:10 | a [element] | array_flow.rb:130:10:130:13 | ...[...] | -| array_flow.rb:131:10:131:10 | a [element] | array_flow.rb:131:10:131:13 | ...[...] | -| array_flow.rb:132:10:132:10 | a [element] | array_flow.rb:132:10:132:13 | ...[...] | -| array_flow.rb:137:5:137:5 | [post] a [element] | array_flow.rb:138:10:138:10 | a [element] | -| array_flow.rb:137:5:137:5 | [post] a [element] | array_flow.rb:139:10:139:10 | a [element] | -| array_flow.rb:137:5:137:5 | [post] a [element] | array_flow.rb:140:10:140:10 | a [element] | -| array_flow.rb:137:15:137:24 | call to source | array_flow.rb:137:5:137:5 | [post] a [element] | -| array_flow.rb:138:10:138:10 | a [element] | array_flow.rb:138:10:138:13 | ...[...] | -| array_flow.rb:139:10:139:10 | a [element] | array_flow.rb:139:10:139:13 | ...[...] | -| array_flow.rb:140:10:140:10 | a [element] | array_flow.rb:140:10:140:13 | ...[...] | -| array_flow.rb:145:5:145:5 | [post] a [element] | array_flow.rb:146:10:146:10 | a [element] | -| array_flow.rb:145:5:145:5 | [post] a [element] | array_flow.rb:147:10:147:10 | a [element] | -| array_flow.rb:145:5:145:5 | [post] a [element] | array_flow.rb:148:10:148:10 | a [element] | -| array_flow.rb:145:19:145:28 | call to source | array_flow.rb:145:5:145:5 | [post] a [element] | -| array_flow.rb:146:10:146:10 | a [element] | array_flow.rb:146:10:146:13 | ...[...] | -| array_flow.rb:147:10:147:10 | a [element] | array_flow.rb:147:10:147:13 | ...[...] | -| array_flow.rb:148:10:148:10 | a [element] | array_flow.rb:148:10:148:13 | ...[...] | -| array_flow.rb:152:5:152:5 | a [element 2] | array_flow.rb:153:5:153:5 | a [element 2] | -| array_flow.rb:152:16:152:25 | call to source | array_flow.rb:152:5:152:5 | a [element 2] | -| array_flow.rb:153:5:153:5 | a [element 2] | array_flow.rb:153:16:153:16 | x | -| array_flow.rb:153:16:153:16 | x | array_flow.rb:154:14:154:14 | x | -| array_flow.rb:159:5:159:5 | a [element 2] | array_flow.rb:160:5:160:5 | a [element 2] | -| array_flow.rb:159:16:159:25 | call to source | array_flow.rb:159:5:159:5 | a [element 2] | -| array_flow.rb:160:5:160:5 | a [element 2] | array_flow.rb:160:16:160:16 | x | -| array_flow.rb:160:16:160:16 | x | array_flow.rb:161:14:161:14 | x | -| array_flow.rb:166:5:166:5 | a [element 0] | array_flow.rb:167:9:167:9 | a [element 0] | -| array_flow.rb:166:5:166:5 | a [element 0] | array_flow.rb:168:10:168:10 | a [element 0] | -| array_flow.rb:166:10:166:21 | call to source | array_flow.rb:166:5:166:5 | a [element 0] | -| array_flow.rb:167:5:167:5 | b [element 0] | array_flow.rb:170:10:170:10 | b [element 0] | -| array_flow.rb:167:5:167:5 | b [element] | array_flow.rb:170:10:170:10 | b [element] | -| array_flow.rb:167:5:167:5 | b [element] | array_flow.rb:171:10:171:10 | b [element] | -| array_flow.rb:167:9:167:9 | [post] a [element] | array_flow.rb:168:10:168:10 | a [element] | -| array_flow.rb:167:9:167:9 | [post] a [element] | array_flow.rb:169:10:169:10 | a [element] | -| array_flow.rb:167:9:167:9 | a [element 0] | array_flow.rb:167:9:167:44 | call to append [element 0] | -| array_flow.rb:167:9:167:44 | call to append [element 0] | array_flow.rb:167:5:167:5 | b [element 0] | -| array_flow.rb:167:9:167:44 | call to append [element] | array_flow.rb:167:5:167:5 | b [element] | -| array_flow.rb:167:18:167:29 | call to source | array_flow.rb:167:9:167:9 | [post] a [element] | -| array_flow.rb:167:18:167:29 | call to source | array_flow.rb:167:9:167:44 | call to append [element] | -| array_flow.rb:167:32:167:43 | call to source | array_flow.rb:167:9:167:9 | [post] a [element] | -| array_flow.rb:167:32:167:43 | call to source | array_flow.rb:167:9:167:44 | call to append [element] | -| array_flow.rb:168:10:168:10 | a [element 0] | array_flow.rb:168:10:168:13 | ...[...] | -| array_flow.rb:168:10:168:10 | a [element] | array_flow.rb:168:10:168:13 | ...[...] | -| array_flow.rb:169:10:169:10 | a [element] | array_flow.rb:169:10:169:13 | ...[...] | -| array_flow.rb:170:10:170:10 | b [element 0] | array_flow.rb:170:10:170:13 | ...[...] | -| array_flow.rb:170:10:170:10 | b [element] | array_flow.rb:170:10:170:13 | ...[...] | -| array_flow.rb:171:10:171:10 | b [element] | array_flow.rb:171:10:171:13 | ...[...] | -| array_flow.rb:177:5:177:5 | c [element 1] | array_flow.rb:178:16:178:16 | c [element 1] | -| array_flow.rb:177:15:177:24 | call to source | array_flow.rb:177:5:177:5 | c [element 1] | -| array_flow.rb:178:5:178:5 | d [element 2, element 1] | array_flow.rb:179:11:179:11 | d [element 2, element 1] | -| array_flow.rb:178:5:178:5 | d [element 2, element 1] | array_flow.rb:180:11:180:11 | d [element 2, element 1] | -| array_flow.rb:178:16:178:16 | c [element 1] | array_flow.rb:178:5:178:5 | d [element 2, element 1] | -| array_flow.rb:179:11:179:11 | d [element 2, element 1] | array_flow.rb:179:11:179:22 | call to assoc [element 1] | -| array_flow.rb:179:11:179:22 | call to assoc [element 1] | array_flow.rb:179:11:179:25 | ...[...] | -| array_flow.rb:179:11:179:25 | ...[...] | array_flow.rb:179:10:179:26 | ( ... ) | -| array_flow.rb:180:11:180:11 | d [element 2, element 1] | array_flow.rb:180:11:180:22 | call to assoc [element 1] | -| array_flow.rb:180:11:180:22 | call to assoc [element 1] | array_flow.rb:180:11:180:25 | ...[...] | -| array_flow.rb:180:11:180:25 | ...[...] | array_flow.rb:180:10:180:26 | ( ... ) | -| array_flow.rb:184:5:184:5 | a [element 1] | array_flow.rb:186:10:186:10 | a [element 1] | -| array_flow.rb:184:5:184:5 | a [element 1] | array_flow.rb:188:10:188:10 | a [element 1] | -| array_flow.rb:184:13:184:22 | call to source | array_flow.rb:184:5:184:5 | a [element 1] | -| array_flow.rb:186:10:186:10 | a [element 1] | array_flow.rb:186:10:186:16 | call to at | -| array_flow.rb:188:10:188:10 | a [element 1] | array_flow.rb:188:10:188:16 | call to at | -| array_flow.rb:192:5:192:5 | a [element 2] | array_flow.rb:193:9:193:9 | a [element 2] | -| array_flow.rb:192:16:192:25 | call to source | array_flow.rb:192:5:192:5 | a [element 2] | -| array_flow.rb:193:5:193:5 | b | array_flow.rb:196:10:196:10 | b | -| array_flow.rb:193:9:193:9 | a [element 2] | array_flow.rb:193:9:195:7 | call to bsearch | -| array_flow.rb:193:9:193:9 | a [element 2] | array_flow.rb:193:23:193:23 | x | -| array_flow.rb:193:9:195:7 | call to bsearch | array_flow.rb:193:5:193:5 | b | -| array_flow.rb:193:23:193:23 | x | array_flow.rb:194:14:194:14 | x | -| array_flow.rb:200:5:200:5 | a [element 2] | array_flow.rb:201:9:201:9 | a [element 2] | -| array_flow.rb:200:16:200:25 | call to source | array_flow.rb:200:5:200:5 | a [element 2] | -| array_flow.rb:201:9:201:9 | a [element 2] | array_flow.rb:201:29:201:29 | x | -| array_flow.rb:201:29:201:29 | x | array_flow.rb:202:14:202:14 | x | -| array_flow.rb:208:5:208:5 | a [element 2] | array_flow.rb:209:5:209:5 | a [element 2] | -| array_flow.rb:208:16:208:25 | call to source | array_flow.rb:208:5:208:5 | a [element 2] | -| array_flow.rb:209:5:209:5 | a [element 2] | array_flow.rb:209:17:209:17 | x | -| array_flow.rb:209:17:209:17 | x | array_flow.rb:210:14:210:14 | x | -| array_flow.rb:215:5:215:5 | a [element 2] | array_flow.rb:216:9:216:9 | a [element 2] | -| array_flow.rb:215:5:215:5 | a [element 3] | array_flow.rb:216:9:216:9 | a [element 3] | -| array_flow.rb:215:16:215:27 | call to source | array_flow.rb:215:5:215:5 | a [element 2] | -| array_flow.rb:215:30:215:41 | call to source | array_flow.rb:215:5:215:5 | a [element 3] | -| array_flow.rb:216:9:216:9 | a [element 2] | array_flow.rb:216:27:216:27 | x | -| array_flow.rb:216:9:216:9 | a [element 2] | array_flow.rb:216:30:216:30 | y | -| array_flow.rb:216:9:216:9 | a [element 3] | array_flow.rb:216:27:216:27 | x | -| array_flow.rb:216:9:216:9 | a [element 3] | array_flow.rb:216:30:216:30 | y | -| array_flow.rb:216:27:216:27 | x | array_flow.rb:217:14:217:14 | x | -| array_flow.rb:216:30:216:30 | y | array_flow.rb:218:14:218:14 | y | -| array_flow.rb:231:5:231:5 | a [element 2] | array_flow.rb:232:9:232:9 | a [element 2] | -| array_flow.rb:231:16:231:27 | call to source | array_flow.rb:231:5:231:5 | a [element 2] | -| array_flow.rb:232:5:232:5 | b [element] | array_flow.rb:236:10:236:10 | b [element] | -| array_flow.rb:232:9:232:9 | a [element 2] | array_flow.rb:232:23:232:23 | x | -| array_flow.rb:232:9:235:7 | call to collect [element] | array_flow.rb:232:5:232:5 | b [element] | -| array_flow.rb:232:23:232:23 | x | array_flow.rb:233:14:233:14 | x | -| array_flow.rb:234:9:234:19 | call to source | array_flow.rb:232:9:235:7 | call to collect [element] | -| array_flow.rb:236:10:236:10 | b [element] | array_flow.rb:236:10:236:13 | ...[...] | -| array_flow.rb:240:5:240:5 | a [element 2] | array_flow.rb:241:9:241:9 | a [element 2] | -| array_flow.rb:240:16:240:27 | call to source | array_flow.rb:240:5:240:5 | a [element 2] | -| array_flow.rb:241:5:241:5 | b [element] | array_flow.rb:246:10:246:10 | b [element] | -| array_flow.rb:241:9:241:9 | [post] a [element] | array_flow.rb:245:10:245:10 | a [element] | -| array_flow.rb:241:9:241:9 | a [element 2] | array_flow.rb:241:24:241:24 | x | -| array_flow.rb:241:9:244:7 | call to collect! [element] | array_flow.rb:241:5:241:5 | b [element] | -| array_flow.rb:241:24:241:24 | x | array_flow.rb:242:14:242:14 | x | -| array_flow.rb:243:9:243:19 | call to source | array_flow.rb:241:9:241:9 | [post] a [element] | -| array_flow.rb:243:9:243:19 | call to source | array_flow.rb:241:9:244:7 | call to collect! [element] | -| array_flow.rb:245:10:245:10 | a [element] | array_flow.rb:245:10:245:13 | ...[...] | -| array_flow.rb:246:10:246:10 | b [element] | array_flow.rb:246:10:246:13 | ...[...] | -| array_flow.rb:250:5:250:5 | a [element 2] | array_flow.rb:251:9:251:9 | a [element 2] | -| array_flow.rb:250:5:250:5 | a [element 2] | array_flow.rb:256:9:256:9 | a [element 2] | -| array_flow.rb:250:16:250:27 | call to source | array_flow.rb:250:5:250:5 | a [element 2] | -| array_flow.rb:251:5:251:5 | b [element] | array_flow.rb:255:10:255:10 | b [element] | -| array_flow.rb:251:9:251:9 | a [element 2] | array_flow.rb:251:9:254:7 | call to collect_concat [element] | -| array_flow.rb:251:9:251:9 | a [element 2] | array_flow.rb:251:30:251:30 | x | -| array_flow.rb:251:9:254:7 | call to collect_concat [element] | array_flow.rb:251:5:251:5 | b [element] | -| array_flow.rb:251:30:251:30 | x | array_flow.rb:252:14:252:14 | x | -| array_flow.rb:253:13:253:24 | call to source | array_flow.rb:251:9:254:7 | call to collect_concat [element] | -| array_flow.rb:255:10:255:10 | b [element] | array_flow.rb:255:10:255:13 | ...[...] | -| array_flow.rb:256:5:256:5 | b [element] | array_flow.rb:260:10:260:10 | b [element] | -| array_flow.rb:256:9:256:9 | a [element 2] | array_flow.rb:256:30:256:30 | x | -| array_flow.rb:256:9:259:7 | call to collect_concat [element] | array_flow.rb:256:5:256:5 | b [element] | -| array_flow.rb:256:30:256:30 | x | array_flow.rb:257:14:257:14 | x | -| array_flow.rb:258:9:258:20 | call to source | array_flow.rb:256:9:259:7 | call to collect_concat [element] | -| array_flow.rb:260:10:260:10 | b [element] | array_flow.rb:260:10:260:13 | ...[...] | -| array_flow.rb:264:5:264:5 | a [element 2] | array_flow.rb:265:9:265:9 | a [element 2] | -| array_flow.rb:264:16:264:25 | call to source | array_flow.rb:264:5:264:5 | a [element 2] | -| array_flow.rb:265:5:265:5 | b [element 2] | array_flow.rb:269:10:269:10 | b [element 2] | -| array_flow.rb:265:9:265:9 | a [element 2] | array_flow.rb:265:9:267:7 | call to combination [element 2] | -| array_flow.rb:265:9:265:9 | a [element 2] | array_flow.rb:265:30:265:30 | x [element] | -| array_flow.rb:265:9:267:7 | call to combination [element 2] | array_flow.rb:265:5:265:5 | b [element 2] | -| array_flow.rb:265:30:265:30 | x [element] | array_flow.rb:266:14:266:14 | x [element] | -| array_flow.rb:266:14:266:14 | x [element] | array_flow.rb:266:14:266:17 | ...[...] | -| array_flow.rb:269:10:269:10 | b [element 2] | array_flow.rb:269:10:269:13 | ...[...] | -| array_flow.rb:273:5:273:5 | a [element 2] | array_flow.rb:274:9:274:9 | a [element 2] | -| array_flow.rb:273:16:273:25 | call to source | array_flow.rb:273:5:273:5 | a [element 2] | -| array_flow.rb:274:5:274:5 | b [element] | array_flow.rb:275:10:275:10 | b [element] | -| array_flow.rb:274:9:274:9 | a [element 2] | array_flow.rb:274:9:274:17 | call to compact [element] | -| array_flow.rb:274:9:274:17 | call to compact [element] | array_flow.rb:274:5:274:5 | b [element] | -| array_flow.rb:275:10:275:10 | b [element] | array_flow.rb:275:10:275:13 | ...[...] | -| array_flow.rb:279:5:279:5 | a [element 2] | array_flow.rb:280:9:280:9 | a [element 2] | -| array_flow.rb:279:16:279:25 | call to source | array_flow.rb:279:5:279:5 | a [element 2] | -| array_flow.rb:280:5:280:5 | b [element] | array_flow.rb:282:10:282:10 | b [element] | -| array_flow.rb:280:9:280:9 | [post] a [element] | array_flow.rb:281:10:281:10 | a [element] | -| array_flow.rb:280:9:280:9 | a [element 2] | array_flow.rb:280:9:280:9 | [post] a [element] | -| array_flow.rb:280:9:280:9 | a [element 2] | array_flow.rb:280:9:280:18 | call to compact! [element] | -| array_flow.rb:280:9:280:18 | call to compact! [element] | array_flow.rb:280:5:280:5 | b [element] | -| array_flow.rb:281:10:281:10 | a [element] | array_flow.rb:281:10:281:13 | ...[...] | -| array_flow.rb:282:10:282:10 | b [element] | array_flow.rb:282:10:282:13 | ...[...] | -| array_flow.rb:286:5:286:5 | a [element 2] | array_flow.rb:290:10:290:10 | a [element 2] | -| array_flow.rb:286:16:286:27 | call to source | array_flow.rb:286:5:286:5 | a [element 2] | -| array_flow.rb:287:5:287:5 | b [element 2] | array_flow.rb:288:14:288:14 | b [element 2] | -| array_flow.rb:287:16:287:27 | call to source | array_flow.rb:287:5:287:5 | b [element 2] | -| array_flow.rb:288:5:288:5 | [post] a [element] | array_flow.rb:289:10:289:10 | a [element] | -| array_flow.rb:288:5:288:5 | [post] a [element] | array_flow.rb:290:10:290:10 | a [element] | -| array_flow.rb:288:14:288:14 | b [element 2] | array_flow.rb:288:5:288:5 | [post] a [element] | -| array_flow.rb:289:10:289:10 | a [element] | array_flow.rb:289:10:289:13 | ...[...] | -| array_flow.rb:290:10:290:10 | a [element 2] | array_flow.rb:290:10:290:13 | ...[...] | -| array_flow.rb:290:10:290:10 | a [element] | array_flow.rb:290:10:290:13 | ...[...] | -| array_flow.rb:294:5:294:5 | a [element 2] | array_flow.rb:295:5:295:5 | a [element 2] | -| array_flow.rb:294:16:294:25 | call to source | array_flow.rb:294:5:294:5 | a [element 2] | -| array_flow.rb:295:5:295:5 | a [element 2] | array_flow.rb:295:17:295:17 | x | -| array_flow.rb:295:17:295:17 | x | array_flow.rb:296:14:296:14 | x | -| array_flow.rb:301:5:301:5 | a [element 2] | array_flow.rb:302:5:302:5 | a [element 2] | -| array_flow.rb:301:16:301:25 | call to source | array_flow.rb:301:5:301:5 | a [element 2] | -| array_flow.rb:302:5:302:5 | a [element 2] | array_flow.rb:302:20:302:20 | x | -| array_flow.rb:302:20:302:20 | x | array_flow.rb:303:14:303:14 | x | -| array_flow.rb:308:5:308:5 | a [element 2] | array_flow.rb:309:9:309:9 | a [element 2] | -| array_flow.rb:308:16:308:25 | call to source | array_flow.rb:308:5:308:5 | a [element 2] | -| array_flow.rb:309:5:309:5 | b [element 2] | array_flow.rb:312:10:312:10 | b [element 2] | -| array_flow.rb:309:9:309:9 | a [element 2] | array_flow.rb:309:9:309:21 | call to deconstruct [element 2] | -| array_flow.rb:309:9:309:21 | call to deconstruct [element 2] | array_flow.rb:309:5:309:5 | b [element 2] | -| array_flow.rb:312:10:312:10 | b [element 2] | array_flow.rb:312:10:312:13 | ...[...] | -| array_flow.rb:316:5:316:5 | a [element 2] | array_flow.rb:317:9:317:9 | a [element 2] | -| array_flow.rb:316:16:316:27 | call to source | array_flow.rb:316:5:316:5 | a [element 2] | -| array_flow.rb:317:5:317:5 | b | array_flow.rb:318:10:318:10 | b | -| array_flow.rb:317:9:317:9 | a [element 2] | array_flow.rb:317:9:317:36 | call to delete | -| array_flow.rb:317:9:317:36 | call to delete | array_flow.rb:317:5:317:5 | b | -| array_flow.rb:317:23:317:34 | call to source | array_flow.rb:317:9:317:36 | call to delete | -| array_flow.rb:325:5:325:5 | a [element 2] | array_flow.rb:326:9:326:9 | a [element 2] | -| array_flow.rb:325:5:325:5 | a [element 3] | array_flow.rb:326:9:326:9 | a [element 3] | -| array_flow.rb:325:16:325:27 | call to source | array_flow.rb:325:5:325:5 | a [element 2] | -| array_flow.rb:325:30:325:41 | call to source | array_flow.rb:325:5:325:5 | a [element 3] | -| array_flow.rb:326:5:326:5 | b | array_flow.rb:327:10:327:10 | b | -| array_flow.rb:326:9:326:9 | [post] a [element 2] | array_flow.rb:328:10:328:10 | a [element 2] | -| array_flow.rb:326:9:326:9 | a [element 2] | array_flow.rb:326:9:326:22 | call to delete_at | -| array_flow.rb:326:9:326:9 | a [element 3] | array_flow.rb:326:9:326:9 | [post] a [element 2] | -| array_flow.rb:326:9:326:22 | call to delete_at | array_flow.rb:326:5:326:5 | b | -| array_flow.rb:328:10:328:10 | a [element 2] | array_flow.rb:328:10:328:13 | ...[...] | -| array_flow.rb:330:5:330:5 | a [element 2] | array_flow.rb:331:9:331:9 | a [element 2] | -| array_flow.rb:330:5:330:5 | a [element 3] | array_flow.rb:331:9:331:9 | a [element 3] | -| array_flow.rb:330:16:330:27 | call to source | array_flow.rb:330:5:330:5 | a [element 2] | -| array_flow.rb:330:30:330:41 | call to source | array_flow.rb:330:5:330:5 | a [element 3] | -| array_flow.rb:331:5:331:5 | b | array_flow.rb:332:10:332:10 | b | -| array_flow.rb:331:9:331:9 | [post] a [element] | array_flow.rb:333:10:333:10 | a [element] | -| array_flow.rb:331:9:331:9 | [post] a [element] | array_flow.rb:334:10:334:10 | a [element] | -| array_flow.rb:331:9:331:9 | a [element 2] | array_flow.rb:331:9:331:9 | [post] a [element] | -| array_flow.rb:331:9:331:9 | a [element 2] | array_flow.rb:331:9:331:22 | call to delete_at | -| array_flow.rb:331:9:331:9 | a [element 3] | array_flow.rb:331:9:331:9 | [post] a [element] | -| array_flow.rb:331:9:331:9 | a [element 3] | array_flow.rb:331:9:331:22 | call to delete_at | -| array_flow.rb:331:9:331:22 | call to delete_at | array_flow.rb:331:5:331:5 | b | -| array_flow.rb:333:10:333:10 | a [element] | array_flow.rb:333:10:333:13 | ...[...] | -| array_flow.rb:334:10:334:10 | a [element] | array_flow.rb:334:10:334:13 | ...[...] | -| array_flow.rb:338:5:338:5 | a [element 2] | array_flow.rb:339:9:339:9 | a [element 2] | -| array_flow.rb:338:16:338:25 | call to source | array_flow.rb:338:5:338:5 | a [element 2] | -| array_flow.rb:339:5:339:5 | b [element] | array_flow.rb:342:10:342:10 | b [element] | -| array_flow.rb:339:9:339:9 | [post] a [element] | array_flow.rb:343:10:343:10 | a [element] | -| array_flow.rb:339:9:339:9 | [post] a [element] | array_flow.rb:344:10:344:10 | a [element] | -| array_flow.rb:339:9:339:9 | [post] a [element] | array_flow.rb:345:10:345:10 | a [element] | -| array_flow.rb:339:9:339:9 | a [element 2] | array_flow.rb:339:9:339:9 | [post] a [element] | -| array_flow.rb:339:9:339:9 | a [element 2] | array_flow.rb:339:9:341:7 | call to delete_if [element] | -| array_flow.rb:339:9:339:9 | a [element 2] | array_flow.rb:339:25:339:25 | x | -| array_flow.rb:339:9:341:7 | call to delete_if [element] | array_flow.rb:339:5:339:5 | b [element] | -| array_flow.rb:339:25:339:25 | x | array_flow.rb:340:14:340:14 | x | -| array_flow.rb:342:10:342:10 | b [element] | array_flow.rb:342:10:342:13 | ...[...] | -| array_flow.rb:343:10:343:10 | a [element] | array_flow.rb:343:10:343:13 | ...[...] | -| array_flow.rb:344:10:344:10 | a [element] | array_flow.rb:344:10:344:13 | ...[...] | -| array_flow.rb:345:10:345:10 | a [element] | array_flow.rb:345:10:345:13 | ...[...] | -| array_flow.rb:349:5:349:5 | a [element 2] | array_flow.rb:350:9:350:9 | a [element 2] | -| array_flow.rb:349:16:349:25 | call to source | array_flow.rb:349:5:349:5 | a [element 2] | -| array_flow.rb:350:5:350:5 | b [element] | array_flow.rb:351:10:351:10 | b [element] | -| array_flow.rb:350:9:350:9 | a [element 2] | array_flow.rb:350:9:350:25 | call to difference [element] | -| array_flow.rb:350:9:350:25 | call to difference [element] | array_flow.rb:350:5:350:5 | b [element] | -| array_flow.rb:351:10:351:10 | b [element] | array_flow.rb:351:10:351:13 | ...[...] | -| array_flow.rb:355:5:355:5 | a [element 2] | array_flow.rb:357:10:357:10 | a [element 2] | -| array_flow.rb:355:5:355:5 | a [element 2] | array_flow.rb:358:10:358:10 | a [element 2] | -| array_flow.rb:355:5:355:5 | a [element 3, element 1] | array_flow.rb:360:10:360:10 | a [element 3, element 1] | -| array_flow.rb:355:16:355:27 | call to source | array_flow.rb:355:5:355:5 | a [element 2] | -| array_flow.rb:355:34:355:45 | call to source | array_flow.rb:355:5:355:5 | a [element 3, element 1] | -| array_flow.rb:357:10:357:10 | a [element 2] | array_flow.rb:357:10:357:17 | call to dig | -| array_flow.rb:358:10:358:10 | a [element 2] | array_flow.rb:358:10:358:17 | call to dig | -| array_flow.rb:360:10:360:10 | a [element 3, element 1] | array_flow.rb:360:10:360:19 | call to dig | -| array_flow.rb:364:5:364:5 | a [element 2] | array_flow.rb:365:9:365:9 | a [element 2] | -| array_flow.rb:364:16:364:27 | call to source | array_flow.rb:364:5:364:5 | a [element 2] | -| array_flow.rb:365:5:365:5 | b | array_flow.rb:368:10:368:10 | b | -| array_flow.rb:365:9:365:9 | a [element 2] | array_flow.rb:365:9:367:7 | call to detect | -| array_flow.rb:365:9:365:9 | a [element 2] | array_flow.rb:365:43:365:43 | x | -| array_flow.rb:365:9:367:7 | call to detect | array_flow.rb:365:5:365:5 | b | -| array_flow.rb:365:23:365:34 | call to source | array_flow.rb:365:9:367:7 | call to detect | -| array_flow.rb:365:43:365:43 | x | array_flow.rb:366:14:366:14 | x | -| array_flow.rb:372:5:372:5 | a [element 2] | array_flow.rb:373:9:373:9 | a [element 2] | -| array_flow.rb:372:5:372:5 | a [element 2] | array_flow.rb:375:9:375:9 | a [element 2] | -| array_flow.rb:372:5:372:5 | a [element 2] | array_flow.rb:380:9:380:9 | a [element 2] | -| array_flow.rb:372:5:372:5 | a [element 3] | array_flow.rb:373:9:373:9 | a [element 3] | -| array_flow.rb:372:5:372:5 | a [element 3] | array_flow.rb:375:9:375:9 | a [element 3] | -| array_flow.rb:372:16:372:27 | call to source | array_flow.rb:372:5:372:5 | a [element 2] | -| array_flow.rb:372:30:372:41 | call to source | array_flow.rb:372:5:372:5 | a [element 3] | -| array_flow.rb:373:5:373:5 | b [element] | array_flow.rb:374:10:374:10 | b [element] | -| array_flow.rb:373:9:373:9 | a [element 2] | array_flow.rb:373:9:373:17 | call to drop [element] | -| array_flow.rb:373:9:373:9 | a [element 3] | array_flow.rb:373:9:373:17 | call to drop [element] | -| array_flow.rb:373:9:373:17 | call to drop [element] | array_flow.rb:373:5:373:5 | b [element] | -| array_flow.rb:374:10:374:10 | b [element] | array_flow.rb:374:10:374:13 | ...[...] | -| array_flow.rb:375:5:375:5 | b [element 1] | array_flow.rb:377:10:377:10 | b [element 1] | -| array_flow.rb:375:5:375:5 | b [element 1] | array_flow.rb:378:10:378:10 | b [element 1] | -| array_flow.rb:375:5:375:5 | b [element 2] | array_flow.rb:378:10:378:10 | b [element 2] | -| array_flow.rb:375:9:375:9 | a [element 2] | array_flow.rb:375:9:375:17 | call to drop [element 1] | -| array_flow.rb:375:9:375:9 | a [element 3] | array_flow.rb:375:9:375:17 | call to drop [element 2] | -| array_flow.rb:375:9:375:17 | call to drop [element 1] | array_flow.rb:375:5:375:5 | b [element 1] | -| array_flow.rb:375:9:375:17 | call to drop [element 2] | array_flow.rb:375:5:375:5 | b [element 2] | -| array_flow.rb:377:10:377:10 | b [element 1] | array_flow.rb:377:10:377:13 | ...[...] | -| array_flow.rb:378:10:378:10 | b [element 1] | array_flow.rb:378:10:378:13 | ...[...] | -| array_flow.rb:378:10:378:10 | b [element 2] | array_flow.rb:378:10:378:13 | ...[...] | -| array_flow.rb:379:5:379:5 | [post] a [element] | array_flow.rb:380:9:380:9 | a [element] | -| array_flow.rb:379:12:379:23 | call to source | array_flow.rb:379:5:379:5 | [post] a [element] | -| array_flow.rb:380:5:380:5 | b [element 1] | array_flow.rb:381:10:381:10 | b [element 1] | -| array_flow.rb:380:5:380:5 | b [element] | array_flow.rb:381:10:381:10 | b [element] | -| array_flow.rb:380:5:380:5 | b [element] | array_flow.rb:382:9:382:9 | b [element] | -| array_flow.rb:380:9:380:9 | a [element 2] | array_flow.rb:380:9:380:17 | call to drop [element 1] | -| array_flow.rb:380:9:380:9 | a [element] | array_flow.rb:380:9:380:17 | call to drop [element] | -| array_flow.rb:380:9:380:17 | call to drop [element 1] | array_flow.rb:380:5:380:5 | b [element 1] | -| array_flow.rb:380:9:380:17 | call to drop [element] | array_flow.rb:380:5:380:5 | b [element] | -| array_flow.rb:381:10:381:10 | b [element 1] | array_flow.rb:381:10:381:13 | ...[...] | -| array_flow.rb:381:10:381:10 | b [element] | array_flow.rb:381:10:381:13 | ...[...] | -| array_flow.rb:382:5:382:5 | c [element] | array_flow.rb:383:10:383:10 | c [element] | -| array_flow.rb:382:9:382:9 | b [element] | array_flow.rb:382:9:382:19 | call to drop [element] | -| array_flow.rb:382:9:382:19 | call to drop [element] | array_flow.rb:382:5:382:5 | c [element] | -| array_flow.rb:383:10:383:10 | c [element] | array_flow.rb:383:10:383:13 | ...[...] | -| array_flow.rb:387:5:387:5 | a [element 2] | array_flow.rb:388:9:388:9 | a [element 2] | -| array_flow.rb:387:5:387:5 | a [element 3] | array_flow.rb:388:9:388:9 | a [element 3] | -| array_flow.rb:387:16:387:27 | call to source | array_flow.rb:387:5:387:5 | a [element 2] | -| array_flow.rb:387:30:387:41 | call to source | array_flow.rb:387:5:387:5 | a [element 3] | -| array_flow.rb:388:5:388:5 | b [element] | array_flow.rb:391:10:391:10 | b [element] | -| array_flow.rb:388:9:388:9 | a [element 2] | array_flow.rb:388:9:390:7 | call to drop_while [element] | -| array_flow.rb:388:9:388:9 | a [element 2] | array_flow.rb:388:26:388:26 | x | -| array_flow.rb:388:9:388:9 | a [element 3] | array_flow.rb:388:9:390:7 | call to drop_while [element] | -| array_flow.rb:388:9:388:9 | a [element 3] | array_flow.rb:388:26:388:26 | x | -| array_flow.rb:388:9:390:7 | call to drop_while [element] | array_flow.rb:388:5:388:5 | b [element] | -| array_flow.rb:388:26:388:26 | x | array_flow.rb:389:14:389:14 | x | -| array_flow.rb:391:10:391:10 | b [element] | array_flow.rb:391:10:391:13 | ...[...] | -| array_flow.rb:395:5:395:5 | a [element 2] | array_flow.rb:396:9:396:9 | a [element 2] | -| array_flow.rb:395:16:395:25 | call to source | array_flow.rb:395:5:395:5 | a [element 2] | -| array_flow.rb:396:5:396:5 | b [element 2] | array_flow.rb:399:10:399:10 | b [element 2] | -| array_flow.rb:396:9:396:9 | a [element 2] | array_flow.rb:396:9:398:7 | call to each [element 2] | -| array_flow.rb:396:9:396:9 | a [element 2] | array_flow.rb:396:20:396:20 | x | -| array_flow.rb:396:9:398:7 | call to each [element 2] | array_flow.rb:396:5:396:5 | b [element 2] | -| array_flow.rb:396:20:396:20 | x | array_flow.rb:397:14:397:14 | x | -| array_flow.rb:399:10:399:10 | b [element 2] | array_flow.rb:399:10:399:13 | ...[...] | -| array_flow.rb:403:5:403:5 | a [element 2] | array_flow.rb:404:18:404:18 | a [element 2] | -| array_flow.rb:403:16:403:25 | call to source | array_flow.rb:403:5:403:5 | a [element 2] | -| array_flow.rb:404:5:404:5 | b [element 2] | array_flow.rb:408:10:408:10 | b [element 2] | -| array_flow.rb:404:9:406:7 | [post] { ... } [captured x] | array_flow.rb:407:10:407:10 | x | -| array_flow.rb:404:9:406:7 | __synth__0__1 | array_flow.rb:405:14:405:14 | x | -| array_flow.rb:404:18:404:18 | a [element 2] | array_flow.rb:404:5:404:5 | b [element 2] | -| array_flow.rb:404:18:404:18 | a [element 2] | array_flow.rb:404:9:406:7 | [post] { ... } [captured x] | -| array_flow.rb:404:18:404:18 | a [element 2] | array_flow.rb:404:9:406:7 | __synth__0__1 | -| array_flow.rb:408:10:408:10 | b [element 2] | array_flow.rb:408:10:408:13 | ...[...] | -| array_flow.rb:412:5:412:5 | a [element 2] | array_flow.rb:413:5:413:5 | a [element 2] | -| array_flow.rb:412:16:412:25 | call to source | array_flow.rb:412:5:412:5 | a [element 2] | -| array_flow.rb:413:5:413:5 | a [element 2] | array_flow.rb:413:24:413:24 | x [element] | -| array_flow.rb:413:24:413:24 | x [element] | array_flow.rb:414:15:414:15 | x [element] | -| array_flow.rb:414:15:414:15 | x [element] | array_flow.rb:414:15:414:18 | ...[...] | -| array_flow.rb:414:15:414:18 | ...[...] | array_flow.rb:414:14:414:19 | ( ... ) | -| array_flow.rb:419:5:419:5 | a [element 2] | array_flow.rb:420:9:420:9 | a [element 2] | -| array_flow.rb:419:16:419:25 | call to source | array_flow.rb:419:5:419:5 | a [element 2] | -| array_flow.rb:420:5:420:5 | b [element 2] | array_flow.rb:423:10:423:10 | b [element 2] | -| array_flow.rb:420:9:420:9 | a [element 2] | array_flow.rb:420:9:422:7 | call to each_entry [element 2] | -| array_flow.rb:420:9:420:9 | a [element 2] | array_flow.rb:420:26:420:26 | x | -| array_flow.rb:420:9:422:7 | call to each_entry [element 2] | array_flow.rb:420:5:420:5 | b [element 2] | -| array_flow.rb:420:26:420:26 | x | array_flow.rb:421:14:421:14 | x | -| array_flow.rb:423:10:423:10 | b [element 2] | array_flow.rb:423:10:423:13 | ...[...] | -| array_flow.rb:427:5:427:5 | a [element 2] | array_flow.rb:428:9:428:9 | a [element 2] | -| array_flow.rb:427:16:427:25 | call to source | array_flow.rb:427:5:427:5 | a [element 2] | -| array_flow.rb:428:5:428:5 | b [element 2] | array_flow.rb:431:10:431:10 | b [element 2] | -| array_flow.rb:428:9:428:9 | a [element 2] | array_flow.rb:428:9:430:7 | call to each_index [element 2] | -| array_flow.rb:428:9:430:7 | call to each_index [element 2] | array_flow.rb:428:5:428:5 | b [element 2] | -| array_flow.rb:431:10:431:10 | b [element 2] | array_flow.rb:431:10:431:13 | ...[...] | -| array_flow.rb:435:5:435:5 | a [element 3] | array_flow.rb:436:5:436:5 | a [element 3] | -| array_flow.rb:435:19:435:28 | call to source | array_flow.rb:435:5:435:5 | a [element 3] | -| array_flow.rb:436:5:436:5 | a [element 3] | array_flow.rb:436:25:436:25 | x [element] | -| array_flow.rb:436:25:436:25 | x [element] | array_flow.rb:437:14:437:14 | x [element] | -| array_flow.rb:437:14:437:14 | x [element] | array_flow.rb:437:14:437:17 | ...[...] | -| array_flow.rb:442:5:442:5 | a [element 3] | array_flow.rb:443:9:443:9 | a [element 3] | -| array_flow.rb:442:19:442:28 | call to source | array_flow.rb:442:5:442:5 | a [element 3] | -| array_flow.rb:443:5:443:5 | b [element 3] | array_flow.rb:447:10:447:10 | b [element 3] | -| array_flow.rb:443:9:443:9 | a [element 3] | array_flow.rb:443:9:446:7 | call to each_with_index [element 3] | -| array_flow.rb:443:9:443:9 | a [element 3] | array_flow.rb:443:31:443:31 | x | -| array_flow.rb:443:9:446:7 | call to each_with_index [element 3] | array_flow.rb:443:5:443:5 | b [element 3] | -| array_flow.rb:443:31:443:31 | x | array_flow.rb:444:14:444:14 | x | -| array_flow.rb:447:10:447:10 | b [element 3] | array_flow.rb:447:10:447:13 | ...[...] | -| array_flow.rb:451:5:451:5 | a [element 3] | array_flow.rb:452:9:452:9 | a [element 3] | -| array_flow.rb:451:19:451:30 | call to source | array_flow.rb:451:5:451:5 | a [element 3] | -| array_flow.rb:452:5:452:5 | b | array_flow.rb:456:10:456:10 | b | -| array_flow.rb:452:9:452:9 | a [element 3] | array_flow.rb:452:46:452:46 | x | -| array_flow.rb:452:9:455:7 | call to each_with_object | array_flow.rb:452:5:452:5 | b | -| array_flow.rb:452:28:452:39 | call to source | array_flow.rb:452:9:455:7 | call to each_with_object | -| array_flow.rb:452:28:452:39 | call to source | array_flow.rb:452:48:452:48 | a | -| array_flow.rb:452:46:452:46 | x | array_flow.rb:453:14:453:14 | x | -| array_flow.rb:452:48:452:48 | a | array_flow.rb:454:14:454:14 | a | -| array_flow.rb:460:5:460:5 | a [element 3] | array_flow.rb:461:9:461:9 | a [element 3] | -| array_flow.rb:460:19:460:28 | call to source | array_flow.rb:460:5:460:5 | a [element 3] | -| array_flow.rb:461:5:461:5 | b [element 3] | array_flow.rb:462:10:462:10 | b [element 3] | -| array_flow.rb:461:9:461:9 | a [element 3] | array_flow.rb:461:9:461:17 | call to entries [element 3] | -| array_flow.rb:461:9:461:17 | call to entries [element 3] | array_flow.rb:461:5:461:5 | b [element 3] | -| array_flow.rb:462:10:462:10 | b [element 3] | array_flow.rb:462:10:462:13 | ...[...] | -| array_flow.rb:466:5:466:5 | a [element 3] | array_flow.rb:467:9:467:9 | a [element 3] | -| array_flow.rb:466:5:466:5 | a [element 3] | array_flow.rb:471:9:471:9 | a [element 3] | -| array_flow.rb:466:5:466:5 | a [element 3] | array_flow.rb:473:9:473:9 | a [element 3] | -| array_flow.rb:466:5:466:5 | a [element 3] | array_flow.rb:477:9:477:9 | a [element 3] | -| array_flow.rb:466:5:466:5 | a [element 4] | array_flow.rb:467:9:467:9 | a [element 4] | -| array_flow.rb:466:5:466:5 | a [element 4] | array_flow.rb:477:9:477:9 | a [element 4] | -| array_flow.rb:466:19:466:30 | call to source | array_flow.rb:466:5:466:5 | a [element 3] | -| array_flow.rb:466:33:466:44 | call to source | array_flow.rb:466:5:466:5 | a [element 4] | -| array_flow.rb:467:5:467:5 | b | array_flow.rb:470:10:470:10 | b | -| array_flow.rb:467:9:467:9 | a [element 3] | array_flow.rb:467:9:469:7 | call to fetch | -| array_flow.rb:467:9:467:9 | a [element 4] | array_flow.rb:467:9:469:7 | call to fetch | -| array_flow.rb:467:9:469:7 | call to fetch | array_flow.rb:467:5:467:5 | b | -| array_flow.rb:467:17:467:28 | call to source | array_flow.rb:467:35:467:35 | x | -| array_flow.rb:467:35:467:35 | x | array_flow.rb:468:14:468:14 | x | -| array_flow.rb:471:5:471:5 | b | array_flow.rb:472:10:472:10 | b | -| array_flow.rb:471:9:471:9 | a [element 3] | array_flow.rb:471:9:471:18 | call to fetch | -| array_flow.rb:471:9:471:18 | call to fetch | array_flow.rb:471:5:471:5 | b | -| array_flow.rb:473:5:473:5 | b | array_flow.rb:474:10:474:10 | b | -| array_flow.rb:473:9:473:9 | a [element 3] | array_flow.rb:473:9:473:32 | call to fetch | -| array_flow.rb:473:9:473:32 | call to fetch | array_flow.rb:473:5:473:5 | b | -| array_flow.rb:473:20:473:31 | call to source | array_flow.rb:473:9:473:32 | call to fetch | -| array_flow.rb:475:5:475:5 | b | array_flow.rb:476:10:476:10 | b | -| array_flow.rb:475:9:475:34 | call to fetch | array_flow.rb:475:5:475:5 | b | -| array_flow.rb:475:22:475:33 | call to source | array_flow.rb:475:9:475:34 | call to fetch | -| array_flow.rb:477:5:477:5 | b | array_flow.rb:478:10:478:10 | b | -| array_flow.rb:477:9:477:9 | a [element 3] | array_flow.rb:477:9:477:32 | call to fetch | -| array_flow.rb:477:9:477:9 | a [element 4] | array_flow.rb:477:9:477:32 | call to fetch | -| array_flow.rb:477:9:477:32 | call to fetch | array_flow.rb:477:5:477:5 | b | -| array_flow.rb:477:20:477:31 | call to source | array_flow.rb:477:9:477:32 | call to fetch | -| array_flow.rb:482:5:482:5 | a [element 3] | array_flow.rb:484:10:484:10 | a [element 3] | -| array_flow.rb:482:19:482:30 | call to source | array_flow.rb:482:5:482:5 | a [element 3] | -| array_flow.rb:483:5:483:5 | [post] a [element] | array_flow.rb:484:10:484:10 | a [element] | -| array_flow.rb:483:12:483:23 | call to source | array_flow.rb:483:5:483:5 | [post] a [element] | -| array_flow.rb:484:10:484:10 | a [element 3] | array_flow.rb:484:10:484:13 | ...[...] | -| array_flow.rb:484:10:484:10 | a [element] | array_flow.rb:484:10:484:13 | ...[...] | -| array_flow.rb:485:5:485:5 | [post] a [element] | array_flow.rb:486:10:486:10 | a [element] | -| array_flow.rb:485:12:485:23 | call to source | array_flow.rb:485:5:485:5 | [post] a [element] | -| array_flow.rb:486:10:486:10 | a [element] | array_flow.rb:486:10:486:13 | ...[...] | -| array_flow.rb:487:5:487:5 | [post] a [element] | array_flow.rb:490:10:490:10 | a [element] | -| array_flow.rb:487:5:487:5 | [post] a [element] | array_flow.rb:494:10:494:10 | a [element] | -| array_flow.rb:488:9:488:20 | call to source | array_flow.rb:487:5:487:5 | [post] a [element] | -| array_flow.rb:490:10:490:10 | a [element] | array_flow.rb:490:10:490:13 | ...[...] | -| array_flow.rb:491:5:491:5 | [post] a [element] | array_flow.rb:494:10:494:10 | a [element] | -| array_flow.rb:492:9:492:20 | call to source | array_flow.rb:491:5:491:5 | [post] a [element] | -| array_flow.rb:494:10:494:10 | a [element] | array_flow.rb:494:10:494:13 | ...[...] | -| array_flow.rb:498:5:498:5 | a [element 3] | array_flow.rb:499:9:499:9 | a [element 3] | -| array_flow.rb:498:19:498:28 | call to source | array_flow.rb:498:5:498:5 | a [element 3] | -| array_flow.rb:499:5:499:5 | b [element] | array_flow.rb:502:10:502:10 | b [element] | -| array_flow.rb:499:9:499:9 | a [element 3] | array_flow.rb:499:9:501:7 | call to filter [element] | -| array_flow.rb:499:9:499:9 | a [element 3] | array_flow.rb:499:22:499:22 | x | -| array_flow.rb:499:9:501:7 | call to filter [element] | array_flow.rb:499:5:499:5 | b [element] | -| array_flow.rb:499:22:499:22 | x | array_flow.rb:500:14:500:14 | x | -| array_flow.rb:502:10:502:10 | b [element] | array_flow.rb:502:10:502:13 | ...[...] | -| array_flow.rb:506:5:506:5 | a [element 3] | array_flow.rb:507:9:507:9 | a [element 3] | -| array_flow.rb:506:19:506:28 | call to source | array_flow.rb:506:5:506:5 | a [element 3] | -| array_flow.rb:507:5:507:5 | b [element] | array_flow.rb:511:10:511:10 | b [element] | -| array_flow.rb:507:9:507:9 | a [element 3] | array_flow.rb:507:9:510:7 | call to filter_map [element] | -| array_flow.rb:507:9:507:9 | a [element 3] | array_flow.rb:507:26:507:26 | x | -| array_flow.rb:507:9:510:7 | call to filter_map [element] | array_flow.rb:507:5:507:5 | b [element] | -| array_flow.rb:507:26:507:26 | x | array_flow.rb:508:14:508:14 | x | -| array_flow.rb:511:10:511:10 | b [element] | array_flow.rb:511:10:511:13 | ...[...] | -| array_flow.rb:518:5:518:5 | d [element] | array_flow.rb:521:10:521:10 | d [element] | -| array_flow.rb:518:9:520:7 | call to filter_map [element] | array_flow.rb:518:5:518:5 | d [element] | -| array_flow.rb:519:9:519:20 | call to source | array_flow.rb:518:9:520:7 | call to filter_map [element] | -| array_flow.rb:521:10:521:10 | d [element] | array_flow.rb:521:10:521:13 | ...[...] | -| array_flow.rb:525:5:525:5 | a [element 3] | array_flow.rb:526:9:526:9 | a [element 3] | -| array_flow.rb:525:19:525:28 | call to source | array_flow.rb:525:5:525:5 | a [element 3] | -| array_flow.rb:526:5:526:5 | b [element] | array_flow.rb:531:10:531:10 | b [element] | -| array_flow.rb:526:9:526:9 | [post] a [element] | array_flow.rb:530:10:530:10 | a [element] | -| array_flow.rb:526:9:526:9 | a [element 3] | array_flow.rb:526:9:526:9 | [post] a [element] | -| array_flow.rb:526:9:526:9 | a [element 3] | array_flow.rb:526:9:529:7 | call to filter! [element] | -| array_flow.rb:526:9:526:9 | a [element 3] | array_flow.rb:526:23:526:23 | x | -| array_flow.rb:526:9:529:7 | call to filter! [element] | array_flow.rb:526:5:526:5 | b [element] | -| array_flow.rb:526:23:526:23 | x | array_flow.rb:527:14:527:14 | x | -| array_flow.rb:530:10:530:10 | a [element] | array_flow.rb:530:10:530:13 | ...[...] | -| array_flow.rb:531:10:531:10 | b [element] | array_flow.rb:531:10:531:13 | ...[...] | -| array_flow.rb:535:5:535:5 | a [element 3] | array_flow.rb:536:9:536:9 | a [element 3] | -| array_flow.rb:535:19:535:30 | call to source | array_flow.rb:535:5:535:5 | a [element 3] | -| array_flow.rb:536:5:536:5 | b | array_flow.rb:539:10:539:10 | b | -| array_flow.rb:536:9:536:9 | a [element 3] | array_flow.rb:536:9:538:7 | call to find | -| array_flow.rb:536:9:536:9 | a [element 3] | array_flow.rb:536:41:536:41 | x | -| array_flow.rb:536:9:538:7 | call to find | array_flow.rb:536:5:536:5 | b | -| array_flow.rb:536:21:536:32 | call to source | array_flow.rb:536:9:538:7 | call to find | -| array_flow.rb:536:41:536:41 | x | array_flow.rb:537:14:537:14 | x | -| array_flow.rb:543:5:543:5 | a [element 3] | array_flow.rb:544:9:544:9 | a [element 3] | -| array_flow.rb:543:19:543:28 | call to source | array_flow.rb:543:5:543:5 | a [element 3] | -| array_flow.rb:544:5:544:5 | b [element] | array_flow.rb:547:10:547:10 | b [element] | -| array_flow.rb:544:9:544:9 | a [element 3] | array_flow.rb:544:9:546:7 | call to find_all [element] | -| array_flow.rb:544:9:544:9 | a [element 3] | array_flow.rb:544:24:544:24 | x | -| array_flow.rb:544:9:546:7 | call to find_all [element] | array_flow.rb:544:5:544:5 | b [element] | -| array_flow.rb:544:24:544:24 | x | array_flow.rb:545:14:545:14 | x | -| array_flow.rb:547:10:547:10 | b [element] | array_flow.rb:547:10:547:13 | ...[...] | -| array_flow.rb:551:5:551:5 | a [element 3] | array_flow.rb:552:5:552:5 | a [element 3] | -| array_flow.rb:551:19:551:28 | call to source | array_flow.rb:551:5:551:5 | a [element 3] | -| array_flow.rb:552:5:552:5 | a [element 3] | array_flow.rb:552:22:552:22 | x | -| array_flow.rb:552:22:552:22 | x | array_flow.rb:553:14:553:14 | x | -| array_flow.rb:558:5:558:5 | a [element 0] | array_flow.rb:560:10:560:10 | a [element 0] | -| array_flow.rb:558:5:558:5 | a [element 0] | array_flow.rb:561:9:561:9 | a [element 0] | -| array_flow.rb:558:5:558:5 | a [element 0] | array_flow.rb:564:9:564:9 | a [element 0] | -| array_flow.rb:558:5:558:5 | a [element 3] | array_flow.rb:564:9:564:9 | a [element 3] | -| array_flow.rb:558:10:558:21 | call to source | array_flow.rb:558:5:558:5 | a [element 0] | -| array_flow.rb:558:30:558:41 | call to source | array_flow.rb:558:5:558:5 | a [element 3] | -| array_flow.rb:559:5:559:5 | [post] a [element] | array_flow.rb:560:10:560:10 | a [element] | -| array_flow.rb:559:5:559:5 | [post] a [element] | array_flow.rb:561:9:561:9 | a [element] | -| array_flow.rb:559:5:559:5 | [post] a [element] | array_flow.rb:564:9:564:9 | a [element] | -| array_flow.rb:559:12:559:23 | call to source | array_flow.rb:559:5:559:5 | [post] a [element] | -| array_flow.rb:560:10:560:10 | a [element 0] | array_flow.rb:560:10:560:16 | call to first | -| array_flow.rb:560:10:560:10 | a [element] | array_flow.rb:560:10:560:16 | call to first | -| array_flow.rb:561:5:561:5 | b [element 0] | array_flow.rb:562:10:562:10 | b [element 0] | -| array_flow.rb:561:5:561:5 | b [element] | array_flow.rb:562:10:562:10 | b [element] | -| array_flow.rb:561:5:561:5 | b [element] | array_flow.rb:563:10:563:10 | b [element] | -| array_flow.rb:561:9:561:9 | a [element 0] | array_flow.rb:561:9:561:18 | call to first [element 0] | -| array_flow.rb:561:9:561:9 | a [element] | array_flow.rb:561:9:561:18 | call to first [element] | -| array_flow.rb:561:9:561:18 | call to first [element 0] | array_flow.rb:561:5:561:5 | b [element 0] | -| array_flow.rb:561:9:561:18 | call to first [element] | array_flow.rb:561:5:561:5 | b [element] | -| array_flow.rb:562:10:562:10 | b [element 0] | array_flow.rb:562:10:562:13 | ...[...] | -| array_flow.rb:562:10:562:10 | b [element] | array_flow.rb:562:10:562:13 | ...[...] | -| array_flow.rb:563:10:563:10 | b [element] | array_flow.rb:563:10:563:13 | ...[...] | -| array_flow.rb:564:5:564:5 | c [element 0] | array_flow.rb:565:10:565:10 | c [element 0] | -| array_flow.rb:564:5:564:5 | c [element 3] | array_flow.rb:566:10:566:10 | c [element 3] | -| array_flow.rb:564:5:564:5 | c [element] | array_flow.rb:565:10:565:10 | c [element] | -| array_flow.rb:564:5:564:5 | c [element] | array_flow.rb:566:10:566:10 | c [element] | -| array_flow.rb:564:9:564:9 | a [element 0] | array_flow.rb:564:9:564:18 | call to first [element 0] | -| array_flow.rb:564:9:564:9 | a [element 3] | array_flow.rb:564:9:564:18 | call to first [element 3] | -| array_flow.rb:564:9:564:9 | a [element] | array_flow.rb:564:9:564:18 | call to first [element] | -| array_flow.rb:564:9:564:18 | call to first [element 0] | array_flow.rb:564:5:564:5 | c [element 0] | -| array_flow.rb:564:9:564:18 | call to first [element 3] | array_flow.rb:564:5:564:5 | c [element 3] | -| array_flow.rb:564:9:564:18 | call to first [element] | array_flow.rb:564:5:564:5 | c [element] | -| array_flow.rb:565:10:565:10 | c [element 0] | array_flow.rb:565:10:565:13 | ...[...] | -| array_flow.rb:565:10:565:10 | c [element] | array_flow.rb:565:10:565:13 | ...[...] | -| array_flow.rb:566:10:566:10 | c [element 3] | array_flow.rb:566:10:566:13 | ...[...] | -| array_flow.rb:566:10:566:10 | c [element] | array_flow.rb:566:10:566:13 | ...[...] | -| array_flow.rb:570:5:570:5 | a [element 2] | array_flow.rb:571:9:571:9 | a [element 2] | -| array_flow.rb:570:5:570:5 | a [element 2] | array_flow.rb:576:9:576:9 | a [element 2] | -| array_flow.rb:570:16:570:27 | call to source | array_flow.rb:570:5:570:5 | a [element 2] | -| array_flow.rb:571:5:571:5 | b [element] | array_flow.rb:575:10:575:10 | b [element] | -| array_flow.rb:571:9:571:9 | a [element 2] | array_flow.rb:571:9:574:7 | call to flat_map [element] | -| array_flow.rb:571:9:571:9 | a [element 2] | array_flow.rb:571:24:571:24 | x | -| array_flow.rb:571:9:574:7 | call to flat_map [element] | array_flow.rb:571:5:571:5 | b [element] | -| array_flow.rb:571:24:571:24 | x | array_flow.rb:572:14:572:14 | x | -| array_flow.rb:573:13:573:24 | call to source | array_flow.rb:571:9:574:7 | call to flat_map [element] | -| array_flow.rb:575:10:575:10 | b [element] | array_flow.rb:575:10:575:13 | ...[...] | -| array_flow.rb:576:5:576:5 | b [element] | array_flow.rb:580:10:580:10 | b [element] | -| array_flow.rb:576:9:576:9 | a [element 2] | array_flow.rb:576:24:576:24 | x | -| array_flow.rb:576:9:579:7 | call to flat_map [element] | array_flow.rb:576:5:576:5 | b [element] | -| array_flow.rb:576:24:576:24 | x | array_flow.rb:577:14:577:14 | x | -| array_flow.rb:578:9:578:20 | call to source | array_flow.rb:576:9:579:7 | call to flat_map [element] | -| array_flow.rb:580:10:580:10 | b [element] | array_flow.rb:580:10:580:13 | ...[...] | -| array_flow.rb:584:5:584:5 | a [element 2, element 1] | array_flow.rb:585:9:585:9 | a [element 2, element 1] | -| array_flow.rb:584:20:584:29 | call to source | array_flow.rb:584:5:584:5 | a [element 2, element 1] | -| array_flow.rb:585:5:585:5 | b [element] | array_flow.rb:586:10:586:10 | b [element] | -| array_flow.rb:585:9:585:9 | a [element 2, element 1] | array_flow.rb:585:9:585:17 | call to flatten [element] | -| array_flow.rb:585:9:585:17 | call to flatten [element] | array_flow.rb:585:5:585:5 | b [element] | -| array_flow.rb:586:10:586:10 | b [element] | array_flow.rb:586:10:586:13 | ...[...] | -| array_flow.rb:590:5:590:5 | a [element 2, element 1] | array_flow.rb:591:10:591:10 | a [element 2, element 1] | -| array_flow.rb:590:5:590:5 | a [element 2, element 1] | array_flow.rb:592:9:592:9 | a [element 2, element 1] | -| array_flow.rb:590:20:590:29 | call to source | array_flow.rb:590:5:590:5 | a [element 2, element 1] | -| array_flow.rb:591:10:591:10 | a [element 2, element 1] | array_flow.rb:591:10:591:13 | ...[...] [element 1] | -| array_flow.rb:591:10:591:13 | ...[...] [element 1] | array_flow.rb:591:10:591:16 | ...[...] | -| array_flow.rb:592:5:592:5 | b [element, element 1] | array_flow.rb:596:10:596:10 | b [element, element 1] | -| array_flow.rb:592:5:592:5 | b [element] | array_flow.rb:595:10:595:10 | b [element] | -| array_flow.rb:592:9:592:9 | [post] a [element, element 1] | array_flow.rb:594:10:594:10 | a [element, element 1] | -| array_flow.rb:592:9:592:9 | [post] a [element] | array_flow.rb:593:10:593:10 | a [element] | -| array_flow.rb:592:9:592:9 | a [element 2, element 1] | array_flow.rb:592:9:592:9 | [post] a [element, element 1] | -| array_flow.rb:592:9:592:9 | a [element 2, element 1] | array_flow.rb:592:9:592:9 | [post] a [element] | -| array_flow.rb:592:9:592:9 | a [element 2, element 1] | array_flow.rb:592:9:592:18 | call to flatten! [element, element 1] | -| array_flow.rb:592:9:592:9 | a [element 2, element 1] | array_flow.rb:592:9:592:18 | call to flatten! [element] | -| array_flow.rb:592:9:592:18 | call to flatten! [element, element 1] | array_flow.rb:592:5:592:5 | b [element, element 1] | -| array_flow.rb:592:9:592:18 | call to flatten! [element] | array_flow.rb:592:5:592:5 | b [element] | -| array_flow.rb:593:10:593:10 | a [element] | array_flow.rb:593:10:593:13 | ...[...] | -| array_flow.rb:594:10:594:10 | a [element, element 1] | array_flow.rb:594:10:594:13 | ...[...] [element 1] | -| array_flow.rb:594:10:594:13 | ...[...] [element 1] | array_flow.rb:594:10:594:16 | ...[...] | -| array_flow.rb:595:10:595:10 | b [element] | array_flow.rb:595:10:595:13 | ...[...] | -| array_flow.rb:596:10:596:10 | b [element, element 1] | array_flow.rb:596:10:596:13 | ...[...] [element 1] | -| array_flow.rb:596:10:596:13 | ...[...] [element 1] | array_flow.rb:596:10:596:16 | ...[...] | -| array_flow.rb:600:5:600:5 | a [element 3] | array_flow.rb:601:9:601:9 | a [element 3] | -| array_flow.rb:600:5:600:5 | a [element 3] | array_flow.rb:603:9:603:9 | a [element 3] | -| array_flow.rb:600:19:600:30 | call to source | array_flow.rb:600:5:600:5 | a [element 3] | -| array_flow.rb:601:5:601:5 | b [element] | array_flow.rb:602:10:602:10 | b [element] | -| array_flow.rb:601:9:601:9 | a [element 3] | array_flow.rb:601:9:601:20 | call to grep [element] | -| array_flow.rb:601:9:601:20 | call to grep [element] | array_flow.rb:601:5:601:5 | b [element] | -| array_flow.rb:602:10:602:10 | b [element] | array_flow.rb:602:10:602:13 | ...[...] | -| array_flow.rb:603:5:603:5 | b [element] | array_flow.rb:607:10:607:10 | b [element] | -| array_flow.rb:603:9:603:9 | a [element 3] | array_flow.rb:603:26:603:26 | x | -| array_flow.rb:603:9:606:7 | call to grep [element] | array_flow.rb:603:5:603:5 | b [element] | -| array_flow.rb:603:26:603:26 | x | array_flow.rb:604:14:604:14 | x | -| array_flow.rb:605:9:605:20 | call to source | array_flow.rb:603:9:606:7 | call to grep [element] | -| array_flow.rb:607:10:607:10 | b [element] | array_flow.rb:607:10:607:13 | ...[...] | -| array_flow.rb:611:5:611:5 | a [element 3] | array_flow.rb:612:9:612:9 | a [element 3] | -| array_flow.rb:611:5:611:5 | a [element 3] | array_flow.rb:614:9:614:9 | a [element 3] | -| array_flow.rb:611:19:611:30 | call to source | array_flow.rb:611:5:611:5 | a [element 3] | -| array_flow.rb:612:5:612:5 | b [element] | array_flow.rb:613:10:613:10 | b [element] | -| array_flow.rb:612:9:612:9 | a [element 3] | array_flow.rb:612:9:612:21 | call to grep_v [element] | -| array_flow.rb:612:9:612:21 | call to grep_v [element] | array_flow.rb:612:5:612:5 | b [element] | -| array_flow.rb:613:10:613:10 | b [element] | array_flow.rb:613:10:613:13 | ...[...] | -| array_flow.rb:614:5:614:5 | b [element] | array_flow.rb:618:10:618:10 | b [element] | -| array_flow.rb:614:9:614:9 | a [element 3] | array_flow.rb:614:27:614:27 | x | -| array_flow.rb:614:9:617:7 | call to grep_v [element] | array_flow.rb:614:5:614:5 | b [element] | -| array_flow.rb:614:27:614:27 | x | array_flow.rb:615:14:615:14 | x | -| array_flow.rb:616:9:616:20 | call to source | array_flow.rb:614:9:617:7 | call to grep_v [element] | -| array_flow.rb:618:10:618:10 | b [element] | array_flow.rb:618:10:618:13 | ...[...] | -| array_flow.rb:622:5:622:5 | a [element 3] | array_flow.rb:623:9:623:9 | a [element 3] | -| array_flow.rb:622:19:622:30 | call to source | array_flow.rb:622:5:622:5 | a [element 3] | -| array_flow.rb:623:9:623:9 | a [element 3] | array_flow.rb:623:24:623:24 | x | -| array_flow.rb:623:24:623:24 | x | array_flow.rb:624:14:624:14 | x | -| array_flow.rb:631:5:631:5 | a [element 3] | array_flow.rb:632:5:632:5 | a [element 3] | -| array_flow.rb:631:19:631:28 | call to source | array_flow.rb:631:5:631:5 | a [element 3] | -| array_flow.rb:632:5:632:5 | a [element 3] | array_flow.rb:632:17:632:17 | x | -| array_flow.rb:632:17:632:17 | x | array_flow.rb:633:14:633:14 | x | -| array_flow.rb:638:5:638:5 | a [element 0] | array_flow.rb:639:9:639:9 | a [element 0] | -| array_flow.rb:638:5:638:5 | a [element 0] | array_flow.rb:645:9:645:9 | a [element 0] | -| array_flow.rb:638:5:638:5 | a [element 2] | array_flow.rb:639:9:639:9 | a [element 2] | -| array_flow.rb:638:5:638:5 | a [element 2] | array_flow.rb:645:9:645:9 | a [element 2] | -| array_flow.rb:638:10:638:21 | call to source | array_flow.rb:638:5:638:5 | a [element 0] | -| array_flow.rb:638:27:638:38 | call to source | array_flow.rb:638:5:638:5 | a [element 2] | -| array_flow.rb:639:5:639:5 | b | array_flow.rb:644:10:644:10 | b | -| array_flow.rb:639:9:639:9 | a [element 0] | array_flow.rb:639:22:639:22 | x | -| array_flow.rb:639:9:639:9 | a [element 2] | array_flow.rb:639:25:639:25 | y | -| array_flow.rb:639:9:643:7 | call to inject | array_flow.rb:639:5:639:5 | b | -| array_flow.rb:639:22:639:22 | x | array_flow.rb:640:14:640:14 | x | -| array_flow.rb:639:25:639:25 | y | array_flow.rb:641:14:641:14 | y | -| array_flow.rb:642:9:642:19 | call to source | array_flow.rb:639:9:643:7 | call to inject | -| array_flow.rb:645:5:645:5 | c | array_flow.rb:650:10:650:10 | c | -| array_flow.rb:645:9:645:9 | a [element 0] | array_flow.rb:645:28:645:28 | y | -| array_flow.rb:645:9:645:9 | a [element 2] | array_flow.rb:645:28:645:28 | y | -| array_flow.rb:645:9:649:7 | call to inject | array_flow.rb:645:5:645:5 | c | -| array_flow.rb:645:28:645:28 | y | array_flow.rb:647:14:647:14 | y | -| array_flow.rb:648:9:648:19 | call to source | array_flow.rb:645:9:649:7 | call to inject | -| array_flow.rb:655:5:655:5 | a [element 2] | array_flow.rb:656:9:656:9 | a [element 2] | -| array_flow.rb:655:16:655:27 | call to source | array_flow.rb:655:5:655:5 | a [element 2] | -| array_flow.rb:656:5:656:5 | b [element 1] | array_flow.rb:663:10:663:10 | b [element 1] | -| array_flow.rb:656:5:656:5 | b [element 2] | array_flow.rb:664:10:664:10 | b [element 2] | -| array_flow.rb:656:5:656:5 | b [element 4] | array_flow.rb:666:10:666:10 | b [element 4] | -| array_flow.rb:656:9:656:9 | [post] a [element 1] | array_flow.rb:658:10:658:10 | a [element 1] | -| array_flow.rb:656:9:656:9 | [post] a [element 2] | array_flow.rb:659:10:659:10 | a [element 2] | -| array_flow.rb:656:9:656:9 | [post] a [element 4] | array_flow.rb:661:10:661:10 | a [element 4] | -| array_flow.rb:656:9:656:9 | a [element 2] | array_flow.rb:656:9:656:9 | [post] a [element 4] | -| array_flow.rb:656:9:656:9 | a [element 2] | array_flow.rb:656:9:656:47 | call to insert [element 4] | -| array_flow.rb:656:9:656:47 | call to insert [element 1] | array_flow.rb:656:5:656:5 | b [element 1] | -| array_flow.rb:656:9:656:47 | call to insert [element 2] | array_flow.rb:656:5:656:5 | b [element 2] | -| array_flow.rb:656:9:656:47 | call to insert [element 4] | array_flow.rb:656:5:656:5 | b [element 4] | -| array_flow.rb:656:21:656:32 | call to source | array_flow.rb:656:9:656:9 | [post] a [element 1] | -| array_flow.rb:656:21:656:32 | call to source | array_flow.rb:656:9:656:47 | call to insert [element 1] | -| array_flow.rb:656:35:656:46 | call to source | array_flow.rb:656:9:656:9 | [post] a [element 2] | -| array_flow.rb:656:35:656:46 | call to source | array_flow.rb:656:9:656:47 | call to insert [element 2] | -| array_flow.rb:658:10:658:10 | a [element 1] | array_flow.rb:658:10:658:13 | ...[...] | -| array_flow.rb:659:10:659:10 | a [element 2] | array_flow.rb:659:10:659:13 | ...[...] | -| array_flow.rb:661:10:661:10 | a [element 4] | array_flow.rb:661:10:661:13 | ...[...] | -| array_flow.rb:663:10:663:10 | b [element 1] | array_flow.rb:663:10:663:13 | ...[...] | -| array_flow.rb:664:10:664:10 | b [element 2] | array_flow.rb:664:10:664:13 | ...[...] | -| array_flow.rb:666:10:666:10 | b [element 4] | array_flow.rb:666:10:666:13 | ...[...] | -| array_flow.rb:669:5:669:5 | c [element 2] | array_flow.rb:670:9:670:9 | c [element 2] | -| array_flow.rb:669:16:669:27 | call to source | array_flow.rb:669:5:669:5 | c [element 2] | -| array_flow.rb:670:5:670:5 | d [element] | array_flow.rb:672:10:672:10 | d [element] | -| array_flow.rb:670:9:670:9 | [post] c [element] | array_flow.rb:671:10:671:10 | c [element] | -| array_flow.rb:670:9:670:9 | c [element 2] | array_flow.rb:670:9:670:9 | [post] c [element] | -| array_flow.rb:670:9:670:9 | c [element 2] | array_flow.rb:670:9:670:47 | call to insert [element] | -| array_flow.rb:670:9:670:47 | call to insert [element] | array_flow.rb:670:5:670:5 | d [element] | -| array_flow.rb:670:21:670:32 | call to source | array_flow.rb:670:9:670:9 | [post] c [element] | -| array_flow.rb:670:21:670:32 | call to source | array_flow.rb:670:9:670:47 | call to insert [element] | -| array_flow.rb:670:35:670:46 | call to source | array_flow.rb:670:9:670:9 | [post] c [element] | -| array_flow.rb:670:35:670:46 | call to source | array_flow.rb:670:9:670:47 | call to insert [element] | -| array_flow.rb:671:10:671:10 | c [element] | array_flow.rb:671:10:671:13 | ...[...] | -| array_flow.rb:672:10:672:10 | d [element] | array_flow.rb:672:10:672:13 | ...[...] | -| array_flow.rb:683:5:683:5 | a [element 2] | array_flow.rb:684:9:684:9 | a [element 2] | -| array_flow.rb:683:16:683:27 | call to source | array_flow.rb:683:5:683:5 | a [element 2] | -| array_flow.rb:684:5:684:5 | b [element] | array_flow.rb:685:10:685:10 | b [element] | -| array_flow.rb:684:9:684:9 | a [element 2] | array_flow.rb:684:9:684:60 | call to intersection [element] | -| array_flow.rb:684:9:684:60 | call to intersection [element] | array_flow.rb:684:5:684:5 | b [element] | -| array_flow.rb:684:31:684:42 | call to source | array_flow.rb:684:9:684:60 | call to intersection [element] | -| array_flow.rb:684:47:684:58 | call to source | array_flow.rb:684:9:684:60 | call to intersection [element] | -| array_flow.rb:685:10:685:10 | b [element] | array_flow.rb:685:10:685:13 | ...[...] | -| array_flow.rb:689:5:689:5 | a [element 2] | array_flow.rb:690:9:690:9 | a [element 2] | -| array_flow.rb:689:16:689:25 | call to source | array_flow.rb:689:5:689:5 | a [element 2] | -| array_flow.rb:690:5:690:5 | b [element] | array_flow.rb:695:10:695:10 | b [element] | -| array_flow.rb:690:9:690:9 | [post] a [element] | array_flow.rb:694:10:694:10 | a [element] | -| array_flow.rb:690:9:690:9 | a [element 2] | array_flow.rb:690:9:690:9 | [post] a [element] | -| array_flow.rb:690:9:690:9 | a [element 2] | array_flow.rb:690:9:693:7 | call to keep_if [element] | -| array_flow.rb:690:9:690:9 | a [element 2] | array_flow.rb:690:23:690:23 | x | -| array_flow.rb:690:9:693:7 | call to keep_if [element] | array_flow.rb:690:5:690:5 | b [element] | -| array_flow.rb:690:23:690:23 | x | array_flow.rb:691:14:691:14 | x | -| array_flow.rb:694:10:694:10 | a [element] | array_flow.rb:694:10:694:13 | ...[...] | -| array_flow.rb:695:10:695:10 | b [element] | array_flow.rb:695:10:695:13 | ...[...] | -| array_flow.rb:699:5:699:5 | a [element 2] | array_flow.rb:701:10:701:10 | a [element 2] | -| array_flow.rb:699:5:699:5 | a [element 2] | array_flow.rb:702:9:702:9 | a [element 2] | -| array_flow.rb:699:16:699:27 | call to source | array_flow.rb:699:5:699:5 | a [element 2] | -| array_flow.rb:700:5:700:5 | [post] a [element] | array_flow.rb:701:10:701:10 | a [element] | -| array_flow.rb:700:5:700:5 | [post] a [element] | array_flow.rb:702:9:702:9 | a [element] | -| array_flow.rb:700:12:700:23 | call to source | array_flow.rb:700:5:700:5 | [post] a [element] | -| array_flow.rb:701:10:701:10 | a [element 2] | array_flow.rb:701:10:701:15 | call to last | -| array_flow.rb:701:10:701:10 | a [element] | array_flow.rb:701:10:701:15 | call to last | -| array_flow.rb:702:5:702:5 | b [element] | array_flow.rb:703:10:703:10 | b [element] | -| array_flow.rb:702:5:702:5 | b [element] | array_flow.rb:704:10:704:10 | b [element] | -| array_flow.rb:702:9:702:9 | a [element 2] | array_flow.rb:702:9:702:17 | call to last [element] | -| array_flow.rb:702:9:702:9 | a [element] | array_flow.rb:702:9:702:17 | call to last [element] | -| array_flow.rb:702:9:702:17 | call to last [element] | array_flow.rb:702:5:702:5 | b [element] | -| array_flow.rb:703:10:703:10 | b [element] | array_flow.rb:703:10:703:13 | ...[...] | -| array_flow.rb:704:10:704:10 | b [element] | array_flow.rb:704:10:704:13 | ...[...] | -| array_flow.rb:708:5:708:5 | a [element 2] | array_flow.rb:709:9:709:9 | a [element 2] | -| array_flow.rb:708:16:708:27 | call to source | array_flow.rb:708:5:708:5 | a [element 2] | -| array_flow.rb:709:5:709:5 | b [element] | array_flow.rb:713:10:713:10 | b [element] | -| array_flow.rb:709:9:709:9 | a [element 2] | array_flow.rb:709:19:709:19 | x | -| array_flow.rb:709:9:712:7 | call to map [element] | array_flow.rb:709:5:709:5 | b [element] | -| array_flow.rb:709:19:709:19 | x | array_flow.rb:710:14:710:14 | x | -| array_flow.rb:711:9:711:19 | call to source | array_flow.rb:709:9:712:7 | call to map [element] | -| array_flow.rb:713:10:713:10 | b [element] | array_flow.rb:713:10:713:13 | ...[...] | -| array_flow.rb:717:5:717:5 | a [element 2] | array_flow.rb:718:9:718:9 | a [element 2] | -| array_flow.rb:717:16:717:27 | call to source | array_flow.rb:717:5:717:5 | a [element 2] | -| array_flow.rb:718:5:718:5 | b [element] | array_flow.rb:722:10:722:10 | b [element] | -| array_flow.rb:718:9:718:9 | a [element 2] | array_flow.rb:718:20:718:20 | x | -| array_flow.rb:718:9:721:7 | call to map! [element] | array_flow.rb:718:5:718:5 | b [element] | -| array_flow.rb:718:20:718:20 | x | array_flow.rb:719:14:719:14 | x | -| array_flow.rb:720:9:720:19 | call to source | array_flow.rb:718:9:721:7 | call to map! [element] | -| array_flow.rb:722:10:722:10 | b [element] | array_flow.rb:722:10:722:13 | ...[...] | -| array_flow.rb:726:5:726:5 | a [element 2] | array_flow.rb:729:9:729:9 | a [element 2] | -| array_flow.rb:726:5:726:5 | a [element 2] | array_flow.rb:733:9:733:9 | a [element 2] | -| array_flow.rb:726:5:726:5 | a [element 2] | array_flow.rb:737:9:737:9 | a [element 2] | -| array_flow.rb:726:5:726:5 | a [element 2] | array_flow.rb:745:9:745:9 | a [element 2] | -| array_flow.rb:726:16:726:25 | call to source | array_flow.rb:726:5:726:5 | a [element 2] | -| array_flow.rb:729:5:729:5 | b | array_flow.rb:730:10:730:10 | b | -| array_flow.rb:729:9:729:9 | a [element 2] | array_flow.rb:729:9:729:13 | call to max | -| array_flow.rb:729:9:729:13 | call to max | array_flow.rb:729:5:729:5 | b | -| array_flow.rb:733:5:733:5 | c [element] | array_flow.rb:734:10:734:10 | c [element] | -| array_flow.rb:733:9:733:9 | a [element 2] | array_flow.rb:733:9:733:16 | call to max [element] | -| array_flow.rb:733:9:733:16 | call to max [element] | array_flow.rb:733:5:733:5 | c [element] | -| array_flow.rb:734:10:734:10 | c [element] | array_flow.rb:734:10:734:13 | ...[...] | -| array_flow.rb:737:5:737:5 | d | array_flow.rb:742:10:742:10 | d | -| array_flow.rb:737:9:737:9 | a [element 2] | array_flow.rb:737:9:741:7 | call to max | -| array_flow.rb:737:9:737:9 | a [element 2] | array_flow.rb:737:19:737:19 | x | -| array_flow.rb:737:9:737:9 | a [element 2] | array_flow.rb:737:22:737:22 | y | -| array_flow.rb:737:9:741:7 | call to max | array_flow.rb:737:5:737:5 | d | -| array_flow.rb:737:19:737:19 | x | array_flow.rb:738:14:738:14 | x | -| array_flow.rb:737:22:737:22 | y | array_flow.rb:739:14:739:14 | y | -| array_flow.rb:745:5:745:5 | e [element] | array_flow.rb:750:10:750:10 | e [element] | -| array_flow.rb:745:9:745:9 | a [element 2] | array_flow.rb:745:9:749:7 | call to max [element] | -| array_flow.rb:745:9:745:9 | a [element 2] | array_flow.rb:745:22:745:22 | x | -| array_flow.rb:745:9:745:9 | a [element 2] | array_flow.rb:745:25:745:25 | y | -| array_flow.rb:745:9:749:7 | call to max [element] | array_flow.rb:745:5:745:5 | e [element] | -| array_flow.rb:745:22:745:22 | x | array_flow.rb:746:14:746:14 | x | -| array_flow.rb:745:25:745:25 | y | array_flow.rb:747:14:747:14 | y | -| array_flow.rb:750:10:750:10 | e [element] | array_flow.rb:750:10:750:13 | ...[...] | -| array_flow.rb:754:5:754:5 | a [element 2] | array_flow.rb:757:9:757:9 | a [element 2] | -| array_flow.rb:754:5:754:5 | a [element 2] | array_flow.rb:764:9:764:9 | a [element 2] | -| array_flow.rb:754:16:754:25 | call to source | array_flow.rb:754:5:754:5 | a [element 2] | -| array_flow.rb:757:5:757:5 | b | array_flow.rb:761:10:761:10 | b | -| array_flow.rb:757:9:757:9 | a [element 2] | array_flow.rb:757:9:760:7 | call to max_by | -| array_flow.rb:757:9:757:9 | a [element 2] | array_flow.rb:757:22:757:22 | x | -| array_flow.rb:757:9:760:7 | call to max_by | array_flow.rb:757:5:757:5 | b | -| array_flow.rb:757:22:757:22 | x | array_flow.rb:758:14:758:14 | x | -| array_flow.rb:764:5:764:5 | c [element] | array_flow.rb:768:10:768:10 | c [element] | -| array_flow.rb:764:9:764:9 | a [element 2] | array_flow.rb:764:9:767:7 | call to max_by [element] | -| array_flow.rb:764:9:764:9 | a [element 2] | array_flow.rb:764:25:764:25 | x | -| array_flow.rb:764:9:767:7 | call to max_by [element] | array_flow.rb:764:5:764:5 | c [element] | -| array_flow.rb:764:25:764:25 | x | array_flow.rb:765:14:765:14 | x | -| array_flow.rb:768:10:768:10 | c [element] | array_flow.rb:768:10:768:13 | ...[...] | -| array_flow.rb:772:5:772:5 | a [element 2] | array_flow.rb:775:9:775:9 | a [element 2] | -| array_flow.rb:772:5:772:5 | a [element 2] | array_flow.rb:779:9:779:9 | a [element 2] | -| array_flow.rb:772:5:772:5 | a [element 2] | array_flow.rb:783:9:783:9 | a [element 2] | -| array_flow.rb:772:5:772:5 | a [element 2] | array_flow.rb:791:9:791:9 | a [element 2] | -| array_flow.rb:772:16:772:25 | call to source | array_flow.rb:772:5:772:5 | a [element 2] | -| array_flow.rb:775:5:775:5 | b | array_flow.rb:776:10:776:10 | b | -| array_flow.rb:775:9:775:9 | a [element 2] | array_flow.rb:775:9:775:13 | call to min | -| array_flow.rb:775:9:775:13 | call to min | array_flow.rb:775:5:775:5 | b | -| array_flow.rb:779:5:779:5 | c [element] | array_flow.rb:780:10:780:10 | c [element] | -| array_flow.rb:779:9:779:9 | a [element 2] | array_flow.rb:779:9:779:16 | call to min [element] | -| array_flow.rb:779:9:779:16 | call to min [element] | array_flow.rb:779:5:779:5 | c [element] | -| array_flow.rb:780:10:780:10 | c [element] | array_flow.rb:780:10:780:13 | ...[...] | -| array_flow.rb:783:5:783:5 | d | array_flow.rb:788:10:788:10 | d | -| array_flow.rb:783:9:783:9 | a [element 2] | array_flow.rb:783:9:787:7 | call to min | -| array_flow.rb:783:9:783:9 | a [element 2] | array_flow.rb:783:19:783:19 | x | -| array_flow.rb:783:9:783:9 | a [element 2] | array_flow.rb:783:22:783:22 | y | -| array_flow.rb:783:9:787:7 | call to min | array_flow.rb:783:5:783:5 | d | -| array_flow.rb:783:19:783:19 | x | array_flow.rb:784:14:784:14 | x | -| array_flow.rb:783:22:783:22 | y | array_flow.rb:785:14:785:14 | y | -| array_flow.rb:791:5:791:5 | e [element] | array_flow.rb:796:10:796:10 | e [element] | -| array_flow.rb:791:9:791:9 | a [element 2] | array_flow.rb:791:9:795:7 | call to min [element] | -| array_flow.rb:791:9:791:9 | a [element 2] | array_flow.rb:791:22:791:22 | x | -| array_flow.rb:791:9:791:9 | a [element 2] | array_flow.rb:791:25:791:25 | y | -| array_flow.rb:791:9:795:7 | call to min [element] | array_flow.rb:791:5:791:5 | e [element] | -| array_flow.rb:791:22:791:22 | x | array_flow.rb:792:14:792:14 | x | -| array_flow.rb:791:25:791:25 | y | array_flow.rb:793:14:793:14 | y | -| array_flow.rb:796:10:796:10 | e [element] | array_flow.rb:796:10:796:13 | ...[...] | -| array_flow.rb:800:5:800:5 | a [element 2] | array_flow.rb:803:9:803:9 | a [element 2] | -| array_flow.rb:800:5:800:5 | a [element 2] | array_flow.rb:810:9:810:9 | a [element 2] | -| array_flow.rb:800:16:800:25 | call to source | array_flow.rb:800:5:800:5 | a [element 2] | -| array_flow.rb:803:5:803:5 | b | array_flow.rb:807:10:807:10 | b | -| array_flow.rb:803:9:803:9 | a [element 2] | array_flow.rb:803:9:806:7 | call to min_by | -| array_flow.rb:803:9:803:9 | a [element 2] | array_flow.rb:803:22:803:22 | x | -| array_flow.rb:803:9:806:7 | call to min_by | array_flow.rb:803:5:803:5 | b | -| array_flow.rb:803:22:803:22 | x | array_flow.rb:804:14:804:14 | x | -| array_flow.rb:810:5:810:5 | c [element] | array_flow.rb:814:10:814:10 | c [element] | -| array_flow.rb:810:9:810:9 | a [element 2] | array_flow.rb:810:9:813:7 | call to min_by [element] | -| array_flow.rb:810:9:810:9 | a [element 2] | array_flow.rb:810:25:810:25 | x | -| array_flow.rb:810:9:813:7 | call to min_by [element] | array_flow.rb:810:5:810:5 | c [element] | -| array_flow.rb:810:25:810:25 | x | array_flow.rb:811:14:811:14 | x | -| array_flow.rb:814:10:814:10 | c [element] | array_flow.rb:814:10:814:13 | ...[...] | -| array_flow.rb:818:5:818:5 | a [element 2] | array_flow.rb:820:9:820:9 | a [element 2] | -| array_flow.rb:818:5:818:5 | a [element 2] | array_flow.rb:824:9:824:9 | a [element 2] | -| array_flow.rb:818:16:818:25 | call to source | array_flow.rb:818:5:818:5 | a [element 2] | -| array_flow.rb:820:5:820:5 | b [element] | array_flow.rb:821:10:821:10 | b [element] | -| array_flow.rb:820:5:820:5 | b [element] | array_flow.rb:822:10:822:10 | b [element] | -| array_flow.rb:820:9:820:9 | a [element 2] | array_flow.rb:820:9:820:16 | call to minmax [element] | -| array_flow.rb:820:9:820:16 | call to minmax [element] | array_flow.rb:820:5:820:5 | b [element] | -| array_flow.rb:821:10:821:10 | b [element] | array_flow.rb:821:10:821:13 | ...[...] | -| array_flow.rb:822:10:822:10 | b [element] | array_flow.rb:822:10:822:13 | ...[...] | -| array_flow.rb:824:5:824:5 | c [element] | array_flow.rb:829:10:829:10 | c [element] | -| array_flow.rb:824:5:824:5 | c [element] | array_flow.rb:830:10:830:10 | c [element] | -| array_flow.rb:824:9:824:9 | a [element 2] | array_flow.rb:824:9:828:7 | call to minmax [element] | -| array_flow.rb:824:9:824:9 | a [element 2] | array_flow.rb:824:22:824:22 | x | -| array_flow.rb:824:9:824:9 | a [element 2] | array_flow.rb:824:25:824:25 | y | -| array_flow.rb:824:9:828:7 | call to minmax [element] | array_flow.rb:824:5:824:5 | c [element] | -| array_flow.rb:824:22:824:22 | x | array_flow.rb:825:14:825:14 | x | -| array_flow.rb:824:25:824:25 | y | array_flow.rb:826:14:826:14 | y | -| array_flow.rb:829:10:829:10 | c [element] | array_flow.rb:829:10:829:13 | ...[...] | -| array_flow.rb:830:10:830:10 | c [element] | array_flow.rb:830:10:830:13 | ...[...] | -| array_flow.rb:834:5:834:5 | a [element 2] | array_flow.rb:835:9:835:9 | a [element 2] | -| array_flow.rb:834:16:834:25 | call to source | array_flow.rb:834:5:834:5 | a [element 2] | -| array_flow.rb:835:5:835:5 | b [element] | array_flow.rb:839:10:839:10 | b [element] | -| array_flow.rb:835:5:835:5 | b [element] | array_flow.rb:840:10:840:10 | b [element] | -| array_flow.rb:835:9:835:9 | a [element 2] | array_flow.rb:835:9:838:7 | call to minmax_by [element] | -| array_flow.rb:835:9:835:9 | a [element 2] | array_flow.rb:835:25:835:25 | x | -| array_flow.rb:835:9:838:7 | call to minmax_by [element] | array_flow.rb:835:5:835:5 | b [element] | -| array_flow.rb:835:25:835:25 | x | array_flow.rb:836:14:836:14 | x | -| array_flow.rb:839:10:839:10 | b [element] | array_flow.rb:839:10:839:13 | ...[...] | -| array_flow.rb:840:10:840:10 | b [element] | array_flow.rb:840:10:840:13 | ...[...] | -| array_flow.rb:844:5:844:5 | a [element 2] | array_flow.rb:845:5:845:5 | a [element 2] | -| array_flow.rb:844:16:844:25 | call to source | array_flow.rb:844:5:844:5 | a [element 2] | -| array_flow.rb:845:5:845:5 | a [element 2] | array_flow.rb:845:17:845:17 | x | -| array_flow.rb:845:17:845:17 | x | array_flow.rb:846:14:846:14 | x | -| array_flow.rb:853:5:853:5 | a [element 2] | array_flow.rb:854:5:854:5 | a [element 2] | -| array_flow.rb:853:16:853:25 | call to source | array_flow.rb:853:5:853:5 | a [element 2] | -| array_flow.rb:854:5:854:5 | a [element 2] | array_flow.rb:854:16:854:16 | x | -| array_flow.rb:854:16:854:16 | x | array_flow.rb:855:14:855:14 | x | -| array_flow.rb:866:5:866:5 | a [element 2] | array_flow.rb:867:9:867:9 | a [element 2] | -| array_flow.rb:866:16:866:25 | call to source | array_flow.rb:866:5:866:5 | a [element 2] | -| array_flow.rb:867:5:867:5 | b [element, element] | array_flow.rb:871:10:871:10 | b [element, element] | -| array_flow.rb:867:5:867:5 | b [element, element] | array_flow.rb:872:10:872:10 | b [element, element] | -| array_flow.rb:867:9:867:9 | a [element 2] | array_flow.rb:867:9:870:7 | call to partition [element, element] | -| array_flow.rb:867:9:867:9 | a [element 2] | array_flow.rb:867:25:867:25 | x | -| array_flow.rb:867:9:870:7 | call to partition [element, element] | array_flow.rb:867:5:867:5 | b [element, element] | -| array_flow.rb:867:25:867:25 | x | array_flow.rb:868:14:868:14 | x | -| array_flow.rb:871:10:871:10 | b [element, element] | array_flow.rb:871:10:871:13 | ...[...] [element] | -| array_flow.rb:871:10:871:13 | ...[...] [element] | array_flow.rb:871:10:871:16 | ...[...] | -| array_flow.rb:872:10:872:10 | b [element, element] | array_flow.rb:872:10:872:13 | ...[...] [element] | -| array_flow.rb:872:10:872:13 | ...[...] [element] | array_flow.rb:872:10:872:16 | ...[...] | -| array_flow.rb:876:5:876:5 | a [element 2] | array_flow.rb:878:9:878:9 | a [element 2] | -| array_flow.rb:876:5:876:5 | a [element 2] | array_flow.rb:886:9:886:9 | a [element 2] | -| array_flow.rb:876:5:876:5 | a [element 2] | array_flow.rb:893:9:893:9 | a [element 2] | -| array_flow.rb:876:16:876:25 | call to source | array_flow.rb:876:5:876:5 | a [element 2] | -| array_flow.rb:878:5:878:5 | b [element 2] | array_flow.rb:884:10:884:10 | b [element 2] | -| array_flow.rb:878:9:878:9 | a [element 2] | array_flow.rb:878:9:882:7 | call to permutation [element 2] | -| array_flow.rb:878:9:878:9 | a [element 2] | array_flow.rb:878:27:878:27 | x [element] | -| array_flow.rb:878:9:882:7 | call to permutation [element 2] | array_flow.rb:878:5:878:5 | b [element 2] | -| array_flow.rb:878:27:878:27 | x [element] | array_flow.rb:879:14:879:14 | x [element] | -| array_flow.rb:878:27:878:27 | x [element] | array_flow.rb:880:14:880:14 | x [element] | -| array_flow.rb:878:27:878:27 | x [element] | array_flow.rb:881:14:881:14 | x [element] | -| array_flow.rb:879:14:879:14 | x [element] | array_flow.rb:879:14:879:17 | ...[...] | -| array_flow.rb:880:14:880:14 | x [element] | array_flow.rb:880:14:880:17 | ...[...] | -| array_flow.rb:881:14:881:14 | x [element] | array_flow.rb:881:14:881:17 | ...[...] | -| array_flow.rb:884:10:884:10 | b [element 2] | array_flow.rb:884:10:884:13 | ...[...] | -| array_flow.rb:886:5:886:5 | c [element 2] | array_flow.rb:891:10:891:10 | c [element 2] | -| array_flow.rb:886:5:886:5 | c [element 2] | array_flow.rb:898:10:898:10 | c [element 2] | -| array_flow.rb:886:9:886:9 | a [element 2] | array_flow.rb:886:9:889:7 | call to permutation [element 2] | -| array_flow.rb:886:9:886:9 | a [element 2] | array_flow.rb:886:30:886:30 | x [element] | -| array_flow.rb:886:9:889:7 | call to permutation [element 2] | array_flow.rb:886:5:886:5 | c [element 2] | -| array_flow.rb:886:30:886:30 | x [element] | array_flow.rb:887:14:887:14 | x [element] | -| array_flow.rb:886:30:886:30 | x [element] | array_flow.rb:888:14:888:14 | x [element] | -| array_flow.rb:887:14:887:14 | x [element] | array_flow.rb:887:14:887:17 | ...[...] | -| array_flow.rb:888:14:888:14 | x [element] | array_flow.rb:888:14:888:17 | ...[...] | -| array_flow.rb:891:10:891:10 | c [element 2] | array_flow.rb:891:10:891:13 | ...[...] | -| array_flow.rb:893:9:893:9 | a [element 2] | array_flow.rb:893:30:893:30 | x [element] | -| array_flow.rb:893:30:893:30 | x [element] | array_flow.rb:894:14:894:14 | x [element] | -| array_flow.rb:893:30:893:30 | x [element] | array_flow.rb:895:14:895:14 | x [element] | -| array_flow.rb:894:14:894:14 | x [element] | array_flow.rb:894:14:894:17 | ...[...] | -| array_flow.rb:895:14:895:14 | x [element] | array_flow.rb:895:14:895:17 | ...[...] | -| array_flow.rb:898:10:898:10 | c [element 2] | array_flow.rb:898:10:898:13 | ...[...] | -| array_flow.rb:905:5:905:5 | a [element 1] | array_flow.rb:906:9:906:9 | a [element 1] | -| array_flow.rb:905:5:905:5 | a [element 1] | array_flow.rb:909:10:909:10 | a [element 1] | -| array_flow.rb:905:5:905:5 | a [element 3] | array_flow.rb:906:9:906:9 | a [element 3] | -| array_flow.rb:905:5:905:5 | a [element 3] | array_flow.rb:911:10:911:10 | a [element 3] | -| array_flow.rb:905:13:905:24 | call to source | array_flow.rb:905:5:905:5 | a [element 1] | -| array_flow.rb:905:30:905:41 | call to source | array_flow.rb:905:5:905:5 | a [element 3] | -| array_flow.rb:906:5:906:5 | b | array_flow.rb:907:10:907:10 | b | -| array_flow.rb:906:9:906:9 | a [element 1] | array_flow.rb:906:9:906:13 | call to pop | -| array_flow.rb:906:9:906:9 | a [element 3] | array_flow.rb:906:9:906:13 | call to pop | -| array_flow.rb:906:9:906:13 | call to pop | array_flow.rb:906:5:906:5 | b | -| array_flow.rb:909:10:909:10 | a [element 1] | array_flow.rb:909:10:909:13 | ...[...] | -| array_flow.rb:911:10:911:10 | a [element 3] | array_flow.rb:911:10:911:13 | ...[...] | -| array_flow.rb:913:5:913:5 | a [element 1] | array_flow.rb:914:9:914:9 | a [element 1] | -| array_flow.rb:913:5:913:5 | a [element 1] | array_flow.rb:918:10:918:10 | a [element 1] | -| array_flow.rb:913:5:913:5 | a [element 3] | array_flow.rb:914:9:914:9 | a [element 3] | -| array_flow.rb:913:5:913:5 | a [element 3] | array_flow.rb:920:10:920:10 | a [element 3] | -| array_flow.rb:913:13:913:24 | call to source | array_flow.rb:913:5:913:5 | a [element 1] | -| array_flow.rb:913:30:913:41 | call to source | array_flow.rb:913:5:913:5 | a [element 3] | -| array_flow.rb:914:5:914:5 | b [element] | array_flow.rb:915:10:915:10 | b [element] | -| array_flow.rb:914:5:914:5 | b [element] | array_flow.rb:916:10:916:10 | b [element] | -| array_flow.rb:914:9:914:9 | a [element 1] | array_flow.rb:914:9:914:16 | call to pop [element] | -| array_flow.rb:914:9:914:9 | a [element 3] | array_flow.rb:914:9:914:16 | call to pop [element] | -| array_flow.rb:914:9:914:16 | call to pop [element] | array_flow.rb:914:5:914:5 | b [element] | -| array_flow.rb:915:10:915:10 | b [element] | array_flow.rb:915:10:915:13 | ...[...] | -| array_flow.rb:916:10:916:10 | b [element] | array_flow.rb:916:10:916:13 | ...[...] | -| array_flow.rb:918:10:918:10 | a [element 1] | array_flow.rb:918:10:918:13 | ...[...] | -| array_flow.rb:920:10:920:10 | a [element 3] | array_flow.rb:920:10:920:13 | ...[...] | -| array_flow.rb:924:5:924:5 | a [element 2] | array_flow.rb:925:5:925:5 | a [element 2] | -| array_flow.rb:924:16:924:27 | call to source | array_flow.rb:924:5:924:5 | a [element 2] | -| array_flow.rb:925:5:925:5 | [post] a [element 2] | array_flow.rb:928:10:928:10 | a [element 2] | -| array_flow.rb:925:5:925:5 | [post] a [element 5] | array_flow.rb:931:10:931:10 | a [element 5] | -| array_flow.rb:925:5:925:5 | a [element 2] | array_flow.rb:925:5:925:5 | [post] a [element 5] | -| array_flow.rb:925:21:925:32 | call to source | array_flow.rb:925:5:925:5 | [post] a [element 2] | -| array_flow.rb:928:10:928:10 | a [element 2] | array_flow.rb:928:10:928:13 | ...[...] | -| array_flow.rb:931:10:931:10 | a [element 5] | array_flow.rb:931:10:931:13 | ...[...] | -| array_flow.rb:935:5:935:5 | a [element 2] | array_flow.rb:938:9:938:9 | a [element 2] | -| array_flow.rb:935:16:935:27 | call to source | array_flow.rb:935:5:935:5 | a [element 2] | -| array_flow.rb:936:5:936:5 | b [element 1] | array_flow.rb:938:19:938:19 | b [element 1] | -| array_flow.rb:936:13:936:24 | call to source | array_flow.rb:936:5:936:5 | b [element 1] | -| array_flow.rb:937:5:937:5 | c [element 0] | array_flow.rb:938:22:938:22 | c [element 0] | -| array_flow.rb:937:10:937:21 | call to source | array_flow.rb:937:5:937:5 | c [element 0] | -| array_flow.rb:938:5:938:5 | d [element, element] | array_flow.rb:939:10:939:10 | d [element, element] | -| array_flow.rb:938:5:938:5 | d [element, element] | array_flow.rb:940:10:940:10 | d [element, element] | -| array_flow.rb:938:9:938:9 | a [element 2] | array_flow.rb:938:9:938:22 | call to product [element, element] | -| array_flow.rb:938:9:938:22 | call to product [element, element] | array_flow.rb:938:5:938:5 | d [element, element] | -| array_flow.rb:938:19:938:19 | b [element 1] | array_flow.rb:938:9:938:22 | call to product [element, element] | -| array_flow.rb:938:22:938:22 | c [element 0] | array_flow.rb:938:9:938:22 | call to product [element, element] | -| array_flow.rb:939:10:939:10 | d [element, element] | array_flow.rb:939:10:939:13 | ...[...] [element] | -| array_flow.rb:939:10:939:13 | ...[...] [element] | array_flow.rb:939:10:939:16 | ...[...] | -| array_flow.rb:940:10:940:10 | d [element, element] | array_flow.rb:940:10:940:13 | ...[...] [element] | -| array_flow.rb:940:10:940:13 | ...[...] [element] | array_flow.rb:940:10:940:16 | ...[...] | -| array_flow.rb:944:5:944:5 | a [element 0] | array_flow.rb:945:9:945:9 | a [element 0] | -| array_flow.rb:944:5:944:5 | a [element 0] | array_flow.rb:946:10:946:10 | a [element 0] | -| array_flow.rb:944:10:944:21 | call to source | array_flow.rb:944:5:944:5 | a [element 0] | -| array_flow.rb:945:5:945:5 | b [element 0] | array_flow.rb:948:10:948:10 | b [element 0] | -| array_flow.rb:945:5:945:5 | b [element] | array_flow.rb:948:10:948:10 | b [element] | -| array_flow.rb:945:5:945:5 | b [element] | array_flow.rb:949:10:949:10 | b [element] | -| array_flow.rb:945:9:945:9 | [post] a [element] | array_flow.rb:946:10:946:10 | a [element] | -| array_flow.rb:945:9:945:9 | [post] a [element] | array_flow.rb:947:10:947:10 | a [element] | -| array_flow.rb:945:9:945:9 | a [element 0] | array_flow.rb:945:9:945:44 | call to append [element 0] | -| array_flow.rb:945:9:945:44 | call to append [element 0] | array_flow.rb:945:5:945:5 | b [element 0] | -| array_flow.rb:945:9:945:44 | call to append [element] | array_flow.rb:945:5:945:5 | b [element] | -| array_flow.rb:945:18:945:29 | call to source | array_flow.rb:945:9:945:9 | [post] a [element] | -| array_flow.rb:945:18:945:29 | call to source | array_flow.rb:945:9:945:44 | call to append [element] | -| array_flow.rb:945:32:945:43 | call to source | array_flow.rb:945:9:945:9 | [post] a [element] | -| array_flow.rb:945:32:945:43 | call to source | array_flow.rb:945:9:945:44 | call to append [element] | -| array_flow.rb:946:10:946:10 | a [element 0] | array_flow.rb:946:10:946:13 | ...[...] | -| array_flow.rb:946:10:946:10 | a [element] | array_flow.rb:946:10:946:13 | ...[...] | -| array_flow.rb:947:10:947:10 | a [element] | array_flow.rb:947:10:947:13 | ...[...] | -| array_flow.rb:948:10:948:10 | b [element 0] | array_flow.rb:948:10:948:13 | ...[...] | -| array_flow.rb:948:10:948:10 | b [element] | array_flow.rb:948:10:948:13 | ...[...] | -| array_flow.rb:949:10:949:10 | b [element] | array_flow.rb:949:10:949:13 | ...[...] | -| array_flow.rb:955:5:955:5 | c [element 0] | array_flow.rb:956:16:956:16 | c [element 0] | -| array_flow.rb:955:10:955:19 | call to source | array_flow.rb:955:5:955:5 | c [element 0] | -| array_flow.rb:956:5:956:5 | d [element 2, element 0] | array_flow.rb:957:10:957:10 | d [element 2, element 0] | -| array_flow.rb:956:5:956:5 | d [element 2, element 0] | array_flow.rb:958:10:958:10 | d [element 2, element 0] | -| array_flow.rb:956:16:956:16 | c [element 0] | array_flow.rb:956:5:956:5 | d [element 2, element 0] | -| array_flow.rb:957:10:957:10 | d [element 2, element 0] | array_flow.rb:957:10:957:22 | call to rassoc [element 0] | -| array_flow.rb:957:10:957:22 | call to rassoc [element 0] | array_flow.rb:957:10:957:25 | ...[...] | -| array_flow.rb:958:10:958:10 | d [element 2, element 0] | array_flow.rb:958:10:958:22 | call to rassoc [element 0] | -| array_flow.rb:958:10:958:22 | call to rassoc [element 0] | array_flow.rb:958:10:958:25 | ...[...] | -| array_flow.rb:962:5:962:5 | a [element 0] | array_flow.rb:963:9:963:9 | a [element 0] | -| array_flow.rb:962:5:962:5 | a [element 0] | array_flow.rb:968:9:968:9 | a [element 0] | -| array_flow.rb:962:5:962:5 | a [element 2] | array_flow.rb:963:9:963:9 | a [element 2] | -| array_flow.rb:962:5:962:5 | a [element 2] | array_flow.rb:968:9:968:9 | a [element 2] | -| array_flow.rb:962:10:962:21 | call to source | array_flow.rb:962:5:962:5 | a [element 0] | -| array_flow.rb:962:27:962:38 | call to source | array_flow.rb:962:5:962:5 | a [element 2] | -| array_flow.rb:963:9:963:9 | a [element 0] | array_flow.rb:963:22:963:22 | x | -| array_flow.rb:963:9:963:9 | a [element 2] | array_flow.rb:963:25:963:25 | y | -| array_flow.rb:963:22:963:22 | x | array_flow.rb:964:14:964:14 | x | -| array_flow.rb:963:25:963:25 | y | array_flow.rb:965:14:965:14 | y | -| array_flow.rb:968:9:968:9 | a [element 0] | array_flow.rb:968:28:968:28 | y | -| array_flow.rb:968:9:968:9 | a [element 2] | array_flow.rb:968:28:968:28 | y | -| array_flow.rb:968:28:968:28 | y | array_flow.rb:970:14:970:14 | y | -| array_flow.rb:976:5:976:5 | a [element 2] | array_flow.rb:977:9:977:9 | a [element 2] | -| array_flow.rb:976:16:976:25 | call to source | array_flow.rb:976:5:976:5 | a [element 2] | -| array_flow.rb:977:5:977:5 | b [element] | array_flow.rb:981:10:981:10 | b [element] | -| array_flow.rb:977:9:977:9 | a [element 2] | array_flow.rb:977:9:980:7 | call to reject [element] | -| array_flow.rb:977:9:977:9 | a [element 2] | array_flow.rb:977:22:977:22 | x | -| array_flow.rb:977:9:980:7 | call to reject [element] | array_flow.rb:977:5:977:5 | b [element] | -| array_flow.rb:977:22:977:22 | x | array_flow.rb:978:14:978:14 | x | -| array_flow.rb:981:10:981:10 | b [element] | array_flow.rb:981:10:981:13 | ...[...] | -| array_flow.rb:985:5:985:5 | a [element 2] | array_flow.rb:986:9:986:9 | a [element 2] | -| array_flow.rb:985:16:985:25 | call to source | array_flow.rb:985:5:985:5 | a [element 2] | -| array_flow.rb:986:5:986:5 | b [element] | array_flow.rb:991:10:991:10 | b [element] | -| array_flow.rb:986:9:986:9 | [post] a [element] | array_flow.rb:990:10:990:10 | a [element] | -| array_flow.rb:986:9:986:9 | a [element 2] | array_flow.rb:986:9:986:9 | [post] a [element] | -| array_flow.rb:986:9:986:9 | a [element 2] | array_flow.rb:986:9:989:7 | call to reject! [element] | -| array_flow.rb:986:9:986:9 | a [element 2] | array_flow.rb:986:23:986:23 | x | -| array_flow.rb:986:9:989:7 | call to reject! [element] | array_flow.rb:986:5:986:5 | b [element] | -| array_flow.rb:986:23:986:23 | x | array_flow.rb:987:14:987:14 | x | -| array_flow.rb:990:10:990:10 | a [element] | array_flow.rb:990:10:990:13 | ...[...] | -| array_flow.rb:991:10:991:10 | b [element] | array_flow.rb:991:10:991:13 | ...[...] | -| array_flow.rb:995:5:995:5 | a [element 2] | array_flow.rb:996:9:996:9 | a [element 2] | -| array_flow.rb:995:16:995:25 | call to source | array_flow.rb:995:5:995:5 | a [element 2] | -| array_flow.rb:996:5:996:5 | b [element 2] | array_flow.rb:1001:10:1001:10 | b [element 2] | -| array_flow.rb:996:9:996:9 | a [element 2] | array_flow.rb:996:9:999:7 | call to repeated_combination [element 2] | -| array_flow.rb:996:9:996:9 | a [element 2] | array_flow.rb:996:39:996:39 | x [element] | -| array_flow.rb:996:9:999:7 | call to repeated_combination [element 2] | array_flow.rb:996:5:996:5 | b [element 2] | -| array_flow.rb:996:39:996:39 | x [element] | array_flow.rb:997:14:997:14 | x [element] | -| array_flow.rb:996:39:996:39 | x [element] | array_flow.rb:998:14:998:14 | x [element] | -| array_flow.rb:997:14:997:14 | x [element] | array_flow.rb:997:14:997:17 | ...[...] | -| array_flow.rb:998:14:998:14 | x [element] | array_flow.rb:998:14:998:17 | ...[...] | -| array_flow.rb:1001:10:1001:10 | b [element 2] | array_flow.rb:1001:10:1001:13 | ...[...] | -| array_flow.rb:1005:5:1005:5 | a [element 2] | array_flow.rb:1006:9:1006:9 | a [element 2] | -| array_flow.rb:1005:16:1005:25 | call to source | array_flow.rb:1005:5:1005:5 | a [element 2] | -| array_flow.rb:1006:5:1006:5 | b [element 2] | array_flow.rb:1011:10:1011:10 | b [element 2] | -| array_flow.rb:1006:9:1006:9 | a [element 2] | array_flow.rb:1006:9:1009:7 | call to repeated_permutation [element 2] | -| array_flow.rb:1006:9:1006:9 | a [element 2] | array_flow.rb:1006:39:1006:39 | x [element] | -| array_flow.rb:1006:9:1009:7 | call to repeated_permutation [element 2] | array_flow.rb:1006:5:1006:5 | b [element 2] | -| array_flow.rb:1006:39:1006:39 | x [element] | array_flow.rb:1007:14:1007:14 | x [element] | -| array_flow.rb:1006:39:1006:39 | x [element] | array_flow.rb:1008:14:1008:14 | x [element] | -| array_flow.rb:1007:14:1007:14 | x [element] | array_flow.rb:1007:14:1007:17 | ...[...] | -| array_flow.rb:1008:14:1008:14 | x [element] | array_flow.rb:1008:14:1008:17 | ...[...] | -| array_flow.rb:1011:10:1011:10 | b [element 2] | array_flow.rb:1011:10:1011:13 | ...[...] | -| array_flow.rb:1017:5:1017:5 | b [element 0] | array_flow.rb:1019:10:1019:10 | b [element 0] | -| array_flow.rb:1017:9:1017:9 | [post] a [element 0] | array_flow.rb:1018:10:1018:10 | a [element 0] | -| array_flow.rb:1017:9:1017:33 | call to replace [element 0] | array_flow.rb:1017:5:1017:5 | b [element 0] | -| array_flow.rb:1017:20:1017:31 | call to source | array_flow.rb:1017:9:1017:9 | [post] a [element 0] | -| array_flow.rb:1017:20:1017:31 | call to source | array_flow.rb:1017:9:1017:33 | call to replace [element 0] | -| array_flow.rb:1018:10:1018:10 | a [element 0] | array_flow.rb:1018:10:1018:13 | ...[...] | -| array_flow.rb:1019:10:1019:10 | b [element 0] | array_flow.rb:1019:10:1019:13 | ...[...] | -| array_flow.rb:1023:5:1023:5 | a [element 2] | array_flow.rb:1024:9:1024:9 | a [element 2] | -| array_flow.rb:1023:5:1023:5 | a [element 2] | array_flow.rb:1029:10:1029:10 | a [element 2] | -| array_flow.rb:1023:5:1023:5 | a [element 3] | array_flow.rb:1024:9:1024:9 | a [element 3] | -| array_flow.rb:1023:5:1023:5 | a [element 3] | array_flow.rb:1030:10:1030:10 | a [element 3] | -| array_flow.rb:1023:16:1023:28 | call to source | array_flow.rb:1023:5:1023:5 | a [element 2] | -| array_flow.rb:1023:31:1023:43 | call to source | array_flow.rb:1023:5:1023:5 | a [element 3] | -| array_flow.rb:1024:5:1024:5 | b [element] | array_flow.rb:1025:10:1025:10 | b [element] | -| array_flow.rb:1024:5:1024:5 | b [element] | array_flow.rb:1026:10:1026:10 | b [element] | -| array_flow.rb:1024:5:1024:5 | b [element] | array_flow.rb:1027:10:1027:10 | b [element] | -| array_flow.rb:1024:9:1024:9 | a [element 2] | array_flow.rb:1024:9:1024:17 | call to reverse [element] | -| array_flow.rb:1024:9:1024:9 | a [element 3] | array_flow.rb:1024:9:1024:17 | call to reverse [element] | -| array_flow.rb:1024:9:1024:17 | call to reverse [element] | array_flow.rb:1024:5:1024:5 | b [element] | -| array_flow.rb:1025:10:1025:10 | b [element] | array_flow.rb:1025:10:1025:13 | ...[...] | -| array_flow.rb:1026:10:1026:10 | b [element] | array_flow.rb:1026:10:1026:13 | ...[...] | -| array_flow.rb:1027:10:1027:10 | b [element] | array_flow.rb:1027:10:1027:13 | ...[...] | -| array_flow.rb:1029:10:1029:10 | a [element 2] | array_flow.rb:1029:10:1029:13 | ...[...] | -| array_flow.rb:1030:10:1030:10 | a [element 3] | array_flow.rb:1030:10:1030:13 | ...[...] | -| array_flow.rb:1034:5:1034:5 | a [element 2] | array_flow.rb:1035:9:1035:9 | a [element 2] | -| array_flow.rb:1034:5:1034:5 | a [element 2] | array_flow.rb:1040:10:1040:10 | a [element 2] | -| array_flow.rb:1034:5:1034:5 | a [element 3] | array_flow.rb:1035:9:1035:9 | a [element 3] | -| array_flow.rb:1034:5:1034:5 | a [element 3] | array_flow.rb:1041:10:1041:10 | a [element 3] | -| array_flow.rb:1034:16:1034:28 | call to source | array_flow.rb:1034:5:1034:5 | a [element 2] | -| array_flow.rb:1034:31:1034:43 | call to source | array_flow.rb:1034:5:1034:5 | a [element 3] | -| array_flow.rb:1035:5:1035:5 | b [element] | array_flow.rb:1036:10:1036:10 | b [element] | -| array_flow.rb:1035:5:1035:5 | b [element] | array_flow.rb:1037:10:1037:10 | b [element] | -| array_flow.rb:1035:5:1035:5 | b [element] | array_flow.rb:1038:10:1038:10 | b [element] | -| array_flow.rb:1035:9:1035:9 | [post] a [element] | array_flow.rb:1039:10:1039:10 | a [element] | -| array_flow.rb:1035:9:1035:9 | [post] a [element] | array_flow.rb:1040:10:1040:10 | a [element] | -| array_flow.rb:1035:9:1035:9 | [post] a [element] | array_flow.rb:1041:10:1041:10 | a [element] | -| array_flow.rb:1035:9:1035:9 | a [element 2] | array_flow.rb:1035:9:1035:9 | [post] a [element] | -| array_flow.rb:1035:9:1035:9 | a [element 2] | array_flow.rb:1035:9:1035:18 | call to reverse! [element] | -| array_flow.rb:1035:9:1035:9 | a [element 3] | array_flow.rb:1035:9:1035:9 | [post] a [element] | -| array_flow.rb:1035:9:1035:9 | a [element 3] | array_flow.rb:1035:9:1035:18 | call to reverse! [element] | -| array_flow.rb:1035:9:1035:18 | call to reverse! [element] | array_flow.rb:1035:5:1035:5 | b [element] | -| array_flow.rb:1036:10:1036:10 | b [element] | array_flow.rb:1036:10:1036:13 | ...[...] | -| array_flow.rb:1037:10:1037:10 | b [element] | array_flow.rb:1037:10:1037:13 | ...[...] | -| array_flow.rb:1038:10:1038:10 | b [element] | array_flow.rb:1038:10:1038:13 | ...[...] | -| array_flow.rb:1039:10:1039:10 | a [element] | array_flow.rb:1039:10:1039:13 | ...[...] | -| array_flow.rb:1040:10:1040:10 | a [element 2] | array_flow.rb:1040:10:1040:13 | ...[...] | -| array_flow.rb:1040:10:1040:10 | a [element] | array_flow.rb:1040:10:1040:13 | ...[...] | -| array_flow.rb:1041:10:1041:10 | a [element 3] | array_flow.rb:1041:10:1041:13 | ...[...] | -| array_flow.rb:1041:10:1041:10 | a [element] | array_flow.rb:1041:10:1041:13 | ...[...] | -| array_flow.rb:1045:5:1045:5 | a [element 2] | array_flow.rb:1046:9:1046:9 | a [element 2] | -| array_flow.rb:1045:16:1045:26 | call to source | array_flow.rb:1045:5:1045:5 | a [element 2] | -| array_flow.rb:1046:5:1046:5 | b [element 2] | array_flow.rb:1049:10:1049:10 | b [element 2] | -| array_flow.rb:1046:9:1046:9 | a [element 2] | array_flow.rb:1046:9:1048:7 | call to reverse_each [element 2] | -| array_flow.rb:1046:9:1046:9 | a [element 2] | array_flow.rb:1046:28:1046:28 | x | -| array_flow.rb:1046:9:1048:7 | call to reverse_each [element 2] | array_flow.rb:1046:5:1046:5 | b [element 2] | -| array_flow.rb:1046:28:1046:28 | x | array_flow.rb:1047:14:1047:14 | x | -| array_flow.rb:1049:10:1049:10 | b [element 2] | array_flow.rb:1049:10:1049:13 | ...[...] | -| array_flow.rb:1053:5:1053:5 | a [element 2] | array_flow.rb:1054:5:1054:5 | a [element 2] | -| array_flow.rb:1053:16:1053:26 | call to source | array_flow.rb:1053:5:1053:5 | a [element 2] | -| array_flow.rb:1054:5:1054:5 | a [element 2] | array_flow.rb:1054:18:1054:18 | x | -| array_flow.rb:1054:18:1054:18 | x | array_flow.rb:1055:14:1055:14 | x | -| array_flow.rb:1063:5:1063:5 | a [element 0] | array_flow.rb:1065:9:1065:9 | a [element 0] | -| array_flow.rb:1063:5:1063:5 | a [element 0] | array_flow.rb:1071:9:1071:9 | a [element 0] | -| array_flow.rb:1063:5:1063:5 | a [element 0] | array_flow.rb:1077:9:1077:9 | a [element 0] | -| array_flow.rb:1063:5:1063:5 | a [element 0] | array_flow.rb:1083:9:1083:9 | a [element 0] | -| array_flow.rb:1063:5:1063:5 | a [element 2] | array_flow.rb:1065:9:1065:9 | a [element 2] | -| array_flow.rb:1063:5:1063:5 | a [element 2] | array_flow.rb:1071:9:1071:9 | a [element 2] | -| array_flow.rb:1063:5:1063:5 | a [element 2] | array_flow.rb:1077:9:1077:9 | a [element 2] | -| array_flow.rb:1063:5:1063:5 | a [element 2] | array_flow.rb:1083:9:1083:9 | a [element 2] | -| array_flow.rb:1063:5:1063:5 | a [element 3] | array_flow.rb:1065:9:1065:9 | a [element 3] | -| array_flow.rb:1063:5:1063:5 | a [element 3] | array_flow.rb:1071:9:1071:9 | a [element 3] | -| array_flow.rb:1063:5:1063:5 | a [element 3] | array_flow.rb:1077:9:1077:9 | a [element 3] | -| array_flow.rb:1063:5:1063:5 | a [element 3] | array_flow.rb:1083:9:1083:9 | a [element 3] | -| array_flow.rb:1063:10:1063:22 | call to source | array_flow.rb:1063:5:1063:5 | a [element 0] | -| array_flow.rb:1063:28:1063:40 | call to source | array_flow.rb:1063:5:1063:5 | a [element 2] | -| array_flow.rb:1063:43:1063:55 | call to source | array_flow.rb:1063:5:1063:5 | a [element 3] | -| array_flow.rb:1065:5:1065:5 | b [element 1] | array_flow.rb:1067:10:1067:10 | b [element 1] | -| array_flow.rb:1065:5:1065:5 | b [element 2] | array_flow.rb:1068:10:1068:10 | b [element 2] | -| array_flow.rb:1065:5:1065:5 | b [element] | array_flow.rb:1066:10:1066:10 | b [element] | -| array_flow.rb:1065:5:1065:5 | b [element] | array_flow.rb:1067:10:1067:10 | b [element] | -| array_flow.rb:1065:5:1065:5 | b [element] | array_flow.rb:1068:10:1068:10 | b [element] | -| array_flow.rb:1065:5:1065:5 | b [element] | array_flow.rb:1069:10:1069:10 | b [element] | -| array_flow.rb:1065:9:1065:9 | a [element 0] | array_flow.rb:1065:9:1065:16 | call to rotate [element] | -| array_flow.rb:1065:9:1065:9 | a [element 2] | array_flow.rb:1065:9:1065:16 | call to rotate [element 1] | -| array_flow.rb:1065:9:1065:9 | a [element 3] | array_flow.rb:1065:9:1065:16 | call to rotate [element 2] | -| array_flow.rb:1065:9:1065:16 | call to rotate [element 1] | array_flow.rb:1065:5:1065:5 | b [element 1] | -| array_flow.rb:1065:9:1065:16 | call to rotate [element 2] | array_flow.rb:1065:5:1065:5 | b [element 2] | -| array_flow.rb:1065:9:1065:16 | call to rotate [element] | array_flow.rb:1065:5:1065:5 | b [element] | -| array_flow.rb:1066:10:1066:10 | b [element] | array_flow.rb:1066:10:1066:13 | ...[...] | -| array_flow.rb:1067:10:1067:10 | b [element 1] | array_flow.rb:1067:10:1067:13 | ...[...] | -| array_flow.rb:1067:10:1067:10 | b [element] | array_flow.rb:1067:10:1067:13 | ...[...] | -| array_flow.rb:1068:10:1068:10 | b [element 2] | array_flow.rb:1068:10:1068:13 | ...[...] | -| array_flow.rb:1068:10:1068:10 | b [element] | array_flow.rb:1068:10:1068:13 | ...[...] | -| array_flow.rb:1069:10:1069:10 | b [element] | array_flow.rb:1069:10:1069:13 | ...[...] | -| array_flow.rb:1071:5:1071:5 | b [element 0] | array_flow.rb:1072:10:1072:10 | b [element 0] | -| array_flow.rb:1071:5:1071:5 | b [element 1] | array_flow.rb:1073:10:1073:10 | b [element 1] | -| array_flow.rb:1071:5:1071:5 | b [element] | array_flow.rb:1072:10:1072:10 | b [element] | -| array_flow.rb:1071:5:1071:5 | b [element] | array_flow.rb:1073:10:1073:10 | b [element] | -| array_flow.rb:1071:5:1071:5 | b [element] | array_flow.rb:1074:10:1074:10 | b [element] | -| array_flow.rb:1071:5:1071:5 | b [element] | array_flow.rb:1075:10:1075:10 | b [element] | -| array_flow.rb:1071:9:1071:9 | a [element 0] | array_flow.rb:1071:9:1071:19 | call to rotate [element] | -| array_flow.rb:1071:9:1071:9 | a [element 2] | array_flow.rb:1071:9:1071:19 | call to rotate [element 0] | -| array_flow.rb:1071:9:1071:9 | a [element 3] | array_flow.rb:1071:9:1071:19 | call to rotate [element 1] | -| array_flow.rb:1071:9:1071:19 | call to rotate [element 0] | array_flow.rb:1071:5:1071:5 | b [element 0] | -| array_flow.rb:1071:9:1071:19 | call to rotate [element 1] | array_flow.rb:1071:5:1071:5 | b [element 1] | -| array_flow.rb:1071:9:1071:19 | call to rotate [element] | array_flow.rb:1071:5:1071:5 | b [element] | -| array_flow.rb:1072:10:1072:10 | b [element 0] | array_flow.rb:1072:10:1072:13 | ...[...] | -| array_flow.rb:1072:10:1072:10 | b [element] | array_flow.rb:1072:10:1072:13 | ...[...] | -| array_flow.rb:1073:10:1073:10 | b [element 1] | array_flow.rb:1073:10:1073:13 | ...[...] | -| array_flow.rb:1073:10:1073:10 | b [element] | array_flow.rb:1073:10:1073:13 | ...[...] | -| array_flow.rb:1074:10:1074:10 | b [element] | array_flow.rb:1074:10:1074:13 | ...[...] | -| array_flow.rb:1075:10:1075:10 | b [element] | array_flow.rb:1075:10:1075:13 | ...[...] | -| array_flow.rb:1077:5:1077:5 | b [element 0] | array_flow.rb:1078:10:1078:10 | b [element 0] | -| array_flow.rb:1077:5:1077:5 | b [element 2] | array_flow.rb:1080:10:1080:10 | b [element 2] | -| array_flow.rb:1077:5:1077:5 | b [element 3] | array_flow.rb:1081:10:1081:10 | b [element 3] | -| array_flow.rb:1077:9:1077:9 | a [element 0] | array_flow.rb:1077:9:1077:19 | call to rotate [element 0] | -| array_flow.rb:1077:9:1077:9 | a [element 2] | array_flow.rb:1077:9:1077:19 | call to rotate [element 2] | -| array_flow.rb:1077:9:1077:9 | a [element 3] | array_flow.rb:1077:9:1077:19 | call to rotate [element 3] | -| array_flow.rb:1077:9:1077:19 | call to rotate [element 0] | array_flow.rb:1077:5:1077:5 | b [element 0] | -| array_flow.rb:1077:9:1077:19 | call to rotate [element 2] | array_flow.rb:1077:5:1077:5 | b [element 2] | -| array_flow.rb:1077:9:1077:19 | call to rotate [element 3] | array_flow.rb:1077:5:1077:5 | b [element 3] | -| array_flow.rb:1078:10:1078:10 | b [element 0] | array_flow.rb:1078:10:1078:13 | ...[...] | -| array_flow.rb:1080:10:1080:10 | b [element 2] | array_flow.rb:1080:10:1080:13 | ...[...] | -| array_flow.rb:1081:10:1081:10 | b [element 3] | array_flow.rb:1081:10:1081:13 | ...[...] | -| array_flow.rb:1083:5:1083:5 | b [element] | array_flow.rb:1084:10:1084:10 | b [element] | -| array_flow.rb:1083:5:1083:5 | b [element] | array_flow.rb:1085:10:1085:10 | b [element] | -| array_flow.rb:1083:5:1083:5 | b [element] | array_flow.rb:1086:10:1086:10 | b [element] | -| array_flow.rb:1083:5:1083:5 | b [element] | array_flow.rb:1087:10:1087:10 | b [element] | -| array_flow.rb:1083:9:1083:9 | a [element 0] | array_flow.rb:1083:9:1083:19 | call to rotate [element] | -| array_flow.rb:1083:9:1083:9 | a [element 2] | array_flow.rb:1083:9:1083:19 | call to rotate [element] | -| array_flow.rb:1083:9:1083:9 | a [element 3] | array_flow.rb:1083:9:1083:19 | call to rotate [element] | -| array_flow.rb:1083:9:1083:19 | call to rotate [element] | array_flow.rb:1083:5:1083:5 | b [element] | -| array_flow.rb:1084:10:1084:10 | b [element] | array_flow.rb:1084:10:1084:13 | ...[...] | -| array_flow.rb:1085:10:1085:10 | b [element] | array_flow.rb:1085:10:1085:13 | ...[...] | -| array_flow.rb:1086:10:1086:10 | b [element] | array_flow.rb:1086:10:1086:13 | ...[...] | -| array_flow.rb:1087:10:1087:10 | b [element] | array_flow.rb:1087:10:1087:13 | ...[...] | -| array_flow.rb:1095:5:1095:5 | a [element 0] | array_flow.rb:1096:9:1096:9 | a [element 0] | -| array_flow.rb:1095:5:1095:5 | a [element 2] | array_flow.rb:1096:9:1096:9 | a [element 2] | -| array_flow.rb:1095:5:1095:5 | a [element 3] | array_flow.rb:1096:9:1096:9 | a [element 3] | -| array_flow.rb:1095:10:1095:22 | call to source | array_flow.rb:1095:5:1095:5 | a [element 0] | -| array_flow.rb:1095:28:1095:40 | call to source | array_flow.rb:1095:5:1095:5 | a [element 2] | -| array_flow.rb:1095:43:1095:55 | call to source | array_flow.rb:1095:5:1095:5 | a [element 3] | -| array_flow.rb:1096:5:1096:5 | b [element 1] | array_flow.rb:1102:10:1102:10 | b [element 1] | -| array_flow.rb:1096:5:1096:5 | b [element 2] | array_flow.rb:1103:10:1103:10 | b [element 2] | -| array_flow.rb:1096:5:1096:5 | b [element] | array_flow.rb:1101:10:1101:10 | b [element] | -| array_flow.rb:1096:5:1096:5 | b [element] | array_flow.rb:1102:10:1102:10 | b [element] | -| array_flow.rb:1096:5:1096:5 | b [element] | array_flow.rb:1103:10:1103:10 | b [element] | -| array_flow.rb:1096:5:1096:5 | b [element] | array_flow.rb:1104:10:1104:10 | b [element] | -| array_flow.rb:1096:9:1096:9 | [post] a [element 1] | array_flow.rb:1098:10:1098:10 | a [element 1] | -| array_flow.rb:1096:9:1096:9 | [post] a [element 2] | array_flow.rb:1099:10:1099:10 | a [element 2] | -| array_flow.rb:1096:9:1096:9 | [post] a [element] | array_flow.rb:1097:10:1097:10 | a [element] | -| array_flow.rb:1096:9:1096:9 | [post] a [element] | array_flow.rb:1098:10:1098:10 | a [element] | -| array_flow.rb:1096:9:1096:9 | [post] a [element] | array_flow.rb:1099:10:1099:10 | a [element] | -| array_flow.rb:1096:9:1096:9 | [post] a [element] | array_flow.rb:1100:10:1100:10 | a [element] | -| array_flow.rb:1096:9:1096:9 | a [element 0] | array_flow.rb:1096:9:1096:9 | [post] a [element] | -| array_flow.rb:1096:9:1096:9 | a [element 0] | array_flow.rb:1096:9:1096:17 | call to rotate! [element] | -| array_flow.rb:1096:9:1096:9 | a [element 2] | array_flow.rb:1096:9:1096:9 | [post] a [element 1] | -| array_flow.rb:1096:9:1096:9 | a [element 2] | array_flow.rb:1096:9:1096:17 | call to rotate! [element 1] | -| array_flow.rb:1096:9:1096:9 | a [element 3] | array_flow.rb:1096:9:1096:9 | [post] a [element 2] | -| array_flow.rb:1096:9:1096:9 | a [element 3] | array_flow.rb:1096:9:1096:17 | call to rotate! [element 2] | -| array_flow.rb:1096:9:1096:17 | call to rotate! [element 1] | array_flow.rb:1096:5:1096:5 | b [element 1] | -| array_flow.rb:1096:9:1096:17 | call to rotate! [element 2] | array_flow.rb:1096:5:1096:5 | b [element 2] | -| array_flow.rb:1096:9:1096:17 | call to rotate! [element] | array_flow.rb:1096:5:1096:5 | b [element] | -| array_flow.rb:1097:10:1097:10 | a [element] | array_flow.rb:1097:10:1097:13 | ...[...] | -| array_flow.rb:1098:10:1098:10 | a [element 1] | array_flow.rb:1098:10:1098:13 | ...[...] | -| array_flow.rb:1098:10:1098:10 | a [element] | array_flow.rb:1098:10:1098:13 | ...[...] | -| array_flow.rb:1099:10:1099:10 | a [element 2] | array_flow.rb:1099:10:1099:13 | ...[...] | -| array_flow.rb:1099:10:1099:10 | a [element] | array_flow.rb:1099:10:1099:13 | ...[...] | -| array_flow.rb:1100:10:1100:10 | a [element] | array_flow.rb:1100:10:1100:13 | ...[...] | -| array_flow.rb:1101:10:1101:10 | b [element] | array_flow.rb:1101:10:1101:13 | ...[...] | -| array_flow.rb:1102:10:1102:10 | b [element 1] | array_flow.rb:1102:10:1102:13 | ...[...] | -| array_flow.rb:1102:10:1102:10 | b [element] | array_flow.rb:1102:10:1102:13 | ...[...] | -| array_flow.rb:1103:10:1103:10 | b [element 2] | array_flow.rb:1103:10:1103:13 | ...[...] | -| array_flow.rb:1103:10:1103:10 | b [element] | array_flow.rb:1103:10:1103:13 | ...[...] | -| array_flow.rb:1104:10:1104:10 | b [element] | array_flow.rb:1104:10:1104:13 | ...[...] | -| array_flow.rb:1106:5:1106:5 | a [element 0] | array_flow.rb:1107:9:1107:9 | a [element 0] | -| array_flow.rb:1106:5:1106:5 | a [element 2] | array_flow.rb:1107:9:1107:9 | a [element 2] | -| array_flow.rb:1106:5:1106:5 | a [element 3] | array_flow.rb:1107:9:1107:9 | a [element 3] | -| array_flow.rb:1106:10:1106:22 | call to source | array_flow.rb:1106:5:1106:5 | a [element 0] | -| array_flow.rb:1106:28:1106:40 | call to source | array_flow.rb:1106:5:1106:5 | a [element 2] | -| array_flow.rb:1106:43:1106:55 | call to source | array_flow.rb:1106:5:1106:5 | a [element 3] | -| array_flow.rb:1107:5:1107:5 | b [element 0] | array_flow.rb:1112:10:1112:10 | b [element 0] | -| array_flow.rb:1107:5:1107:5 | b [element 1] | array_flow.rb:1113:10:1113:10 | b [element 1] | -| array_flow.rb:1107:5:1107:5 | b [element] | array_flow.rb:1112:10:1112:10 | b [element] | -| array_flow.rb:1107:5:1107:5 | b [element] | array_flow.rb:1113:10:1113:10 | b [element] | -| array_flow.rb:1107:5:1107:5 | b [element] | array_flow.rb:1114:10:1114:10 | b [element] | -| array_flow.rb:1107:5:1107:5 | b [element] | array_flow.rb:1115:10:1115:10 | b [element] | -| array_flow.rb:1107:9:1107:9 | [post] a [element 0] | array_flow.rb:1108:10:1108:10 | a [element 0] | -| array_flow.rb:1107:9:1107:9 | [post] a [element 1] | array_flow.rb:1109:10:1109:10 | a [element 1] | -| array_flow.rb:1107:9:1107:9 | [post] a [element] | array_flow.rb:1108:10:1108:10 | a [element] | -| array_flow.rb:1107:9:1107:9 | [post] a [element] | array_flow.rb:1109:10:1109:10 | a [element] | -| array_flow.rb:1107:9:1107:9 | [post] a [element] | array_flow.rb:1110:10:1110:10 | a [element] | -| array_flow.rb:1107:9:1107:9 | [post] a [element] | array_flow.rb:1111:10:1111:10 | a [element] | -| array_flow.rb:1107:9:1107:9 | a [element 0] | array_flow.rb:1107:9:1107:9 | [post] a [element] | -| array_flow.rb:1107:9:1107:9 | a [element 0] | array_flow.rb:1107:9:1107:20 | call to rotate! [element] | -| array_flow.rb:1107:9:1107:9 | a [element 2] | array_flow.rb:1107:9:1107:9 | [post] a [element 0] | -| array_flow.rb:1107:9:1107:9 | a [element 2] | array_flow.rb:1107:9:1107:20 | call to rotate! [element 0] | -| array_flow.rb:1107:9:1107:9 | a [element 3] | array_flow.rb:1107:9:1107:9 | [post] a [element 1] | -| array_flow.rb:1107:9:1107:9 | a [element 3] | array_flow.rb:1107:9:1107:20 | call to rotate! [element 1] | -| array_flow.rb:1107:9:1107:20 | call to rotate! [element 0] | array_flow.rb:1107:5:1107:5 | b [element 0] | -| array_flow.rb:1107:9:1107:20 | call to rotate! [element 1] | array_flow.rb:1107:5:1107:5 | b [element 1] | -| array_flow.rb:1107:9:1107:20 | call to rotate! [element] | array_flow.rb:1107:5:1107:5 | b [element] | -| array_flow.rb:1108:10:1108:10 | a [element 0] | array_flow.rb:1108:10:1108:13 | ...[...] | -| array_flow.rb:1108:10:1108:10 | a [element] | array_flow.rb:1108:10:1108:13 | ...[...] | -| array_flow.rb:1109:10:1109:10 | a [element 1] | array_flow.rb:1109:10:1109:13 | ...[...] | -| array_flow.rb:1109:10:1109:10 | a [element] | array_flow.rb:1109:10:1109:13 | ...[...] | -| array_flow.rb:1110:10:1110:10 | a [element] | array_flow.rb:1110:10:1110:13 | ...[...] | -| array_flow.rb:1111:10:1111:10 | a [element] | array_flow.rb:1111:10:1111:13 | ...[...] | -| array_flow.rb:1112:10:1112:10 | b [element 0] | array_flow.rb:1112:10:1112:13 | ...[...] | -| array_flow.rb:1112:10:1112:10 | b [element] | array_flow.rb:1112:10:1112:13 | ...[...] | -| array_flow.rb:1113:10:1113:10 | b [element 1] | array_flow.rb:1113:10:1113:13 | ...[...] | -| array_flow.rb:1113:10:1113:10 | b [element] | array_flow.rb:1113:10:1113:13 | ...[...] | -| array_flow.rb:1114:10:1114:10 | b [element] | array_flow.rb:1114:10:1114:13 | ...[...] | -| array_flow.rb:1115:10:1115:10 | b [element] | array_flow.rb:1115:10:1115:13 | ...[...] | -| array_flow.rb:1117:5:1117:5 | a [element 0] | array_flow.rb:1118:9:1118:9 | a [element 0] | -| array_flow.rb:1117:5:1117:5 | a [element 2] | array_flow.rb:1118:9:1118:9 | a [element 2] | -| array_flow.rb:1117:5:1117:5 | a [element 3] | array_flow.rb:1118:9:1118:9 | a [element 3] | -| array_flow.rb:1117:10:1117:22 | call to source | array_flow.rb:1117:5:1117:5 | a [element 0] | -| array_flow.rb:1117:28:1117:40 | call to source | array_flow.rb:1117:5:1117:5 | a [element 2] | -| array_flow.rb:1117:43:1117:55 | call to source | array_flow.rb:1117:5:1117:5 | a [element 3] | -| array_flow.rb:1118:5:1118:5 | b [element 0] | array_flow.rb:1123:10:1123:10 | b [element 0] | -| array_flow.rb:1118:5:1118:5 | b [element 2] | array_flow.rb:1125:10:1125:10 | b [element 2] | -| array_flow.rb:1118:5:1118:5 | b [element 3] | array_flow.rb:1126:10:1126:10 | b [element 3] | -| array_flow.rb:1118:9:1118:9 | [post] a [element 0] | array_flow.rb:1119:10:1119:10 | a [element 0] | -| array_flow.rb:1118:9:1118:9 | [post] a [element 2] | array_flow.rb:1121:10:1121:10 | a [element 2] | -| array_flow.rb:1118:9:1118:9 | [post] a [element 3] | array_flow.rb:1122:10:1122:10 | a [element 3] | -| array_flow.rb:1118:9:1118:9 | a [element 0] | array_flow.rb:1118:9:1118:9 | [post] a [element 0] | -| array_flow.rb:1118:9:1118:9 | a [element 0] | array_flow.rb:1118:9:1118:20 | call to rotate! [element 0] | -| array_flow.rb:1118:9:1118:9 | a [element 2] | array_flow.rb:1118:9:1118:9 | [post] a [element 2] | -| array_flow.rb:1118:9:1118:9 | a [element 2] | array_flow.rb:1118:9:1118:20 | call to rotate! [element 2] | -| array_flow.rb:1118:9:1118:9 | a [element 3] | array_flow.rb:1118:9:1118:9 | [post] a [element 3] | -| array_flow.rb:1118:9:1118:9 | a [element 3] | array_flow.rb:1118:9:1118:20 | call to rotate! [element 3] | -| array_flow.rb:1118:9:1118:20 | call to rotate! [element 0] | array_flow.rb:1118:5:1118:5 | b [element 0] | -| array_flow.rb:1118:9:1118:20 | call to rotate! [element 2] | array_flow.rb:1118:5:1118:5 | b [element 2] | -| array_flow.rb:1118:9:1118:20 | call to rotate! [element 3] | array_flow.rb:1118:5:1118:5 | b [element 3] | -| array_flow.rb:1119:10:1119:10 | a [element 0] | array_flow.rb:1119:10:1119:13 | ...[...] | -| array_flow.rb:1121:10:1121:10 | a [element 2] | array_flow.rb:1121:10:1121:13 | ...[...] | -| array_flow.rb:1122:10:1122:10 | a [element 3] | array_flow.rb:1122:10:1122:13 | ...[...] | -| array_flow.rb:1123:10:1123:10 | b [element 0] | array_flow.rb:1123:10:1123:13 | ...[...] | -| array_flow.rb:1125:10:1125:10 | b [element 2] | array_flow.rb:1125:10:1125:13 | ...[...] | -| array_flow.rb:1126:10:1126:10 | b [element 3] | array_flow.rb:1126:10:1126:13 | ...[...] | -| array_flow.rb:1128:5:1128:5 | a [element 0] | array_flow.rb:1129:9:1129:9 | a [element 0] | -| array_flow.rb:1128:5:1128:5 | a [element 2] | array_flow.rb:1129:9:1129:9 | a [element 2] | -| array_flow.rb:1128:5:1128:5 | a [element 3] | array_flow.rb:1129:9:1129:9 | a [element 3] | -| array_flow.rb:1128:10:1128:22 | call to source | array_flow.rb:1128:5:1128:5 | a [element 0] | -| array_flow.rb:1128:28:1128:40 | call to source | array_flow.rb:1128:5:1128:5 | a [element 2] | -| array_flow.rb:1128:43:1128:55 | call to source | array_flow.rb:1128:5:1128:5 | a [element 3] | -| array_flow.rb:1129:5:1129:5 | b [element] | array_flow.rb:1134:10:1134:10 | b [element] | -| array_flow.rb:1129:5:1129:5 | b [element] | array_flow.rb:1135:10:1135:10 | b [element] | -| array_flow.rb:1129:5:1129:5 | b [element] | array_flow.rb:1136:10:1136:10 | b [element] | -| array_flow.rb:1129:5:1129:5 | b [element] | array_flow.rb:1137:10:1137:10 | b [element] | -| array_flow.rb:1129:9:1129:9 | [post] a [element] | array_flow.rb:1130:10:1130:10 | a [element] | -| array_flow.rb:1129:9:1129:9 | [post] a [element] | array_flow.rb:1131:10:1131:10 | a [element] | -| array_flow.rb:1129:9:1129:9 | [post] a [element] | array_flow.rb:1132:10:1132:10 | a [element] | -| array_flow.rb:1129:9:1129:9 | [post] a [element] | array_flow.rb:1133:10:1133:10 | a [element] | -| array_flow.rb:1129:9:1129:9 | a [element 0] | array_flow.rb:1129:9:1129:9 | [post] a [element] | -| array_flow.rb:1129:9:1129:9 | a [element 0] | array_flow.rb:1129:9:1129:20 | call to rotate! [element] | -| array_flow.rb:1129:9:1129:9 | a [element 2] | array_flow.rb:1129:9:1129:9 | [post] a [element] | -| array_flow.rb:1129:9:1129:9 | a [element 2] | array_flow.rb:1129:9:1129:20 | call to rotate! [element] | -| array_flow.rb:1129:9:1129:9 | a [element 3] | array_flow.rb:1129:9:1129:9 | [post] a [element] | -| array_flow.rb:1129:9:1129:9 | a [element 3] | array_flow.rb:1129:9:1129:20 | call to rotate! [element] | -| array_flow.rb:1129:9:1129:20 | call to rotate! [element] | array_flow.rb:1129:5:1129:5 | b [element] | -| array_flow.rb:1130:10:1130:10 | a [element] | array_flow.rb:1130:10:1130:13 | ...[...] | -| array_flow.rb:1131:10:1131:10 | a [element] | array_flow.rb:1131:10:1131:13 | ...[...] | -| array_flow.rb:1132:10:1132:10 | a [element] | array_flow.rb:1132:10:1132:13 | ...[...] | -| array_flow.rb:1133:10:1133:10 | a [element] | array_flow.rb:1133:10:1133:13 | ...[...] | -| array_flow.rb:1134:10:1134:10 | b [element] | array_flow.rb:1134:10:1134:13 | ...[...] | -| array_flow.rb:1135:10:1135:10 | b [element] | array_flow.rb:1135:10:1135:13 | ...[...] | -| array_flow.rb:1136:10:1136:10 | b [element] | array_flow.rb:1136:10:1136:13 | ...[...] | -| array_flow.rb:1137:10:1137:10 | b [element] | array_flow.rb:1137:10:1137:13 | ...[...] | -| array_flow.rb:1141:5:1141:5 | a [element 3] | array_flow.rb:1142:9:1142:9 | a [element 3] | -| array_flow.rb:1141:19:1141:29 | call to source | array_flow.rb:1141:5:1141:5 | a [element 3] | -| array_flow.rb:1142:5:1142:5 | b [element] | array_flow.rb:1145:10:1145:10 | b [element] | -| array_flow.rb:1142:9:1142:9 | a [element 3] | array_flow.rb:1142:9:1144:7 | call to select [element] | -| array_flow.rb:1142:9:1142:9 | a [element 3] | array_flow.rb:1142:22:1142:22 | x | -| array_flow.rb:1142:9:1144:7 | call to select [element] | array_flow.rb:1142:5:1142:5 | b [element] | -| array_flow.rb:1142:22:1142:22 | x | array_flow.rb:1143:14:1143:14 | x | -| array_flow.rb:1145:10:1145:10 | b [element] | array_flow.rb:1145:10:1145:13 | ...[...] | -| array_flow.rb:1149:5:1149:5 | a [element 2] | array_flow.rb:1150:9:1150:9 | a [element 2] | -| array_flow.rb:1149:16:1149:26 | call to source | array_flow.rb:1149:5:1149:5 | a [element 2] | -| array_flow.rb:1150:5:1150:5 | b [element] | array_flow.rb:1155:10:1155:10 | b [element] | -| array_flow.rb:1150:9:1150:9 | [post] a [element] | array_flow.rb:1154:10:1154:10 | a [element] | -| array_flow.rb:1150:9:1150:9 | a [element 2] | array_flow.rb:1150:9:1150:9 | [post] a [element] | -| array_flow.rb:1150:9:1150:9 | a [element 2] | array_flow.rb:1150:9:1153:7 | call to select! [element] | -| array_flow.rb:1150:9:1150:9 | a [element 2] | array_flow.rb:1150:23:1150:23 | x | -| array_flow.rb:1150:9:1153:7 | call to select! [element] | array_flow.rb:1150:5:1150:5 | b [element] | -| array_flow.rb:1150:23:1150:23 | x | array_flow.rb:1151:14:1151:14 | x | -| array_flow.rb:1154:10:1154:10 | a [element] | array_flow.rb:1154:10:1154:13 | ...[...] | -| array_flow.rb:1155:10:1155:10 | b [element] | array_flow.rb:1155:10:1155:13 | ...[...] | -| array_flow.rb:1159:5:1159:5 | a [element 0] | array_flow.rb:1160:9:1160:9 | a [element 0] | -| array_flow.rb:1159:5:1159:5 | a [element 2] | array_flow.rb:1160:9:1160:9 | a [element 2] | -| array_flow.rb:1159:10:1159:22 | call to source | array_flow.rb:1159:5:1159:5 | a [element 0] | -| array_flow.rb:1159:28:1159:40 | call to source | array_flow.rb:1159:5:1159:5 | a [element 2] | -| array_flow.rb:1160:5:1160:5 | b | array_flow.rb:1161:10:1161:10 | b | -| array_flow.rb:1160:9:1160:9 | [post] a [element 1] | array_flow.rb:1163:10:1163:10 | a [element 1] | -| array_flow.rb:1160:9:1160:9 | a [element 0] | array_flow.rb:1160:9:1160:15 | call to shift | -| array_flow.rb:1160:9:1160:9 | a [element 2] | array_flow.rb:1160:9:1160:9 | [post] a [element 1] | -| array_flow.rb:1160:9:1160:15 | call to shift | array_flow.rb:1160:5:1160:5 | b | -| array_flow.rb:1163:10:1163:10 | a [element 1] | array_flow.rb:1163:10:1163:13 | ...[...] | -| array_flow.rb:1166:5:1166:5 | a [element 0] | array_flow.rb:1167:9:1167:9 | a [element 0] | -| array_flow.rb:1166:5:1166:5 | a [element 2] | array_flow.rb:1167:9:1167:9 | a [element 2] | -| array_flow.rb:1166:10:1166:22 | call to source | array_flow.rb:1166:5:1166:5 | a [element 0] | -| array_flow.rb:1166:28:1166:40 | call to source | array_flow.rb:1166:5:1166:5 | a [element 2] | -| array_flow.rb:1167:5:1167:5 | b [element 0] | array_flow.rb:1168:10:1168:10 | b [element 0] | -| array_flow.rb:1167:9:1167:9 | [post] a [element 0] | array_flow.rb:1170:10:1170:10 | a [element 0] | -| array_flow.rb:1167:9:1167:9 | a [element 0] | array_flow.rb:1167:9:1167:18 | call to shift [element 0] | -| array_flow.rb:1167:9:1167:9 | a [element 2] | array_flow.rb:1167:9:1167:9 | [post] a [element 0] | -| array_flow.rb:1167:9:1167:18 | call to shift [element 0] | array_flow.rb:1167:5:1167:5 | b [element 0] | -| array_flow.rb:1168:10:1168:10 | b [element 0] | array_flow.rb:1168:10:1168:13 | ...[...] | -| array_flow.rb:1170:10:1170:10 | a [element 0] | array_flow.rb:1170:10:1170:13 | ...[...] | -| array_flow.rb:1174:5:1174:5 | a [element 0] | array_flow.rb:1175:9:1175:9 | a [element 0] | -| array_flow.rb:1174:5:1174:5 | a [element 0] | array_flow.rb:1178:10:1178:10 | a [element 0] | -| array_flow.rb:1174:5:1174:5 | a [element 2] | array_flow.rb:1175:9:1175:9 | a [element 2] | -| array_flow.rb:1174:5:1174:5 | a [element 2] | array_flow.rb:1180:10:1180:10 | a [element 2] | -| array_flow.rb:1174:10:1174:22 | call to source | array_flow.rb:1174:5:1174:5 | a [element 0] | -| array_flow.rb:1174:28:1174:40 | call to source | array_flow.rb:1174:5:1174:5 | a [element 2] | -| array_flow.rb:1175:5:1175:5 | b [element] | array_flow.rb:1176:10:1176:10 | b [element] | -| array_flow.rb:1175:5:1175:5 | b [element] | array_flow.rb:1177:10:1177:10 | b [element] | -| array_flow.rb:1175:9:1175:9 | [post] a [element] | array_flow.rb:1178:10:1178:10 | a [element] | -| array_flow.rb:1175:9:1175:9 | [post] a [element] | array_flow.rb:1179:10:1179:10 | a [element] | -| array_flow.rb:1175:9:1175:9 | [post] a [element] | array_flow.rb:1180:10:1180:10 | a [element] | -| array_flow.rb:1175:9:1175:9 | a [element 0] | array_flow.rb:1175:9:1175:9 | [post] a [element] | -| array_flow.rb:1175:9:1175:9 | a [element 0] | array_flow.rb:1175:9:1175:18 | call to shift [element] | -| array_flow.rb:1175:9:1175:9 | a [element 2] | array_flow.rb:1175:9:1175:9 | [post] a [element] | -| array_flow.rb:1175:9:1175:9 | a [element 2] | array_flow.rb:1175:9:1175:18 | call to shift [element] | -| array_flow.rb:1175:9:1175:18 | call to shift [element] | array_flow.rb:1175:5:1175:5 | b [element] | -| array_flow.rb:1176:10:1176:10 | b [element] | array_flow.rb:1176:10:1176:13 | ...[...] | -| array_flow.rb:1177:10:1177:10 | b [element] | array_flow.rb:1177:10:1177:13 | ...[...] | -| array_flow.rb:1178:10:1178:10 | a [element 0] | array_flow.rb:1178:10:1178:13 | ...[...] | -| array_flow.rb:1178:10:1178:10 | a [element] | array_flow.rb:1178:10:1178:13 | ...[...] | -| array_flow.rb:1179:10:1179:10 | a [element] | array_flow.rb:1179:10:1179:13 | ...[...] | -| array_flow.rb:1180:10:1180:10 | a [element 2] | array_flow.rb:1180:10:1180:13 | ...[...] | -| array_flow.rb:1180:10:1180:10 | a [element] | array_flow.rb:1180:10:1180:13 | ...[...] | -| array_flow.rb:1184:5:1184:5 | a [element 2] | array_flow.rb:1185:9:1185:9 | a [element 2] | -| array_flow.rb:1184:5:1184:5 | a [element 2] | array_flow.rb:1188:10:1188:10 | a [element 2] | -| array_flow.rb:1184:16:1184:26 | call to source | array_flow.rb:1184:5:1184:5 | a [element 2] | -| array_flow.rb:1185:5:1185:5 | b [element] | array_flow.rb:1189:10:1189:10 | b [element] | -| array_flow.rb:1185:5:1185:5 | b [element] | array_flow.rb:1190:10:1190:10 | b [element] | -| array_flow.rb:1185:5:1185:5 | b [element] | array_flow.rb:1191:10:1191:10 | b [element] | -| array_flow.rb:1185:9:1185:9 | a [element 2] | array_flow.rb:1185:9:1185:17 | call to shuffle [element] | -| array_flow.rb:1185:9:1185:17 | call to shuffle [element] | array_flow.rb:1185:5:1185:5 | b [element] | -| array_flow.rb:1188:10:1188:10 | a [element 2] | array_flow.rb:1188:10:1188:13 | ...[...] | -| array_flow.rb:1189:10:1189:10 | b [element] | array_flow.rb:1189:10:1189:13 | ...[...] | -| array_flow.rb:1190:10:1190:10 | b [element] | array_flow.rb:1190:10:1190:13 | ...[...] | -| array_flow.rb:1191:10:1191:10 | b [element] | array_flow.rb:1191:10:1191:13 | ...[...] | -| array_flow.rb:1195:5:1195:5 | a [element 2] | array_flow.rb:1196:9:1196:9 | a [element 2] | -| array_flow.rb:1195:5:1195:5 | a [element 2] | array_flow.rb:1199:10:1199:10 | a [element 2] | -| array_flow.rb:1195:16:1195:26 | call to source | array_flow.rb:1195:5:1195:5 | a [element 2] | -| array_flow.rb:1196:5:1196:5 | b [element] | array_flow.rb:1200:10:1200:10 | b [element] | -| array_flow.rb:1196:5:1196:5 | b [element] | array_flow.rb:1201:10:1201:10 | b [element] | -| array_flow.rb:1196:5:1196:5 | b [element] | array_flow.rb:1202:10:1202:10 | b [element] | -| array_flow.rb:1196:9:1196:9 | [post] a [element] | array_flow.rb:1197:10:1197:10 | a [element] | -| array_flow.rb:1196:9:1196:9 | [post] a [element] | array_flow.rb:1198:10:1198:10 | a [element] | -| array_flow.rb:1196:9:1196:9 | [post] a [element] | array_flow.rb:1199:10:1199:10 | a [element] | -| array_flow.rb:1196:9:1196:9 | a [element 2] | array_flow.rb:1196:9:1196:9 | [post] a [element] | -| array_flow.rb:1196:9:1196:9 | a [element 2] | array_flow.rb:1196:9:1196:18 | call to shuffle! [element] | -| array_flow.rb:1196:9:1196:18 | call to shuffle! [element] | array_flow.rb:1196:5:1196:5 | b [element] | -| array_flow.rb:1197:10:1197:10 | a [element] | array_flow.rb:1197:10:1197:13 | ...[...] | -| array_flow.rb:1198:10:1198:10 | a [element] | array_flow.rb:1198:10:1198:13 | ...[...] | -| array_flow.rb:1199:10:1199:10 | a [element 2] | array_flow.rb:1199:10:1199:13 | ...[...] | -| array_flow.rb:1199:10:1199:10 | a [element] | array_flow.rb:1199:10:1199:13 | ...[...] | -| array_flow.rb:1200:10:1200:10 | b [element] | array_flow.rb:1200:10:1200:13 | ...[...] | -| array_flow.rb:1201:10:1201:10 | b [element] | array_flow.rb:1201:10:1201:13 | ...[...] | -| array_flow.rb:1202:10:1202:10 | b [element] | array_flow.rb:1202:10:1202:13 | ...[...] | -| array_flow.rb:1206:5:1206:5 | a [element 2] | array_flow.rb:1211:9:1211:9 | a [element 2] | -| array_flow.rb:1206:5:1206:5 | a [element 2] | array_flow.rb:1214:9:1214:9 | a [element 2] | -| array_flow.rb:1206:5:1206:5 | a [element 2] | array_flow.rb:1221:9:1221:9 | a [element 2] | -| array_flow.rb:1206:5:1206:5 | a [element 2] | array_flow.rb:1226:9:1226:9 | a [element 2] | -| array_flow.rb:1206:5:1206:5 | a [element 2] | array_flow.rb:1230:9:1230:9 | a [element 2] | -| array_flow.rb:1206:5:1206:5 | a [element 2] | array_flow.rb:1235:9:1235:9 | a [element 2] | -| array_flow.rb:1206:5:1206:5 | a [element 2] | array_flow.rb:1240:9:1240:9 | a [element 2] | -| array_flow.rb:1206:5:1206:5 | a [element 2] | array_flow.rb:1244:9:1244:9 | a [element 2] | -| array_flow.rb:1206:5:1206:5 | a [element 2] | array_flow.rb:1248:9:1248:9 | a [element 2] | -| array_flow.rb:1206:5:1206:5 | a [element 2] | array_flow.rb:1253:9:1253:9 | a [element 2] | -| array_flow.rb:1206:5:1206:5 | a [element 4] | array_flow.rb:1208:9:1208:9 | a [element 4] | -| array_flow.rb:1206:5:1206:5 | a [element 4] | array_flow.rb:1211:9:1211:9 | a [element 4] | -| array_flow.rb:1206:5:1206:5 | a [element 4] | array_flow.rb:1214:9:1214:9 | a [element 4] | -| array_flow.rb:1206:5:1206:5 | a [element 4] | array_flow.rb:1221:9:1221:9 | a [element 4] | -| array_flow.rb:1206:5:1206:5 | a [element 4] | array_flow.rb:1226:9:1226:9 | a [element 4] | -| array_flow.rb:1206:5:1206:5 | a [element 4] | array_flow.rb:1240:9:1240:9 | a [element 4] | -| array_flow.rb:1206:5:1206:5 | a [element 4] | array_flow.rb:1244:9:1244:9 | a [element 4] | -| array_flow.rb:1206:5:1206:5 | a [element 4] | array_flow.rb:1253:9:1253:9 | a [element 4] | -| array_flow.rb:1206:16:1206:28 | call to source | array_flow.rb:1206:5:1206:5 | a [element 2] | -| array_flow.rb:1206:34:1206:46 | call to source | array_flow.rb:1206:5:1206:5 | a [element 4] | -| array_flow.rb:1208:5:1208:5 | b | array_flow.rb:1209:10:1209:10 | b | -| array_flow.rb:1208:9:1208:9 | a [element 4] | array_flow.rb:1208:9:1208:17 | call to slice | -| array_flow.rb:1208:9:1208:17 | call to slice | array_flow.rb:1208:5:1208:5 | b | -| array_flow.rb:1211:5:1211:5 | b | array_flow.rb:1212:10:1212:10 | b | -| array_flow.rb:1211:9:1211:9 | a [element 2] | array_flow.rb:1211:9:1211:19 | call to slice | -| array_flow.rb:1211:9:1211:9 | a [element 4] | array_flow.rb:1211:9:1211:19 | call to slice | -| array_flow.rb:1211:9:1211:19 | call to slice | array_flow.rb:1211:5:1211:5 | b | -| array_flow.rb:1214:5:1214:5 | b | array_flow.rb:1216:10:1216:10 | b | -| array_flow.rb:1214:9:1214:9 | a [element 2] | array_flow.rb:1214:9:1214:17 | call to slice | -| array_flow.rb:1214:9:1214:9 | a [element 4] | array_flow.rb:1214:9:1214:17 | call to slice | -| array_flow.rb:1214:9:1214:17 | call to slice | array_flow.rb:1214:5:1214:5 | b | -| array_flow.rb:1221:5:1221:5 | b [element 0] | array_flow.rb:1222:10:1222:10 | b [element 0] | -| array_flow.rb:1221:5:1221:5 | b [element 2] | array_flow.rb:1224:10:1224:10 | b [element 2] | -| array_flow.rb:1221:9:1221:9 | a [element 2] | array_flow.rb:1221:9:1221:21 | call to slice [element 0] | -| array_flow.rb:1221:9:1221:9 | a [element 4] | array_flow.rb:1221:9:1221:21 | call to slice [element 2] | -| array_flow.rb:1221:9:1221:21 | call to slice [element 0] | array_flow.rb:1221:5:1221:5 | b [element 0] | -| array_flow.rb:1221:9:1221:21 | call to slice [element 2] | array_flow.rb:1221:5:1221:5 | b [element 2] | -| array_flow.rb:1222:10:1222:10 | b [element 0] | array_flow.rb:1222:10:1222:13 | ...[...] | -| array_flow.rb:1224:10:1224:10 | b [element 2] | array_flow.rb:1224:10:1224:13 | ...[...] | -| array_flow.rb:1226:5:1226:5 | b [element] | array_flow.rb:1227:10:1227:10 | b [element] | -| array_flow.rb:1226:5:1226:5 | b [element] | array_flow.rb:1228:10:1228:10 | b [element] | -| array_flow.rb:1226:9:1226:9 | a [element 2] | array_flow.rb:1226:9:1226:21 | call to slice [element] | -| array_flow.rb:1226:9:1226:9 | a [element 4] | array_flow.rb:1226:9:1226:21 | call to slice [element] | -| array_flow.rb:1226:9:1226:21 | call to slice [element] | array_flow.rb:1226:5:1226:5 | b [element] | -| array_flow.rb:1227:10:1227:10 | b [element] | array_flow.rb:1227:10:1227:13 | ...[...] | -| array_flow.rb:1228:10:1228:10 | b [element] | array_flow.rb:1228:10:1228:13 | ...[...] | -| array_flow.rb:1230:5:1230:5 | b [element 0] | array_flow.rb:1231:10:1231:10 | b [element 0] | -| array_flow.rb:1230:9:1230:9 | a [element 2] | array_flow.rb:1230:9:1230:21 | call to slice [element 0] | -| array_flow.rb:1230:9:1230:21 | call to slice [element 0] | array_flow.rb:1230:5:1230:5 | b [element 0] | -| array_flow.rb:1231:10:1231:10 | b [element 0] | array_flow.rb:1231:10:1231:13 | ...[...] | -| array_flow.rb:1235:5:1235:5 | b [element 0] | array_flow.rb:1236:10:1236:10 | b [element 0] | -| array_flow.rb:1235:9:1235:9 | a [element 2] | array_flow.rb:1235:9:1235:22 | call to slice [element 0] | -| array_flow.rb:1235:9:1235:22 | call to slice [element 0] | array_flow.rb:1235:5:1235:5 | b [element 0] | -| array_flow.rb:1236:10:1236:10 | b [element 0] | array_flow.rb:1236:10:1236:13 | ...[...] | -| array_flow.rb:1240:5:1240:5 | b [element] | array_flow.rb:1241:10:1241:10 | b [element] | -| array_flow.rb:1240:5:1240:5 | b [element] | array_flow.rb:1242:10:1242:10 | b [element] | -| array_flow.rb:1240:9:1240:9 | a [element 2] | array_flow.rb:1240:9:1240:21 | call to slice [element] | -| array_flow.rb:1240:9:1240:9 | a [element 4] | array_flow.rb:1240:9:1240:21 | call to slice [element] | -| array_flow.rb:1240:9:1240:21 | call to slice [element] | array_flow.rb:1240:5:1240:5 | b [element] | -| array_flow.rb:1241:10:1241:10 | b [element] | array_flow.rb:1241:10:1241:13 | ...[...] | -| array_flow.rb:1242:10:1242:10 | b [element] | array_flow.rb:1242:10:1242:13 | ...[...] | -| array_flow.rb:1244:5:1244:5 | b [element] | array_flow.rb:1245:10:1245:10 | b [element] | -| array_flow.rb:1244:5:1244:5 | b [element] | array_flow.rb:1246:10:1246:10 | b [element] | -| array_flow.rb:1244:9:1244:9 | a [element 2] | array_flow.rb:1244:9:1244:24 | call to slice [element] | -| array_flow.rb:1244:9:1244:9 | a [element 4] | array_flow.rb:1244:9:1244:24 | call to slice [element] | -| array_flow.rb:1244:9:1244:24 | call to slice [element] | array_flow.rb:1244:5:1244:5 | b [element] | -| array_flow.rb:1245:10:1245:10 | b [element] | array_flow.rb:1245:10:1245:13 | ...[...] | -| array_flow.rb:1246:10:1246:10 | b [element] | array_flow.rb:1246:10:1246:13 | ...[...] | -| array_flow.rb:1248:5:1248:5 | b [element 2] | array_flow.rb:1251:10:1251:10 | b [element 2] | -| array_flow.rb:1248:9:1248:9 | a [element 2] | array_flow.rb:1248:9:1248:20 | call to slice [element 2] | -| array_flow.rb:1248:9:1248:20 | call to slice [element 2] | array_flow.rb:1248:5:1248:5 | b [element 2] | -| array_flow.rb:1251:10:1251:10 | b [element 2] | array_flow.rb:1251:10:1251:13 | ...[...] | -| array_flow.rb:1253:5:1253:5 | b [element] | array_flow.rb:1254:10:1254:10 | b [element] | -| array_flow.rb:1253:5:1253:5 | b [element] | array_flow.rb:1255:10:1255:10 | b [element] | -| array_flow.rb:1253:5:1253:5 | b [element] | array_flow.rb:1256:10:1256:10 | b [element] | -| array_flow.rb:1253:9:1253:9 | a [element 2] | array_flow.rb:1253:9:1253:20 | call to slice [element] | -| array_flow.rb:1253:9:1253:9 | a [element 4] | array_flow.rb:1253:9:1253:20 | call to slice [element] | -| array_flow.rb:1253:9:1253:20 | call to slice [element] | array_flow.rb:1253:5:1253:5 | b [element] | -| array_flow.rb:1254:10:1254:10 | b [element] | array_flow.rb:1254:10:1254:13 | ...[...] | -| array_flow.rb:1255:10:1255:10 | b [element] | array_flow.rb:1255:10:1255:13 | ...[...] | -| array_flow.rb:1256:10:1256:10 | b [element] | array_flow.rb:1256:10:1256:13 | ...[...] | -| array_flow.rb:1260:5:1260:5 | a [element 2] | array_flow.rb:1261:9:1261:9 | a [element 2] | -| array_flow.rb:1260:5:1260:5 | a [element 4] | array_flow.rb:1261:9:1261:9 | a [element 4] | -| array_flow.rb:1260:16:1260:28 | call to source | array_flow.rb:1260:5:1260:5 | a [element 2] | -| array_flow.rb:1260:34:1260:46 | call to source | array_flow.rb:1260:5:1260:5 | a [element 4] | -| array_flow.rb:1261:5:1261:5 | b | array_flow.rb:1262:10:1262:10 | b | -| array_flow.rb:1261:9:1261:9 | [post] a [element 3] | array_flow.rb:1266:10:1266:10 | a [element 3] | -| array_flow.rb:1261:9:1261:9 | a [element 2] | array_flow.rb:1261:9:1261:19 | call to slice! | -| array_flow.rb:1261:9:1261:9 | a [element 4] | array_flow.rb:1261:9:1261:9 | [post] a [element 3] | -| array_flow.rb:1261:9:1261:19 | call to slice! | array_flow.rb:1261:5:1261:5 | b | -| array_flow.rb:1266:10:1266:10 | a [element 3] | array_flow.rb:1266:10:1266:13 | ...[...] | -| array_flow.rb:1268:5:1268:5 | a [element 2] | array_flow.rb:1269:9:1269:9 | a [element 2] | -| array_flow.rb:1268:5:1268:5 | a [element 4] | array_flow.rb:1269:9:1269:9 | a [element 4] | -| array_flow.rb:1268:16:1268:28 | call to source | array_flow.rb:1268:5:1268:5 | a [element 2] | -| array_flow.rb:1268:34:1268:46 | call to source | array_flow.rb:1268:5:1268:5 | a [element 4] | -| array_flow.rb:1269:5:1269:5 | b | array_flow.rb:1275:10:1275:10 | b | -| array_flow.rb:1269:5:1269:5 | b [element] | array_flow.rb:1277:10:1277:10 | b [element] | -| array_flow.rb:1269:9:1269:9 | [post] a [element] | array_flow.rb:1270:10:1270:10 | a [element] | -| array_flow.rb:1269:9:1269:9 | [post] a [element] | array_flow.rb:1271:10:1271:10 | a [element] | -| array_flow.rb:1269:9:1269:9 | [post] a [element] | array_flow.rb:1272:10:1272:10 | a [element] | -| array_flow.rb:1269:9:1269:9 | [post] a [element] | array_flow.rb:1273:10:1273:10 | a [element] | -| array_flow.rb:1269:9:1269:9 | a [element 2] | array_flow.rb:1269:9:1269:9 | [post] a [element] | -| array_flow.rb:1269:9:1269:9 | a [element 2] | array_flow.rb:1269:9:1269:19 | call to slice! | -| array_flow.rb:1269:9:1269:9 | a [element 2] | array_flow.rb:1269:9:1269:19 | call to slice! [element] | -| array_flow.rb:1269:9:1269:9 | a [element 4] | array_flow.rb:1269:9:1269:9 | [post] a [element] | -| array_flow.rb:1269:9:1269:9 | a [element 4] | array_flow.rb:1269:9:1269:19 | call to slice! | -| array_flow.rb:1269:9:1269:9 | a [element 4] | array_flow.rb:1269:9:1269:19 | call to slice! [element] | -| array_flow.rb:1269:9:1269:19 | call to slice! | array_flow.rb:1269:5:1269:5 | b | -| array_flow.rb:1269:9:1269:19 | call to slice! [element] | array_flow.rb:1269:5:1269:5 | b [element] | -| array_flow.rb:1270:10:1270:10 | a [element] | array_flow.rb:1270:10:1270:13 | ...[...] | -| array_flow.rb:1271:10:1271:10 | a [element] | array_flow.rb:1271:10:1271:13 | ...[...] | -| array_flow.rb:1272:10:1272:10 | a [element] | array_flow.rb:1272:10:1272:13 | ...[...] | -| array_flow.rb:1273:10:1273:10 | a [element] | array_flow.rb:1273:10:1273:13 | ...[...] | -| array_flow.rb:1277:10:1277:10 | b [element] | array_flow.rb:1277:10:1277:13 | ...[...] | -| array_flow.rb:1279:5:1279:5 | a [element 2] | array_flow.rb:1280:9:1280:9 | a [element 2] | -| array_flow.rb:1279:5:1279:5 | a [element 4] | array_flow.rb:1280:9:1280:9 | a [element 4] | -| array_flow.rb:1279:16:1279:28 | call to source | array_flow.rb:1279:5:1279:5 | a [element 2] | -| array_flow.rb:1279:34:1279:46 | call to source | array_flow.rb:1279:5:1279:5 | a [element 4] | -| array_flow.rb:1280:5:1280:5 | b [element 0] | array_flow.rb:1281:10:1281:10 | b [element 0] | -| array_flow.rb:1280:5:1280:5 | b [element 2] | array_flow.rb:1283:10:1283:10 | b [element 2] | -| array_flow.rb:1280:9:1280:9 | a [element 2] | array_flow.rb:1280:9:1280:22 | call to slice! [element 0] | -| array_flow.rb:1280:9:1280:9 | a [element 4] | array_flow.rb:1280:9:1280:22 | call to slice! [element 2] | -| array_flow.rb:1280:9:1280:22 | call to slice! [element 0] | array_flow.rb:1280:5:1280:5 | b [element 0] | -| array_flow.rb:1280:9:1280:22 | call to slice! [element 2] | array_flow.rb:1280:5:1280:5 | b [element 2] | -| array_flow.rb:1281:10:1281:10 | b [element 0] | array_flow.rb:1281:10:1281:13 | ...[...] | -| array_flow.rb:1283:10:1283:10 | b [element 2] | array_flow.rb:1283:10:1283:13 | ...[...] | -| array_flow.rb:1290:5:1290:5 | a [element 2] | array_flow.rb:1291:9:1291:9 | a [element 2] | -| array_flow.rb:1290:5:1290:5 | a [element 4] | array_flow.rb:1291:9:1291:9 | a [element 4] | -| array_flow.rb:1290:16:1290:28 | call to source | array_flow.rb:1290:5:1290:5 | a [element 2] | -| array_flow.rb:1290:34:1290:46 | call to source | array_flow.rb:1290:5:1290:5 | a [element 4] | -| array_flow.rb:1291:5:1291:5 | b [element 0] | array_flow.rb:1292:10:1292:10 | b [element 0] | -| array_flow.rb:1291:9:1291:9 | [post] a [element 2] | array_flow.rb:1297:10:1297:10 | a [element 2] | -| array_flow.rb:1291:9:1291:9 | a [element 2] | array_flow.rb:1291:9:1291:22 | call to slice! [element 0] | -| array_flow.rb:1291:9:1291:9 | a [element 4] | array_flow.rb:1291:9:1291:9 | [post] a [element 2] | -| array_flow.rb:1291:9:1291:22 | call to slice! [element 0] | array_flow.rb:1291:5:1291:5 | b [element 0] | -| array_flow.rb:1292:10:1292:10 | b [element 0] | array_flow.rb:1292:10:1292:13 | ...[...] | -| array_flow.rb:1297:10:1297:10 | a [element 2] | array_flow.rb:1297:10:1297:13 | ...[...] | -| array_flow.rb:1301:5:1301:5 | a [element 2] | array_flow.rb:1302:9:1302:9 | a [element 2] | -| array_flow.rb:1301:5:1301:5 | a [element 4] | array_flow.rb:1302:9:1302:9 | a [element 4] | -| array_flow.rb:1301:16:1301:28 | call to source | array_flow.rb:1301:5:1301:5 | a [element 2] | -| array_flow.rb:1301:34:1301:46 | call to source | array_flow.rb:1301:5:1301:5 | a [element 4] | -| array_flow.rb:1302:5:1302:5 | b [element 0] | array_flow.rb:1303:10:1303:10 | b [element 0] | -| array_flow.rb:1302:9:1302:9 | [post] a [element 2] | array_flow.rb:1308:10:1308:10 | a [element 2] | -| array_flow.rb:1302:9:1302:9 | a [element 2] | array_flow.rb:1302:9:1302:23 | call to slice! [element 0] | -| array_flow.rb:1302:9:1302:9 | a [element 4] | array_flow.rb:1302:9:1302:9 | [post] a [element 2] | -| array_flow.rb:1302:9:1302:23 | call to slice! [element 0] | array_flow.rb:1302:5:1302:5 | b [element 0] | -| array_flow.rb:1303:10:1303:10 | b [element 0] | array_flow.rb:1303:10:1303:13 | ...[...] | -| array_flow.rb:1308:10:1308:10 | a [element 2] | array_flow.rb:1308:10:1308:13 | ...[...] | -| array_flow.rb:1312:5:1312:5 | a [element 2] | array_flow.rb:1313:9:1313:9 | a [element 2] | -| array_flow.rb:1312:5:1312:5 | a [element 4] | array_flow.rb:1313:9:1313:9 | a [element 4] | -| array_flow.rb:1312:16:1312:28 | call to source | array_flow.rb:1312:5:1312:5 | a [element 2] | -| array_flow.rb:1312:34:1312:46 | call to source | array_flow.rb:1312:5:1312:5 | a [element 4] | -| array_flow.rb:1313:5:1313:5 | b [element] | array_flow.rb:1314:10:1314:10 | b [element] | -| array_flow.rb:1313:5:1313:5 | b [element] | array_flow.rb:1315:10:1315:10 | b [element] | -| array_flow.rb:1313:5:1313:5 | b [element] | array_flow.rb:1316:10:1316:10 | b [element] | -| array_flow.rb:1313:9:1313:9 | [post] a [element] | array_flow.rb:1317:10:1317:10 | a [element] | -| array_flow.rb:1313:9:1313:9 | [post] a [element] | array_flow.rb:1318:10:1318:10 | a [element] | -| array_flow.rb:1313:9:1313:9 | [post] a [element] | array_flow.rb:1319:10:1319:10 | a [element] | -| array_flow.rb:1313:9:1313:9 | a [element 2] | array_flow.rb:1313:9:1313:9 | [post] a [element] | -| array_flow.rb:1313:9:1313:9 | a [element 2] | array_flow.rb:1313:9:1313:22 | call to slice! [element] | -| array_flow.rb:1313:9:1313:9 | a [element 4] | array_flow.rb:1313:9:1313:9 | [post] a [element] | -| array_flow.rb:1313:9:1313:9 | a [element 4] | array_flow.rb:1313:9:1313:22 | call to slice! [element] | -| array_flow.rb:1313:9:1313:22 | call to slice! [element] | array_flow.rb:1313:5:1313:5 | b [element] | -| array_flow.rb:1314:10:1314:10 | b [element] | array_flow.rb:1314:10:1314:13 | ...[...] | -| array_flow.rb:1315:10:1315:10 | b [element] | array_flow.rb:1315:10:1315:13 | ...[...] | -| array_flow.rb:1316:10:1316:10 | b [element] | array_flow.rb:1316:10:1316:13 | ...[...] | -| array_flow.rb:1317:10:1317:10 | a [element] | array_flow.rb:1317:10:1317:13 | ...[...] | -| array_flow.rb:1318:10:1318:10 | a [element] | array_flow.rb:1318:10:1318:13 | ...[...] | -| array_flow.rb:1319:10:1319:10 | a [element] | array_flow.rb:1319:10:1319:13 | ...[...] | -| array_flow.rb:1321:5:1321:5 | a [element 2] | array_flow.rb:1322:9:1322:9 | a [element 2] | -| array_flow.rb:1321:5:1321:5 | a [element 4] | array_flow.rb:1322:9:1322:9 | a [element 4] | -| array_flow.rb:1321:16:1321:28 | call to source | array_flow.rb:1321:5:1321:5 | a [element 2] | -| array_flow.rb:1321:34:1321:46 | call to source | array_flow.rb:1321:5:1321:5 | a [element 4] | -| array_flow.rb:1322:5:1322:5 | b [element] | array_flow.rb:1323:10:1323:10 | b [element] | -| array_flow.rb:1322:5:1322:5 | b [element] | array_flow.rb:1324:10:1324:10 | b [element] | -| array_flow.rb:1322:5:1322:5 | b [element] | array_flow.rb:1325:10:1325:10 | b [element] | -| array_flow.rb:1322:9:1322:9 | [post] a [element] | array_flow.rb:1326:10:1326:10 | a [element] | -| array_flow.rb:1322:9:1322:9 | [post] a [element] | array_flow.rb:1327:10:1327:10 | a [element] | -| array_flow.rb:1322:9:1322:9 | [post] a [element] | array_flow.rb:1328:10:1328:10 | a [element] | -| array_flow.rb:1322:9:1322:9 | a [element 2] | array_flow.rb:1322:9:1322:9 | [post] a [element] | -| array_flow.rb:1322:9:1322:9 | a [element 2] | array_flow.rb:1322:9:1322:22 | call to slice! [element] | -| array_flow.rb:1322:9:1322:9 | a [element 4] | array_flow.rb:1322:9:1322:9 | [post] a [element] | -| array_flow.rb:1322:9:1322:9 | a [element 4] | array_flow.rb:1322:9:1322:22 | call to slice! [element] | -| array_flow.rb:1322:9:1322:22 | call to slice! [element] | array_flow.rb:1322:5:1322:5 | b [element] | -| array_flow.rb:1323:10:1323:10 | b [element] | array_flow.rb:1323:10:1323:13 | ...[...] | -| array_flow.rb:1324:10:1324:10 | b [element] | array_flow.rb:1324:10:1324:13 | ...[...] | -| array_flow.rb:1325:10:1325:10 | b [element] | array_flow.rb:1325:10:1325:13 | ...[...] | -| array_flow.rb:1326:10:1326:10 | a [element] | array_flow.rb:1326:10:1326:13 | ...[...] | -| array_flow.rb:1327:10:1327:10 | a [element] | array_flow.rb:1327:10:1327:13 | ...[...] | -| array_flow.rb:1328:10:1328:10 | a [element] | array_flow.rb:1328:10:1328:13 | ...[...] | -| array_flow.rb:1330:5:1330:5 | a [element 2] | array_flow.rb:1331:9:1331:9 | a [element 2] | -| array_flow.rb:1330:5:1330:5 | a [element 4] | array_flow.rb:1331:9:1331:9 | a [element 4] | -| array_flow.rb:1330:16:1330:28 | call to source | array_flow.rb:1330:5:1330:5 | a [element 2] | -| array_flow.rb:1330:34:1330:46 | call to source | array_flow.rb:1330:5:1330:5 | a [element 4] | -| array_flow.rb:1331:5:1331:5 | b [element] | array_flow.rb:1332:10:1332:10 | b [element] | -| array_flow.rb:1331:5:1331:5 | b [element] | array_flow.rb:1333:10:1333:10 | b [element] | -| array_flow.rb:1331:5:1331:5 | b [element] | array_flow.rb:1334:10:1334:10 | b [element] | -| array_flow.rb:1331:9:1331:9 | [post] a [element] | array_flow.rb:1335:10:1335:10 | a [element] | -| array_flow.rb:1331:9:1331:9 | [post] a [element] | array_flow.rb:1336:10:1336:10 | a [element] | -| array_flow.rb:1331:9:1331:9 | [post] a [element] | array_flow.rb:1337:10:1337:10 | a [element] | -| array_flow.rb:1331:9:1331:9 | a [element 2] | array_flow.rb:1331:9:1331:9 | [post] a [element] | -| array_flow.rb:1331:9:1331:9 | a [element 2] | array_flow.rb:1331:9:1331:25 | call to slice! [element] | -| array_flow.rb:1331:9:1331:9 | a [element 4] | array_flow.rb:1331:9:1331:9 | [post] a [element] | -| array_flow.rb:1331:9:1331:9 | a [element 4] | array_flow.rb:1331:9:1331:25 | call to slice! [element] | -| array_flow.rb:1331:9:1331:25 | call to slice! [element] | array_flow.rb:1331:5:1331:5 | b [element] | -| array_flow.rb:1332:10:1332:10 | b [element] | array_flow.rb:1332:10:1332:13 | ...[...] | -| array_flow.rb:1333:10:1333:10 | b [element] | array_flow.rb:1333:10:1333:13 | ...[...] | -| array_flow.rb:1334:10:1334:10 | b [element] | array_flow.rb:1334:10:1334:13 | ...[...] | -| array_flow.rb:1335:10:1335:10 | a [element] | array_flow.rb:1335:10:1335:13 | ...[...] | -| array_flow.rb:1336:10:1336:10 | a [element] | array_flow.rb:1336:10:1336:13 | ...[...] | -| array_flow.rb:1337:10:1337:10 | a [element] | array_flow.rb:1337:10:1337:13 | ...[...] | -| array_flow.rb:1339:5:1339:5 | a [element 2] | array_flow.rb:1340:9:1340:9 | a [element 2] | -| array_flow.rb:1339:5:1339:5 | a [element 4] | array_flow.rb:1340:9:1340:9 | a [element 4] | -| array_flow.rb:1339:16:1339:28 | call to source | array_flow.rb:1339:5:1339:5 | a [element 2] | -| array_flow.rb:1339:34:1339:46 | call to source | array_flow.rb:1339:5:1339:5 | a [element 4] | -| array_flow.rb:1340:5:1340:5 | b [element 2] | array_flow.rb:1343:10:1343:10 | b [element 2] | -| array_flow.rb:1340:9:1340:9 | [post] a [element 1] | array_flow.rb:1345:10:1345:10 | a [element 1] | -| array_flow.rb:1340:9:1340:9 | a [element 2] | array_flow.rb:1340:9:1340:21 | call to slice! [element 2] | -| array_flow.rb:1340:9:1340:9 | a [element 4] | array_flow.rb:1340:9:1340:9 | [post] a [element 1] | -| array_flow.rb:1340:9:1340:21 | call to slice! [element 2] | array_flow.rb:1340:5:1340:5 | b [element 2] | -| array_flow.rb:1343:10:1343:10 | b [element 2] | array_flow.rb:1343:10:1343:13 | ...[...] | -| array_flow.rb:1345:10:1345:10 | a [element 1] | array_flow.rb:1345:10:1345:13 | ...[...] | -| array_flow.rb:1348:5:1348:5 | a [element 2] | array_flow.rb:1349:9:1349:9 | a [element 2] | -| array_flow.rb:1348:5:1348:5 | a [element 4] | array_flow.rb:1349:9:1349:9 | a [element 4] | -| array_flow.rb:1348:16:1348:28 | call to source | array_flow.rb:1348:5:1348:5 | a [element 2] | -| array_flow.rb:1348:34:1348:46 | call to source | array_flow.rb:1348:5:1348:5 | a [element 4] | -| array_flow.rb:1349:5:1349:5 | b [element] | array_flow.rb:1350:10:1350:10 | b [element] | -| array_flow.rb:1349:5:1349:5 | b [element] | array_flow.rb:1351:10:1351:10 | b [element] | -| array_flow.rb:1349:5:1349:5 | b [element] | array_flow.rb:1352:10:1352:10 | b [element] | -| array_flow.rb:1349:9:1349:9 | [post] a [element] | array_flow.rb:1353:10:1353:10 | a [element] | -| array_flow.rb:1349:9:1349:9 | [post] a [element] | array_flow.rb:1354:10:1354:10 | a [element] | -| array_flow.rb:1349:9:1349:9 | [post] a [element] | array_flow.rb:1355:10:1355:10 | a [element] | -| array_flow.rb:1349:9:1349:9 | a [element 2] | array_flow.rb:1349:9:1349:9 | [post] a [element] | -| array_flow.rb:1349:9:1349:9 | a [element 2] | array_flow.rb:1349:9:1349:21 | call to slice! [element] | -| array_flow.rb:1349:9:1349:9 | a [element 4] | array_flow.rb:1349:9:1349:9 | [post] a [element] | -| array_flow.rb:1349:9:1349:9 | a [element 4] | array_flow.rb:1349:9:1349:21 | call to slice! [element] | -| array_flow.rb:1349:9:1349:21 | call to slice! [element] | array_flow.rb:1349:5:1349:5 | b [element] | -| array_flow.rb:1350:10:1350:10 | b [element] | array_flow.rb:1350:10:1350:13 | ...[...] | -| array_flow.rb:1351:10:1351:10 | b [element] | array_flow.rb:1351:10:1351:13 | ...[...] | -| array_flow.rb:1352:10:1352:10 | b [element] | array_flow.rb:1352:10:1352:13 | ...[...] | -| array_flow.rb:1353:10:1353:10 | a [element] | array_flow.rb:1353:10:1353:13 | ...[...] | -| array_flow.rb:1354:10:1354:10 | a [element] | array_flow.rb:1354:10:1354:13 | ...[...] | -| array_flow.rb:1355:10:1355:10 | a [element] | array_flow.rb:1355:10:1355:13 | ...[...] | -| array_flow.rb:1359:5:1359:5 | a [element 2] | array_flow.rb:1360:9:1360:9 | a [element 2] | -| array_flow.rb:1359:16:1359:26 | call to source | array_flow.rb:1359:5:1359:5 | a [element 2] | -| array_flow.rb:1360:9:1360:9 | a [element 2] | array_flow.rb:1360:27:1360:27 | x | -| array_flow.rb:1360:27:1360:27 | x | array_flow.rb:1361:14:1361:14 | x | -| array_flow.rb:1367:5:1367:5 | a [element 2] | array_flow.rb:1368:9:1368:9 | a [element 2] | -| array_flow.rb:1367:16:1367:26 | call to source | array_flow.rb:1367:5:1367:5 | a [element 2] | -| array_flow.rb:1368:9:1368:9 | a [element 2] | array_flow.rb:1368:28:1368:28 | x | -| array_flow.rb:1368:28:1368:28 | x | array_flow.rb:1369:14:1369:14 | x | -| array_flow.rb:1375:5:1375:5 | a [element 2] | array_flow.rb:1376:9:1376:9 | a [element 2] | -| array_flow.rb:1375:16:1375:26 | call to source | array_flow.rb:1375:5:1375:5 | a [element 2] | -| array_flow.rb:1376:9:1376:9 | a [element 2] | array_flow.rb:1376:26:1376:26 | x | -| array_flow.rb:1376:9:1376:9 | a [element 2] | array_flow.rb:1376:29:1376:29 | y | -| array_flow.rb:1376:26:1376:26 | x | array_flow.rb:1377:14:1377:14 | x | -| array_flow.rb:1376:29:1376:29 | y | array_flow.rb:1378:14:1378:14 | y | -| array_flow.rb:1383:5:1383:5 | a [element 2] | array_flow.rb:1384:9:1384:9 | a [element 2] | -| array_flow.rb:1383:5:1383:5 | a [element 2] | array_flow.rb:1387:9:1387:9 | a [element 2] | -| array_flow.rb:1383:16:1383:26 | call to source | array_flow.rb:1383:5:1383:5 | a [element 2] | -| array_flow.rb:1384:5:1384:5 | b [element] | array_flow.rb:1385:10:1385:10 | b [element] | -| array_flow.rb:1384:5:1384:5 | b [element] | array_flow.rb:1386:10:1386:10 | b [element] | -| array_flow.rb:1384:9:1384:9 | a [element 2] | array_flow.rb:1384:9:1384:14 | call to sort [element] | -| array_flow.rb:1384:9:1384:14 | call to sort [element] | array_flow.rb:1384:5:1384:5 | b [element] | -| array_flow.rb:1385:10:1385:10 | b [element] | array_flow.rb:1385:10:1385:13 | ...[...] | -| array_flow.rb:1386:10:1386:10 | b [element] | array_flow.rb:1386:10:1386:13 | ...[...] | -| array_flow.rb:1387:5:1387:5 | c [element] | array_flow.rb:1392:10:1392:10 | c [element] | -| array_flow.rb:1387:5:1387:5 | c [element] | array_flow.rb:1393:10:1393:10 | c [element] | -| array_flow.rb:1387:9:1387:9 | a [element 2] | array_flow.rb:1387:9:1391:7 | call to sort [element] | -| array_flow.rb:1387:9:1387:9 | a [element 2] | array_flow.rb:1387:20:1387:20 | x | -| array_flow.rb:1387:9:1387:9 | a [element 2] | array_flow.rb:1387:23:1387:23 | y | -| array_flow.rb:1387:9:1391:7 | call to sort [element] | array_flow.rb:1387:5:1387:5 | c [element] | -| array_flow.rb:1387:20:1387:20 | x | array_flow.rb:1388:14:1388:14 | x | -| array_flow.rb:1387:23:1387:23 | y | array_flow.rb:1389:14:1389:14 | y | -| array_flow.rb:1392:10:1392:10 | c [element] | array_flow.rb:1392:10:1392:13 | ...[...] | -| array_flow.rb:1393:10:1393:10 | c [element] | array_flow.rb:1393:10:1393:13 | ...[...] | -| array_flow.rb:1397:5:1397:5 | a [element 2] | array_flow.rb:1398:9:1398:9 | a [element 2] | -| array_flow.rb:1397:16:1397:26 | call to source | array_flow.rb:1397:5:1397:5 | a [element 2] | -| array_flow.rb:1398:5:1398:5 | b [element] | array_flow.rb:1399:10:1399:10 | b [element] | -| array_flow.rb:1398:5:1398:5 | b [element] | array_flow.rb:1400:10:1400:10 | b [element] | -| array_flow.rb:1398:9:1398:9 | [post] a [element] | array_flow.rb:1401:10:1401:10 | a [element] | -| array_flow.rb:1398:9:1398:9 | [post] a [element] | array_flow.rb:1402:10:1402:10 | a [element] | -| array_flow.rb:1398:9:1398:9 | a [element 2] | array_flow.rb:1398:9:1398:9 | [post] a [element] | -| array_flow.rb:1398:9:1398:9 | a [element 2] | array_flow.rb:1398:9:1398:15 | call to sort! [element] | -| array_flow.rb:1398:9:1398:15 | call to sort! [element] | array_flow.rb:1398:5:1398:5 | b [element] | -| array_flow.rb:1399:10:1399:10 | b [element] | array_flow.rb:1399:10:1399:13 | ...[...] | -| array_flow.rb:1400:10:1400:10 | b [element] | array_flow.rb:1400:10:1400:13 | ...[...] | -| array_flow.rb:1401:10:1401:10 | a [element] | array_flow.rb:1401:10:1401:13 | ...[...] | -| array_flow.rb:1402:10:1402:10 | a [element] | array_flow.rb:1402:10:1402:13 | ...[...] | -| array_flow.rb:1404:5:1404:5 | a [element 2] | array_flow.rb:1405:9:1405:9 | a [element 2] | -| array_flow.rb:1404:16:1404:26 | call to source | array_flow.rb:1404:5:1404:5 | a [element 2] | -| array_flow.rb:1405:5:1405:5 | b [element] | array_flow.rb:1410:10:1410:10 | b [element] | -| array_flow.rb:1405:5:1405:5 | b [element] | array_flow.rb:1411:10:1411:10 | b [element] | -| array_flow.rb:1405:9:1405:9 | [post] a [element] | array_flow.rb:1412:10:1412:10 | a [element] | -| array_flow.rb:1405:9:1405:9 | [post] a [element] | array_flow.rb:1413:10:1413:10 | a [element] | -| array_flow.rb:1405:9:1405:9 | a [element 2] | array_flow.rb:1405:9:1405:9 | [post] a [element] | -| array_flow.rb:1405:9:1405:9 | a [element 2] | array_flow.rb:1405:9:1409:7 | call to sort! [element] | -| array_flow.rb:1405:9:1405:9 | a [element 2] | array_flow.rb:1405:21:1405:21 | x | -| array_flow.rb:1405:9:1405:9 | a [element 2] | array_flow.rb:1405:24:1405:24 | y | -| array_flow.rb:1405:9:1409:7 | call to sort! [element] | array_flow.rb:1405:5:1405:5 | b [element] | -| array_flow.rb:1405:21:1405:21 | x | array_flow.rb:1406:14:1406:14 | x | -| array_flow.rb:1405:24:1405:24 | y | array_flow.rb:1407:14:1407:14 | y | -| array_flow.rb:1410:10:1410:10 | b [element] | array_flow.rb:1410:10:1410:13 | ...[...] | -| array_flow.rb:1411:10:1411:10 | b [element] | array_flow.rb:1411:10:1411:13 | ...[...] | -| array_flow.rb:1412:10:1412:10 | a [element] | array_flow.rb:1412:10:1412:13 | ...[...] | -| array_flow.rb:1413:10:1413:10 | a [element] | array_flow.rb:1413:10:1413:13 | ...[...] | -| array_flow.rb:1417:5:1417:5 | a [element 2] | array_flow.rb:1418:9:1418:9 | a [element 2] | -| array_flow.rb:1417:16:1417:26 | call to source | array_flow.rb:1417:5:1417:5 | a [element 2] | -| array_flow.rb:1418:5:1418:5 | b [element] | array_flow.rb:1422:10:1422:10 | b [element] | -| array_flow.rb:1418:5:1418:5 | b [element] | array_flow.rb:1423:10:1423:10 | b [element] | -| array_flow.rb:1418:9:1418:9 | a [element 2] | array_flow.rb:1418:9:1421:7 | call to sort_by [element] | -| array_flow.rb:1418:9:1418:9 | a [element 2] | array_flow.rb:1418:23:1418:23 | x | -| array_flow.rb:1418:9:1421:7 | call to sort_by [element] | array_flow.rb:1418:5:1418:5 | b [element] | -| array_flow.rb:1418:23:1418:23 | x | array_flow.rb:1419:14:1419:14 | x | -| array_flow.rb:1422:10:1422:10 | b [element] | array_flow.rb:1422:10:1422:13 | ...[...] | -| array_flow.rb:1423:10:1423:10 | b [element] | array_flow.rb:1423:10:1423:13 | ...[...] | -| array_flow.rb:1427:5:1427:5 | a [element 2] | array_flow.rb:1428:9:1428:9 | a [element 2] | -| array_flow.rb:1427:16:1427:26 | call to source | array_flow.rb:1427:5:1427:5 | a [element 2] | -| array_flow.rb:1428:5:1428:5 | b [element] | array_flow.rb:1434:10:1434:10 | b [element] | -| array_flow.rb:1428:5:1428:5 | b [element] | array_flow.rb:1435:10:1435:10 | b [element] | -| array_flow.rb:1428:9:1428:9 | [post] a [element] | array_flow.rb:1432:10:1432:10 | a [element] | -| array_flow.rb:1428:9:1428:9 | [post] a [element] | array_flow.rb:1433:10:1433:10 | a [element] | -| array_flow.rb:1428:9:1428:9 | a [element 2] | array_flow.rb:1428:9:1428:9 | [post] a [element] | -| array_flow.rb:1428:9:1428:9 | a [element 2] | array_flow.rb:1428:9:1431:7 | call to sort_by! [element] | -| array_flow.rb:1428:9:1428:9 | a [element 2] | array_flow.rb:1428:24:1428:24 | x | -| array_flow.rb:1428:9:1431:7 | call to sort_by! [element] | array_flow.rb:1428:5:1428:5 | b [element] | -| array_flow.rb:1428:24:1428:24 | x | array_flow.rb:1429:14:1429:14 | x | -| array_flow.rb:1432:10:1432:10 | a [element] | array_flow.rb:1432:10:1432:13 | ...[...] | -| array_flow.rb:1433:10:1433:10 | a [element] | array_flow.rb:1433:10:1433:13 | ...[...] | -| array_flow.rb:1434:10:1434:10 | b [element] | array_flow.rb:1434:10:1434:13 | ...[...] | -| array_flow.rb:1435:10:1435:10 | b [element] | array_flow.rb:1435:10:1435:13 | ...[...] | -| array_flow.rb:1439:5:1439:5 | a [element 2] | array_flow.rb:1440:9:1440:9 | a [element 2] | -| array_flow.rb:1439:16:1439:26 | call to source | array_flow.rb:1439:5:1439:5 | a [element 2] | -| array_flow.rb:1440:9:1440:9 | a [element 2] | array_flow.rb:1440:19:1440:19 | x | -| array_flow.rb:1440:19:1440:19 | x | array_flow.rb:1441:14:1441:14 | x | -| array_flow.rb:1447:5:1447:5 | a [element 2] | array_flow.rb:1448:9:1448:9 | a [element 2] | -| array_flow.rb:1447:5:1447:5 | a [element 2] | array_flow.rb:1453:9:1453:9 | a [element 2] | -| array_flow.rb:1447:5:1447:5 | a [element 2] | array_flow.rb:1459:9:1459:9 | a [element 2] | -| array_flow.rb:1447:5:1447:5 | a [element 2] | array_flow.rb:1466:9:1466:9 | a [element 2] | -| array_flow.rb:1447:5:1447:5 | a [element 3] | array_flow.rb:1448:9:1448:9 | a [element 3] | -| array_flow.rb:1447:5:1447:5 | a [element 3] | array_flow.rb:1459:9:1459:9 | a [element 3] | -| array_flow.rb:1447:16:1447:28 | call to source | array_flow.rb:1447:5:1447:5 | a [element 2] | -| array_flow.rb:1447:31:1447:43 | call to source | array_flow.rb:1447:5:1447:5 | a [element 3] | -| array_flow.rb:1448:5:1448:5 | b [element 2] | array_flow.rb:1451:10:1451:10 | b [element 2] | -| array_flow.rb:1448:5:1448:5 | b [element 3] | array_flow.rb:1452:10:1452:10 | b [element 3] | -| array_flow.rb:1448:9:1448:9 | a [element 2] | array_flow.rb:1448:9:1448:17 | call to take [element 2] | -| array_flow.rb:1448:9:1448:9 | a [element 3] | array_flow.rb:1448:9:1448:17 | call to take [element 3] | -| array_flow.rb:1448:9:1448:17 | call to take [element 2] | array_flow.rb:1448:5:1448:5 | b [element 2] | -| array_flow.rb:1448:9:1448:17 | call to take [element 3] | array_flow.rb:1448:5:1448:5 | b [element 3] | -| array_flow.rb:1451:10:1451:10 | b [element 2] | array_flow.rb:1451:10:1451:13 | ...[...] | -| array_flow.rb:1452:10:1452:10 | b [element 3] | array_flow.rb:1452:10:1452:13 | ...[...] | -| array_flow.rb:1453:5:1453:5 | b [element 2] | array_flow.rb:1456:10:1456:10 | b [element 2] | -| array_flow.rb:1453:5:1453:5 | b [element 2] | array_flow.rb:1458:10:1458:10 | b [element 2] | -| array_flow.rb:1453:9:1453:9 | a [element 2] | array_flow.rb:1453:9:1453:17 | call to take [element 2] | -| array_flow.rb:1453:9:1453:17 | call to take [element 2] | array_flow.rb:1453:5:1453:5 | b [element 2] | -| array_flow.rb:1456:10:1456:10 | b [element 2] | array_flow.rb:1456:10:1456:13 | ...[...] | -| array_flow.rb:1458:10:1458:10 | b [element 2] | array_flow.rb:1458:10:1458:13 | ...[...] | -| array_flow.rb:1459:5:1459:5 | b [element 2] | array_flow.rb:1462:10:1462:10 | b [element 2] | -| array_flow.rb:1459:5:1459:5 | b [element 2] | array_flow.rb:1464:10:1464:10 | b [element 2] | -| array_flow.rb:1459:5:1459:5 | b [element 3] | array_flow.rb:1463:10:1463:10 | b [element 3] | -| array_flow.rb:1459:5:1459:5 | b [element 3] | array_flow.rb:1464:10:1464:10 | b [element 3] | -| array_flow.rb:1459:9:1459:9 | a [element 2] | array_flow.rb:1459:9:1459:19 | call to take [element 2] | -| array_flow.rb:1459:9:1459:9 | a [element 3] | array_flow.rb:1459:9:1459:19 | call to take [element 3] | -| array_flow.rb:1459:9:1459:19 | call to take [element 2] | array_flow.rb:1459:5:1459:5 | b [element 2] | -| array_flow.rb:1459:9:1459:19 | call to take [element 3] | array_flow.rb:1459:5:1459:5 | b [element 3] | -| array_flow.rb:1462:10:1462:10 | b [element 2] | array_flow.rb:1462:10:1462:13 | ...[...] | -| array_flow.rb:1463:10:1463:10 | b [element 3] | array_flow.rb:1463:10:1463:13 | ...[...] | -| array_flow.rb:1464:10:1464:10 | b [element 2] | array_flow.rb:1464:10:1464:13 | ...[...] | -| array_flow.rb:1464:10:1464:10 | b [element 3] | array_flow.rb:1464:10:1464:13 | ...[...] | -| array_flow.rb:1465:5:1465:5 | [post] a [element] | array_flow.rb:1466:9:1466:9 | a [element] | -| array_flow.rb:1465:12:1465:24 | call to source | array_flow.rb:1465:5:1465:5 | [post] a [element] | -| array_flow.rb:1466:5:1466:5 | b [element 2] | array_flow.rb:1467:10:1467:10 | b [element 2] | -| array_flow.rb:1466:5:1466:5 | b [element] | array_flow.rb:1467:10:1467:10 | b [element] | -| array_flow.rb:1466:9:1466:9 | a [element 2] | array_flow.rb:1466:9:1466:17 | call to take [element 2] | -| array_flow.rb:1466:9:1466:9 | a [element] | array_flow.rb:1466:9:1466:17 | call to take [element] | -| array_flow.rb:1466:9:1466:17 | call to take [element 2] | array_flow.rb:1466:5:1466:5 | b [element 2] | -| array_flow.rb:1466:9:1466:17 | call to take [element] | array_flow.rb:1466:5:1466:5 | b [element] | -| array_flow.rb:1467:10:1467:10 | b [element 2] | array_flow.rb:1467:10:1467:13 | ...[...] | -| array_flow.rb:1467:10:1467:10 | b [element] | array_flow.rb:1467:10:1467:13 | ...[...] | -| array_flow.rb:1471:5:1471:5 | a [element 2] | array_flow.rb:1472:9:1472:9 | a [element 2] | -| array_flow.rb:1471:16:1471:26 | call to source | array_flow.rb:1471:5:1471:5 | a [element 2] | -| array_flow.rb:1472:5:1472:5 | b [element 2] | array_flow.rb:1478:10:1478:10 | b [element 2] | -| array_flow.rb:1472:9:1472:9 | a [element 2] | array_flow.rb:1472:9:1475:7 | call to take_while [element 2] | -| array_flow.rb:1472:9:1472:9 | a [element 2] | array_flow.rb:1472:26:1472:26 | x | -| array_flow.rb:1472:9:1475:7 | call to take_while [element 2] | array_flow.rb:1472:5:1472:5 | b [element 2] | -| array_flow.rb:1472:26:1472:26 | x | array_flow.rb:1473:14:1473:14 | x | -| array_flow.rb:1478:10:1478:10 | b [element 2] | array_flow.rb:1478:10:1478:13 | ...[...] | -| array_flow.rb:1484:5:1484:5 | a [element 3] | array_flow.rb:1485:9:1485:9 | a [element 3] | -| array_flow.rb:1484:19:1484:29 | call to source | array_flow.rb:1484:5:1484:5 | a [element 3] | -| array_flow.rb:1485:5:1485:5 | b [element 3] | array_flow.rb:1486:10:1486:10 | b [element 3] | -| array_flow.rb:1485:9:1485:9 | a [element 3] | array_flow.rb:1485:9:1485:14 | call to to_a [element 3] | -| array_flow.rb:1485:9:1485:14 | call to to_a [element 3] | array_flow.rb:1485:5:1485:5 | b [element 3] | -| array_flow.rb:1486:10:1486:10 | b [element 3] | array_flow.rb:1486:10:1486:13 | ...[...] | -| array_flow.rb:1490:5:1490:5 | a [element 2] | array_flow.rb:1491:9:1491:9 | a [element 2] | -| array_flow.rb:1490:16:1490:26 | call to source | array_flow.rb:1490:5:1490:5 | a [element 2] | -| array_flow.rb:1491:5:1491:5 | b [element 2] | array_flow.rb:1494:10:1494:10 | b [element 2] | -| array_flow.rb:1491:9:1491:9 | a [element 2] | array_flow.rb:1491:9:1491:16 | call to to_ary [element 2] | -| array_flow.rb:1491:9:1491:16 | call to to_ary [element 2] | array_flow.rb:1491:5:1491:5 | b [element 2] | -| array_flow.rb:1494:10:1494:10 | b [element 2] | array_flow.rb:1494:10:1494:13 | ...[...] | -| array_flow.rb:1507:5:1507:5 | a [element 0, element 1] | array_flow.rb:1508:9:1508:9 | a [element 0, element 1] | -| array_flow.rb:1507:5:1507:5 | a [element 1, element 1] | array_flow.rb:1508:9:1508:9 | a [element 1, element 1] | -| array_flow.rb:1507:5:1507:5 | a [element 2, element 1] | array_flow.rb:1508:9:1508:9 | a [element 2, element 1] | -| array_flow.rb:1507:14:1507:26 | call to source | array_flow.rb:1507:5:1507:5 | a [element 0, element 1] | -| array_flow.rb:1507:34:1507:46 | call to source | array_flow.rb:1507:5:1507:5 | a [element 1, element 1] | -| array_flow.rb:1507:54:1507:66 | call to source | array_flow.rb:1507:5:1507:5 | a [element 2, element 1] | -| array_flow.rb:1508:5:1508:5 | b [element 1, element 0] | array_flow.rb:1512:10:1512:10 | b [element 1, element 0] | -| array_flow.rb:1508:5:1508:5 | b [element 1, element 1] | array_flow.rb:1513:10:1513:10 | b [element 1, element 1] | -| array_flow.rb:1508:5:1508:5 | b [element 1, element 2] | array_flow.rb:1514:10:1514:10 | b [element 1, element 2] | -| array_flow.rb:1508:9:1508:9 | a [element 0, element 1] | array_flow.rb:1508:9:1508:19 | call to transpose [element 1, element 0] | -| array_flow.rb:1508:9:1508:9 | a [element 1, element 1] | array_flow.rb:1508:9:1508:19 | call to transpose [element 1, element 1] | -| array_flow.rb:1508:9:1508:9 | a [element 2, element 1] | array_flow.rb:1508:9:1508:19 | call to transpose [element 1, element 2] | -| array_flow.rb:1508:9:1508:19 | call to transpose [element 1, element 0] | array_flow.rb:1508:5:1508:5 | b [element 1, element 0] | -| array_flow.rb:1508:9:1508:19 | call to transpose [element 1, element 1] | array_flow.rb:1508:5:1508:5 | b [element 1, element 1] | -| array_flow.rb:1508:9:1508:19 | call to transpose [element 1, element 2] | array_flow.rb:1508:5:1508:5 | b [element 1, element 2] | -| array_flow.rb:1512:10:1512:10 | b [element 1, element 0] | array_flow.rb:1512:10:1512:13 | ...[...] [element 0] | -| array_flow.rb:1512:10:1512:13 | ...[...] [element 0] | array_flow.rb:1512:10:1512:16 | ...[...] | -| array_flow.rb:1513:10:1513:10 | b [element 1, element 1] | array_flow.rb:1513:10:1513:13 | ...[...] [element 1] | -| array_flow.rb:1513:10:1513:13 | ...[...] [element 1] | array_flow.rb:1513:10:1513:16 | ...[...] | -| array_flow.rb:1514:10:1514:10 | b [element 1, element 2] | array_flow.rb:1514:10:1514:13 | ...[...] [element 2] | -| array_flow.rb:1514:10:1514:13 | ...[...] [element 2] | array_flow.rb:1514:10:1514:16 | ...[...] | -| array_flow.rb:1518:5:1518:5 | a [element 2] | array_flow.rb:1521:9:1521:9 | a [element 2] | -| array_flow.rb:1518:16:1518:28 | call to source | array_flow.rb:1518:5:1518:5 | a [element 2] | -| array_flow.rb:1519:5:1519:5 | b [element 1] | array_flow.rb:1521:17:1521:17 | b [element 1] | -| array_flow.rb:1519:13:1519:25 | call to source | array_flow.rb:1519:5:1519:5 | b [element 1] | -| array_flow.rb:1520:5:1520:5 | c [element 1] | array_flow.rb:1521:20:1521:20 | c [element 1] | -| array_flow.rb:1520:13:1520:25 | call to source | array_flow.rb:1520:5:1520:5 | c [element 1] | -| array_flow.rb:1521:5:1521:5 | d [element] | array_flow.rb:1522:10:1522:10 | d [element] | -| array_flow.rb:1521:5:1521:5 | d [element] | array_flow.rb:1523:10:1523:10 | d [element] | -| array_flow.rb:1521:5:1521:5 | d [element] | array_flow.rb:1524:10:1524:10 | d [element] | -| array_flow.rb:1521:9:1521:9 | a [element 2] | array_flow.rb:1521:9:1521:21 | call to union [element] | -| array_flow.rb:1521:9:1521:21 | call to union [element] | array_flow.rb:1521:5:1521:5 | d [element] | -| array_flow.rb:1521:17:1521:17 | b [element 1] | array_flow.rb:1521:9:1521:21 | call to union [element] | -| array_flow.rb:1521:20:1521:20 | c [element 1] | array_flow.rb:1521:9:1521:21 | call to union [element] | -| array_flow.rb:1522:10:1522:10 | d [element] | array_flow.rb:1522:10:1522:13 | ...[...] | -| array_flow.rb:1523:10:1523:10 | d [element] | array_flow.rb:1523:10:1523:13 | ...[...] | -| array_flow.rb:1524:10:1524:10 | d [element] | array_flow.rb:1524:10:1524:13 | ...[...] | -| array_flow.rb:1528:5:1528:5 | a [element 3] | array_flow.rb:1530:9:1530:9 | a [element 3] | -| array_flow.rb:1528:5:1528:5 | a [element 3] | array_flow.rb:1534:9:1534:9 | a [element 3] | -| array_flow.rb:1528:5:1528:5 | a [element 4] | array_flow.rb:1530:9:1530:9 | a [element 4] | -| array_flow.rb:1528:5:1528:5 | a [element 4] | array_flow.rb:1534:9:1534:9 | a [element 4] | -| array_flow.rb:1528:19:1528:31 | call to source | array_flow.rb:1528:5:1528:5 | a [element 3] | -| array_flow.rb:1528:34:1528:46 | call to source | array_flow.rb:1528:5:1528:5 | a [element 4] | -| array_flow.rb:1530:5:1530:5 | b [element] | array_flow.rb:1531:10:1531:10 | b [element] | -| array_flow.rb:1530:5:1530:5 | b [element] | array_flow.rb:1532:10:1532:10 | b [element] | -| array_flow.rb:1530:9:1530:9 | a [element 3] | array_flow.rb:1530:9:1530:14 | call to uniq [element] | -| array_flow.rb:1530:9:1530:9 | a [element 4] | array_flow.rb:1530:9:1530:14 | call to uniq [element] | -| array_flow.rb:1530:9:1530:14 | call to uniq [element] | array_flow.rb:1530:5:1530:5 | b [element] | -| array_flow.rb:1531:10:1531:10 | b [element] | array_flow.rb:1531:10:1531:13 | ...[...] | -| array_flow.rb:1532:10:1532:10 | b [element] | array_flow.rb:1532:10:1532:13 | ...[...] | -| array_flow.rb:1534:5:1534:5 | c [element] | array_flow.rb:1538:10:1538:10 | c [element] | -| array_flow.rb:1534:9:1534:9 | a [element 3] | array_flow.rb:1534:9:1537:7 | call to uniq [element] | -| array_flow.rb:1534:9:1534:9 | a [element 3] | array_flow.rb:1534:20:1534:20 | x | -| array_flow.rb:1534:9:1534:9 | a [element 4] | array_flow.rb:1534:9:1537:7 | call to uniq [element] | -| array_flow.rb:1534:9:1534:9 | a [element 4] | array_flow.rb:1534:20:1534:20 | x | -| array_flow.rb:1534:9:1537:7 | call to uniq [element] | array_flow.rb:1534:5:1534:5 | c [element] | -| array_flow.rb:1534:20:1534:20 | x | array_flow.rb:1535:14:1535:14 | x | -| array_flow.rb:1538:10:1538:10 | c [element] | array_flow.rb:1538:10:1538:13 | ...[...] | -| array_flow.rb:1542:5:1542:5 | a [element 2] | array_flow.rb:1543:9:1543:9 | a [element 2] | -| array_flow.rb:1542:5:1542:5 | a [element 3] | array_flow.rb:1543:9:1543:9 | a [element 3] | -| array_flow.rb:1542:16:1542:28 | call to source | array_flow.rb:1542:5:1542:5 | a [element 2] | -| array_flow.rb:1542:31:1542:43 | call to source | array_flow.rb:1542:5:1542:5 | a [element 3] | -| array_flow.rb:1543:5:1543:5 | b [element] | array_flow.rb:1544:10:1544:10 | b [element] | -| array_flow.rb:1543:5:1543:5 | b [element] | array_flow.rb:1545:10:1545:10 | b [element] | -| array_flow.rb:1543:9:1543:9 | [post] a [element] | array_flow.rb:1546:10:1546:10 | a [element] | -| array_flow.rb:1543:9:1543:9 | [post] a [element] | array_flow.rb:1547:10:1547:10 | a [element] | -| array_flow.rb:1543:9:1543:9 | a [element 2] | array_flow.rb:1543:9:1543:9 | [post] a [element] | -| array_flow.rb:1543:9:1543:9 | a [element 2] | array_flow.rb:1543:9:1543:15 | call to uniq! [element] | -| array_flow.rb:1543:9:1543:9 | a [element 3] | array_flow.rb:1543:9:1543:9 | [post] a [element] | -| array_flow.rb:1543:9:1543:9 | a [element 3] | array_flow.rb:1543:9:1543:15 | call to uniq! [element] | -| array_flow.rb:1543:9:1543:15 | call to uniq! [element] | array_flow.rb:1543:5:1543:5 | b [element] | -| array_flow.rb:1544:10:1544:10 | b [element] | array_flow.rb:1544:10:1544:13 | ...[...] | -| array_flow.rb:1545:10:1545:10 | b [element] | array_flow.rb:1545:10:1545:13 | ...[...] | -| array_flow.rb:1546:10:1546:10 | a [element] | array_flow.rb:1546:10:1546:13 | ...[...] | -| array_flow.rb:1547:10:1547:10 | a [element] | array_flow.rb:1547:10:1547:13 | ...[...] | -| array_flow.rb:1549:5:1549:5 | a [element 2] | array_flow.rb:1550:9:1550:9 | a [element 2] | -| array_flow.rb:1549:5:1549:5 | a [element 3] | array_flow.rb:1550:9:1550:9 | a [element 3] | -| array_flow.rb:1549:16:1549:28 | call to source | array_flow.rb:1549:5:1549:5 | a [element 2] | -| array_flow.rb:1549:31:1549:43 | call to source | array_flow.rb:1549:5:1549:5 | a [element 3] | -| array_flow.rb:1550:5:1550:5 | b [element] | array_flow.rb:1554:10:1554:10 | b [element] | -| array_flow.rb:1550:5:1550:5 | b [element] | array_flow.rb:1555:10:1555:10 | b [element] | -| array_flow.rb:1550:9:1550:9 | [post] a [element] | array_flow.rb:1556:10:1556:10 | a [element] | -| array_flow.rb:1550:9:1550:9 | [post] a [element] | array_flow.rb:1557:10:1557:10 | a [element] | -| array_flow.rb:1550:9:1550:9 | a [element 2] | array_flow.rb:1550:9:1550:9 | [post] a [element] | -| array_flow.rb:1550:9:1550:9 | a [element 2] | array_flow.rb:1550:9:1553:7 | call to uniq! [element] | -| array_flow.rb:1550:9:1550:9 | a [element 2] | array_flow.rb:1550:21:1550:21 | x | -| array_flow.rb:1550:9:1550:9 | a [element 3] | array_flow.rb:1550:9:1550:9 | [post] a [element] | -| array_flow.rb:1550:9:1550:9 | a [element 3] | array_flow.rb:1550:9:1553:7 | call to uniq! [element] | -| array_flow.rb:1550:9:1550:9 | a [element 3] | array_flow.rb:1550:21:1550:21 | x | -| array_flow.rb:1550:9:1553:7 | call to uniq! [element] | array_flow.rb:1550:5:1550:5 | b [element] | -| array_flow.rb:1550:21:1550:21 | x | array_flow.rb:1551:14:1551:14 | x | -| array_flow.rb:1554:10:1554:10 | b [element] | array_flow.rb:1554:10:1554:13 | ...[...] | -| array_flow.rb:1555:10:1555:10 | b [element] | array_flow.rb:1555:10:1555:13 | ...[...] | -| array_flow.rb:1556:10:1556:10 | a [element] | array_flow.rb:1556:10:1556:13 | ...[...] | -| array_flow.rb:1557:10:1557:10 | a [element] | array_flow.rb:1557:10:1557:13 | ...[...] | -| array_flow.rb:1561:5:1561:5 | a [element 2] | array_flow.rb:1562:5:1562:5 | a [element 2] | -| array_flow.rb:1561:16:1561:28 | call to source | array_flow.rb:1561:5:1561:5 | a [element 2] | -| array_flow.rb:1562:5:1562:5 | [post] a [element 2] | array_flow.rb:1565:10:1565:10 | a [element 2] | -| array_flow.rb:1562:5:1562:5 | [post] a [element 5] | array_flow.rb:1568:10:1568:10 | a [element 5] | -| array_flow.rb:1562:5:1562:5 | a [element 2] | array_flow.rb:1562:5:1562:5 | [post] a [element 5] | -| array_flow.rb:1562:21:1562:33 | call to source | array_flow.rb:1562:5:1562:5 | [post] a [element 2] | -| array_flow.rb:1565:10:1565:10 | a [element 2] | array_flow.rb:1565:10:1565:13 | ...[...] | -| array_flow.rb:1568:10:1568:10 | a [element 5] | array_flow.rb:1568:10:1568:13 | ...[...] | -| array_flow.rb:1572:5:1572:5 | a [element 1] | array_flow.rb:1574:9:1574:9 | a [element 1] | -| array_flow.rb:1572:5:1572:5 | a [element 1] | array_flow.rb:1580:9:1580:9 | a [element 1] | -| array_flow.rb:1572:5:1572:5 | a [element 1] | array_flow.rb:1584:9:1584:9 | a [element 1] | -| array_flow.rb:1572:5:1572:5 | a [element 1] | array_flow.rb:1588:9:1588:9 | a [element 1] | -| array_flow.rb:1572:5:1572:5 | a [element 3] | array_flow.rb:1580:9:1580:9 | a [element 3] | -| array_flow.rb:1572:5:1572:5 | a [element 3] | array_flow.rb:1584:9:1584:9 | a [element 3] | -| array_flow.rb:1572:5:1572:5 | a [element 3] | array_flow.rb:1588:9:1588:9 | a [element 3] | -| array_flow.rb:1572:13:1572:25 | call to source | array_flow.rb:1572:5:1572:5 | a [element 1] | -| array_flow.rb:1572:31:1572:43 | call to source | array_flow.rb:1572:5:1572:5 | a [element 3] | -| array_flow.rb:1574:5:1574:5 | b [element 1] | array_flow.rb:1576:10:1576:10 | b [element 1] | -| array_flow.rb:1574:5:1574:5 | b [element 3] | array_flow.rb:1578:10:1578:10 | b [element 3] | -| array_flow.rb:1574:9:1574:9 | a [element 1] | array_flow.rb:1574:9:1574:31 | call to values_at [element 1] | -| array_flow.rb:1574:9:1574:9 | a [element 1] | array_flow.rb:1574:9:1574:31 | call to values_at [element 3] | -| array_flow.rb:1574:9:1574:31 | call to values_at [element 1] | array_flow.rb:1574:5:1574:5 | b [element 1] | -| array_flow.rb:1574:9:1574:31 | call to values_at [element 3] | array_flow.rb:1574:5:1574:5 | b [element 3] | -| array_flow.rb:1576:10:1576:10 | b [element 1] | array_flow.rb:1576:10:1576:13 | ...[...] | -| array_flow.rb:1578:10:1578:10 | b [element 3] | array_flow.rb:1578:10:1578:13 | ...[...] | -| array_flow.rb:1580:5:1580:5 | b [element] | array_flow.rb:1581:10:1581:10 | b [element] | -| array_flow.rb:1580:5:1580:5 | b [element] | array_flow.rb:1582:10:1582:10 | b [element] | -| array_flow.rb:1580:9:1580:9 | a [element 1] | array_flow.rb:1580:9:1580:25 | call to values_at [element] | -| array_flow.rb:1580:9:1580:9 | a [element 3] | array_flow.rb:1580:9:1580:25 | call to values_at [element] | -| array_flow.rb:1580:9:1580:25 | call to values_at [element] | array_flow.rb:1580:5:1580:5 | b [element] | -| array_flow.rb:1581:10:1581:10 | b [element] | array_flow.rb:1581:10:1581:13 | ...[...] | -| array_flow.rb:1582:10:1582:10 | b [element] | array_flow.rb:1582:10:1582:13 | ...[...] | -| array_flow.rb:1584:5:1584:5 | b [element] | array_flow.rb:1585:10:1585:10 | b [element] | -| array_flow.rb:1584:5:1584:5 | b [element] | array_flow.rb:1586:10:1586:10 | b [element] | -| array_flow.rb:1584:9:1584:9 | a [element 1] | array_flow.rb:1584:9:1584:26 | call to values_at [element] | -| array_flow.rb:1584:9:1584:9 | a [element 3] | array_flow.rb:1584:9:1584:26 | call to values_at [element] | -| array_flow.rb:1584:9:1584:26 | call to values_at [element] | array_flow.rb:1584:5:1584:5 | b [element] | -| array_flow.rb:1585:10:1585:10 | b [element] | array_flow.rb:1585:10:1585:13 | ...[...] | -| array_flow.rb:1586:10:1586:10 | b [element] | array_flow.rb:1586:10:1586:13 | ...[...] | -| array_flow.rb:1588:5:1588:5 | b [element 1] | array_flow.rb:1590:10:1590:10 | b [element 1] | -| array_flow.rb:1588:5:1588:5 | b [element] | array_flow.rb:1589:10:1589:10 | b [element] | -| array_flow.rb:1588:5:1588:5 | b [element] | array_flow.rb:1590:10:1590:10 | b [element] | -| array_flow.rb:1588:5:1588:5 | b [element] | array_flow.rb:1591:10:1591:10 | b [element] | -| array_flow.rb:1588:5:1588:5 | b [element] | array_flow.rb:1592:10:1592:10 | b [element] | -| array_flow.rb:1588:9:1588:9 | a [element 1] | array_flow.rb:1588:9:1588:28 | call to values_at [element] | -| array_flow.rb:1588:9:1588:9 | a [element 3] | array_flow.rb:1588:9:1588:28 | call to values_at [element 1] | -| array_flow.rb:1588:9:1588:9 | a [element 3] | array_flow.rb:1588:9:1588:28 | call to values_at [element] | -| array_flow.rb:1588:9:1588:28 | call to values_at [element 1] | array_flow.rb:1588:5:1588:5 | b [element 1] | -| array_flow.rb:1588:9:1588:28 | call to values_at [element] | array_flow.rb:1588:5:1588:5 | b [element] | -| array_flow.rb:1589:10:1589:10 | b [element] | array_flow.rb:1589:10:1589:13 | ...[...] | -| array_flow.rb:1590:10:1590:10 | b [element 1] | array_flow.rb:1590:10:1590:13 | ...[...] | -| array_flow.rb:1590:10:1590:10 | b [element] | array_flow.rb:1590:10:1590:13 | ...[...] | -| array_flow.rb:1591:10:1591:10 | b [element] | array_flow.rb:1591:10:1591:13 | ...[...] | -| array_flow.rb:1592:10:1592:10 | b [element] | array_flow.rb:1592:10:1592:13 | ...[...] | -| array_flow.rb:1596:5:1596:5 | a [element 2] | array_flow.rb:1599:9:1599:9 | a [element 2] | -| array_flow.rb:1596:5:1596:5 | a [element 2] | array_flow.rb:1604:5:1604:5 | a [element 2] | -| array_flow.rb:1596:16:1596:28 | call to source | array_flow.rb:1596:5:1596:5 | a [element 2] | -| array_flow.rb:1597:5:1597:5 | b [element 1] | array_flow.rb:1599:15:1599:15 | b [element 1] | -| array_flow.rb:1597:5:1597:5 | b [element 1] | array_flow.rb:1604:11:1604:11 | b [element 1] | -| array_flow.rb:1597:13:1597:25 | call to source | array_flow.rb:1597:5:1597:5 | b [element 1] | -| array_flow.rb:1598:5:1598:5 | c [element 0] | array_flow.rb:1599:18:1599:18 | c [element 0] | -| array_flow.rb:1598:5:1598:5 | c [element 0] | array_flow.rb:1604:14:1604:14 | c [element 0] | -| array_flow.rb:1598:10:1598:22 | call to source | array_flow.rb:1598:5:1598:5 | c [element 0] | -| array_flow.rb:1599:5:1599:5 | d [element 0, element 2] | array_flow.rb:1601:10:1601:10 | d [element 0, element 2] | -| array_flow.rb:1599:5:1599:5 | d [element 1, element 1] | array_flow.rb:1602:10:1602:10 | d [element 1, element 1] | -| array_flow.rb:1599:5:1599:5 | d [element 2, element 0] | array_flow.rb:1603:10:1603:10 | d [element 2, element 0] | -| array_flow.rb:1599:9:1599:9 | a [element 2] | array_flow.rb:1599:9:1599:19 | call to zip [element 2, element 0] | -| array_flow.rb:1599:9:1599:19 | call to zip [element 0, element 2] | array_flow.rb:1599:5:1599:5 | d [element 0, element 2] | -| array_flow.rb:1599:9:1599:19 | call to zip [element 1, element 1] | array_flow.rb:1599:5:1599:5 | d [element 1, element 1] | -| array_flow.rb:1599:9:1599:19 | call to zip [element 2, element 0] | array_flow.rb:1599:5:1599:5 | d [element 2, element 0] | -| array_flow.rb:1599:15:1599:15 | b [element 1] | array_flow.rb:1599:9:1599:19 | call to zip [element 1, element 1] | -| array_flow.rb:1599:18:1599:18 | c [element 0] | array_flow.rb:1599:9:1599:19 | call to zip [element 0, element 2] | -| array_flow.rb:1601:10:1601:10 | d [element 0, element 2] | array_flow.rb:1601:10:1601:13 | ...[...] [element 2] | -| array_flow.rb:1601:10:1601:13 | ...[...] [element 2] | array_flow.rb:1601:10:1601:16 | ...[...] | -| array_flow.rb:1602:10:1602:10 | d [element 1, element 1] | array_flow.rb:1602:10:1602:13 | ...[...] [element 1] | -| array_flow.rb:1602:10:1602:13 | ...[...] [element 1] | array_flow.rb:1602:10:1602:16 | ...[...] | -| array_flow.rb:1603:10:1603:10 | d [element 2, element 0] | array_flow.rb:1603:10:1603:13 | ...[...] [element 0] | -| array_flow.rb:1603:10:1603:13 | ...[...] [element 0] | array_flow.rb:1603:10:1603:16 | ...[...] | -| array_flow.rb:1604:5:1604:5 | a [element 2] | array_flow.rb:1604:21:1604:21 | x [element 0] | -| array_flow.rb:1604:11:1604:11 | b [element 1] | array_flow.rb:1604:21:1604:21 | x [element 1] | -| array_flow.rb:1604:14:1604:14 | c [element 0] | array_flow.rb:1604:21:1604:21 | x [element 2] | -| array_flow.rb:1604:21:1604:21 | x [element 0] | array_flow.rb:1605:14:1605:14 | x [element 0] | -| array_flow.rb:1604:21:1604:21 | x [element 1] | array_flow.rb:1606:14:1606:14 | x [element 1] | -| array_flow.rb:1604:21:1604:21 | x [element 2] | array_flow.rb:1607:14:1607:14 | x [element 2] | -| array_flow.rb:1605:14:1605:14 | x [element 0] | array_flow.rb:1605:14:1605:17 | ...[...] | -| array_flow.rb:1606:14:1606:14 | x [element 1] | array_flow.rb:1606:14:1606:17 | ...[...] | -| array_flow.rb:1607:14:1607:14 | x [element 2] | array_flow.rb:1607:14:1607:17 | ...[...] | -| array_flow.rb:1612:5:1612:5 | a [element 2] | array_flow.rb:1614:9:1614:9 | a [element 2] | -| array_flow.rb:1612:16:1612:28 | call to source | array_flow.rb:1612:5:1612:5 | a [element 2] | -| array_flow.rb:1613:5:1613:5 | b [element 1] | array_flow.rb:1614:13:1614:13 | b [element 1] | -| array_flow.rb:1613:13:1613:25 | call to source | array_flow.rb:1613:5:1613:5 | b [element 1] | -| array_flow.rb:1614:5:1614:5 | c [element] | array_flow.rb:1615:10:1615:10 | c [element] | -| array_flow.rb:1614:5:1614:5 | c [element] | array_flow.rb:1616:10:1616:10 | c [element] | -| array_flow.rb:1614:5:1614:5 | c [element] | array_flow.rb:1617:10:1617:10 | c [element] | -| array_flow.rb:1614:9:1614:9 | a [element 2] | array_flow.rb:1614:9:1614:13 | ... \| ... [element] | -| array_flow.rb:1614:9:1614:13 | ... \| ... [element] | array_flow.rb:1614:5:1614:5 | c [element] | -| array_flow.rb:1614:13:1614:13 | b [element 1] | array_flow.rb:1614:9:1614:13 | ... \| ... [element] | -| array_flow.rb:1615:10:1615:10 | c [element] | array_flow.rb:1615:10:1615:13 | ...[...] | -| array_flow.rb:1616:10:1616:10 | c [element] | array_flow.rb:1616:10:1616:13 | ...[...] | -| array_flow.rb:1617:10:1617:10 | c [element] | array_flow.rb:1617:10:1617:13 | ...[...] | -| array_flow.rb:1622:5:1622:5 | [post] a [element, element 0] | array_flow.rb:1623:10:1623:10 | a [element, element 0] | -| array_flow.rb:1622:5:1622:5 | [post] a [element, element 0] | array_flow.rb:1626:10:1626:10 | a [element, element 0] | -| array_flow.rb:1622:5:1622:5 | [post] a [element, element 0] | array_flow.rb:1627:10:1627:10 | a [element, element 0] | -| array_flow.rb:1622:5:1622:8 | [post] ...[...] [element 0] | array_flow.rb:1622:5:1622:5 | [post] a [element, element 0] | -| array_flow.rb:1622:15:1622:27 | call to source | array_flow.rb:1622:5:1622:8 | [post] ...[...] [element 0] | -| array_flow.rb:1623:10:1623:10 | a [element, element 0] | array_flow.rb:1623:10:1623:13 | ...[...] [element 0] | -| array_flow.rb:1623:10:1623:13 | ...[...] [element 0] | array_flow.rb:1623:10:1623:16 | ...[...] | -| array_flow.rb:1625:5:1625:5 | [post] a [element 1, element 0] | array_flow.rb:1626:10:1626:10 | a [element 1, element 0] | -| array_flow.rb:1625:5:1625:8 | [post] ...[...] [element 0] | array_flow.rb:1625:5:1625:5 | [post] a [element 1, element 0] | -| array_flow.rb:1625:15:1625:27 | call to source | array_flow.rb:1625:5:1625:8 | [post] ...[...] [element 0] | -| array_flow.rb:1626:10:1626:10 | a [element 1, element 0] | array_flow.rb:1626:10:1626:13 | ...[...] [element 0] | -| array_flow.rb:1626:10:1626:10 | a [element, element 0] | array_flow.rb:1626:10:1626:13 | ...[...] [element 0] | -| array_flow.rb:1626:10:1626:13 | ...[...] [element 0] | array_flow.rb:1626:10:1626:16 | ...[...] | -| array_flow.rb:1627:10:1627:10 | a [element, element 0] | array_flow.rb:1627:10:1627:13 | ...[...] [element 0] | -| array_flow.rb:1627:10:1627:13 | ...[...] [element 0] | array_flow.rb:1627:10:1627:16 | ...[...] | -| array_flow.rb:1632:5:1632:5 | [post] a [element 0] | array_flow.rb:1641:10:1641:10 | a [element 0] | -| array_flow.rb:1632:5:1632:5 | [post] a [element 0] | array_flow.rb:1643:10:1643:10 | a [element 0] | -| array_flow.rb:1632:12:1632:24 | call to source | array_flow.rb:1632:5:1632:5 | [post] a [element 0] | -| array_flow.rb:1634:5:1634:5 | [post] a [element] | array_flow.rb:1639:10:1639:10 | a [element] | -| array_flow.rb:1634:5:1634:5 | [post] a [element] | array_flow.rb:1641:10:1641:10 | a [element] | -| array_flow.rb:1634:5:1634:5 | [post] a [element] | array_flow.rb:1643:10:1643:10 | a [element] | -| array_flow.rb:1634:16:1634:28 | call to source | array_flow.rb:1634:5:1634:5 | [post] a [element] | -| array_flow.rb:1636:5:1636:5 | [post] a [element] | array_flow.rb:1639:10:1639:10 | a [element] | -| array_flow.rb:1636:5:1636:5 | [post] a [element] | array_flow.rb:1641:10:1641:10 | a [element] | -| array_flow.rb:1636:5:1636:5 | [post] a [element] | array_flow.rb:1643:10:1643:10 | a [element] | -| array_flow.rb:1636:14:1636:26 | call to source | array_flow.rb:1636:5:1636:5 | [post] a [element] | -| array_flow.rb:1638:5:1638:5 | [post] a [element] | array_flow.rb:1639:10:1639:10 | a [element] | -| array_flow.rb:1638:5:1638:5 | [post] a [element] | array_flow.rb:1641:10:1641:10 | a [element] | -| array_flow.rb:1638:5:1638:5 | [post] a [element] | array_flow.rb:1643:10:1643:10 | a [element] | -| array_flow.rb:1638:16:1638:28 | call to source | array_flow.rb:1638:5:1638:5 | [post] a [element] | -| array_flow.rb:1639:10:1639:10 | a [element] | array_flow.rb:1639:10:1639:13 | ...[...] | -| array_flow.rb:1641:10:1641:10 | a [element 0] | array_flow.rb:1641:10:1641:17 | ...[...] | -| array_flow.rb:1641:10:1641:10 | a [element] | array_flow.rb:1641:10:1641:17 | ...[...] | -| array_flow.rb:1643:10:1643:10 | a [element 0] | array_flow.rb:1643:10:1643:15 | ...[...] | -| array_flow.rb:1643:10:1643:10 | a [element] | array_flow.rb:1643:10:1643:15 | ...[...] | -| array_flow.rb:1647:5:1647:5 | a [element 1] | array_flow.rb:1649:10:1649:10 | a [element 1] | -| array_flow.rb:1647:5:1647:5 | a [element 1] | array_flow.rb:1651:10:1651:10 | a [element 1] | -| array_flow.rb:1647:9:1647:32 | ...[...] [element 1] | array_flow.rb:1647:5:1647:5 | a [element 1] | -| array_flow.rb:1647:18:1647:28 | call to source | array_flow.rb:1647:9:1647:32 | ...[...] [element 1] | -| array_flow.rb:1649:10:1649:10 | a [element 1] | array_flow.rb:1649:10:1649:13 | ...[...] | -| array_flow.rb:1651:10:1651:10 | a [element 1] | array_flow.rb:1651:10:1651:13 | ...[...] | -| array_flow.rb:1668:9:1668:10 | a2 [element 1] | array_flow.rb:1670:14:1670:15 | a2 [element 1] | -| array_flow.rb:1668:9:1668:10 | a2 [element 1] | array_flow.rb:1672:14:1672:15 | a2 [element 1] | -| array_flow.rb:1668:14:1668:41 | ...[...] [element 1] | array_flow.rb:1668:9:1668:10 | a2 [element 1] | -| array_flow.rb:1668:25:1668:37 | call to source | array_flow.rb:1668:14:1668:41 | ...[...] [element 1] | -| array_flow.rb:1670:14:1670:15 | a2 [element 1] | array_flow.rb:1670:14:1670:18 | ...[...] | -| array_flow.rb:1672:14:1672:15 | a2 [element 1] | array_flow.rb:1672:14:1672:18 | ...[...] | +| array_flow.rb:2:5:2:5 | a [element 0] | array_flow.rb:3:10:3:10 | a [element 0] | provenance | | +| array_flow.rb:2:5:2:5 | a [element 0] | array_flow.rb:5:10:5:10 | a [element 0] | provenance | | +| array_flow.rb:2:9:2:20 | * ... [element 0] | array_flow.rb:2:5:2:5 | a [element 0] | provenance | | +| array_flow.rb:2:10:2:20 | call to source | array_flow.rb:2:9:2:20 | * ... [element 0] | provenance | | +| array_flow.rb:3:10:3:10 | a [element 0] | array_flow.rb:3:10:3:13 | ...[...] | provenance | | +| array_flow.rb:5:10:5:10 | a [element 0] | array_flow.rb:5:10:5:13 | ...[...] | provenance | | +| array_flow.rb:9:5:9:5 | a [element 1] | array_flow.rb:11:10:11:10 | a [element 1] | provenance | | +| array_flow.rb:9:5:9:5 | a [element 1] | array_flow.rb:13:10:13:10 | a [element 1] | provenance | | +| array_flow.rb:9:13:9:21 | call to source | array_flow.rb:9:5:9:5 | a [element 1] | provenance | | +| array_flow.rb:11:10:11:10 | a [element 1] | array_flow.rb:11:10:11:13 | ...[...] | provenance | | +| array_flow.rb:13:10:13:10 | a [element 1] | array_flow.rb:13:10:13:13 | ...[...] | provenance | | +| array_flow.rb:17:5:17:5 | a [element] | array_flow.rb:18:10:18:10 | a [element] | provenance | | +| array_flow.rb:17:5:17:5 | a [element] | array_flow.rb:19:10:19:10 | a [element] | provenance | | +| array_flow.rb:17:5:17:5 | a [element] | array_flow.rb:21:19:21:19 | a [element] | provenance | | +| array_flow.rb:17:9:17:33 | call to new [element] | array_flow.rb:17:5:17:5 | a [element] | provenance | | +| array_flow.rb:17:22:17:32 | call to source | array_flow.rb:17:9:17:33 | call to new [element] | provenance | | +| array_flow.rb:18:10:18:10 | a [element] | array_flow.rb:18:10:18:13 | ...[...] | provenance | | +| array_flow.rb:19:10:19:10 | a [element] | array_flow.rb:19:10:19:13 | ...[...] | provenance | | +| array_flow.rb:21:5:21:5 | b [element] | array_flow.rb:22:10:22:10 | b [element] | provenance | | +| array_flow.rb:21:5:21:5 | b [element] | array_flow.rb:23:10:23:10 | b [element] | provenance | | +| array_flow.rb:21:9:21:20 | call to new [element] | array_flow.rb:21:5:21:5 | b [element] | provenance | | +| array_flow.rb:21:19:21:19 | a [element] | array_flow.rb:21:9:21:20 | call to new [element] | provenance | | +| array_flow.rb:22:10:22:10 | b [element] | array_flow.rb:22:10:22:13 | ...[...] | provenance | | +| array_flow.rb:23:10:23:10 | b [element] | array_flow.rb:23:10:23:13 | ...[...] | provenance | | +| array_flow.rb:25:5:25:5 | c [element] | array_flow.rb:28:10:28:10 | c [element] | provenance | | +| array_flow.rb:25:5:25:5 | c [element] | array_flow.rb:29:10:29:10 | c [element] | provenance | | +| array_flow.rb:25:9:27:7 | call to new [element] | array_flow.rb:25:5:25:5 | c [element] | provenance | | +| array_flow.rb:26:9:26:19 | call to source | array_flow.rb:25:9:27:7 | call to new [element] | provenance | | +| array_flow.rb:28:10:28:10 | c [element] | array_flow.rb:28:10:28:13 | ...[...] | provenance | | +| array_flow.rb:29:10:29:10 | c [element] | array_flow.rb:29:10:29:13 | ...[...] | provenance | | +| array_flow.rb:33:5:33:5 | a [element 0] | array_flow.rb:34:27:34:27 | a [element 0] | provenance | | +| array_flow.rb:33:10:33:18 | call to source | array_flow.rb:33:5:33:5 | a [element 0] | provenance | | +| array_flow.rb:34:5:34:5 | b [element 0] | array_flow.rb:35:10:35:10 | b [element 0] | provenance | | +| array_flow.rb:34:9:34:28 | call to try_convert [element 0] | array_flow.rb:34:5:34:5 | b [element 0] | provenance | | +| array_flow.rb:34:27:34:27 | a [element 0] | array_flow.rb:34:9:34:28 | call to try_convert [element 0] | provenance | | +| array_flow.rb:35:10:35:10 | b [element 0] | array_flow.rb:35:10:35:13 | ...[...] | provenance | | +| array_flow.rb:40:5:40:5 | a [element 0] | array_flow.rb:42:9:42:9 | a [element 0] | provenance | | +| array_flow.rb:40:10:40:20 | call to source | array_flow.rb:40:5:40:5 | a [element 0] | provenance | | +| array_flow.rb:41:5:41:5 | b [element 2] | array_flow.rb:42:13:42:13 | b [element 2] | provenance | | +| array_flow.rb:41:16:41:26 | call to source | array_flow.rb:41:5:41:5 | b [element 2] | provenance | | +| array_flow.rb:42:5:42:5 | c [element] | array_flow.rb:43:10:43:10 | c [element] | provenance | | +| array_flow.rb:42:5:42:5 | c [element] | array_flow.rb:44:10:44:10 | c [element] | provenance | | +| array_flow.rb:42:9:42:9 | a [element 0] | array_flow.rb:42:9:42:13 | ... & ... [element] | provenance | | +| array_flow.rb:42:9:42:13 | ... & ... [element] | array_flow.rb:42:5:42:5 | c [element] | provenance | | +| array_flow.rb:42:13:42:13 | b [element 2] | array_flow.rb:42:9:42:13 | ... & ... [element] | provenance | | +| array_flow.rb:43:10:43:10 | c [element] | array_flow.rb:43:10:43:13 | ...[...] | provenance | | +| array_flow.rb:44:10:44:10 | c [element] | array_flow.rb:44:10:44:13 | ...[...] | provenance | | +| array_flow.rb:48:5:48:5 | a [element 0] | array_flow.rb:49:9:49:9 | a [element 0] | provenance | | +| array_flow.rb:48:10:48:18 | call to source | array_flow.rb:48:5:48:5 | a [element 0] | provenance | | +| array_flow.rb:49:5:49:5 | b [element] | array_flow.rb:50:10:50:10 | b [element] | provenance | | +| array_flow.rb:49:5:49:5 | b [element] | array_flow.rb:51:10:51:10 | b [element] | provenance | | +| array_flow.rb:49:9:49:9 | a [element 0] | array_flow.rb:49:9:49:13 | ... * ... [element] | provenance | | +| array_flow.rb:49:9:49:13 | ... * ... [element] | array_flow.rb:49:5:49:5 | b [element] | provenance | | +| array_flow.rb:50:10:50:10 | b [element] | array_flow.rb:50:10:50:13 | ...[...] | provenance | | +| array_flow.rb:51:10:51:10 | b [element] | array_flow.rb:51:10:51:13 | ...[...] | provenance | | +| array_flow.rb:55:5:55:5 | a [element 0] | array_flow.rb:57:9:57:9 | a [element 0] | provenance | | +| array_flow.rb:55:10:55:20 | call to source | array_flow.rb:55:5:55:5 | a [element 0] | provenance | | +| array_flow.rb:56:5:56:5 | b [element 1] | array_flow.rb:57:13:57:13 | b [element 1] | provenance | | +| array_flow.rb:56:13:56:23 | call to source | array_flow.rb:56:5:56:5 | b [element 1] | provenance | | +| array_flow.rb:57:5:57:5 | c [element 0] | array_flow.rb:58:10:58:10 | c [element 0] | provenance | | +| array_flow.rb:57:5:57:5 | c [element] | array_flow.rb:58:10:58:10 | c [element] | provenance | | +| array_flow.rb:57:5:57:5 | c [element] | array_flow.rb:59:10:59:10 | c [element] | provenance | | +| array_flow.rb:57:9:57:9 | a [element 0] | array_flow.rb:57:9:57:13 | ... + ... [element 0] | provenance | | +| array_flow.rb:57:9:57:13 | ... + ... [element 0] | array_flow.rb:57:5:57:5 | c [element 0] | provenance | | +| array_flow.rb:57:9:57:13 | ... + ... [element] | array_flow.rb:57:5:57:5 | c [element] | provenance | | +| array_flow.rb:57:13:57:13 | b [element 1] | array_flow.rb:57:9:57:13 | ... + ... [element] | provenance | | +| array_flow.rb:58:10:58:10 | c [element 0] | array_flow.rb:58:10:58:13 | ...[...] | provenance | | +| array_flow.rb:58:10:58:10 | c [element] | array_flow.rb:58:10:58:13 | ...[...] | provenance | | +| array_flow.rb:59:10:59:10 | c [element] | array_flow.rb:59:10:59:13 | ...[...] | provenance | | +| array_flow.rb:63:5:63:5 | a [element 0] | array_flow.rb:65:9:65:9 | a [element 0] | provenance | | +| array_flow.rb:63:10:63:20 | call to source | array_flow.rb:63:5:63:5 | a [element 0] | provenance | | +| array_flow.rb:65:5:65:5 | c [element] | array_flow.rb:66:10:66:10 | c [element] | provenance | | +| array_flow.rb:65:5:65:5 | c [element] | array_flow.rb:67:10:67:10 | c [element] | provenance | | +| array_flow.rb:65:9:65:9 | a [element 0] | array_flow.rb:65:9:65:13 | ... - ... [element] | provenance | | +| array_flow.rb:65:9:65:13 | ... - ... [element] | array_flow.rb:65:5:65:5 | c [element] | provenance | | +| array_flow.rb:66:10:66:10 | c [element] | array_flow.rb:66:10:66:13 | ...[...] | provenance | | +| array_flow.rb:67:10:67:10 | c [element] | array_flow.rb:67:10:67:13 | ...[...] | provenance | | +| array_flow.rb:71:5:71:5 | a [element 0] | array_flow.rb:72:9:72:9 | a [element 0] | provenance | | +| array_flow.rb:71:5:71:5 | a [element 0] | array_flow.rb:73:10:73:10 | a [element 0] | provenance | | +| array_flow.rb:71:10:71:20 | call to source | array_flow.rb:71:5:71:5 | a [element 0] | provenance | | +| array_flow.rb:72:5:72:5 | b [element 0] | array_flow.rb:75:10:75:10 | b [element 0] | provenance | | +| array_flow.rb:72:5:72:5 | b [element] | array_flow.rb:75:10:75:10 | b [element] | provenance | | +| array_flow.rb:72:5:72:5 | b [element] | array_flow.rb:76:10:76:10 | b [element] | provenance | | +| array_flow.rb:72:9:72:9 | [post] a [element] | array_flow.rb:73:10:73:10 | a [element] | provenance | | +| array_flow.rb:72:9:72:9 | [post] a [element] | array_flow.rb:74:10:74:10 | a [element] | provenance | | +| array_flow.rb:72:9:72:9 | a [element 0] | array_flow.rb:72:9:72:24 | ... << ... [element 0] | provenance | | +| array_flow.rb:72:9:72:24 | ... << ... [element 0] | array_flow.rb:72:5:72:5 | b [element 0] | provenance | | +| array_flow.rb:72:9:72:24 | ... << ... [element] | array_flow.rb:72:5:72:5 | b [element] | provenance | | +| array_flow.rb:72:14:72:24 | call to source | array_flow.rb:72:9:72:9 | [post] a [element] | provenance | | +| array_flow.rb:72:14:72:24 | call to source | array_flow.rb:72:9:72:24 | ... << ... [element] | provenance | | +| array_flow.rb:73:10:73:10 | a [element 0] | array_flow.rb:73:10:73:13 | ...[...] | provenance | | +| array_flow.rb:73:10:73:10 | a [element] | array_flow.rb:73:10:73:13 | ...[...] | provenance | | +| array_flow.rb:74:10:74:10 | a [element] | array_flow.rb:74:10:74:13 | ...[...] | provenance | | +| array_flow.rb:75:10:75:10 | b [element 0] | array_flow.rb:75:10:75:13 | ...[...] | provenance | | +| array_flow.rb:75:10:75:10 | b [element] | array_flow.rb:75:10:75:13 | ...[...] | provenance | | +| array_flow.rb:76:10:76:10 | b [element] | array_flow.rb:76:10:76:13 | ...[...] | provenance | | +| array_flow.rb:80:5:80:5 | a [element 1] | array_flow.rb:81:15:81:15 | a [element 1] | provenance | | +| array_flow.rb:80:13:80:21 | call to source | array_flow.rb:80:5:80:5 | a [element 1] | provenance | | +| array_flow.rb:81:8:81:8 | c | array_flow.rb:83:10:83:10 | c | provenance | | +| array_flow.rb:81:15:81:15 | a [element 1] | array_flow.rb:81:8:81:8 | c | provenance | | +| array_flow.rb:88:5:88:5 | a [element 1] | array_flow.rb:89:9:89:9 | a [element 1] | provenance | | +| array_flow.rb:88:13:88:22 | call to source | array_flow.rb:88:5:88:5 | a [element 1] | provenance | | +| array_flow.rb:89:5:89:5 | b [element 1] | array_flow.rb:91:10:91:10 | b [element 1] | provenance | | +| array_flow.rb:89:5:89:5 | b [element 1] | array_flow.rb:92:10:92:10 | b [element 1] | provenance | | +| array_flow.rb:89:9:89:9 | a [element 1] | array_flow.rb:89:9:89:15 | ...[...] [element 1] | provenance | | +| array_flow.rb:89:9:89:15 | ...[...] [element 1] | array_flow.rb:89:5:89:5 | b [element 1] | provenance | | +| array_flow.rb:91:10:91:10 | b [element 1] | array_flow.rb:91:10:91:13 | ...[...] | provenance | | +| array_flow.rb:92:10:92:10 | b [element 1] | array_flow.rb:92:10:92:13 | ...[...] | provenance | | +| array_flow.rb:96:5:96:5 | a [element 1] | array_flow.rb:97:9:97:9 | a [element 1] | provenance | | +| array_flow.rb:96:13:96:22 | call to source | array_flow.rb:96:5:96:5 | a [element 1] | provenance | | +| array_flow.rb:97:5:97:5 | b [element 1] | array_flow.rb:99:10:99:10 | b [element 1] | provenance | | +| array_flow.rb:97:5:97:5 | b [element 1] | array_flow.rb:101:10:101:10 | b [element 1] | provenance | | +| array_flow.rb:97:9:97:9 | a [element 1] | array_flow.rb:97:9:97:15 | ...[...] [element 1] | provenance | | +| array_flow.rb:97:9:97:15 | ...[...] [element 1] | array_flow.rb:97:5:97:5 | b [element 1] | provenance | | +| array_flow.rb:99:10:99:10 | b [element 1] | array_flow.rb:99:10:99:13 | ...[...] | provenance | | +| array_flow.rb:101:10:101:10 | b [element 1] | array_flow.rb:101:10:101:13 | ...[...] | provenance | | +| array_flow.rb:103:5:103:5 | a [element 1] | array_flow.rb:104:9:104:9 | a [element 1] | provenance | | +| array_flow.rb:103:13:103:24 | call to source | array_flow.rb:103:5:103:5 | a [element 1] | provenance | | +| array_flow.rb:104:5:104:5 | b [element 1] | array_flow.rb:106:10:106:10 | b [element 1] | provenance | | +| array_flow.rb:104:9:104:9 | a [element 1] | array_flow.rb:104:9:104:16 | ...[...] [element 1] | provenance | | +| array_flow.rb:104:9:104:16 | ...[...] [element 1] | array_flow.rb:104:5:104:5 | b [element 1] | provenance | | +| array_flow.rb:106:10:106:10 | b [element 1] | array_flow.rb:106:10:106:13 | ...[...] | provenance | | +| array_flow.rb:109:5:109:5 | a [element 1] | array_flow.rb:110:9:110:9 | a [element 1] | provenance | | +| array_flow.rb:109:5:109:5 | a [element 1] | array_flow.rb:114:9:114:9 | a [element 1] | provenance | | +| array_flow.rb:109:5:109:5 | a [element 3] | array_flow.rb:110:9:110:9 | a [element 3] | provenance | | +| array_flow.rb:109:5:109:5 | a [element 3] | array_flow.rb:114:9:114:9 | a [element 3] | provenance | | +| array_flow.rb:109:13:109:24 | call to source | array_flow.rb:109:5:109:5 | a [element 1] | provenance | | +| array_flow.rb:109:30:109:41 | call to source | array_flow.rb:109:5:109:5 | a [element 3] | provenance | | +| array_flow.rb:110:5:110:5 | b [element] | array_flow.rb:111:10:111:10 | b [element] | provenance | | +| array_flow.rb:110:5:110:5 | b [element] | array_flow.rb:112:10:112:10 | b [element] | provenance | | +| array_flow.rb:110:9:110:9 | a [element 1] | array_flow.rb:110:9:110:18 | ...[...] [element] | provenance | | +| array_flow.rb:110:9:110:9 | a [element 3] | array_flow.rb:110:9:110:18 | ...[...] [element] | provenance | | +| array_flow.rb:110:9:110:18 | ...[...] [element] | array_flow.rb:110:5:110:5 | b [element] | provenance | | +| array_flow.rb:111:10:111:10 | b [element] | array_flow.rb:111:10:111:13 | ...[...] | provenance | | +| array_flow.rb:112:10:112:10 | b [element] | array_flow.rb:112:10:112:13 | ...[...] | provenance | | +| array_flow.rb:114:5:114:5 | b [element] | array_flow.rb:115:10:115:10 | b [element] | provenance | | +| array_flow.rb:114:5:114:5 | b [element] | array_flow.rb:116:10:116:10 | b [element] | provenance | | +| array_flow.rb:114:9:114:9 | a [element 1] | array_flow.rb:114:9:114:19 | ...[...] [element] | provenance | | +| array_flow.rb:114:9:114:9 | a [element 3] | array_flow.rb:114:9:114:19 | ...[...] [element] | provenance | | +| array_flow.rb:114:9:114:19 | ...[...] [element] | array_flow.rb:114:5:114:5 | b [element] | provenance | | +| array_flow.rb:115:10:115:10 | b [element] | array_flow.rb:115:10:115:13 | ...[...] | provenance | | +| array_flow.rb:116:10:116:10 | b [element] | array_flow.rb:116:10:116:13 | ...[...] | provenance | | +| array_flow.rb:121:5:121:5 | [post] a [element] | array_flow.rb:122:10:122:10 | a [element] | provenance | | +| array_flow.rb:121:5:121:5 | [post] a [element] | array_flow.rb:123:10:123:10 | a [element] | provenance | | +| array_flow.rb:121:5:121:5 | [post] a [element] | array_flow.rb:124:10:124:10 | a [element] | provenance | | +| array_flow.rb:121:15:121:24 | call to source | array_flow.rb:121:5:121:5 | [post] a [element] | provenance | | +| array_flow.rb:122:10:122:10 | a [element] | array_flow.rb:122:10:122:13 | ...[...] | provenance | | +| array_flow.rb:123:10:123:10 | a [element] | array_flow.rb:123:10:123:13 | ...[...] | provenance | | +| array_flow.rb:124:10:124:10 | a [element] | array_flow.rb:124:10:124:13 | ...[...] | provenance | | +| array_flow.rb:129:5:129:5 | [post] a [element] | array_flow.rb:130:10:130:10 | a [element] | provenance | | +| array_flow.rb:129:5:129:5 | [post] a [element] | array_flow.rb:131:10:131:10 | a [element] | provenance | | +| array_flow.rb:129:5:129:5 | [post] a [element] | array_flow.rb:132:10:132:10 | a [element] | provenance | | +| array_flow.rb:129:19:129:28 | call to source | array_flow.rb:129:5:129:5 | [post] a [element] | provenance | | +| array_flow.rb:130:10:130:10 | a [element] | array_flow.rb:130:10:130:13 | ...[...] | provenance | | +| array_flow.rb:131:10:131:10 | a [element] | array_flow.rb:131:10:131:13 | ...[...] | provenance | | +| array_flow.rb:132:10:132:10 | a [element] | array_flow.rb:132:10:132:13 | ...[...] | provenance | | +| array_flow.rb:137:5:137:5 | [post] a [element] | array_flow.rb:138:10:138:10 | a [element] | provenance | | +| array_flow.rb:137:5:137:5 | [post] a [element] | array_flow.rb:139:10:139:10 | a [element] | provenance | | +| array_flow.rb:137:5:137:5 | [post] a [element] | array_flow.rb:140:10:140:10 | a [element] | provenance | | +| array_flow.rb:137:15:137:24 | call to source | array_flow.rb:137:5:137:5 | [post] a [element] | provenance | | +| array_flow.rb:138:10:138:10 | a [element] | array_flow.rb:138:10:138:13 | ...[...] | provenance | | +| array_flow.rb:139:10:139:10 | a [element] | array_flow.rb:139:10:139:13 | ...[...] | provenance | | +| array_flow.rb:140:10:140:10 | a [element] | array_flow.rb:140:10:140:13 | ...[...] | provenance | | +| array_flow.rb:145:5:145:5 | [post] a [element] | array_flow.rb:146:10:146:10 | a [element] | provenance | | +| array_flow.rb:145:5:145:5 | [post] a [element] | array_flow.rb:147:10:147:10 | a [element] | provenance | | +| array_flow.rb:145:5:145:5 | [post] a [element] | array_flow.rb:148:10:148:10 | a [element] | provenance | | +| array_flow.rb:145:19:145:28 | call to source | array_flow.rb:145:5:145:5 | [post] a [element] | provenance | | +| array_flow.rb:146:10:146:10 | a [element] | array_flow.rb:146:10:146:13 | ...[...] | provenance | | +| array_flow.rb:147:10:147:10 | a [element] | array_flow.rb:147:10:147:13 | ...[...] | provenance | | +| array_flow.rb:148:10:148:10 | a [element] | array_flow.rb:148:10:148:13 | ...[...] | provenance | | +| array_flow.rb:152:5:152:5 | a [element 2] | array_flow.rb:153:5:153:5 | a [element 2] | provenance | | +| array_flow.rb:152:16:152:25 | call to source | array_flow.rb:152:5:152:5 | a [element 2] | provenance | | +| array_flow.rb:153:5:153:5 | a [element 2] | array_flow.rb:153:16:153:16 | x | provenance | | +| array_flow.rb:153:16:153:16 | x | array_flow.rb:154:14:154:14 | x | provenance | | +| array_flow.rb:159:5:159:5 | a [element 2] | array_flow.rb:160:5:160:5 | a [element 2] | provenance | | +| array_flow.rb:159:16:159:25 | call to source | array_flow.rb:159:5:159:5 | a [element 2] | provenance | | +| array_flow.rb:160:5:160:5 | a [element 2] | array_flow.rb:160:16:160:16 | x | provenance | | +| array_flow.rb:160:16:160:16 | x | array_flow.rb:161:14:161:14 | x | provenance | | +| array_flow.rb:166:5:166:5 | a [element 0] | array_flow.rb:167:9:167:9 | a [element 0] | provenance | | +| array_flow.rb:166:5:166:5 | a [element 0] | array_flow.rb:168:10:168:10 | a [element 0] | provenance | | +| array_flow.rb:166:10:166:21 | call to source | array_flow.rb:166:5:166:5 | a [element 0] | provenance | | +| array_flow.rb:167:5:167:5 | b [element 0] | array_flow.rb:170:10:170:10 | b [element 0] | provenance | | +| array_flow.rb:167:5:167:5 | b [element] | array_flow.rb:170:10:170:10 | b [element] | provenance | | +| array_flow.rb:167:5:167:5 | b [element] | array_flow.rb:171:10:171:10 | b [element] | provenance | | +| array_flow.rb:167:9:167:9 | [post] a [element] | array_flow.rb:168:10:168:10 | a [element] | provenance | | +| array_flow.rb:167:9:167:9 | [post] a [element] | array_flow.rb:169:10:169:10 | a [element] | provenance | | +| array_flow.rb:167:9:167:9 | a [element 0] | array_flow.rb:167:9:167:44 | call to append [element 0] | provenance | | +| array_flow.rb:167:9:167:44 | call to append [element 0] | array_flow.rb:167:5:167:5 | b [element 0] | provenance | | +| array_flow.rb:167:9:167:44 | call to append [element] | array_flow.rb:167:5:167:5 | b [element] | provenance | | +| array_flow.rb:167:18:167:29 | call to source | array_flow.rb:167:9:167:9 | [post] a [element] | provenance | | +| array_flow.rb:167:18:167:29 | call to source | array_flow.rb:167:9:167:44 | call to append [element] | provenance | | +| array_flow.rb:167:32:167:43 | call to source | array_flow.rb:167:9:167:9 | [post] a [element] | provenance | | +| array_flow.rb:167:32:167:43 | call to source | array_flow.rb:167:9:167:44 | call to append [element] | provenance | | +| array_flow.rb:168:10:168:10 | a [element 0] | array_flow.rb:168:10:168:13 | ...[...] | provenance | | +| array_flow.rb:168:10:168:10 | a [element] | array_flow.rb:168:10:168:13 | ...[...] | provenance | | +| array_flow.rb:169:10:169:10 | a [element] | array_flow.rb:169:10:169:13 | ...[...] | provenance | | +| array_flow.rb:170:10:170:10 | b [element 0] | array_flow.rb:170:10:170:13 | ...[...] | provenance | | +| array_flow.rb:170:10:170:10 | b [element] | array_flow.rb:170:10:170:13 | ...[...] | provenance | | +| array_flow.rb:171:10:171:10 | b [element] | array_flow.rb:171:10:171:13 | ...[...] | provenance | | +| array_flow.rb:177:5:177:5 | c [element 1] | array_flow.rb:178:16:178:16 | c [element 1] | provenance | | +| array_flow.rb:177:15:177:24 | call to source | array_flow.rb:177:5:177:5 | c [element 1] | provenance | | +| array_flow.rb:178:5:178:5 | d [element 2, element 1] | array_flow.rb:179:11:179:11 | d [element 2, element 1] | provenance | | +| array_flow.rb:178:5:178:5 | d [element 2, element 1] | array_flow.rb:180:11:180:11 | d [element 2, element 1] | provenance | | +| array_flow.rb:178:16:178:16 | c [element 1] | array_flow.rb:178:5:178:5 | d [element 2, element 1] | provenance | | +| array_flow.rb:179:11:179:11 | d [element 2, element 1] | array_flow.rb:179:11:179:22 | call to assoc [element 1] | provenance | | +| array_flow.rb:179:11:179:22 | call to assoc [element 1] | array_flow.rb:179:11:179:25 | ...[...] | provenance | | +| array_flow.rb:179:11:179:25 | ...[...] | array_flow.rb:179:10:179:26 | ( ... ) | provenance | | +| array_flow.rb:180:11:180:11 | d [element 2, element 1] | array_flow.rb:180:11:180:22 | call to assoc [element 1] | provenance | | +| array_flow.rb:180:11:180:22 | call to assoc [element 1] | array_flow.rb:180:11:180:25 | ...[...] | provenance | | +| array_flow.rb:180:11:180:25 | ...[...] | array_flow.rb:180:10:180:26 | ( ... ) | provenance | | +| array_flow.rb:184:5:184:5 | a [element 1] | array_flow.rb:186:10:186:10 | a [element 1] | provenance | | +| array_flow.rb:184:5:184:5 | a [element 1] | array_flow.rb:188:10:188:10 | a [element 1] | provenance | | +| array_flow.rb:184:13:184:22 | call to source | array_flow.rb:184:5:184:5 | a [element 1] | provenance | | +| array_flow.rb:186:10:186:10 | a [element 1] | array_flow.rb:186:10:186:16 | call to at | provenance | | +| array_flow.rb:188:10:188:10 | a [element 1] | array_flow.rb:188:10:188:16 | call to at | provenance | | +| array_flow.rb:192:5:192:5 | a [element 2] | array_flow.rb:193:9:193:9 | a [element 2] | provenance | | +| array_flow.rb:192:16:192:25 | call to source | array_flow.rb:192:5:192:5 | a [element 2] | provenance | | +| array_flow.rb:193:5:193:5 | b | array_flow.rb:196:10:196:10 | b | provenance | | +| array_flow.rb:193:9:193:9 | a [element 2] | array_flow.rb:193:9:195:7 | call to bsearch | provenance | | +| array_flow.rb:193:9:193:9 | a [element 2] | array_flow.rb:193:23:193:23 | x | provenance | | +| array_flow.rb:193:9:195:7 | call to bsearch | array_flow.rb:193:5:193:5 | b | provenance | | +| array_flow.rb:193:23:193:23 | x | array_flow.rb:194:14:194:14 | x | provenance | | +| array_flow.rb:200:5:200:5 | a [element 2] | array_flow.rb:201:9:201:9 | a [element 2] | provenance | | +| array_flow.rb:200:16:200:25 | call to source | array_flow.rb:200:5:200:5 | a [element 2] | provenance | | +| array_flow.rb:201:9:201:9 | a [element 2] | array_flow.rb:201:29:201:29 | x | provenance | | +| array_flow.rb:201:29:201:29 | x | array_flow.rb:202:14:202:14 | x | provenance | | +| array_flow.rb:208:5:208:5 | a [element 2] | array_flow.rb:209:5:209:5 | a [element 2] | provenance | | +| array_flow.rb:208:16:208:25 | call to source | array_flow.rb:208:5:208:5 | a [element 2] | provenance | | +| array_flow.rb:209:5:209:5 | a [element 2] | array_flow.rb:209:17:209:17 | x | provenance | | +| array_flow.rb:209:17:209:17 | x | array_flow.rb:210:14:210:14 | x | provenance | | +| array_flow.rb:215:5:215:5 | a [element 2] | array_flow.rb:216:9:216:9 | a [element 2] | provenance | | +| array_flow.rb:215:5:215:5 | a [element 3] | array_flow.rb:216:9:216:9 | a [element 3] | provenance | | +| array_flow.rb:215:16:215:27 | call to source | array_flow.rb:215:5:215:5 | a [element 2] | provenance | | +| array_flow.rb:215:30:215:41 | call to source | array_flow.rb:215:5:215:5 | a [element 3] | provenance | | +| array_flow.rb:216:9:216:9 | a [element 2] | array_flow.rb:216:27:216:27 | x | provenance | | +| array_flow.rb:216:9:216:9 | a [element 2] | array_flow.rb:216:30:216:30 | y | provenance | | +| array_flow.rb:216:9:216:9 | a [element 3] | array_flow.rb:216:27:216:27 | x | provenance | | +| array_flow.rb:216:9:216:9 | a [element 3] | array_flow.rb:216:30:216:30 | y | provenance | | +| array_flow.rb:216:27:216:27 | x | array_flow.rb:217:14:217:14 | x | provenance | | +| array_flow.rb:216:30:216:30 | y | array_flow.rb:218:14:218:14 | y | provenance | | +| array_flow.rb:231:5:231:5 | a [element 2] | array_flow.rb:232:9:232:9 | a [element 2] | provenance | | +| array_flow.rb:231:16:231:27 | call to source | array_flow.rb:231:5:231:5 | a [element 2] | provenance | | +| array_flow.rb:232:5:232:5 | b [element] | array_flow.rb:236:10:236:10 | b [element] | provenance | | +| array_flow.rb:232:9:232:9 | a [element 2] | array_flow.rb:232:23:232:23 | x | provenance | | +| array_flow.rb:232:9:235:7 | call to collect [element] | array_flow.rb:232:5:232:5 | b [element] | provenance | | +| array_flow.rb:232:23:232:23 | x | array_flow.rb:233:14:233:14 | x | provenance | | +| array_flow.rb:234:9:234:19 | call to source | array_flow.rb:232:9:235:7 | call to collect [element] | provenance | | +| array_flow.rb:236:10:236:10 | b [element] | array_flow.rb:236:10:236:13 | ...[...] | provenance | | +| array_flow.rb:240:5:240:5 | a [element 2] | array_flow.rb:241:9:241:9 | a [element 2] | provenance | | +| array_flow.rb:240:16:240:27 | call to source | array_flow.rb:240:5:240:5 | a [element 2] | provenance | | +| array_flow.rb:241:5:241:5 | b [element] | array_flow.rb:246:10:246:10 | b [element] | provenance | | +| array_flow.rb:241:9:241:9 | [post] a [element] | array_flow.rb:245:10:245:10 | a [element] | provenance | | +| array_flow.rb:241:9:241:9 | a [element 2] | array_flow.rb:241:24:241:24 | x | provenance | | +| array_flow.rb:241:9:244:7 | call to collect! [element] | array_flow.rb:241:5:241:5 | b [element] | provenance | | +| array_flow.rb:241:24:241:24 | x | array_flow.rb:242:14:242:14 | x | provenance | | +| array_flow.rb:243:9:243:19 | call to source | array_flow.rb:241:9:241:9 | [post] a [element] | provenance | | +| array_flow.rb:243:9:243:19 | call to source | array_flow.rb:241:9:244:7 | call to collect! [element] | provenance | | +| array_flow.rb:245:10:245:10 | a [element] | array_flow.rb:245:10:245:13 | ...[...] | provenance | | +| array_flow.rb:246:10:246:10 | b [element] | array_flow.rb:246:10:246:13 | ...[...] | provenance | | +| array_flow.rb:250:5:250:5 | a [element 2] | array_flow.rb:251:9:251:9 | a [element 2] | provenance | | +| array_flow.rb:250:5:250:5 | a [element 2] | array_flow.rb:256:9:256:9 | a [element 2] | provenance | | +| array_flow.rb:250:16:250:27 | call to source | array_flow.rb:250:5:250:5 | a [element 2] | provenance | | +| array_flow.rb:251:5:251:5 | b [element] | array_flow.rb:255:10:255:10 | b [element] | provenance | | +| array_flow.rb:251:9:251:9 | a [element 2] | array_flow.rb:251:9:254:7 | call to collect_concat [element] | provenance | | +| array_flow.rb:251:9:251:9 | a [element 2] | array_flow.rb:251:30:251:30 | x | provenance | | +| array_flow.rb:251:9:254:7 | call to collect_concat [element] | array_flow.rb:251:5:251:5 | b [element] | provenance | | +| array_flow.rb:251:30:251:30 | x | array_flow.rb:252:14:252:14 | x | provenance | | +| array_flow.rb:253:13:253:24 | call to source | array_flow.rb:251:9:254:7 | call to collect_concat [element] | provenance | | +| array_flow.rb:255:10:255:10 | b [element] | array_flow.rb:255:10:255:13 | ...[...] | provenance | | +| array_flow.rb:256:5:256:5 | b [element] | array_flow.rb:260:10:260:10 | b [element] | provenance | | +| array_flow.rb:256:9:256:9 | a [element 2] | array_flow.rb:256:30:256:30 | x | provenance | | +| array_flow.rb:256:9:259:7 | call to collect_concat [element] | array_flow.rb:256:5:256:5 | b [element] | provenance | | +| array_flow.rb:256:30:256:30 | x | array_flow.rb:257:14:257:14 | x | provenance | | +| array_flow.rb:258:9:258:20 | call to source | array_flow.rb:256:9:259:7 | call to collect_concat [element] | provenance | | +| array_flow.rb:260:10:260:10 | b [element] | array_flow.rb:260:10:260:13 | ...[...] | provenance | | +| array_flow.rb:264:5:264:5 | a [element 2] | array_flow.rb:265:9:265:9 | a [element 2] | provenance | | +| array_flow.rb:264:16:264:25 | call to source | array_flow.rb:264:5:264:5 | a [element 2] | provenance | | +| array_flow.rb:265:5:265:5 | b [element 2] | array_flow.rb:269:10:269:10 | b [element 2] | provenance | | +| array_flow.rb:265:9:265:9 | a [element 2] | array_flow.rb:265:9:267:7 | call to combination [element 2] | provenance | | +| array_flow.rb:265:9:265:9 | a [element 2] | array_flow.rb:265:30:265:30 | x [element] | provenance | | +| array_flow.rb:265:9:267:7 | call to combination [element 2] | array_flow.rb:265:5:265:5 | b [element 2] | provenance | | +| array_flow.rb:265:30:265:30 | x [element] | array_flow.rb:266:14:266:14 | x [element] | provenance | | +| array_flow.rb:266:14:266:14 | x [element] | array_flow.rb:266:14:266:17 | ...[...] | provenance | | +| array_flow.rb:269:10:269:10 | b [element 2] | array_flow.rb:269:10:269:13 | ...[...] | provenance | | +| array_flow.rb:273:5:273:5 | a [element 2] | array_flow.rb:274:9:274:9 | a [element 2] | provenance | | +| array_flow.rb:273:16:273:25 | call to source | array_flow.rb:273:5:273:5 | a [element 2] | provenance | | +| array_flow.rb:274:5:274:5 | b [element] | array_flow.rb:275:10:275:10 | b [element] | provenance | | +| array_flow.rb:274:9:274:9 | a [element 2] | array_flow.rb:274:9:274:17 | call to compact [element] | provenance | | +| array_flow.rb:274:9:274:17 | call to compact [element] | array_flow.rb:274:5:274:5 | b [element] | provenance | | +| array_flow.rb:275:10:275:10 | b [element] | array_flow.rb:275:10:275:13 | ...[...] | provenance | | +| array_flow.rb:279:5:279:5 | a [element 2] | array_flow.rb:280:9:280:9 | a [element 2] | provenance | | +| array_flow.rb:279:16:279:25 | call to source | array_flow.rb:279:5:279:5 | a [element 2] | provenance | | +| array_flow.rb:280:5:280:5 | b [element] | array_flow.rb:282:10:282:10 | b [element] | provenance | | +| array_flow.rb:280:9:280:9 | [post] a [element] | array_flow.rb:281:10:281:10 | a [element] | provenance | | +| array_flow.rb:280:9:280:9 | a [element 2] | array_flow.rb:280:9:280:9 | [post] a [element] | provenance | | +| array_flow.rb:280:9:280:9 | a [element 2] | array_flow.rb:280:9:280:18 | call to compact! [element] | provenance | | +| array_flow.rb:280:9:280:18 | call to compact! [element] | array_flow.rb:280:5:280:5 | b [element] | provenance | | +| array_flow.rb:281:10:281:10 | a [element] | array_flow.rb:281:10:281:13 | ...[...] | provenance | | +| array_flow.rb:282:10:282:10 | b [element] | array_flow.rb:282:10:282:13 | ...[...] | provenance | | +| array_flow.rb:286:5:286:5 | a [element 2] | array_flow.rb:290:10:290:10 | a [element 2] | provenance | | +| array_flow.rb:286:16:286:27 | call to source | array_flow.rb:286:5:286:5 | a [element 2] | provenance | | +| array_flow.rb:287:5:287:5 | b [element 2] | array_flow.rb:288:14:288:14 | b [element 2] | provenance | | +| array_flow.rb:287:16:287:27 | call to source | array_flow.rb:287:5:287:5 | b [element 2] | provenance | | +| array_flow.rb:288:5:288:5 | [post] a [element] | array_flow.rb:289:10:289:10 | a [element] | provenance | | +| array_flow.rb:288:5:288:5 | [post] a [element] | array_flow.rb:290:10:290:10 | a [element] | provenance | | +| array_flow.rb:288:14:288:14 | b [element 2] | array_flow.rb:288:5:288:5 | [post] a [element] | provenance | | +| array_flow.rb:289:10:289:10 | a [element] | array_flow.rb:289:10:289:13 | ...[...] | provenance | | +| array_flow.rb:290:10:290:10 | a [element 2] | array_flow.rb:290:10:290:13 | ...[...] | provenance | | +| array_flow.rb:290:10:290:10 | a [element] | array_flow.rb:290:10:290:13 | ...[...] | provenance | | +| array_flow.rb:294:5:294:5 | a [element 2] | array_flow.rb:295:5:295:5 | a [element 2] | provenance | | +| array_flow.rb:294:16:294:25 | call to source | array_flow.rb:294:5:294:5 | a [element 2] | provenance | | +| array_flow.rb:295:5:295:5 | a [element 2] | array_flow.rb:295:17:295:17 | x | provenance | | +| array_flow.rb:295:17:295:17 | x | array_flow.rb:296:14:296:14 | x | provenance | | +| array_flow.rb:301:5:301:5 | a [element 2] | array_flow.rb:302:5:302:5 | a [element 2] | provenance | | +| array_flow.rb:301:16:301:25 | call to source | array_flow.rb:301:5:301:5 | a [element 2] | provenance | | +| array_flow.rb:302:5:302:5 | a [element 2] | array_flow.rb:302:20:302:20 | x | provenance | | +| array_flow.rb:302:20:302:20 | x | array_flow.rb:303:14:303:14 | x | provenance | | +| array_flow.rb:308:5:308:5 | a [element 2] | array_flow.rb:309:9:309:9 | a [element 2] | provenance | | +| array_flow.rb:308:16:308:25 | call to source | array_flow.rb:308:5:308:5 | a [element 2] | provenance | | +| array_flow.rb:309:5:309:5 | b [element 2] | array_flow.rb:312:10:312:10 | b [element 2] | provenance | | +| array_flow.rb:309:9:309:9 | a [element 2] | array_flow.rb:309:9:309:21 | call to deconstruct [element 2] | provenance | | +| array_flow.rb:309:9:309:21 | call to deconstruct [element 2] | array_flow.rb:309:5:309:5 | b [element 2] | provenance | | +| array_flow.rb:312:10:312:10 | b [element 2] | array_flow.rb:312:10:312:13 | ...[...] | provenance | | +| array_flow.rb:316:5:316:5 | a [element 2] | array_flow.rb:317:9:317:9 | a [element 2] | provenance | | +| array_flow.rb:316:16:316:27 | call to source | array_flow.rb:316:5:316:5 | a [element 2] | provenance | | +| array_flow.rb:317:5:317:5 | b | array_flow.rb:318:10:318:10 | b | provenance | | +| array_flow.rb:317:9:317:9 | a [element 2] | array_flow.rb:317:9:317:36 | call to delete | provenance | | +| array_flow.rb:317:9:317:36 | call to delete | array_flow.rb:317:5:317:5 | b | provenance | | +| array_flow.rb:317:23:317:34 | call to source | array_flow.rb:317:9:317:36 | call to delete | provenance | | +| array_flow.rb:325:5:325:5 | a [element 2] | array_flow.rb:326:9:326:9 | a [element 2] | provenance | | +| array_flow.rb:325:5:325:5 | a [element 3] | array_flow.rb:326:9:326:9 | a [element 3] | provenance | | +| array_flow.rb:325:16:325:27 | call to source | array_flow.rb:325:5:325:5 | a [element 2] | provenance | | +| array_flow.rb:325:30:325:41 | call to source | array_flow.rb:325:5:325:5 | a [element 3] | provenance | | +| array_flow.rb:326:5:326:5 | b | array_flow.rb:327:10:327:10 | b | provenance | | +| array_flow.rb:326:9:326:9 | [post] a [element 2] | array_flow.rb:328:10:328:10 | a [element 2] | provenance | | +| array_flow.rb:326:9:326:9 | a [element 2] | array_flow.rb:326:9:326:22 | call to delete_at | provenance | | +| array_flow.rb:326:9:326:9 | a [element 3] | array_flow.rb:326:9:326:9 | [post] a [element 2] | provenance | | +| array_flow.rb:326:9:326:22 | call to delete_at | array_flow.rb:326:5:326:5 | b | provenance | | +| array_flow.rb:328:10:328:10 | a [element 2] | array_flow.rb:328:10:328:13 | ...[...] | provenance | | +| array_flow.rb:330:5:330:5 | a [element 2] | array_flow.rb:331:9:331:9 | a [element 2] | provenance | | +| array_flow.rb:330:5:330:5 | a [element 3] | array_flow.rb:331:9:331:9 | a [element 3] | provenance | | +| array_flow.rb:330:16:330:27 | call to source | array_flow.rb:330:5:330:5 | a [element 2] | provenance | | +| array_flow.rb:330:30:330:41 | call to source | array_flow.rb:330:5:330:5 | a [element 3] | provenance | | +| array_flow.rb:331:5:331:5 | b | array_flow.rb:332:10:332:10 | b | provenance | | +| array_flow.rb:331:9:331:9 | [post] a [element] | array_flow.rb:333:10:333:10 | a [element] | provenance | | +| array_flow.rb:331:9:331:9 | [post] a [element] | array_flow.rb:334:10:334:10 | a [element] | provenance | | +| array_flow.rb:331:9:331:9 | a [element 2] | array_flow.rb:331:9:331:9 | [post] a [element] | provenance | | +| array_flow.rb:331:9:331:9 | a [element 2] | array_flow.rb:331:9:331:22 | call to delete_at | provenance | | +| array_flow.rb:331:9:331:9 | a [element 3] | array_flow.rb:331:9:331:9 | [post] a [element] | provenance | | +| array_flow.rb:331:9:331:9 | a [element 3] | array_flow.rb:331:9:331:22 | call to delete_at | provenance | | +| array_flow.rb:331:9:331:22 | call to delete_at | array_flow.rb:331:5:331:5 | b | provenance | | +| array_flow.rb:333:10:333:10 | a [element] | array_flow.rb:333:10:333:13 | ...[...] | provenance | | +| array_flow.rb:334:10:334:10 | a [element] | array_flow.rb:334:10:334:13 | ...[...] | provenance | | +| array_flow.rb:338:5:338:5 | a [element 2] | array_flow.rb:339:9:339:9 | a [element 2] | provenance | | +| array_flow.rb:338:16:338:25 | call to source | array_flow.rb:338:5:338:5 | a [element 2] | provenance | | +| array_flow.rb:339:5:339:5 | b [element] | array_flow.rb:342:10:342:10 | b [element] | provenance | | +| array_flow.rb:339:9:339:9 | [post] a [element] | array_flow.rb:343:10:343:10 | a [element] | provenance | | +| array_flow.rb:339:9:339:9 | [post] a [element] | array_flow.rb:344:10:344:10 | a [element] | provenance | | +| array_flow.rb:339:9:339:9 | [post] a [element] | array_flow.rb:345:10:345:10 | a [element] | provenance | | +| array_flow.rb:339:9:339:9 | a [element 2] | array_flow.rb:339:9:339:9 | [post] a [element] | provenance | | +| array_flow.rb:339:9:339:9 | a [element 2] | array_flow.rb:339:9:341:7 | call to delete_if [element] | provenance | | +| array_flow.rb:339:9:339:9 | a [element 2] | array_flow.rb:339:25:339:25 | x | provenance | | +| array_flow.rb:339:9:341:7 | call to delete_if [element] | array_flow.rb:339:5:339:5 | b [element] | provenance | | +| array_flow.rb:339:25:339:25 | x | array_flow.rb:340:14:340:14 | x | provenance | | +| array_flow.rb:342:10:342:10 | b [element] | array_flow.rb:342:10:342:13 | ...[...] | provenance | | +| array_flow.rb:343:10:343:10 | a [element] | array_flow.rb:343:10:343:13 | ...[...] | provenance | | +| array_flow.rb:344:10:344:10 | a [element] | array_flow.rb:344:10:344:13 | ...[...] | provenance | | +| array_flow.rb:345:10:345:10 | a [element] | array_flow.rb:345:10:345:13 | ...[...] | provenance | | +| array_flow.rb:349:5:349:5 | a [element 2] | array_flow.rb:350:9:350:9 | a [element 2] | provenance | | +| array_flow.rb:349:16:349:25 | call to source | array_flow.rb:349:5:349:5 | a [element 2] | provenance | | +| array_flow.rb:350:5:350:5 | b [element] | array_flow.rb:351:10:351:10 | b [element] | provenance | | +| array_flow.rb:350:9:350:9 | a [element 2] | array_flow.rb:350:9:350:25 | call to difference [element] | provenance | | +| array_flow.rb:350:9:350:25 | call to difference [element] | array_flow.rb:350:5:350:5 | b [element] | provenance | | +| array_flow.rb:351:10:351:10 | b [element] | array_flow.rb:351:10:351:13 | ...[...] | provenance | | +| array_flow.rb:355:5:355:5 | a [element 2] | array_flow.rb:357:10:357:10 | a [element 2] | provenance | | +| array_flow.rb:355:5:355:5 | a [element 2] | array_flow.rb:358:10:358:10 | a [element 2] | provenance | | +| array_flow.rb:355:5:355:5 | a [element 3, element 1] | array_flow.rb:360:10:360:10 | a [element 3, element 1] | provenance | | +| array_flow.rb:355:16:355:27 | call to source | array_flow.rb:355:5:355:5 | a [element 2] | provenance | | +| array_flow.rb:355:34:355:45 | call to source | array_flow.rb:355:5:355:5 | a [element 3, element 1] | provenance | | +| array_flow.rb:357:10:357:10 | a [element 2] | array_flow.rb:357:10:357:17 | call to dig | provenance | | +| array_flow.rb:358:10:358:10 | a [element 2] | array_flow.rb:358:10:358:17 | call to dig | provenance | | +| array_flow.rb:360:10:360:10 | a [element 3, element 1] | array_flow.rb:360:10:360:19 | call to dig | provenance | | +| array_flow.rb:364:5:364:5 | a [element 2] | array_flow.rb:365:9:365:9 | a [element 2] | provenance | | +| array_flow.rb:364:16:364:27 | call to source | array_flow.rb:364:5:364:5 | a [element 2] | provenance | | +| array_flow.rb:365:5:365:5 | b | array_flow.rb:368:10:368:10 | b | provenance | | +| array_flow.rb:365:9:365:9 | a [element 2] | array_flow.rb:365:9:367:7 | call to detect | provenance | | +| array_flow.rb:365:9:365:9 | a [element 2] | array_flow.rb:365:43:365:43 | x | provenance | | +| array_flow.rb:365:9:367:7 | call to detect | array_flow.rb:365:5:365:5 | b | provenance | | +| array_flow.rb:365:23:365:34 | call to source | array_flow.rb:365:9:367:7 | call to detect | provenance | | +| array_flow.rb:365:43:365:43 | x | array_flow.rb:366:14:366:14 | x | provenance | | +| array_flow.rb:372:5:372:5 | a [element 2] | array_flow.rb:373:9:373:9 | a [element 2] | provenance | | +| array_flow.rb:372:5:372:5 | a [element 2] | array_flow.rb:375:9:375:9 | a [element 2] | provenance | | +| array_flow.rb:372:5:372:5 | a [element 2] | array_flow.rb:380:9:380:9 | a [element 2] | provenance | | +| array_flow.rb:372:5:372:5 | a [element 3] | array_flow.rb:373:9:373:9 | a [element 3] | provenance | | +| array_flow.rb:372:5:372:5 | a [element 3] | array_flow.rb:375:9:375:9 | a [element 3] | provenance | | +| array_flow.rb:372:16:372:27 | call to source | array_flow.rb:372:5:372:5 | a [element 2] | provenance | | +| array_flow.rb:372:30:372:41 | call to source | array_flow.rb:372:5:372:5 | a [element 3] | provenance | | +| array_flow.rb:373:5:373:5 | b [element] | array_flow.rb:374:10:374:10 | b [element] | provenance | | +| array_flow.rb:373:9:373:9 | a [element 2] | array_flow.rb:373:9:373:17 | call to drop [element] | provenance | | +| array_flow.rb:373:9:373:9 | a [element 3] | array_flow.rb:373:9:373:17 | call to drop [element] | provenance | | +| array_flow.rb:373:9:373:17 | call to drop [element] | array_flow.rb:373:5:373:5 | b [element] | provenance | | +| array_flow.rb:374:10:374:10 | b [element] | array_flow.rb:374:10:374:13 | ...[...] | provenance | | +| array_flow.rb:375:5:375:5 | b [element 1] | array_flow.rb:377:10:377:10 | b [element 1] | provenance | | +| array_flow.rb:375:5:375:5 | b [element 1] | array_flow.rb:378:10:378:10 | b [element 1] | provenance | | +| array_flow.rb:375:5:375:5 | b [element 2] | array_flow.rb:378:10:378:10 | b [element 2] | provenance | | +| array_flow.rb:375:9:375:9 | a [element 2] | array_flow.rb:375:9:375:17 | call to drop [element 1] | provenance | | +| array_flow.rb:375:9:375:9 | a [element 3] | array_flow.rb:375:9:375:17 | call to drop [element 2] | provenance | | +| array_flow.rb:375:9:375:17 | call to drop [element 1] | array_flow.rb:375:5:375:5 | b [element 1] | provenance | | +| array_flow.rb:375:9:375:17 | call to drop [element 2] | array_flow.rb:375:5:375:5 | b [element 2] | provenance | | +| array_flow.rb:377:10:377:10 | b [element 1] | array_flow.rb:377:10:377:13 | ...[...] | provenance | | +| array_flow.rb:378:10:378:10 | b [element 1] | array_flow.rb:378:10:378:13 | ...[...] | provenance | | +| array_flow.rb:378:10:378:10 | b [element 2] | array_flow.rb:378:10:378:13 | ...[...] | provenance | | +| array_flow.rb:379:5:379:5 | [post] a [element] | array_flow.rb:380:9:380:9 | a [element] | provenance | | +| array_flow.rb:379:12:379:23 | call to source | array_flow.rb:379:5:379:5 | [post] a [element] | provenance | | +| array_flow.rb:380:5:380:5 | b [element 1] | array_flow.rb:381:10:381:10 | b [element 1] | provenance | | +| array_flow.rb:380:5:380:5 | b [element] | array_flow.rb:381:10:381:10 | b [element] | provenance | | +| array_flow.rb:380:5:380:5 | b [element] | array_flow.rb:382:9:382:9 | b [element] | provenance | | +| array_flow.rb:380:9:380:9 | a [element 2] | array_flow.rb:380:9:380:17 | call to drop [element 1] | provenance | | +| array_flow.rb:380:9:380:9 | a [element] | array_flow.rb:380:9:380:17 | call to drop [element] | provenance | | +| array_flow.rb:380:9:380:17 | call to drop [element 1] | array_flow.rb:380:5:380:5 | b [element 1] | provenance | | +| array_flow.rb:380:9:380:17 | call to drop [element] | array_flow.rb:380:5:380:5 | b [element] | provenance | | +| array_flow.rb:381:10:381:10 | b [element 1] | array_flow.rb:381:10:381:13 | ...[...] | provenance | | +| array_flow.rb:381:10:381:10 | b [element] | array_flow.rb:381:10:381:13 | ...[...] | provenance | | +| array_flow.rb:382:5:382:5 | c [element] | array_flow.rb:383:10:383:10 | c [element] | provenance | | +| array_flow.rb:382:9:382:9 | b [element] | array_flow.rb:382:9:382:19 | call to drop [element] | provenance | | +| array_flow.rb:382:9:382:19 | call to drop [element] | array_flow.rb:382:5:382:5 | c [element] | provenance | | +| array_flow.rb:383:10:383:10 | c [element] | array_flow.rb:383:10:383:13 | ...[...] | provenance | | +| array_flow.rb:387:5:387:5 | a [element 2] | array_flow.rb:388:9:388:9 | a [element 2] | provenance | | +| array_flow.rb:387:5:387:5 | a [element 3] | array_flow.rb:388:9:388:9 | a [element 3] | provenance | | +| array_flow.rb:387:16:387:27 | call to source | array_flow.rb:387:5:387:5 | a [element 2] | provenance | | +| array_flow.rb:387:30:387:41 | call to source | array_flow.rb:387:5:387:5 | a [element 3] | provenance | | +| array_flow.rb:388:5:388:5 | b [element] | array_flow.rb:391:10:391:10 | b [element] | provenance | | +| array_flow.rb:388:9:388:9 | a [element 2] | array_flow.rb:388:9:390:7 | call to drop_while [element] | provenance | | +| array_flow.rb:388:9:388:9 | a [element 2] | array_flow.rb:388:26:388:26 | x | provenance | | +| array_flow.rb:388:9:388:9 | a [element 3] | array_flow.rb:388:9:390:7 | call to drop_while [element] | provenance | | +| array_flow.rb:388:9:388:9 | a [element 3] | array_flow.rb:388:26:388:26 | x | provenance | | +| array_flow.rb:388:9:390:7 | call to drop_while [element] | array_flow.rb:388:5:388:5 | b [element] | provenance | | +| array_flow.rb:388:26:388:26 | x | array_flow.rb:389:14:389:14 | x | provenance | | +| array_flow.rb:391:10:391:10 | b [element] | array_flow.rb:391:10:391:13 | ...[...] | provenance | | +| array_flow.rb:395:5:395:5 | a [element 2] | array_flow.rb:396:9:396:9 | a [element 2] | provenance | | +| array_flow.rb:395:16:395:25 | call to source | array_flow.rb:395:5:395:5 | a [element 2] | provenance | | +| array_flow.rb:396:5:396:5 | b [element 2] | array_flow.rb:399:10:399:10 | b [element 2] | provenance | | +| array_flow.rb:396:9:396:9 | a [element 2] | array_flow.rb:396:9:398:7 | call to each [element 2] | provenance | | +| array_flow.rb:396:9:396:9 | a [element 2] | array_flow.rb:396:20:396:20 | x | provenance | | +| array_flow.rb:396:9:398:7 | call to each [element 2] | array_flow.rb:396:5:396:5 | b [element 2] | provenance | | +| array_flow.rb:396:20:396:20 | x | array_flow.rb:397:14:397:14 | x | provenance | | +| array_flow.rb:399:10:399:10 | b [element 2] | array_flow.rb:399:10:399:13 | ...[...] | provenance | | +| array_flow.rb:403:5:403:5 | a [element 2] | array_flow.rb:404:18:404:18 | a [element 2] | provenance | | +| array_flow.rb:403:16:403:25 | call to source | array_flow.rb:403:5:403:5 | a [element 2] | provenance | | +| array_flow.rb:404:5:404:5 | b [element 2] | array_flow.rb:408:10:408:10 | b [element 2] | provenance | | +| array_flow.rb:404:9:406:7 | [post] { ... } [captured x] | array_flow.rb:407:10:407:10 | x | provenance | | +| array_flow.rb:404:9:406:7 | __synth__0__1 | array_flow.rb:405:14:405:14 | x | provenance | | +| array_flow.rb:404:18:404:18 | a [element 2] | array_flow.rb:404:5:404:5 | b [element 2] | provenance | | +| array_flow.rb:404:18:404:18 | a [element 2] | array_flow.rb:404:9:406:7 | [post] { ... } [captured x] | provenance | | +| array_flow.rb:404:18:404:18 | a [element 2] | array_flow.rb:404:9:406:7 | __synth__0__1 | provenance | | +| array_flow.rb:408:10:408:10 | b [element 2] | array_flow.rb:408:10:408:13 | ...[...] | provenance | | +| array_flow.rb:412:5:412:5 | a [element 2] | array_flow.rb:413:5:413:5 | a [element 2] | provenance | | +| array_flow.rb:412:16:412:25 | call to source | array_flow.rb:412:5:412:5 | a [element 2] | provenance | | +| array_flow.rb:413:5:413:5 | a [element 2] | array_flow.rb:413:24:413:24 | x [element] | provenance | | +| array_flow.rb:413:24:413:24 | x [element] | array_flow.rb:414:15:414:15 | x [element] | provenance | | +| array_flow.rb:414:15:414:15 | x [element] | array_flow.rb:414:15:414:18 | ...[...] | provenance | | +| array_flow.rb:414:15:414:18 | ...[...] | array_flow.rb:414:14:414:19 | ( ... ) | provenance | | +| array_flow.rb:419:5:419:5 | a [element 2] | array_flow.rb:420:9:420:9 | a [element 2] | provenance | | +| array_flow.rb:419:16:419:25 | call to source | array_flow.rb:419:5:419:5 | a [element 2] | provenance | | +| array_flow.rb:420:5:420:5 | b [element 2] | array_flow.rb:423:10:423:10 | b [element 2] | provenance | | +| array_flow.rb:420:9:420:9 | a [element 2] | array_flow.rb:420:9:422:7 | call to each_entry [element 2] | provenance | | +| array_flow.rb:420:9:420:9 | a [element 2] | array_flow.rb:420:26:420:26 | x | provenance | | +| array_flow.rb:420:9:422:7 | call to each_entry [element 2] | array_flow.rb:420:5:420:5 | b [element 2] | provenance | | +| array_flow.rb:420:26:420:26 | x | array_flow.rb:421:14:421:14 | x | provenance | | +| array_flow.rb:423:10:423:10 | b [element 2] | array_flow.rb:423:10:423:13 | ...[...] | provenance | | +| array_flow.rb:427:5:427:5 | a [element 2] | array_flow.rb:428:9:428:9 | a [element 2] | provenance | | +| array_flow.rb:427:16:427:25 | call to source | array_flow.rb:427:5:427:5 | a [element 2] | provenance | | +| array_flow.rb:428:5:428:5 | b [element 2] | array_flow.rb:431:10:431:10 | b [element 2] | provenance | | +| array_flow.rb:428:9:428:9 | a [element 2] | array_flow.rb:428:9:430:7 | call to each_index [element 2] | provenance | | +| array_flow.rb:428:9:430:7 | call to each_index [element 2] | array_flow.rb:428:5:428:5 | b [element 2] | provenance | | +| array_flow.rb:431:10:431:10 | b [element 2] | array_flow.rb:431:10:431:13 | ...[...] | provenance | | +| array_flow.rb:435:5:435:5 | a [element 3] | array_flow.rb:436:5:436:5 | a [element 3] | provenance | | +| array_flow.rb:435:19:435:28 | call to source | array_flow.rb:435:5:435:5 | a [element 3] | provenance | | +| array_flow.rb:436:5:436:5 | a [element 3] | array_flow.rb:436:25:436:25 | x [element] | provenance | | +| array_flow.rb:436:25:436:25 | x [element] | array_flow.rb:437:14:437:14 | x [element] | provenance | | +| array_flow.rb:437:14:437:14 | x [element] | array_flow.rb:437:14:437:17 | ...[...] | provenance | | +| array_flow.rb:442:5:442:5 | a [element 3] | array_flow.rb:443:9:443:9 | a [element 3] | provenance | | +| array_flow.rb:442:19:442:28 | call to source | array_flow.rb:442:5:442:5 | a [element 3] | provenance | | +| array_flow.rb:443:5:443:5 | b [element 3] | array_flow.rb:447:10:447:10 | b [element 3] | provenance | | +| array_flow.rb:443:9:443:9 | a [element 3] | array_flow.rb:443:9:446:7 | call to each_with_index [element 3] | provenance | | +| array_flow.rb:443:9:443:9 | a [element 3] | array_flow.rb:443:31:443:31 | x | provenance | | +| array_flow.rb:443:9:446:7 | call to each_with_index [element 3] | array_flow.rb:443:5:443:5 | b [element 3] | provenance | | +| array_flow.rb:443:31:443:31 | x | array_flow.rb:444:14:444:14 | x | provenance | | +| array_flow.rb:447:10:447:10 | b [element 3] | array_flow.rb:447:10:447:13 | ...[...] | provenance | | +| array_flow.rb:451:5:451:5 | a [element 3] | array_flow.rb:452:9:452:9 | a [element 3] | provenance | | +| array_flow.rb:451:19:451:30 | call to source | array_flow.rb:451:5:451:5 | a [element 3] | provenance | | +| array_flow.rb:452:5:452:5 | b | array_flow.rb:456:10:456:10 | b | provenance | | +| array_flow.rb:452:9:452:9 | a [element 3] | array_flow.rb:452:46:452:46 | x | provenance | | +| array_flow.rb:452:9:455:7 | call to each_with_object | array_flow.rb:452:5:452:5 | b | provenance | | +| array_flow.rb:452:28:452:39 | call to source | array_flow.rb:452:9:455:7 | call to each_with_object | provenance | | +| array_flow.rb:452:28:452:39 | call to source | array_flow.rb:452:48:452:48 | a | provenance | | +| array_flow.rb:452:46:452:46 | x | array_flow.rb:453:14:453:14 | x | provenance | | +| array_flow.rb:452:48:452:48 | a | array_flow.rb:454:14:454:14 | a | provenance | | +| array_flow.rb:460:5:460:5 | a [element 3] | array_flow.rb:461:9:461:9 | a [element 3] | provenance | | +| array_flow.rb:460:19:460:28 | call to source | array_flow.rb:460:5:460:5 | a [element 3] | provenance | | +| array_flow.rb:461:5:461:5 | b [element 3] | array_flow.rb:462:10:462:10 | b [element 3] | provenance | | +| array_flow.rb:461:9:461:9 | a [element 3] | array_flow.rb:461:9:461:17 | call to entries [element 3] | provenance | | +| array_flow.rb:461:9:461:17 | call to entries [element 3] | array_flow.rb:461:5:461:5 | b [element 3] | provenance | | +| array_flow.rb:462:10:462:10 | b [element 3] | array_flow.rb:462:10:462:13 | ...[...] | provenance | | +| array_flow.rb:466:5:466:5 | a [element 3] | array_flow.rb:467:9:467:9 | a [element 3] | provenance | | +| array_flow.rb:466:5:466:5 | a [element 3] | array_flow.rb:471:9:471:9 | a [element 3] | provenance | | +| array_flow.rb:466:5:466:5 | a [element 3] | array_flow.rb:473:9:473:9 | a [element 3] | provenance | | +| array_flow.rb:466:5:466:5 | a [element 3] | array_flow.rb:477:9:477:9 | a [element 3] | provenance | | +| array_flow.rb:466:5:466:5 | a [element 4] | array_flow.rb:467:9:467:9 | a [element 4] | provenance | | +| array_flow.rb:466:5:466:5 | a [element 4] | array_flow.rb:477:9:477:9 | a [element 4] | provenance | | +| array_flow.rb:466:19:466:30 | call to source | array_flow.rb:466:5:466:5 | a [element 3] | provenance | | +| array_flow.rb:466:33:466:44 | call to source | array_flow.rb:466:5:466:5 | a [element 4] | provenance | | +| array_flow.rb:467:5:467:5 | b | array_flow.rb:470:10:470:10 | b | provenance | | +| array_flow.rb:467:9:467:9 | a [element 3] | array_flow.rb:467:9:469:7 | call to fetch | provenance | | +| array_flow.rb:467:9:467:9 | a [element 4] | array_flow.rb:467:9:469:7 | call to fetch | provenance | | +| array_flow.rb:467:9:469:7 | call to fetch | array_flow.rb:467:5:467:5 | b | provenance | | +| array_flow.rb:467:17:467:28 | call to source | array_flow.rb:467:35:467:35 | x | provenance | | +| array_flow.rb:467:35:467:35 | x | array_flow.rb:468:14:468:14 | x | provenance | | +| array_flow.rb:471:5:471:5 | b | array_flow.rb:472:10:472:10 | b | provenance | | +| array_flow.rb:471:9:471:9 | a [element 3] | array_flow.rb:471:9:471:18 | call to fetch | provenance | | +| array_flow.rb:471:9:471:18 | call to fetch | array_flow.rb:471:5:471:5 | b | provenance | | +| array_flow.rb:473:5:473:5 | b | array_flow.rb:474:10:474:10 | b | provenance | | +| array_flow.rb:473:9:473:9 | a [element 3] | array_flow.rb:473:9:473:32 | call to fetch | provenance | | +| array_flow.rb:473:9:473:32 | call to fetch | array_flow.rb:473:5:473:5 | b | provenance | | +| array_flow.rb:473:20:473:31 | call to source | array_flow.rb:473:9:473:32 | call to fetch | provenance | | +| array_flow.rb:475:5:475:5 | b | array_flow.rb:476:10:476:10 | b | provenance | | +| array_flow.rb:475:9:475:34 | call to fetch | array_flow.rb:475:5:475:5 | b | provenance | | +| array_flow.rb:475:22:475:33 | call to source | array_flow.rb:475:9:475:34 | call to fetch | provenance | | +| array_flow.rb:477:5:477:5 | b | array_flow.rb:478:10:478:10 | b | provenance | | +| array_flow.rb:477:9:477:9 | a [element 3] | array_flow.rb:477:9:477:32 | call to fetch | provenance | | +| array_flow.rb:477:9:477:9 | a [element 4] | array_flow.rb:477:9:477:32 | call to fetch | provenance | | +| array_flow.rb:477:9:477:32 | call to fetch | array_flow.rb:477:5:477:5 | b | provenance | | +| array_flow.rb:477:20:477:31 | call to source | array_flow.rb:477:9:477:32 | call to fetch | provenance | | +| array_flow.rb:482:5:482:5 | a [element 3] | array_flow.rb:484:10:484:10 | a [element 3] | provenance | | +| array_flow.rb:482:19:482:30 | call to source | array_flow.rb:482:5:482:5 | a [element 3] | provenance | | +| array_flow.rb:483:5:483:5 | [post] a [element] | array_flow.rb:484:10:484:10 | a [element] | provenance | | +| array_flow.rb:483:12:483:23 | call to source | array_flow.rb:483:5:483:5 | [post] a [element] | provenance | | +| array_flow.rb:484:10:484:10 | a [element 3] | array_flow.rb:484:10:484:13 | ...[...] | provenance | | +| array_flow.rb:484:10:484:10 | a [element] | array_flow.rb:484:10:484:13 | ...[...] | provenance | | +| array_flow.rb:485:5:485:5 | [post] a [element] | array_flow.rb:486:10:486:10 | a [element] | provenance | | +| array_flow.rb:485:12:485:23 | call to source | array_flow.rb:485:5:485:5 | [post] a [element] | provenance | | +| array_flow.rb:486:10:486:10 | a [element] | array_flow.rb:486:10:486:13 | ...[...] | provenance | | +| array_flow.rb:487:5:487:5 | [post] a [element] | array_flow.rb:490:10:490:10 | a [element] | provenance | | +| array_flow.rb:487:5:487:5 | [post] a [element] | array_flow.rb:494:10:494:10 | a [element] | provenance | | +| array_flow.rb:488:9:488:20 | call to source | array_flow.rb:487:5:487:5 | [post] a [element] | provenance | | +| array_flow.rb:490:10:490:10 | a [element] | array_flow.rb:490:10:490:13 | ...[...] | provenance | | +| array_flow.rb:491:5:491:5 | [post] a [element] | array_flow.rb:494:10:494:10 | a [element] | provenance | | +| array_flow.rb:492:9:492:20 | call to source | array_flow.rb:491:5:491:5 | [post] a [element] | provenance | | +| array_flow.rb:494:10:494:10 | a [element] | array_flow.rb:494:10:494:13 | ...[...] | provenance | | +| array_flow.rb:498:5:498:5 | a [element 3] | array_flow.rb:499:9:499:9 | a [element 3] | provenance | | +| array_flow.rb:498:19:498:28 | call to source | array_flow.rb:498:5:498:5 | a [element 3] | provenance | | +| array_flow.rb:499:5:499:5 | b [element] | array_flow.rb:502:10:502:10 | b [element] | provenance | | +| array_flow.rb:499:9:499:9 | a [element 3] | array_flow.rb:499:9:501:7 | call to filter [element] | provenance | | +| array_flow.rb:499:9:499:9 | a [element 3] | array_flow.rb:499:22:499:22 | x | provenance | | +| array_flow.rb:499:9:501:7 | call to filter [element] | array_flow.rb:499:5:499:5 | b [element] | provenance | | +| array_flow.rb:499:22:499:22 | x | array_flow.rb:500:14:500:14 | x | provenance | | +| array_flow.rb:502:10:502:10 | b [element] | array_flow.rb:502:10:502:13 | ...[...] | provenance | | +| array_flow.rb:506:5:506:5 | a [element 3] | array_flow.rb:507:9:507:9 | a [element 3] | provenance | | +| array_flow.rb:506:19:506:28 | call to source | array_flow.rb:506:5:506:5 | a [element 3] | provenance | | +| array_flow.rb:507:5:507:5 | b [element] | array_flow.rb:511:10:511:10 | b [element] | provenance | | +| array_flow.rb:507:9:507:9 | a [element 3] | array_flow.rb:507:9:510:7 | call to filter_map [element] | provenance | | +| array_flow.rb:507:9:507:9 | a [element 3] | array_flow.rb:507:26:507:26 | x | provenance | | +| array_flow.rb:507:9:510:7 | call to filter_map [element] | array_flow.rb:507:5:507:5 | b [element] | provenance | | +| array_flow.rb:507:26:507:26 | x | array_flow.rb:508:14:508:14 | x | provenance | | +| array_flow.rb:511:10:511:10 | b [element] | array_flow.rb:511:10:511:13 | ...[...] | provenance | | +| array_flow.rb:518:5:518:5 | d [element] | array_flow.rb:521:10:521:10 | d [element] | provenance | | +| array_flow.rb:518:9:520:7 | call to filter_map [element] | array_flow.rb:518:5:518:5 | d [element] | provenance | | +| array_flow.rb:519:9:519:20 | call to source | array_flow.rb:518:9:520:7 | call to filter_map [element] | provenance | | +| array_flow.rb:521:10:521:10 | d [element] | array_flow.rb:521:10:521:13 | ...[...] | provenance | | +| array_flow.rb:525:5:525:5 | a [element 3] | array_flow.rb:526:9:526:9 | a [element 3] | provenance | | +| array_flow.rb:525:19:525:28 | call to source | array_flow.rb:525:5:525:5 | a [element 3] | provenance | | +| array_flow.rb:526:5:526:5 | b [element] | array_flow.rb:531:10:531:10 | b [element] | provenance | | +| array_flow.rb:526:9:526:9 | [post] a [element] | array_flow.rb:530:10:530:10 | a [element] | provenance | | +| array_flow.rb:526:9:526:9 | a [element 3] | array_flow.rb:526:9:526:9 | [post] a [element] | provenance | | +| array_flow.rb:526:9:526:9 | a [element 3] | array_flow.rb:526:9:529:7 | call to filter! [element] | provenance | | +| array_flow.rb:526:9:526:9 | a [element 3] | array_flow.rb:526:23:526:23 | x | provenance | | +| array_flow.rb:526:9:529:7 | call to filter! [element] | array_flow.rb:526:5:526:5 | b [element] | provenance | | +| array_flow.rb:526:23:526:23 | x | array_flow.rb:527:14:527:14 | x | provenance | | +| array_flow.rb:530:10:530:10 | a [element] | array_flow.rb:530:10:530:13 | ...[...] | provenance | | +| array_flow.rb:531:10:531:10 | b [element] | array_flow.rb:531:10:531:13 | ...[...] | provenance | | +| array_flow.rb:535:5:535:5 | a [element 3] | array_flow.rb:536:9:536:9 | a [element 3] | provenance | | +| array_flow.rb:535:19:535:30 | call to source | array_flow.rb:535:5:535:5 | a [element 3] | provenance | | +| array_flow.rb:536:5:536:5 | b | array_flow.rb:539:10:539:10 | b | provenance | | +| array_flow.rb:536:9:536:9 | a [element 3] | array_flow.rb:536:9:538:7 | call to find | provenance | | +| array_flow.rb:536:9:536:9 | a [element 3] | array_flow.rb:536:41:536:41 | x | provenance | | +| array_flow.rb:536:9:538:7 | call to find | array_flow.rb:536:5:536:5 | b | provenance | | +| array_flow.rb:536:21:536:32 | call to source | array_flow.rb:536:9:538:7 | call to find | provenance | | +| array_flow.rb:536:41:536:41 | x | array_flow.rb:537:14:537:14 | x | provenance | | +| array_flow.rb:543:5:543:5 | a [element 3] | array_flow.rb:544:9:544:9 | a [element 3] | provenance | | +| array_flow.rb:543:19:543:28 | call to source | array_flow.rb:543:5:543:5 | a [element 3] | provenance | | +| array_flow.rb:544:5:544:5 | b [element] | array_flow.rb:547:10:547:10 | b [element] | provenance | | +| array_flow.rb:544:9:544:9 | a [element 3] | array_flow.rb:544:9:546:7 | call to find_all [element] | provenance | | +| array_flow.rb:544:9:544:9 | a [element 3] | array_flow.rb:544:24:544:24 | x | provenance | | +| array_flow.rb:544:9:546:7 | call to find_all [element] | array_flow.rb:544:5:544:5 | b [element] | provenance | | +| array_flow.rb:544:24:544:24 | x | array_flow.rb:545:14:545:14 | x | provenance | | +| array_flow.rb:547:10:547:10 | b [element] | array_flow.rb:547:10:547:13 | ...[...] | provenance | | +| array_flow.rb:551:5:551:5 | a [element 3] | array_flow.rb:552:5:552:5 | a [element 3] | provenance | | +| array_flow.rb:551:19:551:28 | call to source | array_flow.rb:551:5:551:5 | a [element 3] | provenance | | +| array_flow.rb:552:5:552:5 | a [element 3] | array_flow.rb:552:22:552:22 | x | provenance | | +| array_flow.rb:552:22:552:22 | x | array_flow.rb:553:14:553:14 | x | provenance | | +| array_flow.rb:558:5:558:5 | a [element 0] | array_flow.rb:560:10:560:10 | a [element 0] | provenance | | +| array_flow.rb:558:5:558:5 | a [element 0] | array_flow.rb:561:9:561:9 | a [element 0] | provenance | | +| array_flow.rb:558:5:558:5 | a [element 0] | array_flow.rb:564:9:564:9 | a [element 0] | provenance | | +| array_flow.rb:558:5:558:5 | a [element 3] | array_flow.rb:564:9:564:9 | a [element 3] | provenance | | +| array_flow.rb:558:10:558:21 | call to source | array_flow.rb:558:5:558:5 | a [element 0] | provenance | | +| array_flow.rb:558:30:558:41 | call to source | array_flow.rb:558:5:558:5 | a [element 3] | provenance | | +| array_flow.rb:559:5:559:5 | [post] a [element] | array_flow.rb:560:10:560:10 | a [element] | provenance | | +| array_flow.rb:559:5:559:5 | [post] a [element] | array_flow.rb:561:9:561:9 | a [element] | provenance | | +| array_flow.rb:559:5:559:5 | [post] a [element] | array_flow.rb:564:9:564:9 | a [element] | provenance | | +| array_flow.rb:559:12:559:23 | call to source | array_flow.rb:559:5:559:5 | [post] a [element] | provenance | | +| array_flow.rb:560:10:560:10 | a [element 0] | array_flow.rb:560:10:560:16 | call to first | provenance | | +| array_flow.rb:560:10:560:10 | a [element] | array_flow.rb:560:10:560:16 | call to first | provenance | | +| array_flow.rb:561:5:561:5 | b [element 0] | array_flow.rb:562:10:562:10 | b [element 0] | provenance | | +| array_flow.rb:561:5:561:5 | b [element] | array_flow.rb:562:10:562:10 | b [element] | provenance | | +| array_flow.rb:561:5:561:5 | b [element] | array_flow.rb:563:10:563:10 | b [element] | provenance | | +| array_flow.rb:561:9:561:9 | a [element 0] | array_flow.rb:561:9:561:18 | call to first [element 0] | provenance | | +| array_flow.rb:561:9:561:9 | a [element] | array_flow.rb:561:9:561:18 | call to first [element] | provenance | | +| array_flow.rb:561:9:561:18 | call to first [element 0] | array_flow.rb:561:5:561:5 | b [element 0] | provenance | | +| array_flow.rb:561:9:561:18 | call to first [element] | array_flow.rb:561:5:561:5 | b [element] | provenance | | +| array_flow.rb:562:10:562:10 | b [element 0] | array_flow.rb:562:10:562:13 | ...[...] | provenance | | +| array_flow.rb:562:10:562:10 | b [element] | array_flow.rb:562:10:562:13 | ...[...] | provenance | | +| array_flow.rb:563:10:563:10 | b [element] | array_flow.rb:563:10:563:13 | ...[...] | provenance | | +| array_flow.rb:564:5:564:5 | c [element 0] | array_flow.rb:565:10:565:10 | c [element 0] | provenance | | +| array_flow.rb:564:5:564:5 | c [element 3] | array_flow.rb:566:10:566:10 | c [element 3] | provenance | | +| array_flow.rb:564:5:564:5 | c [element] | array_flow.rb:565:10:565:10 | c [element] | provenance | | +| array_flow.rb:564:5:564:5 | c [element] | array_flow.rb:566:10:566:10 | c [element] | provenance | | +| array_flow.rb:564:9:564:9 | a [element 0] | array_flow.rb:564:9:564:18 | call to first [element 0] | provenance | | +| array_flow.rb:564:9:564:9 | a [element 3] | array_flow.rb:564:9:564:18 | call to first [element 3] | provenance | | +| array_flow.rb:564:9:564:9 | a [element] | array_flow.rb:564:9:564:18 | call to first [element] | provenance | | +| array_flow.rb:564:9:564:18 | call to first [element 0] | array_flow.rb:564:5:564:5 | c [element 0] | provenance | | +| array_flow.rb:564:9:564:18 | call to first [element 3] | array_flow.rb:564:5:564:5 | c [element 3] | provenance | | +| array_flow.rb:564:9:564:18 | call to first [element] | array_flow.rb:564:5:564:5 | c [element] | provenance | | +| array_flow.rb:565:10:565:10 | c [element 0] | array_flow.rb:565:10:565:13 | ...[...] | provenance | | +| array_flow.rb:565:10:565:10 | c [element] | array_flow.rb:565:10:565:13 | ...[...] | provenance | | +| array_flow.rb:566:10:566:10 | c [element 3] | array_flow.rb:566:10:566:13 | ...[...] | provenance | | +| array_flow.rb:566:10:566:10 | c [element] | array_flow.rb:566:10:566:13 | ...[...] | provenance | | +| array_flow.rb:570:5:570:5 | a [element 2] | array_flow.rb:571:9:571:9 | a [element 2] | provenance | | +| array_flow.rb:570:5:570:5 | a [element 2] | array_flow.rb:576:9:576:9 | a [element 2] | provenance | | +| array_flow.rb:570:16:570:27 | call to source | array_flow.rb:570:5:570:5 | a [element 2] | provenance | | +| array_flow.rb:571:5:571:5 | b [element] | array_flow.rb:575:10:575:10 | b [element] | provenance | | +| array_flow.rb:571:9:571:9 | a [element 2] | array_flow.rb:571:9:574:7 | call to flat_map [element] | provenance | | +| array_flow.rb:571:9:571:9 | a [element 2] | array_flow.rb:571:24:571:24 | x | provenance | | +| array_flow.rb:571:9:574:7 | call to flat_map [element] | array_flow.rb:571:5:571:5 | b [element] | provenance | | +| array_flow.rb:571:24:571:24 | x | array_flow.rb:572:14:572:14 | x | provenance | | +| array_flow.rb:573:13:573:24 | call to source | array_flow.rb:571:9:574:7 | call to flat_map [element] | provenance | | +| array_flow.rb:575:10:575:10 | b [element] | array_flow.rb:575:10:575:13 | ...[...] | provenance | | +| array_flow.rb:576:5:576:5 | b [element] | array_flow.rb:580:10:580:10 | b [element] | provenance | | +| array_flow.rb:576:9:576:9 | a [element 2] | array_flow.rb:576:24:576:24 | x | provenance | | +| array_flow.rb:576:9:579:7 | call to flat_map [element] | array_flow.rb:576:5:576:5 | b [element] | provenance | | +| array_flow.rb:576:24:576:24 | x | array_flow.rb:577:14:577:14 | x | provenance | | +| array_flow.rb:578:9:578:20 | call to source | array_flow.rb:576:9:579:7 | call to flat_map [element] | provenance | | +| array_flow.rb:580:10:580:10 | b [element] | array_flow.rb:580:10:580:13 | ...[...] | provenance | | +| array_flow.rb:584:5:584:5 | a [element 2, element 1] | array_flow.rb:585:9:585:9 | a [element 2, element 1] | provenance | | +| array_flow.rb:584:20:584:29 | call to source | array_flow.rb:584:5:584:5 | a [element 2, element 1] | provenance | | +| array_flow.rb:585:5:585:5 | b [element] | array_flow.rb:586:10:586:10 | b [element] | provenance | | +| array_flow.rb:585:9:585:9 | a [element 2, element 1] | array_flow.rb:585:9:585:17 | call to flatten [element] | provenance | | +| array_flow.rb:585:9:585:17 | call to flatten [element] | array_flow.rb:585:5:585:5 | b [element] | provenance | | +| array_flow.rb:586:10:586:10 | b [element] | array_flow.rb:586:10:586:13 | ...[...] | provenance | | +| array_flow.rb:590:5:590:5 | a [element 2, element 1] | array_flow.rb:591:10:591:10 | a [element 2, element 1] | provenance | | +| array_flow.rb:590:5:590:5 | a [element 2, element 1] | array_flow.rb:592:9:592:9 | a [element 2, element 1] | provenance | | +| array_flow.rb:590:20:590:29 | call to source | array_flow.rb:590:5:590:5 | a [element 2, element 1] | provenance | | +| array_flow.rb:591:10:591:10 | a [element 2, element 1] | array_flow.rb:591:10:591:13 | ...[...] [element 1] | provenance | | +| array_flow.rb:591:10:591:13 | ...[...] [element 1] | array_flow.rb:591:10:591:16 | ...[...] | provenance | | +| array_flow.rb:592:5:592:5 | b [element, element 1] | array_flow.rb:596:10:596:10 | b [element, element 1] | provenance | | +| array_flow.rb:592:5:592:5 | b [element] | array_flow.rb:595:10:595:10 | b [element] | provenance | | +| array_flow.rb:592:9:592:9 | [post] a [element, element 1] | array_flow.rb:594:10:594:10 | a [element, element 1] | provenance | | +| array_flow.rb:592:9:592:9 | [post] a [element] | array_flow.rb:593:10:593:10 | a [element] | provenance | | +| array_flow.rb:592:9:592:9 | a [element 2, element 1] | array_flow.rb:592:9:592:9 | [post] a [element, element 1] | provenance | | +| array_flow.rb:592:9:592:9 | a [element 2, element 1] | array_flow.rb:592:9:592:9 | [post] a [element] | provenance | | +| array_flow.rb:592:9:592:9 | a [element 2, element 1] | array_flow.rb:592:9:592:18 | call to flatten! [element, element 1] | provenance | | +| array_flow.rb:592:9:592:9 | a [element 2, element 1] | array_flow.rb:592:9:592:18 | call to flatten! [element] | provenance | | +| array_flow.rb:592:9:592:18 | call to flatten! [element, element 1] | array_flow.rb:592:5:592:5 | b [element, element 1] | provenance | | +| array_flow.rb:592:9:592:18 | call to flatten! [element] | array_flow.rb:592:5:592:5 | b [element] | provenance | | +| array_flow.rb:593:10:593:10 | a [element] | array_flow.rb:593:10:593:13 | ...[...] | provenance | | +| array_flow.rb:594:10:594:10 | a [element, element 1] | array_flow.rb:594:10:594:13 | ...[...] [element 1] | provenance | | +| array_flow.rb:594:10:594:13 | ...[...] [element 1] | array_flow.rb:594:10:594:16 | ...[...] | provenance | | +| array_flow.rb:595:10:595:10 | b [element] | array_flow.rb:595:10:595:13 | ...[...] | provenance | | +| array_flow.rb:596:10:596:10 | b [element, element 1] | array_flow.rb:596:10:596:13 | ...[...] [element 1] | provenance | | +| array_flow.rb:596:10:596:13 | ...[...] [element 1] | array_flow.rb:596:10:596:16 | ...[...] | provenance | | +| array_flow.rb:600:5:600:5 | a [element 3] | array_flow.rb:601:9:601:9 | a [element 3] | provenance | | +| array_flow.rb:600:5:600:5 | a [element 3] | array_flow.rb:603:9:603:9 | a [element 3] | provenance | | +| array_flow.rb:600:19:600:30 | call to source | array_flow.rb:600:5:600:5 | a [element 3] | provenance | | +| array_flow.rb:601:5:601:5 | b [element] | array_flow.rb:602:10:602:10 | b [element] | provenance | | +| array_flow.rb:601:9:601:9 | a [element 3] | array_flow.rb:601:9:601:20 | call to grep [element] | provenance | | +| array_flow.rb:601:9:601:20 | call to grep [element] | array_flow.rb:601:5:601:5 | b [element] | provenance | | +| array_flow.rb:602:10:602:10 | b [element] | array_flow.rb:602:10:602:13 | ...[...] | provenance | | +| array_flow.rb:603:5:603:5 | b [element] | array_flow.rb:607:10:607:10 | b [element] | provenance | | +| array_flow.rb:603:9:603:9 | a [element 3] | array_flow.rb:603:26:603:26 | x | provenance | | +| array_flow.rb:603:9:606:7 | call to grep [element] | array_flow.rb:603:5:603:5 | b [element] | provenance | | +| array_flow.rb:603:26:603:26 | x | array_flow.rb:604:14:604:14 | x | provenance | | +| array_flow.rb:605:9:605:20 | call to source | array_flow.rb:603:9:606:7 | call to grep [element] | provenance | | +| array_flow.rb:607:10:607:10 | b [element] | array_flow.rb:607:10:607:13 | ...[...] | provenance | | +| array_flow.rb:611:5:611:5 | a [element 3] | array_flow.rb:612:9:612:9 | a [element 3] | provenance | | +| array_flow.rb:611:5:611:5 | a [element 3] | array_flow.rb:614:9:614:9 | a [element 3] | provenance | | +| array_flow.rb:611:19:611:30 | call to source | array_flow.rb:611:5:611:5 | a [element 3] | provenance | | +| array_flow.rb:612:5:612:5 | b [element] | array_flow.rb:613:10:613:10 | b [element] | provenance | | +| array_flow.rb:612:9:612:9 | a [element 3] | array_flow.rb:612:9:612:21 | call to grep_v [element] | provenance | | +| array_flow.rb:612:9:612:21 | call to grep_v [element] | array_flow.rb:612:5:612:5 | b [element] | provenance | | +| array_flow.rb:613:10:613:10 | b [element] | array_flow.rb:613:10:613:13 | ...[...] | provenance | | +| array_flow.rb:614:5:614:5 | b [element] | array_flow.rb:618:10:618:10 | b [element] | provenance | | +| array_flow.rb:614:9:614:9 | a [element 3] | array_flow.rb:614:27:614:27 | x | provenance | | +| array_flow.rb:614:9:617:7 | call to grep_v [element] | array_flow.rb:614:5:614:5 | b [element] | provenance | | +| array_flow.rb:614:27:614:27 | x | array_flow.rb:615:14:615:14 | x | provenance | | +| array_flow.rb:616:9:616:20 | call to source | array_flow.rb:614:9:617:7 | call to grep_v [element] | provenance | | +| array_flow.rb:618:10:618:10 | b [element] | array_flow.rb:618:10:618:13 | ...[...] | provenance | | +| array_flow.rb:622:5:622:5 | a [element 3] | array_flow.rb:623:9:623:9 | a [element 3] | provenance | | +| array_flow.rb:622:19:622:30 | call to source | array_flow.rb:622:5:622:5 | a [element 3] | provenance | | +| array_flow.rb:623:9:623:9 | a [element 3] | array_flow.rb:623:24:623:24 | x | provenance | | +| array_flow.rb:623:24:623:24 | x | array_flow.rb:624:14:624:14 | x | provenance | | +| array_flow.rb:631:5:631:5 | a [element 3] | array_flow.rb:632:5:632:5 | a [element 3] | provenance | | +| array_flow.rb:631:19:631:28 | call to source | array_flow.rb:631:5:631:5 | a [element 3] | provenance | | +| array_flow.rb:632:5:632:5 | a [element 3] | array_flow.rb:632:17:632:17 | x | provenance | | +| array_flow.rb:632:17:632:17 | x | array_flow.rb:633:14:633:14 | x | provenance | | +| array_flow.rb:638:5:638:5 | a [element 0] | array_flow.rb:639:9:639:9 | a [element 0] | provenance | | +| array_flow.rb:638:5:638:5 | a [element 0] | array_flow.rb:645:9:645:9 | a [element 0] | provenance | | +| array_flow.rb:638:5:638:5 | a [element 2] | array_flow.rb:639:9:639:9 | a [element 2] | provenance | | +| array_flow.rb:638:5:638:5 | a [element 2] | array_flow.rb:645:9:645:9 | a [element 2] | provenance | | +| array_flow.rb:638:10:638:21 | call to source | array_flow.rb:638:5:638:5 | a [element 0] | provenance | | +| array_flow.rb:638:27:638:38 | call to source | array_flow.rb:638:5:638:5 | a [element 2] | provenance | | +| array_flow.rb:639:5:639:5 | b | array_flow.rb:644:10:644:10 | b | provenance | | +| array_flow.rb:639:9:639:9 | a [element 0] | array_flow.rb:639:22:639:22 | x | provenance | | +| array_flow.rb:639:9:639:9 | a [element 2] | array_flow.rb:639:25:639:25 | y | provenance | | +| array_flow.rb:639:9:643:7 | call to inject | array_flow.rb:639:5:639:5 | b | provenance | | +| array_flow.rb:639:22:639:22 | x | array_flow.rb:640:14:640:14 | x | provenance | | +| array_flow.rb:639:25:639:25 | y | array_flow.rb:641:14:641:14 | y | provenance | | +| array_flow.rb:642:9:642:19 | call to source | array_flow.rb:639:9:643:7 | call to inject | provenance | | +| array_flow.rb:645:5:645:5 | c | array_flow.rb:650:10:650:10 | c | provenance | | +| array_flow.rb:645:9:645:9 | a [element 0] | array_flow.rb:645:28:645:28 | y | provenance | | +| array_flow.rb:645:9:645:9 | a [element 2] | array_flow.rb:645:28:645:28 | y | provenance | | +| array_flow.rb:645:9:649:7 | call to inject | array_flow.rb:645:5:645:5 | c | provenance | | +| array_flow.rb:645:28:645:28 | y | array_flow.rb:647:14:647:14 | y | provenance | | +| array_flow.rb:648:9:648:19 | call to source | array_flow.rb:645:9:649:7 | call to inject | provenance | | +| array_flow.rb:655:5:655:5 | a [element 2] | array_flow.rb:656:9:656:9 | a [element 2] | provenance | | +| array_flow.rb:655:16:655:27 | call to source | array_flow.rb:655:5:655:5 | a [element 2] | provenance | | +| array_flow.rb:656:5:656:5 | b [element 1] | array_flow.rb:663:10:663:10 | b [element 1] | provenance | | +| array_flow.rb:656:5:656:5 | b [element 2] | array_flow.rb:664:10:664:10 | b [element 2] | provenance | | +| array_flow.rb:656:5:656:5 | b [element 4] | array_flow.rb:666:10:666:10 | b [element 4] | provenance | | +| array_flow.rb:656:9:656:9 | [post] a [element 1] | array_flow.rb:658:10:658:10 | a [element 1] | provenance | | +| array_flow.rb:656:9:656:9 | [post] a [element 2] | array_flow.rb:659:10:659:10 | a [element 2] | provenance | | +| array_flow.rb:656:9:656:9 | [post] a [element 4] | array_flow.rb:661:10:661:10 | a [element 4] | provenance | | +| array_flow.rb:656:9:656:9 | a [element 2] | array_flow.rb:656:9:656:9 | [post] a [element 4] | provenance | | +| array_flow.rb:656:9:656:9 | a [element 2] | array_flow.rb:656:9:656:47 | call to insert [element 4] | provenance | | +| array_flow.rb:656:9:656:47 | call to insert [element 1] | array_flow.rb:656:5:656:5 | b [element 1] | provenance | | +| array_flow.rb:656:9:656:47 | call to insert [element 2] | array_flow.rb:656:5:656:5 | b [element 2] | provenance | | +| array_flow.rb:656:9:656:47 | call to insert [element 4] | array_flow.rb:656:5:656:5 | b [element 4] | provenance | | +| array_flow.rb:656:21:656:32 | call to source | array_flow.rb:656:9:656:9 | [post] a [element 1] | provenance | | +| array_flow.rb:656:21:656:32 | call to source | array_flow.rb:656:9:656:47 | call to insert [element 1] | provenance | | +| array_flow.rb:656:35:656:46 | call to source | array_flow.rb:656:9:656:9 | [post] a [element 2] | provenance | | +| array_flow.rb:656:35:656:46 | call to source | array_flow.rb:656:9:656:47 | call to insert [element 2] | provenance | | +| array_flow.rb:658:10:658:10 | a [element 1] | array_flow.rb:658:10:658:13 | ...[...] | provenance | | +| array_flow.rb:659:10:659:10 | a [element 2] | array_flow.rb:659:10:659:13 | ...[...] | provenance | | +| array_flow.rb:661:10:661:10 | a [element 4] | array_flow.rb:661:10:661:13 | ...[...] | provenance | | +| array_flow.rb:663:10:663:10 | b [element 1] | array_flow.rb:663:10:663:13 | ...[...] | provenance | | +| array_flow.rb:664:10:664:10 | b [element 2] | array_flow.rb:664:10:664:13 | ...[...] | provenance | | +| array_flow.rb:666:10:666:10 | b [element 4] | array_flow.rb:666:10:666:13 | ...[...] | provenance | | +| array_flow.rb:669:5:669:5 | c [element 2] | array_flow.rb:670:9:670:9 | c [element 2] | provenance | | +| array_flow.rb:669:16:669:27 | call to source | array_flow.rb:669:5:669:5 | c [element 2] | provenance | | +| array_flow.rb:670:5:670:5 | d [element] | array_flow.rb:672:10:672:10 | d [element] | provenance | | +| array_flow.rb:670:9:670:9 | [post] c [element] | array_flow.rb:671:10:671:10 | c [element] | provenance | | +| array_flow.rb:670:9:670:9 | c [element 2] | array_flow.rb:670:9:670:9 | [post] c [element] | provenance | | +| array_flow.rb:670:9:670:9 | c [element 2] | array_flow.rb:670:9:670:47 | call to insert [element] | provenance | | +| array_flow.rb:670:9:670:47 | call to insert [element] | array_flow.rb:670:5:670:5 | d [element] | provenance | | +| array_flow.rb:670:21:670:32 | call to source | array_flow.rb:670:9:670:9 | [post] c [element] | provenance | | +| array_flow.rb:670:21:670:32 | call to source | array_flow.rb:670:9:670:47 | call to insert [element] | provenance | | +| array_flow.rb:670:35:670:46 | call to source | array_flow.rb:670:9:670:9 | [post] c [element] | provenance | | +| array_flow.rb:670:35:670:46 | call to source | array_flow.rb:670:9:670:47 | call to insert [element] | provenance | | +| array_flow.rb:671:10:671:10 | c [element] | array_flow.rb:671:10:671:13 | ...[...] | provenance | | +| array_flow.rb:672:10:672:10 | d [element] | array_flow.rb:672:10:672:13 | ...[...] | provenance | | +| array_flow.rb:683:5:683:5 | a [element 2] | array_flow.rb:684:9:684:9 | a [element 2] | provenance | | +| array_flow.rb:683:16:683:27 | call to source | array_flow.rb:683:5:683:5 | a [element 2] | provenance | | +| array_flow.rb:684:5:684:5 | b [element] | array_flow.rb:685:10:685:10 | b [element] | provenance | | +| array_flow.rb:684:9:684:9 | a [element 2] | array_flow.rb:684:9:684:60 | call to intersection [element] | provenance | | +| array_flow.rb:684:9:684:60 | call to intersection [element] | array_flow.rb:684:5:684:5 | b [element] | provenance | | +| array_flow.rb:684:31:684:42 | call to source | array_flow.rb:684:9:684:60 | call to intersection [element] | provenance | | +| array_flow.rb:684:47:684:58 | call to source | array_flow.rb:684:9:684:60 | call to intersection [element] | provenance | | +| array_flow.rb:685:10:685:10 | b [element] | array_flow.rb:685:10:685:13 | ...[...] | provenance | | +| array_flow.rb:689:5:689:5 | a [element 2] | array_flow.rb:690:9:690:9 | a [element 2] | provenance | | +| array_flow.rb:689:16:689:25 | call to source | array_flow.rb:689:5:689:5 | a [element 2] | provenance | | +| array_flow.rb:690:5:690:5 | b [element] | array_flow.rb:695:10:695:10 | b [element] | provenance | | +| array_flow.rb:690:9:690:9 | [post] a [element] | array_flow.rb:694:10:694:10 | a [element] | provenance | | +| array_flow.rb:690:9:690:9 | a [element 2] | array_flow.rb:690:9:690:9 | [post] a [element] | provenance | | +| array_flow.rb:690:9:690:9 | a [element 2] | array_flow.rb:690:9:693:7 | call to keep_if [element] | provenance | | +| array_flow.rb:690:9:690:9 | a [element 2] | array_flow.rb:690:23:690:23 | x | provenance | | +| array_flow.rb:690:9:693:7 | call to keep_if [element] | array_flow.rb:690:5:690:5 | b [element] | provenance | | +| array_flow.rb:690:23:690:23 | x | array_flow.rb:691:14:691:14 | x | provenance | | +| array_flow.rb:694:10:694:10 | a [element] | array_flow.rb:694:10:694:13 | ...[...] | provenance | | +| array_flow.rb:695:10:695:10 | b [element] | array_flow.rb:695:10:695:13 | ...[...] | provenance | | +| array_flow.rb:699:5:699:5 | a [element 2] | array_flow.rb:701:10:701:10 | a [element 2] | provenance | | +| array_flow.rb:699:5:699:5 | a [element 2] | array_flow.rb:702:9:702:9 | a [element 2] | provenance | | +| array_flow.rb:699:16:699:27 | call to source | array_flow.rb:699:5:699:5 | a [element 2] | provenance | | +| array_flow.rb:700:5:700:5 | [post] a [element] | array_flow.rb:701:10:701:10 | a [element] | provenance | | +| array_flow.rb:700:5:700:5 | [post] a [element] | array_flow.rb:702:9:702:9 | a [element] | provenance | | +| array_flow.rb:700:12:700:23 | call to source | array_flow.rb:700:5:700:5 | [post] a [element] | provenance | | +| array_flow.rb:701:10:701:10 | a [element 2] | array_flow.rb:701:10:701:15 | call to last | provenance | | +| array_flow.rb:701:10:701:10 | a [element] | array_flow.rb:701:10:701:15 | call to last | provenance | | +| array_flow.rb:702:5:702:5 | b [element] | array_flow.rb:703:10:703:10 | b [element] | provenance | | +| array_flow.rb:702:5:702:5 | b [element] | array_flow.rb:704:10:704:10 | b [element] | provenance | | +| array_flow.rb:702:9:702:9 | a [element 2] | array_flow.rb:702:9:702:17 | call to last [element] | provenance | | +| array_flow.rb:702:9:702:9 | a [element] | array_flow.rb:702:9:702:17 | call to last [element] | provenance | | +| array_flow.rb:702:9:702:17 | call to last [element] | array_flow.rb:702:5:702:5 | b [element] | provenance | | +| array_flow.rb:703:10:703:10 | b [element] | array_flow.rb:703:10:703:13 | ...[...] | provenance | | +| array_flow.rb:704:10:704:10 | b [element] | array_flow.rb:704:10:704:13 | ...[...] | provenance | | +| array_flow.rb:708:5:708:5 | a [element 2] | array_flow.rb:709:9:709:9 | a [element 2] | provenance | | +| array_flow.rb:708:16:708:27 | call to source | array_flow.rb:708:5:708:5 | a [element 2] | provenance | | +| array_flow.rb:709:5:709:5 | b [element] | array_flow.rb:713:10:713:10 | b [element] | provenance | | +| array_flow.rb:709:9:709:9 | a [element 2] | array_flow.rb:709:19:709:19 | x | provenance | | +| array_flow.rb:709:9:712:7 | call to map [element] | array_flow.rb:709:5:709:5 | b [element] | provenance | | +| array_flow.rb:709:19:709:19 | x | array_flow.rb:710:14:710:14 | x | provenance | | +| array_flow.rb:711:9:711:19 | call to source | array_flow.rb:709:9:712:7 | call to map [element] | provenance | | +| array_flow.rb:713:10:713:10 | b [element] | array_flow.rb:713:10:713:13 | ...[...] | provenance | | +| array_flow.rb:717:5:717:5 | a [element 2] | array_flow.rb:718:9:718:9 | a [element 2] | provenance | | +| array_flow.rb:717:16:717:27 | call to source | array_flow.rb:717:5:717:5 | a [element 2] | provenance | | +| array_flow.rb:718:5:718:5 | b [element] | array_flow.rb:722:10:722:10 | b [element] | provenance | | +| array_flow.rb:718:9:718:9 | a [element 2] | array_flow.rb:718:20:718:20 | x | provenance | | +| array_flow.rb:718:9:721:7 | call to map! [element] | array_flow.rb:718:5:718:5 | b [element] | provenance | | +| array_flow.rb:718:20:718:20 | x | array_flow.rb:719:14:719:14 | x | provenance | | +| array_flow.rb:720:9:720:19 | call to source | array_flow.rb:718:9:721:7 | call to map! [element] | provenance | | +| array_flow.rb:722:10:722:10 | b [element] | array_flow.rb:722:10:722:13 | ...[...] | provenance | | +| array_flow.rb:726:5:726:5 | a [element 2] | array_flow.rb:729:9:729:9 | a [element 2] | provenance | | +| array_flow.rb:726:5:726:5 | a [element 2] | array_flow.rb:733:9:733:9 | a [element 2] | provenance | | +| array_flow.rb:726:5:726:5 | a [element 2] | array_flow.rb:737:9:737:9 | a [element 2] | provenance | | +| array_flow.rb:726:5:726:5 | a [element 2] | array_flow.rb:745:9:745:9 | a [element 2] | provenance | | +| array_flow.rb:726:16:726:25 | call to source | array_flow.rb:726:5:726:5 | a [element 2] | provenance | | +| array_flow.rb:729:5:729:5 | b | array_flow.rb:730:10:730:10 | b | provenance | | +| array_flow.rb:729:9:729:9 | a [element 2] | array_flow.rb:729:9:729:13 | call to max | provenance | | +| array_flow.rb:729:9:729:13 | call to max | array_flow.rb:729:5:729:5 | b | provenance | | +| array_flow.rb:733:5:733:5 | c [element] | array_flow.rb:734:10:734:10 | c [element] | provenance | | +| array_flow.rb:733:9:733:9 | a [element 2] | array_flow.rb:733:9:733:16 | call to max [element] | provenance | | +| array_flow.rb:733:9:733:16 | call to max [element] | array_flow.rb:733:5:733:5 | c [element] | provenance | | +| array_flow.rb:734:10:734:10 | c [element] | array_flow.rb:734:10:734:13 | ...[...] | provenance | | +| array_flow.rb:737:5:737:5 | d | array_flow.rb:742:10:742:10 | d | provenance | | +| array_flow.rb:737:9:737:9 | a [element 2] | array_flow.rb:737:9:741:7 | call to max | provenance | | +| array_flow.rb:737:9:737:9 | a [element 2] | array_flow.rb:737:19:737:19 | x | provenance | | +| array_flow.rb:737:9:737:9 | a [element 2] | array_flow.rb:737:22:737:22 | y | provenance | | +| array_flow.rb:737:9:741:7 | call to max | array_flow.rb:737:5:737:5 | d | provenance | | +| array_flow.rb:737:19:737:19 | x | array_flow.rb:738:14:738:14 | x | provenance | | +| array_flow.rb:737:22:737:22 | y | array_flow.rb:739:14:739:14 | y | provenance | | +| array_flow.rb:745:5:745:5 | e [element] | array_flow.rb:750:10:750:10 | e [element] | provenance | | +| array_flow.rb:745:9:745:9 | a [element 2] | array_flow.rb:745:9:749:7 | call to max [element] | provenance | | +| array_flow.rb:745:9:745:9 | a [element 2] | array_flow.rb:745:22:745:22 | x | provenance | | +| array_flow.rb:745:9:745:9 | a [element 2] | array_flow.rb:745:25:745:25 | y | provenance | | +| array_flow.rb:745:9:749:7 | call to max [element] | array_flow.rb:745:5:745:5 | e [element] | provenance | | +| array_flow.rb:745:22:745:22 | x | array_flow.rb:746:14:746:14 | x | provenance | | +| array_flow.rb:745:25:745:25 | y | array_flow.rb:747:14:747:14 | y | provenance | | +| array_flow.rb:750:10:750:10 | e [element] | array_flow.rb:750:10:750:13 | ...[...] | provenance | | +| array_flow.rb:754:5:754:5 | a [element 2] | array_flow.rb:757:9:757:9 | a [element 2] | provenance | | +| array_flow.rb:754:5:754:5 | a [element 2] | array_flow.rb:764:9:764:9 | a [element 2] | provenance | | +| array_flow.rb:754:16:754:25 | call to source | array_flow.rb:754:5:754:5 | a [element 2] | provenance | | +| array_flow.rb:757:5:757:5 | b | array_flow.rb:761:10:761:10 | b | provenance | | +| array_flow.rb:757:9:757:9 | a [element 2] | array_flow.rb:757:9:760:7 | call to max_by | provenance | | +| array_flow.rb:757:9:757:9 | a [element 2] | array_flow.rb:757:22:757:22 | x | provenance | | +| array_flow.rb:757:9:760:7 | call to max_by | array_flow.rb:757:5:757:5 | b | provenance | | +| array_flow.rb:757:22:757:22 | x | array_flow.rb:758:14:758:14 | x | provenance | | +| array_flow.rb:764:5:764:5 | c [element] | array_flow.rb:768:10:768:10 | c [element] | provenance | | +| array_flow.rb:764:9:764:9 | a [element 2] | array_flow.rb:764:9:767:7 | call to max_by [element] | provenance | | +| array_flow.rb:764:9:764:9 | a [element 2] | array_flow.rb:764:25:764:25 | x | provenance | | +| array_flow.rb:764:9:767:7 | call to max_by [element] | array_flow.rb:764:5:764:5 | c [element] | provenance | | +| array_flow.rb:764:25:764:25 | x | array_flow.rb:765:14:765:14 | x | provenance | | +| array_flow.rb:768:10:768:10 | c [element] | array_flow.rb:768:10:768:13 | ...[...] | provenance | | +| array_flow.rb:772:5:772:5 | a [element 2] | array_flow.rb:775:9:775:9 | a [element 2] | provenance | | +| array_flow.rb:772:5:772:5 | a [element 2] | array_flow.rb:779:9:779:9 | a [element 2] | provenance | | +| array_flow.rb:772:5:772:5 | a [element 2] | array_flow.rb:783:9:783:9 | a [element 2] | provenance | | +| array_flow.rb:772:5:772:5 | a [element 2] | array_flow.rb:791:9:791:9 | a [element 2] | provenance | | +| array_flow.rb:772:16:772:25 | call to source | array_flow.rb:772:5:772:5 | a [element 2] | provenance | | +| array_flow.rb:775:5:775:5 | b | array_flow.rb:776:10:776:10 | b | provenance | | +| array_flow.rb:775:9:775:9 | a [element 2] | array_flow.rb:775:9:775:13 | call to min | provenance | | +| array_flow.rb:775:9:775:13 | call to min | array_flow.rb:775:5:775:5 | b | provenance | | +| array_flow.rb:779:5:779:5 | c [element] | array_flow.rb:780:10:780:10 | c [element] | provenance | | +| array_flow.rb:779:9:779:9 | a [element 2] | array_flow.rb:779:9:779:16 | call to min [element] | provenance | | +| array_flow.rb:779:9:779:16 | call to min [element] | array_flow.rb:779:5:779:5 | c [element] | provenance | | +| array_flow.rb:780:10:780:10 | c [element] | array_flow.rb:780:10:780:13 | ...[...] | provenance | | +| array_flow.rb:783:5:783:5 | d | array_flow.rb:788:10:788:10 | d | provenance | | +| array_flow.rb:783:9:783:9 | a [element 2] | array_flow.rb:783:9:787:7 | call to min | provenance | | +| array_flow.rb:783:9:783:9 | a [element 2] | array_flow.rb:783:19:783:19 | x | provenance | | +| array_flow.rb:783:9:783:9 | a [element 2] | array_flow.rb:783:22:783:22 | y | provenance | | +| array_flow.rb:783:9:787:7 | call to min | array_flow.rb:783:5:783:5 | d | provenance | | +| array_flow.rb:783:19:783:19 | x | array_flow.rb:784:14:784:14 | x | provenance | | +| array_flow.rb:783:22:783:22 | y | array_flow.rb:785:14:785:14 | y | provenance | | +| array_flow.rb:791:5:791:5 | e [element] | array_flow.rb:796:10:796:10 | e [element] | provenance | | +| array_flow.rb:791:9:791:9 | a [element 2] | array_flow.rb:791:9:795:7 | call to min [element] | provenance | | +| array_flow.rb:791:9:791:9 | a [element 2] | array_flow.rb:791:22:791:22 | x | provenance | | +| array_flow.rb:791:9:791:9 | a [element 2] | array_flow.rb:791:25:791:25 | y | provenance | | +| array_flow.rb:791:9:795:7 | call to min [element] | array_flow.rb:791:5:791:5 | e [element] | provenance | | +| array_flow.rb:791:22:791:22 | x | array_flow.rb:792:14:792:14 | x | provenance | | +| array_flow.rb:791:25:791:25 | y | array_flow.rb:793:14:793:14 | y | provenance | | +| array_flow.rb:796:10:796:10 | e [element] | array_flow.rb:796:10:796:13 | ...[...] | provenance | | +| array_flow.rb:800:5:800:5 | a [element 2] | array_flow.rb:803:9:803:9 | a [element 2] | provenance | | +| array_flow.rb:800:5:800:5 | a [element 2] | array_flow.rb:810:9:810:9 | a [element 2] | provenance | | +| array_flow.rb:800:16:800:25 | call to source | array_flow.rb:800:5:800:5 | a [element 2] | provenance | | +| array_flow.rb:803:5:803:5 | b | array_flow.rb:807:10:807:10 | b | provenance | | +| array_flow.rb:803:9:803:9 | a [element 2] | array_flow.rb:803:9:806:7 | call to min_by | provenance | | +| array_flow.rb:803:9:803:9 | a [element 2] | array_flow.rb:803:22:803:22 | x | provenance | | +| array_flow.rb:803:9:806:7 | call to min_by | array_flow.rb:803:5:803:5 | b | provenance | | +| array_flow.rb:803:22:803:22 | x | array_flow.rb:804:14:804:14 | x | provenance | | +| array_flow.rb:810:5:810:5 | c [element] | array_flow.rb:814:10:814:10 | c [element] | provenance | | +| array_flow.rb:810:9:810:9 | a [element 2] | array_flow.rb:810:9:813:7 | call to min_by [element] | provenance | | +| array_flow.rb:810:9:810:9 | a [element 2] | array_flow.rb:810:25:810:25 | x | provenance | | +| array_flow.rb:810:9:813:7 | call to min_by [element] | array_flow.rb:810:5:810:5 | c [element] | provenance | | +| array_flow.rb:810:25:810:25 | x | array_flow.rb:811:14:811:14 | x | provenance | | +| array_flow.rb:814:10:814:10 | c [element] | array_flow.rb:814:10:814:13 | ...[...] | provenance | | +| array_flow.rb:818:5:818:5 | a [element 2] | array_flow.rb:820:9:820:9 | a [element 2] | provenance | | +| array_flow.rb:818:5:818:5 | a [element 2] | array_flow.rb:824:9:824:9 | a [element 2] | provenance | | +| array_flow.rb:818:16:818:25 | call to source | array_flow.rb:818:5:818:5 | a [element 2] | provenance | | +| array_flow.rb:820:5:820:5 | b [element] | array_flow.rb:821:10:821:10 | b [element] | provenance | | +| array_flow.rb:820:5:820:5 | b [element] | array_flow.rb:822:10:822:10 | b [element] | provenance | | +| array_flow.rb:820:9:820:9 | a [element 2] | array_flow.rb:820:9:820:16 | call to minmax [element] | provenance | | +| array_flow.rb:820:9:820:16 | call to minmax [element] | array_flow.rb:820:5:820:5 | b [element] | provenance | | +| array_flow.rb:821:10:821:10 | b [element] | array_flow.rb:821:10:821:13 | ...[...] | provenance | | +| array_flow.rb:822:10:822:10 | b [element] | array_flow.rb:822:10:822:13 | ...[...] | provenance | | +| array_flow.rb:824:5:824:5 | c [element] | array_flow.rb:829:10:829:10 | c [element] | provenance | | +| array_flow.rb:824:5:824:5 | c [element] | array_flow.rb:830:10:830:10 | c [element] | provenance | | +| array_flow.rb:824:9:824:9 | a [element 2] | array_flow.rb:824:9:828:7 | call to minmax [element] | provenance | | +| array_flow.rb:824:9:824:9 | a [element 2] | array_flow.rb:824:22:824:22 | x | provenance | | +| array_flow.rb:824:9:824:9 | a [element 2] | array_flow.rb:824:25:824:25 | y | provenance | | +| array_flow.rb:824:9:828:7 | call to minmax [element] | array_flow.rb:824:5:824:5 | c [element] | provenance | | +| array_flow.rb:824:22:824:22 | x | array_flow.rb:825:14:825:14 | x | provenance | | +| array_flow.rb:824:25:824:25 | y | array_flow.rb:826:14:826:14 | y | provenance | | +| array_flow.rb:829:10:829:10 | c [element] | array_flow.rb:829:10:829:13 | ...[...] | provenance | | +| array_flow.rb:830:10:830:10 | c [element] | array_flow.rb:830:10:830:13 | ...[...] | provenance | | +| array_flow.rb:834:5:834:5 | a [element 2] | array_flow.rb:835:9:835:9 | a [element 2] | provenance | | +| array_flow.rb:834:16:834:25 | call to source | array_flow.rb:834:5:834:5 | a [element 2] | provenance | | +| array_flow.rb:835:5:835:5 | b [element] | array_flow.rb:839:10:839:10 | b [element] | provenance | | +| array_flow.rb:835:5:835:5 | b [element] | array_flow.rb:840:10:840:10 | b [element] | provenance | | +| array_flow.rb:835:9:835:9 | a [element 2] | array_flow.rb:835:9:838:7 | call to minmax_by [element] | provenance | | +| array_flow.rb:835:9:835:9 | a [element 2] | array_flow.rb:835:25:835:25 | x | provenance | | +| array_flow.rb:835:9:838:7 | call to minmax_by [element] | array_flow.rb:835:5:835:5 | b [element] | provenance | | +| array_flow.rb:835:25:835:25 | x | array_flow.rb:836:14:836:14 | x | provenance | | +| array_flow.rb:839:10:839:10 | b [element] | array_flow.rb:839:10:839:13 | ...[...] | provenance | | +| array_flow.rb:840:10:840:10 | b [element] | array_flow.rb:840:10:840:13 | ...[...] | provenance | | +| array_flow.rb:844:5:844:5 | a [element 2] | array_flow.rb:845:5:845:5 | a [element 2] | provenance | | +| array_flow.rb:844:16:844:25 | call to source | array_flow.rb:844:5:844:5 | a [element 2] | provenance | | +| array_flow.rb:845:5:845:5 | a [element 2] | array_flow.rb:845:17:845:17 | x | provenance | | +| array_flow.rb:845:17:845:17 | x | array_flow.rb:846:14:846:14 | x | provenance | | +| array_flow.rb:853:5:853:5 | a [element 2] | array_flow.rb:854:5:854:5 | a [element 2] | provenance | | +| array_flow.rb:853:16:853:25 | call to source | array_flow.rb:853:5:853:5 | a [element 2] | provenance | | +| array_flow.rb:854:5:854:5 | a [element 2] | array_flow.rb:854:16:854:16 | x | provenance | | +| array_flow.rb:854:16:854:16 | x | array_flow.rb:855:14:855:14 | x | provenance | | +| array_flow.rb:866:5:866:5 | a [element 2] | array_flow.rb:867:9:867:9 | a [element 2] | provenance | | +| array_flow.rb:866:16:866:25 | call to source | array_flow.rb:866:5:866:5 | a [element 2] | provenance | | +| array_flow.rb:867:5:867:5 | b [element, element] | array_flow.rb:871:10:871:10 | b [element, element] | provenance | | +| array_flow.rb:867:5:867:5 | b [element, element] | array_flow.rb:872:10:872:10 | b [element, element] | provenance | | +| array_flow.rb:867:9:867:9 | a [element 2] | array_flow.rb:867:9:870:7 | call to partition [element, element] | provenance | | +| array_flow.rb:867:9:867:9 | a [element 2] | array_flow.rb:867:25:867:25 | x | provenance | | +| array_flow.rb:867:9:870:7 | call to partition [element, element] | array_flow.rb:867:5:867:5 | b [element, element] | provenance | | +| array_flow.rb:867:25:867:25 | x | array_flow.rb:868:14:868:14 | x | provenance | | +| array_flow.rb:871:10:871:10 | b [element, element] | array_flow.rb:871:10:871:13 | ...[...] [element] | provenance | | +| array_flow.rb:871:10:871:13 | ...[...] [element] | array_flow.rb:871:10:871:16 | ...[...] | provenance | | +| array_flow.rb:872:10:872:10 | b [element, element] | array_flow.rb:872:10:872:13 | ...[...] [element] | provenance | | +| array_flow.rb:872:10:872:13 | ...[...] [element] | array_flow.rb:872:10:872:16 | ...[...] | provenance | | +| array_flow.rb:876:5:876:5 | a [element 2] | array_flow.rb:878:9:878:9 | a [element 2] | provenance | | +| array_flow.rb:876:5:876:5 | a [element 2] | array_flow.rb:886:9:886:9 | a [element 2] | provenance | | +| array_flow.rb:876:5:876:5 | a [element 2] | array_flow.rb:893:9:893:9 | a [element 2] | provenance | | +| array_flow.rb:876:16:876:25 | call to source | array_flow.rb:876:5:876:5 | a [element 2] | provenance | | +| array_flow.rb:878:5:878:5 | b [element 2] | array_flow.rb:884:10:884:10 | b [element 2] | provenance | | +| array_flow.rb:878:9:878:9 | a [element 2] | array_flow.rb:878:9:882:7 | call to permutation [element 2] | provenance | | +| array_flow.rb:878:9:878:9 | a [element 2] | array_flow.rb:878:27:878:27 | x [element] | provenance | | +| array_flow.rb:878:9:882:7 | call to permutation [element 2] | array_flow.rb:878:5:878:5 | b [element 2] | provenance | | +| array_flow.rb:878:27:878:27 | x [element] | array_flow.rb:879:14:879:14 | x [element] | provenance | | +| array_flow.rb:878:27:878:27 | x [element] | array_flow.rb:880:14:880:14 | x [element] | provenance | | +| array_flow.rb:878:27:878:27 | x [element] | array_flow.rb:881:14:881:14 | x [element] | provenance | | +| array_flow.rb:879:14:879:14 | x [element] | array_flow.rb:879:14:879:17 | ...[...] | provenance | | +| array_flow.rb:880:14:880:14 | x [element] | array_flow.rb:880:14:880:17 | ...[...] | provenance | | +| array_flow.rb:881:14:881:14 | x [element] | array_flow.rb:881:14:881:17 | ...[...] | provenance | | +| array_flow.rb:884:10:884:10 | b [element 2] | array_flow.rb:884:10:884:13 | ...[...] | provenance | | +| array_flow.rb:886:5:886:5 | c [element 2] | array_flow.rb:891:10:891:10 | c [element 2] | provenance | | +| array_flow.rb:886:5:886:5 | c [element 2] | array_flow.rb:898:10:898:10 | c [element 2] | provenance | | +| array_flow.rb:886:9:886:9 | a [element 2] | array_flow.rb:886:9:889:7 | call to permutation [element 2] | provenance | | +| array_flow.rb:886:9:886:9 | a [element 2] | array_flow.rb:886:30:886:30 | x [element] | provenance | | +| array_flow.rb:886:9:889:7 | call to permutation [element 2] | array_flow.rb:886:5:886:5 | c [element 2] | provenance | | +| array_flow.rb:886:30:886:30 | x [element] | array_flow.rb:887:14:887:14 | x [element] | provenance | | +| array_flow.rb:886:30:886:30 | x [element] | array_flow.rb:888:14:888:14 | x [element] | provenance | | +| array_flow.rb:887:14:887:14 | x [element] | array_flow.rb:887:14:887:17 | ...[...] | provenance | | +| array_flow.rb:888:14:888:14 | x [element] | array_flow.rb:888:14:888:17 | ...[...] | provenance | | +| array_flow.rb:891:10:891:10 | c [element 2] | array_flow.rb:891:10:891:13 | ...[...] | provenance | | +| array_flow.rb:893:9:893:9 | a [element 2] | array_flow.rb:893:30:893:30 | x [element] | provenance | | +| array_flow.rb:893:30:893:30 | x [element] | array_flow.rb:894:14:894:14 | x [element] | provenance | | +| array_flow.rb:893:30:893:30 | x [element] | array_flow.rb:895:14:895:14 | x [element] | provenance | | +| array_flow.rb:894:14:894:14 | x [element] | array_flow.rb:894:14:894:17 | ...[...] | provenance | | +| array_flow.rb:895:14:895:14 | x [element] | array_flow.rb:895:14:895:17 | ...[...] | provenance | | +| array_flow.rb:898:10:898:10 | c [element 2] | array_flow.rb:898:10:898:13 | ...[...] | provenance | | +| array_flow.rb:905:5:905:5 | a [element 1] | array_flow.rb:906:9:906:9 | a [element 1] | provenance | | +| array_flow.rb:905:5:905:5 | a [element 1] | array_flow.rb:909:10:909:10 | a [element 1] | provenance | | +| array_flow.rb:905:5:905:5 | a [element 3] | array_flow.rb:906:9:906:9 | a [element 3] | provenance | | +| array_flow.rb:905:5:905:5 | a [element 3] | array_flow.rb:911:10:911:10 | a [element 3] | provenance | | +| array_flow.rb:905:13:905:24 | call to source | array_flow.rb:905:5:905:5 | a [element 1] | provenance | | +| array_flow.rb:905:30:905:41 | call to source | array_flow.rb:905:5:905:5 | a [element 3] | provenance | | +| array_flow.rb:906:5:906:5 | b | array_flow.rb:907:10:907:10 | b | provenance | | +| array_flow.rb:906:9:906:9 | a [element 1] | array_flow.rb:906:9:906:13 | call to pop | provenance | | +| array_flow.rb:906:9:906:9 | a [element 3] | array_flow.rb:906:9:906:13 | call to pop | provenance | | +| array_flow.rb:906:9:906:13 | call to pop | array_flow.rb:906:5:906:5 | b | provenance | | +| array_flow.rb:909:10:909:10 | a [element 1] | array_flow.rb:909:10:909:13 | ...[...] | provenance | | +| array_flow.rb:911:10:911:10 | a [element 3] | array_flow.rb:911:10:911:13 | ...[...] | provenance | | +| array_flow.rb:913:5:913:5 | a [element 1] | array_flow.rb:914:9:914:9 | a [element 1] | provenance | | +| array_flow.rb:913:5:913:5 | a [element 1] | array_flow.rb:918:10:918:10 | a [element 1] | provenance | | +| array_flow.rb:913:5:913:5 | a [element 3] | array_flow.rb:914:9:914:9 | a [element 3] | provenance | | +| array_flow.rb:913:5:913:5 | a [element 3] | array_flow.rb:920:10:920:10 | a [element 3] | provenance | | +| array_flow.rb:913:13:913:24 | call to source | array_flow.rb:913:5:913:5 | a [element 1] | provenance | | +| array_flow.rb:913:30:913:41 | call to source | array_flow.rb:913:5:913:5 | a [element 3] | provenance | | +| array_flow.rb:914:5:914:5 | b [element] | array_flow.rb:915:10:915:10 | b [element] | provenance | | +| array_flow.rb:914:5:914:5 | b [element] | array_flow.rb:916:10:916:10 | b [element] | provenance | | +| array_flow.rb:914:9:914:9 | a [element 1] | array_flow.rb:914:9:914:16 | call to pop [element] | provenance | | +| array_flow.rb:914:9:914:9 | a [element 3] | array_flow.rb:914:9:914:16 | call to pop [element] | provenance | | +| array_flow.rb:914:9:914:16 | call to pop [element] | array_flow.rb:914:5:914:5 | b [element] | provenance | | +| array_flow.rb:915:10:915:10 | b [element] | array_flow.rb:915:10:915:13 | ...[...] | provenance | | +| array_flow.rb:916:10:916:10 | b [element] | array_flow.rb:916:10:916:13 | ...[...] | provenance | | +| array_flow.rb:918:10:918:10 | a [element 1] | array_flow.rb:918:10:918:13 | ...[...] | provenance | | +| array_flow.rb:920:10:920:10 | a [element 3] | array_flow.rb:920:10:920:13 | ...[...] | provenance | | +| array_flow.rb:924:5:924:5 | a [element 2] | array_flow.rb:925:5:925:5 | a [element 2] | provenance | | +| array_flow.rb:924:16:924:27 | call to source | array_flow.rb:924:5:924:5 | a [element 2] | provenance | | +| array_flow.rb:925:5:925:5 | [post] a [element 2] | array_flow.rb:928:10:928:10 | a [element 2] | provenance | | +| array_flow.rb:925:5:925:5 | [post] a [element 5] | array_flow.rb:931:10:931:10 | a [element 5] | provenance | | +| array_flow.rb:925:5:925:5 | a [element 2] | array_flow.rb:925:5:925:5 | [post] a [element 5] | provenance | | +| array_flow.rb:925:21:925:32 | call to source | array_flow.rb:925:5:925:5 | [post] a [element 2] | provenance | | +| array_flow.rb:928:10:928:10 | a [element 2] | array_flow.rb:928:10:928:13 | ...[...] | provenance | | +| array_flow.rb:931:10:931:10 | a [element 5] | array_flow.rb:931:10:931:13 | ...[...] | provenance | | +| array_flow.rb:935:5:935:5 | a [element 2] | array_flow.rb:938:9:938:9 | a [element 2] | provenance | | +| array_flow.rb:935:16:935:27 | call to source | array_flow.rb:935:5:935:5 | a [element 2] | provenance | | +| array_flow.rb:936:5:936:5 | b [element 1] | array_flow.rb:938:19:938:19 | b [element 1] | provenance | | +| array_flow.rb:936:13:936:24 | call to source | array_flow.rb:936:5:936:5 | b [element 1] | provenance | | +| array_flow.rb:937:5:937:5 | c [element 0] | array_flow.rb:938:22:938:22 | c [element 0] | provenance | | +| array_flow.rb:937:10:937:21 | call to source | array_flow.rb:937:5:937:5 | c [element 0] | provenance | | +| array_flow.rb:938:5:938:5 | d [element, element] | array_flow.rb:939:10:939:10 | d [element, element] | provenance | | +| array_flow.rb:938:5:938:5 | d [element, element] | array_flow.rb:940:10:940:10 | d [element, element] | provenance | | +| array_flow.rb:938:9:938:9 | a [element 2] | array_flow.rb:938:9:938:22 | call to product [element, element] | provenance | | +| array_flow.rb:938:9:938:22 | call to product [element, element] | array_flow.rb:938:5:938:5 | d [element, element] | provenance | | +| array_flow.rb:938:19:938:19 | b [element 1] | array_flow.rb:938:9:938:22 | call to product [element, element] | provenance | | +| array_flow.rb:938:22:938:22 | c [element 0] | array_flow.rb:938:9:938:22 | call to product [element, element] | provenance | | +| array_flow.rb:939:10:939:10 | d [element, element] | array_flow.rb:939:10:939:13 | ...[...] [element] | provenance | | +| array_flow.rb:939:10:939:13 | ...[...] [element] | array_flow.rb:939:10:939:16 | ...[...] | provenance | | +| array_flow.rb:940:10:940:10 | d [element, element] | array_flow.rb:940:10:940:13 | ...[...] [element] | provenance | | +| array_flow.rb:940:10:940:13 | ...[...] [element] | array_flow.rb:940:10:940:16 | ...[...] | provenance | | +| array_flow.rb:944:5:944:5 | a [element 0] | array_flow.rb:945:9:945:9 | a [element 0] | provenance | | +| array_flow.rb:944:5:944:5 | a [element 0] | array_flow.rb:946:10:946:10 | a [element 0] | provenance | | +| array_flow.rb:944:10:944:21 | call to source | array_flow.rb:944:5:944:5 | a [element 0] | provenance | | +| array_flow.rb:945:5:945:5 | b [element 0] | array_flow.rb:948:10:948:10 | b [element 0] | provenance | | +| array_flow.rb:945:5:945:5 | b [element] | array_flow.rb:948:10:948:10 | b [element] | provenance | | +| array_flow.rb:945:5:945:5 | b [element] | array_flow.rb:949:10:949:10 | b [element] | provenance | | +| array_flow.rb:945:9:945:9 | [post] a [element] | array_flow.rb:946:10:946:10 | a [element] | provenance | | +| array_flow.rb:945:9:945:9 | [post] a [element] | array_flow.rb:947:10:947:10 | a [element] | provenance | | +| array_flow.rb:945:9:945:9 | a [element 0] | array_flow.rb:945:9:945:44 | call to append [element 0] | provenance | | +| array_flow.rb:945:9:945:44 | call to append [element 0] | array_flow.rb:945:5:945:5 | b [element 0] | provenance | | +| array_flow.rb:945:9:945:44 | call to append [element] | array_flow.rb:945:5:945:5 | b [element] | provenance | | +| array_flow.rb:945:18:945:29 | call to source | array_flow.rb:945:9:945:9 | [post] a [element] | provenance | | +| array_flow.rb:945:18:945:29 | call to source | array_flow.rb:945:9:945:44 | call to append [element] | provenance | | +| array_flow.rb:945:32:945:43 | call to source | array_flow.rb:945:9:945:9 | [post] a [element] | provenance | | +| array_flow.rb:945:32:945:43 | call to source | array_flow.rb:945:9:945:44 | call to append [element] | provenance | | +| array_flow.rb:946:10:946:10 | a [element 0] | array_flow.rb:946:10:946:13 | ...[...] | provenance | | +| array_flow.rb:946:10:946:10 | a [element] | array_flow.rb:946:10:946:13 | ...[...] | provenance | | +| array_flow.rb:947:10:947:10 | a [element] | array_flow.rb:947:10:947:13 | ...[...] | provenance | | +| array_flow.rb:948:10:948:10 | b [element 0] | array_flow.rb:948:10:948:13 | ...[...] | provenance | | +| array_flow.rb:948:10:948:10 | b [element] | array_flow.rb:948:10:948:13 | ...[...] | provenance | | +| array_flow.rb:949:10:949:10 | b [element] | array_flow.rb:949:10:949:13 | ...[...] | provenance | | +| array_flow.rb:955:5:955:5 | c [element 0] | array_flow.rb:956:16:956:16 | c [element 0] | provenance | | +| array_flow.rb:955:10:955:19 | call to source | array_flow.rb:955:5:955:5 | c [element 0] | provenance | | +| array_flow.rb:956:5:956:5 | d [element 2, element 0] | array_flow.rb:957:10:957:10 | d [element 2, element 0] | provenance | | +| array_flow.rb:956:5:956:5 | d [element 2, element 0] | array_flow.rb:958:10:958:10 | d [element 2, element 0] | provenance | | +| array_flow.rb:956:16:956:16 | c [element 0] | array_flow.rb:956:5:956:5 | d [element 2, element 0] | provenance | | +| array_flow.rb:957:10:957:10 | d [element 2, element 0] | array_flow.rb:957:10:957:22 | call to rassoc [element 0] | provenance | | +| array_flow.rb:957:10:957:22 | call to rassoc [element 0] | array_flow.rb:957:10:957:25 | ...[...] | provenance | | +| array_flow.rb:958:10:958:10 | d [element 2, element 0] | array_flow.rb:958:10:958:22 | call to rassoc [element 0] | provenance | | +| array_flow.rb:958:10:958:22 | call to rassoc [element 0] | array_flow.rb:958:10:958:25 | ...[...] | provenance | | +| array_flow.rb:962:5:962:5 | a [element 0] | array_flow.rb:963:9:963:9 | a [element 0] | provenance | | +| array_flow.rb:962:5:962:5 | a [element 0] | array_flow.rb:968:9:968:9 | a [element 0] | provenance | | +| array_flow.rb:962:5:962:5 | a [element 2] | array_flow.rb:963:9:963:9 | a [element 2] | provenance | | +| array_flow.rb:962:5:962:5 | a [element 2] | array_flow.rb:968:9:968:9 | a [element 2] | provenance | | +| array_flow.rb:962:10:962:21 | call to source | array_flow.rb:962:5:962:5 | a [element 0] | provenance | | +| array_flow.rb:962:27:962:38 | call to source | array_flow.rb:962:5:962:5 | a [element 2] | provenance | | +| array_flow.rb:963:9:963:9 | a [element 0] | array_flow.rb:963:22:963:22 | x | provenance | | +| array_flow.rb:963:9:963:9 | a [element 2] | array_flow.rb:963:25:963:25 | y | provenance | | +| array_flow.rb:963:22:963:22 | x | array_flow.rb:964:14:964:14 | x | provenance | | +| array_flow.rb:963:25:963:25 | y | array_flow.rb:965:14:965:14 | y | provenance | | +| array_flow.rb:968:9:968:9 | a [element 0] | array_flow.rb:968:28:968:28 | y | provenance | | +| array_flow.rb:968:9:968:9 | a [element 2] | array_flow.rb:968:28:968:28 | y | provenance | | +| array_flow.rb:968:28:968:28 | y | array_flow.rb:970:14:970:14 | y | provenance | | +| array_flow.rb:976:5:976:5 | a [element 2] | array_flow.rb:977:9:977:9 | a [element 2] | provenance | | +| array_flow.rb:976:16:976:25 | call to source | array_flow.rb:976:5:976:5 | a [element 2] | provenance | | +| array_flow.rb:977:5:977:5 | b [element] | array_flow.rb:981:10:981:10 | b [element] | provenance | | +| array_flow.rb:977:9:977:9 | a [element 2] | array_flow.rb:977:9:980:7 | call to reject [element] | provenance | | +| array_flow.rb:977:9:977:9 | a [element 2] | array_flow.rb:977:22:977:22 | x | provenance | | +| array_flow.rb:977:9:980:7 | call to reject [element] | array_flow.rb:977:5:977:5 | b [element] | provenance | | +| array_flow.rb:977:22:977:22 | x | array_flow.rb:978:14:978:14 | x | provenance | | +| array_flow.rb:981:10:981:10 | b [element] | array_flow.rb:981:10:981:13 | ...[...] | provenance | | +| array_flow.rb:985:5:985:5 | a [element 2] | array_flow.rb:986:9:986:9 | a [element 2] | provenance | | +| array_flow.rb:985:16:985:25 | call to source | array_flow.rb:985:5:985:5 | a [element 2] | provenance | | +| array_flow.rb:986:5:986:5 | b [element] | array_flow.rb:991:10:991:10 | b [element] | provenance | | +| array_flow.rb:986:9:986:9 | [post] a [element] | array_flow.rb:990:10:990:10 | a [element] | provenance | | +| array_flow.rb:986:9:986:9 | a [element 2] | array_flow.rb:986:9:986:9 | [post] a [element] | provenance | | +| array_flow.rb:986:9:986:9 | a [element 2] | array_flow.rb:986:9:989:7 | call to reject! [element] | provenance | | +| array_flow.rb:986:9:986:9 | a [element 2] | array_flow.rb:986:23:986:23 | x | provenance | | +| array_flow.rb:986:9:989:7 | call to reject! [element] | array_flow.rb:986:5:986:5 | b [element] | provenance | | +| array_flow.rb:986:23:986:23 | x | array_flow.rb:987:14:987:14 | x | provenance | | +| array_flow.rb:990:10:990:10 | a [element] | array_flow.rb:990:10:990:13 | ...[...] | provenance | | +| array_flow.rb:991:10:991:10 | b [element] | array_flow.rb:991:10:991:13 | ...[...] | provenance | | +| array_flow.rb:995:5:995:5 | a [element 2] | array_flow.rb:996:9:996:9 | a [element 2] | provenance | | +| array_flow.rb:995:16:995:25 | call to source | array_flow.rb:995:5:995:5 | a [element 2] | provenance | | +| array_flow.rb:996:5:996:5 | b [element 2] | array_flow.rb:1001:10:1001:10 | b [element 2] | provenance | | +| array_flow.rb:996:9:996:9 | a [element 2] | array_flow.rb:996:9:999:7 | call to repeated_combination [element 2] | provenance | | +| array_flow.rb:996:9:996:9 | a [element 2] | array_flow.rb:996:39:996:39 | x [element] | provenance | | +| array_flow.rb:996:9:999:7 | call to repeated_combination [element 2] | array_flow.rb:996:5:996:5 | b [element 2] | provenance | | +| array_flow.rb:996:39:996:39 | x [element] | array_flow.rb:997:14:997:14 | x [element] | provenance | | +| array_flow.rb:996:39:996:39 | x [element] | array_flow.rb:998:14:998:14 | x [element] | provenance | | +| array_flow.rb:997:14:997:14 | x [element] | array_flow.rb:997:14:997:17 | ...[...] | provenance | | +| array_flow.rb:998:14:998:14 | x [element] | array_flow.rb:998:14:998:17 | ...[...] | provenance | | +| array_flow.rb:1001:10:1001:10 | b [element 2] | array_flow.rb:1001:10:1001:13 | ...[...] | provenance | | +| array_flow.rb:1005:5:1005:5 | a [element 2] | array_flow.rb:1006:9:1006:9 | a [element 2] | provenance | | +| array_flow.rb:1005:16:1005:25 | call to source | array_flow.rb:1005:5:1005:5 | a [element 2] | provenance | | +| array_flow.rb:1006:5:1006:5 | b [element 2] | array_flow.rb:1011:10:1011:10 | b [element 2] | provenance | | +| array_flow.rb:1006:9:1006:9 | a [element 2] | array_flow.rb:1006:9:1009:7 | call to repeated_permutation [element 2] | provenance | | +| array_flow.rb:1006:9:1006:9 | a [element 2] | array_flow.rb:1006:39:1006:39 | x [element] | provenance | | +| array_flow.rb:1006:9:1009:7 | call to repeated_permutation [element 2] | array_flow.rb:1006:5:1006:5 | b [element 2] | provenance | | +| array_flow.rb:1006:39:1006:39 | x [element] | array_flow.rb:1007:14:1007:14 | x [element] | provenance | | +| array_flow.rb:1006:39:1006:39 | x [element] | array_flow.rb:1008:14:1008:14 | x [element] | provenance | | +| array_flow.rb:1007:14:1007:14 | x [element] | array_flow.rb:1007:14:1007:17 | ...[...] | provenance | | +| array_flow.rb:1008:14:1008:14 | x [element] | array_flow.rb:1008:14:1008:17 | ...[...] | provenance | | +| array_flow.rb:1011:10:1011:10 | b [element 2] | array_flow.rb:1011:10:1011:13 | ...[...] | provenance | | +| array_flow.rb:1017:5:1017:5 | b [element 0] | array_flow.rb:1019:10:1019:10 | b [element 0] | provenance | | +| array_flow.rb:1017:9:1017:9 | [post] a [element 0] | array_flow.rb:1018:10:1018:10 | a [element 0] | provenance | | +| array_flow.rb:1017:9:1017:33 | call to replace [element 0] | array_flow.rb:1017:5:1017:5 | b [element 0] | provenance | | +| array_flow.rb:1017:20:1017:31 | call to source | array_flow.rb:1017:9:1017:9 | [post] a [element 0] | provenance | | +| array_flow.rb:1017:20:1017:31 | call to source | array_flow.rb:1017:9:1017:33 | call to replace [element 0] | provenance | | +| array_flow.rb:1018:10:1018:10 | a [element 0] | array_flow.rb:1018:10:1018:13 | ...[...] | provenance | | +| array_flow.rb:1019:10:1019:10 | b [element 0] | array_flow.rb:1019:10:1019:13 | ...[...] | provenance | | +| array_flow.rb:1023:5:1023:5 | a [element 2] | array_flow.rb:1024:9:1024:9 | a [element 2] | provenance | | +| array_flow.rb:1023:5:1023:5 | a [element 2] | array_flow.rb:1029:10:1029:10 | a [element 2] | provenance | | +| array_flow.rb:1023:5:1023:5 | a [element 3] | array_flow.rb:1024:9:1024:9 | a [element 3] | provenance | | +| array_flow.rb:1023:5:1023:5 | a [element 3] | array_flow.rb:1030:10:1030:10 | a [element 3] | provenance | | +| array_flow.rb:1023:16:1023:28 | call to source | array_flow.rb:1023:5:1023:5 | a [element 2] | provenance | | +| array_flow.rb:1023:31:1023:43 | call to source | array_flow.rb:1023:5:1023:5 | a [element 3] | provenance | | +| array_flow.rb:1024:5:1024:5 | b [element] | array_flow.rb:1025:10:1025:10 | b [element] | provenance | | +| array_flow.rb:1024:5:1024:5 | b [element] | array_flow.rb:1026:10:1026:10 | b [element] | provenance | | +| array_flow.rb:1024:5:1024:5 | b [element] | array_flow.rb:1027:10:1027:10 | b [element] | provenance | | +| array_flow.rb:1024:9:1024:9 | a [element 2] | array_flow.rb:1024:9:1024:17 | call to reverse [element] | provenance | | +| array_flow.rb:1024:9:1024:9 | a [element 3] | array_flow.rb:1024:9:1024:17 | call to reverse [element] | provenance | | +| array_flow.rb:1024:9:1024:17 | call to reverse [element] | array_flow.rb:1024:5:1024:5 | b [element] | provenance | | +| array_flow.rb:1025:10:1025:10 | b [element] | array_flow.rb:1025:10:1025:13 | ...[...] | provenance | | +| array_flow.rb:1026:10:1026:10 | b [element] | array_flow.rb:1026:10:1026:13 | ...[...] | provenance | | +| array_flow.rb:1027:10:1027:10 | b [element] | array_flow.rb:1027:10:1027:13 | ...[...] | provenance | | +| array_flow.rb:1029:10:1029:10 | a [element 2] | array_flow.rb:1029:10:1029:13 | ...[...] | provenance | | +| array_flow.rb:1030:10:1030:10 | a [element 3] | array_flow.rb:1030:10:1030:13 | ...[...] | provenance | | +| array_flow.rb:1034:5:1034:5 | a [element 2] | array_flow.rb:1035:9:1035:9 | a [element 2] | provenance | | +| array_flow.rb:1034:5:1034:5 | a [element 2] | array_flow.rb:1040:10:1040:10 | a [element 2] | provenance | | +| array_flow.rb:1034:5:1034:5 | a [element 3] | array_flow.rb:1035:9:1035:9 | a [element 3] | provenance | | +| array_flow.rb:1034:5:1034:5 | a [element 3] | array_flow.rb:1041:10:1041:10 | a [element 3] | provenance | | +| array_flow.rb:1034:16:1034:28 | call to source | array_flow.rb:1034:5:1034:5 | a [element 2] | provenance | | +| array_flow.rb:1034:31:1034:43 | call to source | array_flow.rb:1034:5:1034:5 | a [element 3] | provenance | | +| array_flow.rb:1035:5:1035:5 | b [element] | array_flow.rb:1036:10:1036:10 | b [element] | provenance | | +| array_flow.rb:1035:5:1035:5 | b [element] | array_flow.rb:1037:10:1037:10 | b [element] | provenance | | +| array_flow.rb:1035:5:1035:5 | b [element] | array_flow.rb:1038:10:1038:10 | b [element] | provenance | | +| array_flow.rb:1035:9:1035:9 | [post] a [element] | array_flow.rb:1039:10:1039:10 | a [element] | provenance | | +| array_flow.rb:1035:9:1035:9 | [post] a [element] | array_flow.rb:1040:10:1040:10 | a [element] | provenance | | +| array_flow.rb:1035:9:1035:9 | [post] a [element] | array_flow.rb:1041:10:1041:10 | a [element] | provenance | | +| array_flow.rb:1035:9:1035:9 | a [element 2] | array_flow.rb:1035:9:1035:9 | [post] a [element] | provenance | | +| array_flow.rb:1035:9:1035:9 | a [element 2] | array_flow.rb:1035:9:1035:18 | call to reverse! [element] | provenance | | +| array_flow.rb:1035:9:1035:9 | a [element 3] | array_flow.rb:1035:9:1035:9 | [post] a [element] | provenance | | +| array_flow.rb:1035:9:1035:9 | a [element 3] | array_flow.rb:1035:9:1035:18 | call to reverse! [element] | provenance | | +| array_flow.rb:1035:9:1035:18 | call to reverse! [element] | array_flow.rb:1035:5:1035:5 | b [element] | provenance | | +| array_flow.rb:1036:10:1036:10 | b [element] | array_flow.rb:1036:10:1036:13 | ...[...] | provenance | | +| array_flow.rb:1037:10:1037:10 | b [element] | array_flow.rb:1037:10:1037:13 | ...[...] | provenance | | +| array_flow.rb:1038:10:1038:10 | b [element] | array_flow.rb:1038:10:1038:13 | ...[...] | provenance | | +| array_flow.rb:1039:10:1039:10 | a [element] | array_flow.rb:1039:10:1039:13 | ...[...] | provenance | | +| array_flow.rb:1040:10:1040:10 | a [element 2] | array_flow.rb:1040:10:1040:13 | ...[...] | provenance | | +| array_flow.rb:1040:10:1040:10 | a [element] | array_flow.rb:1040:10:1040:13 | ...[...] | provenance | | +| array_flow.rb:1041:10:1041:10 | a [element 3] | array_flow.rb:1041:10:1041:13 | ...[...] | provenance | | +| array_flow.rb:1041:10:1041:10 | a [element] | array_flow.rb:1041:10:1041:13 | ...[...] | provenance | | +| array_flow.rb:1045:5:1045:5 | a [element 2] | array_flow.rb:1046:9:1046:9 | a [element 2] | provenance | | +| array_flow.rb:1045:16:1045:26 | call to source | array_flow.rb:1045:5:1045:5 | a [element 2] | provenance | | +| array_flow.rb:1046:5:1046:5 | b [element 2] | array_flow.rb:1049:10:1049:10 | b [element 2] | provenance | | +| array_flow.rb:1046:9:1046:9 | a [element 2] | array_flow.rb:1046:9:1048:7 | call to reverse_each [element 2] | provenance | | +| array_flow.rb:1046:9:1046:9 | a [element 2] | array_flow.rb:1046:28:1046:28 | x | provenance | | +| array_flow.rb:1046:9:1048:7 | call to reverse_each [element 2] | array_flow.rb:1046:5:1046:5 | b [element 2] | provenance | | +| array_flow.rb:1046:28:1046:28 | x | array_flow.rb:1047:14:1047:14 | x | provenance | | +| array_flow.rb:1049:10:1049:10 | b [element 2] | array_flow.rb:1049:10:1049:13 | ...[...] | provenance | | +| array_flow.rb:1053:5:1053:5 | a [element 2] | array_flow.rb:1054:5:1054:5 | a [element 2] | provenance | | +| array_flow.rb:1053:16:1053:26 | call to source | array_flow.rb:1053:5:1053:5 | a [element 2] | provenance | | +| array_flow.rb:1054:5:1054:5 | a [element 2] | array_flow.rb:1054:18:1054:18 | x | provenance | | +| array_flow.rb:1054:18:1054:18 | x | array_flow.rb:1055:14:1055:14 | x | provenance | | +| array_flow.rb:1063:5:1063:5 | a [element 0] | array_flow.rb:1065:9:1065:9 | a [element 0] | provenance | | +| array_flow.rb:1063:5:1063:5 | a [element 0] | array_flow.rb:1071:9:1071:9 | a [element 0] | provenance | | +| array_flow.rb:1063:5:1063:5 | a [element 0] | array_flow.rb:1077:9:1077:9 | a [element 0] | provenance | | +| array_flow.rb:1063:5:1063:5 | a [element 0] | array_flow.rb:1083:9:1083:9 | a [element 0] | provenance | | +| array_flow.rb:1063:5:1063:5 | a [element 2] | array_flow.rb:1065:9:1065:9 | a [element 2] | provenance | | +| array_flow.rb:1063:5:1063:5 | a [element 2] | array_flow.rb:1071:9:1071:9 | a [element 2] | provenance | | +| array_flow.rb:1063:5:1063:5 | a [element 2] | array_flow.rb:1077:9:1077:9 | a [element 2] | provenance | | +| array_flow.rb:1063:5:1063:5 | a [element 2] | array_flow.rb:1083:9:1083:9 | a [element 2] | provenance | | +| array_flow.rb:1063:5:1063:5 | a [element 3] | array_flow.rb:1065:9:1065:9 | a [element 3] | provenance | | +| array_flow.rb:1063:5:1063:5 | a [element 3] | array_flow.rb:1071:9:1071:9 | a [element 3] | provenance | | +| array_flow.rb:1063:5:1063:5 | a [element 3] | array_flow.rb:1077:9:1077:9 | a [element 3] | provenance | | +| array_flow.rb:1063:5:1063:5 | a [element 3] | array_flow.rb:1083:9:1083:9 | a [element 3] | provenance | | +| array_flow.rb:1063:10:1063:22 | call to source | array_flow.rb:1063:5:1063:5 | a [element 0] | provenance | | +| array_flow.rb:1063:28:1063:40 | call to source | array_flow.rb:1063:5:1063:5 | a [element 2] | provenance | | +| array_flow.rb:1063:43:1063:55 | call to source | array_flow.rb:1063:5:1063:5 | a [element 3] | provenance | | +| array_flow.rb:1065:5:1065:5 | b [element 1] | array_flow.rb:1067:10:1067:10 | b [element 1] | provenance | | +| array_flow.rb:1065:5:1065:5 | b [element 2] | array_flow.rb:1068:10:1068:10 | b [element 2] | provenance | | +| array_flow.rb:1065:5:1065:5 | b [element] | array_flow.rb:1066:10:1066:10 | b [element] | provenance | | +| array_flow.rb:1065:5:1065:5 | b [element] | array_flow.rb:1067:10:1067:10 | b [element] | provenance | | +| array_flow.rb:1065:5:1065:5 | b [element] | array_flow.rb:1068:10:1068:10 | b [element] | provenance | | +| array_flow.rb:1065:5:1065:5 | b [element] | array_flow.rb:1069:10:1069:10 | b [element] | provenance | | +| array_flow.rb:1065:9:1065:9 | a [element 0] | array_flow.rb:1065:9:1065:16 | call to rotate [element] | provenance | | +| array_flow.rb:1065:9:1065:9 | a [element 2] | array_flow.rb:1065:9:1065:16 | call to rotate [element 1] | provenance | | +| array_flow.rb:1065:9:1065:9 | a [element 3] | array_flow.rb:1065:9:1065:16 | call to rotate [element 2] | provenance | | +| array_flow.rb:1065:9:1065:16 | call to rotate [element 1] | array_flow.rb:1065:5:1065:5 | b [element 1] | provenance | | +| array_flow.rb:1065:9:1065:16 | call to rotate [element 2] | array_flow.rb:1065:5:1065:5 | b [element 2] | provenance | | +| array_flow.rb:1065:9:1065:16 | call to rotate [element] | array_flow.rb:1065:5:1065:5 | b [element] | provenance | | +| array_flow.rb:1066:10:1066:10 | b [element] | array_flow.rb:1066:10:1066:13 | ...[...] | provenance | | +| array_flow.rb:1067:10:1067:10 | b [element 1] | array_flow.rb:1067:10:1067:13 | ...[...] | provenance | | +| array_flow.rb:1067:10:1067:10 | b [element] | array_flow.rb:1067:10:1067:13 | ...[...] | provenance | | +| array_flow.rb:1068:10:1068:10 | b [element 2] | array_flow.rb:1068:10:1068:13 | ...[...] | provenance | | +| array_flow.rb:1068:10:1068:10 | b [element] | array_flow.rb:1068:10:1068:13 | ...[...] | provenance | | +| array_flow.rb:1069:10:1069:10 | b [element] | array_flow.rb:1069:10:1069:13 | ...[...] | provenance | | +| array_flow.rb:1071:5:1071:5 | b [element 0] | array_flow.rb:1072:10:1072:10 | b [element 0] | provenance | | +| array_flow.rb:1071:5:1071:5 | b [element 1] | array_flow.rb:1073:10:1073:10 | b [element 1] | provenance | | +| array_flow.rb:1071:5:1071:5 | b [element] | array_flow.rb:1072:10:1072:10 | b [element] | provenance | | +| array_flow.rb:1071:5:1071:5 | b [element] | array_flow.rb:1073:10:1073:10 | b [element] | provenance | | +| array_flow.rb:1071:5:1071:5 | b [element] | array_flow.rb:1074:10:1074:10 | b [element] | provenance | | +| array_flow.rb:1071:5:1071:5 | b [element] | array_flow.rb:1075:10:1075:10 | b [element] | provenance | | +| array_flow.rb:1071:9:1071:9 | a [element 0] | array_flow.rb:1071:9:1071:19 | call to rotate [element] | provenance | | +| array_flow.rb:1071:9:1071:9 | a [element 2] | array_flow.rb:1071:9:1071:19 | call to rotate [element 0] | provenance | | +| array_flow.rb:1071:9:1071:9 | a [element 3] | array_flow.rb:1071:9:1071:19 | call to rotate [element 1] | provenance | | +| array_flow.rb:1071:9:1071:19 | call to rotate [element 0] | array_flow.rb:1071:5:1071:5 | b [element 0] | provenance | | +| array_flow.rb:1071:9:1071:19 | call to rotate [element 1] | array_flow.rb:1071:5:1071:5 | b [element 1] | provenance | | +| array_flow.rb:1071:9:1071:19 | call to rotate [element] | array_flow.rb:1071:5:1071:5 | b [element] | provenance | | +| array_flow.rb:1072:10:1072:10 | b [element 0] | array_flow.rb:1072:10:1072:13 | ...[...] | provenance | | +| array_flow.rb:1072:10:1072:10 | b [element] | array_flow.rb:1072:10:1072:13 | ...[...] | provenance | | +| array_flow.rb:1073:10:1073:10 | b [element 1] | array_flow.rb:1073:10:1073:13 | ...[...] | provenance | | +| array_flow.rb:1073:10:1073:10 | b [element] | array_flow.rb:1073:10:1073:13 | ...[...] | provenance | | +| array_flow.rb:1074:10:1074:10 | b [element] | array_flow.rb:1074:10:1074:13 | ...[...] | provenance | | +| array_flow.rb:1075:10:1075:10 | b [element] | array_flow.rb:1075:10:1075:13 | ...[...] | provenance | | +| array_flow.rb:1077:5:1077:5 | b [element 0] | array_flow.rb:1078:10:1078:10 | b [element 0] | provenance | | +| array_flow.rb:1077:5:1077:5 | b [element 2] | array_flow.rb:1080:10:1080:10 | b [element 2] | provenance | | +| array_flow.rb:1077:5:1077:5 | b [element 3] | array_flow.rb:1081:10:1081:10 | b [element 3] | provenance | | +| array_flow.rb:1077:9:1077:9 | a [element 0] | array_flow.rb:1077:9:1077:19 | call to rotate [element 0] | provenance | | +| array_flow.rb:1077:9:1077:9 | a [element 2] | array_flow.rb:1077:9:1077:19 | call to rotate [element 2] | provenance | | +| array_flow.rb:1077:9:1077:9 | a [element 3] | array_flow.rb:1077:9:1077:19 | call to rotate [element 3] | provenance | | +| array_flow.rb:1077:9:1077:19 | call to rotate [element 0] | array_flow.rb:1077:5:1077:5 | b [element 0] | provenance | | +| array_flow.rb:1077:9:1077:19 | call to rotate [element 2] | array_flow.rb:1077:5:1077:5 | b [element 2] | provenance | | +| array_flow.rb:1077:9:1077:19 | call to rotate [element 3] | array_flow.rb:1077:5:1077:5 | b [element 3] | provenance | | +| array_flow.rb:1078:10:1078:10 | b [element 0] | array_flow.rb:1078:10:1078:13 | ...[...] | provenance | | +| array_flow.rb:1080:10:1080:10 | b [element 2] | array_flow.rb:1080:10:1080:13 | ...[...] | provenance | | +| array_flow.rb:1081:10:1081:10 | b [element 3] | array_flow.rb:1081:10:1081:13 | ...[...] | provenance | | +| array_flow.rb:1083:5:1083:5 | b [element] | array_flow.rb:1084:10:1084:10 | b [element] | provenance | | +| array_flow.rb:1083:5:1083:5 | b [element] | array_flow.rb:1085:10:1085:10 | b [element] | provenance | | +| array_flow.rb:1083:5:1083:5 | b [element] | array_flow.rb:1086:10:1086:10 | b [element] | provenance | | +| array_flow.rb:1083:5:1083:5 | b [element] | array_flow.rb:1087:10:1087:10 | b [element] | provenance | | +| array_flow.rb:1083:9:1083:9 | a [element 0] | array_flow.rb:1083:9:1083:19 | call to rotate [element] | provenance | | +| array_flow.rb:1083:9:1083:9 | a [element 2] | array_flow.rb:1083:9:1083:19 | call to rotate [element] | provenance | | +| array_flow.rb:1083:9:1083:9 | a [element 3] | array_flow.rb:1083:9:1083:19 | call to rotate [element] | provenance | | +| array_flow.rb:1083:9:1083:19 | call to rotate [element] | array_flow.rb:1083:5:1083:5 | b [element] | provenance | | +| array_flow.rb:1084:10:1084:10 | b [element] | array_flow.rb:1084:10:1084:13 | ...[...] | provenance | | +| array_flow.rb:1085:10:1085:10 | b [element] | array_flow.rb:1085:10:1085:13 | ...[...] | provenance | | +| array_flow.rb:1086:10:1086:10 | b [element] | array_flow.rb:1086:10:1086:13 | ...[...] | provenance | | +| array_flow.rb:1087:10:1087:10 | b [element] | array_flow.rb:1087:10:1087:13 | ...[...] | provenance | | +| array_flow.rb:1095:5:1095:5 | a [element 0] | array_flow.rb:1096:9:1096:9 | a [element 0] | provenance | | +| array_flow.rb:1095:5:1095:5 | a [element 2] | array_flow.rb:1096:9:1096:9 | a [element 2] | provenance | | +| array_flow.rb:1095:5:1095:5 | a [element 3] | array_flow.rb:1096:9:1096:9 | a [element 3] | provenance | | +| array_flow.rb:1095:10:1095:22 | call to source | array_flow.rb:1095:5:1095:5 | a [element 0] | provenance | | +| array_flow.rb:1095:28:1095:40 | call to source | array_flow.rb:1095:5:1095:5 | a [element 2] | provenance | | +| array_flow.rb:1095:43:1095:55 | call to source | array_flow.rb:1095:5:1095:5 | a [element 3] | provenance | | +| array_flow.rb:1096:5:1096:5 | b [element 1] | array_flow.rb:1102:10:1102:10 | b [element 1] | provenance | | +| array_flow.rb:1096:5:1096:5 | b [element 2] | array_flow.rb:1103:10:1103:10 | b [element 2] | provenance | | +| array_flow.rb:1096:5:1096:5 | b [element] | array_flow.rb:1101:10:1101:10 | b [element] | provenance | | +| array_flow.rb:1096:5:1096:5 | b [element] | array_flow.rb:1102:10:1102:10 | b [element] | provenance | | +| array_flow.rb:1096:5:1096:5 | b [element] | array_flow.rb:1103:10:1103:10 | b [element] | provenance | | +| array_flow.rb:1096:5:1096:5 | b [element] | array_flow.rb:1104:10:1104:10 | b [element] | provenance | | +| array_flow.rb:1096:9:1096:9 | [post] a [element 1] | array_flow.rb:1098:10:1098:10 | a [element 1] | provenance | | +| array_flow.rb:1096:9:1096:9 | [post] a [element 2] | array_flow.rb:1099:10:1099:10 | a [element 2] | provenance | | +| array_flow.rb:1096:9:1096:9 | [post] a [element] | array_flow.rb:1097:10:1097:10 | a [element] | provenance | | +| array_flow.rb:1096:9:1096:9 | [post] a [element] | array_flow.rb:1098:10:1098:10 | a [element] | provenance | | +| array_flow.rb:1096:9:1096:9 | [post] a [element] | array_flow.rb:1099:10:1099:10 | a [element] | provenance | | +| array_flow.rb:1096:9:1096:9 | [post] a [element] | array_flow.rb:1100:10:1100:10 | a [element] | provenance | | +| array_flow.rb:1096:9:1096:9 | a [element 0] | array_flow.rb:1096:9:1096:9 | [post] a [element] | provenance | | +| array_flow.rb:1096:9:1096:9 | a [element 0] | array_flow.rb:1096:9:1096:17 | call to rotate! [element] | provenance | | +| array_flow.rb:1096:9:1096:9 | a [element 2] | array_flow.rb:1096:9:1096:9 | [post] a [element 1] | provenance | | +| array_flow.rb:1096:9:1096:9 | a [element 2] | array_flow.rb:1096:9:1096:17 | call to rotate! [element 1] | provenance | | +| array_flow.rb:1096:9:1096:9 | a [element 3] | array_flow.rb:1096:9:1096:9 | [post] a [element 2] | provenance | | +| array_flow.rb:1096:9:1096:9 | a [element 3] | array_flow.rb:1096:9:1096:17 | call to rotate! [element 2] | provenance | | +| array_flow.rb:1096:9:1096:17 | call to rotate! [element 1] | array_flow.rb:1096:5:1096:5 | b [element 1] | provenance | | +| array_flow.rb:1096:9:1096:17 | call to rotate! [element 2] | array_flow.rb:1096:5:1096:5 | b [element 2] | provenance | | +| array_flow.rb:1096:9:1096:17 | call to rotate! [element] | array_flow.rb:1096:5:1096:5 | b [element] | provenance | | +| array_flow.rb:1097:10:1097:10 | a [element] | array_flow.rb:1097:10:1097:13 | ...[...] | provenance | | +| array_flow.rb:1098:10:1098:10 | a [element 1] | array_flow.rb:1098:10:1098:13 | ...[...] | provenance | | +| array_flow.rb:1098:10:1098:10 | a [element] | array_flow.rb:1098:10:1098:13 | ...[...] | provenance | | +| array_flow.rb:1099:10:1099:10 | a [element 2] | array_flow.rb:1099:10:1099:13 | ...[...] | provenance | | +| array_flow.rb:1099:10:1099:10 | a [element] | array_flow.rb:1099:10:1099:13 | ...[...] | provenance | | +| array_flow.rb:1100:10:1100:10 | a [element] | array_flow.rb:1100:10:1100:13 | ...[...] | provenance | | +| array_flow.rb:1101:10:1101:10 | b [element] | array_flow.rb:1101:10:1101:13 | ...[...] | provenance | | +| array_flow.rb:1102:10:1102:10 | b [element 1] | array_flow.rb:1102:10:1102:13 | ...[...] | provenance | | +| array_flow.rb:1102:10:1102:10 | b [element] | array_flow.rb:1102:10:1102:13 | ...[...] | provenance | | +| array_flow.rb:1103:10:1103:10 | b [element 2] | array_flow.rb:1103:10:1103:13 | ...[...] | provenance | | +| array_flow.rb:1103:10:1103:10 | b [element] | array_flow.rb:1103:10:1103:13 | ...[...] | provenance | | +| array_flow.rb:1104:10:1104:10 | b [element] | array_flow.rb:1104:10:1104:13 | ...[...] | provenance | | +| array_flow.rb:1106:5:1106:5 | a [element 0] | array_flow.rb:1107:9:1107:9 | a [element 0] | provenance | | +| array_flow.rb:1106:5:1106:5 | a [element 2] | array_flow.rb:1107:9:1107:9 | a [element 2] | provenance | | +| array_flow.rb:1106:5:1106:5 | a [element 3] | array_flow.rb:1107:9:1107:9 | a [element 3] | provenance | | +| array_flow.rb:1106:10:1106:22 | call to source | array_flow.rb:1106:5:1106:5 | a [element 0] | provenance | | +| array_flow.rb:1106:28:1106:40 | call to source | array_flow.rb:1106:5:1106:5 | a [element 2] | provenance | | +| array_flow.rb:1106:43:1106:55 | call to source | array_flow.rb:1106:5:1106:5 | a [element 3] | provenance | | +| array_flow.rb:1107:5:1107:5 | b [element 0] | array_flow.rb:1112:10:1112:10 | b [element 0] | provenance | | +| array_flow.rb:1107:5:1107:5 | b [element 1] | array_flow.rb:1113:10:1113:10 | b [element 1] | provenance | | +| array_flow.rb:1107:5:1107:5 | b [element] | array_flow.rb:1112:10:1112:10 | b [element] | provenance | | +| array_flow.rb:1107:5:1107:5 | b [element] | array_flow.rb:1113:10:1113:10 | b [element] | provenance | | +| array_flow.rb:1107:5:1107:5 | b [element] | array_flow.rb:1114:10:1114:10 | b [element] | provenance | | +| array_flow.rb:1107:5:1107:5 | b [element] | array_flow.rb:1115:10:1115:10 | b [element] | provenance | | +| array_flow.rb:1107:9:1107:9 | [post] a [element 0] | array_flow.rb:1108:10:1108:10 | a [element 0] | provenance | | +| array_flow.rb:1107:9:1107:9 | [post] a [element 1] | array_flow.rb:1109:10:1109:10 | a [element 1] | provenance | | +| array_flow.rb:1107:9:1107:9 | [post] a [element] | array_flow.rb:1108:10:1108:10 | a [element] | provenance | | +| array_flow.rb:1107:9:1107:9 | [post] a [element] | array_flow.rb:1109:10:1109:10 | a [element] | provenance | | +| array_flow.rb:1107:9:1107:9 | [post] a [element] | array_flow.rb:1110:10:1110:10 | a [element] | provenance | | +| array_flow.rb:1107:9:1107:9 | [post] a [element] | array_flow.rb:1111:10:1111:10 | a [element] | provenance | | +| array_flow.rb:1107:9:1107:9 | a [element 0] | array_flow.rb:1107:9:1107:9 | [post] a [element] | provenance | | +| array_flow.rb:1107:9:1107:9 | a [element 0] | array_flow.rb:1107:9:1107:20 | call to rotate! [element] | provenance | | +| array_flow.rb:1107:9:1107:9 | a [element 2] | array_flow.rb:1107:9:1107:9 | [post] a [element 0] | provenance | | +| array_flow.rb:1107:9:1107:9 | a [element 2] | array_flow.rb:1107:9:1107:20 | call to rotate! [element 0] | provenance | | +| array_flow.rb:1107:9:1107:9 | a [element 3] | array_flow.rb:1107:9:1107:9 | [post] a [element 1] | provenance | | +| array_flow.rb:1107:9:1107:9 | a [element 3] | array_flow.rb:1107:9:1107:20 | call to rotate! [element 1] | provenance | | +| array_flow.rb:1107:9:1107:20 | call to rotate! [element 0] | array_flow.rb:1107:5:1107:5 | b [element 0] | provenance | | +| array_flow.rb:1107:9:1107:20 | call to rotate! [element 1] | array_flow.rb:1107:5:1107:5 | b [element 1] | provenance | | +| array_flow.rb:1107:9:1107:20 | call to rotate! [element] | array_flow.rb:1107:5:1107:5 | b [element] | provenance | | +| array_flow.rb:1108:10:1108:10 | a [element 0] | array_flow.rb:1108:10:1108:13 | ...[...] | provenance | | +| array_flow.rb:1108:10:1108:10 | a [element] | array_flow.rb:1108:10:1108:13 | ...[...] | provenance | | +| array_flow.rb:1109:10:1109:10 | a [element 1] | array_flow.rb:1109:10:1109:13 | ...[...] | provenance | | +| array_flow.rb:1109:10:1109:10 | a [element] | array_flow.rb:1109:10:1109:13 | ...[...] | provenance | | +| array_flow.rb:1110:10:1110:10 | a [element] | array_flow.rb:1110:10:1110:13 | ...[...] | provenance | | +| array_flow.rb:1111:10:1111:10 | a [element] | array_flow.rb:1111:10:1111:13 | ...[...] | provenance | | +| array_flow.rb:1112:10:1112:10 | b [element 0] | array_flow.rb:1112:10:1112:13 | ...[...] | provenance | | +| array_flow.rb:1112:10:1112:10 | b [element] | array_flow.rb:1112:10:1112:13 | ...[...] | provenance | | +| array_flow.rb:1113:10:1113:10 | b [element 1] | array_flow.rb:1113:10:1113:13 | ...[...] | provenance | | +| array_flow.rb:1113:10:1113:10 | b [element] | array_flow.rb:1113:10:1113:13 | ...[...] | provenance | | +| array_flow.rb:1114:10:1114:10 | b [element] | array_flow.rb:1114:10:1114:13 | ...[...] | provenance | | +| array_flow.rb:1115:10:1115:10 | b [element] | array_flow.rb:1115:10:1115:13 | ...[...] | provenance | | +| array_flow.rb:1117:5:1117:5 | a [element 0] | array_flow.rb:1118:9:1118:9 | a [element 0] | provenance | | +| array_flow.rb:1117:5:1117:5 | a [element 2] | array_flow.rb:1118:9:1118:9 | a [element 2] | provenance | | +| array_flow.rb:1117:5:1117:5 | a [element 3] | array_flow.rb:1118:9:1118:9 | a [element 3] | provenance | | +| array_flow.rb:1117:10:1117:22 | call to source | array_flow.rb:1117:5:1117:5 | a [element 0] | provenance | | +| array_flow.rb:1117:28:1117:40 | call to source | array_flow.rb:1117:5:1117:5 | a [element 2] | provenance | | +| array_flow.rb:1117:43:1117:55 | call to source | array_flow.rb:1117:5:1117:5 | a [element 3] | provenance | | +| array_flow.rb:1118:5:1118:5 | b [element 0] | array_flow.rb:1123:10:1123:10 | b [element 0] | provenance | | +| array_flow.rb:1118:5:1118:5 | b [element 2] | array_flow.rb:1125:10:1125:10 | b [element 2] | provenance | | +| array_flow.rb:1118:5:1118:5 | b [element 3] | array_flow.rb:1126:10:1126:10 | b [element 3] | provenance | | +| array_flow.rb:1118:9:1118:9 | [post] a [element 0] | array_flow.rb:1119:10:1119:10 | a [element 0] | provenance | | +| array_flow.rb:1118:9:1118:9 | [post] a [element 2] | array_flow.rb:1121:10:1121:10 | a [element 2] | provenance | | +| array_flow.rb:1118:9:1118:9 | [post] a [element 3] | array_flow.rb:1122:10:1122:10 | a [element 3] | provenance | | +| array_flow.rb:1118:9:1118:9 | a [element 0] | array_flow.rb:1118:9:1118:9 | [post] a [element 0] | provenance | | +| array_flow.rb:1118:9:1118:9 | a [element 0] | array_flow.rb:1118:9:1118:20 | call to rotate! [element 0] | provenance | | +| array_flow.rb:1118:9:1118:9 | a [element 2] | array_flow.rb:1118:9:1118:9 | [post] a [element 2] | provenance | | +| array_flow.rb:1118:9:1118:9 | a [element 2] | array_flow.rb:1118:9:1118:20 | call to rotate! [element 2] | provenance | | +| array_flow.rb:1118:9:1118:9 | a [element 3] | array_flow.rb:1118:9:1118:9 | [post] a [element 3] | provenance | | +| array_flow.rb:1118:9:1118:9 | a [element 3] | array_flow.rb:1118:9:1118:20 | call to rotate! [element 3] | provenance | | +| array_flow.rb:1118:9:1118:20 | call to rotate! [element 0] | array_flow.rb:1118:5:1118:5 | b [element 0] | provenance | | +| array_flow.rb:1118:9:1118:20 | call to rotate! [element 2] | array_flow.rb:1118:5:1118:5 | b [element 2] | provenance | | +| array_flow.rb:1118:9:1118:20 | call to rotate! [element 3] | array_flow.rb:1118:5:1118:5 | b [element 3] | provenance | | +| array_flow.rb:1119:10:1119:10 | a [element 0] | array_flow.rb:1119:10:1119:13 | ...[...] | provenance | | +| array_flow.rb:1121:10:1121:10 | a [element 2] | array_flow.rb:1121:10:1121:13 | ...[...] | provenance | | +| array_flow.rb:1122:10:1122:10 | a [element 3] | array_flow.rb:1122:10:1122:13 | ...[...] | provenance | | +| array_flow.rb:1123:10:1123:10 | b [element 0] | array_flow.rb:1123:10:1123:13 | ...[...] | provenance | | +| array_flow.rb:1125:10:1125:10 | b [element 2] | array_flow.rb:1125:10:1125:13 | ...[...] | provenance | | +| array_flow.rb:1126:10:1126:10 | b [element 3] | array_flow.rb:1126:10:1126:13 | ...[...] | provenance | | +| array_flow.rb:1128:5:1128:5 | a [element 0] | array_flow.rb:1129:9:1129:9 | a [element 0] | provenance | | +| array_flow.rb:1128:5:1128:5 | a [element 2] | array_flow.rb:1129:9:1129:9 | a [element 2] | provenance | | +| array_flow.rb:1128:5:1128:5 | a [element 3] | array_flow.rb:1129:9:1129:9 | a [element 3] | provenance | | +| array_flow.rb:1128:10:1128:22 | call to source | array_flow.rb:1128:5:1128:5 | a [element 0] | provenance | | +| array_flow.rb:1128:28:1128:40 | call to source | array_flow.rb:1128:5:1128:5 | a [element 2] | provenance | | +| array_flow.rb:1128:43:1128:55 | call to source | array_flow.rb:1128:5:1128:5 | a [element 3] | provenance | | +| array_flow.rb:1129:5:1129:5 | b [element] | array_flow.rb:1134:10:1134:10 | b [element] | provenance | | +| array_flow.rb:1129:5:1129:5 | b [element] | array_flow.rb:1135:10:1135:10 | b [element] | provenance | | +| array_flow.rb:1129:5:1129:5 | b [element] | array_flow.rb:1136:10:1136:10 | b [element] | provenance | | +| array_flow.rb:1129:5:1129:5 | b [element] | array_flow.rb:1137:10:1137:10 | b [element] | provenance | | +| array_flow.rb:1129:9:1129:9 | [post] a [element] | array_flow.rb:1130:10:1130:10 | a [element] | provenance | | +| array_flow.rb:1129:9:1129:9 | [post] a [element] | array_flow.rb:1131:10:1131:10 | a [element] | provenance | | +| array_flow.rb:1129:9:1129:9 | [post] a [element] | array_flow.rb:1132:10:1132:10 | a [element] | provenance | | +| array_flow.rb:1129:9:1129:9 | [post] a [element] | array_flow.rb:1133:10:1133:10 | a [element] | provenance | | +| array_flow.rb:1129:9:1129:9 | a [element 0] | array_flow.rb:1129:9:1129:9 | [post] a [element] | provenance | | +| array_flow.rb:1129:9:1129:9 | a [element 0] | array_flow.rb:1129:9:1129:20 | call to rotate! [element] | provenance | | +| array_flow.rb:1129:9:1129:9 | a [element 2] | array_flow.rb:1129:9:1129:9 | [post] a [element] | provenance | | +| array_flow.rb:1129:9:1129:9 | a [element 2] | array_flow.rb:1129:9:1129:20 | call to rotate! [element] | provenance | | +| array_flow.rb:1129:9:1129:9 | a [element 3] | array_flow.rb:1129:9:1129:9 | [post] a [element] | provenance | | +| array_flow.rb:1129:9:1129:9 | a [element 3] | array_flow.rb:1129:9:1129:20 | call to rotate! [element] | provenance | | +| array_flow.rb:1129:9:1129:20 | call to rotate! [element] | array_flow.rb:1129:5:1129:5 | b [element] | provenance | | +| array_flow.rb:1130:10:1130:10 | a [element] | array_flow.rb:1130:10:1130:13 | ...[...] | provenance | | +| array_flow.rb:1131:10:1131:10 | a [element] | array_flow.rb:1131:10:1131:13 | ...[...] | provenance | | +| array_flow.rb:1132:10:1132:10 | a [element] | array_flow.rb:1132:10:1132:13 | ...[...] | provenance | | +| array_flow.rb:1133:10:1133:10 | a [element] | array_flow.rb:1133:10:1133:13 | ...[...] | provenance | | +| array_flow.rb:1134:10:1134:10 | b [element] | array_flow.rb:1134:10:1134:13 | ...[...] | provenance | | +| array_flow.rb:1135:10:1135:10 | b [element] | array_flow.rb:1135:10:1135:13 | ...[...] | provenance | | +| array_flow.rb:1136:10:1136:10 | b [element] | array_flow.rb:1136:10:1136:13 | ...[...] | provenance | | +| array_flow.rb:1137:10:1137:10 | b [element] | array_flow.rb:1137:10:1137:13 | ...[...] | provenance | | +| array_flow.rb:1141:5:1141:5 | a [element 3] | array_flow.rb:1142:9:1142:9 | a [element 3] | provenance | | +| array_flow.rb:1141:19:1141:29 | call to source | array_flow.rb:1141:5:1141:5 | a [element 3] | provenance | | +| array_flow.rb:1142:5:1142:5 | b [element] | array_flow.rb:1145:10:1145:10 | b [element] | provenance | | +| array_flow.rb:1142:9:1142:9 | a [element 3] | array_flow.rb:1142:9:1144:7 | call to select [element] | provenance | | +| array_flow.rb:1142:9:1142:9 | a [element 3] | array_flow.rb:1142:22:1142:22 | x | provenance | | +| array_flow.rb:1142:9:1144:7 | call to select [element] | array_flow.rb:1142:5:1142:5 | b [element] | provenance | | +| array_flow.rb:1142:22:1142:22 | x | array_flow.rb:1143:14:1143:14 | x | provenance | | +| array_flow.rb:1145:10:1145:10 | b [element] | array_flow.rb:1145:10:1145:13 | ...[...] | provenance | | +| array_flow.rb:1149:5:1149:5 | a [element 2] | array_flow.rb:1150:9:1150:9 | a [element 2] | provenance | | +| array_flow.rb:1149:16:1149:26 | call to source | array_flow.rb:1149:5:1149:5 | a [element 2] | provenance | | +| array_flow.rb:1150:5:1150:5 | b [element] | array_flow.rb:1155:10:1155:10 | b [element] | provenance | | +| array_flow.rb:1150:9:1150:9 | [post] a [element] | array_flow.rb:1154:10:1154:10 | a [element] | provenance | | +| array_flow.rb:1150:9:1150:9 | a [element 2] | array_flow.rb:1150:9:1150:9 | [post] a [element] | provenance | | +| array_flow.rb:1150:9:1150:9 | a [element 2] | array_flow.rb:1150:9:1153:7 | call to select! [element] | provenance | | +| array_flow.rb:1150:9:1150:9 | a [element 2] | array_flow.rb:1150:23:1150:23 | x | provenance | | +| array_flow.rb:1150:9:1153:7 | call to select! [element] | array_flow.rb:1150:5:1150:5 | b [element] | provenance | | +| array_flow.rb:1150:23:1150:23 | x | array_flow.rb:1151:14:1151:14 | x | provenance | | +| array_flow.rb:1154:10:1154:10 | a [element] | array_flow.rb:1154:10:1154:13 | ...[...] | provenance | | +| array_flow.rb:1155:10:1155:10 | b [element] | array_flow.rb:1155:10:1155:13 | ...[...] | provenance | | +| array_flow.rb:1159:5:1159:5 | a [element 0] | array_flow.rb:1160:9:1160:9 | a [element 0] | provenance | | +| array_flow.rb:1159:5:1159:5 | a [element 2] | array_flow.rb:1160:9:1160:9 | a [element 2] | provenance | | +| array_flow.rb:1159:10:1159:22 | call to source | array_flow.rb:1159:5:1159:5 | a [element 0] | provenance | | +| array_flow.rb:1159:28:1159:40 | call to source | array_flow.rb:1159:5:1159:5 | a [element 2] | provenance | | +| array_flow.rb:1160:5:1160:5 | b | array_flow.rb:1161:10:1161:10 | b | provenance | | +| array_flow.rb:1160:9:1160:9 | [post] a [element 1] | array_flow.rb:1163:10:1163:10 | a [element 1] | provenance | | +| array_flow.rb:1160:9:1160:9 | a [element 0] | array_flow.rb:1160:9:1160:15 | call to shift | provenance | | +| array_flow.rb:1160:9:1160:9 | a [element 2] | array_flow.rb:1160:9:1160:9 | [post] a [element 1] | provenance | | +| array_flow.rb:1160:9:1160:15 | call to shift | array_flow.rb:1160:5:1160:5 | b | provenance | | +| array_flow.rb:1163:10:1163:10 | a [element 1] | array_flow.rb:1163:10:1163:13 | ...[...] | provenance | | +| array_flow.rb:1166:5:1166:5 | a [element 0] | array_flow.rb:1167:9:1167:9 | a [element 0] | provenance | | +| array_flow.rb:1166:5:1166:5 | a [element 2] | array_flow.rb:1167:9:1167:9 | a [element 2] | provenance | | +| array_flow.rb:1166:10:1166:22 | call to source | array_flow.rb:1166:5:1166:5 | a [element 0] | provenance | | +| array_flow.rb:1166:28:1166:40 | call to source | array_flow.rb:1166:5:1166:5 | a [element 2] | provenance | | +| array_flow.rb:1167:5:1167:5 | b [element 0] | array_flow.rb:1168:10:1168:10 | b [element 0] | provenance | | +| array_flow.rb:1167:9:1167:9 | [post] a [element 0] | array_flow.rb:1170:10:1170:10 | a [element 0] | provenance | | +| array_flow.rb:1167:9:1167:9 | a [element 0] | array_flow.rb:1167:9:1167:18 | call to shift [element 0] | provenance | | +| array_flow.rb:1167:9:1167:9 | a [element 2] | array_flow.rb:1167:9:1167:9 | [post] a [element 0] | provenance | | +| array_flow.rb:1167:9:1167:18 | call to shift [element 0] | array_flow.rb:1167:5:1167:5 | b [element 0] | provenance | | +| array_flow.rb:1168:10:1168:10 | b [element 0] | array_flow.rb:1168:10:1168:13 | ...[...] | provenance | | +| array_flow.rb:1170:10:1170:10 | a [element 0] | array_flow.rb:1170:10:1170:13 | ...[...] | provenance | | +| array_flow.rb:1174:5:1174:5 | a [element 0] | array_flow.rb:1175:9:1175:9 | a [element 0] | provenance | | +| array_flow.rb:1174:5:1174:5 | a [element 0] | array_flow.rb:1178:10:1178:10 | a [element 0] | provenance | | +| array_flow.rb:1174:5:1174:5 | a [element 2] | array_flow.rb:1175:9:1175:9 | a [element 2] | provenance | | +| array_flow.rb:1174:5:1174:5 | a [element 2] | array_flow.rb:1180:10:1180:10 | a [element 2] | provenance | | +| array_flow.rb:1174:10:1174:22 | call to source | array_flow.rb:1174:5:1174:5 | a [element 0] | provenance | | +| array_flow.rb:1174:28:1174:40 | call to source | array_flow.rb:1174:5:1174:5 | a [element 2] | provenance | | +| array_flow.rb:1175:5:1175:5 | b [element] | array_flow.rb:1176:10:1176:10 | b [element] | provenance | | +| array_flow.rb:1175:5:1175:5 | b [element] | array_flow.rb:1177:10:1177:10 | b [element] | provenance | | +| array_flow.rb:1175:9:1175:9 | [post] a [element] | array_flow.rb:1178:10:1178:10 | a [element] | provenance | | +| array_flow.rb:1175:9:1175:9 | [post] a [element] | array_flow.rb:1179:10:1179:10 | a [element] | provenance | | +| array_flow.rb:1175:9:1175:9 | [post] a [element] | array_flow.rb:1180:10:1180:10 | a [element] | provenance | | +| array_flow.rb:1175:9:1175:9 | a [element 0] | array_flow.rb:1175:9:1175:9 | [post] a [element] | provenance | | +| array_flow.rb:1175:9:1175:9 | a [element 0] | array_flow.rb:1175:9:1175:18 | call to shift [element] | provenance | | +| array_flow.rb:1175:9:1175:9 | a [element 2] | array_flow.rb:1175:9:1175:9 | [post] a [element] | provenance | | +| array_flow.rb:1175:9:1175:9 | a [element 2] | array_flow.rb:1175:9:1175:18 | call to shift [element] | provenance | | +| array_flow.rb:1175:9:1175:18 | call to shift [element] | array_flow.rb:1175:5:1175:5 | b [element] | provenance | | +| array_flow.rb:1176:10:1176:10 | b [element] | array_flow.rb:1176:10:1176:13 | ...[...] | provenance | | +| array_flow.rb:1177:10:1177:10 | b [element] | array_flow.rb:1177:10:1177:13 | ...[...] | provenance | | +| array_flow.rb:1178:10:1178:10 | a [element 0] | array_flow.rb:1178:10:1178:13 | ...[...] | provenance | | +| array_flow.rb:1178:10:1178:10 | a [element] | array_flow.rb:1178:10:1178:13 | ...[...] | provenance | | +| array_flow.rb:1179:10:1179:10 | a [element] | array_flow.rb:1179:10:1179:13 | ...[...] | provenance | | +| array_flow.rb:1180:10:1180:10 | a [element 2] | array_flow.rb:1180:10:1180:13 | ...[...] | provenance | | +| array_flow.rb:1180:10:1180:10 | a [element] | array_flow.rb:1180:10:1180:13 | ...[...] | provenance | | +| array_flow.rb:1184:5:1184:5 | a [element 2] | array_flow.rb:1185:9:1185:9 | a [element 2] | provenance | | +| array_flow.rb:1184:5:1184:5 | a [element 2] | array_flow.rb:1188:10:1188:10 | a [element 2] | provenance | | +| array_flow.rb:1184:16:1184:26 | call to source | array_flow.rb:1184:5:1184:5 | a [element 2] | provenance | | +| array_flow.rb:1185:5:1185:5 | b [element] | array_flow.rb:1189:10:1189:10 | b [element] | provenance | | +| array_flow.rb:1185:5:1185:5 | b [element] | array_flow.rb:1190:10:1190:10 | b [element] | provenance | | +| array_flow.rb:1185:5:1185:5 | b [element] | array_flow.rb:1191:10:1191:10 | b [element] | provenance | | +| array_flow.rb:1185:9:1185:9 | a [element 2] | array_flow.rb:1185:9:1185:17 | call to shuffle [element] | provenance | | +| array_flow.rb:1185:9:1185:17 | call to shuffle [element] | array_flow.rb:1185:5:1185:5 | b [element] | provenance | | +| array_flow.rb:1188:10:1188:10 | a [element 2] | array_flow.rb:1188:10:1188:13 | ...[...] | provenance | | +| array_flow.rb:1189:10:1189:10 | b [element] | array_flow.rb:1189:10:1189:13 | ...[...] | provenance | | +| array_flow.rb:1190:10:1190:10 | b [element] | array_flow.rb:1190:10:1190:13 | ...[...] | provenance | | +| array_flow.rb:1191:10:1191:10 | b [element] | array_flow.rb:1191:10:1191:13 | ...[...] | provenance | | +| array_flow.rb:1195:5:1195:5 | a [element 2] | array_flow.rb:1196:9:1196:9 | a [element 2] | provenance | | +| array_flow.rb:1195:5:1195:5 | a [element 2] | array_flow.rb:1199:10:1199:10 | a [element 2] | provenance | | +| array_flow.rb:1195:16:1195:26 | call to source | array_flow.rb:1195:5:1195:5 | a [element 2] | provenance | | +| array_flow.rb:1196:5:1196:5 | b [element] | array_flow.rb:1200:10:1200:10 | b [element] | provenance | | +| array_flow.rb:1196:5:1196:5 | b [element] | array_flow.rb:1201:10:1201:10 | b [element] | provenance | | +| array_flow.rb:1196:5:1196:5 | b [element] | array_flow.rb:1202:10:1202:10 | b [element] | provenance | | +| array_flow.rb:1196:9:1196:9 | [post] a [element] | array_flow.rb:1197:10:1197:10 | a [element] | provenance | | +| array_flow.rb:1196:9:1196:9 | [post] a [element] | array_flow.rb:1198:10:1198:10 | a [element] | provenance | | +| array_flow.rb:1196:9:1196:9 | [post] a [element] | array_flow.rb:1199:10:1199:10 | a [element] | provenance | | +| array_flow.rb:1196:9:1196:9 | a [element 2] | array_flow.rb:1196:9:1196:9 | [post] a [element] | provenance | | +| array_flow.rb:1196:9:1196:9 | a [element 2] | array_flow.rb:1196:9:1196:18 | call to shuffle! [element] | provenance | | +| array_flow.rb:1196:9:1196:18 | call to shuffle! [element] | array_flow.rb:1196:5:1196:5 | b [element] | provenance | | +| array_flow.rb:1197:10:1197:10 | a [element] | array_flow.rb:1197:10:1197:13 | ...[...] | provenance | | +| array_flow.rb:1198:10:1198:10 | a [element] | array_flow.rb:1198:10:1198:13 | ...[...] | provenance | | +| array_flow.rb:1199:10:1199:10 | a [element 2] | array_flow.rb:1199:10:1199:13 | ...[...] | provenance | | +| array_flow.rb:1199:10:1199:10 | a [element] | array_flow.rb:1199:10:1199:13 | ...[...] | provenance | | +| array_flow.rb:1200:10:1200:10 | b [element] | array_flow.rb:1200:10:1200:13 | ...[...] | provenance | | +| array_flow.rb:1201:10:1201:10 | b [element] | array_flow.rb:1201:10:1201:13 | ...[...] | provenance | | +| array_flow.rb:1202:10:1202:10 | b [element] | array_flow.rb:1202:10:1202:13 | ...[...] | provenance | | +| array_flow.rb:1206:5:1206:5 | a [element 2] | array_flow.rb:1211:9:1211:9 | a [element 2] | provenance | | +| array_flow.rb:1206:5:1206:5 | a [element 2] | array_flow.rb:1214:9:1214:9 | a [element 2] | provenance | | +| array_flow.rb:1206:5:1206:5 | a [element 2] | array_flow.rb:1221:9:1221:9 | a [element 2] | provenance | | +| array_flow.rb:1206:5:1206:5 | a [element 2] | array_flow.rb:1226:9:1226:9 | a [element 2] | provenance | | +| array_flow.rb:1206:5:1206:5 | a [element 2] | array_flow.rb:1230:9:1230:9 | a [element 2] | provenance | | +| array_flow.rb:1206:5:1206:5 | a [element 2] | array_flow.rb:1235:9:1235:9 | a [element 2] | provenance | | +| array_flow.rb:1206:5:1206:5 | a [element 2] | array_flow.rb:1240:9:1240:9 | a [element 2] | provenance | | +| array_flow.rb:1206:5:1206:5 | a [element 2] | array_flow.rb:1244:9:1244:9 | a [element 2] | provenance | | +| array_flow.rb:1206:5:1206:5 | a [element 2] | array_flow.rb:1248:9:1248:9 | a [element 2] | provenance | | +| array_flow.rb:1206:5:1206:5 | a [element 2] | array_flow.rb:1253:9:1253:9 | a [element 2] | provenance | | +| array_flow.rb:1206:5:1206:5 | a [element 4] | array_flow.rb:1208:9:1208:9 | a [element 4] | provenance | | +| array_flow.rb:1206:5:1206:5 | a [element 4] | array_flow.rb:1211:9:1211:9 | a [element 4] | provenance | | +| array_flow.rb:1206:5:1206:5 | a [element 4] | array_flow.rb:1214:9:1214:9 | a [element 4] | provenance | | +| array_flow.rb:1206:5:1206:5 | a [element 4] | array_flow.rb:1221:9:1221:9 | a [element 4] | provenance | | +| array_flow.rb:1206:5:1206:5 | a [element 4] | array_flow.rb:1226:9:1226:9 | a [element 4] | provenance | | +| array_flow.rb:1206:5:1206:5 | a [element 4] | array_flow.rb:1240:9:1240:9 | a [element 4] | provenance | | +| array_flow.rb:1206:5:1206:5 | a [element 4] | array_flow.rb:1244:9:1244:9 | a [element 4] | provenance | | +| array_flow.rb:1206:5:1206:5 | a [element 4] | array_flow.rb:1253:9:1253:9 | a [element 4] | provenance | | +| array_flow.rb:1206:16:1206:28 | call to source | array_flow.rb:1206:5:1206:5 | a [element 2] | provenance | | +| array_flow.rb:1206:34:1206:46 | call to source | array_flow.rb:1206:5:1206:5 | a [element 4] | provenance | | +| array_flow.rb:1208:5:1208:5 | b | array_flow.rb:1209:10:1209:10 | b | provenance | | +| array_flow.rb:1208:9:1208:9 | a [element 4] | array_flow.rb:1208:9:1208:17 | call to slice | provenance | | +| array_flow.rb:1208:9:1208:17 | call to slice | array_flow.rb:1208:5:1208:5 | b | provenance | | +| array_flow.rb:1211:5:1211:5 | b | array_flow.rb:1212:10:1212:10 | b | provenance | | +| array_flow.rb:1211:9:1211:9 | a [element 2] | array_flow.rb:1211:9:1211:19 | call to slice | provenance | | +| array_flow.rb:1211:9:1211:9 | a [element 4] | array_flow.rb:1211:9:1211:19 | call to slice | provenance | | +| array_flow.rb:1211:9:1211:19 | call to slice | array_flow.rb:1211:5:1211:5 | b | provenance | | +| array_flow.rb:1214:5:1214:5 | b | array_flow.rb:1216:10:1216:10 | b | provenance | | +| array_flow.rb:1214:9:1214:9 | a [element 2] | array_flow.rb:1214:9:1214:17 | call to slice | provenance | | +| array_flow.rb:1214:9:1214:9 | a [element 4] | array_flow.rb:1214:9:1214:17 | call to slice | provenance | | +| array_flow.rb:1214:9:1214:17 | call to slice | array_flow.rb:1214:5:1214:5 | b | provenance | | +| array_flow.rb:1221:5:1221:5 | b [element 0] | array_flow.rb:1222:10:1222:10 | b [element 0] | provenance | | +| array_flow.rb:1221:5:1221:5 | b [element 2] | array_flow.rb:1224:10:1224:10 | b [element 2] | provenance | | +| array_flow.rb:1221:9:1221:9 | a [element 2] | array_flow.rb:1221:9:1221:21 | call to slice [element 0] | provenance | | +| array_flow.rb:1221:9:1221:9 | a [element 4] | array_flow.rb:1221:9:1221:21 | call to slice [element 2] | provenance | | +| array_flow.rb:1221:9:1221:21 | call to slice [element 0] | array_flow.rb:1221:5:1221:5 | b [element 0] | provenance | | +| array_flow.rb:1221:9:1221:21 | call to slice [element 2] | array_flow.rb:1221:5:1221:5 | b [element 2] | provenance | | +| array_flow.rb:1222:10:1222:10 | b [element 0] | array_flow.rb:1222:10:1222:13 | ...[...] | provenance | | +| array_flow.rb:1224:10:1224:10 | b [element 2] | array_flow.rb:1224:10:1224:13 | ...[...] | provenance | | +| array_flow.rb:1226:5:1226:5 | b [element] | array_flow.rb:1227:10:1227:10 | b [element] | provenance | | +| array_flow.rb:1226:5:1226:5 | b [element] | array_flow.rb:1228:10:1228:10 | b [element] | provenance | | +| array_flow.rb:1226:9:1226:9 | a [element 2] | array_flow.rb:1226:9:1226:21 | call to slice [element] | provenance | | +| array_flow.rb:1226:9:1226:9 | a [element 4] | array_flow.rb:1226:9:1226:21 | call to slice [element] | provenance | | +| array_flow.rb:1226:9:1226:21 | call to slice [element] | array_flow.rb:1226:5:1226:5 | b [element] | provenance | | +| array_flow.rb:1227:10:1227:10 | b [element] | array_flow.rb:1227:10:1227:13 | ...[...] | provenance | | +| array_flow.rb:1228:10:1228:10 | b [element] | array_flow.rb:1228:10:1228:13 | ...[...] | provenance | | +| array_flow.rb:1230:5:1230:5 | b [element 0] | array_flow.rb:1231:10:1231:10 | b [element 0] | provenance | | +| array_flow.rb:1230:9:1230:9 | a [element 2] | array_flow.rb:1230:9:1230:21 | call to slice [element 0] | provenance | | +| array_flow.rb:1230:9:1230:21 | call to slice [element 0] | array_flow.rb:1230:5:1230:5 | b [element 0] | provenance | | +| array_flow.rb:1231:10:1231:10 | b [element 0] | array_flow.rb:1231:10:1231:13 | ...[...] | provenance | | +| array_flow.rb:1235:5:1235:5 | b [element 0] | array_flow.rb:1236:10:1236:10 | b [element 0] | provenance | | +| array_flow.rb:1235:9:1235:9 | a [element 2] | array_flow.rb:1235:9:1235:22 | call to slice [element 0] | provenance | | +| array_flow.rb:1235:9:1235:22 | call to slice [element 0] | array_flow.rb:1235:5:1235:5 | b [element 0] | provenance | | +| array_flow.rb:1236:10:1236:10 | b [element 0] | array_flow.rb:1236:10:1236:13 | ...[...] | provenance | | +| array_flow.rb:1240:5:1240:5 | b [element] | array_flow.rb:1241:10:1241:10 | b [element] | provenance | | +| array_flow.rb:1240:5:1240:5 | b [element] | array_flow.rb:1242:10:1242:10 | b [element] | provenance | | +| array_flow.rb:1240:9:1240:9 | a [element 2] | array_flow.rb:1240:9:1240:21 | call to slice [element] | provenance | | +| array_flow.rb:1240:9:1240:9 | a [element 4] | array_flow.rb:1240:9:1240:21 | call to slice [element] | provenance | | +| array_flow.rb:1240:9:1240:21 | call to slice [element] | array_flow.rb:1240:5:1240:5 | b [element] | provenance | | +| array_flow.rb:1241:10:1241:10 | b [element] | array_flow.rb:1241:10:1241:13 | ...[...] | provenance | | +| array_flow.rb:1242:10:1242:10 | b [element] | array_flow.rb:1242:10:1242:13 | ...[...] | provenance | | +| array_flow.rb:1244:5:1244:5 | b [element] | array_flow.rb:1245:10:1245:10 | b [element] | provenance | | +| array_flow.rb:1244:5:1244:5 | b [element] | array_flow.rb:1246:10:1246:10 | b [element] | provenance | | +| array_flow.rb:1244:9:1244:9 | a [element 2] | array_flow.rb:1244:9:1244:24 | call to slice [element] | provenance | | +| array_flow.rb:1244:9:1244:9 | a [element 4] | array_flow.rb:1244:9:1244:24 | call to slice [element] | provenance | | +| array_flow.rb:1244:9:1244:24 | call to slice [element] | array_flow.rb:1244:5:1244:5 | b [element] | provenance | | +| array_flow.rb:1245:10:1245:10 | b [element] | array_flow.rb:1245:10:1245:13 | ...[...] | provenance | | +| array_flow.rb:1246:10:1246:10 | b [element] | array_flow.rb:1246:10:1246:13 | ...[...] | provenance | | +| array_flow.rb:1248:5:1248:5 | b [element 2] | array_flow.rb:1251:10:1251:10 | b [element 2] | provenance | | +| array_flow.rb:1248:9:1248:9 | a [element 2] | array_flow.rb:1248:9:1248:20 | call to slice [element 2] | provenance | | +| array_flow.rb:1248:9:1248:20 | call to slice [element 2] | array_flow.rb:1248:5:1248:5 | b [element 2] | provenance | | +| array_flow.rb:1251:10:1251:10 | b [element 2] | array_flow.rb:1251:10:1251:13 | ...[...] | provenance | | +| array_flow.rb:1253:5:1253:5 | b [element] | array_flow.rb:1254:10:1254:10 | b [element] | provenance | | +| array_flow.rb:1253:5:1253:5 | b [element] | array_flow.rb:1255:10:1255:10 | b [element] | provenance | | +| array_flow.rb:1253:5:1253:5 | b [element] | array_flow.rb:1256:10:1256:10 | b [element] | provenance | | +| array_flow.rb:1253:9:1253:9 | a [element 2] | array_flow.rb:1253:9:1253:20 | call to slice [element] | provenance | | +| array_flow.rb:1253:9:1253:9 | a [element 4] | array_flow.rb:1253:9:1253:20 | call to slice [element] | provenance | | +| array_flow.rb:1253:9:1253:20 | call to slice [element] | array_flow.rb:1253:5:1253:5 | b [element] | provenance | | +| array_flow.rb:1254:10:1254:10 | b [element] | array_flow.rb:1254:10:1254:13 | ...[...] | provenance | | +| array_flow.rb:1255:10:1255:10 | b [element] | array_flow.rb:1255:10:1255:13 | ...[...] | provenance | | +| array_flow.rb:1256:10:1256:10 | b [element] | array_flow.rb:1256:10:1256:13 | ...[...] | provenance | | +| array_flow.rb:1260:5:1260:5 | a [element 2] | array_flow.rb:1261:9:1261:9 | a [element 2] | provenance | | +| array_flow.rb:1260:5:1260:5 | a [element 4] | array_flow.rb:1261:9:1261:9 | a [element 4] | provenance | | +| array_flow.rb:1260:16:1260:28 | call to source | array_flow.rb:1260:5:1260:5 | a [element 2] | provenance | | +| array_flow.rb:1260:34:1260:46 | call to source | array_flow.rb:1260:5:1260:5 | a [element 4] | provenance | | +| array_flow.rb:1261:5:1261:5 | b | array_flow.rb:1262:10:1262:10 | b | provenance | | +| array_flow.rb:1261:9:1261:9 | [post] a [element 3] | array_flow.rb:1266:10:1266:10 | a [element 3] | provenance | | +| array_flow.rb:1261:9:1261:9 | a [element 2] | array_flow.rb:1261:9:1261:19 | call to slice! | provenance | | +| array_flow.rb:1261:9:1261:9 | a [element 4] | array_flow.rb:1261:9:1261:9 | [post] a [element 3] | provenance | | +| array_flow.rb:1261:9:1261:19 | call to slice! | array_flow.rb:1261:5:1261:5 | b | provenance | | +| array_flow.rb:1266:10:1266:10 | a [element 3] | array_flow.rb:1266:10:1266:13 | ...[...] | provenance | | +| array_flow.rb:1268:5:1268:5 | a [element 2] | array_flow.rb:1269:9:1269:9 | a [element 2] | provenance | | +| array_flow.rb:1268:5:1268:5 | a [element 4] | array_flow.rb:1269:9:1269:9 | a [element 4] | provenance | | +| array_flow.rb:1268:16:1268:28 | call to source | array_flow.rb:1268:5:1268:5 | a [element 2] | provenance | | +| array_flow.rb:1268:34:1268:46 | call to source | array_flow.rb:1268:5:1268:5 | a [element 4] | provenance | | +| array_flow.rb:1269:5:1269:5 | b | array_flow.rb:1275:10:1275:10 | b | provenance | | +| array_flow.rb:1269:5:1269:5 | b [element] | array_flow.rb:1277:10:1277:10 | b [element] | provenance | | +| array_flow.rb:1269:9:1269:9 | [post] a [element] | array_flow.rb:1270:10:1270:10 | a [element] | provenance | | +| array_flow.rb:1269:9:1269:9 | [post] a [element] | array_flow.rb:1271:10:1271:10 | a [element] | provenance | | +| array_flow.rb:1269:9:1269:9 | [post] a [element] | array_flow.rb:1272:10:1272:10 | a [element] | provenance | | +| array_flow.rb:1269:9:1269:9 | [post] a [element] | array_flow.rb:1273:10:1273:10 | a [element] | provenance | | +| array_flow.rb:1269:9:1269:9 | a [element 2] | array_flow.rb:1269:9:1269:9 | [post] a [element] | provenance | | +| array_flow.rb:1269:9:1269:9 | a [element 2] | array_flow.rb:1269:9:1269:19 | call to slice! | provenance | | +| array_flow.rb:1269:9:1269:9 | a [element 2] | array_flow.rb:1269:9:1269:19 | call to slice! [element] | provenance | | +| array_flow.rb:1269:9:1269:9 | a [element 4] | array_flow.rb:1269:9:1269:9 | [post] a [element] | provenance | | +| array_flow.rb:1269:9:1269:9 | a [element 4] | array_flow.rb:1269:9:1269:19 | call to slice! | provenance | | +| array_flow.rb:1269:9:1269:9 | a [element 4] | array_flow.rb:1269:9:1269:19 | call to slice! [element] | provenance | | +| array_flow.rb:1269:9:1269:19 | call to slice! | array_flow.rb:1269:5:1269:5 | b | provenance | | +| array_flow.rb:1269:9:1269:19 | call to slice! [element] | array_flow.rb:1269:5:1269:5 | b [element] | provenance | | +| array_flow.rb:1270:10:1270:10 | a [element] | array_flow.rb:1270:10:1270:13 | ...[...] | provenance | | +| array_flow.rb:1271:10:1271:10 | a [element] | array_flow.rb:1271:10:1271:13 | ...[...] | provenance | | +| array_flow.rb:1272:10:1272:10 | a [element] | array_flow.rb:1272:10:1272:13 | ...[...] | provenance | | +| array_flow.rb:1273:10:1273:10 | a [element] | array_flow.rb:1273:10:1273:13 | ...[...] | provenance | | +| array_flow.rb:1277:10:1277:10 | b [element] | array_flow.rb:1277:10:1277:13 | ...[...] | provenance | | +| array_flow.rb:1279:5:1279:5 | a [element 2] | array_flow.rb:1280:9:1280:9 | a [element 2] | provenance | | +| array_flow.rb:1279:5:1279:5 | a [element 4] | array_flow.rb:1280:9:1280:9 | a [element 4] | provenance | | +| array_flow.rb:1279:16:1279:28 | call to source | array_flow.rb:1279:5:1279:5 | a [element 2] | provenance | | +| array_flow.rb:1279:34:1279:46 | call to source | array_flow.rb:1279:5:1279:5 | a [element 4] | provenance | | +| array_flow.rb:1280:5:1280:5 | b [element 0] | array_flow.rb:1281:10:1281:10 | b [element 0] | provenance | | +| array_flow.rb:1280:5:1280:5 | b [element 2] | array_flow.rb:1283:10:1283:10 | b [element 2] | provenance | | +| array_flow.rb:1280:9:1280:9 | a [element 2] | array_flow.rb:1280:9:1280:22 | call to slice! [element 0] | provenance | | +| array_flow.rb:1280:9:1280:9 | a [element 4] | array_flow.rb:1280:9:1280:22 | call to slice! [element 2] | provenance | | +| array_flow.rb:1280:9:1280:22 | call to slice! [element 0] | array_flow.rb:1280:5:1280:5 | b [element 0] | provenance | | +| array_flow.rb:1280:9:1280:22 | call to slice! [element 2] | array_flow.rb:1280:5:1280:5 | b [element 2] | provenance | | +| array_flow.rb:1281:10:1281:10 | b [element 0] | array_flow.rb:1281:10:1281:13 | ...[...] | provenance | | +| array_flow.rb:1283:10:1283:10 | b [element 2] | array_flow.rb:1283:10:1283:13 | ...[...] | provenance | | +| array_flow.rb:1290:5:1290:5 | a [element 2] | array_flow.rb:1291:9:1291:9 | a [element 2] | provenance | | +| array_flow.rb:1290:5:1290:5 | a [element 4] | array_flow.rb:1291:9:1291:9 | a [element 4] | provenance | | +| array_flow.rb:1290:16:1290:28 | call to source | array_flow.rb:1290:5:1290:5 | a [element 2] | provenance | | +| array_flow.rb:1290:34:1290:46 | call to source | array_flow.rb:1290:5:1290:5 | a [element 4] | provenance | | +| array_flow.rb:1291:5:1291:5 | b [element 0] | array_flow.rb:1292:10:1292:10 | b [element 0] | provenance | | +| array_flow.rb:1291:9:1291:9 | [post] a [element 2] | array_flow.rb:1297:10:1297:10 | a [element 2] | provenance | | +| array_flow.rb:1291:9:1291:9 | a [element 2] | array_flow.rb:1291:9:1291:22 | call to slice! [element 0] | provenance | | +| array_flow.rb:1291:9:1291:9 | a [element 4] | array_flow.rb:1291:9:1291:9 | [post] a [element 2] | provenance | | +| array_flow.rb:1291:9:1291:22 | call to slice! [element 0] | array_flow.rb:1291:5:1291:5 | b [element 0] | provenance | | +| array_flow.rb:1292:10:1292:10 | b [element 0] | array_flow.rb:1292:10:1292:13 | ...[...] | provenance | | +| array_flow.rb:1297:10:1297:10 | a [element 2] | array_flow.rb:1297:10:1297:13 | ...[...] | provenance | | +| array_flow.rb:1301:5:1301:5 | a [element 2] | array_flow.rb:1302:9:1302:9 | a [element 2] | provenance | | +| array_flow.rb:1301:5:1301:5 | a [element 4] | array_flow.rb:1302:9:1302:9 | a [element 4] | provenance | | +| array_flow.rb:1301:16:1301:28 | call to source | array_flow.rb:1301:5:1301:5 | a [element 2] | provenance | | +| array_flow.rb:1301:34:1301:46 | call to source | array_flow.rb:1301:5:1301:5 | a [element 4] | provenance | | +| array_flow.rb:1302:5:1302:5 | b [element 0] | array_flow.rb:1303:10:1303:10 | b [element 0] | provenance | | +| array_flow.rb:1302:9:1302:9 | [post] a [element 2] | array_flow.rb:1308:10:1308:10 | a [element 2] | provenance | | +| array_flow.rb:1302:9:1302:9 | a [element 2] | array_flow.rb:1302:9:1302:23 | call to slice! [element 0] | provenance | | +| array_flow.rb:1302:9:1302:9 | a [element 4] | array_flow.rb:1302:9:1302:9 | [post] a [element 2] | provenance | | +| array_flow.rb:1302:9:1302:23 | call to slice! [element 0] | array_flow.rb:1302:5:1302:5 | b [element 0] | provenance | | +| array_flow.rb:1303:10:1303:10 | b [element 0] | array_flow.rb:1303:10:1303:13 | ...[...] | provenance | | +| array_flow.rb:1308:10:1308:10 | a [element 2] | array_flow.rb:1308:10:1308:13 | ...[...] | provenance | | +| array_flow.rb:1312:5:1312:5 | a [element 2] | array_flow.rb:1313:9:1313:9 | a [element 2] | provenance | | +| array_flow.rb:1312:5:1312:5 | a [element 4] | array_flow.rb:1313:9:1313:9 | a [element 4] | provenance | | +| array_flow.rb:1312:16:1312:28 | call to source | array_flow.rb:1312:5:1312:5 | a [element 2] | provenance | | +| array_flow.rb:1312:34:1312:46 | call to source | array_flow.rb:1312:5:1312:5 | a [element 4] | provenance | | +| array_flow.rb:1313:5:1313:5 | b [element] | array_flow.rb:1314:10:1314:10 | b [element] | provenance | | +| array_flow.rb:1313:5:1313:5 | b [element] | array_flow.rb:1315:10:1315:10 | b [element] | provenance | | +| array_flow.rb:1313:5:1313:5 | b [element] | array_flow.rb:1316:10:1316:10 | b [element] | provenance | | +| array_flow.rb:1313:9:1313:9 | [post] a [element] | array_flow.rb:1317:10:1317:10 | a [element] | provenance | | +| array_flow.rb:1313:9:1313:9 | [post] a [element] | array_flow.rb:1318:10:1318:10 | a [element] | provenance | | +| array_flow.rb:1313:9:1313:9 | [post] a [element] | array_flow.rb:1319:10:1319:10 | a [element] | provenance | | +| array_flow.rb:1313:9:1313:9 | a [element 2] | array_flow.rb:1313:9:1313:9 | [post] a [element] | provenance | | +| array_flow.rb:1313:9:1313:9 | a [element 2] | array_flow.rb:1313:9:1313:22 | call to slice! [element] | provenance | | +| array_flow.rb:1313:9:1313:9 | a [element 4] | array_flow.rb:1313:9:1313:9 | [post] a [element] | provenance | | +| array_flow.rb:1313:9:1313:9 | a [element 4] | array_flow.rb:1313:9:1313:22 | call to slice! [element] | provenance | | +| array_flow.rb:1313:9:1313:22 | call to slice! [element] | array_flow.rb:1313:5:1313:5 | b [element] | provenance | | +| array_flow.rb:1314:10:1314:10 | b [element] | array_flow.rb:1314:10:1314:13 | ...[...] | provenance | | +| array_flow.rb:1315:10:1315:10 | b [element] | array_flow.rb:1315:10:1315:13 | ...[...] | provenance | | +| array_flow.rb:1316:10:1316:10 | b [element] | array_flow.rb:1316:10:1316:13 | ...[...] | provenance | | +| array_flow.rb:1317:10:1317:10 | a [element] | array_flow.rb:1317:10:1317:13 | ...[...] | provenance | | +| array_flow.rb:1318:10:1318:10 | a [element] | array_flow.rb:1318:10:1318:13 | ...[...] | provenance | | +| array_flow.rb:1319:10:1319:10 | a [element] | array_flow.rb:1319:10:1319:13 | ...[...] | provenance | | +| array_flow.rb:1321:5:1321:5 | a [element 2] | array_flow.rb:1322:9:1322:9 | a [element 2] | provenance | | +| array_flow.rb:1321:5:1321:5 | a [element 4] | array_flow.rb:1322:9:1322:9 | a [element 4] | provenance | | +| array_flow.rb:1321:16:1321:28 | call to source | array_flow.rb:1321:5:1321:5 | a [element 2] | provenance | | +| array_flow.rb:1321:34:1321:46 | call to source | array_flow.rb:1321:5:1321:5 | a [element 4] | provenance | | +| array_flow.rb:1322:5:1322:5 | b [element] | array_flow.rb:1323:10:1323:10 | b [element] | provenance | | +| array_flow.rb:1322:5:1322:5 | b [element] | array_flow.rb:1324:10:1324:10 | b [element] | provenance | | +| array_flow.rb:1322:5:1322:5 | b [element] | array_flow.rb:1325:10:1325:10 | b [element] | provenance | | +| array_flow.rb:1322:9:1322:9 | [post] a [element] | array_flow.rb:1326:10:1326:10 | a [element] | provenance | | +| array_flow.rb:1322:9:1322:9 | [post] a [element] | array_flow.rb:1327:10:1327:10 | a [element] | provenance | | +| array_flow.rb:1322:9:1322:9 | [post] a [element] | array_flow.rb:1328:10:1328:10 | a [element] | provenance | | +| array_flow.rb:1322:9:1322:9 | a [element 2] | array_flow.rb:1322:9:1322:9 | [post] a [element] | provenance | | +| array_flow.rb:1322:9:1322:9 | a [element 2] | array_flow.rb:1322:9:1322:22 | call to slice! [element] | provenance | | +| array_flow.rb:1322:9:1322:9 | a [element 4] | array_flow.rb:1322:9:1322:9 | [post] a [element] | provenance | | +| array_flow.rb:1322:9:1322:9 | a [element 4] | array_flow.rb:1322:9:1322:22 | call to slice! [element] | provenance | | +| array_flow.rb:1322:9:1322:22 | call to slice! [element] | array_flow.rb:1322:5:1322:5 | b [element] | provenance | | +| array_flow.rb:1323:10:1323:10 | b [element] | array_flow.rb:1323:10:1323:13 | ...[...] | provenance | | +| array_flow.rb:1324:10:1324:10 | b [element] | array_flow.rb:1324:10:1324:13 | ...[...] | provenance | | +| array_flow.rb:1325:10:1325:10 | b [element] | array_flow.rb:1325:10:1325:13 | ...[...] | provenance | | +| array_flow.rb:1326:10:1326:10 | a [element] | array_flow.rb:1326:10:1326:13 | ...[...] | provenance | | +| array_flow.rb:1327:10:1327:10 | a [element] | array_flow.rb:1327:10:1327:13 | ...[...] | provenance | | +| array_flow.rb:1328:10:1328:10 | a [element] | array_flow.rb:1328:10:1328:13 | ...[...] | provenance | | +| array_flow.rb:1330:5:1330:5 | a [element 2] | array_flow.rb:1331:9:1331:9 | a [element 2] | provenance | | +| array_flow.rb:1330:5:1330:5 | a [element 4] | array_flow.rb:1331:9:1331:9 | a [element 4] | provenance | | +| array_flow.rb:1330:16:1330:28 | call to source | array_flow.rb:1330:5:1330:5 | a [element 2] | provenance | | +| array_flow.rb:1330:34:1330:46 | call to source | array_flow.rb:1330:5:1330:5 | a [element 4] | provenance | | +| array_flow.rb:1331:5:1331:5 | b [element] | array_flow.rb:1332:10:1332:10 | b [element] | provenance | | +| array_flow.rb:1331:5:1331:5 | b [element] | array_flow.rb:1333:10:1333:10 | b [element] | provenance | | +| array_flow.rb:1331:5:1331:5 | b [element] | array_flow.rb:1334:10:1334:10 | b [element] | provenance | | +| array_flow.rb:1331:9:1331:9 | [post] a [element] | array_flow.rb:1335:10:1335:10 | a [element] | provenance | | +| array_flow.rb:1331:9:1331:9 | [post] a [element] | array_flow.rb:1336:10:1336:10 | a [element] | provenance | | +| array_flow.rb:1331:9:1331:9 | [post] a [element] | array_flow.rb:1337:10:1337:10 | a [element] | provenance | | +| array_flow.rb:1331:9:1331:9 | a [element 2] | array_flow.rb:1331:9:1331:9 | [post] a [element] | provenance | | +| array_flow.rb:1331:9:1331:9 | a [element 2] | array_flow.rb:1331:9:1331:25 | call to slice! [element] | provenance | | +| array_flow.rb:1331:9:1331:9 | a [element 4] | array_flow.rb:1331:9:1331:9 | [post] a [element] | provenance | | +| array_flow.rb:1331:9:1331:9 | a [element 4] | array_flow.rb:1331:9:1331:25 | call to slice! [element] | provenance | | +| array_flow.rb:1331:9:1331:25 | call to slice! [element] | array_flow.rb:1331:5:1331:5 | b [element] | provenance | | +| array_flow.rb:1332:10:1332:10 | b [element] | array_flow.rb:1332:10:1332:13 | ...[...] | provenance | | +| array_flow.rb:1333:10:1333:10 | b [element] | array_flow.rb:1333:10:1333:13 | ...[...] | provenance | | +| array_flow.rb:1334:10:1334:10 | b [element] | array_flow.rb:1334:10:1334:13 | ...[...] | provenance | | +| array_flow.rb:1335:10:1335:10 | a [element] | array_flow.rb:1335:10:1335:13 | ...[...] | provenance | | +| array_flow.rb:1336:10:1336:10 | a [element] | array_flow.rb:1336:10:1336:13 | ...[...] | provenance | | +| array_flow.rb:1337:10:1337:10 | a [element] | array_flow.rb:1337:10:1337:13 | ...[...] | provenance | | +| array_flow.rb:1339:5:1339:5 | a [element 2] | array_flow.rb:1340:9:1340:9 | a [element 2] | provenance | | +| array_flow.rb:1339:5:1339:5 | a [element 4] | array_flow.rb:1340:9:1340:9 | a [element 4] | provenance | | +| array_flow.rb:1339:16:1339:28 | call to source | array_flow.rb:1339:5:1339:5 | a [element 2] | provenance | | +| array_flow.rb:1339:34:1339:46 | call to source | array_flow.rb:1339:5:1339:5 | a [element 4] | provenance | | +| array_flow.rb:1340:5:1340:5 | b [element 2] | array_flow.rb:1343:10:1343:10 | b [element 2] | provenance | | +| array_flow.rb:1340:9:1340:9 | [post] a [element 1] | array_flow.rb:1345:10:1345:10 | a [element 1] | provenance | | +| array_flow.rb:1340:9:1340:9 | a [element 2] | array_flow.rb:1340:9:1340:21 | call to slice! [element 2] | provenance | | +| array_flow.rb:1340:9:1340:9 | a [element 4] | array_flow.rb:1340:9:1340:9 | [post] a [element 1] | provenance | | +| array_flow.rb:1340:9:1340:21 | call to slice! [element 2] | array_flow.rb:1340:5:1340:5 | b [element 2] | provenance | | +| array_flow.rb:1343:10:1343:10 | b [element 2] | array_flow.rb:1343:10:1343:13 | ...[...] | provenance | | +| array_flow.rb:1345:10:1345:10 | a [element 1] | array_flow.rb:1345:10:1345:13 | ...[...] | provenance | | +| array_flow.rb:1348:5:1348:5 | a [element 2] | array_flow.rb:1349:9:1349:9 | a [element 2] | provenance | | +| array_flow.rb:1348:5:1348:5 | a [element 4] | array_flow.rb:1349:9:1349:9 | a [element 4] | provenance | | +| array_flow.rb:1348:16:1348:28 | call to source | array_flow.rb:1348:5:1348:5 | a [element 2] | provenance | | +| array_flow.rb:1348:34:1348:46 | call to source | array_flow.rb:1348:5:1348:5 | a [element 4] | provenance | | +| array_flow.rb:1349:5:1349:5 | b [element] | array_flow.rb:1350:10:1350:10 | b [element] | provenance | | +| array_flow.rb:1349:5:1349:5 | b [element] | array_flow.rb:1351:10:1351:10 | b [element] | provenance | | +| array_flow.rb:1349:5:1349:5 | b [element] | array_flow.rb:1352:10:1352:10 | b [element] | provenance | | +| array_flow.rb:1349:9:1349:9 | [post] a [element] | array_flow.rb:1353:10:1353:10 | a [element] | provenance | | +| array_flow.rb:1349:9:1349:9 | [post] a [element] | array_flow.rb:1354:10:1354:10 | a [element] | provenance | | +| array_flow.rb:1349:9:1349:9 | [post] a [element] | array_flow.rb:1355:10:1355:10 | a [element] | provenance | | +| array_flow.rb:1349:9:1349:9 | a [element 2] | array_flow.rb:1349:9:1349:9 | [post] a [element] | provenance | | +| array_flow.rb:1349:9:1349:9 | a [element 2] | array_flow.rb:1349:9:1349:21 | call to slice! [element] | provenance | | +| array_flow.rb:1349:9:1349:9 | a [element 4] | array_flow.rb:1349:9:1349:9 | [post] a [element] | provenance | | +| array_flow.rb:1349:9:1349:9 | a [element 4] | array_flow.rb:1349:9:1349:21 | call to slice! [element] | provenance | | +| array_flow.rb:1349:9:1349:21 | call to slice! [element] | array_flow.rb:1349:5:1349:5 | b [element] | provenance | | +| array_flow.rb:1350:10:1350:10 | b [element] | array_flow.rb:1350:10:1350:13 | ...[...] | provenance | | +| array_flow.rb:1351:10:1351:10 | b [element] | array_flow.rb:1351:10:1351:13 | ...[...] | provenance | | +| array_flow.rb:1352:10:1352:10 | b [element] | array_flow.rb:1352:10:1352:13 | ...[...] | provenance | | +| array_flow.rb:1353:10:1353:10 | a [element] | array_flow.rb:1353:10:1353:13 | ...[...] | provenance | | +| array_flow.rb:1354:10:1354:10 | a [element] | array_flow.rb:1354:10:1354:13 | ...[...] | provenance | | +| array_flow.rb:1355:10:1355:10 | a [element] | array_flow.rb:1355:10:1355:13 | ...[...] | provenance | | +| array_flow.rb:1359:5:1359:5 | a [element 2] | array_flow.rb:1360:9:1360:9 | a [element 2] | provenance | | +| array_flow.rb:1359:16:1359:26 | call to source | array_flow.rb:1359:5:1359:5 | a [element 2] | provenance | | +| array_flow.rb:1360:9:1360:9 | a [element 2] | array_flow.rb:1360:27:1360:27 | x | provenance | | +| array_flow.rb:1360:27:1360:27 | x | array_flow.rb:1361:14:1361:14 | x | provenance | | +| array_flow.rb:1367:5:1367:5 | a [element 2] | array_flow.rb:1368:9:1368:9 | a [element 2] | provenance | | +| array_flow.rb:1367:16:1367:26 | call to source | array_flow.rb:1367:5:1367:5 | a [element 2] | provenance | | +| array_flow.rb:1368:9:1368:9 | a [element 2] | array_flow.rb:1368:28:1368:28 | x | provenance | | +| array_flow.rb:1368:28:1368:28 | x | array_flow.rb:1369:14:1369:14 | x | provenance | | +| array_flow.rb:1375:5:1375:5 | a [element 2] | array_flow.rb:1376:9:1376:9 | a [element 2] | provenance | | +| array_flow.rb:1375:16:1375:26 | call to source | array_flow.rb:1375:5:1375:5 | a [element 2] | provenance | | +| array_flow.rb:1376:9:1376:9 | a [element 2] | array_flow.rb:1376:26:1376:26 | x | provenance | | +| array_flow.rb:1376:9:1376:9 | a [element 2] | array_flow.rb:1376:29:1376:29 | y | provenance | | +| array_flow.rb:1376:26:1376:26 | x | array_flow.rb:1377:14:1377:14 | x | provenance | | +| array_flow.rb:1376:29:1376:29 | y | array_flow.rb:1378:14:1378:14 | y | provenance | | +| array_flow.rb:1383:5:1383:5 | a [element 2] | array_flow.rb:1384:9:1384:9 | a [element 2] | provenance | | +| array_flow.rb:1383:5:1383:5 | a [element 2] | array_flow.rb:1387:9:1387:9 | a [element 2] | provenance | | +| array_flow.rb:1383:16:1383:26 | call to source | array_flow.rb:1383:5:1383:5 | a [element 2] | provenance | | +| array_flow.rb:1384:5:1384:5 | b [element] | array_flow.rb:1385:10:1385:10 | b [element] | provenance | | +| array_flow.rb:1384:5:1384:5 | b [element] | array_flow.rb:1386:10:1386:10 | b [element] | provenance | | +| array_flow.rb:1384:9:1384:9 | a [element 2] | array_flow.rb:1384:9:1384:14 | call to sort [element] | provenance | | +| array_flow.rb:1384:9:1384:14 | call to sort [element] | array_flow.rb:1384:5:1384:5 | b [element] | provenance | | +| array_flow.rb:1385:10:1385:10 | b [element] | array_flow.rb:1385:10:1385:13 | ...[...] | provenance | | +| array_flow.rb:1386:10:1386:10 | b [element] | array_flow.rb:1386:10:1386:13 | ...[...] | provenance | | +| array_flow.rb:1387:5:1387:5 | c [element] | array_flow.rb:1392:10:1392:10 | c [element] | provenance | | +| array_flow.rb:1387:5:1387:5 | c [element] | array_flow.rb:1393:10:1393:10 | c [element] | provenance | | +| array_flow.rb:1387:9:1387:9 | a [element 2] | array_flow.rb:1387:9:1391:7 | call to sort [element] | provenance | | +| array_flow.rb:1387:9:1387:9 | a [element 2] | array_flow.rb:1387:20:1387:20 | x | provenance | | +| array_flow.rb:1387:9:1387:9 | a [element 2] | array_flow.rb:1387:23:1387:23 | y | provenance | | +| array_flow.rb:1387:9:1391:7 | call to sort [element] | array_flow.rb:1387:5:1387:5 | c [element] | provenance | | +| array_flow.rb:1387:20:1387:20 | x | array_flow.rb:1388:14:1388:14 | x | provenance | | +| array_flow.rb:1387:23:1387:23 | y | array_flow.rb:1389:14:1389:14 | y | provenance | | +| array_flow.rb:1392:10:1392:10 | c [element] | array_flow.rb:1392:10:1392:13 | ...[...] | provenance | | +| array_flow.rb:1393:10:1393:10 | c [element] | array_flow.rb:1393:10:1393:13 | ...[...] | provenance | | +| array_flow.rb:1397:5:1397:5 | a [element 2] | array_flow.rb:1398:9:1398:9 | a [element 2] | provenance | | +| array_flow.rb:1397:16:1397:26 | call to source | array_flow.rb:1397:5:1397:5 | a [element 2] | provenance | | +| array_flow.rb:1398:5:1398:5 | b [element] | array_flow.rb:1399:10:1399:10 | b [element] | provenance | | +| array_flow.rb:1398:5:1398:5 | b [element] | array_flow.rb:1400:10:1400:10 | b [element] | provenance | | +| array_flow.rb:1398:9:1398:9 | [post] a [element] | array_flow.rb:1401:10:1401:10 | a [element] | provenance | | +| array_flow.rb:1398:9:1398:9 | [post] a [element] | array_flow.rb:1402:10:1402:10 | a [element] | provenance | | +| array_flow.rb:1398:9:1398:9 | a [element 2] | array_flow.rb:1398:9:1398:9 | [post] a [element] | provenance | | +| array_flow.rb:1398:9:1398:9 | a [element 2] | array_flow.rb:1398:9:1398:15 | call to sort! [element] | provenance | | +| array_flow.rb:1398:9:1398:15 | call to sort! [element] | array_flow.rb:1398:5:1398:5 | b [element] | provenance | | +| array_flow.rb:1399:10:1399:10 | b [element] | array_flow.rb:1399:10:1399:13 | ...[...] | provenance | | +| array_flow.rb:1400:10:1400:10 | b [element] | array_flow.rb:1400:10:1400:13 | ...[...] | provenance | | +| array_flow.rb:1401:10:1401:10 | a [element] | array_flow.rb:1401:10:1401:13 | ...[...] | provenance | | +| array_flow.rb:1402:10:1402:10 | a [element] | array_flow.rb:1402:10:1402:13 | ...[...] | provenance | | +| array_flow.rb:1404:5:1404:5 | a [element 2] | array_flow.rb:1405:9:1405:9 | a [element 2] | provenance | | +| array_flow.rb:1404:16:1404:26 | call to source | array_flow.rb:1404:5:1404:5 | a [element 2] | provenance | | +| array_flow.rb:1405:5:1405:5 | b [element] | array_flow.rb:1410:10:1410:10 | b [element] | provenance | | +| array_flow.rb:1405:5:1405:5 | b [element] | array_flow.rb:1411:10:1411:10 | b [element] | provenance | | +| array_flow.rb:1405:9:1405:9 | [post] a [element] | array_flow.rb:1412:10:1412:10 | a [element] | provenance | | +| array_flow.rb:1405:9:1405:9 | [post] a [element] | array_flow.rb:1413:10:1413:10 | a [element] | provenance | | +| array_flow.rb:1405:9:1405:9 | a [element 2] | array_flow.rb:1405:9:1405:9 | [post] a [element] | provenance | | +| array_flow.rb:1405:9:1405:9 | a [element 2] | array_flow.rb:1405:9:1409:7 | call to sort! [element] | provenance | | +| array_flow.rb:1405:9:1405:9 | a [element 2] | array_flow.rb:1405:21:1405:21 | x | provenance | | +| array_flow.rb:1405:9:1405:9 | a [element 2] | array_flow.rb:1405:24:1405:24 | y | provenance | | +| array_flow.rb:1405:9:1409:7 | call to sort! [element] | array_flow.rb:1405:5:1405:5 | b [element] | provenance | | +| array_flow.rb:1405:21:1405:21 | x | array_flow.rb:1406:14:1406:14 | x | provenance | | +| array_flow.rb:1405:24:1405:24 | y | array_flow.rb:1407:14:1407:14 | y | provenance | | +| array_flow.rb:1410:10:1410:10 | b [element] | array_flow.rb:1410:10:1410:13 | ...[...] | provenance | | +| array_flow.rb:1411:10:1411:10 | b [element] | array_flow.rb:1411:10:1411:13 | ...[...] | provenance | | +| array_flow.rb:1412:10:1412:10 | a [element] | array_flow.rb:1412:10:1412:13 | ...[...] | provenance | | +| array_flow.rb:1413:10:1413:10 | a [element] | array_flow.rb:1413:10:1413:13 | ...[...] | provenance | | +| array_flow.rb:1417:5:1417:5 | a [element 2] | array_flow.rb:1418:9:1418:9 | a [element 2] | provenance | | +| array_flow.rb:1417:16:1417:26 | call to source | array_flow.rb:1417:5:1417:5 | a [element 2] | provenance | | +| array_flow.rb:1418:5:1418:5 | b [element] | array_flow.rb:1422:10:1422:10 | b [element] | provenance | | +| array_flow.rb:1418:5:1418:5 | b [element] | array_flow.rb:1423:10:1423:10 | b [element] | provenance | | +| array_flow.rb:1418:9:1418:9 | a [element 2] | array_flow.rb:1418:9:1421:7 | call to sort_by [element] | provenance | | +| array_flow.rb:1418:9:1418:9 | a [element 2] | array_flow.rb:1418:23:1418:23 | x | provenance | | +| array_flow.rb:1418:9:1421:7 | call to sort_by [element] | array_flow.rb:1418:5:1418:5 | b [element] | provenance | | +| array_flow.rb:1418:23:1418:23 | x | array_flow.rb:1419:14:1419:14 | x | provenance | | +| array_flow.rb:1422:10:1422:10 | b [element] | array_flow.rb:1422:10:1422:13 | ...[...] | provenance | | +| array_flow.rb:1423:10:1423:10 | b [element] | array_flow.rb:1423:10:1423:13 | ...[...] | provenance | | +| array_flow.rb:1427:5:1427:5 | a [element 2] | array_flow.rb:1428:9:1428:9 | a [element 2] | provenance | | +| array_flow.rb:1427:16:1427:26 | call to source | array_flow.rb:1427:5:1427:5 | a [element 2] | provenance | | +| array_flow.rb:1428:5:1428:5 | b [element] | array_flow.rb:1434:10:1434:10 | b [element] | provenance | | +| array_flow.rb:1428:5:1428:5 | b [element] | array_flow.rb:1435:10:1435:10 | b [element] | provenance | | +| array_flow.rb:1428:9:1428:9 | [post] a [element] | array_flow.rb:1432:10:1432:10 | a [element] | provenance | | +| array_flow.rb:1428:9:1428:9 | [post] a [element] | array_flow.rb:1433:10:1433:10 | a [element] | provenance | | +| array_flow.rb:1428:9:1428:9 | a [element 2] | array_flow.rb:1428:9:1428:9 | [post] a [element] | provenance | | +| array_flow.rb:1428:9:1428:9 | a [element 2] | array_flow.rb:1428:9:1431:7 | call to sort_by! [element] | provenance | | +| array_flow.rb:1428:9:1428:9 | a [element 2] | array_flow.rb:1428:24:1428:24 | x | provenance | | +| array_flow.rb:1428:9:1431:7 | call to sort_by! [element] | array_flow.rb:1428:5:1428:5 | b [element] | provenance | | +| array_flow.rb:1428:24:1428:24 | x | array_flow.rb:1429:14:1429:14 | x | provenance | | +| array_flow.rb:1432:10:1432:10 | a [element] | array_flow.rb:1432:10:1432:13 | ...[...] | provenance | | +| array_flow.rb:1433:10:1433:10 | a [element] | array_flow.rb:1433:10:1433:13 | ...[...] | provenance | | +| array_flow.rb:1434:10:1434:10 | b [element] | array_flow.rb:1434:10:1434:13 | ...[...] | provenance | | +| array_flow.rb:1435:10:1435:10 | b [element] | array_flow.rb:1435:10:1435:13 | ...[...] | provenance | | +| array_flow.rb:1439:5:1439:5 | a [element 2] | array_flow.rb:1440:9:1440:9 | a [element 2] | provenance | | +| array_flow.rb:1439:16:1439:26 | call to source | array_flow.rb:1439:5:1439:5 | a [element 2] | provenance | | +| array_flow.rb:1440:9:1440:9 | a [element 2] | array_flow.rb:1440:19:1440:19 | x | provenance | | +| array_flow.rb:1440:19:1440:19 | x | array_flow.rb:1441:14:1441:14 | x | provenance | | +| array_flow.rb:1447:5:1447:5 | a [element 2] | array_flow.rb:1448:9:1448:9 | a [element 2] | provenance | | +| array_flow.rb:1447:5:1447:5 | a [element 2] | array_flow.rb:1453:9:1453:9 | a [element 2] | provenance | | +| array_flow.rb:1447:5:1447:5 | a [element 2] | array_flow.rb:1459:9:1459:9 | a [element 2] | provenance | | +| array_flow.rb:1447:5:1447:5 | a [element 2] | array_flow.rb:1466:9:1466:9 | a [element 2] | provenance | | +| array_flow.rb:1447:5:1447:5 | a [element 3] | array_flow.rb:1448:9:1448:9 | a [element 3] | provenance | | +| array_flow.rb:1447:5:1447:5 | a [element 3] | array_flow.rb:1459:9:1459:9 | a [element 3] | provenance | | +| array_flow.rb:1447:16:1447:28 | call to source | array_flow.rb:1447:5:1447:5 | a [element 2] | provenance | | +| array_flow.rb:1447:31:1447:43 | call to source | array_flow.rb:1447:5:1447:5 | a [element 3] | provenance | | +| array_flow.rb:1448:5:1448:5 | b [element 2] | array_flow.rb:1451:10:1451:10 | b [element 2] | provenance | | +| array_flow.rb:1448:5:1448:5 | b [element 3] | array_flow.rb:1452:10:1452:10 | b [element 3] | provenance | | +| array_flow.rb:1448:9:1448:9 | a [element 2] | array_flow.rb:1448:9:1448:17 | call to take [element 2] | provenance | | +| array_flow.rb:1448:9:1448:9 | a [element 3] | array_flow.rb:1448:9:1448:17 | call to take [element 3] | provenance | | +| array_flow.rb:1448:9:1448:17 | call to take [element 2] | array_flow.rb:1448:5:1448:5 | b [element 2] | provenance | | +| array_flow.rb:1448:9:1448:17 | call to take [element 3] | array_flow.rb:1448:5:1448:5 | b [element 3] | provenance | | +| array_flow.rb:1451:10:1451:10 | b [element 2] | array_flow.rb:1451:10:1451:13 | ...[...] | provenance | | +| array_flow.rb:1452:10:1452:10 | b [element 3] | array_flow.rb:1452:10:1452:13 | ...[...] | provenance | | +| array_flow.rb:1453:5:1453:5 | b [element 2] | array_flow.rb:1456:10:1456:10 | b [element 2] | provenance | | +| array_flow.rb:1453:5:1453:5 | b [element 2] | array_flow.rb:1458:10:1458:10 | b [element 2] | provenance | | +| array_flow.rb:1453:9:1453:9 | a [element 2] | array_flow.rb:1453:9:1453:17 | call to take [element 2] | provenance | | +| array_flow.rb:1453:9:1453:17 | call to take [element 2] | array_flow.rb:1453:5:1453:5 | b [element 2] | provenance | | +| array_flow.rb:1456:10:1456:10 | b [element 2] | array_flow.rb:1456:10:1456:13 | ...[...] | provenance | | +| array_flow.rb:1458:10:1458:10 | b [element 2] | array_flow.rb:1458:10:1458:13 | ...[...] | provenance | | +| array_flow.rb:1459:5:1459:5 | b [element 2] | array_flow.rb:1462:10:1462:10 | b [element 2] | provenance | | +| array_flow.rb:1459:5:1459:5 | b [element 2] | array_flow.rb:1464:10:1464:10 | b [element 2] | provenance | | +| array_flow.rb:1459:5:1459:5 | b [element 3] | array_flow.rb:1463:10:1463:10 | b [element 3] | provenance | | +| array_flow.rb:1459:5:1459:5 | b [element 3] | array_flow.rb:1464:10:1464:10 | b [element 3] | provenance | | +| array_flow.rb:1459:9:1459:9 | a [element 2] | array_flow.rb:1459:9:1459:19 | call to take [element 2] | provenance | | +| array_flow.rb:1459:9:1459:9 | a [element 3] | array_flow.rb:1459:9:1459:19 | call to take [element 3] | provenance | | +| array_flow.rb:1459:9:1459:19 | call to take [element 2] | array_flow.rb:1459:5:1459:5 | b [element 2] | provenance | | +| array_flow.rb:1459:9:1459:19 | call to take [element 3] | array_flow.rb:1459:5:1459:5 | b [element 3] | provenance | | +| array_flow.rb:1462:10:1462:10 | b [element 2] | array_flow.rb:1462:10:1462:13 | ...[...] | provenance | | +| array_flow.rb:1463:10:1463:10 | b [element 3] | array_flow.rb:1463:10:1463:13 | ...[...] | provenance | | +| array_flow.rb:1464:10:1464:10 | b [element 2] | array_flow.rb:1464:10:1464:13 | ...[...] | provenance | | +| array_flow.rb:1464:10:1464:10 | b [element 3] | array_flow.rb:1464:10:1464:13 | ...[...] | provenance | | +| array_flow.rb:1465:5:1465:5 | [post] a [element] | array_flow.rb:1466:9:1466:9 | a [element] | provenance | | +| array_flow.rb:1465:12:1465:24 | call to source | array_flow.rb:1465:5:1465:5 | [post] a [element] | provenance | | +| array_flow.rb:1466:5:1466:5 | b [element 2] | array_flow.rb:1467:10:1467:10 | b [element 2] | provenance | | +| array_flow.rb:1466:5:1466:5 | b [element] | array_flow.rb:1467:10:1467:10 | b [element] | provenance | | +| array_flow.rb:1466:9:1466:9 | a [element 2] | array_flow.rb:1466:9:1466:17 | call to take [element 2] | provenance | | +| array_flow.rb:1466:9:1466:9 | a [element] | array_flow.rb:1466:9:1466:17 | call to take [element] | provenance | | +| array_flow.rb:1466:9:1466:17 | call to take [element 2] | array_flow.rb:1466:5:1466:5 | b [element 2] | provenance | | +| array_flow.rb:1466:9:1466:17 | call to take [element] | array_flow.rb:1466:5:1466:5 | b [element] | provenance | | +| array_flow.rb:1467:10:1467:10 | b [element 2] | array_flow.rb:1467:10:1467:13 | ...[...] | provenance | | +| array_flow.rb:1467:10:1467:10 | b [element] | array_flow.rb:1467:10:1467:13 | ...[...] | provenance | | +| array_flow.rb:1471:5:1471:5 | a [element 2] | array_flow.rb:1472:9:1472:9 | a [element 2] | provenance | | +| array_flow.rb:1471:16:1471:26 | call to source | array_flow.rb:1471:5:1471:5 | a [element 2] | provenance | | +| array_flow.rb:1472:5:1472:5 | b [element 2] | array_flow.rb:1478:10:1478:10 | b [element 2] | provenance | | +| array_flow.rb:1472:9:1472:9 | a [element 2] | array_flow.rb:1472:9:1475:7 | call to take_while [element 2] | provenance | | +| array_flow.rb:1472:9:1472:9 | a [element 2] | array_flow.rb:1472:26:1472:26 | x | provenance | | +| array_flow.rb:1472:9:1475:7 | call to take_while [element 2] | array_flow.rb:1472:5:1472:5 | b [element 2] | provenance | | +| array_flow.rb:1472:26:1472:26 | x | array_flow.rb:1473:14:1473:14 | x | provenance | | +| array_flow.rb:1478:10:1478:10 | b [element 2] | array_flow.rb:1478:10:1478:13 | ...[...] | provenance | | +| array_flow.rb:1484:5:1484:5 | a [element 3] | array_flow.rb:1485:9:1485:9 | a [element 3] | provenance | | +| array_flow.rb:1484:19:1484:29 | call to source | array_flow.rb:1484:5:1484:5 | a [element 3] | provenance | | +| array_flow.rb:1485:5:1485:5 | b [element 3] | array_flow.rb:1486:10:1486:10 | b [element 3] | provenance | | +| array_flow.rb:1485:9:1485:9 | a [element 3] | array_flow.rb:1485:9:1485:14 | call to to_a [element 3] | provenance | | +| array_flow.rb:1485:9:1485:14 | call to to_a [element 3] | array_flow.rb:1485:5:1485:5 | b [element 3] | provenance | | +| array_flow.rb:1486:10:1486:10 | b [element 3] | array_flow.rb:1486:10:1486:13 | ...[...] | provenance | | +| array_flow.rb:1490:5:1490:5 | a [element 2] | array_flow.rb:1491:9:1491:9 | a [element 2] | provenance | | +| array_flow.rb:1490:16:1490:26 | call to source | array_flow.rb:1490:5:1490:5 | a [element 2] | provenance | | +| array_flow.rb:1491:5:1491:5 | b [element 2] | array_flow.rb:1494:10:1494:10 | b [element 2] | provenance | | +| array_flow.rb:1491:9:1491:9 | a [element 2] | array_flow.rb:1491:9:1491:16 | call to to_ary [element 2] | provenance | | +| array_flow.rb:1491:9:1491:16 | call to to_ary [element 2] | array_flow.rb:1491:5:1491:5 | b [element 2] | provenance | | +| array_flow.rb:1494:10:1494:10 | b [element 2] | array_flow.rb:1494:10:1494:13 | ...[...] | provenance | | +| array_flow.rb:1507:5:1507:5 | a [element 0, element 1] | array_flow.rb:1508:9:1508:9 | a [element 0, element 1] | provenance | | +| array_flow.rb:1507:5:1507:5 | a [element 1, element 1] | array_flow.rb:1508:9:1508:9 | a [element 1, element 1] | provenance | | +| array_flow.rb:1507:5:1507:5 | a [element 2, element 1] | array_flow.rb:1508:9:1508:9 | a [element 2, element 1] | provenance | | +| array_flow.rb:1507:14:1507:26 | call to source | array_flow.rb:1507:5:1507:5 | a [element 0, element 1] | provenance | | +| array_flow.rb:1507:34:1507:46 | call to source | array_flow.rb:1507:5:1507:5 | a [element 1, element 1] | provenance | | +| array_flow.rb:1507:54:1507:66 | call to source | array_flow.rb:1507:5:1507:5 | a [element 2, element 1] | provenance | | +| array_flow.rb:1508:5:1508:5 | b [element 1, element 0] | array_flow.rb:1512:10:1512:10 | b [element 1, element 0] | provenance | | +| array_flow.rb:1508:5:1508:5 | b [element 1, element 1] | array_flow.rb:1513:10:1513:10 | b [element 1, element 1] | provenance | | +| array_flow.rb:1508:5:1508:5 | b [element 1, element 2] | array_flow.rb:1514:10:1514:10 | b [element 1, element 2] | provenance | | +| array_flow.rb:1508:9:1508:9 | a [element 0, element 1] | array_flow.rb:1508:9:1508:19 | call to transpose [element 1, element 0] | provenance | | +| array_flow.rb:1508:9:1508:9 | a [element 1, element 1] | array_flow.rb:1508:9:1508:19 | call to transpose [element 1, element 1] | provenance | | +| array_flow.rb:1508:9:1508:9 | a [element 2, element 1] | array_flow.rb:1508:9:1508:19 | call to transpose [element 1, element 2] | provenance | | +| array_flow.rb:1508:9:1508:19 | call to transpose [element 1, element 0] | array_flow.rb:1508:5:1508:5 | b [element 1, element 0] | provenance | | +| array_flow.rb:1508:9:1508:19 | call to transpose [element 1, element 1] | array_flow.rb:1508:5:1508:5 | b [element 1, element 1] | provenance | | +| array_flow.rb:1508:9:1508:19 | call to transpose [element 1, element 2] | array_flow.rb:1508:5:1508:5 | b [element 1, element 2] | provenance | | +| array_flow.rb:1512:10:1512:10 | b [element 1, element 0] | array_flow.rb:1512:10:1512:13 | ...[...] [element 0] | provenance | | +| array_flow.rb:1512:10:1512:13 | ...[...] [element 0] | array_flow.rb:1512:10:1512:16 | ...[...] | provenance | | +| array_flow.rb:1513:10:1513:10 | b [element 1, element 1] | array_flow.rb:1513:10:1513:13 | ...[...] [element 1] | provenance | | +| array_flow.rb:1513:10:1513:13 | ...[...] [element 1] | array_flow.rb:1513:10:1513:16 | ...[...] | provenance | | +| array_flow.rb:1514:10:1514:10 | b [element 1, element 2] | array_flow.rb:1514:10:1514:13 | ...[...] [element 2] | provenance | | +| array_flow.rb:1514:10:1514:13 | ...[...] [element 2] | array_flow.rb:1514:10:1514:16 | ...[...] | provenance | | +| array_flow.rb:1518:5:1518:5 | a [element 2] | array_flow.rb:1521:9:1521:9 | a [element 2] | provenance | | +| array_flow.rb:1518:16:1518:28 | call to source | array_flow.rb:1518:5:1518:5 | a [element 2] | provenance | | +| array_flow.rb:1519:5:1519:5 | b [element 1] | array_flow.rb:1521:17:1521:17 | b [element 1] | provenance | | +| array_flow.rb:1519:13:1519:25 | call to source | array_flow.rb:1519:5:1519:5 | b [element 1] | provenance | | +| array_flow.rb:1520:5:1520:5 | c [element 1] | array_flow.rb:1521:20:1521:20 | c [element 1] | provenance | | +| array_flow.rb:1520:13:1520:25 | call to source | array_flow.rb:1520:5:1520:5 | c [element 1] | provenance | | +| array_flow.rb:1521:5:1521:5 | d [element] | array_flow.rb:1522:10:1522:10 | d [element] | provenance | | +| array_flow.rb:1521:5:1521:5 | d [element] | array_flow.rb:1523:10:1523:10 | d [element] | provenance | | +| array_flow.rb:1521:5:1521:5 | d [element] | array_flow.rb:1524:10:1524:10 | d [element] | provenance | | +| array_flow.rb:1521:9:1521:9 | a [element 2] | array_flow.rb:1521:9:1521:21 | call to union [element] | provenance | | +| array_flow.rb:1521:9:1521:21 | call to union [element] | array_flow.rb:1521:5:1521:5 | d [element] | provenance | | +| array_flow.rb:1521:17:1521:17 | b [element 1] | array_flow.rb:1521:9:1521:21 | call to union [element] | provenance | | +| array_flow.rb:1521:20:1521:20 | c [element 1] | array_flow.rb:1521:9:1521:21 | call to union [element] | provenance | | +| array_flow.rb:1522:10:1522:10 | d [element] | array_flow.rb:1522:10:1522:13 | ...[...] | provenance | | +| array_flow.rb:1523:10:1523:10 | d [element] | array_flow.rb:1523:10:1523:13 | ...[...] | provenance | | +| array_flow.rb:1524:10:1524:10 | d [element] | array_flow.rb:1524:10:1524:13 | ...[...] | provenance | | +| array_flow.rb:1528:5:1528:5 | a [element 3] | array_flow.rb:1530:9:1530:9 | a [element 3] | provenance | | +| array_flow.rb:1528:5:1528:5 | a [element 3] | array_flow.rb:1534:9:1534:9 | a [element 3] | provenance | | +| array_flow.rb:1528:5:1528:5 | a [element 4] | array_flow.rb:1530:9:1530:9 | a [element 4] | provenance | | +| array_flow.rb:1528:5:1528:5 | a [element 4] | array_flow.rb:1534:9:1534:9 | a [element 4] | provenance | | +| array_flow.rb:1528:19:1528:31 | call to source | array_flow.rb:1528:5:1528:5 | a [element 3] | provenance | | +| array_flow.rb:1528:34:1528:46 | call to source | array_flow.rb:1528:5:1528:5 | a [element 4] | provenance | | +| array_flow.rb:1530:5:1530:5 | b [element] | array_flow.rb:1531:10:1531:10 | b [element] | provenance | | +| array_flow.rb:1530:5:1530:5 | b [element] | array_flow.rb:1532:10:1532:10 | b [element] | provenance | | +| array_flow.rb:1530:9:1530:9 | a [element 3] | array_flow.rb:1530:9:1530:14 | call to uniq [element] | provenance | | +| array_flow.rb:1530:9:1530:9 | a [element 4] | array_flow.rb:1530:9:1530:14 | call to uniq [element] | provenance | | +| array_flow.rb:1530:9:1530:14 | call to uniq [element] | array_flow.rb:1530:5:1530:5 | b [element] | provenance | | +| array_flow.rb:1531:10:1531:10 | b [element] | array_flow.rb:1531:10:1531:13 | ...[...] | provenance | | +| array_flow.rb:1532:10:1532:10 | b [element] | array_flow.rb:1532:10:1532:13 | ...[...] | provenance | | +| array_flow.rb:1534:5:1534:5 | c [element] | array_flow.rb:1538:10:1538:10 | c [element] | provenance | | +| array_flow.rb:1534:9:1534:9 | a [element 3] | array_flow.rb:1534:9:1537:7 | call to uniq [element] | provenance | | +| array_flow.rb:1534:9:1534:9 | a [element 3] | array_flow.rb:1534:20:1534:20 | x | provenance | | +| array_flow.rb:1534:9:1534:9 | a [element 4] | array_flow.rb:1534:9:1537:7 | call to uniq [element] | provenance | | +| array_flow.rb:1534:9:1534:9 | a [element 4] | array_flow.rb:1534:20:1534:20 | x | provenance | | +| array_flow.rb:1534:9:1537:7 | call to uniq [element] | array_flow.rb:1534:5:1534:5 | c [element] | provenance | | +| array_flow.rb:1534:20:1534:20 | x | array_flow.rb:1535:14:1535:14 | x | provenance | | +| array_flow.rb:1538:10:1538:10 | c [element] | array_flow.rb:1538:10:1538:13 | ...[...] | provenance | | +| array_flow.rb:1542:5:1542:5 | a [element 2] | array_flow.rb:1543:9:1543:9 | a [element 2] | provenance | | +| array_flow.rb:1542:5:1542:5 | a [element 3] | array_flow.rb:1543:9:1543:9 | a [element 3] | provenance | | +| array_flow.rb:1542:16:1542:28 | call to source | array_flow.rb:1542:5:1542:5 | a [element 2] | provenance | | +| array_flow.rb:1542:31:1542:43 | call to source | array_flow.rb:1542:5:1542:5 | a [element 3] | provenance | | +| array_flow.rb:1543:5:1543:5 | b [element] | array_flow.rb:1544:10:1544:10 | b [element] | provenance | | +| array_flow.rb:1543:5:1543:5 | b [element] | array_flow.rb:1545:10:1545:10 | b [element] | provenance | | +| array_flow.rb:1543:9:1543:9 | [post] a [element] | array_flow.rb:1546:10:1546:10 | a [element] | provenance | | +| array_flow.rb:1543:9:1543:9 | [post] a [element] | array_flow.rb:1547:10:1547:10 | a [element] | provenance | | +| array_flow.rb:1543:9:1543:9 | a [element 2] | array_flow.rb:1543:9:1543:9 | [post] a [element] | provenance | | +| array_flow.rb:1543:9:1543:9 | a [element 2] | array_flow.rb:1543:9:1543:15 | call to uniq! [element] | provenance | | +| array_flow.rb:1543:9:1543:9 | a [element 3] | array_flow.rb:1543:9:1543:9 | [post] a [element] | provenance | | +| array_flow.rb:1543:9:1543:9 | a [element 3] | array_flow.rb:1543:9:1543:15 | call to uniq! [element] | provenance | | +| array_flow.rb:1543:9:1543:15 | call to uniq! [element] | array_flow.rb:1543:5:1543:5 | b [element] | provenance | | +| array_flow.rb:1544:10:1544:10 | b [element] | array_flow.rb:1544:10:1544:13 | ...[...] | provenance | | +| array_flow.rb:1545:10:1545:10 | b [element] | array_flow.rb:1545:10:1545:13 | ...[...] | provenance | | +| array_flow.rb:1546:10:1546:10 | a [element] | array_flow.rb:1546:10:1546:13 | ...[...] | provenance | | +| array_flow.rb:1547:10:1547:10 | a [element] | array_flow.rb:1547:10:1547:13 | ...[...] | provenance | | +| array_flow.rb:1549:5:1549:5 | a [element 2] | array_flow.rb:1550:9:1550:9 | a [element 2] | provenance | | +| array_flow.rb:1549:5:1549:5 | a [element 3] | array_flow.rb:1550:9:1550:9 | a [element 3] | provenance | | +| array_flow.rb:1549:16:1549:28 | call to source | array_flow.rb:1549:5:1549:5 | a [element 2] | provenance | | +| array_flow.rb:1549:31:1549:43 | call to source | array_flow.rb:1549:5:1549:5 | a [element 3] | provenance | | +| array_flow.rb:1550:5:1550:5 | b [element] | array_flow.rb:1554:10:1554:10 | b [element] | provenance | | +| array_flow.rb:1550:5:1550:5 | b [element] | array_flow.rb:1555:10:1555:10 | b [element] | provenance | | +| array_flow.rb:1550:9:1550:9 | [post] a [element] | array_flow.rb:1556:10:1556:10 | a [element] | provenance | | +| array_flow.rb:1550:9:1550:9 | [post] a [element] | array_flow.rb:1557:10:1557:10 | a [element] | provenance | | +| array_flow.rb:1550:9:1550:9 | a [element 2] | array_flow.rb:1550:9:1550:9 | [post] a [element] | provenance | | +| array_flow.rb:1550:9:1550:9 | a [element 2] | array_flow.rb:1550:9:1553:7 | call to uniq! [element] | provenance | | +| array_flow.rb:1550:9:1550:9 | a [element 2] | array_flow.rb:1550:21:1550:21 | x | provenance | | +| array_flow.rb:1550:9:1550:9 | a [element 3] | array_flow.rb:1550:9:1550:9 | [post] a [element] | provenance | | +| array_flow.rb:1550:9:1550:9 | a [element 3] | array_flow.rb:1550:9:1553:7 | call to uniq! [element] | provenance | | +| array_flow.rb:1550:9:1550:9 | a [element 3] | array_flow.rb:1550:21:1550:21 | x | provenance | | +| array_flow.rb:1550:9:1553:7 | call to uniq! [element] | array_flow.rb:1550:5:1550:5 | b [element] | provenance | | +| array_flow.rb:1550:21:1550:21 | x | array_flow.rb:1551:14:1551:14 | x | provenance | | +| array_flow.rb:1554:10:1554:10 | b [element] | array_flow.rb:1554:10:1554:13 | ...[...] | provenance | | +| array_flow.rb:1555:10:1555:10 | b [element] | array_flow.rb:1555:10:1555:13 | ...[...] | provenance | | +| array_flow.rb:1556:10:1556:10 | a [element] | array_flow.rb:1556:10:1556:13 | ...[...] | provenance | | +| array_flow.rb:1557:10:1557:10 | a [element] | array_flow.rb:1557:10:1557:13 | ...[...] | provenance | | +| array_flow.rb:1561:5:1561:5 | a [element 2] | array_flow.rb:1562:5:1562:5 | a [element 2] | provenance | | +| array_flow.rb:1561:16:1561:28 | call to source | array_flow.rb:1561:5:1561:5 | a [element 2] | provenance | | +| array_flow.rb:1562:5:1562:5 | [post] a [element 2] | array_flow.rb:1565:10:1565:10 | a [element 2] | provenance | | +| array_flow.rb:1562:5:1562:5 | [post] a [element 5] | array_flow.rb:1568:10:1568:10 | a [element 5] | provenance | | +| array_flow.rb:1562:5:1562:5 | a [element 2] | array_flow.rb:1562:5:1562:5 | [post] a [element 5] | provenance | | +| array_flow.rb:1562:21:1562:33 | call to source | array_flow.rb:1562:5:1562:5 | [post] a [element 2] | provenance | | +| array_flow.rb:1565:10:1565:10 | a [element 2] | array_flow.rb:1565:10:1565:13 | ...[...] | provenance | | +| array_flow.rb:1568:10:1568:10 | a [element 5] | array_flow.rb:1568:10:1568:13 | ...[...] | provenance | | +| array_flow.rb:1572:5:1572:5 | a [element 1] | array_flow.rb:1574:9:1574:9 | a [element 1] | provenance | | +| array_flow.rb:1572:5:1572:5 | a [element 1] | array_flow.rb:1580:9:1580:9 | a [element 1] | provenance | | +| array_flow.rb:1572:5:1572:5 | a [element 1] | array_flow.rb:1584:9:1584:9 | a [element 1] | provenance | | +| array_flow.rb:1572:5:1572:5 | a [element 1] | array_flow.rb:1588:9:1588:9 | a [element 1] | provenance | | +| array_flow.rb:1572:5:1572:5 | a [element 3] | array_flow.rb:1580:9:1580:9 | a [element 3] | provenance | | +| array_flow.rb:1572:5:1572:5 | a [element 3] | array_flow.rb:1584:9:1584:9 | a [element 3] | provenance | | +| array_flow.rb:1572:5:1572:5 | a [element 3] | array_flow.rb:1588:9:1588:9 | a [element 3] | provenance | | +| array_flow.rb:1572:13:1572:25 | call to source | array_flow.rb:1572:5:1572:5 | a [element 1] | provenance | | +| array_flow.rb:1572:31:1572:43 | call to source | array_flow.rb:1572:5:1572:5 | a [element 3] | provenance | | +| array_flow.rb:1574:5:1574:5 | b [element 1] | array_flow.rb:1576:10:1576:10 | b [element 1] | provenance | | +| array_flow.rb:1574:5:1574:5 | b [element 3] | array_flow.rb:1578:10:1578:10 | b [element 3] | provenance | | +| array_flow.rb:1574:9:1574:9 | a [element 1] | array_flow.rb:1574:9:1574:31 | call to values_at [element 1] | provenance | | +| array_flow.rb:1574:9:1574:9 | a [element 1] | array_flow.rb:1574:9:1574:31 | call to values_at [element 3] | provenance | | +| array_flow.rb:1574:9:1574:31 | call to values_at [element 1] | array_flow.rb:1574:5:1574:5 | b [element 1] | provenance | | +| array_flow.rb:1574:9:1574:31 | call to values_at [element 3] | array_flow.rb:1574:5:1574:5 | b [element 3] | provenance | | +| array_flow.rb:1576:10:1576:10 | b [element 1] | array_flow.rb:1576:10:1576:13 | ...[...] | provenance | | +| array_flow.rb:1578:10:1578:10 | b [element 3] | array_flow.rb:1578:10:1578:13 | ...[...] | provenance | | +| array_flow.rb:1580:5:1580:5 | b [element] | array_flow.rb:1581:10:1581:10 | b [element] | provenance | | +| array_flow.rb:1580:5:1580:5 | b [element] | array_flow.rb:1582:10:1582:10 | b [element] | provenance | | +| array_flow.rb:1580:9:1580:9 | a [element 1] | array_flow.rb:1580:9:1580:25 | call to values_at [element] | provenance | | +| array_flow.rb:1580:9:1580:9 | a [element 3] | array_flow.rb:1580:9:1580:25 | call to values_at [element] | provenance | | +| array_flow.rb:1580:9:1580:25 | call to values_at [element] | array_flow.rb:1580:5:1580:5 | b [element] | provenance | | +| array_flow.rb:1581:10:1581:10 | b [element] | array_flow.rb:1581:10:1581:13 | ...[...] | provenance | | +| array_flow.rb:1582:10:1582:10 | b [element] | array_flow.rb:1582:10:1582:13 | ...[...] | provenance | | +| array_flow.rb:1584:5:1584:5 | b [element] | array_flow.rb:1585:10:1585:10 | b [element] | provenance | | +| array_flow.rb:1584:5:1584:5 | b [element] | array_flow.rb:1586:10:1586:10 | b [element] | provenance | | +| array_flow.rb:1584:9:1584:9 | a [element 1] | array_flow.rb:1584:9:1584:26 | call to values_at [element] | provenance | | +| array_flow.rb:1584:9:1584:9 | a [element 3] | array_flow.rb:1584:9:1584:26 | call to values_at [element] | provenance | | +| array_flow.rb:1584:9:1584:26 | call to values_at [element] | array_flow.rb:1584:5:1584:5 | b [element] | provenance | | +| array_flow.rb:1585:10:1585:10 | b [element] | array_flow.rb:1585:10:1585:13 | ...[...] | provenance | | +| array_flow.rb:1586:10:1586:10 | b [element] | array_flow.rb:1586:10:1586:13 | ...[...] | provenance | | +| array_flow.rb:1588:5:1588:5 | b [element 1] | array_flow.rb:1590:10:1590:10 | b [element 1] | provenance | | +| array_flow.rb:1588:5:1588:5 | b [element] | array_flow.rb:1589:10:1589:10 | b [element] | provenance | | +| array_flow.rb:1588:5:1588:5 | b [element] | array_flow.rb:1590:10:1590:10 | b [element] | provenance | | +| array_flow.rb:1588:5:1588:5 | b [element] | array_flow.rb:1591:10:1591:10 | b [element] | provenance | | +| array_flow.rb:1588:5:1588:5 | b [element] | array_flow.rb:1592:10:1592:10 | b [element] | provenance | | +| array_flow.rb:1588:9:1588:9 | a [element 1] | array_flow.rb:1588:9:1588:28 | call to values_at [element] | provenance | | +| array_flow.rb:1588:9:1588:9 | a [element 3] | array_flow.rb:1588:9:1588:28 | call to values_at [element 1] | provenance | | +| array_flow.rb:1588:9:1588:9 | a [element 3] | array_flow.rb:1588:9:1588:28 | call to values_at [element] | provenance | | +| array_flow.rb:1588:9:1588:28 | call to values_at [element 1] | array_flow.rb:1588:5:1588:5 | b [element 1] | provenance | | +| array_flow.rb:1588:9:1588:28 | call to values_at [element] | array_flow.rb:1588:5:1588:5 | b [element] | provenance | | +| array_flow.rb:1589:10:1589:10 | b [element] | array_flow.rb:1589:10:1589:13 | ...[...] | provenance | | +| array_flow.rb:1590:10:1590:10 | b [element 1] | array_flow.rb:1590:10:1590:13 | ...[...] | provenance | | +| array_flow.rb:1590:10:1590:10 | b [element] | array_flow.rb:1590:10:1590:13 | ...[...] | provenance | | +| array_flow.rb:1591:10:1591:10 | b [element] | array_flow.rb:1591:10:1591:13 | ...[...] | provenance | | +| array_flow.rb:1592:10:1592:10 | b [element] | array_flow.rb:1592:10:1592:13 | ...[...] | provenance | | +| array_flow.rb:1596:5:1596:5 | a [element 2] | array_flow.rb:1599:9:1599:9 | a [element 2] | provenance | | +| array_flow.rb:1596:5:1596:5 | a [element 2] | array_flow.rb:1604:5:1604:5 | a [element 2] | provenance | | +| array_flow.rb:1596:16:1596:28 | call to source | array_flow.rb:1596:5:1596:5 | a [element 2] | provenance | | +| array_flow.rb:1597:5:1597:5 | b [element 1] | array_flow.rb:1599:15:1599:15 | b [element 1] | provenance | | +| array_flow.rb:1597:5:1597:5 | b [element 1] | array_flow.rb:1604:11:1604:11 | b [element 1] | provenance | | +| array_flow.rb:1597:13:1597:25 | call to source | array_flow.rb:1597:5:1597:5 | b [element 1] | provenance | | +| array_flow.rb:1598:5:1598:5 | c [element 0] | array_flow.rb:1599:18:1599:18 | c [element 0] | provenance | | +| array_flow.rb:1598:5:1598:5 | c [element 0] | array_flow.rb:1604:14:1604:14 | c [element 0] | provenance | | +| array_flow.rb:1598:10:1598:22 | call to source | array_flow.rb:1598:5:1598:5 | c [element 0] | provenance | | +| array_flow.rb:1599:5:1599:5 | d [element 0, element 2] | array_flow.rb:1601:10:1601:10 | d [element 0, element 2] | provenance | | +| array_flow.rb:1599:5:1599:5 | d [element 1, element 1] | array_flow.rb:1602:10:1602:10 | d [element 1, element 1] | provenance | | +| array_flow.rb:1599:5:1599:5 | d [element 2, element 0] | array_flow.rb:1603:10:1603:10 | d [element 2, element 0] | provenance | | +| array_flow.rb:1599:9:1599:9 | a [element 2] | array_flow.rb:1599:9:1599:19 | call to zip [element 2, element 0] | provenance | | +| array_flow.rb:1599:9:1599:19 | call to zip [element 0, element 2] | array_flow.rb:1599:5:1599:5 | d [element 0, element 2] | provenance | | +| array_flow.rb:1599:9:1599:19 | call to zip [element 1, element 1] | array_flow.rb:1599:5:1599:5 | d [element 1, element 1] | provenance | | +| array_flow.rb:1599:9:1599:19 | call to zip [element 2, element 0] | array_flow.rb:1599:5:1599:5 | d [element 2, element 0] | provenance | | +| array_flow.rb:1599:15:1599:15 | b [element 1] | array_flow.rb:1599:9:1599:19 | call to zip [element 1, element 1] | provenance | | +| array_flow.rb:1599:18:1599:18 | c [element 0] | array_flow.rb:1599:9:1599:19 | call to zip [element 0, element 2] | provenance | | +| array_flow.rb:1601:10:1601:10 | d [element 0, element 2] | array_flow.rb:1601:10:1601:13 | ...[...] [element 2] | provenance | | +| array_flow.rb:1601:10:1601:13 | ...[...] [element 2] | array_flow.rb:1601:10:1601:16 | ...[...] | provenance | | +| array_flow.rb:1602:10:1602:10 | d [element 1, element 1] | array_flow.rb:1602:10:1602:13 | ...[...] [element 1] | provenance | | +| array_flow.rb:1602:10:1602:13 | ...[...] [element 1] | array_flow.rb:1602:10:1602:16 | ...[...] | provenance | | +| array_flow.rb:1603:10:1603:10 | d [element 2, element 0] | array_flow.rb:1603:10:1603:13 | ...[...] [element 0] | provenance | | +| array_flow.rb:1603:10:1603:13 | ...[...] [element 0] | array_flow.rb:1603:10:1603:16 | ...[...] | provenance | | +| array_flow.rb:1604:5:1604:5 | a [element 2] | array_flow.rb:1604:21:1604:21 | x [element 0] | provenance | | +| array_flow.rb:1604:11:1604:11 | b [element 1] | array_flow.rb:1604:21:1604:21 | x [element 1] | provenance | | +| array_flow.rb:1604:14:1604:14 | c [element 0] | array_flow.rb:1604:21:1604:21 | x [element 2] | provenance | | +| array_flow.rb:1604:21:1604:21 | x [element 0] | array_flow.rb:1605:14:1605:14 | x [element 0] | provenance | | +| array_flow.rb:1604:21:1604:21 | x [element 1] | array_flow.rb:1606:14:1606:14 | x [element 1] | provenance | | +| array_flow.rb:1604:21:1604:21 | x [element 2] | array_flow.rb:1607:14:1607:14 | x [element 2] | provenance | | +| array_flow.rb:1605:14:1605:14 | x [element 0] | array_flow.rb:1605:14:1605:17 | ...[...] | provenance | | +| array_flow.rb:1606:14:1606:14 | x [element 1] | array_flow.rb:1606:14:1606:17 | ...[...] | provenance | | +| array_flow.rb:1607:14:1607:14 | x [element 2] | array_flow.rb:1607:14:1607:17 | ...[...] | provenance | | +| array_flow.rb:1612:5:1612:5 | a [element 2] | array_flow.rb:1614:9:1614:9 | a [element 2] | provenance | | +| array_flow.rb:1612:16:1612:28 | call to source | array_flow.rb:1612:5:1612:5 | a [element 2] | provenance | | +| array_flow.rb:1613:5:1613:5 | b [element 1] | array_flow.rb:1614:13:1614:13 | b [element 1] | provenance | | +| array_flow.rb:1613:13:1613:25 | call to source | array_flow.rb:1613:5:1613:5 | b [element 1] | provenance | | +| array_flow.rb:1614:5:1614:5 | c [element] | array_flow.rb:1615:10:1615:10 | c [element] | provenance | | +| array_flow.rb:1614:5:1614:5 | c [element] | array_flow.rb:1616:10:1616:10 | c [element] | provenance | | +| array_flow.rb:1614:5:1614:5 | c [element] | array_flow.rb:1617:10:1617:10 | c [element] | provenance | | +| array_flow.rb:1614:9:1614:9 | a [element 2] | array_flow.rb:1614:9:1614:13 | ... \| ... [element] | provenance | | +| array_flow.rb:1614:9:1614:13 | ... \| ... [element] | array_flow.rb:1614:5:1614:5 | c [element] | provenance | | +| array_flow.rb:1614:13:1614:13 | b [element 1] | array_flow.rb:1614:9:1614:13 | ... \| ... [element] | provenance | | +| array_flow.rb:1615:10:1615:10 | c [element] | array_flow.rb:1615:10:1615:13 | ...[...] | provenance | | +| array_flow.rb:1616:10:1616:10 | c [element] | array_flow.rb:1616:10:1616:13 | ...[...] | provenance | | +| array_flow.rb:1617:10:1617:10 | c [element] | array_flow.rb:1617:10:1617:13 | ...[...] | provenance | | +| array_flow.rb:1622:5:1622:5 | [post] a [element, element 0] | array_flow.rb:1623:10:1623:10 | a [element, element 0] | provenance | | +| array_flow.rb:1622:5:1622:5 | [post] a [element, element 0] | array_flow.rb:1626:10:1626:10 | a [element, element 0] | provenance | | +| array_flow.rb:1622:5:1622:5 | [post] a [element, element 0] | array_flow.rb:1627:10:1627:10 | a [element, element 0] | provenance | | +| array_flow.rb:1622:5:1622:8 | [post] ...[...] [element 0] | array_flow.rb:1622:5:1622:5 | [post] a [element, element 0] | provenance | | +| array_flow.rb:1622:15:1622:27 | call to source | array_flow.rb:1622:5:1622:8 | [post] ...[...] [element 0] | provenance | | +| array_flow.rb:1623:10:1623:10 | a [element, element 0] | array_flow.rb:1623:10:1623:13 | ...[...] [element 0] | provenance | | +| array_flow.rb:1623:10:1623:13 | ...[...] [element 0] | array_flow.rb:1623:10:1623:16 | ...[...] | provenance | | +| array_flow.rb:1625:5:1625:5 | [post] a [element 1, element 0] | array_flow.rb:1626:10:1626:10 | a [element 1, element 0] | provenance | | +| array_flow.rb:1625:5:1625:8 | [post] ...[...] [element 0] | array_flow.rb:1625:5:1625:5 | [post] a [element 1, element 0] | provenance | | +| array_flow.rb:1625:15:1625:27 | call to source | array_flow.rb:1625:5:1625:8 | [post] ...[...] [element 0] | provenance | | +| array_flow.rb:1626:10:1626:10 | a [element 1, element 0] | array_flow.rb:1626:10:1626:13 | ...[...] [element 0] | provenance | | +| array_flow.rb:1626:10:1626:10 | a [element, element 0] | array_flow.rb:1626:10:1626:13 | ...[...] [element 0] | provenance | | +| array_flow.rb:1626:10:1626:13 | ...[...] [element 0] | array_flow.rb:1626:10:1626:16 | ...[...] | provenance | | +| array_flow.rb:1627:10:1627:10 | a [element, element 0] | array_flow.rb:1627:10:1627:13 | ...[...] [element 0] | provenance | | +| array_flow.rb:1627:10:1627:13 | ...[...] [element 0] | array_flow.rb:1627:10:1627:16 | ...[...] | provenance | | +| array_flow.rb:1632:5:1632:5 | [post] a [element 0] | array_flow.rb:1641:10:1641:10 | a [element 0] | provenance | | +| array_flow.rb:1632:5:1632:5 | [post] a [element 0] | array_flow.rb:1643:10:1643:10 | a [element 0] | provenance | | +| array_flow.rb:1632:12:1632:24 | call to source | array_flow.rb:1632:5:1632:5 | [post] a [element 0] | provenance | | +| array_flow.rb:1634:5:1634:5 | [post] a [element] | array_flow.rb:1639:10:1639:10 | a [element] | provenance | | +| array_flow.rb:1634:5:1634:5 | [post] a [element] | array_flow.rb:1641:10:1641:10 | a [element] | provenance | | +| array_flow.rb:1634:5:1634:5 | [post] a [element] | array_flow.rb:1643:10:1643:10 | a [element] | provenance | | +| array_flow.rb:1634:16:1634:28 | call to source | array_flow.rb:1634:5:1634:5 | [post] a [element] | provenance | | +| array_flow.rb:1636:5:1636:5 | [post] a [element] | array_flow.rb:1639:10:1639:10 | a [element] | provenance | | +| array_flow.rb:1636:5:1636:5 | [post] a [element] | array_flow.rb:1641:10:1641:10 | a [element] | provenance | | +| array_flow.rb:1636:5:1636:5 | [post] a [element] | array_flow.rb:1643:10:1643:10 | a [element] | provenance | | +| array_flow.rb:1636:14:1636:26 | call to source | array_flow.rb:1636:5:1636:5 | [post] a [element] | provenance | | +| array_flow.rb:1638:5:1638:5 | [post] a [element] | array_flow.rb:1639:10:1639:10 | a [element] | provenance | | +| array_flow.rb:1638:5:1638:5 | [post] a [element] | array_flow.rb:1641:10:1641:10 | a [element] | provenance | | +| array_flow.rb:1638:5:1638:5 | [post] a [element] | array_flow.rb:1643:10:1643:10 | a [element] | provenance | | +| array_flow.rb:1638:16:1638:28 | call to source | array_flow.rb:1638:5:1638:5 | [post] a [element] | provenance | | +| array_flow.rb:1639:10:1639:10 | a [element] | array_flow.rb:1639:10:1639:13 | ...[...] | provenance | | +| array_flow.rb:1641:10:1641:10 | a [element 0] | array_flow.rb:1641:10:1641:17 | ...[...] | provenance | | +| array_flow.rb:1641:10:1641:10 | a [element] | array_flow.rb:1641:10:1641:17 | ...[...] | provenance | | +| array_flow.rb:1643:10:1643:10 | a [element 0] | array_flow.rb:1643:10:1643:15 | ...[...] | provenance | | +| array_flow.rb:1643:10:1643:10 | a [element] | array_flow.rb:1643:10:1643:15 | ...[...] | provenance | | +| array_flow.rb:1647:5:1647:5 | a [element 1] | array_flow.rb:1649:10:1649:10 | a [element 1] | provenance | | +| array_flow.rb:1647:5:1647:5 | a [element 1] | array_flow.rb:1651:10:1651:10 | a [element 1] | provenance | | +| array_flow.rb:1647:9:1647:32 | ...[...] [element 1] | array_flow.rb:1647:5:1647:5 | a [element 1] | provenance | | +| array_flow.rb:1647:18:1647:28 | call to source | array_flow.rb:1647:9:1647:32 | ...[...] [element 1] | provenance | | +| array_flow.rb:1649:10:1649:10 | a [element 1] | array_flow.rb:1649:10:1649:13 | ...[...] | provenance | | +| array_flow.rb:1651:10:1651:10 | a [element 1] | array_flow.rb:1651:10:1651:13 | ...[...] | provenance | | +| array_flow.rb:1668:9:1668:10 | a2 [element 1] | array_flow.rb:1670:14:1670:15 | a2 [element 1] | provenance | | +| array_flow.rb:1668:9:1668:10 | a2 [element 1] | array_flow.rb:1672:14:1672:15 | a2 [element 1] | provenance | | +| array_flow.rb:1668:14:1668:41 | ...[...] [element 1] | array_flow.rb:1668:9:1668:10 | a2 [element 1] | provenance | | +| array_flow.rb:1668:25:1668:37 | call to source | array_flow.rb:1668:14:1668:41 | ...[...] [element 1] | provenance | | +| array_flow.rb:1670:14:1670:15 | a2 [element 1] | array_flow.rb:1670:14:1670:18 | ...[...] | provenance | | +| array_flow.rb:1672:14:1672:15 | a2 [element 1] | array_flow.rb:1672:14:1672:18 | ...[...] | provenance | | nodes | array_flow.rb:2:5:2:5 | a [element 0] | semmle.label | a [element 0] | | array_flow.rb:2:9:2:20 | * ... [element 0] | semmle.label | * ... [element 0] | diff --git a/ruby/ql/test/library-tests/dataflow/call-sensitivity/call-sensitivity.expected b/ruby/ql/test/library-tests/dataflow/call-sensitivity/call-sensitivity.expected index 98330dcaa236..7e55fbf8995b 100644 --- a/ruby/ql/test/library-tests/dataflow/call-sensitivity/call-sensitivity.expected +++ b/ruby/ql/test/library-tests/dataflow/call-sensitivity/call-sensitivity.expected @@ -1,102 +1,102 @@ testFailures edges -| call_sensitivity.rb:9:7:9:13 | call to taint | call_sensitivity.rb:9:6:9:14 | ( ... ) | -| call_sensitivity.rb:11:13:11:13 | x | call_sensitivity.rb:12:11:12:11 | x | -| call_sensitivity.rb:12:11:12:11 | x | call_sensitivity.rb:19:22:19:22 | x | -| call_sensitivity.rb:19:9:19:17 | ( ... ) | call_sensitivity.rb:11:13:11:13 | x | -| call_sensitivity.rb:19:10:19:16 | call to taint | call_sensitivity.rb:19:9:19:17 | ( ... ) | -| call_sensitivity.rb:19:22:19:22 | x | call_sensitivity.rb:19:30:19:30 | x | -| call_sensitivity.rb:21:27:21:27 | x | call_sensitivity.rb:22:17:22:17 | x | -| call_sensitivity.rb:21:27:21:27 | x | call_sensitivity.rb:22:17:22:17 | x | -| call_sensitivity.rb:21:27:21:27 | x | call_sensitivity.rb:22:17:22:17 | x | -| call_sensitivity.rb:22:17:22:17 | x | call_sensitivity.rb:31:17:31:17 | x | -| call_sensitivity.rb:22:17:22:17 | x | call_sensitivity.rb:40:23:40:23 | x | -| call_sensitivity.rb:22:17:22:17 | x | call_sensitivity.rb:43:24:43:24 | x | -| call_sensitivity.rb:31:17:31:17 | x | call_sensitivity.rb:31:27:31:27 | x | -| call_sensitivity.rb:32:25:32:32 | call to taint | call_sensitivity.rb:21:27:21:27 | x | -| call_sensitivity.rb:40:23:40:23 | x | call_sensitivity.rb:40:31:40:31 | x | -| call_sensitivity.rb:41:25:41:32 | call to taint | call_sensitivity.rb:21:27:21:27 | x | -| call_sensitivity.rb:43:24:43:24 | x | call_sensitivity.rb:43:32:43:32 | x | -| call_sensitivity.rb:44:26:44:33 | call to taint | call_sensitivity.rb:21:27:21:27 | x | -| call_sensitivity.rb:50:15:50:15 | x | call_sensitivity.rb:51:10:51:10 | x | -| call_sensitivity.rb:54:15:54:15 | x | call_sensitivity.rb:55:13:55:13 | x | -| call_sensitivity.rb:54:15:54:15 | x | call_sensitivity.rb:55:13:55:13 | x | -| call_sensitivity.rb:55:13:55:13 | x | call_sensitivity.rb:50:15:50:15 | x | -| call_sensitivity.rb:55:13:55:13 | x | call_sensitivity.rb:50:15:50:15 | x | -| call_sensitivity.rb:58:20:58:20 | x | call_sensitivity.rb:59:18:59:18 | x | -| call_sensitivity.rb:59:18:59:18 | x | call_sensitivity.rb:54:15:54:15 | x | -| call_sensitivity.rb:62:18:62:18 | y | call_sensitivity.rb:63:15:63:15 | y | -| call_sensitivity.rb:62:18:62:18 | y | call_sensitivity.rb:63:15:63:15 | y | -| call_sensitivity.rb:63:15:63:15 | y | call_sensitivity.rb:50:15:50:15 | x | -| call_sensitivity.rb:63:15:63:15 | y | call_sensitivity.rb:50:15:50:15 | x | -| call_sensitivity.rb:66:20:66:20 | x | call_sensitivity.rb:67:24:67:24 | x | -| call_sensitivity.rb:67:24:67:24 | x | call_sensitivity.rb:62:18:62:18 | y | -| call_sensitivity.rb:70:30:70:30 | x | call_sensitivity.rb:71:10:71:10 | x | -| call_sensitivity.rb:74:18:74:18 | y | call_sensitivity.rb:75:20:77:7 | do ... end [captured y] | -| call_sensitivity.rb:75:20:77:7 | do ... end [captured y] | call_sensitivity.rb:76:17:76:17 | y | -| call_sensitivity.rb:76:17:76:17 | y | call_sensitivity.rb:50:15:50:15 | x | -| call_sensitivity.rb:80:15:80:15 | x | call_sensitivity.rb:81:18:81:18 | x | -| call_sensitivity.rb:81:18:81:18 | x | call_sensitivity.rb:50:15:50:15 | x | -| call_sensitivity.rb:85:18:85:27 | ( ... ) | call_sensitivity.rb:80:15:80:15 | x | -| call_sensitivity.rb:85:19:85:26 | call to taint | call_sensitivity.rb:85:18:85:27 | ( ... ) | -| call_sensitivity.rb:88:30:88:30 | x | call_sensitivity.rb:89:23:89:23 | x | -| call_sensitivity.rb:88:30:88:30 | x | call_sensitivity.rb:89:23:89:23 | x | -| call_sensitivity.rb:89:23:89:23 | x | call_sensitivity.rb:70:30:70:30 | x | -| call_sensitivity.rb:89:23:89:23 | x | call_sensitivity.rb:70:30:70:30 | x | -| call_sensitivity.rb:92:35:92:35 | x | call_sensitivity.rb:93:28:93:28 | x | -| call_sensitivity.rb:93:28:93:28 | x | call_sensitivity.rb:88:30:88:30 | x | -| call_sensitivity.rb:96:33:96:33 | y | call_sensitivity.rb:97:25:97:25 | y | -| call_sensitivity.rb:96:33:96:33 | y | call_sensitivity.rb:97:25:97:25 | y | -| call_sensitivity.rb:97:25:97:25 | y | call_sensitivity.rb:70:30:70:30 | x | -| call_sensitivity.rb:97:25:97:25 | y | call_sensitivity.rb:70:30:70:30 | x | -| call_sensitivity.rb:100:35:100:35 | x | call_sensitivity.rb:101:34:101:34 | x | -| call_sensitivity.rb:101:34:101:34 | x | call_sensitivity.rb:96:33:96:33 | y | -| call_sensitivity.rb:104:18:104:18 | x | call_sensitivity.rb:105:10:105:10 | x | -| call_sensitivity.rb:104:18:104:18 | x | call_sensitivity.rb:105:10:105:10 | x | -| call_sensitivity.rb:104:18:104:18 | x | call_sensitivity.rb:105:10:105:10 | x | -| call_sensitivity.rb:104:18:104:18 | x | call_sensitivity.rb:105:10:105:10 | x | -| call_sensitivity.rb:104:18:104:18 | x | call_sensitivity.rb:106:13:106:13 | x | -| call_sensitivity.rb:104:18:104:18 | x | call_sensitivity.rb:106:13:106:13 | x | -| call_sensitivity.rb:104:18:104:18 | x | call_sensitivity.rb:106:13:106:13 | x | -| call_sensitivity.rb:106:13:106:13 | x | call_sensitivity.rb:50:15:50:15 | x | -| call_sensitivity.rb:106:13:106:13 | x | call_sensitivity.rb:50:15:50:15 | x | -| call_sensitivity.rb:106:13:106:13 | x | call_sensitivity.rb:50:15:50:15 | x | -| call_sensitivity.rb:109:21:109:21 | x | call_sensitivity.rb:110:9:110:9 | x | -| call_sensitivity.rb:110:9:110:9 | x | call_sensitivity.rb:104:18:104:18 | x | -| call_sensitivity.rb:114:11:114:20 | ( ... ) | call_sensitivity.rb:104:18:104:18 | x | -| call_sensitivity.rb:114:12:114:19 | call to taint | call_sensitivity.rb:114:11:114:20 | ( ... ) | -| call_sensitivity.rb:115:11:115:18 | call to taint | call_sensitivity.rb:54:15:54:15 | x | -| call_sensitivity.rb:116:16:116:23 | call to taint | call_sensitivity.rb:58:20:58:20 | x | -| call_sensitivity.rb:117:14:117:22 | call to taint | call_sensitivity.rb:62:18:62:18 | y | -| call_sensitivity.rb:118:16:118:24 | call to taint | call_sensitivity.rb:66:20:66:20 | x | -| call_sensitivity.rb:119:14:119:22 | call to taint | call_sensitivity.rb:74:18:74:18 | y | -| call_sensitivity.rb:121:21:121:28 | call to taint | call_sensitivity.rb:88:30:88:30 | x | -| call_sensitivity.rb:122:26:122:33 | call to taint | call_sensitivity.rb:92:35:92:35 | x | -| call_sensitivity.rb:123:24:123:32 | call to taint | call_sensitivity.rb:96:33:96:33 | y | -| call_sensitivity.rb:124:26:124:33 | call to taint | call_sensitivity.rb:100:35:100:35 | x | -| call_sensitivity.rb:125:12:125:19 | call to taint | call_sensitivity.rb:109:21:109:21 | x | -| call_sensitivity.rb:166:14:166:22 | call to taint | call_sensitivity.rb:74:18:74:18 | y | -| call_sensitivity.rb:174:19:174:19 | x | call_sensitivity.rb:175:12:175:12 | x | -| call_sensitivity.rb:175:12:175:12 | x | call_sensitivity.rb:104:18:104:18 | x | -| call_sensitivity.rb:178:11:178:19 | call to taint | call_sensitivity.rb:174:19:174:19 | x | -| call_sensitivity.rb:187:11:187:20 | ( ... ) | call_sensitivity.rb:104:18:104:18 | x | -| call_sensitivity.rb:187:12:187:19 | call to taint | call_sensitivity.rb:187:11:187:20 | ( ... ) | -| call_sensitivity.rb:189:19:189:19 | x | call_sensitivity.rb:190:9:190:9 | x | -| call_sensitivity.rb:190:9:190:9 | x | call_sensitivity.rb:194:23:194:23 | x | -| call_sensitivity.rb:193:19:193:19 | x | call_sensitivity.rb:194:17:194:17 | x | -| call_sensitivity.rb:194:17:194:17 | x | call_sensitivity.rb:189:19:189:19 | x | -| call_sensitivity.rb:194:23:194:23 | x | call_sensitivity.rb:195:11:195:11 | x | -| call_sensitivity.rb:195:11:195:11 | x | call_sensitivity.rb:199:30:199:30 | x | -| call_sensitivity.rb:195:11:195:11 | x | call_sensitivity.rb:203:26:203:26 | x | -| call_sensitivity.rb:199:15:199:24 | ( ... ) | call_sensitivity.rb:193:19:193:19 | x | -| call_sensitivity.rb:199:16:199:23 | call to taint | call_sensitivity.rb:199:15:199:24 | ( ... ) | -| call_sensitivity.rb:199:30:199:30 | x | call_sensitivity.rb:200:8:200:8 | x | -| call_sensitivity.rb:203:26:203:26 | x | call_sensitivity.rb:204:8:204:8 | x | -| call_sensitivity.rb:207:16:207:16 | y | call_sensitivity.rb:209:9:209:9 | y | -| call_sensitivity.rb:209:9:209:9 | y | call_sensitivity.rb:214:9:214:9 | x | -| call_sensitivity.rb:214:9:214:9 | x | call_sensitivity.rb:215:10:215:10 | x | -| call_sensitivity.rb:222:15:222:24 | ( ... ) | call_sensitivity.rb:207:16:207:16 | y | -| call_sensitivity.rb:222:16:222:23 | call to taint | call_sensitivity.rb:222:15:222:24 | ( ... ) | +| call_sensitivity.rb:9:7:9:13 | call to taint | call_sensitivity.rb:9:6:9:14 | ( ... ) | provenance | | +| call_sensitivity.rb:11:13:11:13 | x | call_sensitivity.rb:12:11:12:11 | x | provenance | | +| call_sensitivity.rb:12:11:12:11 | x | call_sensitivity.rb:19:22:19:22 | x | provenance | | +| call_sensitivity.rb:19:9:19:17 | ( ... ) | call_sensitivity.rb:11:13:11:13 | x | provenance | | +| call_sensitivity.rb:19:10:19:16 | call to taint | call_sensitivity.rb:19:9:19:17 | ( ... ) | provenance | | +| call_sensitivity.rb:19:22:19:22 | x | call_sensitivity.rb:19:30:19:30 | x | provenance | | +| call_sensitivity.rb:21:27:21:27 | x | call_sensitivity.rb:22:17:22:17 | x | provenance | | +| call_sensitivity.rb:21:27:21:27 | x | call_sensitivity.rb:22:17:22:17 | x | provenance | | +| call_sensitivity.rb:21:27:21:27 | x | call_sensitivity.rb:22:17:22:17 | x | provenance | | +| call_sensitivity.rb:22:17:22:17 | x | call_sensitivity.rb:31:17:31:17 | x | provenance | | +| call_sensitivity.rb:22:17:22:17 | x | call_sensitivity.rb:40:23:40:23 | x | provenance | | +| call_sensitivity.rb:22:17:22:17 | x | call_sensitivity.rb:43:24:43:24 | x | provenance | | +| call_sensitivity.rb:31:17:31:17 | x | call_sensitivity.rb:31:27:31:27 | x | provenance | | +| call_sensitivity.rb:32:25:32:32 | call to taint | call_sensitivity.rb:21:27:21:27 | x | provenance | | +| call_sensitivity.rb:40:23:40:23 | x | call_sensitivity.rb:40:31:40:31 | x | provenance | | +| call_sensitivity.rb:41:25:41:32 | call to taint | call_sensitivity.rb:21:27:21:27 | x | provenance | | +| call_sensitivity.rb:43:24:43:24 | x | call_sensitivity.rb:43:32:43:32 | x | provenance | | +| call_sensitivity.rb:44:26:44:33 | call to taint | call_sensitivity.rb:21:27:21:27 | x | provenance | | +| call_sensitivity.rb:50:15:50:15 | x | call_sensitivity.rb:51:10:51:10 | x | provenance | | +| call_sensitivity.rb:54:15:54:15 | x | call_sensitivity.rb:55:13:55:13 | x | provenance | | +| call_sensitivity.rb:54:15:54:15 | x | call_sensitivity.rb:55:13:55:13 | x | provenance | | +| call_sensitivity.rb:55:13:55:13 | x | call_sensitivity.rb:50:15:50:15 | x | provenance | | +| call_sensitivity.rb:55:13:55:13 | x | call_sensitivity.rb:50:15:50:15 | x | provenance | | +| call_sensitivity.rb:58:20:58:20 | x | call_sensitivity.rb:59:18:59:18 | x | provenance | | +| call_sensitivity.rb:59:18:59:18 | x | call_sensitivity.rb:54:15:54:15 | x | provenance | | +| call_sensitivity.rb:62:18:62:18 | y | call_sensitivity.rb:63:15:63:15 | y | provenance | | +| call_sensitivity.rb:62:18:62:18 | y | call_sensitivity.rb:63:15:63:15 | y | provenance | | +| call_sensitivity.rb:63:15:63:15 | y | call_sensitivity.rb:50:15:50:15 | x | provenance | | +| call_sensitivity.rb:63:15:63:15 | y | call_sensitivity.rb:50:15:50:15 | x | provenance | | +| call_sensitivity.rb:66:20:66:20 | x | call_sensitivity.rb:67:24:67:24 | x | provenance | | +| call_sensitivity.rb:67:24:67:24 | x | call_sensitivity.rb:62:18:62:18 | y | provenance | | +| call_sensitivity.rb:70:30:70:30 | x | call_sensitivity.rb:71:10:71:10 | x | provenance | | +| call_sensitivity.rb:74:18:74:18 | y | call_sensitivity.rb:75:20:77:7 | do ... end [captured y] | provenance | | +| call_sensitivity.rb:75:20:77:7 | do ... end [captured y] | call_sensitivity.rb:76:17:76:17 | y | provenance | | +| call_sensitivity.rb:76:17:76:17 | y | call_sensitivity.rb:50:15:50:15 | x | provenance | | +| call_sensitivity.rb:80:15:80:15 | x | call_sensitivity.rb:81:18:81:18 | x | provenance | | +| call_sensitivity.rb:81:18:81:18 | x | call_sensitivity.rb:50:15:50:15 | x | provenance | | +| call_sensitivity.rb:85:18:85:27 | ( ... ) | call_sensitivity.rb:80:15:80:15 | x | provenance | | +| call_sensitivity.rb:85:19:85:26 | call to taint | call_sensitivity.rb:85:18:85:27 | ( ... ) | provenance | | +| call_sensitivity.rb:88:30:88:30 | x | call_sensitivity.rb:89:23:89:23 | x | provenance | | +| call_sensitivity.rb:88:30:88:30 | x | call_sensitivity.rb:89:23:89:23 | x | provenance | | +| call_sensitivity.rb:89:23:89:23 | x | call_sensitivity.rb:70:30:70:30 | x | provenance | | +| call_sensitivity.rb:89:23:89:23 | x | call_sensitivity.rb:70:30:70:30 | x | provenance | | +| call_sensitivity.rb:92:35:92:35 | x | call_sensitivity.rb:93:28:93:28 | x | provenance | | +| call_sensitivity.rb:93:28:93:28 | x | call_sensitivity.rb:88:30:88:30 | x | provenance | | +| call_sensitivity.rb:96:33:96:33 | y | call_sensitivity.rb:97:25:97:25 | y | provenance | | +| call_sensitivity.rb:96:33:96:33 | y | call_sensitivity.rb:97:25:97:25 | y | provenance | | +| call_sensitivity.rb:97:25:97:25 | y | call_sensitivity.rb:70:30:70:30 | x | provenance | | +| call_sensitivity.rb:97:25:97:25 | y | call_sensitivity.rb:70:30:70:30 | x | provenance | | +| call_sensitivity.rb:100:35:100:35 | x | call_sensitivity.rb:101:34:101:34 | x | provenance | | +| call_sensitivity.rb:101:34:101:34 | x | call_sensitivity.rb:96:33:96:33 | y | provenance | | +| call_sensitivity.rb:104:18:104:18 | x | call_sensitivity.rb:105:10:105:10 | x | provenance | | +| call_sensitivity.rb:104:18:104:18 | x | call_sensitivity.rb:105:10:105:10 | x | provenance | | +| call_sensitivity.rb:104:18:104:18 | x | call_sensitivity.rb:105:10:105:10 | x | provenance | | +| call_sensitivity.rb:104:18:104:18 | x | call_sensitivity.rb:105:10:105:10 | x | provenance | | +| call_sensitivity.rb:104:18:104:18 | x | call_sensitivity.rb:106:13:106:13 | x | provenance | | +| call_sensitivity.rb:104:18:104:18 | x | call_sensitivity.rb:106:13:106:13 | x | provenance | | +| call_sensitivity.rb:104:18:104:18 | x | call_sensitivity.rb:106:13:106:13 | x | provenance | | +| call_sensitivity.rb:106:13:106:13 | x | call_sensitivity.rb:50:15:50:15 | x | provenance | | +| call_sensitivity.rb:106:13:106:13 | x | call_sensitivity.rb:50:15:50:15 | x | provenance | | +| call_sensitivity.rb:106:13:106:13 | x | call_sensitivity.rb:50:15:50:15 | x | provenance | | +| call_sensitivity.rb:109:21:109:21 | x | call_sensitivity.rb:110:9:110:9 | x | provenance | | +| call_sensitivity.rb:110:9:110:9 | x | call_sensitivity.rb:104:18:104:18 | x | provenance | | +| call_sensitivity.rb:114:11:114:20 | ( ... ) | call_sensitivity.rb:104:18:104:18 | x | provenance | | +| call_sensitivity.rb:114:12:114:19 | call to taint | call_sensitivity.rb:114:11:114:20 | ( ... ) | provenance | | +| call_sensitivity.rb:115:11:115:18 | call to taint | call_sensitivity.rb:54:15:54:15 | x | provenance | | +| call_sensitivity.rb:116:16:116:23 | call to taint | call_sensitivity.rb:58:20:58:20 | x | provenance | | +| call_sensitivity.rb:117:14:117:22 | call to taint | call_sensitivity.rb:62:18:62:18 | y | provenance | | +| call_sensitivity.rb:118:16:118:24 | call to taint | call_sensitivity.rb:66:20:66:20 | x | provenance | | +| call_sensitivity.rb:119:14:119:22 | call to taint | call_sensitivity.rb:74:18:74:18 | y | provenance | | +| call_sensitivity.rb:121:21:121:28 | call to taint | call_sensitivity.rb:88:30:88:30 | x | provenance | | +| call_sensitivity.rb:122:26:122:33 | call to taint | call_sensitivity.rb:92:35:92:35 | x | provenance | | +| call_sensitivity.rb:123:24:123:32 | call to taint | call_sensitivity.rb:96:33:96:33 | y | provenance | | +| call_sensitivity.rb:124:26:124:33 | call to taint | call_sensitivity.rb:100:35:100:35 | x | provenance | | +| call_sensitivity.rb:125:12:125:19 | call to taint | call_sensitivity.rb:109:21:109:21 | x | provenance | | +| call_sensitivity.rb:166:14:166:22 | call to taint | call_sensitivity.rb:74:18:74:18 | y | provenance | | +| call_sensitivity.rb:174:19:174:19 | x | call_sensitivity.rb:175:12:175:12 | x | provenance | | +| call_sensitivity.rb:175:12:175:12 | x | call_sensitivity.rb:104:18:104:18 | x | provenance | | +| call_sensitivity.rb:178:11:178:19 | call to taint | call_sensitivity.rb:174:19:174:19 | x | provenance | | +| call_sensitivity.rb:187:11:187:20 | ( ... ) | call_sensitivity.rb:104:18:104:18 | x | provenance | | +| call_sensitivity.rb:187:12:187:19 | call to taint | call_sensitivity.rb:187:11:187:20 | ( ... ) | provenance | | +| call_sensitivity.rb:189:19:189:19 | x | call_sensitivity.rb:190:9:190:9 | x | provenance | | +| call_sensitivity.rb:190:9:190:9 | x | call_sensitivity.rb:194:23:194:23 | x | provenance | | +| call_sensitivity.rb:193:19:193:19 | x | call_sensitivity.rb:194:17:194:17 | x | provenance | | +| call_sensitivity.rb:194:17:194:17 | x | call_sensitivity.rb:189:19:189:19 | x | provenance | | +| call_sensitivity.rb:194:23:194:23 | x | call_sensitivity.rb:195:11:195:11 | x | provenance | | +| call_sensitivity.rb:195:11:195:11 | x | call_sensitivity.rb:199:30:199:30 | x | provenance | | +| call_sensitivity.rb:195:11:195:11 | x | call_sensitivity.rb:203:26:203:26 | x | provenance | | +| call_sensitivity.rb:199:15:199:24 | ( ... ) | call_sensitivity.rb:193:19:193:19 | x | provenance | | +| call_sensitivity.rb:199:16:199:23 | call to taint | call_sensitivity.rb:199:15:199:24 | ( ... ) | provenance | | +| call_sensitivity.rb:199:30:199:30 | x | call_sensitivity.rb:200:8:200:8 | x | provenance | | +| call_sensitivity.rb:203:26:203:26 | x | call_sensitivity.rb:204:8:204:8 | x | provenance | | +| call_sensitivity.rb:207:16:207:16 | y | call_sensitivity.rb:209:9:209:9 | y | provenance | | +| call_sensitivity.rb:209:9:209:9 | y | call_sensitivity.rb:214:9:214:9 | x | provenance | | +| call_sensitivity.rb:214:9:214:9 | x | call_sensitivity.rb:215:10:215:10 | x | provenance | | +| call_sensitivity.rb:222:15:222:24 | ( ... ) | call_sensitivity.rb:207:16:207:16 | y | provenance | | +| call_sensitivity.rb:222:16:222:23 | call to taint | call_sensitivity.rb:222:15:222:24 | ( ... ) | provenance | | nodes | call_sensitivity.rb:9:6:9:14 | ( ... ) | semmle.label | ( ... ) | | call_sensitivity.rb:9:7:9:13 | call to taint | semmle.label | call to taint | diff --git a/ruby/ql/test/library-tests/dataflow/erb/erb.expected b/ruby/ql/test/library-tests/dataflow/erb/erb.expected index 1ca2216a5590..b78f3c192460 100644 --- a/ruby/ql/test/library-tests/dataflow/erb/erb.expected +++ b/ruby/ql/test/library-tests/dataflow/erb/erb.expected @@ -1,49 +1,49 @@ testFailures edges -| main.rb:3:9:3:9 | x | main.rb:4:26:4:26 | x | -| main.rb:3:13:3:21 | call to source | main.rb:3:9:3:9 | x | -| main.rb:4:9:4:12 | view [@x] | main.rb:5:16:5:19 | view [@x] | -| main.rb:4:16:4:27 | call to new [@x] | main.rb:4:9:4:12 | view [@x] | -| main.rb:4:26:4:26 | x | main.rb:4:16:4:27 | call to new [@x] | -| main.rb:4:26:4:26 | x | view1.rb:5:20:5:20 | x | -| main.rb:5:16:5:19 | view [@x] | view1.html.erb:2:5:8:1 | self in view1.html.erb [@x] | -| main.rb:10:16:10:19 | [post] view [@x] | main.rb:11:9:11:12 | view [@x] | -| main.rb:11:9:11:12 | view [@x] | view2.rb:2:5:4:7 | self in foo [@x] | -| main.rb:15:9:15:9 | x | main.rb:16:26:16:26 | x | -| main.rb:15:13:15:21 | call to source | main.rb:15:9:15:9 | x | -| main.rb:16:9:16:12 | view [@x] | main.rb:17:16:17:19 | view [@x] | -| main.rb:16:16:16:27 | call to new [@x] | main.rb:16:9:16:12 | view [@x] | -| main.rb:16:26:16:26 | x | main.rb:16:16:16:27 | call to new [@x] | -| main.rb:16:26:16:26 | x | view3.rb:2:20:2:20 | x | -| main.rb:17:16:17:19 | view [@x] | view3.html.erb:3:1:4:1 | self in view3.html.erb [@x] | -| view1.html.erb:2:5:2:9 | self [@x] | view1.rb:9:5:11:7 | self in foo [@x] | -| view1.html.erb:2:5:8:1 | self in view1.html.erb [@x] | view1.html.erb:2:5:2:9 | self [@x] | -| view1.html.erb:2:5:8:1 | self in view1.html.erb [@x] | view1.html.erb:7:1:7:5 | self [@x] | -| view1.html.erb:6:1:6:14 | [post] self [@x] | view1.html.erb:7:1:7:5 | self [@x] | -| view1.html.erb:6:5:6:13 | call to source | view1.html.erb:6:1:6:14 | [post] self [@x] | -| view1.html.erb:6:5:6:13 | call to source | view1.rb:13:13:13:13 | x | -| view1.html.erb:7:1:7:5 | self [@x] | view1.rb:9:5:11:7 | self in foo [@x] | -| view1.html.erb:7:1:7:5 | self [@x] | view1.rb:9:5:11:7 | self in foo [@x] | -| view1.rb:5:20:5:20 | x | view1.rb:6:14:6:14 | x | -| view1.rb:6:14:6:14 | x | view1.rb:6:9:6:10 | [post] self [@x] | -| view1.rb:9:5:11:7 | self in foo [@x] | view1.rb:10:14:10:15 | self [@x] | -| view1.rb:10:14:10:15 | self [@x] | view1.rb:10:14:10:15 | @x | -| view1.rb:13:13:13:13 | x | view1.rb:14:14:14:14 | x | -| view1.rb:14:14:14:14 | x | view1.rb:14:9:14:10 | [post] self [@x] | -| view2.html.erb:3:1:3:14 | [post] self [@x] | main.rb:10:16:10:19 | [post] view [@x] | -| view2.html.erb:3:5:3:13 | call to source | view2.html.erb:3:1:3:14 | [post] self [@x] | -| view2.html.erb:3:5:3:13 | call to source | view2.rb:6:13:6:13 | x | -| view2.rb:2:5:4:7 | self in foo [@x] | view2.rb:3:14:3:15 | self [@x] | -| view2.rb:3:14:3:15 | self [@x] | view2.rb:3:14:3:15 | @x | -| view2.rb:6:13:6:13 | x | view2.rb:7:14:7:14 | x | -| view2.rb:7:14:7:14 | x | view2.rb:7:9:7:10 | [post] self [@x] | -| view3.html.erb:3:1:4:1 | self in view3.html.erb [@x] | view3.html.erb:3:6:3:8 | self [@x] | -| view3.html.erb:3:6:3:8 | self [@x] | view3.html.erb:3:6:3:8 | call to get | -| view3.html.erb:3:6:3:8 | self [@x] | view3.rb:6:5:8:7 | self in get [@x] | -| view3.rb:2:20:2:20 | x | view3.rb:3:14:3:14 | x | -| view3.rb:3:14:3:14 | x | view3.rb:3:9:3:10 | [post] self [@x] | -| view3.rb:6:5:8:7 | self in get [@x] | view3.rb:7:9:7:10 | self [@x] | -| view3.rb:7:9:7:10 | self [@x] | view3.rb:7:9:7:10 | @x | +| main.rb:3:9:3:9 | x | main.rb:4:26:4:26 | x | provenance | | +| main.rb:3:13:3:21 | call to source | main.rb:3:9:3:9 | x | provenance | | +| main.rb:4:9:4:12 | view [@x] | main.rb:5:16:5:19 | view [@x] | provenance | | +| main.rb:4:16:4:27 | call to new [@x] | main.rb:4:9:4:12 | view [@x] | provenance | | +| main.rb:4:26:4:26 | x | main.rb:4:16:4:27 | call to new [@x] | provenance | | +| main.rb:4:26:4:26 | x | view1.rb:5:20:5:20 | x | provenance | | +| main.rb:5:16:5:19 | view [@x] | view1.html.erb:2:5:8:1 | self in view1.html.erb [@x] | provenance | | +| main.rb:10:16:10:19 | [post] view [@x] | main.rb:11:9:11:12 | view [@x] | provenance | | +| main.rb:11:9:11:12 | view [@x] | view2.rb:2:5:4:7 | self in foo [@x] | provenance | | +| main.rb:15:9:15:9 | x | main.rb:16:26:16:26 | x | provenance | | +| main.rb:15:13:15:21 | call to source | main.rb:15:9:15:9 | x | provenance | | +| main.rb:16:9:16:12 | view [@x] | main.rb:17:16:17:19 | view [@x] | provenance | | +| main.rb:16:16:16:27 | call to new [@x] | main.rb:16:9:16:12 | view [@x] | provenance | | +| main.rb:16:26:16:26 | x | main.rb:16:16:16:27 | call to new [@x] | provenance | | +| main.rb:16:26:16:26 | x | view3.rb:2:20:2:20 | x | provenance | | +| main.rb:17:16:17:19 | view [@x] | view3.html.erb:3:1:4:1 | self in view3.html.erb [@x] | provenance | | +| view1.html.erb:2:5:2:9 | self [@x] | view1.rb:9:5:11:7 | self in foo [@x] | provenance | | +| view1.html.erb:2:5:8:1 | self in view1.html.erb [@x] | view1.html.erb:2:5:2:9 | self [@x] | provenance | | +| view1.html.erb:2:5:8:1 | self in view1.html.erb [@x] | view1.html.erb:7:1:7:5 | self [@x] | provenance | | +| view1.html.erb:6:1:6:14 | [post] self [@x] | view1.html.erb:7:1:7:5 | self [@x] | provenance | | +| view1.html.erb:6:5:6:13 | call to source | view1.html.erb:6:1:6:14 | [post] self [@x] | provenance | | +| view1.html.erb:6:5:6:13 | call to source | view1.rb:13:13:13:13 | x | provenance | | +| view1.html.erb:7:1:7:5 | self [@x] | view1.rb:9:5:11:7 | self in foo [@x] | provenance | | +| view1.html.erb:7:1:7:5 | self [@x] | view1.rb:9:5:11:7 | self in foo [@x] | provenance | | +| view1.rb:5:20:5:20 | x | view1.rb:6:14:6:14 | x | provenance | | +| view1.rb:6:14:6:14 | x | view1.rb:6:9:6:10 | [post] self [@x] | provenance | | +| view1.rb:9:5:11:7 | self in foo [@x] | view1.rb:10:14:10:15 | self [@x] | provenance | | +| view1.rb:10:14:10:15 | self [@x] | view1.rb:10:14:10:15 | @x | provenance | | +| view1.rb:13:13:13:13 | x | view1.rb:14:14:14:14 | x | provenance | | +| view1.rb:14:14:14:14 | x | view1.rb:14:9:14:10 | [post] self [@x] | provenance | | +| view2.html.erb:3:1:3:14 | [post] self [@x] | main.rb:10:16:10:19 | [post] view [@x] | provenance | | +| view2.html.erb:3:5:3:13 | call to source | view2.html.erb:3:1:3:14 | [post] self [@x] | provenance | | +| view2.html.erb:3:5:3:13 | call to source | view2.rb:6:13:6:13 | x | provenance | | +| view2.rb:2:5:4:7 | self in foo [@x] | view2.rb:3:14:3:15 | self [@x] | provenance | | +| view2.rb:3:14:3:15 | self [@x] | view2.rb:3:14:3:15 | @x | provenance | | +| view2.rb:6:13:6:13 | x | view2.rb:7:14:7:14 | x | provenance | | +| view2.rb:7:14:7:14 | x | view2.rb:7:9:7:10 | [post] self [@x] | provenance | | +| view3.html.erb:3:1:4:1 | self in view3.html.erb [@x] | view3.html.erb:3:6:3:8 | self [@x] | provenance | | +| view3.html.erb:3:6:3:8 | self [@x] | view3.html.erb:3:6:3:8 | call to get | provenance | | +| view3.html.erb:3:6:3:8 | self [@x] | view3.rb:6:5:8:7 | self in get [@x] | provenance | | +| view3.rb:2:20:2:20 | x | view3.rb:3:14:3:14 | x | provenance | | +| view3.rb:3:14:3:14 | x | view3.rb:3:9:3:10 | [post] self [@x] | provenance | | +| view3.rb:6:5:8:7 | self in get [@x] | view3.rb:7:9:7:10 | self [@x] | provenance | | +| view3.rb:7:9:7:10 | self [@x] | view3.rb:7:9:7:10 | @x | provenance | | nodes | main.rb:3:9:3:9 | x | semmle.label | x | | main.rb:3:13:3:21 | call to source | semmle.label | call to source | diff --git a/ruby/ql/test/library-tests/dataflow/flow-summaries/semantics.expected b/ruby/ql/test/library-tests/dataflow/flow-summaries/semantics.expected index 13366c8733c7..7f40375e9636 100644 --- a/ruby/ql/test/library-tests/dataflow/flow-summaries/semantics.expected +++ b/ruby/ql/test/library-tests/dataflow/flow-summaries/semantics.expected @@ -1,1089 +1,1089 @@ testFailures edges -| semantics.rb:2:5:2:5 | a | semantics.rb:3:9:3:9 | a | -| semantics.rb:2:5:2:5 | a | semantics.rb:3:9:3:9 | a | -| semantics.rb:2:9:2:18 | call to source | semantics.rb:2:5:2:5 | a | -| semantics.rb:2:9:2:18 | call to source | semantics.rb:2:5:2:5 | a | -| semantics.rb:3:5:3:5 | x | semantics.rb:4:10:4:10 | x | -| semantics.rb:3:5:3:5 | x | semantics.rb:4:10:4:10 | x | -| semantics.rb:3:9:3:9 | a | semantics.rb:3:9:3:14 | call to s1 | -| semantics.rb:3:9:3:9 | a | semantics.rb:3:9:3:14 | call to s1 | -| semantics.rb:3:9:3:14 | call to s1 | semantics.rb:3:5:3:5 | x | -| semantics.rb:3:9:3:14 | call to s1 | semantics.rb:3:5:3:5 | x | -| semantics.rb:8:5:8:5 | a | semantics.rb:9:10:9:10 | a | -| semantics.rb:8:5:8:5 | a | semantics.rb:9:10:9:10 | a | -| semantics.rb:8:9:8:18 | call to source | semantics.rb:8:5:8:5 | a | -| semantics.rb:8:9:8:18 | call to source | semantics.rb:8:5:8:5 | a | -| semantics.rb:9:5:9:5 | [post] x | semantics.rb:10:10:10:10 | x | -| semantics.rb:9:5:9:5 | [post] x | semantics.rb:10:10:10:10 | x | -| semantics.rb:9:10:9:10 | a | semantics.rb:9:5:9:5 | [post] x | -| semantics.rb:9:10:9:10 | a | semantics.rb:9:5:9:5 | [post] x | -| semantics.rb:14:5:14:5 | a | semantics.rb:15:8:15:8 | a | -| semantics.rb:14:5:14:5 | a | semantics.rb:15:8:15:8 | a | -| semantics.rb:14:9:14:18 | call to source | semantics.rb:14:5:14:5 | a | -| semantics.rb:14:9:14:18 | call to source | semantics.rb:14:5:14:5 | a | -| semantics.rb:15:8:15:8 | a | semantics.rb:15:11:15:11 | [post] x | -| semantics.rb:15:8:15:8 | a | semantics.rb:15:11:15:11 | [post] x | -| semantics.rb:15:11:15:11 | [post] x | semantics.rb:16:10:16:10 | x | -| semantics.rb:15:11:15:11 | [post] x | semantics.rb:16:10:16:10 | x | -| semantics.rb:22:18:22:32 | call to source | semantics.rb:22:10:22:33 | call to s4 | -| semantics.rb:22:18:22:32 | call to source | semantics.rb:22:10:22:33 | call to s4 | -| semantics.rb:23:23:23:32 | call to source | semantics.rb:23:10:23:33 | call to s4 | -| semantics.rb:23:23:23:32 | call to source | semantics.rb:23:10:23:33 | call to s4 | -| semantics.rb:28:5:28:5 | a | semantics.rb:29:8:29:8 | a | -| semantics.rb:28:5:28:5 | a | semantics.rb:29:8:29:8 | a | -| semantics.rb:28:9:28:18 | call to source | semantics.rb:28:5:28:5 | a | -| semantics.rb:28:9:28:18 | call to source | semantics.rb:28:5:28:5 | a | -| semantics.rb:29:8:29:8 | a | semantics.rb:29:14:29:14 | [post] y | -| semantics.rb:29:8:29:8 | a | semantics.rb:29:14:29:14 | [post] y | -| semantics.rb:29:8:29:8 | a | semantics.rb:29:17:29:17 | [post] z | -| semantics.rb:29:8:29:8 | a | semantics.rb:29:17:29:17 | [post] z | -| semantics.rb:29:14:29:14 | [post] y | semantics.rb:31:10:31:10 | y | -| semantics.rb:29:14:29:14 | [post] y | semantics.rb:31:10:31:10 | y | -| semantics.rb:29:17:29:17 | [post] z | semantics.rb:32:10:32:10 | z | -| semantics.rb:29:17:29:17 | [post] z | semantics.rb:32:10:32:10 | z | -| semantics.rb:40:5:40:5 | a | semantics.rb:41:8:41:8 | a | -| semantics.rb:40:5:40:5 | a | semantics.rb:41:8:41:8 | a | -| semantics.rb:40:9:40:18 | call to source | semantics.rb:40:5:40:5 | a | -| semantics.rb:40:9:40:18 | call to source | semantics.rb:40:5:40:5 | a | -| semantics.rb:41:8:41:8 | a | semantics.rb:41:16:41:16 | [post] x | -| semantics.rb:41:8:41:8 | a | semantics.rb:41:16:41:16 | [post] x | -| semantics.rb:41:16:41:16 | [post] x | semantics.rb:42:10:42:10 | x | -| semantics.rb:41:16:41:16 | [post] x | semantics.rb:42:10:42:10 | x | -| semantics.rb:46:15:46:24 | call to source | semantics.rb:46:10:46:26 | call to s8 | -| semantics.rb:46:15:46:24 | call to source | semantics.rb:46:10:46:26 | call to s8 | -| semantics.rb:48:9:48:18 | call to source | semantics.rb:47:10:49:7 | call to s8 | -| semantics.rb:48:9:48:18 | call to source | semantics.rb:47:10:49:7 | call to s8 | -| semantics.rb:53:8:53:17 | call to source | semantics.rb:53:23:53:23 | x | -| semantics.rb:53:8:53:17 | call to source | semantics.rb:53:23:53:23 | x | -| semantics.rb:53:23:53:23 | x | semantics.rb:53:31:53:31 | x | -| semantics.rb:53:23:53:23 | x | semantics.rb:53:31:53:31 | x | -| semantics.rb:54:8:54:17 | call to source | semantics.rb:54:24:54:24 | x | -| semantics.rb:54:8:54:17 | call to source | semantics.rb:54:24:54:24 | x | -| semantics.rb:54:24:54:24 | x | semantics.rb:55:14:55:14 | x | -| semantics.rb:54:24:54:24 | x | semantics.rb:55:14:55:14 | x | -| semantics.rb:60:5:60:5 | a | semantics.rb:61:14:61:14 | a | -| semantics.rb:60:5:60:5 | a | semantics.rb:61:14:61:14 | a | -| semantics.rb:60:5:60:5 | a | semantics.rb:62:17:62:17 | a | -| semantics.rb:60:5:60:5 | a | semantics.rb:62:17:62:17 | a | -| semantics.rb:60:5:60:5 | a | semantics.rb:63:19:63:19 | a | -| semantics.rb:60:5:60:5 | a | semantics.rb:63:19:63:19 | a | -| semantics.rb:60:5:60:5 | a | semantics.rb:64:27:64:27 | a | -| semantics.rb:60:5:60:5 | a | semantics.rb:64:27:64:27 | a | -| semantics.rb:60:5:60:5 | a | semantics.rb:66:14:66:15 | &... | -| semantics.rb:60:5:60:5 | a | semantics.rb:66:14:66:15 | &... | -| semantics.rb:60:9:60:18 | call to source | semantics.rb:60:5:60:5 | a | -| semantics.rb:60:9:60:18 | call to source | semantics.rb:60:5:60:5 | a | -| semantics.rb:61:10:61:15 | call to s10 [splat position 0] | semantics.rb:61:10:61:15 | call to s10 | -| semantics.rb:61:14:61:14 | a | semantics.rb:61:10:61:15 | call to s10 | -| semantics.rb:61:14:61:14 | a | semantics.rb:61:10:61:15 | call to s10 | -| semantics.rb:61:14:61:14 | a | semantics.rb:61:10:61:15 | call to s10 [splat position 0] | -| semantics.rb:62:10:62:18 | call to s10 [splat position 1] | semantics.rb:62:10:62:18 | call to s10 | -| semantics.rb:62:17:62:17 | a | semantics.rb:62:10:62:18 | call to s10 | -| semantics.rb:62:17:62:17 | a | semantics.rb:62:10:62:18 | call to s10 | -| semantics.rb:62:17:62:17 | a | semantics.rb:62:10:62:18 | call to s10 [splat position 1] | -| semantics.rb:63:19:63:19 | a | semantics.rb:63:10:63:20 | call to s10 | -| semantics.rb:63:19:63:19 | a | semantics.rb:63:10:63:20 | call to s10 | -| semantics.rb:64:27:64:27 | a | semantics.rb:64:10:64:28 | call to s10 | -| semantics.rb:64:27:64:27 | a | semantics.rb:64:10:64:28 | call to s10 | -| semantics.rb:66:14:66:15 | &... | semantics.rb:66:10:66:16 | call to s10 | -| semantics.rb:66:14:66:15 | &... | semantics.rb:66:10:66:16 | call to s10 | -| semantics.rb:80:5:80:5 | a | semantics.rb:81:5:81:5 | a | -| semantics.rb:80:5:80:5 | a | semantics.rb:81:5:81:5 | a | -| semantics.rb:80:9:80:18 | call to source | semantics.rb:80:5:80:5 | a | -| semantics.rb:80:9:80:18 | call to source | semantics.rb:80:5:80:5 | a | -| semantics.rb:81:5:81:5 | a | semantics.rb:81:11:81:11 | [post] x | -| semantics.rb:81:5:81:5 | a | semantics.rb:81:11:81:11 | [post] x | -| semantics.rb:81:5:81:5 | a | semantics.rb:81:14:81:14 | [post] y | -| semantics.rb:81:5:81:5 | a | semantics.rb:81:14:81:14 | [post] y | -| semantics.rb:81:5:81:5 | a | semantics.rb:81:22:81:22 | [post] z | -| semantics.rb:81:5:81:5 | a | semantics.rb:81:22:81:22 | [post] z | -| semantics.rb:81:11:81:11 | [post] x | semantics.rb:82:10:82:10 | x | -| semantics.rb:81:11:81:11 | [post] x | semantics.rb:82:10:82:10 | x | -| semantics.rb:81:14:81:14 | [post] y | semantics.rb:83:10:83:10 | y | -| semantics.rb:81:14:81:14 | [post] y | semantics.rb:83:10:83:10 | y | -| semantics.rb:81:22:81:22 | [post] z | semantics.rb:84:10:84:10 | z | -| semantics.rb:81:22:81:22 | [post] z | semantics.rb:84:10:84:10 | z | -| semantics.rb:89:5:89:5 | a | semantics.rb:91:19:91:19 | a | -| semantics.rb:89:5:89:5 | a | semantics.rb:91:19:91:19 | a | -| semantics.rb:89:5:89:5 | a | semantics.rb:92:27:92:27 | a | -| semantics.rb:89:5:89:5 | a | semantics.rb:92:27:92:27 | a | -| semantics.rb:89:9:89:18 | call to source | semantics.rb:89:5:89:5 | a | -| semantics.rb:89:9:89:18 | call to source | semantics.rb:89:5:89:5 | a | -| semantics.rb:91:19:91:19 | a | semantics.rb:91:10:91:20 | call to s13 | -| semantics.rb:91:19:91:19 | a | semantics.rb:91:10:91:20 | call to s13 | -| semantics.rb:92:27:92:27 | a | semantics.rb:92:10:92:28 | call to s13 | -| semantics.rb:92:27:92:27 | a | semantics.rb:92:10:92:28 | call to s13 | -| semantics.rb:97:5:97:5 | a | semantics.rb:98:5:98:5 | a | -| semantics.rb:97:5:97:5 | a | semantics.rb:98:5:98:5 | a | -| semantics.rb:97:5:97:5 | a | semantics.rb:99:5:99:5 | a | -| semantics.rb:97:5:97:5 | a | semantics.rb:99:5:99:5 | a | -| semantics.rb:97:9:97:18 | call to source | semantics.rb:97:5:97:5 | a | -| semantics.rb:97:9:97:18 | call to source | semantics.rb:97:5:97:5 | a | -| semantics.rb:98:5:98:5 | a | semantics.rb:98:19:98:19 | [post] x | -| semantics.rb:98:5:98:5 | a | semantics.rb:98:19:98:19 | [post] x | -| semantics.rb:98:19:98:19 | [post] x | semantics.rb:101:10:101:10 | x | -| semantics.rb:98:19:98:19 | [post] x | semantics.rb:101:10:101:10 | x | -| semantics.rb:99:5:99:5 | a | semantics.rb:99:16:99:16 | [post] y | -| semantics.rb:99:5:99:5 | a | semantics.rb:99:16:99:16 | [post] y | -| semantics.rb:99:5:99:5 | a | semantics.rb:99:24:99:24 | [post] z | -| semantics.rb:99:5:99:5 | a | semantics.rb:99:24:99:24 | [post] z | -| semantics.rb:99:16:99:16 | [post] y | semantics.rb:102:10:102:10 | y | -| semantics.rb:99:16:99:16 | [post] y | semantics.rb:102:10:102:10 | y | -| semantics.rb:99:24:99:24 | [post] z | semantics.rb:103:10:103:10 | z | -| semantics.rb:99:24:99:24 | [post] z | semantics.rb:103:10:103:10 | z | -| semantics.rb:107:5:107:5 | a | semantics.rb:109:19:109:19 | a | -| semantics.rb:107:5:107:5 | a | semantics.rb:109:19:109:19 | a | -| semantics.rb:107:9:107:18 | call to source | semantics.rb:107:5:107:5 | a | -| semantics.rb:107:9:107:18 | call to source | semantics.rb:107:5:107:5 | a | -| semantics.rb:108:5:108:5 | b | semantics.rb:110:27:110:27 | b | -| semantics.rb:108:5:108:5 | b | semantics.rb:110:27:110:27 | b | -| semantics.rb:108:9:108:18 | call to source | semantics.rb:108:5:108:5 | b | -| semantics.rb:108:9:108:18 | call to source | semantics.rb:108:5:108:5 | b | -| semantics.rb:109:10:109:28 | call to s15 [hash-splat position :foo] | semantics.rb:109:10:109:34 | ...[...] | -| semantics.rb:109:10:109:28 | call to s15 [hash-splat position :foo] | semantics.rb:109:10:109:34 | ...[...] | -| semantics.rb:109:19:109:19 | a | semantics.rb:109:10:109:28 | call to s15 [hash-splat position :foo] | -| semantics.rb:109:19:109:19 | a | semantics.rb:109:10:109:28 | call to s15 [hash-splat position :foo] | -| semantics.rb:110:10:110:28 | call to s15 [hash-splat position :bar] | semantics.rb:110:10:110:34 | ...[...] | -| semantics.rb:110:10:110:28 | call to s15 [hash-splat position :bar] | semantics.rb:110:10:110:34 | ...[...] | -| semantics.rb:110:27:110:27 | b | semantics.rb:110:10:110:28 | call to s15 [hash-splat position :bar] | -| semantics.rb:110:27:110:27 | b | semantics.rb:110:10:110:28 | call to s15 [hash-splat position :bar] | -| semantics.rb:114:5:114:5 | a | semantics.rb:116:14:116:14 | a | -| semantics.rb:114:5:114:5 | a | semantics.rb:116:14:116:14 | a | -| semantics.rb:114:5:114:5 | a | semantics.rb:119:17:119:17 | a | -| semantics.rb:114:5:114:5 | a | semantics.rb:119:17:119:17 | a | -| semantics.rb:114:9:114:18 | call to source | semantics.rb:114:5:114:5 | a | -| semantics.rb:114:9:114:18 | call to source | semantics.rb:114:5:114:5 | a | -| semantics.rb:115:5:115:5 | b | semantics.rb:121:17:121:17 | b | -| semantics.rb:115:5:115:5 | b | semantics.rb:121:17:121:17 | b | -| semantics.rb:115:9:115:18 | call to source | semantics.rb:115:5:115:5 | b | -| semantics.rb:115:9:115:18 | call to source | semantics.rb:115:5:115:5 | b | -| semantics.rb:116:5:116:5 | h [element :a] | semantics.rb:117:16:117:16 | h [element :a] | -| semantics.rb:116:5:116:5 | h [element :a] | semantics.rb:117:16:117:16 | h [element :a] | -| semantics.rb:116:5:116:5 | h [element :a] | semantics.rb:121:22:121:22 | h [element :a] | -| semantics.rb:116:5:116:5 | h [element :a] | semantics.rb:121:22:121:22 | h [element :a] | -| semantics.rb:116:14:116:14 | a | semantics.rb:116:5:116:5 | h [element :a] | -| semantics.rb:116:14:116:14 | a | semantics.rb:116:5:116:5 | h [element :a] | -| semantics.rb:117:14:117:16 | ** ... [element :a] | semantics.rb:117:10:117:17 | call to s16 | -| semantics.rb:117:14:117:16 | ** ... [element :a] | semantics.rb:117:10:117:17 | call to s16 | -| semantics.rb:117:16:117:16 | h [element :a] | semantics.rb:117:14:117:16 | ** ... [element :a] | -| semantics.rb:117:16:117:16 | h [element :a] | semantics.rb:117:14:117:16 | ** ... [element :a] | -| semantics.rb:119:17:119:17 | a | semantics.rb:119:10:119:18 | call to s16 | -| semantics.rb:119:17:119:17 | a | semantics.rb:119:10:119:18 | call to s16 | -| semantics.rb:121:17:121:17 | b | semantics.rb:121:10:121:23 | call to s16 | -| semantics.rb:121:17:121:17 | b | semantics.rb:121:10:121:23 | call to s16 | -| semantics.rb:121:20:121:22 | ** ... [element :a] | semantics.rb:121:10:121:23 | call to s16 | -| semantics.rb:121:20:121:22 | ** ... [element :a] | semantics.rb:121:10:121:23 | call to s16 | -| semantics.rb:121:22:121:22 | h [element :a] | semantics.rb:121:20:121:22 | ** ... [element :a] | -| semantics.rb:121:22:121:22 | h [element :a] | semantics.rb:121:20:121:22 | ** ... [element :a] | -| semantics.rb:125:5:125:5 | a | semantics.rb:127:14:127:14 | a | -| semantics.rb:125:5:125:5 | a | semantics.rb:128:14:128:14 | a | -| semantics.rb:125:5:125:5 | a | semantics.rb:128:14:128:14 | a | -| semantics.rb:125:9:125:18 | call to source | semantics.rb:125:5:125:5 | a | -| semantics.rb:125:9:125:18 | call to source | semantics.rb:125:5:125:5 | a | -| semantics.rb:126:5:126:5 | b | semantics.rb:127:17:127:17 | b | -| semantics.rb:126:5:126:5 | b | semantics.rb:129:17:129:17 | b | -| semantics.rb:126:5:126:5 | b | semantics.rb:129:17:129:17 | b | -| semantics.rb:126:9:126:18 | call to source | semantics.rb:126:5:126:5 | b | -| semantics.rb:126:9:126:18 | call to source | semantics.rb:126:5:126:5 | b | -| semantics.rb:127:10:127:18 | call to s17 [splat position 0] | semantics.rb:127:10:127:18 | call to s17 | -| semantics.rb:127:10:127:18 | call to s17 [splat position 1] | semantics.rb:127:10:127:18 | call to s17 | -| semantics.rb:127:14:127:14 | a | semantics.rb:127:10:127:18 | call to s17 [splat position 0] | -| semantics.rb:127:17:127:17 | b | semantics.rb:127:10:127:18 | call to s17 [splat position 1] | -| semantics.rb:128:10:128:18 | call to s17 [splat position 0] | semantics.rb:128:10:128:21 | ...[...] | -| semantics.rb:128:10:128:18 | call to s17 [splat position 0] | semantics.rb:128:10:128:21 | ...[...] | -| semantics.rb:128:14:128:14 | a | semantics.rb:128:10:128:18 | call to s17 [splat position 0] | -| semantics.rb:128:14:128:14 | a | semantics.rb:128:10:128:18 | call to s17 [splat position 0] | -| semantics.rb:129:10:129:18 | call to s17 [splat position 1] | semantics.rb:129:10:129:21 | ...[...] | -| semantics.rb:129:10:129:18 | call to s17 [splat position 1] | semantics.rb:129:10:129:21 | ...[...] | -| semantics.rb:129:17:129:17 | b | semantics.rb:129:10:129:18 | call to s17 [splat position 1] | -| semantics.rb:129:17:129:17 | b | semantics.rb:129:10:129:18 | call to s17 [splat position 1] | -| semantics.rb:133:5:133:5 | a | semantics.rb:135:12:135:12 | a | -| semantics.rb:133:5:133:5 | a | semantics.rb:135:12:135:12 | a | -| semantics.rb:133:5:133:5 | a | semantics.rb:137:14:137:14 | a | -| semantics.rb:133:5:133:5 | a | semantics.rb:137:14:137:14 | a | -| semantics.rb:133:9:133:18 | call to source | semantics.rb:133:5:133:5 | a | -| semantics.rb:133:9:133:18 | call to source | semantics.rb:133:5:133:5 | a | -| semantics.rb:134:5:134:5 | b | semantics.rb:135:15:135:15 | b | -| semantics.rb:134:5:134:5 | b | semantics.rb:135:15:135:15 | b | -| semantics.rb:134:9:134:18 | call to source | semantics.rb:134:5:134:5 | b | -| semantics.rb:134:9:134:18 | call to source | semantics.rb:134:5:134:5 | b | -| semantics.rb:135:5:135:7 | arr [element 0] | semantics.rb:136:15:136:17 | arr [element 0] | -| semantics.rb:135:5:135:7 | arr [element 0] | semantics.rb:136:15:136:17 | arr [element 0] | -| semantics.rb:135:5:135:7 | arr [element 1] | semantics.rb:136:15:136:17 | arr [element 1] | -| semantics.rb:135:5:135:7 | arr [element 1] | semantics.rb:136:15:136:17 | arr [element 1] | -| semantics.rb:135:12:135:12 | a | semantics.rb:135:5:135:7 | arr [element 0] | -| semantics.rb:135:12:135:12 | a | semantics.rb:135:5:135:7 | arr [element 0] | -| semantics.rb:135:15:135:15 | b | semantics.rb:135:5:135:7 | arr [element 1] | -| semantics.rb:135:15:135:15 | b | semantics.rb:135:5:135:7 | arr [element 1] | -| semantics.rb:136:14:136:17 | * ... [element 0] | semantics.rb:136:10:136:18 | call to s18 | -| semantics.rb:136:14:136:17 | * ... [element 0] | semantics.rb:136:10:136:18 | call to s18 | -| semantics.rb:136:14:136:17 | * ... [element 1] | semantics.rb:136:10:136:18 | call to s18 | -| semantics.rb:136:14:136:17 | * ... [element 1] | semantics.rb:136:10:136:18 | call to s18 | -| semantics.rb:136:15:136:17 | arr [element 0] | semantics.rb:136:14:136:17 | * ... [element 0] | -| semantics.rb:136:15:136:17 | arr [element 0] | semantics.rb:136:14:136:17 | * ... [element 0] | -| semantics.rb:136:15:136:17 | arr [element 1] | semantics.rb:136:14:136:17 | * ... [element 1] | -| semantics.rb:136:15:136:17 | arr [element 1] | semantics.rb:136:14:136:17 | * ... [element 1] | -| semantics.rb:137:14:137:14 | a | semantics.rb:137:10:137:15 | call to s18 | -| semantics.rb:137:14:137:14 | a | semantics.rb:137:10:137:15 | call to s18 | -| semantics.rb:142:5:142:5 | b | semantics.rb:146:5:146:5 | [post] h [element] | -| semantics.rb:142:5:142:5 | b | semantics.rb:146:5:146:5 | [post] h [element] | -| semantics.rb:142:9:142:18 | call to source | semantics.rb:142:5:142:5 | b | -| semantics.rb:142:9:142:18 | call to source | semantics.rb:142:5:142:5 | b | -| semantics.rb:146:5:146:5 | [post] h [element] | semantics.rb:148:14:148:14 | h [element] | -| semantics.rb:146:5:146:5 | [post] h [element] | semantics.rb:148:14:148:14 | h [element] | -| semantics.rb:148:14:148:14 | h [element] | semantics.rb:148:10:148:15 | call to s19 | -| semantics.rb:148:14:148:14 | h [element] | semantics.rb:148:10:148:15 | call to s19 | -| semantics.rb:152:5:152:5 | a | semantics.rb:153:13:153:13 | a | -| semantics.rb:152:5:152:5 | a | semantics.rb:153:13:153:13 | a | -| semantics.rb:152:9:152:18 | call to source | semantics.rb:152:5:152:5 | a | -| semantics.rb:152:9:152:18 | call to source | semantics.rb:152:5:152:5 | a | -| semantics.rb:153:5:153:5 | x [element] | semantics.rb:154:10:154:10 | x [element] | -| semantics.rb:153:5:153:5 | x [element] | semantics.rb:154:10:154:10 | x [element] | -| semantics.rb:153:5:153:5 | x [element] | semantics.rb:155:10:155:10 | x [element] | -| semantics.rb:153:5:153:5 | x [element] | semantics.rb:155:10:155:10 | x [element] | -| semantics.rb:153:9:153:14 | call to s20 [element] | semantics.rb:153:5:153:5 | x [element] | -| semantics.rb:153:9:153:14 | call to s20 [element] | semantics.rb:153:5:153:5 | x [element] | -| semantics.rb:153:13:153:13 | a | semantics.rb:153:9:153:14 | call to s20 [element] | -| semantics.rb:153:13:153:13 | a | semantics.rb:153:9:153:14 | call to s20 [element] | -| semantics.rb:154:10:154:10 | x [element] | semantics.rb:154:10:154:13 | ...[...] | -| semantics.rb:154:10:154:10 | x [element] | semantics.rb:154:10:154:13 | ...[...] | -| semantics.rb:155:10:155:10 | x [element] | semantics.rb:155:10:155:13 | ...[...] | -| semantics.rb:155:10:155:10 | x [element] | semantics.rb:155:10:155:13 | ...[...] | -| semantics.rb:159:5:159:5 | a | semantics.rb:163:5:163:5 | [post] h [element 0] | -| semantics.rb:159:5:159:5 | a | semantics.rb:163:5:163:5 | [post] h [element 0] | -| semantics.rb:159:9:159:18 | call to source | semantics.rb:159:5:159:5 | a | -| semantics.rb:159:9:159:18 | call to source | semantics.rb:159:5:159:5 | a | -| semantics.rb:160:5:160:5 | b | semantics.rb:164:5:164:5 | [post] h [element] | -| semantics.rb:160:5:160:5 | b | semantics.rb:164:5:164:5 | [post] h [element] | -| semantics.rb:160:9:160:18 | call to source | semantics.rb:160:5:160:5 | b | -| semantics.rb:160:9:160:18 | call to source | semantics.rb:160:5:160:5 | b | -| semantics.rb:163:5:163:5 | [post] h [element 0] | semantics.rb:166:14:166:14 | h [element 0] | -| semantics.rb:163:5:163:5 | [post] h [element 0] | semantics.rb:166:14:166:14 | h [element 0] | -| semantics.rb:164:5:164:5 | [post] h [element] | semantics.rb:166:14:166:14 | h [element] | -| semantics.rb:164:5:164:5 | [post] h [element] | semantics.rb:166:14:166:14 | h [element] | -| semantics.rb:166:14:166:14 | h [element 0] | semantics.rb:166:10:166:15 | call to s21 | -| semantics.rb:166:14:166:14 | h [element 0] | semantics.rb:166:10:166:15 | call to s21 | -| semantics.rb:166:14:166:14 | h [element] | semantics.rb:166:10:166:15 | call to s21 | -| semantics.rb:166:14:166:14 | h [element] | semantics.rb:166:10:166:15 | call to s21 | -| semantics.rb:170:5:170:5 | a | semantics.rb:171:13:171:13 | a | -| semantics.rb:170:5:170:5 | a | semantics.rb:171:13:171:13 | a | -| semantics.rb:170:9:170:18 | call to source | semantics.rb:170:5:170:5 | a | -| semantics.rb:170:9:170:18 | call to source | semantics.rb:170:5:170:5 | a | -| semantics.rb:171:5:171:5 | x [element] | semantics.rb:172:10:172:10 | x [element] | -| semantics.rb:171:5:171:5 | x [element] | semantics.rb:172:10:172:10 | x [element] | -| semantics.rb:171:5:171:5 | x [element] | semantics.rb:173:10:173:10 | x [element] | -| semantics.rb:171:5:171:5 | x [element] | semantics.rb:173:10:173:10 | x [element] | -| semantics.rb:171:9:171:14 | call to s22 [element] | semantics.rb:171:5:171:5 | x [element] | -| semantics.rb:171:9:171:14 | call to s22 [element] | semantics.rb:171:5:171:5 | x [element] | -| semantics.rb:171:13:171:13 | a | semantics.rb:171:9:171:14 | call to s22 [element] | -| semantics.rb:171:13:171:13 | a | semantics.rb:171:9:171:14 | call to s22 [element] | -| semantics.rb:172:10:172:10 | x [element] | semantics.rb:172:10:172:13 | ...[...] | -| semantics.rb:172:10:172:10 | x [element] | semantics.rb:172:10:172:13 | ...[...] | -| semantics.rb:173:10:173:10 | x [element] | semantics.rb:173:10:173:13 | ...[...] | -| semantics.rb:173:10:173:10 | x [element] | semantics.rb:173:10:173:13 | ...[...] | -| semantics.rb:177:5:177:5 | a | semantics.rb:180:5:180:5 | [post] h [element 0] | -| semantics.rb:177:5:177:5 | a | semantics.rb:180:5:180:5 | [post] h [element 0] | -| semantics.rb:177:9:177:18 | call to source | semantics.rb:177:5:177:5 | a | -| semantics.rb:177:9:177:18 | call to source | semantics.rb:177:5:177:5 | a | -| semantics.rb:180:5:180:5 | [post] h [element 0] | semantics.rb:181:5:181:5 | h [element 0] | -| semantics.rb:180:5:180:5 | [post] h [element 0] | semantics.rb:181:5:181:5 | h [element 0] | -| semantics.rb:181:5:181:5 | [post] h [element 0] | semantics.rb:182:14:182:14 | h [element 0] | -| semantics.rb:181:5:181:5 | [post] h [element 0] | semantics.rb:182:14:182:14 | h [element 0] | -| semantics.rb:181:5:181:5 | h [element 0] | semantics.rb:181:5:181:5 | [post] h [element 0] | -| semantics.rb:181:5:181:5 | h [element 0] | semantics.rb:181:5:181:5 | [post] h [element 0] | -| semantics.rb:182:14:182:14 | h [element 0] | semantics.rb:182:10:182:15 | call to s23 | -| semantics.rb:182:14:182:14 | h [element 0] | semantics.rb:182:10:182:15 | call to s23 | -| semantics.rb:186:5:186:5 | a | semantics.rb:187:13:187:13 | a | -| semantics.rb:186:5:186:5 | a | semantics.rb:187:13:187:13 | a | -| semantics.rb:186:9:186:18 | call to source | semantics.rb:186:5:186:5 | a | -| semantics.rb:186:9:186:18 | call to source | semantics.rb:186:5:186:5 | a | -| semantics.rb:187:5:187:5 | x [element 0] | semantics.rb:188:10:188:10 | x [element 0] | -| semantics.rb:187:5:187:5 | x [element 0] | semantics.rb:188:10:188:10 | x [element 0] | -| semantics.rb:187:5:187:5 | x [element 0] | semantics.rb:190:10:190:10 | x [element 0] | -| semantics.rb:187:5:187:5 | x [element 0] | semantics.rb:190:10:190:10 | x [element 0] | -| semantics.rb:187:9:187:14 | call to s24 [element 0] | semantics.rb:187:5:187:5 | x [element 0] | -| semantics.rb:187:9:187:14 | call to s24 [element 0] | semantics.rb:187:5:187:5 | x [element 0] | -| semantics.rb:187:13:187:13 | a | semantics.rb:187:9:187:14 | call to s24 [element 0] | -| semantics.rb:187:13:187:13 | a | semantics.rb:187:9:187:14 | call to s24 [element 0] | -| semantics.rb:188:10:188:10 | x [element 0] | semantics.rb:188:10:188:13 | ...[...] | -| semantics.rb:188:10:188:10 | x [element 0] | semantics.rb:188:10:188:13 | ...[...] | -| semantics.rb:190:10:190:10 | x [element 0] | semantics.rb:190:10:190:13 | ...[...] | -| semantics.rb:190:10:190:10 | x [element 0] | semantics.rb:190:10:190:13 | ...[...] | -| semantics.rb:194:5:194:5 | a | semantics.rb:197:5:197:5 | [post] h [element 0] | -| semantics.rb:194:5:194:5 | a | semantics.rb:197:5:197:5 | [post] h [element 0] | -| semantics.rb:194:9:194:18 | call to source | semantics.rb:194:5:194:5 | a | -| semantics.rb:194:9:194:18 | call to source | semantics.rb:194:5:194:5 | a | -| semantics.rb:197:5:197:5 | [post] h [element 0] | semantics.rb:198:5:198:5 | h [element 0] | -| semantics.rb:197:5:197:5 | [post] h [element 0] | semantics.rb:198:5:198:5 | h [element 0] | -| semantics.rb:198:5:198:5 | [post] h [element 0] | semantics.rb:199:14:199:14 | h [element 0] | -| semantics.rb:198:5:198:5 | [post] h [element 0] | semantics.rb:199:14:199:14 | h [element 0] | -| semantics.rb:198:5:198:5 | h [element 0] | semantics.rb:198:5:198:5 | [post] h [element 0] | -| semantics.rb:198:5:198:5 | h [element 0] | semantics.rb:198:5:198:5 | [post] h [element 0] | -| semantics.rb:199:14:199:14 | h [element 0] | semantics.rb:199:10:199:15 | call to s25 | -| semantics.rb:199:14:199:14 | h [element 0] | semantics.rb:199:10:199:15 | call to s25 | -| semantics.rb:203:5:203:5 | a | semantics.rb:204:13:204:13 | a | -| semantics.rb:203:5:203:5 | a | semantics.rb:204:13:204:13 | a | -| semantics.rb:203:9:203:18 | call to source | semantics.rb:203:5:203:5 | a | -| semantics.rb:203:9:203:18 | call to source | semantics.rb:203:5:203:5 | a | -| semantics.rb:204:5:204:5 | x [element 0] | semantics.rb:205:10:205:10 | x [element 0] | -| semantics.rb:204:5:204:5 | x [element 0] | semantics.rb:205:10:205:10 | x [element 0] | -| semantics.rb:204:5:204:5 | x [element 0] | semantics.rb:207:10:207:10 | x [element 0] | -| semantics.rb:204:5:204:5 | x [element 0] | semantics.rb:207:10:207:10 | x [element 0] | -| semantics.rb:204:9:204:14 | call to s26 [element 0] | semantics.rb:204:5:204:5 | x [element 0] | -| semantics.rb:204:9:204:14 | call to s26 [element 0] | semantics.rb:204:5:204:5 | x [element 0] | -| semantics.rb:204:13:204:13 | a | semantics.rb:204:9:204:14 | call to s26 [element 0] | -| semantics.rb:204:13:204:13 | a | semantics.rb:204:9:204:14 | call to s26 [element 0] | -| semantics.rb:205:10:205:10 | x [element 0] | semantics.rb:205:10:205:13 | ...[...] | -| semantics.rb:205:10:205:10 | x [element 0] | semantics.rb:205:10:205:13 | ...[...] | -| semantics.rb:207:10:207:10 | x [element 0] | semantics.rb:207:10:207:13 | ...[...] | -| semantics.rb:207:10:207:10 | x [element 0] | semantics.rb:207:10:207:13 | ...[...] | -| semantics.rb:212:5:212:5 | b | semantics.rb:218:5:218:5 | [post] h [element 1] | -| semantics.rb:212:5:212:5 | b | semantics.rb:218:5:218:5 | [post] h [element 1] | -| semantics.rb:212:9:212:18 | call to source | semantics.rb:212:5:212:5 | b | -| semantics.rb:212:9:212:18 | call to source | semantics.rb:212:5:212:5 | b | -| semantics.rb:213:5:213:5 | c | semantics.rb:219:5:219:5 | [post] h [element 2] | -| semantics.rb:213:5:213:5 | c | semantics.rb:219:5:219:5 | [post] h [element 2] | -| semantics.rb:213:9:213:18 | call to source | semantics.rb:213:5:213:5 | c | -| semantics.rb:213:9:213:18 | call to source | semantics.rb:213:5:213:5 | c | -| semantics.rb:214:5:214:5 | d | semantics.rb:220:5:220:5 | [post] h [element] | -| semantics.rb:214:5:214:5 | d | semantics.rb:220:5:220:5 | [post] h [element] | -| semantics.rb:214:9:214:18 | call to source | semantics.rb:214:5:214:5 | d | -| semantics.rb:214:9:214:18 | call to source | semantics.rb:214:5:214:5 | d | -| semantics.rb:218:5:218:5 | [post] h [element 1] | semantics.rb:219:5:219:5 | h [element 1] | -| semantics.rb:218:5:218:5 | [post] h [element 1] | semantics.rb:219:5:219:5 | h [element 1] | -| semantics.rb:219:5:219:5 | [post] h [element 1] | semantics.rb:222:14:222:14 | h [element 1] | -| semantics.rb:219:5:219:5 | [post] h [element 1] | semantics.rb:222:14:222:14 | h [element 1] | -| semantics.rb:219:5:219:5 | [post] h [element 2] | semantics.rb:222:14:222:14 | h [element 2] | -| semantics.rb:219:5:219:5 | [post] h [element 2] | semantics.rb:222:14:222:14 | h [element 2] | -| semantics.rb:219:5:219:5 | h [element 1] | semantics.rb:219:5:219:5 | [post] h [element 1] | -| semantics.rb:219:5:219:5 | h [element 1] | semantics.rb:219:5:219:5 | [post] h [element 1] | -| semantics.rb:220:5:220:5 | [post] h [element] | semantics.rb:222:14:222:14 | h [element] | -| semantics.rb:220:5:220:5 | [post] h [element] | semantics.rb:222:14:222:14 | h [element] | -| semantics.rb:222:14:222:14 | h [element 1] | semantics.rb:222:10:222:15 | call to s27 | -| semantics.rb:222:14:222:14 | h [element 1] | semantics.rb:222:10:222:15 | call to s27 | -| semantics.rb:222:14:222:14 | h [element 2] | semantics.rb:222:10:222:15 | call to s27 | -| semantics.rb:222:14:222:14 | h [element 2] | semantics.rb:222:10:222:15 | call to s27 | -| semantics.rb:222:14:222:14 | h [element] | semantics.rb:222:10:222:15 | call to s27 | -| semantics.rb:222:14:222:14 | h [element] | semantics.rb:222:10:222:15 | call to s27 | -| semantics.rb:226:5:226:5 | a | semantics.rb:227:13:227:13 | a | -| semantics.rb:226:5:226:5 | a | semantics.rb:227:13:227:13 | a | -| semantics.rb:226:9:226:18 | call to source | semantics.rb:226:5:226:5 | a | -| semantics.rb:226:9:226:18 | call to source | semantics.rb:226:5:226:5 | a | -| semantics.rb:227:5:227:5 | x [element] | semantics.rb:228:10:228:10 | x [element] | -| semantics.rb:227:5:227:5 | x [element] | semantics.rb:228:10:228:10 | x [element] | -| semantics.rb:227:5:227:5 | x [element] | semantics.rb:229:10:229:10 | x [element] | -| semantics.rb:227:5:227:5 | x [element] | semantics.rb:229:10:229:10 | x [element] | -| semantics.rb:227:5:227:5 | x [element] | semantics.rb:230:10:230:10 | x [element] | -| semantics.rb:227:5:227:5 | x [element] | semantics.rb:230:10:230:10 | x [element] | -| semantics.rb:227:5:227:5 | x [element] | semantics.rb:231:10:231:10 | x [element] | -| semantics.rb:227:5:227:5 | x [element] | semantics.rb:231:10:231:10 | x [element] | -| semantics.rb:227:9:227:14 | call to s28 [element] | semantics.rb:227:5:227:5 | x [element] | -| semantics.rb:227:9:227:14 | call to s28 [element] | semantics.rb:227:5:227:5 | x [element] | -| semantics.rb:227:13:227:13 | a | semantics.rb:227:9:227:14 | call to s28 [element] | -| semantics.rb:227:13:227:13 | a | semantics.rb:227:9:227:14 | call to s28 [element] | -| semantics.rb:228:10:228:10 | x [element] | semantics.rb:228:10:228:13 | ...[...] | -| semantics.rb:228:10:228:10 | x [element] | semantics.rb:228:10:228:13 | ...[...] | -| semantics.rb:229:10:229:10 | x [element] | semantics.rb:229:10:229:13 | ...[...] | -| semantics.rb:229:10:229:10 | x [element] | semantics.rb:229:10:229:13 | ...[...] | -| semantics.rb:230:10:230:10 | x [element] | semantics.rb:230:10:230:13 | ...[...] | -| semantics.rb:230:10:230:10 | x [element] | semantics.rb:230:10:230:13 | ...[...] | -| semantics.rb:231:10:231:10 | x [element] | semantics.rb:231:10:231:13 | ...[...] | -| semantics.rb:231:10:231:10 | x [element] | semantics.rb:231:10:231:13 | ...[...] | -| semantics.rb:236:5:236:5 | b | semantics.rb:241:5:241:5 | [post] h [element 1] | -| semantics.rb:236:5:236:5 | b | semantics.rb:241:5:241:5 | [post] h [element 1] | -| semantics.rb:236:9:236:18 | call to source | semantics.rb:236:5:236:5 | b | -| semantics.rb:236:9:236:18 | call to source | semantics.rb:236:5:236:5 | b | -| semantics.rb:237:5:237:5 | c | semantics.rb:242:5:242:5 | [post] h [element 2] | -| semantics.rb:237:5:237:5 | c | semantics.rb:242:5:242:5 | [post] h [element 2] | -| semantics.rb:237:9:237:18 | call to source | semantics.rb:237:5:237:5 | c | -| semantics.rb:237:9:237:18 | call to source | semantics.rb:237:5:237:5 | c | -| semantics.rb:241:5:241:5 | [post] h [element 1] | semantics.rb:242:5:242:5 | h [element 1] | -| semantics.rb:241:5:241:5 | [post] h [element 1] | semantics.rb:242:5:242:5 | h [element 1] | -| semantics.rb:242:5:242:5 | [post] h [element 1] | semantics.rb:245:14:245:14 | h [element 1] | -| semantics.rb:242:5:242:5 | [post] h [element 1] | semantics.rb:245:14:245:14 | h [element 1] | -| semantics.rb:242:5:242:5 | [post] h [element 2] | semantics.rb:245:14:245:14 | h [element 2] | -| semantics.rb:242:5:242:5 | [post] h [element 2] | semantics.rb:245:14:245:14 | h [element 2] | -| semantics.rb:242:5:242:5 | h [element 1] | semantics.rb:242:5:242:5 | [post] h [element 1] | -| semantics.rb:242:5:242:5 | h [element 1] | semantics.rb:242:5:242:5 | [post] h [element 1] | -| semantics.rb:245:14:245:14 | h [element 1] | semantics.rb:245:10:245:15 | call to s29 | -| semantics.rb:245:14:245:14 | h [element 1] | semantics.rb:245:10:245:15 | call to s29 | -| semantics.rb:245:14:245:14 | h [element 2] | semantics.rb:245:10:245:15 | call to s29 | -| semantics.rb:245:14:245:14 | h [element 2] | semantics.rb:245:10:245:15 | call to s29 | -| semantics.rb:249:5:249:5 | a | semantics.rb:250:13:250:13 | a | -| semantics.rb:249:5:249:5 | a | semantics.rb:250:13:250:13 | a | -| semantics.rb:249:9:249:18 | call to source | semantics.rb:249:5:249:5 | a | -| semantics.rb:249:9:249:18 | call to source | semantics.rb:249:5:249:5 | a | -| semantics.rb:250:5:250:5 | x [element] | semantics.rb:251:10:251:10 | x [element] | -| semantics.rb:250:5:250:5 | x [element] | semantics.rb:251:10:251:10 | x [element] | -| semantics.rb:250:5:250:5 | x [element] | semantics.rb:252:10:252:10 | x [element] | -| semantics.rb:250:5:250:5 | x [element] | semantics.rb:252:10:252:10 | x [element] | -| semantics.rb:250:5:250:5 | x [element] | semantics.rb:253:10:253:10 | x [element] | -| semantics.rb:250:5:250:5 | x [element] | semantics.rb:253:10:253:10 | x [element] | -| semantics.rb:250:5:250:5 | x [element] | semantics.rb:254:10:254:10 | x [element] | -| semantics.rb:250:5:250:5 | x [element] | semantics.rb:254:10:254:10 | x [element] | -| semantics.rb:250:9:250:14 | call to s30 [element] | semantics.rb:250:5:250:5 | x [element] | -| semantics.rb:250:9:250:14 | call to s30 [element] | semantics.rb:250:5:250:5 | x [element] | -| semantics.rb:250:13:250:13 | a | semantics.rb:250:9:250:14 | call to s30 [element] | -| semantics.rb:250:13:250:13 | a | semantics.rb:250:9:250:14 | call to s30 [element] | -| semantics.rb:251:10:251:10 | x [element] | semantics.rb:251:10:251:13 | ...[...] | -| semantics.rb:251:10:251:10 | x [element] | semantics.rb:251:10:251:13 | ...[...] | -| semantics.rb:252:10:252:10 | x [element] | semantics.rb:252:10:252:13 | ...[...] | -| semantics.rb:252:10:252:10 | x [element] | semantics.rb:252:10:252:13 | ...[...] | -| semantics.rb:253:10:253:10 | x [element] | semantics.rb:253:10:253:13 | ...[...] | -| semantics.rb:253:10:253:10 | x [element] | semantics.rb:253:10:253:13 | ...[...] | -| semantics.rb:254:10:254:10 | x [element] | semantics.rb:254:10:254:13 | ...[...] | -| semantics.rb:254:10:254:10 | x [element] | semantics.rb:254:10:254:13 | ...[...] | -| semantics.rb:258:5:258:5 | [post] h [element :foo] | semantics.rb:259:5:259:5 | h [element :foo] | -| semantics.rb:258:5:258:5 | [post] h [element :foo] | semantics.rb:259:5:259:5 | h [element :foo] | -| semantics.rb:258:15:258:25 | call to source | semantics.rb:258:5:258:5 | [post] h [element :foo] | -| semantics.rb:258:15:258:25 | call to source | semantics.rb:258:5:258:5 | [post] h [element :foo] | -| semantics.rb:259:5:259:5 | [post] h [element :foo] | semantics.rb:260:5:260:5 | h [element :foo] | -| semantics.rb:259:5:259:5 | [post] h [element :foo] | semantics.rb:260:5:260:5 | h [element :foo] | -| semantics.rb:259:5:259:5 | h [element :foo] | semantics.rb:259:5:259:5 | [post] h [element :foo] | -| semantics.rb:259:5:259:5 | h [element :foo] | semantics.rb:259:5:259:5 | [post] h [element :foo] | -| semantics.rb:260:5:260:5 | [post] h [element :foo] | semantics.rb:263:14:263:14 | h [element :foo] | -| semantics.rb:260:5:260:5 | [post] h [element :foo] | semantics.rb:263:14:263:14 | h [element :foo] | -| semantics.rb:260:5:260:5 | h [element :foo] | semantics.rb:260:5:260:5 | [post] h [element :foo] | -| semantics.rb:260:5:260:5 | h [element :foo] | semantics.rb:260:5:260:5 | [post] h [element :foo] | -| semantics.rb:261:5:261:5 | [post] h [element] | semantics.rb:263:14:263:14 | h [element] | -| semantics.rb:261:5:261:5 | [post] h [element] | semantics.rb:263:14:263:14 | h [element] | -| semantics.rb:261:12:261:22 | call to source | semantics.rb:261:5:261:5 | [post] h [element] | -| semantics.rb:261:12:261:22 | call to source | semantics.rb:261:5:261:5 | [post] h [element] | -| semantics.rb:263:14:263:14 | h [element :foo] | semantics.rb:263:10:263:15 | call to s31 | -| semantics.rb:263:14:263:14 | h [element :foo] | semantics.rb:263:10:263:15 | call to s31 | -| semantics.rb:263:14:263:14 | h [element] | semantics.rb:263:10:263:15 | call to s31 | -| semantics.rb:263:14:263:14 | h [element] | semantics.rb:263:10:263:15 | call to s31 | -| semantics.rb:268:5:268:5 | [post] h [element foo] | semantics.rb:269:5:269:5 | h [element foo] | -| semantics.rb:268:5:268:5 | [post] h [element foo] | semantics.rb:269:5:269:5 | h [element foo] | -| semantics.rb:268:16:268:26 | call to source | semantics.rb:268:5:268:5 | [post] h [element foo] | -| semantics.rb:268:16:268:26 | call to source | semantics.rb:268:5:268:5 | [post] h [element foo] | -| semantics.rb:269:5:269:5 | [post] h [element foo] | semantics.rb:270:5:270:5 | h [element foo] | -| semantics.rb:269:5:269:5 | [post] h [element foo] | semantics.rb:270:5:270:5 | h [element foo] | -| semantics.rb:269:5:269:5 | h [element foo] | semantics.rb:269:5:269:5 | [post] h [element foo] | -| semantics.rb:269:5:269:5 | h [element foo] | semantics.rb:269:5:269:5 | [post] h [element foo] | -| semantics.rb:270:5:270:5 | [post] h [element foo] | semantics.rb:273:14:273:14 | h [element foo] | -| semantics.rb:270:5:270:5 | [post] h [element foo] | semantics.rb:273:14:273:14 | h [element foo] | -| semantics.rb:270:5:270:5 | h [element foo] | semantics.rb:270:5:270:5 | [post] h [element foo] | -| semantics.rb:270:5:270:5 | h [element foo] | semantics.rb:270:5:270:5 | [post] h [element foo] | -| semantics.rb:271:5:271:5 | [post] h [element] | semantics.rb:273:14:273:14 | h [element] | -| semantics.rb:271:5:271:5 | [post] h [element] | semantics.rb:273:14:273:14 | h [element] | -| semantics.rb:271:12:271:22 | call to source | semantics.rb:271:5:271:5 | [post] h [element] | -| semantics.rb:271:12:271:22 | call to source | semantics.rb:271:5:271:5 | [post] h [element] | -| semantics.rb:273:14:273:14 | h [element foo] | semantics.rb:273:10:273:15 | call to s32 | -| semantics.rb:273:14:273:14 | h [element foo] | semantics.rb:273:10:273:15 | call to s32 | -| semantics.rb:273:14:273:14 | h [element] | semantics.rb:273:10:273:15 | call to s32 | -| semantics.rb:273:14:273:14 | h [element] | semantics.rb:273:10:273:15 | call to s32 | -| semantics.rb:281:5:281:5 | [post] h [element] | semantics.rb:282:5:282:5 | h [element] | -| semantics.rb:281:5:281:5 | [post] h [element] | semantics.rb:282:5:282:5 | h [element] | -| semantics.rb:281:12:281:22 | call to source | semantics.rb:281:5:281:5 | [post] h [element] | -| semantics.rb:281:12:281:22 | call to source | semantics.rb:281:5:281:5 | [post] h [element] | -| semantics.rb:282:5:282:5 | [post] h [element nil] | semantics.rb:283:5:283:5 | h [element nil] | -| semantics.rb:282:5:282:5 | [post] h [element nil] | semantics.rb:283:5:283:5 | h [element nil] | -| semantics.rb:282:5:282:5 | [post] h [element] | semantics.rb:283:5:283:5 | h [element] | -| semantics.rb:282:5:282:5 | [post] h [element] | semantics.rb:283:5:283:5 | h [element] | -| semantics.rb:282:5:282:5 | h [element] | semantics.rb:282:5:282:5 | [post] h [element] | -| semantics.rb:282:5:282:5 | h [element] | semantics.rb:282:5:282:5 | [post] h [element] | -| semantics.rb:282:14:282:24 | call to source | semantics.rb:282:5:282:5 | [post] h [element nil] | -| semantics.rb:282:14:282:24 | call to source | semantics.rb:282:5:282:5 | [post] h [element nil] | -| semantics.rb:283:5:283:5 | [post] h [element nil] | semantics.rb:284:5:284:5 | h [element nil] | -| semantics.rb:283:5:283:5 | [post] h [element nil] | semantics.rb:284:5:284:5 | h [element nil] | -| semantics.rb:283:5:283:5 | [post] h [element true] | semantics.rb:284:5:284:5 | h [element true] | -| semantics.rb:283:5:283:5 | [post] h [element true] | semantics.rb:284:5:284:5 | h [element true] | -| semantics.rb:283:5:283:5 | [post] h [element] | semantics.rb:284:5:284:5 | h [element] | -| semantics.rb:283:5:283:5 | [post] h [element] | semantics.rb:284:5:284:5 | h [element] | -| semantics.rb:283:5:283:5 | h [element nil] | semantics.rb:283:5:283:5 | [post] h [element nil] | -| semantics.rb:283:5:283:5 | h [element nil] | semantics.rb:283:5:283:5 | [post] h [element nil] | -| semantics.rb:283:5:283:5 | h [element] | semantics.rb:283:5:283:5 | [post] h [element] | -| semantics.rb:283:5:283:5 | h [element] | semantics.rb:283:5:283:5 | [post] h [element] | -| semantics.rb:283:15:283:25 | call to source | semantics.rb:283:5:283:5 | [post] h [element true] | -| semantics.rb:283:15:283:25 | call to source | semantics.rb:283:5:283:5 | [post] h [element true] | -| semantics.rb:284:5:284:5 | [post] h [element false] | semantics.rb:286:14:286:14 | h [element false] | -| semantics.rb:284:5:284:5 | [post] h [element false] | semantics.rb:286:14:286:14 | h [element false] | -| semantics.rb:284:5:284:5 | [post] h [element nil] | semantics.rb:286:14:286:14 | h [element nil] | -| semantics.rb:284:5:284:5 | [post] h [element nil] | semantics.rb:286:14:286:14 | h [element nil] | -| semantics.rb:284:5:284:5 | [post] h [element true] | semantics.rb:286:14:286:14 | h [element true] | -| semantics.rb:284:5:284:5 | [post] h [element true] | semantics.rb:286:14:286:14 | h [element true] | -| semantics.rb:284:5:284:5 | [post] h [element] | semantics.rb:286:14:286:14 | h [element] | -| semantics.rb:284:5:284:5 | [post] h [element] | semantics.rb:286:14:286:14 | h [element] | -| semantics.rb:284:5:284:5 | h [element nil] | semantics.rb:284:5:284:5 | [post] h [element nil] | -| semantics.rb:284:5:284:5 | h [element nil] | semantics.rb:284:5:284:5 | [post] h [element nil] | -| semantics.rb:284:5:284:5 | h [element true] | semantics.rb:284:5:284:5 | [post] h [element true] | -| semantics.rb:284:5:284:5 | h [element true] | semantics.rb:284:5:284:5 | [post] h [element true] | -| semantics.rb:284:5:284:5 | h [element] | semantics.rb:284:5:284:5 | [post] h [element] | -| semantics.rb:284:5:284:5 | h [element] | semantics.rb:284:5:284:5 | [post] h [element] | -| semantics.rb:284:16:284:26 | call to source | semantics.rb:284:5:284:5 | [post] h [element false] | -| semantics.rb:284:16:284:26 | call to source | semantics.rb:284:5:284:5 | [post] h [element false] | -| semantics.rb:286:14:286:14 | h [element false] | semantics.rb:286:10:286:15 | call to s33 | -| semantics.rb:286:14:286:14 | h [element false] | semantics.rb:286:10:286:15 | call to s33 | -| semantics.rb:286:14:286:14 | h [element nil] | semantics.rb:286:10:286:15 | call to s33 | -| semantics.rb:286:14:286:14 | h [element nil] | semantics.rb:286:10:286:15 | call to s33 | -| semantics.rb:286:14:286:14 | h [element true] | semantics.rb:286:10:286:15 | call to s33 | -| semantics.rb:286:14:286:14 | h [element true] | semantics.rb:286:10:286:15 | call to s33 | -| semantics.rb:286:14:286:14 | h [element] | semantics.rb:286:10:286:15 | call to s33 | -| semantics.rb:286:14:286:14 | h [element] | semantics.rb:286:10:286:15 | call to s33 | -| semantics.rb:290:5:290:5 | x [element :foo] | semantics.rb:291:10:291:10 | x [element :foo] | -| semantics.rb:290:5:290:5 | x [element :foo] | semantics.rb:291:10:291:10 | x [element :foo] | -| semantics.rb:290:5:290:5 | x [element :foo] | semantics.rb:293:10:293:10 | x [element :foo] | -| semantics.rb:290:5:290:5 | x [element :foo] | semantics.rb:293:10:293:10 | x [element :foo] | -| semantics.rb:290:9:290:24 | call to s35 [element :foo] | semantics.rb:290:5:290:5 | x [element :foo] | -| semantics.rb:290:9:290:24 | call to s35 [element :foo] | semantics.rb:290:5:290:5 | x [element :foo] | -| semantics.rb:290:13:290:23 | call to source | semantics.rb:290:9:290:24 | call to s35 [element :foo] | -| semantics.rb:290:13:290:23 | call to source | semantics.rb:290:9:290:24 | call to s35 [element :foo] | -| semantics.rb:291:10:291:10 | x [element :foo] | semantics.rb:291:10:291:16 | ...[...] | -| semantics.rb:291:10:291:10 | x [element :foo] | semantics.rb:291:10:291:16 | ...[...] | -| semantics.rb:293:10:293:10 | x [element :foo] | semantics.rb:293:10:293:13 | ...[...] | -| semantics.rb:293:10:293:10 | x [element :foo] | semantics.rb:293:10:293:13 | ...[...] | -| semantics.rb:297:5:297:5 | x [element foo] | semantics.rb:299:10:299:10 | x [element foo] | -| semantics.rb:297:5:297:5 | x [element foo] | semantics.rb:299:10:299:10 | x [element foo] | -| semantics.rb:297:5:297:5 | x [element foo] | semantics.rb:301:10:301:10 | x [element foo] | -| semantics.rb:297:5:297:5 | x [element foo] | semantics.rb:301:10:301:10 | x [element foo] | -| semantics.rb:297:9:297:24 | call to s36 [element foo] | semantics.rb:297:5:297:5 | x [element foo] | -| semantics.rb:297:9:297:24 | call to s36 [element foo] | semantics.rb:297:5:297:5 | x [element foo] | -| semantics.rb:297:13:297:23 | call to source | semantics.rb:297:9:297:24 | call to s36 [element foo] | -| semantics.rb:297:13:297:23 | call to source | semantics.rb:297:9:297:24 | call to s36 [element foo] | -| semantics.rb:299:10:299:10 | x [element foo] | semantics.rb:299:10:299:17 | ...[...] | -| semantics.rb:299:10:299:10 | x [element foo] | semantics.rb:299:10:299:17 | ...[...] | -| semantics.rb:301:10:301:10 | x [element foo] | semantics.rb:301:10:301:13 | ...[...] | -| semantics.rb:301:10:301:10 | x [element foo] | semantics.rb:301:10:301:13 | ...[...] | -| semantics.rb:305:5:305:5 | x [element true] | semantics.rb:307:10:307:10 | x [element true] | -| semantics.rb:305:5:305:5 | x [element true] | semantics.rb:307:10:307:10 | x [element true] | -| semantics.rb:305:5:305:5 | x [element true] | semantics.rb:309:10:309:10 | x [element true] | -| semantics.rb:305:5:305:5 | x [element true] | semantics.rb:309:10:309:10 | x [element true] | -| semantics.rb:305:9:305:24 | call to s37 [element true] | semantics.rb:305:5:305:5 | x [element true] | -| semantics.rb:305:9:305:24 | call to s37 [element true] | semantics.rb:305:5:305:5 | x [element true] | -| semantics.rb:305:13:305:23 | call to source | semantics.rb:305:9:305:24 | call to s37 [element true] | -| semantics.rb:305:13:305:23 | call to source | semantics.rb:305:9:305:24 | call to s37 [element true] | -| semantics.rb:307:10:307:10 | x [element true] | semantics.rb:307:10:307:16 | ...[...] | -| semantics.rb:307:10:307:10 | x [element true] | semantics.rb:307:10:307:16 | ...[...] | -| semantics.rb:309:10:309:10 | x [element true] | semantics.rb:309:10:309:13 | ...[...] | -| semantics.rb:309:10:309:10 | x [element true] | semantics.rb:309:10:309:13 | ...[...] | -| semantics.rb:313:5:313:5 | [post] h [element foo] | semantics.rb:316:14:316:14 | h [element foo] | -| semantics.rb:313:5:313:5 | [post] h [element foo] | semantics.rb:316:14:316:14 | h [element foo] | -| semantics.rb:313:16:313:26 | call to source | semantics.rb:313:5:313:5 | [post] h [element foo] | -| semantics.rb:313:16:313:26 | call to source | semantics.rb:313:5:313:5 | [post] h [element foo] | -| semantics.rb:316:14:316:14 | h [element foo] | semantics.rb:316:10:316:15 | call to s38 | -| semantics.rb:316:14:316:14 | h [element foo] | semantics.rb:316:10:316:15 | call to s38 | -| semantics.rb:320:5:320:5 | x [element :foo] | semantics.rb:322:10:322:10 | x [element :foo] | -| semantics.rb:320:5:320:5 | x [element :foo] | semantics.rb:322:10:322:10 | x [element :foo] | -| semantics.rb:320:5:320:5 | x [element :foo] | semantics.rb:323:10:323:10 | x [element :foo] | -| semantics.rb:320:5:320:5 | x [element :foo] | semantics.rb:323:10:323:10 | x [element :foo] | -| semantics.rb:320:9:320:24 | call to s39 [element :foo] | semantics.rb:320:5:320:5 | x [element :foo] | -| semantics.rb:320:9:320:24 | call to s39 [element :foo] | semantics.rb:320:5:320:5 | x [element :foo] | -| semantics.rb:320:13:320:23 | call to source | semantics.rb:320:9:320:24 | call to s39 [element :foo] | -| semantics.rb:320:13:320:23 | call to source | semantics.rb:320:9:320:24 | call to s39 [element :foo] | -| semantics.rb:322:10:322:10 | x [element :foo] | semantics.rb:322:10:322:16 | ...[...] | -| semantics.rb:322:10:322:10 | x [element :foo] | semantics.rb:322:10:322:16 | ...[...] | -| semantics.rb:323:10:323:10 | x [element :foo] | semantics.rb:323:10:323:13 | ...[...] | -| semantics.rb:323:10:323:10 | x [element :foo] | semantics.rb:323:10:323:13 | ...[...] | -| semantics.rb:328:5:328:5 | [post] x [@foo] | semantics.rb:330:14:330:14 | x [@foo] | -| semantics.rb:328:5:328:5 | [post] x [@foo] | semantics.rb:330:14:330:14 | x [@foo] | -| semantics.rb:328:13:328:23 | call to source | semantics.rb:328:5:328:5 | [post] x [@foo] | -| semantics.rb:328:13:328:23 | call to source | semantics.rb:328:5:328:5 | [post] x [@foo] | -| semantics.rb:330:14:330:14 | x [@foo] | semantics.rb:330:10:330:15 | call to s40 | -| semantics.rb:330:14:330:14 | x [@foo] | semantics.rb:330:10:330:15 | call to s40 | -| semantics.rb:334:5:334:5 | x [@foo] | semantics.rb:335:10:335:10 | x [@foo] | -| semantics.rb:334:5:334:5 | x [@foo] | semantics.rb:335:10:335:10 | x [@foo] | -| semantics.rb:334:9:334:24 | call to s41 [@foo] | semantics.rb:334:5:334:5 | x [@foo] | -| semantics.rb:334:9:334:24 | call to s41 [@foo] | semantics.rb:334:5:334:5 | x [@foo] | -| semantics.rb:334:13:334:23 | call to source | semantics.rb:334:9:334:24 | call to s41 [@foo] | -| semantics.rb:334:13:334:23 | call to source | semantics.rb:334:9:334:24 | call to s41 [@foo] | -| semantics.rb:335:10:335:10 | x [@foo] | semantics.rb:335:10:335:14 | call to foo | -| semantics.rb:335:10:335:10 | x [@foo] | semantics.rb:335:10:335:14 | call to foo | -| semantics.rb:340:5:340:5 | [post] h [element 0] | semantics.rb:343:13:343:13 | h [element 0] | -| semantics.rb:340:5:340:5 | [post] h [element 0] | semantics.rb:343:13:343:13 | h [element 0] | -| semantics.rb:340:12:340:22 | call to source | semantics.rb:340:5:340:5 | [post] h [element 0] | -| semantics.rb:340:12:340:22 | call to source | semantics.rb:340:5:340:5 | [post] h [element 0] | -| semantics.rb:341:5:341:5 | [post] h [element] | semantics.rb:343:13:343:13 | h [element] | -| semantics.rb:341:5:341:5 | [post] h [element] | semantics.rb:343:13:343:13 | h [element] | -| semantics.rb:341:12:341:22 | call to source | semantics.rb:341:5:341:5 | [post] h [element] | -| semantics.rb:341:12:341:22 | call to source | semantics.rb:341:5:341:5 | [post] h [element] | -| semantics.rb:343:5:343:5 | x [element 0] | semantics.rb:345:10:345:10 | x [element 0] | -| semantics.rb:343:5:343:5 | x [element 0] | semantics.rb:345:10:345:10 | x [element 0] | -| semantics.rb:343:5:343:5 | x [element 0] | semantics.rb:347:10:347:10 | x [element 0] | -| semantics.rb:343:5:343:5 | x [element 0] | semantics.rb:347:10:347:10 | x [element 0] | -| semantics.rb:343:5:343:5 | x [element] | semantics.rb:345:10:345:10 | x [element] | -| semantics.rb:343:5:343:5 | x [element] | semantics.rb:345:10:345:10 | x [element] | -| semantics.rb:343:5:343:5 | x [element] | semantics.rb:346:10:346:10 | x [element] | -| semantics.rb:343:5:343:5 | x [element] | semantics.rb:346:10:346:10 | x [element] | -| semantics.rb:343:5:343:5 | x [element] | semantics.rb:347:10:347:10 | x [element] | -| semantics.rb:343:5:343:5 | x [element] | semantics.rb:347:10:347:10 | x [element] | -| semantics.rb:343:9:343:14 | call to s42 [element 0] | semantics.rb:343:5:343:5 | x [element 0] | -| semantics.rb:343:9:343:14 | call to s42 [element 0] | semantics.rb:343:5:343:5 | x [element 0] | -| semantics.rb:343:9:343:14 | call to s42 [element] | semantics.rb:343:5:343:5 | x [element] | -| semantics.rb:343:9:343:14 | call to s42 [element] | semantics.rb:343:5:343:5 | x [element] | -| semantics.rb:343:13:343:13 | h [element 0] | semantics.rb:343:9:343:14 | call to s42 [element 0] | -| semantics.rb:343:13:343:13 | h [element 0] | semantics.rb:343:9:343:14 | call to s42 [element 0] | -| semantics.rb:343:13:343:13 | h [element] | semantics.rb:343:9:343:14 | call to s42 [element] | -| semantics.rb:343:13:343:13 | h [element] | semantics.rb:343:9:343:14 | call to s42 [element] | -| semantics.rb:345:10:345:10 | x [element 0] | semantics.rb:345:10:345:13 | ...[...] | -| semantics.rb:345:10:345:10 | x [element 0] | semantics.rb:345:10:345:13 | ...[...] | -| semantics.rb:345:10:345:10 | x [element] | semantics.rb:345:10:345:13 | ...[...] | -| semantics.rb:345:10:345:10 | x [element] | semantics.rb:345:10:345:13 | ...[...] | -| semantics.rb:346:10:346:10 | x [element] | semantics.rb:346:10:346:13 | ...[...] | -| semantics.rb:346:10:346:10 | x [element] | semantics.rb:346:10:346:13 | ...[...] | -| semantics.rb:347:10:347:10 | x [element 0] | semantics.rb:347:10:347:13 | ...[...] | -| semantics.rb:347:10:347:10 | x [element 0] | semantics.rb:347:10:347:13 | ...[...] | -| semantics.rb:347:10:347:10 | x [element] | semantics.rb:347:10:347:13 | ...[...] | -| semantics.rb:347:10:347:10 | x [element] | semantics.rb:347:10:347:13 | ...[...] | -| semantics.rb:351:5:351:5 | [post] h [element 0] | semantics.rb:354:13:354:13 | h [element 0] | -| semantics.rb:351:5:351:5 | [post] h [element 0] | semantics.rb:354:13:354:13 | h [element 0] | -| semantics.rb:351:12:351:22 | call to source | semantics.rb:351:5:351:5 | [post] h [element 0] | -| semantics.rb:351:12:351:22 | call to source | semantics.rb:351:5:351:5 | [post] h [element 0] | -| semantics.rb:354:5:354:5 | x [element 0] | semantics.rb:356:10:356:10 | x [element 0] | -| semantics.rb:354:5:354:5 | x [element 0] | semantics.rb:356:10:356:10 | x [element 0] | -| semantics.rb:354:5:354:5 | x [element 0] | semantics.rb:358:10:358:10 | x [element 0] | -| semantics.rb:354:5:354:5 | x [element 0] | semantics.rb:358:10:358:10 | x [element 0] | -| semantics.rb:354:9:354:14 | call to s43 [element 0] | semantics.rb:354:5:354:5 | x [element 0] | -| semantics.rb:354:9:354:14 | call to s43 [element 0] | semantics.rb:354:5:354:5 | x [element 0] | -| semantics.rb:354:13:354:13 | h [element 0] | semantics.rb:354:9:354:14 | call to s43 [element 0] | -| semantics.rb:354:13:354:13 | h [element 0] | semantics.rb:354:9:354:14 | call to s43 [element 0] | -| semantics.rb:356:10:356:10 | x [element 0] | semantics.rb:356:10:356:13 | ...[...] | -| semantics.rb:356:10:356:10 | x [element 0] | semantics.rb:356:10:356:13 | ...[...] | -| semantics.rb:358:10:358:10 | x [element 0] | semantics.rb:358:10:358:13 | ...[...] | -| semantics.rb:358:10:358:10 | x [element 0] | semantics.rb:358:10:358:13 | ...[...] | -| semantics.rb:363:5:363:5 | [post] h [element 1] | semantics.rb:366:9:366:9 | h [element 1] | -| semantics.rb:363:5:363:5 | [post] h [element 1] | semantics.rb:366:9:366:9 | h [element 1] | -| semantics.rb:363:12:363:22 | call to source | semantics.rb:363:5:363:5 | [post] h [element 1] | -| semantics.rb:363:12:363:22 | call to source | semantics.rb:363:5:363:5 | [post] h [element 1] | -| semantics.rb:366:9:366:9 | [post] h [element 1] | semantics.rb:369:10:369:10 | h [element 1] | -| semantics.rb:366:9:366:9 | [post] h [element 1] | semantics.rb:369:10:369:10 | h [element 1] | -| semantics.rb:366:9:366:9 | [post] h [element 1] | semantics.rb:370:10:370:10 | h [element 1] | -| semantics.rb:366:9:366:9 | [post] h [element 1] | semantics.rb:370:10:370:10 | h [element 1] | -| semantics.rb:366:9:366:9 | h [element 1] | semantics.rb:366:9:366:9 | [post] h [element 1] | -| semantics.rb:366:9:366:9 | h [element 1] | semantics.rb:366:9:366:9 | [post] h [element 1] | -| semantics.rb:369:10:369:10 | h [element 1] | semantics.rb:369:10:369:13 | ...[...] | -| semantics.rb:369:10:369:10 | h [element 1] | semantics.rb:369:10:369:13 | ...[...] | -| semantics.rb:370:10:370:10 | h [element 1] | semantics.rb:370:10:370:13 | ...[...] | -| semantics.rb:370:10:370:10 | h [element 1] | semantics.rb:370:10:370:13 | ...[...] | -| semantics.rb:374:5:374:5 | [post] h [element 0] | semantics.rb:375:5:375:5 | h [element 0] | -| semantics.rb:374:5:374:5 | [post] h [element 0] | semantics.rb:375:5:375:5 | h [element 0] | -| semantics.rb:374:12:374:22 | call to source | semantics.rb:374:5:374:5 | [post] h [element 0] | -| semantics.rb:374:12:374:22 | call to source | semantics.rb:374:5:374:5 | [post] h [element 0] | -| semantics.rb:375:5:375:5 | [post] h [element 0] | semantics.rb:378:10:378:10 | h [element 0] | -| semantics.rb:375:5:375:5 | [post] h [element 0] | semantics.rb:378:10:378:10 | h [element 0] | -| semantics.rb:375:5:375:5 | [post] h [element 0] | semantics.rb:380:10:380:10 | h [element 0] | -| semantics.rb:375:5:375:5 | [post] h [element 0] | semantics.rb:380:10:380:10 | h [element 0] | -| semantics.rb:375:5:375:5 | [post] h [element 1] | semantics.rb:379:10:379:10 | h [element 1] | -| semantics.rb:375:5:375:5 | [post] h [element 1] | semantics.rb:379:10:379:10 | h [element 1] | -| semantics.rb:375:5:375:5 | [post] h [element 1] | semantics.rb:380:10:380:10 | h [element 1] | -| semantics.rb:375:5:375:5 | [post] h [element 1] | semantics.rb:380:10:380:10 | h [element 1] | -| semantics.rb:375:5:375:5 | [post] h [element 1] | semantics.rb:382:9:382:9 | h [element 1] | -| semantics.rb:375:5:375:5 | [post] h [element 1] | semantics.rb:382:9:382:9 | h [element 1] | -| semantics.rb:375:5:375:5 | h [element 0] | semantics.rb:375:5:375:5 | [post] h [element 0] | -| semantics.rb:375:5:375:5 | h [element 0] | semantics.rb:375:5:375:5 | [post] h [element 0] | -| semantics.rb:375:12:375:22 | call to source | semantics.rb:375:5:375:5 | [post] h [element 1] | -| semantics.rb:375:12:375:22 | call to source | semantics.rb:375:5:375:5 | [post] h [element 1] | -| semantics.rb:376:5:376:5 | [post] h [element] | semantics.rb:378:10:378:10 | h [element] | -| semantics.rb:376:5:376:5 | [post] h [element] | semantics.rb:378:10:378:10 | h [element] | -| semantics.rb:376:5:376:5 | [post] h [element] | semantics.rb:379:10:379:10 | h [element] | -| semantics.rb:376:5:376:5 | [post] h [element] | semantics.rb:379:10:379:10 | h [element] | -| semantics.rb:376:5:376:5 | [post] h [element] | semantics.rb:380:10:380:10 | h [element] | -| semantics.rb:376:5:376:5 | [post] h [element] | semantics.rb:380:10:380:10 | h [element] | -| semantics.rb:376:5:376:5 | [post] h [element] | semantics.rb:382:9:382:9 | h [element] | -| semantics.rb:376:5:376:5 | [post] h [element] | semantics.rb:382:9:382:9 | h [element] | -| semantics.rb:376:12:376:22 | call to source | semantics.rb:376:5:376:5 | [post] h [element] | -| semantics.rb:376:12:376:22 | call to source | semantics.rb:376:5:376:5 | [post] h [element] | -| semantics.rb:378:10:378:10 | h [element 0] | semantics.rb:378:10:378:13 | ...[...] | -| semantics.rb:378:10:378:10 | h [element 0] | semantics.rb:378:10:378:13 | ...[...] | -| semantics.rb:378:10:378:10 | h [element] | semantics.rb:378:10:378:13 | ...[...] | -| semantics.rb:378:10:378:10 | h [element] | semantics.rb:378:10:378:13 | ...[...] | -| semantics.rb:379:10:379:10 | h [element 1] | semantics.rb:379:10:379:13 | ...[...] | -| semantics.rb:379:10:379:10 | h [element 1] | semantics.rb:379:10:379:13 | ...[...] | -| semantics.rb:379:10:379:10 | h [element] | semantics.rb:379:10:379:13 | ...[...] | -| semantics.rb:379:10:379:10 | h [element] | semantics.rb:379:10:379:13 | ...[...] | -| semantics.rb:380:10:380:10 | h [element 0] | semantics.rb:380:10:380:13 | ...[...] | -| semantics.rb:380:10:380:10 | h [element 0] | semantics.rb:380:10:380:13 | ...[...] | -| semantics.rb:380:10:380:10 | h [element 1] | semantics.rb:380:10:380:13 | ...[...] | -| semantics.rb:380:10:380:10 | h [element 1] | semantics.rb:380:10:380:13 | ...[...] | -| semantics.rb:380:10:380:10 | h [element] | semantics.rb:380:10:380:13 | ...[...] | -| semantics.rb:380:10:380:10 | h [element] | semantics.rb:380:10:380:13 | ...[...] | -| semantics.rb:382:9:382:9 | [post] h [element 1] | semantics.rb:385:10:385:10 | h [element 1] | -| semantics.rb:382:9:382:9 | [post] h [element 1] | semantics.rb:385:10:385:10 | h [element 1] | -| semantics.rb:382:9:382:9 | [post] h [element 1] | semantics.rb:386:10:386:10 | h [element 1] | -| semantics.rb:382:9:382:9 | [post] h [element 1] | semantics.rb:386:10:386:10 | h [element 1] | -| semantics.rb:382:9:382:9 | [post] h [element] | semantics.rb:384:10:384:10 | h [element] | -| semantics.rb:382:9:382:9 | [post] h [element] | semantics.rb:384:10:384:10 | h [element] | -| semantics.rb:382:9:382:9 | [post] h [element] | semantics.rb:385:10:385:10 | h [element] | -| semantics.rb:382:9:382:9 | [post] h [element] | semantics.rb:385:10:385:10 | h [element] | -| semantics.rb:382:9:382:9 | [post] h [element] | semantics.rb:386:10:386:10 | h [element] | -| semantics.rb:382:9:382:9 | [post] h [element] | semantics.rb:386:10:386:10 | h [element] | -| semantics.rb:382:9:382:9 | h [element 1] | semantics.rb:382:9:382:9 | [post] h [element 1] | -| semantics.rb:382:9:382:9 | h [element 1] | semantics.rb:382:9:382:9 | [post] h [element 1] | -| semantics.rb:382:9:382:9 | h [element] | semantics.rb:382:9:382:9 | [post] h [element] | -| semantics.rb:382:9:382:9 | h [element] | semantics.rb:382:9:382:9 | [post] h [element] | -| semantics.rb:384:10:384:10 | h [element] | semantics.rb:384:10:384:13 | ...[...] | -| semantics.rb:384:10:384:10 | h [element] | semantics.rb:384:10:384:13 | ...[...] | -| semantics.rb:385:10:385:10 | h [element 1] | semantics.rb:385:10:385:13 | ...[...] | -| semantics.rb:385:10:385:10 | h [element 1] | semantics.rb:385:10:385:13 | ...[...] | -| semantics.rb:385:10:385:10 | h [element] | semantics.rb:385:10:385:13 | ...[...] | -| semantics.rb:385:10:385:10 | h [element] | semantics.rb:385:10:385:13 | ...[...] | -| semantics.rb:386:10:386:10 | h [element 1] | semantics.rb:386:10:386:13 | ...[...] | -| semantics.rb:386:10:386:10 | h [element 1] | semantics.rb:386:10:386:13 | ...[...] | -| semantics.rb:386:10:386:10 | h [element] | semantics.rb:386:10:386:13 | ...[...] | -| semantics.rb:386:10:386:10 | h [element] | semantics.rb:386:10:386:13 | ...[...] | -| semantics.rb:390:5:390:5 | [post] h [element 0] | semantics.rb:391:5:391:5 | h [element 0] | -| semantics.rb:390:5:390:5 | [post] h [element 0] | semantics.rb:391:5:391:5 | h [element 0] | -| semantics.rb:390:12:390:22 | call to source | semantics.rb:390:5:390:5 | [post] h [element 0] | -| semantics.rb:390:12:390:22 | call to source | semantics.rb:390:5:390:5 | [post] h [element 0] | -| semantics.rb:391:5:391:5 | [post] h [element 0] | semantics.rb:394:10:394:10 | h [element 0] | -| semantics.rb:391:5:391:5 | [post] h [element 0] | semantics.rb:394:10:394:10 | h [element 0] | -| semantics.rb:391:5:391:5 | [post] h [element 0] | semantics.rb:396:10:396:10 | h [element 0] | -| semantics.rb:391:5:391:5 | [post] h [element 0] | semantics.rb:396:10:396:10 | h [element 0] | -| semantics.rb:391:5:391:5 | [post] h [element 1] | semantics.rb:395:10:395:10 | h [element 1] | -| semantics.rb:391:5:391:5 | [post] h [element 1] | semantics.rb:395:10:395:10 | h [element 1] | -| semantics.rb:391:5:391:5 | [post] h [element 1] | semantics.rb:396:10:396:10 | h [element 1] | -| semantics.rb:391:5:391:5 | [post] h [element 1] | semantics.rb:396:10:396:10 | h [element 1] | -| semantics.rb:391:5:391:5 | [post] h [element 1] | semantics.rb:398:13:398:13 | h [element 1] | -| semantics.rb:391:5:391:5 | [post] h [element 1] | semantics.rb:398:13:398:13 | h [element 1] | -| semantics.rb:391:5:391:5 | h [element 0] | semantics.rb:391:5:391:5 | [post] h [element 0] | -| semantics.rb:391:5:391:5 | h [element 0] | semantics.rb:391:5:391:5 | [post] h [element 0] | -| semantics.rb:391:12:391:22 | call to source | semantics.rb:391:5:391:5 | [post] h [element 1] | -| semantics.rb:391:12:391:22 | call to source | semantics.rb:391:5:391:5 | [post] h [element 1] | -| semantics.rb:392:5:392:5 | [post] h [element] | semantics.rb:394:10:394:10 | h [element] | -| semantics.rb:392:5:392:5 | [post] h [element] | semantics.rb:394:10:394:10 | h [element] | -| semantics.rb:392:5:392:5 | [post] h [element] | semantics.rb:395:10:395:10 | h [element] | -| semantics.rb:392:5:392:5 | [post] h [element] | semantics.rb:395:10:395:10 | h [element] | -| semantics.rb:392:5:392:5 | [post] h [element] | semantics.rb:396:10:396:10 | h [element] | -| semantics.rb:392:5:392:5 | [post] h [element] | semantics.rb:396:10:396:10 | h [element] | -| semantics.rb:392:12:392:22 | call to source | semantics.rb:392:5:392:5 | [post] h [element] | -| semantics.rb:392:12:392:22 | call to source | semantics.rb:392:5:392:5 | [post] h [element] | -| semantics.rb:394:10:394:10 | h [element 0] | semantics.rb:394:10:394:13 | ...[...] | -| semantics.rb:394:10:394:10 | h [element 0] | semantics.rb:394:10:394:13 | ...[...] | -| semantics.rb:394:10:394:10 | h [element] | semantics.rb:394:10:394:13 | ...[...] | -| semantics.rb:394:10:394:10 | h [element] | semantics.rb:394:10:394:13 | ...[...] | -| semantics.rb:395:10:395:10 | h [element 1] | semantics.rb:395:10:395:13 | ...[...] | -| semantics.rb:395:10:395:10 | h [element 1] | semantics.rb:395:10:395:13 | ...[...] | -| semantics.rb:395:10:395:10 | h [element] | semantics.rb:395:10:395:13 | ...[...] | -| semantics.rb:395:10:395:10 | h [element] | semantics.rb:395:10:395:13 | ...[...] | -| semantics.rb:396:10:396:10 | h [element 0] | semantics.rb:396:10:396:13 | ...[...] | -| semantics.rb:396:10:396:10 | h [element 0] | semantics.rb:396:10:396:13 | ...[...] | -| semantics.rb:396:10:396:10 | h [element 1] | semantics.rb:396:10:396:13 | ...[...] | -| semantics.rb:396:10:396:10 | h [element 1] | semantics.rb:396:10:396:13 | ...[...] | -| semantics.rb:396:10:396:10 | h [element] | semantics.rb:396:10:396:13 | ...[...] | -| semantics.rb:396:10:396:10 | h [element] | semantics.rb:396:10:396:13 | ...[...] | -| semantics.rb:398:5:398:5 | x [element 1] | semantics.rb:401:10:401:10 | x [element 1] | -| semantics.rb:398:5:398:5 | x [element 1] | semantics.rb:401:10:401:10 | x [element 1] | -| semantics.rb:398:5:398:5 | x [element 1] | semantics.rb:402:10:402:10 | x [element 1] | -| semantics.rb:398:5:398:5 | x [element 1] | semantics.rb:402:10:402:10 | x [element 1] | -| semantics.rb:398:9:398:14 | call to s46 [element 1] | semantics.rb:398:5:398:5 | x [element 1] | -| semantics.rb:398:9:398:14 | call to s46 [element 1] | semantics.rb:398:5:398:5 | x [element 1] | -| semantics.rb:398:13:398:13 | h [element 1] | semantics.rb:398:9:398:14 | call to s46 [element 1] | -| semantics.rb:398:13:398:13 | h [element 1] | semantics.rb:398:9:398:14 | call to s46 [element 1] | -| semantics.rb:401:10:401:10 | x [element 1] | semantics.rb:401:10:401:13 | ...[...] | -| semantics.rb:401:10:401:10 | x [element 1] | semantics.rb:401:10:401:13 | ...[...] | -| semantics.rb:402:10:402:10 | x [element 1] | semantics.rb:402:10:402:13 | ...[...] | -| semantics.rb:402:10:402:10 | x [element 1] | semantics.rb:402:10:402:13 | ...[...] | -| semantics.rb:406:5:406:5 | [post] h [element :foo] | semantics.rb:407:5:407:5 | h [element :foo] | -| semantics.rb:406:5:406:5 | [post] h [element :foo] | semantics.rb:407:5:407:5 | h [element :foo] | -| semantics.rb:406:15:406:25 | call to source | semantics.rb:406:5:406:5 | [post] h [element :foo] | -| semantics.rb:406:15:406:25 | call to source | semantics.rb:406:5:406:5 | [post] h [element :foo] | -| semantics.rb:407:5:407:5 | [post] h [element :bar] | semantics.rb:411:10:411:10 | h [element :bar] | -| semantics.rb:407:5:407:5 | [post] h [element :bar] | semantics.rb:411:10:411:10 | h [element :bar] | -| semantics.rb:407:5:407:5 | [post] h [element :bar] | semantics.rb:413:13:413:13 | h [element :bar] | -| semantics.rb:407:5:407:5 | [post] h [element :bar] | semantics.rb:413:13:413:13 | h [element :bar] | -| semantics.rb:407:5:407:5 | [post] h [element :foo] | semantics.rb:410:10:410:10 | h [element :foo] | -| semantics.rb:407:5:407:5 | [post] h [element :foo] | semantics.rb:410:10:410:10 | h [element :foo] | -| semantics.rb:407:5:407:5 | h [element :foo] | semantics.rb:407:5:407:5 | [post] h [element :foo] | -| semantics.rb:407:5:407:5 | h [element :foo] | semantics.rb:407:5:407:5 | [post] h [element :foo] | -| semantics.rb:407:15:407:25 | call to source | semantics.rb:407:5:407:5 | [post] h [element :bar] | -| semantics.rb:407:15:407:25 | call to source | semantics.rb:407:5:407:5 | [post] h [element :bar] | -| semantics.rb:408:5:408:5 | [post] h [element] | semantics.rb:410:10:410:10 | h [element] | -| semantics.rb:408:5:408:5 | [post] h [element] | semantics.rb:410:10:410:10 | h [element] | -| semantics.rb:408:5:408:5 | [post] h [element] | semantics.rb:411:10:411:10 | h [element] | -| semantics.rb:408:5:408:5 | [post] h [element] | semantics.rb:411:10:411:10 | h [element] | -| semantics.rb:408:12:408:22 | call to source | semantics.rb:408:5:408:5 | [post] h [element] | -| semantics.rb:408:12:408:22 | call to source | semantics.rb:408:5:408:5 | [post] h [element] | -| semantics.rb:410:10:410:10 | h [element :foo] | semantics.rb:410:10:410:16 | ...[...] | -| semantics.rb:410:10:410:10 | h [element :foo] | semantics.rb:410:10:410:16 | ...[...] | -| semantics.rb:410:10:410:10 | h [element] | semantics.rb:410:10:410:16 | ...[...] | -| semantics.rb:410:10:410:10 | h [element] | semantics.rb:410:10:410:16 | ...[...] | -| semantics.rb:411:10:411:10 | h [element :bar] | semantics.rb:411:10:411:16 | ...[...] | -| semantics.rb:411:10:411:10 | h [element :bar] | semantics.rb:411:10:411:16 | ...[...] | -| semantics.rb:411:10:411:10 | h [element] | semantics.rb:411:10:411:16 | ...[...] | -| semantics.rb:411:10:411:10 | h [element] | semantics.rb:411:10:411:16 | ...[...] | -| semantics.rb:413:5:413:5 | x [element :bar] | semantics.rb:416:10:416:10 | x [element :bar] | -| semantics.rb:413:5:413:5 | x [element :bar] | semantics.rb:416:10:416:10 | x [element :bar] | -| semantics.rb:413:9:413:14 | call to s47 [element :bar] | semantics.rb:413:5:413:5 | x [element :bar] | -| semantics.rb:413:9:413:14 | call to s47 [element :bar] | semantics.rb:413:5:413:5 | x [element :bar] | -| semantics.rb:413:13:413:13 | h [element :bar] | semantics.rb:413:9:413:14 | call to s47 [element :bar] | -| semantics.rb:413:13:413:13 | h [element :bar] | semantics.rb:413:9:413:14 | call to s47 [element :bar] | -| semantics.rb:416:10:416:10 | x [element :bar] | semantics.rb:416:10:416:16 | ...[...] | -| semantics.rb:416:10:416:10 | x [element :bar] | semantics.rb:416:10:416:16 | ...[...] | -| semantics.rb:420:5:420:5 | [post] h [element :foo] | semantics.rb:421:5:421:5 | h [element :foo] | -| semantics.rb:420:5:420:5 | [post] h [element :foo] | semantics.rb:421:5:421:5 | h [element :foo] | -| semantics.rb:420:15:420:25 | call to source | semantics.rb:420:5:420:5 | [post] h [element :foo] | -| semantics.rb:420:15:420:25 | call to source | semantics.rb:420:5:420:5 | [post] h [element :foo] | -| semantics.rb:421:5:421:5 | [post] h [element :bar] | semantics.rb:425:10:425:10 | h [element :bar] | -| semantics.rb:421:5:421:5 | [post] h [element :bar] | semantics.rb:425:10:425:10 | h [element :bar] | -| semantics.rb:421:5:421:5 | [post] h [element :bar] | semantics.rb:427:13:427:13 | h [element :bar] | -| semantics.rb:421:5:421:5 | [post] h [element :bar] | semantics.rb:427:13:427:13 | h [element :bar] | -| semantics.rb:421:5:421:5 | [post] h [element :foo] | semantics.rb:424:10:424:10 | h [element :foo] | -| semantics.rb:421:5:421:5 | [post] h [element :foo] | semantics.rb:424:10:424:10 | h [element :foo] | -| semantics.rb:421:5:421:5 | h [element :foo] | semantics.rb:421:5:421:5 | [post] h [element :foo] | -| semantics.rb:421:5:421:5 | h [element :foo] | semantics.rb:421:5:421:5 | [post] h [element :foo] | -| semantics.rb:421:15:421:25 | call to source | semantics.rb:421:5:421:5 | [post] h [element :bar] | -| semantics.rb:421:15:421:25 | call to source | semantics.rb:421:5:421:5 | [post] h [element :bar] | -| semantics.rb:422:5:422:5 | [post] h [element] | semantics.rb:424:10:424:10 | h [element] | -| semantics.rb:422:5:422:5 | [post] h [element] | semantics.rb:424:10:424:10 | h [element] | -| semantics.rb:422:5:422:5 | [post] h [element] | semantics.rb:425:10:425:10 | h [element] | -| semantics.rb:422:5:422:5 | [post] h [element] | semantics.rb:425:10:425:10 | h [element] | -| semantics.rb:422:12:422:22 | call to source | semantics.rb:422:5:422:5 | [post] h [element] | -| semantics.rb:422:12:422:22 | call to source | semantics.rb:422:5:422:5 | [post] h [element] | -| semantics.rb:424:10:424:10 | h [element :foo] | semantics.rb:424:10:424:16 | ...[...] | -| semantics.rb:424:10:424:10 | h [element :foo] | semantics.rb:424:10:424:16 | ...[...] | -| semantics.rb:424:10:424:10 | h [element] | semantics.rb:424:10:424:16 | ...[...] | -| semantics.rb:424:10:424:10 | h [element] | semantics.rb:424:10:424:16 | ...[...] | -| semantics.rb:425:10:425:10 | h [element :bar] | semantics.rb:425:10:425:16 | ...[...] | -| semantics.rb:425:10:425:10 | h [element :bar] | semantics.rb:425:10:425:16 | ...[...] | -| semantics.rb:425:10:425:10 | h [element] | semantics.rb:425:10:425:16 | ...[...] | -| semantics.rb:425:10:425:10 | h [element] | semantics.rb:425:10:425:16 | ...[...] | -| semantics.rb:427:5:427:5 | x [element :bar] | semantics.rb:430:10:430:10 | x [element :bar] | -| semantics.rb:427:5:427:5 | x [element :bar] | semantics.rb:430:10:430:10 | x [element :bar] | -| semantics.rb:427:9:427:14 | call to s48 [element :bar] | semantics.rb:427:5:427:5 | x [element :bar] | -| semantics.rb:427:9:427:14 | call to s48 [element :bar] | semantics.rb:427:5:427:5 | x [element :bar] | -| semantics.rb:427:13:427:13 | h [element :bar] | semantics.rb:427:9:427:14 | call to s48 [element :bar] | -| semantics.rb:427:13:427:13 | h [element :bar] | semantics.rb:427:9:427:14 | call to s48 [element :bar] | -| semantics.rb:430:10:430:10 | x [element :bar] | semantics.rb:430:10:430:16 | ...[...] | -| semantics.rb:430:10:430:10 | x [element :bar] | semantics.rb:430:10:430:16 | ...[...] | -| semantics.rb:434:5:434:5 | [post] h [element :foo] | semantics.rb:435:5:435:5 | h [element :foo] | -| semantics.rb:434:5:434:5 | [post] h [element :foo] | semantics.rb:435:5:435:5 | h [element :foo] | -| semantics.rb:434:15:434:25 | call to source | semantics.rb:434:5:434:5 | [post] h [element :foo] | -| semantics.rb:434:15:434:25 | call to source | semantics.rb:434:5:434:5 | [post] h [element :foo] | -| semantics.rb:435:5:435:5 | [post] h [element :bar] | semantics.rb:439:10:439:10 | h [element :bar] | -| semantics.rb:435:5:435:5 | [post] h [element :bar] | semantics.rb:439:10:439:10 | h [element :bar] | -| semantics.rb:435:5:435:5 | [post] h [element :bar] | semantics.rb:441:13:441:13 | h [element :bar] | -| semantics.rb:435:5:435:5 | [post] h [element :bar] | semantics.rb:441:13:441:13 | h [element :bar] | -| semantics.rb:435:5:435:5 | [post] h [element :foo] | semantics.rb:438:10:438:10 | h [element :foo] | -| semantics.rb:435:5:435:5 | [post] h [element :foo] | semantics.rb:438:10:438:10 | h [element :foo] | -| semantics.rb:435:5:435:5 | h [element :foo] | semantics.rb:435:5:435:5 | [post] h [element :foo] | -| semantics.rb:435:5:435:5 | h [element :foo] | semantics.rb:435:5:435:5 | [post] h [element :foo] | -| semantics.rb:435:15:435:25 | call to source | semantics.rb:435:5:435:5 | [post] h [element :bar] | -| semantics.rb:435:15:435:25 | call to source | semantics.rb:435:5:435:5 | [post] h [element :bar] | -| semantics.rb:436:5:436:5 | [post] h [element] | semantics.rb:438:10:438:10 | h [element] | -| semantics.rb:436:5:436:5 | [post] h [element] | semantics.rb:438:10:438:10 | h [element] | -| semantics.rb:436:5:436:5 | [post] h [element] | semantics.rb:439:10:439:10 | h [element] | -| semantics.rb:436:5:436:5 | [post] h [element] | semantics.rb:439:10:439:10 | h [element] | -| semantics.rb:436:5:436:5 | [post] h [element] | semantics.rb:441:13:441:13 | h [element] | -| semantics.rb:436:5:436:5 | [post] h [element] | semantics.rb:441:13:441:13 | h [element] | -| semantics.rb:436:12:436:22 | call to source | semantics.rb:436:5:436:5 | [post] h [element] | -| semantics.rb:436:12:436:22 | call to source | semantics.rb:436:5:436:5 | [post] h [element] | -| semantics.rb:438:10:438:10 | h [element :foo] | semantics.rb:438:10:438:16 | ...[...] | -| semantics.rb:438:10:438:10 | h [element :foo] | semantics.rb:438:10:438:16 | ...[...] | -| semantics.rb:438:10:438:10 | h [element] | semantics.rb:438:10:438:16 | ...[...] | -| semantics.rb:438:10:438:10 | h [element] | semantics.rb:438:10:438:16 | ...[...] | -| semantics.rb:439:10:439:10 | h [element :bar] | semantics.rb:439:10:439:16 | ...[...] | -| semantics.rb:439:10:439:10 | h [element :bar] | semantics.rb:439:10:439:16 | ...[...] | -| semantics.rb:439:10:439:10 | h [element] | semantics.rb:439:10:439:16 | ...[...] | -| semantics.rb:439:10:439:10 | h [element] | semantics.rb:439:10:439:16 | ...[...] | -| semantics.rb:441:5:441:5 | x [element :bar] | semantics.rb:444:10:444:10 | x [element :bar] | -| semantics.rb:441:5:441:5 | x [element :bar] | semantics.rb:444:10:444:10 | x [element :bar] | -| semantics.rb:441:5:441:5 | x [element] | semantics.rb:443:10:443:10 | x [element] | -| semantics.rb:441:5:441:5 | x [element] | semantics.rb:443:10:443:10 | x [element] | -| semantics.rb:441:5:441:5 | x [element] | semantics.rb:444:10:444:10 | x [element] | -| semantics.rb:441:5:441:5 | x [element] | semantics.rb:444:10:444:10 | x [element] | -| semantics.rb:441:9:441:14 | call to s49 [element :bar] | semantics.rb:441:5:441:5 | x [element :bar] | -| semantics.rb:441:9:441:14 | call to s49 [element :bar] | semantics.rb:441:5:441:5 | x [element :bar] | -| semantics.rb:441:9:441:14 | call to s49 [element] | semantics.rb:441:5:441:5 | x [element] | -| semantics.rb:441:9:441:14 | call to s49 [element] | semantics.rb:441:5:441:5 | x [element] | -| semantics.rb:441:13:441:13 | h [element :bar] | semantics.rb:441:9:441:14 | call to s49 [element :bar] | -| semantics.rb:441:13:441:13 | h [element :bar] | semantics.rb:441:9:441:14 | call to s49 [element :bar] | -| semantics.rb:441:13:441:13 | h [element] | semantics.rb:441:9:441:14 | call to s49 [element] | -| semantics.rb:441:13:441:13 | h [element] | semantics.rb:441:9:441:14 | call to s49 [element] | -| semantics.rb:443:10:443:10 | x [element] | semantics.rb:443:10:443:16 | ...[...] | -| semantics.rb:443:10:443:10 | x [element] | semantics.rb:443:10:443:16 | ...[...] | -| semantics.rb:444:10:444:10 | x [element :bar] | semantics.rb:444:10:444:16 | ...[...] | -| semantics.rb:444:10:444:10 | x [element :bar] | semantics.rb:444:10:444:16 | ...[...] | -| semantics.rb:444:10:444:10 | x [element] | semantics.rb:444:10:444:16 | ...[...] | -| semantics.rb:444:10:444:10 | x [element] | semantics.rb:444:10:444:16 | ...[...] | -| semantics.rb:448:5:448:5 | [post] h [element :foo] | semantics.rb:449:5:449:5 | h [element :foo] | -| semantics.rb:448:5:448:5 | [post] h [element :foo] | semantics.rb:449:5:449:5 | h [element :foo] | -| semantics.rb:448:15:448:25 | call to source | semantics.rb:448:5:448:5 | [post] h [element :foo] | -| semantics.rb:448:15:448:25 | call to source | semantics.rb:448:5:448:5 | [post] h [element :foo] | -| semantics.rb:449:5:449:5 | [post] h [element :bar] | semantics.rb:453:10:453:10 | h [element :bar] | -| semantics.rb:449:5:449:5 | [post] h [element :bar] | semantics.rb:453:10:453:10 | h [element :bar] | -| semantics.rb:449:5:449:5 | [post] h [element :bar] | semantics.rb:455:9:455:9 | h [element :bar] | -| semantics.rb:449:5:449:5 | [post] h [element :bar] | semantics.rb:455:9:455:9 | h [element :bar] | -| semantics.rb:449:5:449:5 | [post] h [element :foo] | semantics.rb:452:10:452:10 | h [element :foo] | -| semantics.rb:449:5:449:5 | [post] h [element :foo] | semantics.rb:452:10:452:10 | h [element :foo] | -| semantics.rb:449:5:449:5 | h [element :foo] | semantics.rb:449:5:449:5 | [post] h [element :foo] | -| semantics.rb:449:5:449:5 | h [element :foo] | semantics.rb:449:5:449:5 | [post] h [element :foo] | -| semantics.rb:449:15:449:25 | call to source | semantics.rb:449:5:449:5 | [post] h [element :bar] | -| semantics.rb:449:15:449:25 | call to source | semantics.rb:449:5:449:5 | [post] h [element :bar] | -| semantics.rb:450:5:450:5 | [post] h [element] | semantics.rb:452:10:452:10 | h [element] | -| semantics.rb:450:5:450:5 | [post] h [element] | semantics.rb:452:10:452:10 | h [element] | -| semantics.rb:450:5:450:5 | [post] h [element] | semantics.rb:453:10:453:10 | h [element] | -| semantics.rb:450:5:450:5 | [post] h [element] | semantics.rb:453:10:453:10 | h [element] | -| semantics.rb:450:12:450:22 | call to source | semantics.rb:450:5:450:5 | [post] h [element] | -| semantics.rb:450:12:450:22 | call to source | semantics.rb:450:5:450:5 | [post] h [element] | -| semantics.rb:452:10:452:10 | h [element :foo] | semantics.rb:452:10:452:16 | ...[...] | -| semantics.rb:452:10:452:10 | h [element :foo] | semantics.rb:452:10:452:16 | ...[...] | -| semantics.rb:452:10:452:10 | h [element] | semantics.rb:452:10:452:16 | ...[...] | -| semantics.rb:452:10:452:10 | h [element] | semantics.rb:452:10:452:16 | ...[...] | -| semantics.rb:453:10:453:10 | h [element :bar] | semantics.rb:453:10:453:16 | ...[...] | -| semantics.rb:453:10:453:10 | h [element :bar] | semantics.rb:453:10:453:16 | ...[...] | -| semantics.rb:453:10:453:10 | h [element] | semantics.rb:453:10:453:16 | ...[...] | -| semantics.rb:453:10:453:10 | h [element] | semantics.rb:453:10:453:16 | ...[...] | -| semantics.rb:455:9:455:9 | [post] h [element :bar] | semantics.rb:458:10:458:10 | h [element :bar] | -| semantics.rb:455:9:455:9 | [post] h [element :bar] | semantics.rb:458:10:458:10 | h [element :bar] | -| semantics.rb:455:9:455:9 | h [element :bar] | semantics.rb:455:9:455:9 | [post] h [element :bar] | -| semantics.rb:455:9:455:9 | h [element :bar] | semantics.rb:455:9:455:9 | [post] h [element :bar] | -| semantics.rb:458:10:458:10 | h [element :bar] | semantics.rb:458:10:458:16 | ...[...] | -| semantics.rb:458:10:458:10 | h [element :bar] | semantics.rb:458:10:458:16 | ...[...] | -| semantics.rb:462:5:462:5 | [post] h [element :foo] | semantics.rb:463:5:463:5 | h [element :foo] | -| semantics.rb:462:5:462:5 | [post] h [element :foo] | semantics.rb:463:5:463:5 | h [element :foo] | -| semantics.rb:462:15:462:25 | call to source | semantics.rb:462:5:462:5 | [post] h [element :foo] | -| semantics.rb:462:15:462:25 | call to source | semantics.rb:462:5:462:5 | [post] h [element :foo] | -| semantics.rb:463:5:463:5 | [post] h [element :bar] | semantics.rb:467:10:467:10 | h [element :bar] | -| semantics.rb:463:5:463:5 | [post] h [element :bar] | semantics.rb:467:10:467:10 | h [element :bar] | -| semantics.rb:463:5:463:5 | [post] h [element :bar] | semantics.rb:469:9:469:9 | h [element :bar] | -| semantics.rb:463:5:463:5 | [post] h [element :bar] | semantics.rb:469:9:469:9 | h [element :bar] | -| semantics.rb:463:5:463:5 | [post] h [element :foo] | semantics.rb:466:10:466:10 | h [element :foo] | -| semantics.rb:463:5:463:5 | [post] h [element :foo] | semantics.rb:466:10:466:10 | h [element :foo] | -| semantics.rb:463:5:463:5 | h [element :foo] | semantics.rb:463:5:463:5 | [post] h [element :foo] | -| semantics.rb:463:5:463:5 | h [element :foo] | semantics.rb:463:5:463:5 | [post] h [element :foo] | -| semantics.rb:463:15:463:25 | call to source | semantics.rb:463:5:463:5 | [post] h [element :bar] | -| semantics.rb:463:15:463:25 | call to source | semantics.rb:463:5:463:5 | [post] h [element :bar] | -| semantics.rb:464:5:464:5 | [post] h [element] | semantics.rb:466:10:466:10 | h [element] | -| semantics.rb:464:5:464:5 | [post] h [element] | semantics.rb:466:10:466:10 | h [element] | -| semantics.rb:464:5:464:5 | [post] h [element] | semantics.rb:467:10:467:10 | h [element] | -| semantics.rb:464:5:464:5 | [post] h [element] | semantics.rb:467:10:467:10 | h [element] | -| semantics.rb:464:5:464:5 | [post] h [element] | semantics.rb:469:9:469:9 | h [element] | -| semantics.rb:464:5:464:5 | [post] h [element] | semantics.rb:469:9:469:9 | h [element] | -| semantics.rb:464:12:464:22 | call to source | semantics.rb:464:5:464:5 | [post] h [element] | -| semantics.rb:464:12:464:22 | call to source | semantics.rb:464:5:464:5 | [post] h [element] | -| semantics.rb:466:10:466:10 | h [element :foo] | semantics.rb:466:10:466:16 | ...[...] | -| semantics.rb:466:10:466:10 | h [element :foo] | semantics.rb:466:10:466:16 | ...[...] | -| semantics.rb:466:10:466:10 | h [element] | semantics.rb:466:10:466:16 | ...[...] | -| semantics.rb:466:10:466:10 | h [element] | semantics.rb:466:10:466:16 | ...[...] | -| semantics.rb:467:10:467:10 | h [element :bar] | semantics.rb:467:10:467:16 | ...[...] | -| semantics.rb:467:10:467:10 | h [element :bar] | semantics.rb:467:10:467:16 | ...[...] | -| semantics.rb:467:10:467:10 | h [element] | semantics.rb:467:10:467:16 | ...[...] | -| semantics.rb:467:10:467:10 | h [element] | semantics.rb:467:10:467:16 | ...[...] | -| semantics.rb:469:9:469:9 | [post] h [element :bar] | semantics.rb:472:10:472:10 | h [element :bar] | -| semantics.rb:469:9:469:9 | [post] h [element :bar] | semantics.rb:472:10:472:10 | h [element :bar] | -| semantics.rb:469:9:469:9 | [post] h [element] | semantics.rb:471:10:471:10 | h [element] | -| semantics.rb:469:9:469:9 | [post] h [element] | semantics.rb:471:10:471:10 | h [element] | -| semantics.rb:469:9:469:9 | [post] h [element] | semantics.rb:472:10:472:10 | h [element] | -| semantics.rb:469:9:469:9 | [post] h [element] | semantics.rb:472:10:472:10 | h [element] | -| semantics.rb:469:9:469:9 | h [element :bar] | semantics.rb:469:9:469:9 | [post] h [element :bar] | -| semantics.rb:469:9:469:9 | h [element :bar] | semantics.rb:469:9:469:9 | [post] h [element :bar] | -| semantics.rb:469:9:469:9 | h [element] | semantics.rb:469:9:469:9 | [post] h [element] | -| semantics.rb:469:9:469:9 | h [element] | semantics.rb:469:9:469:9 | [post] h [element] | -| semantics.rb:471:10:471:10 | h [element] | semantics.rb:471:10:471:16 | ...[...] | -| semantics.rb:471:10:471:10 | h [element] | semantics.rb:471:10:471:16 | ...[...] | -| semantics.rb:472:10:472:10 | h [element :bar] | semantics.rb:472:10:472:16 | ...[...] | -| semantics.rb:472:10:472:10 | h [element :bar] | semantics.rb:472:10:472:16 | ...[...] | -| semantics.rb:472:10:472:10 | h [element] | semantics.rb:472:10:472:16 | ...[...] | -| semantics.rb:472:10:472:10 | h [element] | semantics.rb:472:10:472:16 | ...[...] | -| semantics.rb:476:5:476:5 | [post] h [element :foo] | semantics.rb:477:5:477:5 | h [element :foo] | -| semantics.rb:476:5:476:5 | [post] h [element :foo] | semantics.rb:477:5:477:5 | h [element :foo] | -| semantics.rb:476:15:476:25 | call to source | semantics.rb:476:5:476:5 | [post] h [element :foo] | -| semantics.rb:476:15:476:25 | call to source | semantics.rb:476:5:476:5 | [post] h [element :foo] | -| semantics.rb:477:5:477:5 | [post] h [element :bar] | semantics.rb:481:10:481:10 | h [element :bar] | -| semantics.rb:477:5:477:5 | [post] h [element :bar] | semantics.rb:481:10:481:10 | h [element :bar] | -| semantics.rb:477:5:477:5 | [post] h [element :bar] | semantics.rb:483:5:483:5 | h [element :bar] | -| semantics.rb:477:5:477:5 | [post] h [element :bar] | semantics.rb:483:5:483:5 | h [element :bar] | -| semantics.rb:477:5:477:5 | [post] h [element :foo] | semantics.rb:480:10:480:10 | h [element :foo] | -| semantics.rb:477:5:477:5 | [post] h [element :foo] | semantics.rb:480:10:480:10 | h [element :foo] | -| semantics.rb:477:5:477:5 | h [element :foo] | semantics.rb:477:5:477:5 | [post] h [element :foo] | -| semantics.rb:477:5:477:5 | h [element :foo] | semantics.rb:477:5:477:5 | [post] h [element :foo] | -| semantics.rb:477:15:477:25 | call to source | semantics.rb:477:5:477:5 | [post] h [element :bar] | -| semantics.rb:477:15:477:25 | call to source | semantics.rb:477:5:477:5 | [post] h [element :bar] | -| semantics.rb:478:5:478:5 | [post] h [element] | semantics.rb:480:10:480:10 | h [element] | -| semantics.rb:478:5:478:5 | [post] h [element] | semantics.rb:480:10:480:10 | h [element] | -| semantics.rb:478:5:478:5 | [post] h [element] | semantics.rb:481:10:481:10 | h [element] | -| semantics.rb:478:5:478:5 | [post] h [element] | semantics.rb:481:10:481:10 | h [element] | -| semantics.rb:478:12:478:22 | call to source | semantics.rb:478:5:478:5 | [post] h [element] | -| semantics.rb:478:12:478:22 | call to source | semantics.rb:478:5:478:5 | [post] h [element] | -| semantics.rb:480:10:480:10 | h [element :foo] | semantics.rb:480:10:480:16 | ...[...] | -| semantics.rb:480:10:480:10 | h [element :foo] | semantics.rb:480:10:480:16 | ...[...] | -| semantics.rb:480:10:480:10 | h [element] | semantics.rb:480:10:480:16 | ...[...] | -| semantics.rb:480:10:480:10 | h [element] | semantics.rb:480:10:480:16 | ...[...] | -| semantics.rb:481:10:481:10 | h [element :bar] | semantics.rb:481:10:481:16 | ...[...] | -| semantics.rb:481:10:481:10 | h [element :bar] | semantics.rb:481:10:481:16 | ...[...] | -| semantics.rb:481:10:481:10 | h [element] | semantics.rb:481:10:481:16 | ...[...] | -| semantics.rb:481:10:481:10 | h [element] | semantics.rb:481:10:481:16 | ...[...] | -| semantics.rb:483:5:483:5 | [post] h [element :bar] | semantics.rb:486:10:486:10 | h [element :bar] | -| semantics.rb:483:5:483:5 | [post] h [element :bar] | semantics.rb:486:10:486:10 | h [element :bar] | -| semantics.rb:483:5:483:5 | h [element :bar] | semantics.rb:483:5:483:5 | [post] h [element :bar] | -| semantics.rb:483:5:483:5 | h [element :bar] | semantics.rb:483:5:483:5 | [post] h [element :bar] | -| semantics.rb:486:10:486:10 | h [element :bar] | semantics.rb:486:10:486:16 | ...[...] | -| semantics.rb:486:10:486:10 | h [element :bar] | semantics.rb:486:10:486:16 | ...[...] | -| semantics.rb:490:5:490:5 | [post] h [element :foo] | semantics.rb:491:5:491:5 | h [element :foo] | -| semantics.rb:490:5:490:5 | [post] h [element :foo] | semantics.rb:491:5:491:5 | h [element :foo] | -| semantics.rb:490:15:490:25 | call to source | semantics.rb:490:5:490:5 | [post] h [element :foo] | -| semantics.rb:490:15:490:25 | call to source | semantics.rb:490:5:490:5 | [post] h [element :foo] | -| semantics.rb:491:5:491:5 | [post] h [element :bar] | semantics.rb:495:10:495:10 | h [element :bar] | -| semantics.rb:491:5:491:5 | [post] h [element :bar] | semantics.rb:495:10:495:10 | h [element :bar] | -| semantics.rb:491:5:491:5 | [post] h [element :bar] | semantics.rb:497:9:497:9 | h [element :bar] | -| semantics.rb:491:5:491:5 | [post] h [element :bar] | semantics.rb:497:9:497:9 | h [element :bar] | -| semantics.rb:491:5:491:5 | [post] h [element :foo] | semantics.rb:494:10:494:10 | h [element :foo] | -| semantics.rb:491:5:491:5 | [post] h [element :foo] | semantics.rb:494:10:494:10 | h [element :foo] | -| semantics.rb:491:5:491:5 | h [element :foo] | semantics.rb:491:5:491:5 | [post] h [element :foo] | -| semantics.rb:491:5:491:5 | h [element :foo] | semantics.rb:491:5:491:5 | [post] h [element :foo] | -| semantics.rb:491:15:491:25 | call to source | semantics.rb:491:5:491:5 | [post] h [element :bar] | -| semantics.rb:491:15:491:25 | call to source | semantics.rb:491:5:491:5 | [post] h [element :bar] | -| semantics.rb:492:5:492:5 | [post] h [element] | semantics.rb:494:10:494:10 | h [element] | -| semantics.rb:492:5:492:5 | [post] h [element] | semantics.rb:494:10:494:10 | h [element] | -| semantics.rb:492:5:492:5 | [post] h [element] | semantics.rb:495:10:495:10 | h [element] | -| semantics.rb:492:5:492:5 | [post] h [element] | semantics.rb:495:10:495:10 | h [element] | -| semantics.rb:492:12:492:22 | call to source | semantics.rb:492:5:492:5 | [post] h [element] | -| semantics.rb:492:12:492:22 | call to source | semantics.rb:492:5:492:5 | [post] h [element] | -| semantics.rb:494:10:494:10 | h [element :foo] | semantics.rb:494:10:494:16 | ...[...] | -| semantics.rb:494:10:494:10 | h [element :foo] | semantics.rb:494:10:494:16 | ...[...] | -| semantics.rb:494:10:494:10 | h [element] | semantics.rb:494:10:494:16 | ...[...] | -| semantics.rb:494:10:494:10 | h [element] | semantics.rb:494:10:494:16 | ...[...] | -| semantics.rb:495:10:495:10 | h [element :bar] | semantics.rb:495:10:495:16 | ...[...] | -| semantics.rb:495:10:495:10 | h [element :bar] | semantics.rb:495:10:495:16 | ...[...] | -| semantics.rb:495:10:495:10 | h [element] | semantics.rb:495:10:495:16 | ...[...] | -| semantics.rb:495:10:495:10 | h [element] | semantics.rb:495:10:495:16 | ...[...] | -| semantics.rb:497:5:497:5 | x [element :bar] | semantics.rb:500:10:500:10 | x [element :bar] | -| semantics.rb:497:5:497:5 | x [element :bar] | semantics.rb:500:10:500:10 | x [element :bar] | -| semantics.rb:497:9:497:9 | h [element :bar] | semantics.rb:497:9:497:15 | call to s53 [element :bar] | -| semantics.rb:497:9:497:9 | h [element :bar] | semantics.rb:497:9:497:15 | call to s53 [element :bar] | -| semantics.rb:497:9:497:15 | call to s53 [element :bar] | semantics.rb:497:5:497:5 | x [element :bar] | -| semantics.rb:497:9:497:15 | call to s53 [element :bar] | semantics.rb:497:5:497:5 | x [element :bar] | -| semantics.rb:500:10:500:10 | x [element :bar] | semantics.rb:500:10:500:16 | ...[...] | -| semantics.rb:500:10:500:10 | x [element :bar] | semantics.rb:500:10:500:16 | ...[...] | -| semantics.rb:502:10:502:20 | call to source | semantics.rb:502:10:502:26 | call to s53 | -| semantics.rb:502:10:502:20 | call to source | semantics.rb:502:10:502:26 | call to s53 | -| semantics.rb:506:5:506:5 | [post] h [element :foo] | semantics.rb:507:5:507:5 | h [element :foo] | -| semantics.rb:506:5:506:5 | [post] h [element :foo] | semantics.rb:507:5:507:5 | h [element :foo] | -| semantics.rb:506:15:506:25 | call to source | semantics.rb:506:5:506:5 | [post] h [element :foo] | -| semantics.rb:506:15:506:25 | call to source | semantics.rb:506:5:506:5 | [post] h [element :foo] | -| semantics.rb:507:5:507:5 | [post] h [element :bar] | semantics.rb:511:10:511:10 | h [element :bar] | -| semantics.rb:507:5:507:5 | [post] h [element :bar] | semantics.rb:511:10:511:10 | h [element :bar] | -| semantics.rb:507:5:507:5 | [post] h [element :bar] | semantics.rb:513:9:513:9 | h [element :bar] | -| semantics.rb:507:5:507:5 | [post] h [element :bar] | semantics.rb:513:9:513:9 | h [element :bar] | -| semantics.rb:507:5:507:5 | [post] h [element :foo] | semantics.rb:510:10:510:10 | h [element :foo] | -| semantics.rb:507:5:507:5 | [post] h [element :foo] | semantics.rb:510:10:510:10 | h [element :foo] | -| semantics.rb:507:5:507:5 | h [element :foo] | semantics.rb:507:5:507:5 | [post] h [element :foo] | -| semantics.rb:507:5:507:5 | h [element :foo] | semantics.rb:507:5:507:5 | [post] h [element :foo] | -| semantics.rb:507:15:507:25 | call to source | semantics.rb:507:5:507:5 | [post] h [element :bar] | -| semantics.rb:507:15:507:25 | call to source | semantics.rb:507:5:507:5 | [post] h [element :bar] | -| semantics.rb:508:5:508:5 | [post] h [element] | semantics.rb:510:10:510:10 | h [element] | -| semantics.rb:508:5:508:5 | [post] h [element] | semantics.rb:510:10:510:10 | h [element] | -| semantics.rb:508:5:508:5 | [post] h [element] | semantics.rb:511:10:511:10 | h [element] | -| semantics.rb:508:5:508:5 | [post] h [element] | semantics.rb:511:10:511:10 | h [element] | -| semantics.rb:508:12:508:22 | call to source | semantics.rb:508:5:508:5 | [post] h [element] | -| semantics.rb:508:12:508:22 | call to source | semantics.rb:508:5:508:5 | [post] h [element] | -| semantics.rb:510:10:510:10 | h [element :foo] | semantics.rb:510:10:510:16 | ...[...] | -| semantics.rb:510:10:510:10 | h [element :foo] | semantics.rb:510:10:510:16 | ...[...] | -| semantics.rb:510:10:510:10 | h [element] | semantics.rb:510:10:510:16 | ...[...] | -| semantics.rb:510:10:510:10 | h [element] | semantics.rb:510:10:510:16 | ...[...] | -| semantics.rb:511:10:511:10 | h [element :bar] | semantics.rb:511:10:511:16 | ...[...] | -| semantics.rb:511:10:511:10 | h [element :bar] | semantics.rb:511:10:511:16 | ...[...] | -| semantics.rb:511:10:511:10 | h [element] | semantics.rb:511:10:511:16 | ...[...] | -| semantics.rb:511:10:511:10 | h [element] | semantics.rb:511:10:511:16 | ...[...] | -| semantics.rb:513:5:513:5 | x [element :bar] | semantics.rb:516:10:516:10 | x [element :bar] | -| semantics.rb:513:5:513:5 | x [element :bar] | semantics.rb:516:10:516:10 | x [element :bar] | -| semantics.rb:513:9:513:9 | h [element :bar] | semantics.rb:513:9:513:15 | call to s54 [element :bar] | -| semantics.rb:513:9:513:9 | h [element :bar] | semantics.rb:513:9:513:15 | call to s54 [element :bar] | -| semantics.rb:513:9:513:15 | call to s54 [element :bar] | semantics.rb:513:5:513:5 | x [element :bar] | -| semantics.rb:513:9:513:15 | call to s54 [element :bar] | semantics.rb:513:5:513:5 | x [element :bar] | -| semantics.rb:516:10:516:10 | x [element :bar] | semantics.rb:516:10:516:16 | ...[...] | -| semantics.rb:516:10:516:10 | x [element :bar] | semantics.rb:516:10:516:16 | ...[...] | +| semantics.rb:2:5:2:5 | a | semantics.rb:3:9:3:9 | a | provenance | | +| semantics.rb:2:5:2:5 | a | semantics.rb:3:9:3:9 | a | provenance | | +| semantics.rb:2:9:2:18 | call to source | semantics.rb:2:5:2:5 | a | provenance | | +| semantics.rb:2:9:2:18 | call to source | semantics.rb:2:5:2:5 | a | provenance | | +| semantics.rb:3:5:3:5 | x | semantics.rb:4:10:4:10 | x | provenance | | +| semantics.rb:3:5:3:5 | x | semantics.rb:4:10:4:10 | x | provenance | | +| semantics.rb:3:9:3:9 | a | semantics.rb:3:9:3:14 | call to s1 | provenance | | +| semantics.rb:3:9:3:9 | a | semantics.rb:3:9:3:14 | call to s1 | provenance | | +| semantics.rb:3:9:3:14 | call to s1 | semantics.rb:3:5:3:5 | x | provenance | | +| semantics.rb:3:9:3:14 | call to s1 | semantics.rb:3:5:3:5 | x | provenance | | +| semantics.rb:8:5:8:5 | a | semantics.rb:9:10:9:10 | a | provenance | | +| semantics.rb:8:5:8:5 | a | semantics.rb:9:10:9:10 | a | provenance | | +| semantics.rb:8:9:8:18 | call to source | semantics.rb:8:5:8:5 | a | provenance | | +| semantics.rb:8:9:8:18 | call to source | semantics.rb:8:5:8:5 | a | provenance | | +| semantics.rb:9:5:9:5 | [post] x | semantics.rb:10:10:10:10 | x | provenance | | +| semantics.rb:9:5:9:5 | [post] x | semantics.rb:10:10:10:10 | x | provenance | | +| semantics.rb:9:10:9:10 | a | semantics.rb:9:5:9:5 | [post] x | provenance | | +| semantics.rb:9:10:9:10 | a | semantics.rb:9:5:9:5 | [post] x | provenance | | +| semantics.rb:14:5:14:5 | a | semantics.rb:15:8:15:8 | a | provenance | | +| semantics.rb:14:5:14:5 | a | semantics.rb:15:8:15:8 | a | provenance | | +| semantics.rb:14:9:14:18 | call to source | semantics.rb:14:5:14:5 | a | provenance | | +| semantics.rb:14:9:14:18 | call to source | semantics.rb:14:5:14:5 | a | provenance | | +| semantics.rb:15:8:15:8 | a | semantics.rb:15:11:15:11 | [post] x | provenance | | +| semantics.rb:15:8:15:8 | a | semantics.rb:15:11:15:11 | [post] x | provenance | | +| semantics.rb:15:11:15:11 | [post] x | semantics.rb:16:10:16:10 | x | provenance | | +| semantics.rb:15:11:15:11 | [post] x | semantics.rb:16:10:16:10 | x | provenance | | +| semantics.rb:22:18:22:32 | call to source | semantics.rb:22:10:22:33 | call to s4 | provenance | | +| semantics.rb:22:18:22:32 | call to source | semantics.rb:22:10:22:33 | call to s4 | provenance | | +| semantics.rb:23:23:23:32 | call to source | semantics.rb:23:10:23:33 | call to s4 | provenance | | +| semantics.rb:23:23:23:32 | call to source | semantics.rb:23:10:23:33 | call to s4 | provenance | | +| semantics.rb:28:5:28:5 | a | semantics.rb:29:8:29:8 | a | provenance | | +| semantics.rb:28:5:28:5 | a | semantics.rb:29:8:29:8 | a | provenance | | +| semantics.rb:28:9:28:18 | call to source | semantics.rb:28:5:28:5 | a | provenance | | +| semantics.rb:28:9:28:18 | call to source | semantics.rb:28:5:28:5 | a | provenance | | +| semantics.rb:29:8:29:8 | a | semantics.rb:29:14:29:14 | [post] y | provenance | | +| semantics.rb:29:8:29:8 | a | semantics.rb:29:14:29:14 | [post] y | provenance | | +| semantics.rb:29:8:29:8 | a | semantics.rb:29:17:29:17 | [post] z | provenance | | +| semantics.rb:29:8:29:8 | a | semantics.rb:29:17:29:17 | [post] z | provenance | | +| semantics.rb:29:14:29:14 | [post] y | semantics.rb:31:10:31:10 | y | provenance | | +| semantics.rb:29:14:29:14 | [post] y | semantics.rb:31:10:31:10 | y | provenance | | +| semantics.rb:29:17:29:17 | [post] z | semantics.rb:32:10:32:10 | z | provenance | | +| semantics.rb:29:17:29:17 | [post] z | semantics.rb:32:10:32:10 | z | provenance | | +| semantics.rb:40:5:40:5 | a | semantics.rb:41:8:41:8 | a | provenance | | +| semantics.rb:40:5:40:5 | a | semantics.rb:41:8:41:8 | a | provenance | | +| semantics.rb:40:9:40:18 | call to source | semantics.rb:40:5:40:5 | a | provenance | | +| semantics.rb:40:9:40:18 | call to source | semantics.rb:40:5:40:5 | a | provenance | | +| semantics.rb:41:8:41:8 | a | semantics.rb:41:16:41:16 | [post] x | provenance | | +| semantics.rb:41:8:41:8 | a | semantics.rb:41:16:41:16 | [post] x | provenance | | +| semantics.rb:41:16:41:16 | [post] x | semantics.rb:42:10:42:10 | x | provenance | | +| semantics.rb:41:16:41:16 | [post] x | semantics.rb:42:10:42:10 | x | provenance | | +| semantics.rb:46:15:46:24 | call to source | semantics.rb:46:10:46:26 | call to s8 | provenance | | +| semantics.rb:46:15:46:24 | call to source | semantics.rb:46:10:46:26 | call to s8 | provenance | | +| semantics.rb:48:9:48:18 | call to source | semantics.rb:47:10:49:7 | call to s8 | provenance | | +| semantics.rb:48:9:48:18 | call to source | semantics.rb:47:10:49:7 | call to s8 | provenance | | +| semantics.rb:53:8:53:17 | call to source | semantics.rb:53:23:53:23 | x | provenance | | +| semantics.rb:53:8:53:17 | call to source | semantics.rb:53:23:53:23 | x | provenance | | +| semantics.rb:53:23:53:23 | x | semantics.rb:53:31:53:31 | x | provenance | | +| semantics.rb:53:23:53:23 | x | semantics.rb:53:31:53:31 | x | provenance | | +| semantics.rb:54:8:54:17 | call to source | semantics.rb:54:24:54:24 | x | provenance | | +| semantics.rb:54:8:54:17 | call to source | semantics.rb:54:24:54:24 | x | provenance | | +| semantics.rb:54:24:54:24 | x | semantics.rb:55:14:55:14 | x | provenance | | +| semantics.rb:54:24:54:24 | x | semantics.rb:55:14:55:14 | x | provenance | | +| semantics.rb:60:5:60:5 | a | semantics.rb:61:14:61:14 | a | provenance | | +| semantics.rb:60:5:60:5 | a | semantics.rb:61:14:61:14 | a | provenance | | +| semantics.rb:60:5:60:5 | a | semantics.rb:62:17:62:17 | a | provenance | | +| semantics.rb:60:5:60:5 | a | semantics.rb:62:17:62:17 | a | provenance | | +| semantics.rb:60:5:60:5 | a | semantics.rb:63:19:63:19 | a | provenance | | +| semantics.rb:60:5:60:5 | a | semantics.rb:63:19:63:19 | a | provenance | | +| semantics.rb:60:5:60:5 | a | semantics.rb:64:27:64:27 | a | provenance | | +| semantics.rb:60:5:60:5 | a | semantics.rb:64:27:64:27 | a | provenance | | +| semantics.rb:60:5:60:5 | a | semantics.rb:66:14:66:15 | &... | provenance | | +| semantics.rb:60:5:60:5 | a | semantics.rb:66:14:66:15 | &... | provenance | | +| semantics.rb:60:9:60:18 | call to source | semantics.rb:60:5:60:5 | a | provenance | | +| semantics.rb:60:9:60:18 | call to source | semantics.rb:60:5:60:5 | a | provenance | | +| semantics.rb:61:10:61:15 | call to s10 [splat position 0] | semantics.rb:61:10:61:15 | call to s10 | provenance | | +| semantics.rb:61:14:61:14 | a | semantics.rb:61:10:61:15 | call to s10 | provenance | | +| semantics.rb:61:14:61:14 | a | semantics.rb:61:10:61:15 | call to s10 | provenance | | +| semantics.rb:61:14:61:14 | a | semantics.rb:61:10:61:15 | call to s10 [splat position 0] | provenance | | +| semantics.rb:62:10:62:18 | call to s10 [splat position 1] | semantics.rb:62:10:62:18 | call to s10 | provenance | | +| semantics.rb:62:17:62:17 | a | semantics.rb:62:10:62:18 | call to s10 | provenance | | +| semantics.rb:62:17:62:17 | a | semantics.rb:62:10:62:18 | call to s10 | provenance | | +| semantics.rb:62:17:62:17 | a | semantics.rb:62:10:62:18 | call to s10 [splat position 1] | provenance | | +| semantics.rb:63:19:63:19 | a | semantics.rb:63:10:63:20 | call to s10 | provenance | | +| semantics.rb:63:19:63:19 | a | semantics.rb:63:10:63:20 | call to s10 | provenance | | +| semantics.rb:64:27:64:27 | a | semantics.rb:64:10:64:28 | call to s10 | provenance | | +| semantics.rb:64:27:64:27 | a | semantics.rb:64:10:64:28 | call to s10 | provenance | | +| semantics.rb:66:14:66:15 | &... | semantics.rb:66:10:66:16 | call to s10 | provenance | | +| semantics.rb:66:14:66:15 | &... | semantics.rb:66:10:66:16 | call to s10 | provenance | | +| semantics.rb:80:5:80:5 | a | semantics.rb:81:5:81:5 | a | provenance | | +| semantics.rb:80:5:80:5 | a | semantics.rb:81:5:81:5 | a | provenance | | +| semantics.rb:80:9:80:18 | call to source | semantics.rb:80:5:80:5 | a | provenance | | +| semantics.rb:80:9:80:18 | call to source | semantics.rb:80:5:80:5 | a | provenance | | +| semantics.rb:81:5:81:5 | a | semantics.rb:81:11:81:11 | [post] x | provenance | | +| semantics.rb:81:5:81:5 | a | semantics.rb:81:11:81:11 | [post] x | provenance | | +| semantics.rb:81:5:81:5 | a | semantics.rb:81:14:81:14 | [post] y | provenance | | +| semantics.rb:81:5:81:5 | a | semantics.rb:81:14:81:14 | [post] y | provenance | | +| semantics.rb:81:5:81:5 | a | semantics.rb:81:22:81:22 | [post] z | provenance | | +| semantics.rb:81:5:81:5 | a | semantics.rb:81:22:81:22 | [post] z | provenance | | +| semantics.rb:81:11:81:11 | [post] x | semantics.rb:82:10:82:10 | x | provenance | | +| semantics.rb:81:11:81:11 | [post] x | semantics.rb:82:10:82:10 | x | provenance | | +| semantics.rb:81:14:81:14 | [post] y | semantics.rb:83:10:83:10 | y | provenance | | +| semantics.rb:81:14:81:14 | [post] y | semantics.rb:83:10:83:10 | y | provenance | | +| semantics.rb:81:22:81:22 | [post] z | semantics.rb:84:10:84:10 | z | provenance | | +| semantics.rb:81:22:81:22 | [post] z | semantics.rb:84:10:84:10 | z | provenance | | +| semantics.rb:89:5:89:5 | a | semantics.rb:91:19:91:19 | a | provenance | | +| semantics.rb:89:5:89:5 | a | semantics.rb:91:19:91:19 | a | provenance | | +| semantics.rb:89:5:89:5 | a | semantics.rb:92:27:92:27 | a | provenance | | +| semantics.rb:89:5:89:5 | a | semantics.rb:92:27:92:27 | a | provenance | | +| semantics.rb:89:9:89:18 | call to source | semantics.rb:89:5:89:5 | a | provenance | | +| semantics.rb:89:9:89:18 | call to source | semantics.rb:89:5:89:5 | a | provenance | | +| semantics.rb:91:19:91:19 | a | semantics.rb:91:10:91:20 | call to s13 | provenance | | +| semantics.rb:91:19:91:19 | a | semantics.rb:91:10:91:20 | call to s13 | provenance | | +| semantics.rb:92:27:92:27 | a | semantics.rb:92:10:92:28 | call to s13 | provenance | | +| semantics.rb:92:27:92:27 | a | semantics.rb:92:10:92:28 | call to s13 | provenance | | +| semantics.rb:97:5:97:5 | a | semantics.rb:98:5:98:5 | a | provenance | | +| semantics.rb:97:5:97:5 | a | semantics.rb:98:5:98:5 | a | provenance | | +| semantics.rb:97:5:97:5 | a | semantics.rb:99:5:99:5 | a | provenance | | +| semantics.rb:97:5:97:5 | a | semantics.rb:99:5:99:5 | a | provenance | | +| semantics.rb:97:9:97:18 | call to source | semantics.rb:97:5:97:5 | a | provenance | | +| semantics.rb:97:9:97:18 | call to source | semantics.rb:97:5:97:5 | a | provenance | | +| semantics.rb:98:5:98:5 | a | semantics.rb:98:19:98:19 | [post] x | provenance | | +| semantics.rb:98:5:98:5 | a | semantics.rb:98:19:98:19 | [post] x | provenance | | +| semantics.rb:98:19:98:19 | [post] x | semantics.rb:101:10:101:10 | x | provenance | | +| semantics.rb:98:19:98:19 | [post] x | semantics.rb:101:10:101:10 | x | provenance | | +| semantics.rb:99:5:99:5 | a | semantics.rb:99:16:99:16 | [post] y | provenance | | +| semantics.rb:99:5:99:5 | a | semantics.rb:99:16:99:16 | [post] y | provenance | | +| semantics.rb:99:5:99:5 | a | semantics.rb:99:24:99:24 | [post] z | provenance | | +| semantics.rb:99:5:99:5 | a | semantics.rb:99:24:99:24 | [post] z | provenance | | +| semantics.rb:99:16:99:16 | [post] y | semantics.rb:102:10:102:10 | y | provenance | | +| semantics.rb:99:16:99:16 | [post] y | semantics.rb:102:10:102:10 | y | provenance | | +| semantics.rb:99:24:99:24 | [post] z | semantics.rb:103:10:103:10 | z | provenance | | +| semantics.rb:99:24:99:24 | [post] z | semantics.rb:103:10:103:10 | z | provenance | | +| semantics.rb:107:5:107:5 | a | semantics.rb:109:19:109:19 | a | provenance | | +| semantics.rb:107:5:107:5 | a | semantics.rb:109:19:109:19 | a | provenance | | +| semantics.rb:107:9:107:18 | call to source | semantics.rb:107:5:107:5 | a | provenance | | +| semantics.rb:107:9:107:18 | call to source | semantics.rb:107:5:107:5 | a | provenance | | +| semantics.rb:108:5:108:5 | b | semantics.rb:110:27:110:27 | b | provenance | | +| semantics.rb:108:5:108:5 | b | semantics.rb:110:27:110:27 | b | provenance | | +| semantics.rb:108:9:108:18 | call to source | semantics.rb:108:5:108:5 | b | provenance | | +| semantics.rb:108:9:108:18 | call to source | semantics.rb:108:5:108:5 | b | provenance | | +| semantics.rb:109:10:109:28 | call to s15 [hash-splat position :foo] | semantics.rb:109:10:109:34 | ...[...] | provenance | | +| semantics.rb:109:10:109:28 | call to s15 [hash-splat position :foo] | semantics.rb:109:10:109:34 | ...[...] | provenance | | +| semantics.rb:109:19:109:19 | a | semantics.rb:109:10:109:28 | call to s15 [hash-splat position :foo] | provenance | | +| semantics.rb:109:19:109:19 | a | semantics.rb:109:10:109:28 | call to s15 [hash-splat position :foo] | provenance | | +| semantics.rb:110:10:110:28 | call to s15 [hash-splat position :bar] | semantics.rb:110:10:110:34 | ...[...] | provenance | | +| semantics.rb:110:10:110:28 | call to s15 [hash-splat position :bar] | semantics.rb:110:10:110:34 | ...[...] | provenance | | +| semantics.rb:110:27:110:27 | b | semantics.rb:110:10:110:28 | call to s15 [hash-splat position :bar] | provenance | | +| semantics.rb:110:27:110:27 | b | semantics.rb:110:10:110:28 | call to s15 [hash-splat position :bar] | provenance | | +| semantics.rb:114:5:114:5 | a | semantics.rb:116:14:116:14 | a | provenance | | +| semantics.rb:114:5:114:5 | a | semantics.rb:116:14:116:14 | a | provenance | | +| semantics.rb:114:5:114:5 | a | semantics.rb:119:17:119:17 | a | provenance | | +| semantics.rb:114:5:114:5 | a | semantics.rb:119:17:119:17 | a | provenance | | +| semantics.rb:114:9:114:18 | call to source | semantics.rb:114:5:114:5 | a | provenance | | +| semantics.rb:114:9:114:18 | call to source | semantics.rb:114:5:114:5 | a | provenance | | +| semantics.rb:115:5:115:5 | b | semantics.rb:121:17:121:17 | b | provenance | | +| semantics.rb:115:5:115:5 | b | semantics.rb:121:17:121:17 | b | provenance | | +| semantics.rb:115:9:115:18 | call to source | semantics.rb:115:5:115:5 | b | provenance | | +| semantics.rb:115:9:115:18 | call to source | semantics.rb:115:5:115:5 | b | provenance | | +| semantics.rb:116:5:116:5 | h [element :a] | semantics.rb:117:16:117:16 | h [element :a] | provenance | | +| semantics.rb:116:5:116:5 | h [element :a] | semantics.rb:117:16:117:16 | h [element :a] | provenance | | +| semantics.rb:116:5:116:5 | h [element :a] | semantics.rb:121:22:121:22 | h [element :a] | provenance | | +| semantics.rb:116:5:116:5 | h [element :a] | semantics.rb:121:22:121:22 | h [element :a] | provenance | | +| semantics.rb:116:14:116:14 | a | semantics.rb:116:5:116:5 | h [element :a] | provenance | | +| semantics.rb:116:14:116:14 | a | semantics.rb:116:5:116:5 | h [element :a] | provenance | | +| semantics.rb:117:14:117:16 | ** ... [element :a] | semantics.rb:117:10:117:17 | call to s16 | provenance | | +| semantics.rb:117:14:117:16 | ** ... [element :a] | semantics.rb:117:10:117:17 | call to s16 | provenance | | +| semantics.rb:117:16:117:16 | h [element :a] | semantics.rb:117:14:117:16 | ** ... [element :a] | provenance | | +| semantics.rb:117:16:117:16 | h [element :a] | semantics.rb:117:14:117:16 | ** ... [element :a] | provenance | | +| semantics.rb:119:17:119:17 | a | semantics.rb:119:10:119:18 | call to s16 | provenance | | +| semantics.rb:119:17:119:17 | a | semantics.rb:119:10:119:18 | call to s16 | provenance | | +| semantics.rb:121:17:121:17 | b | semantics.rb:121:10:121:23 | call to s16 | provenance | | +| semantics.rb:121:17:121:17 | b | semantics.rb:121:10:121:23 | call to s16 | provenance | | +| semantics.rb:121:20:121:22 | ** ... [element :a] | semantics.rb:121:10:121:23 | call to s16 | provenance | | +| semantics.rb:121:20:121:22 | ** ... [element :a] | semantics.rb:121:10:121:23 | call to s16 | provenance | | +| semantics.rb:121:22:121:22 | h [element :a] | semantics.rb:121:20:121:22 | ** ... [element :a] | provenance | | +| semantics.rb:121:22:121:22 | h [element :a] | semantics.rb:121:20:121:22 | ** ... [element :a] | provenance | | +| semantics.rb:125:5:125:5 | a | semantics.rb:127:14:127:14 | a | provenance | | +| semantics.rb:125:5:125:5 | a | semantics.rb:128:14:128:14 | a | provenance | | +| semantics.rb:125:5:125:5 | a | semantics.rb:128:14:128:14 | a | provenance | | +| semantics.rb:125:9:125:18 | call to source | semantics.rb:125:5:125:5 | a | provenance | | +| semantics.rb:125:9:125:18 | call to source | semantics.rb:125:5:125:5 | a | provenance | | +| semantics.rb:126:5:126:5 | b | semantics.rb:127:17:127:17 | b | provenance | | +| semantics.rb:126:5:126:5 | b | semantics.rb:129:17:129:17 | b | provenance | | +| semantics.rb:126:5:126:5 | b | semantics.rb:129:17:129:17 | b | provenance | | +| semantics.rb:126:9:126:18 | call to source | semantics.rb:126:5:126:5 | b | provenance | | +| semantics.rb:126:9:126:18 | call to source | semantics.rb:126:5:126:5 | b | provenance | | +| semantics.rb:127:10:127:18 | call to s17 [splat position 0] | semantics.rb:127:10:127:18 | call to s17 | provenance | | +| semantics.rb:127:10:127:18 | call to s17 [splat position 1] | semantics.rb:127:10:127:18 | call to s17 | provenance | | +| semantics.rb:127:14:127:14 | a | semantics.rb:127:10:127:18 | call to s17 [splat position 0] | provenance | | +| semantics.rb:127:17:127:17 | b | semantics.rb:127:10:127:18 | call to s17 [splat position 1] | provenance | | +| semantics.rb:128:10:128:18 | call to s17 [splat position 0] | semantics.rb:128:10:128:21 | ...[...] | provenance | | +| semantics.rb:128:10:128:18 | call to s17 [splat position 0] | semantics.rb:128:10:128:21 | ...[...] | provenance | | +| semantics.rb:128:14:128:14 | a | semantics.rb:128:10:128:18 | call to s17 [splat position 0] | provenance | | +| semantics.rb:128:14:128:14 | a | semantics.rb:128:10:128:18 | call to s17 [splat position 0] | provenance | | +| semantics.rb:129:10:129:18 | call to s17 [splat position 1] | semantics.rb:129:10:129:21 | ...[...] | provenance | | +| semantics.rb:129:10:129:18 | call to s17 [splat position 1] | semantics.rb:129:10:129:21 | ...[...] | provenance | | +| semantics.rb:129:17:129:17 | b | semantics.rb:129:10:129:18 | call to s17 [splat position 1] | provenance | | +| semantics.rb:129:17:129:17 | b | semantics.rb:129:10:129:18 | call to s17 [splat position 1] | provenance | | +| semantics.rb:133:5:133:5 | a | semantics.rb:135:12:135:12 | a | provenance | | +| semantics.rb:133:5:133:5 | a | semantics.rb:135:12:135:12 | a | provenance | | +| semantics.rb:133:5:133:5 | a | semantics.rb:137:14:137:14 | a | provenance | | +| semantics.rb:133:5:133:5 | a | semantics.rb:137:14:137:14 | a | provenance | | +| semantics.rb:133:9:133:18 | call to source | semantics.rb:133:5:133:5 | a | provenance | | +| semantics.rb:133:9:133:18 | call to source | semantics.rb:133:5:133:5 | a | provenance | | +| semantics.rb:134:5:134:5 | b | semantics.rb:135:15:135:15 | b | provenance | | +| semantics.rb:134:5:134:5 | b | semantics.rb:135:15:135:15 | b | provenance | | +| semantics.rb:134:9:134:18 | call to source | semantics.rb:134:5:134:5 | b | provenance | | +| semantics.rb:134:9:134:18 | call to source | semantics.rb:134:5:134:5 | b | provenance | | +| semantics.rb:135:5:135:7 | arr [element 0] | semantics.rb:136:15:136:17 | arr [element 0] | provenance | | +| semantics.rb:135:5:135:7 | arr [element 0] | semantics.rb:136:15:136:17 | arr [element 0] | provenance | | +| semantics.rb:135:5:135:7 | arr [element 1] | semantics.rb:136:15:136:17 | arr [element 1] | provenance | | +| semantics.rb:135:5:135:7 | arr [element 1] | semantics.rb:136:15:136:17 | arr [element 1] | provenance | | +| semantics.rb:135:12:135:12 | a | semantics.rb:135:5:135:7 | arr [element 0] | provenance | | +| semantics.rb:135:12:135:12 | a | semantics.rb:135:5:135:7 | arr [element 0] | provenance | | +| semantics.rb:135:15:135:15 | b | semantics.rb:135:5:135:7 | arr [element 1] | provenance | | +| semantics.rb:135:15:135:15 | b | semantics.rb:135:5:135:7 | arr [element 1] | provenance | | +| semantics.rb:136:14:136:17 | * ... [element 0] | semantics.rb:136:10:136:18 | call to s18 | provenance | | +| semantics.rb:136:14:136:17 | * ... [element 0] | semantics.rb:136:10:136:18 | call to s18 | provenance | | +| semantics.rb:136:14:136:17 | * ... [element 1] | semantics.rb:136:10:136:18 | call to s18 | provenance | | +| semantics.rb:136:14:136:17 | * ... [element 1] | semantics.rb:136:10:136:18 | call to s18 | provenance | | +| semantics.rb:136:15:136:17 | arr [element 0] | semantics.rb:136:14:136:17 | * ... [element 0] | provenance | | +| semantics.rb:136:15:136:17 | arr [element 0] | semantics.rb:136:14:136:17 | * ... [element 0] | provenance | | +| semantics.rb:136:15:136:17 | arr [element 1] | semantics.rb:136:14:136:17 | * ... [element 1] | provenance | | +| semantics.rb:136:15:136:17 | arr [element 1] | semantics.rb:136:14:136:17 | * ... [element 1] | provenance | | +| semantics.rb:137:14:137:14 | a | semantics.rb:137:10:137:15 | call to s18 | provenance | | +| semantics.rb:137:14:137:14 | a | semantics.rb:137:10:137:15 | call to s18 | provenance | | +| semantics.rb:142:5:142:5 | b | semantics.rb:146:5:146:5 | [post] h [element] | provenance | | +| semantics.rb:142:5:142:5 | b | semantics.rb:146:5:146:5 | [post] h [element] | provenance | | +| semantics.rb:142:9:142:18 | call to source | semantics.rb:142:5:142:5 | b | provenance | | +| semantics.rb:142:9:142:18 | call to source | semantics.rb:142:5:142:5 | b | provenance | | +| semantics.rb:146:5:146:5 | [post] h [element] | semantics.rb:148:14:148:14 | h [element] | provenance | | +| semantics.rb:146:5:146:5 | [post] h [element] | semantics.rb:148:14:148:14 | h [element] | provenance | | +| semantics.rb:148:14:148:14 | h [element] | semantics.rb:148:10:148:15 | call to s19 | provenance | | +| semantics.rb:148:14:148:14 | h [element] | semantics.rb:148:10:148:15 | call to s19 | provenance | | +| semantics.rb:152:5:152:5 | a | semantics.rb:153:13:153:13 | a | provenance | | +| semantics.rb:152:5:152:5 | a | semantics.rb:153:13:153:13 | a | provenance | | +| semantics.rb:152:9:152:18 | call to source | semantics.rb:152:5:152:5 | a | provenance | | +| semantics.rb:152:9:152:18 | call to source | semantics.rb:152:5:152:5 | a | provenance | | +| semantics.rb:153:5:153:5 | x [element] | semantics.rb:154:10:154:10 | x [element] | provenance | | +| semantics.rb:153:5:153:5 | x [element] | semantics.rb:154:10:154:10 | x [element] | provenance | | +| semantics.rb:153:5:153:5 | x [element] | semantics.rb:155:10:155:10 | x [element] | provenance | | +| semantics.rb:153:5:153:5 | x [element] | semantics.rb:155:10:155:10 | x [element] | provenance | | +| semantics.rb:153:9:153:14 | call to s20 [element] | semantics.rb:153:5:153:5 | x [element] | provenance | | +| semantics.rb:153:9:153:14 | call to s20 [element] | semantics.rb:153:5:153:5 | x [element] | provenance | | +| semantics.rb:153:13:153:13 | a | semantics.rb:153:9:153:14 | call to s20 [element] | provenance | | +| semantics.rb:153:13:153:13 | a | semantics.rb:153:9:153:14 | call to s20 [element] | provenance | | +| semantics.rb:154:10:154:10 | x [element] | semantics.rb:154:10:154:13 | ...[...] | provenance | | +| semantics.rb:154:10:154:10 | x [element] | semantics.rb:154:10:154:13 | ...[...] | provenance | | +| semantics.rb:155:10:155:10 | x [element] | semantics.rb:155:10:155:13 | ...[...] | provenance | | +| semantics.rb:155:10:155:10 | x [element] | semantics.rb:155:10:155:13 | ...[...] | provenance | | +| semantics.rb:159:5:159:5 | a | semantics.rb:163:5:163:5 | [post] h [element 0] | provenance | | +| semantics.rb:159:5:159:5 | a | semantics.rb:163:5:163:5 | [post] h [element 0] | provenance | | +| semantics.rb:159:9:159:18 | call to source | semantics.rb:159:5:159:5 | a | provenance | | +| semantics.rb:159:9:159:18 | call to source | semantics.rb:159:5:159:5 | a | provenance | | +| semantics.rb:160:5:160:5 | b | semantics.rb:164:5:164:5 | [post] h [element] | provenance | | +| semantics.rb:160:5:160:5 | b | semantics.rb:164:5:164:5 | [post] h [element] | provenance | | +| semantics.rb:160:9:160:18 | call to source | semantics.rb:160:5:160:5 | b | provenance | | +| semantics.rb:160:9:160:18 | call to source | semantics.rb:160:5:160:5 | b | provenance | | +| semantics.rb:163:5:163:5 | [post] h [element 0] | semantics.rb:166:14:166:14 | h [element 0] | provenance | | +| semantics.rb:163:5:163:5 | [post] h [element 0] | semantics.rb:166:14:166:14 | h [element 0] | provenance | | +| semantics.rb:164:5:164:5 | [post] h [element] | semantics.rb:166:14:166:14 | h [element] | provenance | | +| semantics.rb:164:5:164:5 | [post] h [element] | semantics.rb:166:14:166:14 | h [element] | provenance | | +| semantics.rb:166:14:166:14 | h [element 0] | semantics.rb:166:10:166:15 | call to s21 | provenance | | +| semantics.rb:166:14:166:14 | h [element 0] | semantics.rb:166:10:166:15 | call to s21 | provenance | | +| semantics.rb:166:14:166:14 | h [element] | semantics.rb:166:10:166:15 | call to s21 | provenance | | +| semantics.rb:166:14:166:14 | h [element] | semantics.rb:166:10:166:15 | call to s21 | provenance | | +| semantics.rb:170:5:170:5 | a | semantics.rb:171:13:171:13 | a | provenance | | +| semantics.rb:170:5:170:5 | a | semantics.rb:171:13:171:13 | a | provenance | | +| semantics.rb:170:9:170:18 | call to source | semantics.rb:170:5:170:5 | a | provenance | | +| semantics.rb:170:9:170:18 | call to source | semantics.rb:170:5:170:5 | a | provenance | | +| semantics.rb:171:5:171:5 | x [element] | semantics.rb:172:10:172:10 | x [element] | provenance | | +| semantics.rb:171:5:171:5 | x [element] | semantics.rb:172:10:172:10 | x [element] | provenance | | +| semantics.rb:171:5:171:5 | x [element] | semantics.rb:173:10:173:10 | x [element] | provenance | | +| semantics.rb:171:5:171:5 | x [element] | semantics.rb:173:10:173:10 | x [element] | provenance | | +| semantics.rb:171:9:171:14 | call to s22 [element] | semantics.rb:171:5:171:5 | x [element] | provenance | | +| semantics.rb:171:9:171:14 | call to s22 [element] | semantics.rb:171:5:171:5 | x [element] | provenance | | +| semantics.rb:171:13:171:13 | a | semantics.rb:171:9:171:14 | call to s22 [element] | provenance | | +| semantics.rb:171:13:171:13 | a | semantics.rb:171:9:171:14 | call to s22 [element] | provenance | | +| semantics.rb:172:10:172:10 | x [element] | semantics.rb:172:10:172:13 | ...[...] | provenance | | +| semantics.rb:172:10:172:10 | x [element] | semantics.rb:172:10:172:13 | ...[...] | provenance | | +| semantics.rb:173:10:173:10 | x [element] | semantics.rb:173:10:173:13 | ...[...] | provenance | | +| semantics.rb:173:10:173:10 | x [element] | semantics.rb:173:10:173:13 | ...[...] | provenance | | +| semantics.rb:177:5:177:5 | a | semantics.rb:180:5:180:5 | [post] h [element 0] | provenance | | +| semantics.rb:177:5:177:5 | a | semantics.rb:180:5:180:5 | [post] h [element 0] | provenance | | +| semantics.rb:177:9:177:18 | call to source | semantics.rb:177:5:177:5 | a | provenance | | +| semantics.rb:177:9:177:18 | call to source | semantics.rb:177:5:177:5 | a | provenance | | +| semantics.rb:180:5:180:5 | [post] h [element 0] | semantics.rb:181:5:181:5 | h [element 0] | provenance | | +| semantics.rb:180:5:180:5 | [post] h [element 0] | semantics.rb:181:5:181:5 | h [element 0] | provenance | | +| semantics.rb:181:5:181:5 | [post] h [element 0] | semantics.rb:182:14:182:14 | h [element 0] | provenance | | +| semantics.rb:181:5:181:5 | [post] h [element 0] | semantics.rb:182:14:182:14 | h [element 0] | provenance | | +| semantics.rb:181:5:181:5 | h [element 0] | semantics.rb:181:5:181:5 | [post] h [element 0] | provenance | | +| semantics.rb:181:5:181:5 | h [element 0] | semantics.rb:181:5:181:5 | [post] h [element 0] | provenance | | +| semantics.rb:182:14:182:14 | h [element 0] | semantics.rb:182:10:182:15 | call to s23 | provenance | | +| semantics.rb:182:14:182:14 | h [element 0] | semantics.rb:182:10:182:15 | call to s23 | provenance | | +| semantics.rb:186:5:186:5 | a | semantics.rb:187:13:187:13 | a | provenance | | +| semantics.rb:186:5:186:5 | a | semantics.rb:187:13:187:13 | a | provenance | | +| semantics.rb:186:9:186:18 | call to source | semantics.rb:186:5:186:5 | a | provenance | | +| semantics.rb:186:9:186:18 | call to source | semantics.rb:186:5:186:5 | a | provenance | | +| semantics.rb:187:5:187:5 | x [element 0] | semantics.rb:188:10:188:10 | x [element 0] | provenance | | +| semantics.rb:187:5:187:5 | x [element 0] | semantics.rb:188:10:188:10 | x [element 0] | provenance | | +| semantics.rb:187:5:187:5 | x [element 0] | semantics.rb:190:10:190:10 | x [element 0] | provenance | | +| semantics.rb:187:5:187:5 | x [element 0] | semantics.rb:190:10:190:10 | x [element 0] | provenance | | +| semantics.rb:187:9:187:14 | call to s24 [element 0] | semantics.rb:187:5:187:5 | x [element 0] | provenance | | +| semantics.rb:187:9:187:14 | call to s24 [element 0] | semantics.rb:187:5:187:5 | x [element 0] | provenance | | +| semantics.rb:187:13:187:13 | a | semantics.rb:187:9:187:14 | call to s24 [element 0] | provenance | | +| semantics.rb:187:13:187:13 | a | semantics.rb:187:9:187:14 | call to s24 [element 0] | provenance | | +| semantics.rb:188:10:188:10 | x [element 0] | semantics.rb:188:10:188:13 | ...[...] | provenance | | +| semantics.rb:188:10:188:10 | x [element 0] | semantics.rb:188:10:188:13 | ...[...] | provenance | | +| semantics.rb:190:10:190:10 | x [element 0] | semantics.rb:190:10:190:13 | ...[...] | provenance | | +| semantics.rb:190:10:190:10 | x [element 0] | semantics.rb:190:10:190:13 | ...[...] | provenance | | +| semantics.rb:194:5:194:5 | a | semantics.rb:197:5:197:5 | [post] h [element 0] | provenance | | +| semantics.rb:194:5:194:5 | a | semantics.rb:197:5:197:5 | [post] h [element 0] | provenance | | +| semantics.rb:194:9:194:18 | call to source | semantics.rb:194:5:194:5 | a | provenance | | +| semantics.rb:194:9:194:18 | call to source | semantics.rb:194:5:194:5 | a | provenance | | +| semantics.rb:197:5:197:5 | [post] h [element 0] | semantics.rb:198:5:198:5 | h [element 0] | provenance | | +| semantics.rb:197:5:197:5 | [post] h [element 0] | semantics.rb:198:5:198:5 | h [element 0] | provenance | | +| semantics.rb:198:5:198:5 | [post] h [element 0] | semantics.rb:199:14:199:14 | h [element 0] | provenance | | +| semantics.rb:198:5:198:5 | [post] h [element 0] | semantics.rb:199:14:199:14 | h [element 0] | provenance | | +| semantics.rb:198:5:198:5 | h [element 0] | semantics.rb:198:5:198:5 | [post] h [element 0] | provenance | | +| semantics.rb:198:5:198:5 | h [element 0] | semantics.rb:198:5:198:5 | [post] h [element 0] | provenance | | +| semantics.rb:199:14:199:14 | h [element 0] | semantics.rb:199:10:199:15 | call to s25 | provenance | | +| semantics.rb:199:14:199:14 | h [element 0] | semantics.rb:199:10:199:15 | call to s25 | provenance | | +| semantics.rb:203:5:203:5 | a | semantics.rb:204:13:204:13 | a | provenance | | +| semantics.rb:203:5:203:5 | a | semantics.rb:204:13:204:13 | a | provenance | | +| semantics.rb:203:9:203:18 | call to source | semantics.rb:203:5:203:5 | a | provenance | | +| semantics.rb:203:9:203:18 | call to source | semantics.rb:203:5:203:5 | a | provenance | | +| semantics.rb:204:5:204:5 | x [element 0] | semantics.rb:205:10:205:10 | x [element 0] | provenance | | +| semantics.rb:204:5:204:5 | x [element 0] | semantics.rb:205:10:205:10 | x [element 0] | provenance | | +| semantics.rb:204:5:204:5 | x [element 0] | semantics.rb:207:10:207:10 | x [element 0] | provenance | | +| semantics.rb:204:5:204:5 | x [element 0] | semantics.rb:207:10:207:10 | x [element 0] | provenance | | +| semantics.rb:204:9:204:14 | call to s26 [element 0] | semantics.rb:204:5:204:5 | x [element 0] | provenance | | +| semantics.rb:204:9:204:14 | call to s26 [element 0] | semantics.rb:204:5:204:5 | x [element 0] | provenance | | +| semantics.rb:204:13:204:13 | a | semantics.rb:204:9:204:14 | call to s26 [element 0] | provenance | | +| semantics.rb:204:13:204:13 | a | semantics.rb:204:9:204:14 | call to s26 [element 0] | provenance | | +| semantics.rb:205:10:205:10 | x [element 0] | semantics.rb:205:10:205:13 | ...[...] | provenance | | +| semantics.rb:205:10:205:10 | x [element 0] | semantics.rb:205:10:205:13 | ...[...] | provenance | | +| semantics.rb:207:10:207:10 | x [element 0] | semantics.rb:207:10:207:13 | ...[...] | provenance | | +| semantics.rb:207:10:207:10 | x [element 0] | semantics.rb:207:10:207:13 | ...[...] | provenance | | +| semantics.rb:212:5:212:5 | b | semantics.rb:218:5:218:5 | [post] h [element 1] | provenance | | +| semantics.rb:212:5:212:5 | b | semantics.rb:218:5:218:5 | [post] h [element 1] | provenance | | +| semantics.rb:212:9:212:18 | call to source | semantics.rb:212:5:212:5 | b | provenance | | +| semantics.rb:212:9:212:18 | call to source | semantics.rb:212:5:212:5 | b | provenance | | +| semantics.rb:213:5:213:5 | c | semantics.rb:219:5:219:5 | [post] h [element 2] | provenance | | +| semantics.rb:213:5:213:5 | c | semantics.rb:219:5:219:5 | [post] h [element 2] | provenance | | +| semantics.rb:213:9:213:18 | call to source | semantics.rb:213:5:213:5 | c | provenance | | +| semantics.rb:213:9:213:18 | call to source | semantics.rb:213:5:213:5 | c | provenance | | +| semantics.rb:214:5:214:5 | d | semantics.rb:220:5:220:5 | [post] h [element] | provenance | | +| semantics.rb:214:5:214:5 | d | semantics.rb:220:5:220:5 | [post] h [element] | provenance | | +| semantics.rb:214:9:214:18 | call to source | semantics.rb:214:5:214:5 | d | provenance | | +| semantics.rb:214:9:214:18 | call to source | semantics.rb:214:5:214:5 | d | provenance | | +| semantics.rb:218:5:218:5 | [post] h [element 1] | semantics.rb:219:5:219:5 | h [element 1] | provenance | | +| semantics.rb:218:5:218:5 | [post] h [element 1] | semantics.rb:219:5:219:5 | h [element 1] | provenance | | +| semantics.rb:219:5:219:5 | [post] h [element 1] | semantics.rb:222:14:222:14 | h [element 1] | provenance | | +| semantics.rb:219:5:219:5 | [post] h [element 1] | semantics.rb:222:14:222:14 | h [element 1] | provenance | | +| semantics.rb:219:5:219:5 | [post] h [element 2] | semantics.rb:222:14:222:14 | h [element 2] | provenance | | +| semantics.rb:219:5:219:5 | [post] h [element 2] | semantics.rb:222:14:222:14 | h [element 2] | provenance | | +| semantics.rb:219:5:219:5 | h [element 1] | semantics.rb:219:5:219:5 | [post] h [element 1] | provenance | | +| semantics.rb:219:5:219:5 | h [element 1] | semantics.rb:219:5:219:5 | [post] h [element 1] | provenance | | +| semantics.rb:220:5:220:5 | [post] h [element] | semantics.rb:222:14:222:14 | h [element] | provenance | | +| semantics.rb:220:5:220:5 | [post] h [element] | semantics.rb:222:14:222:14 | h [element] | provenance | | +| semantics.rb:222:14:222:14 | h [element 1] | semantics.rb:222:10:222:15 | call to s27 | provenance | | +| semantics.rb:222:14:222:14 | h [element 1] | semantics.rb:222:10:222:15 | call to s27 | provenance | | +| semantics.rb:222:14:222:14 | h [element 2] | semantics.rb:222:10:222:15 | call to s27 | provenance | | +| semantics.rb:222:14:222:14 | h [element 2] | semantics.rb:222:10:222:15 | call to s27 | provenance | | +| semantics.rb:222:14:222:14 | h [element] | semantics.rb:222:10:222:15 | call to s27 | provenance | | +| semantics.rb:222:14:222:14 | h [element] | semantics.rb:222:10:222:15 | call to s27 | provenance | | +| semantics.rb:226:5:226:5 | a | semantics.rb:227:13:227:13 | a | provenance | | +| semantics.rb:226:5:226:5 | a | semantics.rb:227:13:227:13 | a | provenance | | +| semantics.rb:226:9:226:18 | call to source | semantics.rb:226:5:226:5 | a | provenance | | +| semantics.rb:226:9:226:18 | call to source | semantics.rb:226:5:226:5 | a | provenance | | +| semantics.rb:227:5:227:5 | x [element] | semantics.rb:228:10:228:10 | x [element] | provenance | | +| semantics.rb:227:5:227:5 | x [element] | semantics.rb:228:10:228:10 | x [element] | provenance | | +| semantics.rb:227:5:227:5 | x [element] | semantics.rb:229:10:229:10 | x [element] | provenance | | +| semantics.rb:227:5:227:5 | x [element] | semantics.rb:229:10:229:10 | x [element] | provenance | | +| semantics.rb:227:5:227:5 | x [element] | semantics.rb:230:10:230:10 | x [element] | provenance | | +| semantics.rb:227:5:227:5 | x [element] | semantics.rb:230:10:230:10 | x [element] | provenance | | +| semantics.rb:227:5:227:5 | x [element] | semantics.rb:231:10:231:10 | x [element] | provenance | | +| semantics.rb:227:5:227:5 | x [element] | semantics.rb:231:10:231:10 | x [element] | provenance | | +| semantics.rb:227:9:227:14 | call to s28 [element] | semantics.rb:227:5:227:5 | x [element] | provenance | | +| semantics.rb:227:9:227:14 | call to s28 [element] | semantics.rb:227:5:227:5 | x [element] | provenance | | +| semantics.rb:227:13:227:13 | a | semantics.rb:227:9:227:14 | call to s28 [element] | provenance | | +| semantics.rb:227:13:227:13 | a | semantics.rb:227:9:227:14 | call to s28 [element] | provenance | | +| semantics.rb:228:10:228:10 | x [element] | semantics.rb:228:10:228:13 | ...[...] | provenance | | +| semantics.rb:228:10:228:10 | x [element] | semantics.rb:228:10:228:13 | ...[...] | provenance | | +| semantics.rb:229:10:229:10 | x [element] | semantics.rb:229:10:229:13 | ...[...] | provenance | | +| semantics.rb:229:10:229:10 | x [element] | semantics.rb:229:10:229:13 | ...[...] | provenance | | +| semantics.rb:230:10:230:10 | x [element] | semantics.rb:230:10:230:13 | ...[...] | provenance | | +| semantics.rb:230:10:230:10 | x [element] | semantics.rb:230:10:230:13 | ...[...] | provenance | | +| semantics.rb:231:10:231:10 | x [element] | semantics.rb:231:10:231:13 | ...[...] | provenance | | +| semantics.rb:231:10:231:10 | x [element] | semantics.rb:231:10:231:13 | ...[...] | provenance | | +| semantics.rb:236:5:236:5 | b | semantics.rb:241:5:241:5 | [post] h [element 1] | provenance | | +| semantics.rb:236:5:236:5 | b | semantics.rb:241:5:241:5 | [post] h [element 1] | provenance | | +| semantics.rb:236:9:236:18 | call to source | semantics.rb:236:5:236:5 | b | provenance | | +| semantics.rb:236:9:236:18 | call to source | semantics.rb:236:5:236:5 | b | provenance | | +| semantics.rb:237:5:237:5 | c | semantics.rb:242:5:242:5 | [post] h [element 2] | provenance | | +| semantics.rb:237:5:237:5 | c | semantics.rb:242:5:242:5 | [post] h [element 2] | provenance | | +| semantics.rb:237:9:237:18 | call to source | semantics.rb:237:5:237:5 | c | provenance | | +| semantics.rb:237:9:237:18 | call to source | semantics.rb:237:5:237:5 | c | provenance | | +| semantics.rb:241:5:241:5 | [post] h [element 1] | semantics.rb:242:5:242:5 | h [element 1] | provenance | | +| semantics.rb:241:5:241:5 | [post] h [element 1] | semantics.rb:242:5:242:5 | h [element 1] | provenance | | +| semantics.rb:242:5:242:5 | [post] h [element 1] | semantics.rb:245:14:245:14 | h [element 1] | provenance | | +| semantics.rb:242:5:242:5 | [post] h [element 1] | semantics.rb:245:14:245:14 | h [element 1] | provenance | | +| semantics.rb:242:5:242:5 | [post] h [element 2] | semantics.rb:245:14:245:14 | h [element 2] | provenance | | +| semantics.rb:242:5:242:5 | [post] h [element 2] | semantics.rb:245:14:245:14 | h [element 2] | provenance | | +| semantics.rb:242:5:242:5 | h [element 1] | semantics.rb:242:5:242:5 | [post] h [element 1] | provenance | | +| semantics.rb:242:5:242:5 | h [element 1] | semantics.rb:242:5:242:5 | [post] h [element 1] | provenance | | +| semantics.rb:245:14:245:14 | h [element 1] | semantics.rb:245:10:245:15 | call to s29 | provenance | | +| semantics.rb:245:14:245:14 | h [element 1] | semantics.rb:245:10:245:15 | call to s29 | provenance | | +| semantics.rb:245:14:245:14 | h [element 2] | semantics.rb:245:10:245:15 | call to s29 | provenance | | +| semantics.rb:245:14:245:14 | h [element 2] | semantics.rb:245:10:245:15 | call to s29 | provenance | | +| semantics.rb:249:5:249:5 | a | semantics.rb:250:13:250:13 | a | provenance | | +| semantics.rb:249:5:249:5 | a | semantics.rb:250:13:250:13 | a | provenance | | +| semantics.rb:249:9:249:18 | call to source | semantics.rb:249:5:249:5 | a | provenance | | +| semantics.rb:249:9:249:18 | call to source | semantics.rb:249:5:249:5 | a | provenance | | +| semantics.rb:250:5:250:5 | x [element] | semantics.rb:251:10:251:10 | x [element] | provenance | | +| semantics.rb:250:5:250:5 | x [element] | semantics.rb:251:10:251:10 | x [element] | provenance | | +| semantics.rb:250:5:250:5 | x [element] | semantics.rb:252:10:252:10 | x [element] | provenance | | +| semantics.rb:250:5:250:5 | x [element] | semantics.rb:252:10:252:10 | x [element] | provenance | | +| semantics.rb:250:5:250:5 | x [element] | semantics.rb:253:10:253:10 | x [element] | provenance | | +| semantics.rb:250:5:250:5 | x [element] | semantics.rb:253:10:253:10 | x [element] | provenance | | +| semantics.rb:250:5:250:5 | x [element] | semantics.rb:254:10:254:10 | x [element] | provenance | | +| semantics.rb:250:5:250:5 | x [element] | semantics.rb:254:10:254:10 | x [element] | provenance | | +| semantics.rb:250:9:250:14 | call to s30 [element] | semantics.rb:250:5:250:5 | x [element] | provenance | | +| semantics.rb:250:9:250:14 | call to s30 [element] | semantics.rb:250:5:250:5 | x [element] | provenance | | +| semantics.rb:250:13:250:13 | a | semantics.rb:250:9:250:14 | call to s30 [element] | provenance | | +| semantics.rb:250:13:250:13 | a | semantics.rb:250:9:250:14 | call to s30 [element] | provenance | | +| semantics.rb:251:10:251:10 | x [element] | semantics.rb:251:10:251:13 | ...[...] | provenance | | +| semantics.rb:251:10:251:10 | x [element] | semantics.rb:251:10:251:13 | ...[...] | provenance | | +| semantics.rb:252:10:252:10 | x [element] | semantics.rb:252:10:252:13 | ...[...] | provenance | | +| semantics.rb:252:10:252:10 | x [element] | semantics.rb:252:10:252:13 | ...[...] | provenance | | +| semantics.rb:253:10:253:10 | x [element] | semantics.rb:253:10:253:13 | ...[...] | provenance | | +| semantics.rb:253:10:253:10 | x [element] | semantics.rb:253:10:253:13 | ...[...] | provenance | | +| semantics.rb:254:10:254:10 | x [element] | semantics.rb:254:10:254:13 | ...[...] | provenance | | +| semantics.rb:254:10:254:10 | x [element] | semantics.rb:254:10:254:13 | ...[...] | provenance | | +| semantics.rb:258:5:258:5 | [post] h [element :foo] | semantics.rb:259:5:259:5 | h [element :foo] | provenance | | +| semantics.rb:258:5:258:5 | [post] h [element :foo] | semantics.rb:259:5:259:5 | h [element :foo] | provenance | | +| semantics.rb:258:15:258:25 | call to source | semantics.rb:258:5:258:5 | [post] h [element :foo] | provenance | | +| semantics.rb:258:15:258:25 | call to source | semantics.rb:258:5:258:5 | [post] h [element :foo] | provenance | | +| semantics.rb:259:5:259:5 | [post] h [element :foo] | semantics.rb:260:5:260:5 | h [element :foo] | provenance | | +| semantics.rb:259:5:259:5 | [post] h [element :foo] | semantics.rb:260:5:260:5 | h [element :foo] | provenance | | +| semantics.rb:259:5:259:5 | h [element :foo] | semantics.rb:259:5:259:5 | [post] h [element :foo] | provenance | | +| semantics.rb:259:5:259:5 | h [element :foo] | semantics.rb:259:5:259:5 | [post] h [element :foo] | provenance | | +| semantics.rb:260:5:260:5 | [post] h [element :foo] | semantics.rb:263:14:263:14 | h [element :foo] | provenance | | +| semantics.rb:260:5:260:5 | [post] h [element :foo] | semantics.rb:263:14:263:14 | h [element :foo] | provenance | | +| semantics.rb:260:5:260:5 | h [element :foo] | semantics.rb:260:5:260:5 | [post] h [element :foo] | provenance | | +| semantics.rb:260:5:260:5 | h [element :foo] | semantics.rb:260:5:260:5 | [post] h [element :foo] | provenance | | +| semantics.rb:261:5:261:5 | [post] h [element] | semantics.rb:263:14:263:14 | h [element] | provenance | | +| semantics.rb:261:5:261:5 | [post] h [element] | semantics.rb:263:14:263:14 | h [element] | provenance | | +| semantics.rb:261:12:261:22 | call to source | semantics.rb:261:5:261:5 | [post] h [element] | provenance | | +| semantics.rb:261:12:261:22 | call to source | semantics.rb:261:5:261:5 | [post] h [element] | provenance | | +| semantics.rb:263:14:263:14 | h [element :foo] | semantics.rb:263:10:263:15 | call to s31 | provenance | | +| semantics.rb:263:14:263:14 | h [element :foo] | semantics.rb:263:10:263:15 | call to s31 | provenance | | +| semantics.rb:263:14:263:14 | h [element] | semantics.rb:263:10:263:15 | call to s31 | provenance | | +| semantics.rb:263:14:263:14 | h [element] | semantics.rb:263:10:263:15 | call to s31 | provenance | | +| semantics.rb:268:5:268:5 | [post] h [element foo] | semantics.rb:269:5:269:5 | h [element foo] | provenance | | +| semantics.rb:268:5:268:5 | [post] h [element foo] | semantics.rb:269:5:269:5 | h [element foo] | provenance | | +| semantics.rb:268:16:268:26 | call to source | semantics.rb:268:5:268:5 | [post] h [element foo] | provenance | | +| semantics.rb:268:16:268:26 | call to source | semantics.rb:268:5:268:5 | [post] h [element foo] | provenance | | +| semantics.rb:269:5:269:5 | [post] h [element foo] | semantics.rb:270:5:270:5 | h [element foo] | provenance | | +| semantics.rb:269:5:269:5 | [post] h [element foo] | semantics.rb:270:5:270:5 | h [element foo] | provenance | | +| semantics.rb:269:5:269:5 | h [element foo] | semantics.rb:269:5:269:5 | [post] h [element foo] | provenance | | +| semantics.rb:269:5:269:5 | h [element foo] | semantics.rb:269:5:269:5 | [post] h [element foo] | provenance | | +| semantics.rb:270:5:270:5 | [post] h [element foo] | semantics.rb:273:14:273:14 | h [element foo] | provenance | | +| semantics.rb:270:5:270:5 | [post] h [element foo] | semantics.rb:273:14:273:14 | h [element foo] | provenance | | +| semantics.rb:270:5:270:5 | h [element foo] | semantics.rb:270:5:270:5 | [post] h [element foo] | provenance | | +| semantics.rb:270:5:270:5 | h [element foo] | semantics.rb:270:5:270:5 | [post] h [element foo] | provenance | | +| semantics.rb:271:5:271:5 | [post] h [element] | semantics.rb:273:14:273:14 | h [element] | provenance | | +| semantics.rb:271:5:271:5 | [post] h [element] | semantics.rb:273:14:273:14 | h [element] | provenance | | +| semantics.rb:271:12:271:22 | call to source | semantics.rb:271:5:271:5 | [post] h [element] | provenance | | +| semantics.rb:271:12:271:22 | call to source | semantics.rb:271:5:271:5 | [post] h [element] | provenance | | +| semantics.rb:273:14:273:14 | h [element foo] | semantics.rb:273:10:273:15 | call to s32 | provenance | | +| semantics.rb:273:14:273:14 | h [element foo] | semantics.rb:273:10:273:15 | call to s32 | provenance | | +| semantics.rb:273:14:273:14 | h [element] | semantics.rb:273:10:273:15 | call to s32 | provenance | | +| semantics.rb:273:14:273:14 | h [element] | semantics.rb:273:10:273:15 | call to s32 | provenance | | +| semantics.rb:281:5:281:5 | [post] h [element] | semantics.rb:282:5:282:5 | h [element] | provenance | | +| semantics.rb:281:5:281:5 | [post] h [element] | semantics.rb:282:5:282:5 | h [element] | provenance | | +| semantics.rb:281:12:281:22 | call to source | semantics.rb:281:5:281:5 | [post] h [element] | provenance | | +| semantics.rb:281:12:281:22 | call to source | semantics.rb:281:5:281:5 | [post] h [element] | provenance | | +| semantics.rb:282:5:282:5 | [post] h [element nil] | semantics.rb:283:5:283:5 | h [element nil] | provenance | | +| semantics.rb:282:5:282:5 | [post] h [element nil] | semantics.rb:283:5:283:5 | h [element nil] | provenance | | +| semantics.rb:282:5:282:5 | [post] h [element] | semantics.rb:283:5:283:5 | h [element] | provenance | | +| semantics.rb:282:5:282:5 | [post] h [element] | semantics.rb:283:5:283:5 | h [element] | provenance | | +| semantics.rb:282:5:282:5 | h [element] | semantics.rb:282:5:282:5 | [post] h [element] | provenance | | +| semantics.rb:282:5:282:5 | h [element] | semantics.rb:282:5:282:5 | [post] h [element] | provenance | | +| semantics.rb:282:14:282:24 | call to source | semantics.rb:282:5:282:5 | [post] h [element nil] | provenance | | +| semantics.rb:282:14:282:24 | call to source | semantics.rb:282:5:282:5 | [post] h [element nil] | provenance | | +| semantics.rb:283:5:283:5 | [post] h [element nil] | semantics.rb:284:5:284:5 | h [element nil] | provenance | | +| semantics.rb:283:5:283:5 | [post] h [element nil] | semantics.rb:284:5:284:5 | h [element nil] | provenance | | +| semantics.rb:283:5:283:5 | [post] h [element true] | semantics.rb:284:5:284:5 | h [element true] | provenance | | +| semantics.rb:283:5:283:5 | [post] h [element true] | semantics.rb:284:5:284:5 | h [element true] | provenance | | +| semantics.rb:283:5:283:5 | [post] h [element] | semantics.rb:284:5:284:5 | h [element] | provenance | | +| semantics.rb:283:5:283:5 | [post] h [element] | semantics.rb:284:5:284:5 | h [element] | provenance | | +| semantics.rb:283:5:283:5 | h [element nil] | semantics.rb:283:5:283:5 | [post] h [element nil] | provenance | | +| semantics.rb:283:5:283:5 | h [element nil] | semantics.rb:283:5:283:5 | [post] h [element nil] | provenance | | +| semantics.rb:283:5:283:5 | h [element] | semantics.rb:283:5:283:5 | [post] h [element] | provenance | | +| semantics.rb:283:5:283:5 | h [element] | semantics.rb:283:5:283:5 | [post] h [element] | provenance | | +| semantics.rb:283:15:283:25 | call to source | semantics.rb:283:5:283:5 | [post] h [element true] | provenance | | +| semantics.rb:283:15:283:25 | call to source | semantics.rb:283:5:283:5 | [post] h [element true] | provenance | | +| semantics.rb:284:5:284:5 | [post] h [element false] | semantics.rb:286:14:286:14 | h [element false] | provenance | | +| semantics.rb:284:5:284:5 | [post] h [element false] | semantics.rb:286:14:286:14 | h [element false] | provenance | | +| semantics.rb:284:5:284:5 | [post] h [element nil] | semantics.rb:286:14:286:14 | h [element nil] | provenance | | +| semantics.rb:284:5:284:5 | [post] h [element nil] | semantics.rb:286:14:286:14 | h [element nil] | provenance | | +| semantics.rb:284:5:284:5 | [post] h [element true] | semantics.rb:286:14:286:14 | h [element true] | provenance | | +| semantics.rb:284:5:284:5 | [post] h [element true] | semantics.rb:286:14:286:14 | h [element true] | provenance | | +| semantics.rb:284:5:284:5 | [post] h [element] | semantics.rb:286:14:286:14 | h [element] | provenance | | +| semantics.rb:284:5:284:5 | [post] h [element] | semantics.rb:286:14:286:14 | h [element] | provenance | | +| semantics.rb:284:5:284:5 | h [element nil] | semantics.rb:284:5:284:5 | [post] h [element nil] | provenance | | +| semantics.rb:284:5:284:5 | h [element nil] | semantics.rb:284:5:284:5 | [post] h [element nil] | provenance | | +| semantics.rb:284:5:284:5 | h [element true] | semantics.rb:284:5:284:5 | [post] h [element true] | provenance | | +| semantics.rb:284:5:284:5 | h [element true] | semantics.rb:284:5:284:5 | [post] h [element true] | provenance | | +| semantics.rb:284:5:284:5 | h [element] | semantics.rb:284:5:284:5 | [post] h [element] | provenance | | +| semantics.rb:284:5:284:5 | h [element] | semantics.rb:284:5:284:5 | [post] h [element] | provenance | | +| semantics.rb:284:16:284:26 | call to source | semantics.rb:284:5:284:5 | [post] h [element false] | provenance | | +| semantics.rb:284:16:284:26 | call to source | semantics.rb:284:5:284:5 | [post] h [element false] | provenance | | +| semantics.rb:286:14:286:14 | h [element false] | semantics.rb:286:10:286:15 | call to s33 | provenance | | +| semantics.rb:286:14:286:14 | h [element false] | semantics.rb:286:10:286:15 | call to s33 | provenance | | +| semantics.rb:286:14:286:14 | h [element nil] | semantics.rb:286:10:286:15 | call to s33 | provenance | | +| semantics.rb:286:14:286:14 | h [element nil] | semantics.rb:286:10:286:15 | call to s33 | provenance | | +| semantics.rb:286:14:286:14 | h [element true] | semantics.rb:286:10:286:15 | call to s33 | provenance | | +| semantics.rb:286:14:286:14 | h [element true] | semantics.rb:286:10:286:15 | call to s33 | provenance | | +| semantics.rb:286:14:286:14 | h [element] | semantics.rb:286:10:286:15 | call to s33 | provenance | | +| semantics.rb:286:14:286:14 | h [element] | semantics.rb:286:10:286:15 | call to s33 | provenance | | +| semantics.rb:290:5:290:5 | x [element :foo] | semantics.rb:291:10:291:10 | x [element :foo] | provenance | | +| semantics.rb:290:5:290:5 | x [element :foo] | semantics.rb:291:10:291:10 | x [element :foo] | provenance | | +| semantics.rb:290:5:290:5 | x [element :foo] | semantics.rb:293:10:293:10 | x [element :foo] | provenance | | +| semantics.rb:290:5:290:5 | x [element :foo] | semantics.rb:293:10:293:10 | x [element :foo] | provenance | | +| semantics.rb:290:9:290:24 | call to s35 [element :foo] | semantics.rb:290:5:290:5 | x [element :foo] | provenance | | +| semantics.rb:290:9:290:24 | call to s35 [element :foo] | semantics.rb:290:5:290:5 | x [element :foo] | provenance | | +| semantics.rb:290:13:290:23 | call to source | semantics.rb:290:9:290:24 | call to s35 [element :foo] | provenance | | +| semantics.rb:290:13:290:23 | call to source | semantics.rb:290:9:290:24 | call to s35 [element :foo] | provenance | | +| semantics.rb:291:10:291:10 | x [element :foo] | semantics.rb:291:10:291:16 | ...[...] | provenance | | +| semantics.rb:291:10:291:10 | x [element :foo] | semantics.rb:291:10:291:16 | ...[...] | provenance | | +| semantics.rb:293:10:293:10 | x [element :foo] | semantics.rb:293:10:293:13 | ...[...] | provenance | | +| semantics.rb:293:10:293:10 | x [element :foo] | semantics.rb:293:10:293:13 | ...[...] | provenance | | +| semantics.rb:297:5:297:5 | x [element foo] | semantics.rb:299:10:299:10 | x [element foo] | provenance | | +| semantics.rb:297:5:297:5 | x [element foo] | semantics.rb:299:10:299:10 | x [element foo] | provenance | | +| semantics.rb:297:5:297:5 | x [element foo] | semantics.rb:301:10:301:10 | x [element foo] | provenance | | +| semantics.rb:297:5:297:5 | x [element foo] | semantics.rb:301:10:301:10 | x [element foo] | provenance | | +| semantics.rb:297:9:297:24 | call to s36 [element foo] | semantics.rb:297:5:297:5 | x [element foo] | provenance | | +| semantics.rb:297:9:297:24 | call to s36 [element foo] | semantics.rb:297:5:297:5 | x [element foo] | provenance | | +| semantics.rb:297:13:297:23 | call to source | semantics.rb:297:9:297:24 | call to s36 [element foo] | provenance | | +| semantics.rb:297:13:297:23 | call to source | semantics.rb:297:9:297:24 | call to s36 [element foo] | provenance | | +| semantics.rb:299:10:299:10 | x [element foo] | semantics.rb:299:10:299:17 | ...[...] | provenance | | +| semantics.rb:299:10:299:10 | x [element foo] | semantics.rb:299:10:299:17 | ...[...] | provenance | | +| semantics.rb:301:10:301:10 | x [element foo] | semantics.rb:301:10:301:13 | ...[...] | provenance | | +| semantics.rb:301:10:301:10 | x [element foo] | semantics.rb:301:10:301:13 | ...[...] | provenance | | +| semantics.rb:305:5:305:5 | x [element true] | semantics.rb:307:10:307:10 | x [element true] | provenance | | +| semantics.rb:305:5:305:5 | x [element true] | semantics.rb:307:10:307:10 | x [element true] | provenance | | +| semantics.rb:305:5:305:5 | x [element true] | semantics.rb:309:10:309:10 | x [element true] | provenance | | +| semantics.rb:305:5:305:5 | x [element true] | semantics.rb:309:10:309:10 | x [element true] | provenance | | +| semantics.rb:305:9:305:24 | call to s37 [element true] | semantics.rb:305:5:305:5 | x [element true] | provenance | | +| semantics.rb:305:9:305:24 | call to s37 [element true] | semantics.rb:305:5:305:5 | x [element true] | provenance | | +| semantics.rb:305:13:305:23 | call to source | semantics.rb:305:9:305:24 | call to s37 [element true] | provenance | | +| semantics.rb:305:13:305:23 | call to source | semantics.rb:305:9:305:24 | call to s37 [element true] | provenance | | +| semantics.rb:307:10:307:10 | x [element true] | semantics.rb:307:10:307:16 | ...[...] | provenance | | +| semantics.rb:307:10:307:10 | x [element true] | semantics.rb:307:10:307:16 | ...[...] | provenance | | +| semantics.rb:309:10:309:10 | x [element true] | semantics.rb:309:10:309:13 | ...[...] | provenance | | +| semantics.rb:309:10:309:10 | x [element true] | semantics.rb:309:10:309:13 | ...[...] | provenance | | +| semantics.rb:313:5:313:5 | [post] h [element foo] | semantics.rb:316:14:316:14 | h [element foo] | provenance | | +| semantics.rb:313:5:313:5 | [post] h [element foo] | semantics.rb:316:14:316:14 | h [element foo] | provenance | | +| semantics.rb:313:16:313:26 | call to source | semantics.rb:313:5:313:5 | [post] h [element foo] | provenance | | +| semantics.rb:313:16:313:26 | call to source | semantics.rb:313:5:313:5 | [post] h [element foo] | provenance | | +| semantics.rb:316:14:316:14 | h [element foo] | semantics.rb:316:10:316:15 | call to s38 | provenance | | +| semantics.rb:316:14:316:14 | h [element foo] | semantics.rb:316:10:316:15 | call to s38 | provenance | | +| semantics.rb:320:5:320:5 | x [element :foo] | semantics.rb:322:10:322:10 | x [element :foo] | provenance | | +| semantics.rb:320:5:320:5 | x [element :foo] | semantics.rb:322:10:322:10 | x [element :foo] | provenance | | +| semantics.rb:320:5:320:5 | x [element :foo] | semantics.rb:323:10:323:10 | x [element :foo] | provenance | | +| semantics.rb:320:5:320:5 | x [element :foo] | semantics.rb:323:10:323:10 | x [element :foo] | provenance | | +| semantics.rb:320:9:320:24 | call to s39 [element :foo] | semantics.rb:320:5:320:5 | x [element :foo] | provenance | | +| semantics.rb:320:9:320:24 | call to s39 [element :foo] | semantics.rb:320:5:320:5 | x [element :foo] | provenance | | +| semantics.rb:320:13:320:23 | call to source | semantics.rb:320:9:320:24 | call to s39 [element :foo] | provenance | | +| semantics.rb:320:13:320:23 | call to source | semantics.rb:320:9:320:24 | call to s39 [element :foo] | provenance | | +| semantics.rb:322:10:322:10 | x [element :foo] | semantics.rb:322:10:322:16 | ...[...] | provenance | | +| semantics.rb:322:10:322:10 | x [element :foo] | semantics.rb:322:10:322:16 | ...[...] | provenance | | +| semantics.rb:323:10:323:10 | x [element :foo] | semantics.rb:323:10:323:13 | ...[...] | provenance | | +| semantics.rb:323:10:323:10 | x [element :foo] | semantics.rb:323:10:323:13 | ...[...] | provenance | | +| semantics.rb:328:5:328:5 | [post] x [@foo] | semantics.rb:330:14:330:14 | x [@foo] | provenance | | +| semantics.rb:328:5:328:5 | [post] x [@foo] | semantics.rb:330:14:330:14 | x [@foo] | provenance | | +| semantics.rb:328:13:328:23 | call to source | semantics.rb:328:5:328:5 | [post] x [@foo] | provenance | | +| semantics.rb:328:13:328:23 | call to source | semantics.rb:328:5:328:5 | [post] x [@foo] | provenance | | +| semantics.rb:330:14:330:14 | x [@foo] | semantics.rb:330:10:330:15 | call to s40 | provenance | | +| semantics.rb:330:14:330:14 | x [@foo] | semantics.rb:330:10:330:15 | call to s40 | provenance | | +| semantics.rb:334:5:334:5 | x [@foo] | semantics.rb:335:10:335:10 | x [@foo] | provenance | | +| semantics.rb:334:5:334:5 | x [@foo] | semantics.rb:335:10:335:10 | x [@foo] | provenance | | +| semantics.rb:334:9:334:24 | call to s41 [@foo] | semantics.rb:334:5:334:5 | x [@foo] | provenance | | +| semantics.rb:334:9:334:24 | call to s41 [@foo] | semantics.rb:334:5:334:5 | x [@foo] | provenance | | +| semantics.rb:334:13:334:23 | call to source | semantics.rb:334:9:334:24 | call to s41 [@foo] | provenance | | +| semantics.rb:334:13:334:23 | call to source | semantics.rb:334:9:334:24 | call to s41 [@foo] | provenance | | +| semantics.rb:335:10:335:10 | x [@foo] | semantics.rb:335:10:335:14 | call to foo | provenance | | +| semantics.rb:335:10:335:10 | x [@foo] | semantics.rb:335:10:335:14 | call to foo | provenance | | +| semantics.rb:340:5:340:5 | [post] h [element 0] | semantics.rb:343:13:343:13 | h [element 0] | provenance | | +| semantics.rb:340:5:340:5 | [post] h [element 0] | semantics.rb:343:13:343:13 | h [element 0] | provenance | | +| semantics.rb:340:12:340:22 | call to source | semantics.rb:340:5:340:5 | [post] h [element 0] | provenance | | +| semantics.rb:340:12:340:22 | call to source | semantics.rb:340:5:340:5 | [post] h [element 0] | provenance | | +| semantics.rb:341:5:341:5 | [post] h [element] | semantics.rb:343:13:343:13 | h [element] | provenance | | +| semantics.rb:341:5:341:5 | [post] h [element] | semantics.rb:343:13:343:13 | h [element] | provenance | | +| semantics.rb:341:12:341:22 | call to source | semantics.rb:341:5:341:5 | [post] h [element] | provenance | | +| semantics.rb:341:12:341:22 | call to source | semantics.rb:341:5:341:5 | [post] h [element] | provenance | | +| semantics.rb:343:5:343:5 | x [element 0] | semantics.rb:345:10:345:10 | x [element 0] | provenance | | +| semantics.rb:343:5:343:5 | x [element 0] | semantics.rb:345:10:345:10 | x [element 0] | provenance | | +| semantics.rb:343:5:343:5 | x [element 0] | semantics.rb:347:10:347:10 | x [element 0] | provenance | | +| semantics.rb:343:5:343:5 | x [element 0] | semantics.rb:347:10:347:10 | x [element 0] | provenance | | +| semantics.rb:343:5:343:5 | x [element] | semantics.rb:345:10:345:10 | x [element] | provenance | | +| semantics.rb:343:5:343:5 | x [element] | semantics.rb:345:10:345:10 | x [element] | provenance | | +| semantics.rb:343:5:343:5 | x [element] | semantics.rb:346:10:346:10 | x [element] | provenance | | +| semantics.rb:343:5:343:5 | x [element] | semantics.rb:346:10:346:10 | x [element] | provenance | | +| semantics.rb:343:5:343:5 | x [element] | semantics.rb:347:10:347:10 | x [element] | provenance | | +| semantics.rb:343:5:343:5 | x [element] | semantics.rb:347:10:347:10 | x [element] | provenance | | +| semantics.rb:343:9:343:14 | call to s42 [element 0] | semantics.rb:343:5:343:5 | x [element 0] | provenance | | +| semantics.rb:343:9:343:14 | call to s42 [element 0] | semantics.rb:343:5:343:5 | x [element 0] | provenance | | +| semantics.rb:343:9:343:14 | call to s42 [element] | semantics.rb:343:5:343:5 | x [element] | provenance | | +| semantics.rb:343:9:343:14 | call to s42 [element] | semantics.rb:343:5:343:5 | x [element] | provenance | | +| semantics.rb:343:13:343:13 | h [element 0] | semantics.rb:343:9:343:14 | call to s42 [element 0] | provenance | | +| semantics.rb:343:13:343:13 | h [element 0] | semantics.rb:343:9:343:14 | call to s42 [element 0] | provenance | | +| semantics.rb:343:13:343:13 | h [element] | semantics.rb:343:9:343:14 | call to s42 [element] | provenance | | +| semantics.rb:343:13:343:13 | h [element] | semantics.rb:343:9:343:14 | call to s42 [element] | provenance | | +| semantics.rb:345:10:345:10 | x [element 0] | semantics.rb:345:10:345:13 | ...[...] | provenance | | +| semantics.rb:345:10:345:10 | x [element 0] | semantics.rb:345:10:345:13 | ...[...] | provenance | | +| semantics.rb:345:10:345:10 | x [element] | semantics.rb:345:10:345:13 | ...[...] | provenance | | +| semantics.rb:345:10:345:10 | x [element] | semantics.rb:345:10:345:13 | ...[...] | provenance | | +| semantics.rb:346:10:346:10 | x [element] | semantics.rb:346:10:346:13 | ...[...] | provenance | | +| semantics.rb:346:10:346:10 | x [element] | semantics.rb:346:10:346:13 | ...[...] | provenance | | +| semantics.rb:347:10:347:10 | x [element 0] | semantics.rb:347:10:347:13 | ...[...] | provenance | | +| semantics.rb:347:10:347:10 | x [element 0] | semantics.rb:347:10:347:13 | ...[...] | provenance | | +| semantics.rb:347:10:347:10 | x [element] | semantics.rb:347:10:347:13 | ...[...] | provenance | | +| semantics.rb:347:10:347:10 | x [element] | semantics.rb:347:10:347:13 | ...[...] | provenance | | +| semantics.rb:351:5:351:5 | [post] h [element 0] | semantics.rb:354:13:354:13 | h [element 0] | provenance | | +| semantics.rb:351:5:351:5 | [post] h [element 0] | semantics.rb:354:13:354:13 | h [element 0] | provenance | | +| semantics.rb:351:12:351:22 | call to source | semantics.rb:351:5:351:5 | [post] h [element 0] | provenance | | +| semantics.rb:351:12:351:22 | call to source | semantics.rb:351:5:351:5 | [post] h [element 0] | provenance | | +| semantics.rb:354:5:354:5 | x [element 0] | semantics.rb:356:10:356:10 | x [element 0] | provenance | | +| semantics.rb:354:5:354:5 | x [element 0] | semantics.rb:356:10:356:10 | x [element 0] | provenance | | +| semantics.rb:354:5:354:5 | x [element 0] | semantics.rb:358:10:358:10 | x [element 0] | provenance | | +| semantics.rb:354:5:354:5 | x [element 0] | semantics.rb:358:10:358:10 | x [element 0] | provenance | | +| semantics.rb:354:9:354:14 | call to s43 [element 0] | semantics.rb:354:5:354:5 | x [element 0] | provenance | | +| semantics.rb:354:9:354:14 | call to s43 [element 0] | semantics.rb:354:5:354:5 | x [element 0] | provenance | | +| semantics.rb:354:13:354:13 | h [element 0] | semantics.rb:354:9:354:14 | call to s43 [element 0] | provenance | | +| semantics.rb:354:13:354:13 | h [element 0] | semantics.rb:354:9:354:14 | call to s43 [element 0] | provenance | | +| semantics.rb:356:10:356:10 | x [element 0] | semantics.rb:356:10:356:13 | ...[...] | provenance | | +| semantics.rb:356:10:356:10 | x [element 0] | semantics.rb:356:10:356:13 | ...[...] | provenance | | +| semantics.rb:358:10:358:10 | x [element 0] | semantics.rb:358:10:358:13 | ...[...] | provenance | | +| semantics.rb:358:10:358:10 | x [element 0] | semantics.rb:358:10:358:13 | ...[...] | provenance | | +| semantics.rb:363:5:363:5 | [post] h [element 1] | semantics.rb:366:9:366:9 | h [element 1] | provenance | | +| semantics.rb:363:5:363:5 | [post] h [element 1] | semantics.rb:366:9:366:9 | h [element 1] | provenance | | +| semantics.rb:363:12:363:22 | call to source | semantics.rb:363:5:363:5 | [post] h [element 1] | provenance | | +| semantics.rb:363:12:363:22 | call to source | semantics.rb:363:5:363:5 | [post] h [element 1] | provenance | | +| semantics.rb:366:9:366:9 | [post] h [element 1] | semantics.rb:369:10:369:10 | h [element 1] | provenance | | +| semantics.rb:366:9:366:9 | [post] h [element 1] | semantics.rb:369:10:369:10 | h [element 1] | provenance | | +| semantics.rb:366:9:366:9 | [post] h [element 1] | semantics.rb:370:10:370:10 | h [element 1] | provenance | | +| semantics.rb:366:9:366:9 | [post] h [element 1] | semantics.rb:370:10:370:10 | h [element 1] | provenance | | +| semantics.rb:366:9:366:9 | h [element 1] | semantics.rb:366:9:366:9 | [post] h [element 1] | provenance | | +| semantics.rb:366:9:366:9 | h [element 1] | semantics.rb:366:9:366:9 | [post] h [element 1] | provenance | | +| semantics.rb:369:10:369:10 | h [element 1] | semantics.rb:369:10:369:13 | ...[...] | provenance | | +| semantics.rb:369:10:369:10 | h [element 1] | semantics.rb:369:10:369:13 | ...[...] | provenance | | +| semantics.rb:370:10:370:10 | h [element 1] | semantics.rb:370:10:370:13 | ...[...] | provenance | | +| semantics.rb:370:10:370:10 | h [element 1] | semantics.rb:370:10:370:13 | ...[...] | provenance | | +| semantics.rb:374:5:374:5 | [post] h [element 0] | semantics.rb:375:5:375:5 | h [element 0] | provenance | | +| semantics.rb:374:5:374:5 | [post] h [element 0] | semantics.rb:375:5:375:5 | h [element 0] | provenance | | +| semantics.rb:374:12:374:22 | call to source | semantics.rb:374:5:374:5 | [post] h [element 0] | provenance | | +| semantics.rb:374:12:374:22 | call to source | semantics.rb:374:5:374:5 | [post] h [element 0] | provenance | | +| semantics.rb:375:5:375:5 | [post] h [element 0] | semantics.rb:378:10:378:10 | h [element 0] | provenance | | +| semantics.rb:375:5:375:5 | [post] h [element 0] | semantics.rb:378:10:378:10 | h [element 0] | provenance | | +| semantics.rb:375:5:375:5 | [post] h [element 0] | semantics.rb:380:10:380:10 | h [element 0] | provenance | | +| semantics.rb:375:5:375:5 | [post] h [element 0] | semantics.rb:380:10:380:10 | h [element 0] | provenance | | +| semantics.rb:375:5:375:5 | [post] h [element 1] | semantics.rb:379:10:379:10 | h [element 1] | provenance | | +| semantics.rb:375:5:375:5 | [post] h [element 1] | semantics.rb:379:10:379:10 | h [element 1] | provenance | | +| semantics.rb:375:5:375:5 | [post] h [element 1] | semantics.rb:380:10:380:10 | h [element 1] | provenance | | +| semantics.rb:375:5:375:5 | [post] h [element 1] | semantics.rb:380:10:380:10 | h [element 1] | provenance | | +| semantics.rb:375:5:375:5 | [post] h [element 1] | semantics.rb:382:9:382:9 | h [element 1] | provenance | | +| semantics.rb:375:5:375:5 | [post] h [element 1] | semantics.rb:382:9:382:9 | h [element 1] | provenance | | +| semantics.rb:375:5:375:5 | h [element 0] | semantics.rb:375:5:375:5 | [post] h [element 0] | provenance | | +| semantics.rb:375:5:375:5 | h [element 0] | semantics.rb:375:5:375:5 | [post] h [element 0] | provenance | | +| semantics.rb:375:12:375:22 | call to source | semantics.rb:375:5:375:5 | [post] h [element 1] | provenance | | +| semantics.rb:375:12:375:22 | call to source | semantics.rb:375:5:375:5 | [post] h [element 1] | provenance | | +| semantics.rb:376:5:376:5 | [post] h [element] | semantics.rb:378:10:378:10 | h [element] | provenance | | +| semantics.rb:376:5:376:5 | [post] h [element] | semantics.rb:378:10:378:10 | h [element] | provenance | | +| semantics.rb:376:5:376:5 | [post] h [element] | semantics.rb:379:10:379:10 | h [element] | provenance | | +| semantics.rb:376:5:376:5 | [post] h [element] | semantics.rb:379:10:379:10 | h [element] | provenance | | +| semantics.rb:376:5:376:5 | [post] h [element] | semantics.rb:380:10:380:10 | h [element] | provenance | | +| semantics.rb:376:5:376:5 | [post] h [element] | semantics.rb:380:10:380:10 | h [element] | provenance | | +| semantics.rb:376:5:376:5 | [post] h [element] | semantics.rb:382:9:382:9 | h [element] | provenance | | +| semantics.rb:376:5:376:5 | [post] h [element] | semantics.rb:382:9:382:9 | h [element] | provenance | | +| semantics.rb:376:12:376:22 | call to source | semantics.rb:376:5:376:5 | [post] h [element] | provenance | | +| semantics.rb:376:12:376:22 | call to source | semantics.rb:376:5:376:5 | [post] h [element] | provenance | | +| semantics.rb:378:10:378:10 | h [element 0] | semantics.rb:378:10:378:13 | ...[...] | provenance | | +| semantics.rb:378:10:378:10 | h [element 0] | semantics.rb:378:10:378:13 | ...[...] | provenance | | +| semantics.rb:378:10:378:10 | h [element] | semantics.rb:378:10:378:13 | ...[...] | provenance | | +| semantics.rb:378:10:378:10 | h [element] | semantics.rb:378:10:378:13 | ...[...] | provenance | | +| semantics.rb:379:10:379:10 | h [element 1] | semantics.rb:379:10:379:13 | ...[...] | provenance | | +| semantics.rb:379:10:379:10 | h [element 1] | semantics.rb:379:10:379:13 | ...[...] | provenance | | +| semantics.rb:379:10:379:10 | h [element] | semantics.rb:379:10:379:13 | ...[...] | provenance | | +| semantics.rb:379:10:379:10 | h [element] | semantics.rb:379:10:379:13 | ...[...] | provenance | | +| semantics.rb:380:10:380:10 | h [element 0] | semantics.rb:380:10:380:13 | ...[...] | provenance | | +| semantics.rb:380:10:380:10 | h [element 0] | semantics.rb:380:10:380:13 | ...[...] | provenance | | +| semantics.rb:380:10:380:10 | h [element 1] | semantics.rb:380:10:380:13 | ...[...] | provenance | | +| semantics.rb:380:10:380:10 | h [element 1] | semantics.rb:380:10:380:13 | ...[...] | provenance | | +| semantics.rb:380:10:380:10 | h [element] | semantics.rb:380:10:380:13 | ...[...] | provenance | | +| semantics.rb:380:10:380:10 | h [element] | semantics.rb:380:10:380:13 | ...[...] | provenance | | +| semantics.rb:382:9:382:9 | [post] h [element 1] | semantics.rb:385:10:385:10 | h [element 1] | provenance | | +| semantics.rb:382:9:382:9 | [post] h [element 1] | semantics.rb:385:10:385:10 | h [element 1] | provenance | | +| semantics.rb:382:9:382:9 | [post] h [element 1] | semantics.rb:386:10:386:10 | h [element 1] | provenance | | +| semantics.rb:382:9:382:9 | [post] h [element 1] | semantics.rb:386:10:386:10 | h [element 1] | provenance | | +| semantics.rb:382:9:382:9 | [post] h [element] | semantics.rb:384:10:384:10 | h [element] | provenance | | +| semantics.rb:382:9:382:9 | [post] h [element] | semantics.rb:384:10:384:10 | h [element] | provenance | | +| semantics.rb:382:9:382:9 | [post] h [element] | semantics.rb:385:10:385:10 | h [element] | provenance | | +| semantics.rb:382:9:382:9 | [post] h [element] | semantics.rb:385:10:385:10 | h [element] | provenance | | +| semantics.rb:382:9:382:9 | [post] h [element] | semantics.rb:386:10:386:10 | h [element] | provenance | | +| semantics.rb:382:9:382:9 | [post] h [element] | semantics.rb:386:10:386:10 | h [element] | provenance | | +| semantics.rb:382:9:382:9 | h [element 1] | semantics.rb:382:9:382:9 | [post] h [element 1] | provenance | | +| semantics.rb:382:9:382:9 | h [element 1] | semantics.rb:382:9:382:9 | [post] h [element 1] | provenance | | +| semantics.rb:382:9:382:9 | h [element] | semantics.rb:382:9:382:9 | [post] h [element] | provenance | | +| semantics.rb:382:9:382:9 | h [element] | semantics.rb:382:9:382:9 | [post] h [element] | provenance | | +| semantics.rb:384:10:384:10 | h [element] | semantics.rb:384:10:384:13 | ...[...] | provenance | | +| semantics.rb:384:10:384:10 | h [element] | semantics.rb:384:10:384:13 | ...[...] | provenance | | +| semantics.rb:385:10:385:10 | h [element 1] | semantics.rb:385:10:385:13 | ...[...] | provenance | | +| semantics.rb:385:10:385:10 | h [element 1] | semantics.rb:385:10:385:13 | ...[...] | provenance | | +| semantics.rb:385:10:385:10 | h [element] | semantics.rb:385:10:385:13 | ...[...] | provenance | | +| semantics.rb:385:10:385:10 | h [element] | semantics.rb:385:10:385:13 | ...[...] | provenance | | +| semantics.rb:386:10:386:10 | h [element 1] | semantics.rb:386:10:386:13 | ...[...] | provenance | | +| semantics.rb:386:10:386:10 | h [element 1] | semantics.rb:386:10:386:13 | ...[...] | provenance | | +| semantics.rb:386:10:386:10 | h [element] | semantics.rb:386:10:386:13 | ...[...] | provenance | | +| semantics.rb:386:10:386:10 | h [element] | semantics.rb:386:10:386:13 | ...[...] | provenance | | +| semantics.rb:390:5:390:5 | [post] h [element 0] | semantics.rb:391:5:391:5 | h [element 0] | provenance | | +| semantics.rb:390:5:390:5 | [post] h [element 0] | semantics.rb:391:5:391:5 | h [element 0] | provenance | | +| semantics.rb:390:12:390:22 | call to source | semantics.rb:390:5:390:5 | [post] h [element 0] | provenance | | +| semantics.rb:390:12:390:22 | call to source | semantics.rb:390:5:390:5 | [post] h [element 0] | provenance | | +| semantics.rb:391:5:391:5 | [post] h [element 0] | semantics.rb:394:10:394:10 | h [element 0] | provenance | | +| semantics.rb:391:5:391:5 | [post] h [element 0] | semantics.rb:394:10:394:10 | h [element 0] | provenance | | +| semantics.rb:391:5:391:5 | [post] h [element 0] | semantics.rb:396:10:396:10 | h [element 0] | provenance | | +| semantics.rb:391:5:391:5 | [post] h [element 0] | semantics.rb:396:10:396:10 | h [element 0] | provenance | | +| semantics.rb:391:5:391:5 | [post] h [element 1] | semantics.rb:395:10:395:10 | h [element 1] | provenance | | +| semantics.rb:391:5:391:5 | [post] h [element 1] | semantics.rb:395:10:395:10 | h [element 1] | provenance | | +| semantics.rb:391:5:391:5 | [post] h [element 1] | semantics.rb:396:10:396:10 | h [element 1] | provenance | | +| semantics.rb:391:5:391:5 | [post] h [element 1] | semantics.rb:396:10:396:10 | h [element 1] | provenance | | +| semantics.rb:391:5:391:5 | [post] h [element 1] | semantics.rb:398:13:398:13 | h [element 1] | provenance | | +| semantics.rb:391:5:391:5 | [post] h [element 1] | semantics.rb:398:13:398:13 | h [element 1] | provenance | | +| semantics.rb:391:5:391:5 | h [element 0] | semantics.rb:391:5:391:5 | [post] h [element 0] | provenance | | +| semantics.rb:391:5:391:5 | h [element 0] | semantics.rb:391:5:391:5 | [post] h [element 0] | provenance | | +| semantics.rb:391:12:391:22 | call to source | semantics.rb:391:5:391:5 | [post] h [element 1] | provenance | | +| semantics.rb:391:12:391:22 | call to source | semantics.rb:391:5:391:5 | [post] h [element 1] | provenance | | +| semantics.rb:392:5:392:5 | [post] h [element] | semantics.rb:394:10:394:10 | h [element] | provenance | | +| semantics.rb:392:5:392:5 | [post] h [element] | semantics.rb:394:10:394:10 | h [element] | provenance | | +| semantics.rb:392:5:392:5 | [post] h [element] | semantics.rb:395:10:395:10 | h [element] | provenance | | +| semantics.rb:392:5:392:5 | [post] h [element] | semantics.rb:395:10:395:10 | h [element] | provenance | | +| semantics.rb:392:5:392:5 | [post] h [element] | semantics.rb:396:10:396:10 | h [element] | provenance | | +| semantics.rb:392:5:392:5 | [post] h [element] | semantics.rb:396:10:396:10 | h [element] | provenance | | +| semantics.rb:392:12:392:22 | call to source | semantics.rb:392:5:392:5 | [post] h [element] | provenance | | +| semantics.rb:392:12:392:22 | call to source | semantics.rb:392:5:392:5 | [post] h [element] | provenance | | +| semantics.rb:394:10:394:10 | h [element 0] | semantics.rb:394:10:394:13 | ...[...] | provenance | | +| semantics.rb:394:10:394:10 | h [element 0] | semantics.rb:394:10:394:13 | ...[...] | provenance | | +| semantics.rb:394:10:394:10 | h [element] | semantics.rb:394:10:394:13 | ...[...] | provenance | | +| semantics.rb:394:10:394:10 | h [element] | semantics.rb:394:10:394:13 | ...[...] | provenance | | +| semantics.rb:395:10:395:10 | h [element 1] | semantics.rb:395:10:395:13 | ...[...] | provenance | | +| semantics.rb:395:10:395:10 | h [element 1] | semantics.rb:395:10:395:13 | ...[...] | provenance | | +| semantics.rb:395:10:395:10 | h [element] | semantics.rb:395:10:395:13 | ...[...] | provenance | | +| semantics.rb:395:10:395:10 | h [element] | semantics.rb:395:10:395:13 | ...[...] | provenance | | +| semantics.rb:396:10:396:10 | h [element 0] | semantics.rb:396:10:396:13 | ...[...] | provenance | | +| semantics.rb:396:10:396:10 | h [element 0] | semantics.rb:396:10:396:13 | ...[...] | provenance | | +| semantics.rb:396:10:396:10 | h [element 1] | semantics.rb:396:10:396:13 | ...[...] | provenance | | +| semantics.rb:396:10:396:10 | h [element 1] | semantics.rb:396:10:396:13 | ...[...] | provenance | | +| semantics.rb:396:10:396:10 | h [element] | semantics.rb:396:10:396:13 | ...[...] | provenance | | +| semantics.rb:396:10:396:10 | h [element] | semantics.rb:396:10:396:13 | ...[...] | provenance | | +| semantics.rb:398:5:398:5 | x [element 1] | semantics.rb:401:10:401:10 | x [element 1] | provenance | | +| semantics.rb:398:5:398:5 | x [element 1] | semantics.rb:401:10:401:10 | x [element 1] | provenance | | +| semantics.rb:398:5:398:5 | x [element 1] | semantics.rb:402:10:402:10 | x [element 1] | provenance | | +| semantics.rb:398:5:398:5 | x [element 1] | semantics.rb:402:10:402:10 | x [element 1] | provenance | | +| semantics.rb:398:9:398:14 | call to s46 [element 1] | semantics.rb:398:5:398:5 | x [element 1] | provenance | | +| semantics.rb:398:9:398:14 | call to s46 [element 1] | semantics.rb:398:5:398:5 | x [element 1] | provenance | | +| semantics.rb:398:13:398:13 | h [element 1] | semantics.rb:398:9:398:14 | call to s46 [element 1] | provenance | | +| semantics.rb:398:13:398:13 | h [element 1] | semantics.rb:398:9:398:14 | call to s46 [element 1] | provenance | | +| semantics.rb:401:10:401:10 | x [element 1] | semantics.rb:401:10:401:13 | ...[...] | provenance | | +| semantics.rb:401:10:401:10 | x [element 1] | semantics.rb:401:10:401:13 | ...[...] | provenance | | +| semantics.rb:402:10:402:10 | x [element 1] | semantics.rb:402:10:402:13 | ...[...] | provenance | | +| semantics.rb:402:10:402:10 | x [element 1] | semantics.rb:402:10:402:13 | ...[...] | provenance | | +| semantics.rb:406:5:406:5 | [post] h [element :foo] | semantics.rb:407:5:407:5 | h [element :foo] | provenance | | +| semantics.rb:406:5:406:5 | [post] h [element :foo] | semantics.rb:407:5:407:5 | h [element :foo] | provenance | | +| semantics.rb:406:15:406:25 | call to source | semantics.rb:406:5:406:5 | [post] h [element :foo] | provenance | | +| semantics.rb:406:15:406:25 | call to source | semantics.rb:406:5:406:5 | [post] h [element :foo] | provenance | | +| semantics.rb:407:5:407:5 | [post] h [element :bar] | semantics.rb:411:10:411:10 | h [element :bar] | provenance | | +| semantics.rb:407:5:407:5 | [post] h [element :bar] | semantics.rb:411:10:411:10 | h [element :bar] | provenance | | +| semantics.rb:407:5:407:5 | [post] h [element :bar] | semantics.rb:413:13:413:13 | h [element :bar] | provenance | | +| semantics.rb:407:5:407:5 | [post] h [element :bar] | semantics.rb:413:13:413:13 | h [element :bar] | provenance | | +| semantics.rb:407:5:407:5 | [post] h [element :foo] | semantics.rb:410:10:410:10 | h [element :foo] | provenance | | +| semantics.rb:407:5:407:5 | [post] h [element :foo] | semantics.rb:410:10:410:10 | h [element :foo] | provenance | | +| semantics.rb:407:5:407:5 | h [element :foo] | semantics.rb:407:5:407:5 | [post] h [element :foo] | provenance | | +| semantics.rb:407:5:407:5 | h [element :foo] | semantics.rb:407:5:407:5 | [post] h [element :foo] | provenance | | +| semantics.rb:407:15:407:25 | call to source | semantics.rb:407:5:407:5 | [post] h [element :bar] | provenance | | +| semantics.rb:407:15:407:25 | call to source | semantics.rb:407:5:407:5 | [post] h [element :bar] | provenance | | +| semantics.rb:408:5:408:5 | [post] h [element] | semantics.rb:410:10:410:10 | h [element] | provenance | | +| semantics.rb:408:5:408:5 | [post] h [element] | semantics.rb:410:10:410:10 | h [element] | provenance | | +| semantics.rb:408:5:408:5 | [post] h [element] | semantics.rb:411:10:411:10 | h [element] | provenance | | +| semantics.rb:408:5:408:5 | [post] h [element] | semantics.rb:411:10:411:10 | h [element] | provenance | | +| semantics.rb:408:12:408:22 | call to source | semantics.rb:408:5:408:5 | [post] h [element] | provenance | | +| semantics.rb:408:12:408:22 | call to source | semantics.rb:408:5:408:5 | [post] h [element] | provenance | | +| semantics.rb:410:10:410:10 | h [element :foo] | semantics.rb:410:10:410:16 | ...[...] | provenance | | +| semantics.rb:410:10:410:10 | h [element :foo] | semantics.rb:410:10:410:16 | ...[...] | provenance | | +| semantics.rb:410:10:410:10 | h [element] | semantics.rb:410:10:410:16 | ...[...] | provenance | | +| semantics.rb:410:10:410:10 | h [element] | semantics.rb:410:10:410:16 | ...[...] | provenance | | +| semantics.rb:411:10:411:10 | h [element :bar] | semantics.rb:411:10:411:16 | ...[...] | provenance | | +| semantics.rb:411:10:411:10 | h [element :bar] | semantics.rb:411:10:411:16 | ...[...] | provenance | | +| semantics.rb:411:10:411:10 | h [element] | semantics.rb:411:10:411:16 | ...[...] | provenance | | +| semantics.rb:411:10:411:10 | h [element] | semantics.rb:411:10:411:16 | ...[...] | provenance | | +| semantics.rb:413:5:413:5 | x [element :bar] | semantics.rb:416:10:416:10 | x [element :bar] | provenance | | +| semantics.rb:413:5:413:5 | x [element :bar] | semantics.rb:416:10:416:10 | x [element :bar] | provenance | | +| semantics.rb:413:9:413:14 | call to s47 [element :bar] | semantics.rb:413:5:413:5 | x [element :bar] | provenance | | +| semantics.rb:413:9:413:14 | call to s47 [element :bar] | semantics.rb:413:5:413:5 | x [element :bar] | provenance | | +| semantics.rb:413:13:413:13 | h [element :bar] | semantics.rb:413:9:413:14 | call to s47 [element :bar] | provenance | | +| semantics.rb:413:13:413:13 | h [element :bar] | semantics.rb:413:9:413:14 | call to s47 [element :bar] | provenance | | +| semantics.rb:416:10:416:10 | x [element :bar] | semantics.rb:416:10:416:16 | ...[...] | provenance | | +| semantics.rb:416:10:416:10 | x [element :bar] | semantics.rb:416:10:416:16 | ...[...] | provenance | | +| semantics.rb:420:5:420:5 | [post] h [element :foo] | semantics.rb:421:5:421:5 | h [element :foo] | provenance | | +| semantics.rb:420:5:420:5 | [post] h [element :foo] | semantics.rb:421:5:421:5 | h [element :foo] | provenance | | +| semantics.rb:420:15:420:25 | call to source | semantics.rb:420:5:420:5 | [post] h [element :foo] | provenance | | +| semantics.rb:420:15:420:25 | call to source | semantics.rb:420:5:420:5 | [post] h [element :foo] | provenance | | +| semantics.rb:421:5:421:5 | [post] h [element :bar] | semantics.rb:425:10:425:10 | h [element :bar] | provenance | | +| semantics.rb:421:5:421:5 | [post] h [element :bar] | semantics.rb:425:10:425:10 | h [element :bar] | provenance | | +| semantics.rb:421:5:421:5 | [post] h [element :bar] | semantics.rb:427:13:427:13 | h [element :bar] | provenance | | +| semantics.rb:421:5:421:5 | [post] h [element :bar] | semantics.rb:427:13:427:13 | h [element :bar] | provenance | | +| semantics.rb:421:5:421:5 | [post] h [element :foo] | semantics.rb:424:10:424:10 | h [element :foo] | provenance | | +| semantics.rb:421:5:421:5 | [post] h [element :foo] | semantics.rb:424:10:424:10 | h [element :foo] | provenance | | +| semantics.rb:421:5:421:5 | h [element :foo] | semantics.rb:421:5:421:5 | [post] h [element :foo] | provenance | | +| semantics.rb:421:5:421:5 | h [element :foo] | semantics.rb:421:5:421:5 | [post] h [element :foo] | provenance | | +| semantics.rb:421:15:421:25 | call to source | semantics.rb:421:5:421:5 | [post] h [element :bar] | provenance | | +| semantics.rb:421:15:421:25 | call to source | semantics.rb:421:5:421:5 | [post] h [element :bar] | provenance | | +| semantics.rb:422:5:422:5 | [post] h [element] | semantics.rb:424:10:424:10 | h [element] | provenance | | +| semantics.rb:422:5:422:5 | [post] h [element] | semantics.rb:424:10:424:10 | h [element] | provenance | | +| semantics.rb:422:5:422:5 | [post] h [element] | semantics.rb:425:10:425:10 | h [element] | provenance | | +| semantics.rb:422:5:422:5 | [post] h [element] | semantics.rb:425:10:425:10 | h [element] | provenance | | +| semantics.rb:422:12:422:22 | call to source | semantics.rb:422:5:422:5 | [post] h [element] | provenance | | +| semantics.rb:422:12:422:22 | call to source | semantics.rb:422:5:422:5 | [post] h [element] | provenance | | +| semantics.rb:424:10:424:10 | h [element :foo] | semantics.rb:424:10:424:16 | ...[...] | provenance | | +| semantics.rb:424:10:424:10 | h [element :foo] | semantics.rb:424:10:424:16 | ...[...] | provenance | | +| semantics.rb:424:10:424:10 | h [element] | semantics.rb:424:10:424:16 | ...[...] | provenance | | +| semantics.rb:424:10:424:10 | h [element] | semantics.rb:424:10:424:16 | ...[...] | provenance | | +| semantics.rb:425:10:425:10 | h [element :bar] | semantics.rb:425:10:425:16 | ...[...] | provenance | | +| semantics.rb:425:10:425:10 | h [element :bar] | semantics.rb:425:10:425:16 | ...[...] | provenance | | +| semantics.rb:425:10:425:10 | h [element] | semantics.rb:425:10:425:16 | ...[...] | provenance | | +| semantics.rb:425:10:425:10 | h [element] | semantics.rb:425:10:425:16 | ...[...] | provenance | | +| semantics.rb:427:5:427:5 | x [element :bar] | semantics.rb:430:10:430:10 | x [element :bar] | provenance | | +| semantics.rb:427:5:427:5 | x [element :bar] | semantics.rb:430:10:430:10 | x [element :bar] | provenance | | +| semantics.rb:427:9:427:14 | call to s48 [element :bar] | semantics.rb:427:5:427:5 | x [element :bar] | provenance | | +| semantics.rb:427:9:427:14 | call to s48 [element :bar] | semantics.rb:427:5:427:5 | x [element :bar] | provenance | | +| semantics.rb:427:13:427:13 | h [element :bar] | semantics.rb:427:9:427:14 | call to s48 [element :bar] | provenance | | +| semantics.rb:427:13:427:13 | h [element :bar] | semantics.rb:427:9:427:14 | call to s48 [element :bar] | provenance | | +| semantics.rb:430:10:430:10 | x [element :bar] | semantics.rb:430:10:430:16 | ...[...] | provenance | | +| semantics.rb:430:10:430:10 | x [element :bar] | semantics.rb:430:10:430:16 | ...[...] | provenance | | +| semantics.rb:434:5:434:5 | [post] h [element :foo] | semantics.rb:435:5:435:5 | h [element :foo] | provenance | | +| semantics.rb:434:5:434:5 | [post] h [element :foo] | semantics.rb:435:5:435:5 | h [element :foo] | provenance | | +| semantics.rb:434:15:434:25 | call to source | semantics.rb:434:5:434:5 | [post] h [element :foo] | provenance | | +| semantics.rb:434:15:434:25 | call to source | semantics.rb:434:5:434:5 | [post] h [element :foo] | provenance | | +| semantics.rb:435:5:435:5 | [post] h [element :bar] | semantics.rb:439:10:439:10 | h [element :bar] | provenance | | +| semantics.rb:435:5:435:5 | [post] h [element :bar] | semantics.rb:439:10:439:10 | h [element :bar] | provenance | | +| semantics.rb:435:5:435:5 | [post] h [element :bar] | semantics.rb:441:13:441:13 | h [element :bar] | provenance | | +| semantics.rb:435:5:435:5 | [post] h [element :bar] | semantics.rb:441:13:441:13 | h [element :bar] | provenance | | +| semantics.rb:435:5:435:5 | [post] h [element :foo] | semantics.rb:438:10:438:10 | h [element :foo] | provenance | | +| semantics.rb:435:5:435:5 | [post] h [element :foo] | semantics.rb:438:10:438:10 | h [element :foo] | provenance | | +| semantics.rb:435:5:435:5 | h [element :foo] | semantics.rb:435:5:435:5 | [post] h [element :foo] | provenance | | +| semantics.rb:435:5:435:5 | h [element :foo] | semantics.rb:435:5:435:5 | [post] h [element :foo] | provenance | | +| semantics.rb:435:15:435:25 | call to source | semantics.rb:435:5:435:5 | [post] h [element :bar] | provenance | | +| semantics.rb:435:15:435:25 | call to source | semantics.rb:435:5:435:5 | [post] h [element :bar] | provenance | | +| semantics.rb:436:5:436:5 | [post] h [element] | semantics.rb:438:10:438:10 | h [element] | provenance | | +| semantics.rb:436:5:436:5 | [post] h [element] | semantics.rb:438:10:438:10 | h [element] | provenance | | +| semantics.rb:436:5:436:5 | [post] h [element] | semantics.rb:439:10:439:10 | h [element] | provenance | | +| semantics.rb:436:5:436:5 | [post] h [element] | semantics.rb:439:10:439:10 | h [element] | provenance | | +| semantics.rb:436:5:436:5 | [post] h [element] | semantics.rb:441:13:441:13 | h [element] | provenance | | +| semantics.rb:436:5:436:5 | [post] h [element] | semantics.rb:441:13:441:13 | h [element] | provenance | | +| semantics.rb:436:12:436:22 | call to source | semantics.rb:436:5:436:5 | [post] h [element] | provenance | | +| semantics.rb:436:12:436:22 | call to source | semantics.rb:436:5:436:5 | [post] h [element] | provenance | | +| semantics.rb:438:10:438:10 | h [element :foo] | semantics.rb:438:10:438:16 | ...[...] | provenance | | +| semantics.rb:438:10:438:10 | h [element :foo] | semantics.rb:438:10:438:16 | ...[...] | provenance | | +| semantics.rb:438:10:438:10 | h [element] | semantics.rb:438:10:438:16 | ...[...] | provenance | | +| semantics.rb:438:10:438:10 | h [element] | semantics.rb:438:10:438:16 | ...[...] | provenance | | +| semantics.rb:439:10:439:10 | h [element :bar] | semantics.rb:439:10:439:16 | ...[...] | provenance | | +| semantics.rb:439:10:439:10 | h [element :bar] | semantics.rb:439:10:439:16 | ...[...] | provenance | | +| semantics.rb:439:10:439:10 | h [element] | semantics.rb:439:10:439:16 | ...[...] | provenance | | +| semantics.rb:439:10:439:10 | h [element] | semantics.rb:439:10:439:16 | ...[...] | provenance | | +| semantics.rb:441:5:441:5 | x [element :bar] | semantics.rb:444:10:444:10 | x [element :bar] | provenance | | +| semantics.rb:441:5:441:5 | x [element :bar] | semantics.rb:444:10:444:10 | x [element :bar] | provenance | | +| semantics.rb:441:5:441:5 | x [element] | semantics.rb:443:10:443:10 | x [element] | provenance | | +| semantics.rb:441:5:441:5 | x [element] | semantics.rb:443:10:443:10 | x [element] | provenance | | +| semantics.rb:441:5:441:5 | x [element] | semantics.rb:444:10:444:10 | x [element] | provenance | | +| semantics.rb:441:5:441:5 | x [element] | semantics.rb:444:10:444:10 | x [element] | provenance | | +| semantics.rb:441:9:441:14 | call to s49 [element :bar] | semantics.rb:441:5:441:5 | x [element :bar] | provenance | | +| semantics.rb:441:9:441:14 | call to s49 [element :bar] | semantics.rb:441:5:441:5 | x [element :bar] | provenance | | +| semantics.rb:441:9:441:14 | call to s49 [element] | semantics.rb:441:5:441:5 | x [element] | provenance | | +| semantics.rb:441:9:441:14 | call to s49 [element] | semantics.rb:441:5:441:5 | x [element] | provenance | | +| semantics.rb:441:13:441:13 | h [element :bar] | semantics.rb:441:9:441:14 | call to s49 [element :bar] | provenance | | +| semantics.rb:441:13:441:13 | h [element :bar] | semantics.rb:441:9:441:14 | call to s49 [element :bar] | provenance | | +| semantics.rb:441:13:441:13 | h [element] | semantics.rb:441:9:441:14 | call to s49 [element] | provenance | | +| semantics.rb:441:13:441:13 | h [element] | semantics.rb:441:9:441:14 | call to s49 [element] | provenance | | +| semantics.rb:443:10:443:10 | x [element] | semantics.rb:443:10:443:16 | ...[...] | provenance | | +| semantics.rb:443:10:443:10 | x [element] | semantics.rb:443:10:443:16 | ...[...] | provenance | | +| semantics.rb:444:10:444:10 | x [element :bar] | semantics.rb:444:10:444:16 | ...[...] | provenance | | +| semantics.rb:444:10:444:10 | x [element :bar] | semantics.rb:444:10:444:16 | ...[...] | provenance | | +| semantics.rb:444:10:444:10 | x [element] | semantics.rb:444:10:444:16 | ...[...] | provenance | | +| semantics.rb:444:10:444:10 | x [element] | semantics.rb:444:10:444:16 | ...[...] | provenance | | +| semantics.rb:448:5:448:5 | [post] h [element :foo] | semantics.rb:449:5:449:5 | h [element :foo] | provenance | | +| semantics.rb:448:5:448:5 | [post] h [element :foo] | semantics.rb:449:5:449:5 | h [element :foo] | provenance | | +| semantics.rb:448:15:448:25 | call to source | semantics.rb:448:5:448:5 | [post] h [element :foo] | provenance | | +| semantics.rb:448:15:448:25 | call to source | semantics.rb:448:5:448:5 | [post] h [element :foo] | provenance | | +| semantics.rb:449:5:449:5 | [post] h [element :bar] | semantics.rb:453:10:453:10 | h [element :bar] | provenance | | +| semantics.rb:449:5:449:5 | [post] h [element :bar] | semantics.rb:453:10:453:10 | h [element :bar] | provenance | | +| semantics.rb:449:5:449:5 | [post] h [element :bar] | semantics.rb:455:9:455:9 | h [element :bar] | provenance | | +| semantics.rb:449:5:449:5 | [post] h [element :bar] | semantics.rb:455:9:455:9 | h [element :bar] | provenance | | +| semantics.rb:449:5:449:5 | [post] h [element :foo] | semantics.rb:452:10:452:10 | h [element :foo] | provenance | | +| semantics.rb:449:5:449:5 | [post] h [element :foo] | semantics.rb:452:10:452:10 | h [element :foo] | provenance | | +| semantics.rb:449:5:449:5 | h [element :foo] | semantics.rb:449:5:449:5 | [post] h [element :foo] | provenance | | +| semantics.rb:449:5:449:5 | h [element :foo] | semantics.rb:449:5:449:5 | [post] h [element :foo] | provenance | | +| semantics.rb:449:15:449:25 | call to source | semantics.rb:449:5:449:5 | [post] h [element :bar] | provenance | | +| semantics.rb:449:15:449:25 | call to source | semantics.rb:449:5:449:5 | [post] h [element :bar] | provenance | | +| semantics.rb:450:5:450:5 | [post] h [element] | semantics.rb:452:10:452:10 | h [element] | provenance | | +| semantics.rb:450:5:450:5 | [post] h [element] | semantics.rb:452:10:452:10 | h [element] | provenance | | +| semantics.rb:450:5:450:5 | [post] h [element] | semantics.rb:453:10:453:10 | h [element] | provenance | | +| semantics.rb:450:5:450:5 | [post] h [element] | semantics.rb:453:10:453:10 | h [element] | provenance | | +| semantics.rb:450:12:450:22 | call to source | semantics.rb:450:5:450:5 | [post] h [element] | provenance | | +| semantics.rb:450:12:450:22 | call to source | semantics.rb:450:5:450:5 | [post] h [element] | provenance | | +| semantics.rb:452:10:452:10 | h [element :foo] | semantics.rb:452:10:452:16 | ...[...] | provenance | | +| semantics.rb:452:10:452:10 | h [element :foo] | semantics.rb:452:10:452:16 | ...[...] | provenance | | +| semantics.rb:452:10:452:10 | h [element] | semantics.rb:452:10:452:16 | ...[...] | provenance | | +| semantics.rb:452:10:452:10 | h [element] | semantics.rb:452:10:452:16 | ...[...] | provenance | | +| semantics.rb:453:10:453:10 | h [element :bar] | semantics.rb:453:10:453:16 | ...[...] | provenance | | +| semantics.rb:453:10:453:10 | h [element :bar] | semantics.rb:453:10:453:16 | ...[...] | provenance | | +| semantics.rb:453:10:453:10 | h [element] | semantics.rb:453:10:453:16 | ...[...] | provenance | | +| semantics.rb:453:10:453:10 | h [element] | semantics.rb:453:10:453:16 | ...[...] | provenance | | +| semantics.rb:455:9:455:9 | [post] h [element :bar] | semantics.rb:458:10:458:10 | h [element :bar] | provenance | | +| semantics.rb:455:9:455:9 | [post] h [element :bar] | semantics.rb:458:10:458:10 | h [element :bar] | provenance | | +| semantics.rb:455:9:455:9 | h [element :bar] | semantics.rb:455:9:455:9 | [post] h [element :bar] | provenance | | +| semantics.rb:455:9:455:9 | h [element :bar] | semantics.rb:455:9:455:9 | [post] h [element :bar] | provenance | | +| semantics.rb:458:10:458:10 | h [element :bar] | semantics.rb:458:10:458:16 | ...[...] | provenance | | +| semantics.rb:458:10:458:10 | h [element :bar] | semantics.rb:458:10:458:16 | ...[...] | provenance | | +| semantics.rb:462:5:462:5 | [post] h [element :foo] | semantics.rb:463:5:463:5 | h [element :foo] | provenance | | +| semantics.rb:462:5:462:5 | [post] h [element :foo] | semantics.rb:463:5:463:5 | h [element :foo] | provenance | | +| semantics.rb:462:15:462:25 | call to source | semantics.rb:462:5:462:5 | [post] h [element :foo] | provenance | | +| semantics.rb:462:15:462:25 | call to source | semantics.rb:462:5:462:5 | [post] h [element :foo] | provenance | | +| semantics.rb:463:5:463:5 | [post] h [element :bar] | semantics.rb:467:10:467:10 | h [element :bar] | provenance | | +| semantics.rb:463:5:463:5 | [post] h [element :bar] | semantics.rb:467:10:467:10 | h [element :bar] | provenance | | +| semantics.rb:463:5:463:5 | [post] h [element :bar] | semantics.rb:469:9:469:9 | h [element :bar] | provenance | | +| semantics.rb:463:5:463:5 | [post] h [element :bar] | semantics.rb:469:9:469:9 | h [element :bar] | provenance | | +| semantics.rb:463:5:463:5 | [post] h [element :foo] | semantics.rb:466:10:466:10 | h [element :foo] | provenance | | +| semantics.rb:463:5:463:5 | [post] h [element :foo] | semantics.rb:466:10:466:10 | h [element :foo] | provenance | | +| semantics.rb:463:5:463:5 | h [element :foo] | semantics.rb:463:5:463:5 | [post] h [element :foo] | provenance | | +| semantics.rb:463:5:463:5 | h [element :foo] | semantics.rb:463:5:463:5 | [post] h [element :foo] | provenance | | +| semantics.rb:463:15:463:25 | call to source | semantics.rb:463:5:463:5 | [post] h [element :bar] | provenance | | +| semantics.rb:463:15:463:25 | call to source | semantics.rb:463:5:463:5 | [post] h [element :bar] | provenance | | +| semantics.rb:464:5:464:5 | [post] h [element] | semantics.rb:466:10:466:10 | h [element] | provenance | | +| semantics.rb:464:5:464:5 | [post] h [element] | semantics.rb:466:10:466:10 | h [element] | provenance | | +| semantics.rb:464:5:464:5 | [post] h [element] | semantics.rb:467:10:467:10 | h [element] | provenance | | +| semantics.rb:464:5:464:5 | [post] h [element] | semantics.rb:467:10:467:10 | h [element] | provenance | | +| semantics.rb:464:5:464:5 | [post] h [element] | semantics.rb:469:9:469:9 | h [element] | provenance | | +| semantics.rb:464:5:464:5 | [post] h [element] | semantics.rb:469:9:469:9 | h [element] | provenance | | +| semantics.rb:464:12:464:22 | call to source | semantics.rb:464:5:464:5 | [post] h [element] | provenance | | +| semantics.rb:464:12:464:22 | call to source | semantics.rb:464:5:464:5 | [post] h [element] | provenance | | +| semantics.rb:466:10:466:10 | h [element :foo] | semantics.rb:466:10:466:16 | ...[...] | provenance | | +| semantics.rb:466:10:466:10 | h [element :foo] | semantics.rb:466:10:466:16 | ...[...] | provenance | | +| semantics.rb:466:10:466:10 | h [element] | semantics.rb:466:10:466:16 | ...[...] | provenance | | +| semantics.rb:466:10:466:10 | h [element] | semantics.rb:466:10:466:16 | ...[...] | provenance | | +| semantics.rb:467:10:467:10 | h [element :bar] | semantics.rb:467:10:467:16 | ...[...] | provenance | | +| semantics.rb:467:10:467:10 | h [element :bar] | semantics.rb:467:10:467:16 | ...[...] | provenance | | +| semantics.rb:467:10:467:10 | h [element] | semantics.rb:467:10:467:16 | ...[...] | provenance | | +| semantics.rb:467:10:467:10 | h [element] | semantics.rb:467:10:467:16 | ...[...] | provenance | | +| semantics.rb:469:9:469:9 | [post] h [element :bar] | semantics.rb:472:10:472:10 | h [element :bar] | provenance | | +| semantics.rb:469:9:469:9 | [post] h [element :bar] | semantics.rb:472:10:472:10 | h [element :bar] | provenance | | +| semantics.rb:469:9:469:9 | [post] h [element] | semantics.rb:471:10:471:10 | h [element] | provenance | | +| semantics.rb:469:9:469:9 | [post] h [element] | semantics.rb:471:10:471:10 | h [element] | provenance | | +| semantics.rb:469:9:469:9 | [post] h [element] | semantics.rb:472:10:472:10 | h [element] | provenance | | +| semantics.rb:469:9:469:9 | [post] h [element] | semantics.rb:472:10:472:10 | h [element] | provenance | | +| semantics.rb:469:9:469:9 | h [element :bar] | semantics.rb:469:9:469:9 | [post] h [element :bar] | provenance | | +| semantics.rb:469:9:469:9 | h [element :bar] | semantics.rb:469:9:469:9 | [post] h [element :bar] | provenance | | +| semantics.rb:469:9:469:9 | h [element] | semantics.rb:469:9:469:9 | [post] h [element] | provenance | | +| semantics.rb:469:9:469:9 | h [element] | semantics.rb:469:9:469:9 | [post] h [element] | provenance | | +| semantics.rb:471:10:471:10 | h [element] | semantics.rb:471:10:471:16 | ...[...] | provenance | | +| semantics.rb:471:10:471:10 | h [element] | semantics.rb:471:10:471:16 | ...[...] | provenance | | +| semantics.rb:472:10:472:10 | h [element :bar] | semantics.rb:472:10:472:16 | ...[...] | provenance | | +| semantics.rb:472:10:472:10 | h [element :bar] | semantics.rb:472:10:472:16 | ...[...] | provenance | | +| semantics.rb:472:10:472:10 | h [element] | semantics.rb:472:10:472:16 | ...[...] | provenance | | +| semantics.rb:472:10:472:10 | h [element] | semantics.rb:472:10:472:16 | ...[...] | provenance | | +| semantics.rb:476:5:476:5 | [post] h [element :foo] | semantics.rb:477:5:477:5 | h [element :foo] | provenance | | +| semantics.rb:476:5:476:5 | [post] h [element :foo] | semantics.rb:477:5:477:5 | h [element :foo] | provenance | | +| semantics.rb:476:15:476:25 | call to source | semantics.rb:476:5:476:5 | [post] h [element :foo] | provenance | | +| semantics.rb:476:15:476:25 | call to source | semantics.rb:476:5:476:5 | [post] h [element :foo] | provenance | | +| semantics.rb:477:5:477:5 | [post] h [element :bar] | semantics.rb:481:10:481:10 | h [element :bar] | provenance | | +| semantics.rb:477:5:477:5 | [post] h [element :bar] | semantics.rb:481:10:481:10 | h [element :bar] | provenance | | +| semantics.rb:477:5:477:5 | [post] h [element :bar] | semantics.rb:483:5:483:5 | h [element :bar] | provenance | | +| semantics.rb:477:5:477:5 | [post] h [element :bar] | semantics.rb:483:5:483:5 | h [element :bar] | provenance | | +| semantics.rb:477:5:477:5 | [post] h [element :foo] | semantics.rb:480:10:480:10 | h [element :foo] | provenance | | +| semantics.rb:477:5:477:5 | [post] h [element :foo] | semantics.rb:480:10:480:10 | h [element :foo] | provenance | | +| semantics.rb:477:5:477:5 | h [element :foo] | semantics.rb:477:5:477:5 | [post] h [element :foo] | provenance | | +| semantics.rb:477:5:477:5 | h [element :foo] | semantics.rb:477:5:477:5 | [post] h [element :foo] | provenance | | +| semantics.rb:477:15:477:25 | call to source | semantics.rb:477:5:477:5 | [post] h [element :bar] | provenance | | +| semantics.rb:477:15:477:25 | call to source | semantics.rb:477:5:477:5 | [post] h [element :bar] | provenance | | +| semantics.rb:478:5:478:5 | [post] h [element] | semantics.rb:480:10:480:10 | h [element] | provenance | | +| semantics.rb:478:5:478:5 | [post] h [element] | semantics.rb:480:10:480:10 | h [element] | provenance | | +| semantics.rb:478:5:478:5 | [post] h [element] | semantics.rb:481:10:481:10 | h [element] | provenance | | +| semantics.rb:478:5:478:5 | [post] h [element] | semantics.rb:481:10:481:10 | h [element] | provenance | | +| semantics.rb:478:12:478:22 | call to source | semantics.rb:478:5:478:5 | [post] h [element] | provenance | | +| semantics.rb:478:12:478:22 | call to source | semantics.rb:478:5:478:5 | [post] h [element] | provenance | | +| semantics.rb:480:10:480:10 | h [element :foo] | semantics.rb:480:10:480:16 | ...[...] | provenance | | +| semantics.rb:480:10:480:10 | h [element :foo] | semantics.rb:480:10:480:16 | ...[...] | provenance | | +| semantics.rb:480:10:480:10 | h [element] | semantics.rb:480:10:480:16 | ...[...] | provenance | | +| semantics.rb:480:10:480:10 | h [element] | semantics.rb:480:10:480:16 | ...[...] | provenance | | +| semantics.rb:481:10:481:10 | h [element :bar] | semantics.rb:481:10:481:16 | ...[...] | provenance | | +| semantics.rb:481:10:481:10 | h [element :bar] | semantics.rb:481:10:481:16 | ...[...] | provenance | | +| semantics.rb:481:10:481:10 | h [element] | semantics.rb:481:10:481:16 | ...[...] | provenance | | +| semantics.rb:481:10:481:10 | h [element] | semantics.rb:481:10:481:16 | ...[...] | provenance | | +| semantics.rb:483:5:483:5 | [post] h [element :bar] | semantics.rb:486:10:486:10 | h [element :bar] | provenance | | +| semantics.rb:483:5:483:5 | [post] h [element :bar] | semantics.rb:486:10:486:10 | h [element :bar] | provenance | | +| semantics.rb:483:5:483:5 | h [element :bar] | semantics.rb:483:5:483:5 | [post] h [element :bar] | provenance | | +| semantics.rb:483:5:483:5 | h [element :bar] | semantics.rb:483:5:483:5 | [post] h [element :bar] | provenance | | +| semantics.rb:486:10:486:10 | h [element :bar] | semantics.rb:486:10:486:16 | ...[...] | provenance | | +| semantics.rb:486:10:486:10 | h [element :bar] | semantics.rb:486:10:486:16 | ...[...] | provenance | | +| semantics.rb:490:5:490:5 | [post] h [element :foo] | semantics.rb:491:5:491:5 | h [element :foo] | provenance | | +| semantics.rb:490:5:490:5 | [post] h [element :foo] | semantics.rb:491:5:491:5 | h [element :foo] | provenance | | +| semantics.rb:490:15:490:25 | call to source | semantics.rb:490:5:490:5 | [post] h [element :foo] | provenance | | +| semantics.rb:490:15:490:25 | call to source | semantics.rb:490:5:490:5 | [post] h [element :foo] | provenance | | +| semantics.rb:491:5:491:5 | [post] h [element :bar] | semantics.rb:495:10:495:10 | h [element :bar] | provenance | | +| semantics.rb:491:5:491:5 | [post] h [element :bar] | semantics.rb:495:10:495:10 | h [element :bar] | provenance | | +| semantics.rb:491:5:491:5 | [post] h [element :bar] | semantics.rb:497:9:497:9 | h [element :bar] | provenance | | +| semantics.rb:491:5:491:5 | [post] h [element :bar] | semantics.rb:497:9:497:9 | h [element :bar] | provenance | | +| semantics.rb:491:5:491:5 | [post] h [element :foo] | semantics.rb:494:10:494:10 | h [element :foo] | provenance | | +| semantics.rb:491:5:491:5 | [post] h [element :foo] | semantics.rb:494:10:494:10 | h [element :foo] | provenance | | +| semantics.rb:491:5:491:5 | h [element :foo] | semantics.rb:491:5:491:5 | [post] h [element :foo] | provenance | | +| semantics.rb:491:5:491:5 | h [element :foo] | semantics.rb:491:5:491:5 | [post] h [element :foo] | provenance | | +| semantics.rb:491:15:491:25 | call to source | semantics.rb:491:5:491:5 | [post] h [element :bar] | provenance | | +| semantics.rb:491:15:491:25 | call to source | semantics.rb:491:5:491:5 | [post] h [element :bar] | provenance | | +| semantics.rb:492:5:492:5 | [post] h [element] | semantics.rb:494:10:494:10 | h [element] | provenance | | +| semantics.rb:492:5:492:5 | [post] h [element] | semantics.rb:494:10:494:10 | h [element] | provenance | | +| semantics.rb:492:5:492:5 | [post] h [element] | semantics.rb:495:10:495:10 | h [element] | provenance | | +| semantics.rb:492:5:492:5 | [post] h [element] | semantics.rb:495:10:495:10 | h [element] | provenance | | +| semantics.rb:492:12:492:22 | call to source | semantics.rb:492:5:492:5 | [post] h [element] | provenance | | +| semantics.rb:492:12:492:22 | call to source | semantics.rb:492:5:492:5 | [post] h [element] | provenance | | +| semantics.rb:494:10:494:10 | h [element :foo] | semantics.rb:494:10:494:16 | ...[...] | provenance | | +| semantics.rb:494:10:494:10 | h [element :foo] | semantics.rb:494:10:494:16 | ...[...] | provenance | | +| semantics.rb:494:10:494:10 | h [element] | semantics.rb:494:10:494:16 | ...[...] | provenance | | +| semantics.rb:494:10:494:10 | h [element] | semantics.rb:494:10:494:16 | ...[...] | provenance | | +| semantics.rb:495:10:495:10 | h [element :bar] | semantics.rb:495:10:495:16 | ...[...] | provenance | | +| semantics.rb:495:10:495:10 | h [element :bar] | semantics.rb:495:10:495:16 | ...[...] | provenance | | +| semantics.rb:495:10:495:10 | h [element] | semantics.rb:495:10:495:16 | ...[...] | provenance | | +| semantics.rb:495:10:495:10 | h [element] | semantics.rb:495:10:495:16 | ...[...] | provenance | | +| semantics.rb:497:5:497:5 | x [element :bar] | semantics.rb:500:10:500:10 | x [element :bar] | provenance | | +| semantics.rb:497:5:497:5 | x [element :bar] | semantics.rb:500:10:500:10 | x [element :bar] | provenance | | +| semantics.rb:497:9:497:9 | h [element :bar] | semantics.rb:497:9:497:15 | call to s53 [element :bar] | provenance | | +| semantics.rb:497:9:497:9 | h [element :bar] | semantics.rb:497:9:497:15 | call to s53 [element :bar] | provenance | | +| semantics.rb:497:9:497:15 | call to s53 [element :bar] | semantics.rb:497:5:497:5 | x [element :bar] | provenance | | +| semantics.rb:497:9:497:15 | call to s53 [element :bar] | semantics.rb:497:5:497:5 | x [element :bar] | provenance | | +| semantics.rb:500:10:500:10 | x [element :bar] | semantics.rb:500:10:500:16 | ...[...] | provenance | | +| semantics.rb:500:10:500:10 | x [element :bar] | semantics.rb:500:10:500:16 | ...[...] | provenance | | +| semantics.rb:502:10:502:20 | call to source | semantics.rb:502:10:502:26 | call to s53 | provenance | | +| semantics.rb:502:10:502:20 | call to source | semantics.rb:502:10:502:26 | call to s53 | provenance | | +| semantics.rb:506:5:506:5 | [post] h [element :foo] | semantics.rb:507:5:507:5 | h [element :foo] | provenance | | +| semantics.rb:506:5:506:5 | [post] h [element :foo] | semantics.rb:507:5:507:5 | h [element :foo] | provenance | | +| semantics.rb:506:15:506:25 | call to source | semantics.rb:506:5:506:5 | [post] h [element :foo] | provenance | | +| semantics.rb:506:15:506:25 | call to source | semantics.rb:506:5:506:5 | [post] h [element :foo] | provenance | | +| semantics.rb:507:5:507:5 | [post] h [element :bar] | semantics.rb:511:10:511:10 | h [element :bar] | provenance | | +| semantics.rb:507:5:507:5 | [post] h [element :bar] | semantics.rb:511:10:511:10 | h [element :bar] | provenance | | +| semantics.rb:507:5:507:5 | [post] h [element :bar] | semantics.rb:513:9:513:9 | h [element :bar] | provenance | | +| semantics.rb:507:5:507:5 | [post] h [element :bar] | semantics.rb:513:9:513:9 | h [element :bar] | provenance | | +| semantics.rb:507:5:507:5 | [post] h [element :foo] | semantics.rb:510:10:510:10 | h [element :foo] | provenance | | +| semantics.rb:507:5:507:5 | [post] h [element :foo] | semantics.rb:510:10:510:10 | h [element :foo] | provenance | | +| semantics.rb:507:5:507:5 | h [element :foo] | semantics.rb:507:5:507:5 | [post] h [element :foo] | provenance | | +| semantics.rb:507:5:507:5 | h [element :foo] | semantics.rb:507:5:507:5 | [post] h [element :foo] | provenance | | +| semantics.rb:507:15:507:25 | call to source | semantics.rb:507:5:507:5 | [post] h [element :bar] | provenance | | +| semantics.rb:507:15:507:25 | call to source | semantics.rb:507:5:507:5 | [post] h [element :bar] | provenance | | +| semantics.rb:508:5:508:5 | [post] h [element] | semantics.rb:510:10:510:10 | h [element] | provenance | | +| semantics.rb:508:5:508:5 | [post] h [element] | semantics.rb:510:10:510:10 | h [element] | provenance | | +| semantics.rb:508:5:508:5 | [post] h [element] | semantics.rb:511:10:511:10 | h [element] | provenance | | +| semantics.rb:508:5:508:5 | [post] h [element] | semantics.rb:511:10:511:10 | h [element] | provenance | | +| semantics.rb:508:12:508:22 | call to source | semantics.rb:508:5:508:5 | [post] h [element] | provenance | | +| semantics.rb:508:12:508:22 | call to source | semantics.rb:508:5:508:5 | [post] h [element] | provenance | | +| semantics.rb:510:10:510:10 | h [element :foo] | semantics.rb:510:10:510:16 | ...[...] | provenance | | +| semantics.rb:510:10:510:10 | h [element :foo] | semantics.rb:510:10:510:16 | ...[...] | provenance | | +| semantics.rb:510:10:510:10 | h [element] | semantics.rb:510:10:510:16 | ...[...] | provenance | | +| semantics.rb:510:10:510:10 | h [element] | semantics.rb:510:10:510:16 | ...[...] | provenance | | +| semantics.rb:511:10:511:10 | h [element :bar] | semantics.rb:511:10:511:16 | ...[...] | provenance | | +| semantics.rb:511:10:511:10 | h [element :bar] | semantics.rb:511:10:511:16 | ...[...] | provenance | | +| semantics.rb:511:10:511:10 | h [element] | semantics.rb:511:10:511:16 | ...[...] | provenance | | +| semantics.rb:511:10:511:10 | h [element] | semantics.rb:511:10:511:16 | ...[...] | provenance | | +| semantics.rb:513:5:513:5 | x [element :bar] | semantics.rb:516:10:516:10 | x [element :bar] | provenance | | +| semantics.rb:513:5:513:5 | x [element :bar] | semantics.rb:516:10:516:10 | x [element :bar] | provenance | | +| semantics.rb:513:9:513:9 | h [element :bar] | semantics.rb:513:9:513:15 | call to s54 [element :bar] | provenance | | +| semantics.rb:513:9:513:9 | h [element :bar] | semantics.rb:513:9:513:15 | call to s54 [element :bar] | provenance | | +| semantics.rb:513:9:513:15 | call to s54 [element :bar] | semantics.rb:513:5:513:5 | x [element :bar] | provenance | | +| semantics.rb:513:9:513:15 | call to s54 [element :bar] | semantics.rb:513:5:513:5 | x [element :bar] | provenance | | +| semantics.rb:516:10:516:10 | x [element :bar] | semantics.rb:516:10:516:16 | ...[...] | provenance | | +| semantics.rb:516:10:516:10 | x [element :bar] | semantics.rb:516:10:516:16 | ...[...] | provenance | | nodes | semantics.rb:2:5:2:5 | a | semmle.label | a | | semantics.rb:2:5:2:5 | a | semmle.label | a | diff --git a/ruby/ql/test/library-tests/dataflow/global/Flow.expected b/ruby/ql/test/library-tests/dataflow/global/Flow.expected index bd8ad749d7dc..b09124590bb7 100644 --- a/ruby/ql/test/library-tests/dataflow/global/Flow.expected +++ b/ruby/ql/test/library-tests/dataflow/global/Flow.expected @@ -1,258 +1,258 @@ testFailures edges -| blocks.rb:14:12:14:20 | call to source | blocks.rb:8:10:8:14 | yield ... | -| captured_variables.rb:9:24:9:24 | x | captured_variables.rb:10:10:10:23 | -> { ... } [captured x] | -| captured_variables.rb:9:24:9:24 | x | captured_variables.rb:11:5:11:6 | fn [captured x] | -| captured_variables.rb:10:5:10:6 | fn [captured x] | captured_variables.rb:11:5:11:6 | fn [captured x] | -| captured_variables.rb:10:10:10:23 | -> { ... } [captured x] | captured_variables.rb:10:5:10:6 | fn [captured x] | -| captured_variables.rb:11:5:11:6 | fn [captured x] | captured_variables.rb:10:20:10:20 | x | -| captured_variables.rb:13:20:13:29 | call to taint | captured_variables.rb:9:24:9:24 | x | -| captured_variables.rb:15:28:15:28 | x | captured_variables.rb:16:5:18:5 | -> { ... } [captured x] | -| captured_variables.rb:20:1:20:35 | ( ... ) [captured x] | captured_variables.rb:17:14:17:14 | x | -| captured_variables.rb:20:2:20:34 | call to capture_escape_return1 [captured x] | captured_variables.rb:20:1:20:35 | ( ... ) [captured x] | -| captured_variables.rb:20:25:20:34 | call to taint | captured_variables.rb:15:28:15:28 | x | -| captured_variables.rb:20:25:20:34 | call to taint | captured_variables.rb:20:2:20:34 | call to capture_escape_return1 [captured x] | -| captured_variables.rb:22:28:22:28 | x | captured_variables.rb:23:5:25:5 | -> { ... } [captured x] | -| captured_variables.rb:27:25:27:57 | call to capture_escape_return2 [captured x] | captured_variables.rb:24:14:24:14 | x | -| captured_variables.rb:27:48:27:57 | call to taint | captured_variables.rb:22:28:22:28 | x | -| captured_variables.rb:27:48:27:57 | call to taint | captured_variables.rb:27:25:27:57 | call to capture_escape_return2 [captured x] | -| captured_variables.rb:29:33:29:33 | x | captured_variables.rb:30:10:32:5 | -> { ... } [captured x] | -| captured_variables.rb:29:33:29:33 | x | captured_variables.rb:33:29:33:30 | fn [captured x] | -| captured_variables.rb:30:5:30:6 | fn [captured x] | captured_variables.rb:33:29:33:30 | fn [captured x] | -| captured_variables.rb:30:10:32:5 | -> { ... } [captured x] | captured_variables.rb:30:5:30:6 | fn [captured x] | -| captured_variables.rb:33:29:33:30 | fn [captured x] | captured_variables.rb:31:14:31:14 | x | -| captured_variables.rb:35:29:35:38 | call to taint | captured_variables.rb:29:33:29:33 | x | -| captured_variables.rb:37:13:37:14 | fn [captured x] | captured_variables.rb:38:5:38:6 | fn [captured x] | -| captured_variables.rb:38:5:38:6 | fn [captured x] | captured_variables.rb:42:14:42:14 | x | -| captured_variables.rb:40:31:40:31 | x | captured_variables.rb:41:10:43:5 | -> { ... } [captured x] | -| captured_variables.rb:40:31:40:31 | x | captured_variables.rb:44:13:44:14 | fn [captured x] | -| captured_variables.rb:41:5:41:6 | fn [captured x] | captured_variables.rb:44:13:44:14 | fn [captured x] | -| captured_variables.rb:41:10:43:5 | -> { ... } [captured x] | captured_variables.rb:41:5:41:6 | fn [captured x] | -| captured_variables.rb:44:13:44:14 | fn [captured x] | captured_variables.rb:37:13:37:14 | fn [captured x] | -| captured_variables.rb:46:27:46:36 | call to taint | captured_variables.rb:40:31:40:31 | x | -| captured_variables.rb:48:5:48:12 | call to taint | captured_variables.rb:49:16:52:3 | do ... end [captured x] | -| captured_variables.rb:48:5:48:12 | call to taint | captured_variables.rb:54:6:54:6 | x | -| captured_variables.rb:49:16:52:3 | [post] do ... end [captured x] | captured_variables.rb:54:6:54:6 | x | -| captured_variables.rb:49:16:52:3 | do ... end [captured x] | captured_variables.rb:50:10:50:10 | x | -| captured_variables.rb:51:9:51:16 | call to taint | captured_variables.rb:49:16:52:3 | [post] do ... end [captured x] | -| captured_variables.rb:57:19:57:19 | x | captured_variables.rb:58:18:58:18 | x | -| captured_variables.rb:58:18:58:18 | x | captured_variables.rb:58:9:58:14 | [post] self [@field] | -| captured_variables.rb:60:5:62:7 | self in get_field [@field] | captured_variables.rb:61:16:61:21 | self [@field] | -| captured_variables.rb:61:16:61:21 | @field | captured_variables.rb:61:9:61:21 | return | -| captured_variables.rb:61:16:61:21 | self [@field] | captured_variables.rb:61:16:61:21 | @field | -| captured_variables.rb:66:1:66:3 | [post] foo [@field] | captured_variables.rb:67:16:70:3 | do ... end [captured foo, @field] | -| captured_variables.rb:66:1:66:3 | [post] foo [@field] | captured_variables.rb:72:6:72:8 | foo [@field] | -| captured_variables.rb:66:15:66:22 | call to taint | captured_variables.rb:57:19:57:19 | x | -| captured_variables.rb:66:15:66:22 | call to taint | captured_variables.rb:66:1:66:3 | [post] foo [@field] | -| captured_variables.rb:66:15:66:22 | call to taint | instance_variables.rb:10:19:10:19 | x | -| captured_variables.rb:67:16:70:3 | [post] do ... end [captured foo, @field] | captured_variables.rb:72:6:72:8 | foo [@field] | -| captured_variables.rb:67:16:70:3 | do ... end [captured foo, @field] | captured_variables.rb:68:10:68:12 | foo [@field] | -| captured_variables.rb:68:10:68:12 | foo [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | -| captured_variables.rb:68:10:68:12 | foo [@field] | captured_variables.rb:68:10:68:22 | call to get_field | -| captured_variables.rb:68:10:68:12 | foo [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | -| captured_variables.rb:69:5:69:7 | [post] foo [@field] | captured_variables.rb:67:16:70:3 | [post] do ... end [captured foo, @field] | -| captured_variables.rb:69:19:69:26 | call to taint | captured_variables.rb:57:19:57:19 | x | -| captured_variables.rb:69:19:69:26 | call to taint | captured_variables.rb:69:5:69:7 | [post] foo [@field] | -| captured_variables.rb:69:19:69:26 | call to taint | instance_variables.rb:10:19:10:19 | x | -| captured_variables.rb:72:6:72:8 | foo [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | -| captured_variables.rb:72:6:72:8 | foo [@field] | captured_variables.rb:72:6:72:18 | call to get_field | -| captured_variables.rb:72:6:72:8 | foo [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | -| captured_variables.rb:78:20:80:7 | [post] do ... end [captured foo, @field] | captured_variables.rb:83:6:83:8 | foo [@field] | -| captured_variables.rb:79:9:79:11 | [post] foo [@field] | captured_variables.rb:78:20:80:7 | [post] do ... end [captured foo, @field] | -| captured_variables.rb:79:23:79:30 | call to taint | captured_variables.rb:57:19:57:19 | x | -| captured_variables.rb:79:23:79:30 | call to taint | captured_variables.rb:79:9:79:11 | [post] foo [@field] | -| captured_variables.rb:79:23:79:30 | call to taint | instance_variables.rb:10:19:10:19 | x | -| captured_variables.rb:83:6:83:8 | foo [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | -| captured_variables.rb:83:6:83:8 | foo [@field] | captured_variables.rb:83:6:83:18 | call to get_field | -| captured_variables.rb:83:6:83:8 | foo [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | -| captured_variables.rb:85:5:85:12 | call to taint | captured_variables.rb:86:6:89:1 | -> { ... } [captured y] | -| captured_variables.rb:85:5:85:12 | call to taint | captured_variables.rb:90:1:90:2 | fn [captured y] | -| captured_variables.rb:85:5:85:12 | call to taint | captured_variables.rb:91:6:91:6 | y | -| captured_variables.rb:86:1:86:2 | fn [captured y] | captured_variables.rb:90:1:90:2 | fn [captured y] | -| captured_variables.rb:86:6:89:1 | -> { ... } [captured y] | captured_variables.rb:86:1:86:2 | fn [captured y] | -| captured_variables.rb:88:9:88:16 | call to taint | captured_variables.rb:90:1:90:2 | [post] fn [captured y] | -| captured_variables.rb:90:1:90:2 | [post] fn [captured y] | captured_variables.rb:91:6:91:6 | y | -| captured_variables.rb:90:1:90:2 | fn [captured y] | captured_variables.rb:87:10:87:10 | y | -| captured_variables.rb:93:17:93:17 | x | captured_variables.rb:94:5:96:5 | -> { ... } [captured x] | -| captured_variables.rb:98:1:98:21 | call to capture_arg [captured x] | captured_variables.rb:95:14:95:14 | x | -| captured_variables.rb:98:13:98:20 | call to taint | captured_variables.rb:93:17:93:17 | x | -| captured_variables.rb:98:13:98:20 | call to taint | captured_variables.rb:98:1:98:21 | call to capture_arg [captured x] | -| captured_variables.rb:100:21:100:21 | x | captured_variables.rb:101:11:101:11 | x | -| captured_variables.rb:101:11:101:11 | x | captured_variables.rb:104:31:104:31 | x | -| captured_variables.rb:104:17:104:24 | call to taint | captured_variables.rb:100:21:100:21 | x | -| captured_variables.rb:104:31:104:31 | x | captured_variables.rb:105:10:105:10 | x | -| captured_variables.rb:109:9:109:17 | call to taint | captured_variables.rb:110:14:116:5 | -> { ... } [captured x] | -| captured_variables.rb:109:9:109:17 | call to taint | captured_variables.rb:117:5:117:10 | middle [captured x] | -| captured_variables.rb:109:9:109:17 | call to taint | captured_variables.rb:118:10:118:10 | x | -| captured_variables.rb:110:5:110:10 | middle [captured x] | captured_variables.rb:117:5:117:10 | middle [captured x] | -| captured_variables.rb:110:14:116:5 | -> { ... } [captured x] | captured_variables.rb:110:5:110:10 | middle [captured x] | -| captured_variables.rb:111:9:111:13 | inner [captured x] | captured_variables.rb:115:9:115:13 | inner [captured x] | -| captured_variables.rb:111:17:114:9 | -> { ... } [captured x] | captured_variables.rb:111:9:111:13 | inner [captured x] | -| captured_variables.rb:113:17:113:25 | call to taint | captured_variables.rb:115:9:115:13 | [post] inner [captured x] | -| captured_variables.rb:115:9:115:13 | [post] inner [captured x] | captured_variables.rb:117:5:117:10 | [post] middle [captured x] | -| captured_variables.rb:115:9:115:13 | inner [captured x] | captured_variables.rb:112:18:112:18 | x | -| captured_variables.rb:117:5:117:10 | [post] middle [captured x] | captured_variables.rb:118:10:118:10 | x | -| captured_variables.rb:117:5:117:10 | middle [captured x] | captured_variables.rb:111:17:114:9 | -> { ... } [captured x] | -| captured_variables.rb:117:5:117:10 | middle [captured x] | captured_variables.rb:115:9:115:13 | inner [captured x] | -| captured_variables.rb:147:5:147:6 | [post] self [@x] | captured_variables.rb:153:14:155:7 | do ... end [captured self, @x] | -| captured_variables.rb:147:10:147:18 | call to taint | captured_variables.rb:147:5:147:6 | [post] self [@x] | -| captured_variables.rb:149:5:151:7 | &block [captured self, @x] | captured_variables.rb:154:14:154:15 | self [@x] | -| captured_variables.rb:153:14:155:7 | do ... end [captured self, @x] | captured_variables.rb:149:5:151:7 | &block [captured self, @x] | -| captured_variables.rb:154:14:154:15 | self [@x] | captured_variables.rb:154:14:154:15 | @x | -| captured_variables.rb:160:9:160:10 | [post] self [@x] | captured_variables.rb:174:1:174:24 | call to new [@x] | -| captured_variables.rb:160:14:160:22 | call to taint | captured_variables.rb:160:9:160:10 | [post] self [@x] | -| captured_variables.rb:163:5:165:7 | &block [captured self, @x] | captured_variables.rb:169:18:169:19 | self [@x] | -| captured_variables.rb:167:5:171:7 | self in baz [@x] | captured_variables.rb:168:18:170:11 | do ... end [captured self, @x] | -| captured_variables.rb:168:18:170:11 | do ... end [captured self, @x] | captured_variables.rb:163:5:165:7 | &block [captured self, @x] | -| captured_variables.rb:169:18:169:19 | self [@x] | captured_variables.rb:169:18:169:19 | @x | -| captured_variables.rb:174:1:174:24 | call to new [@x] | captured_variables.rb:167:5:171:7 | self in baz [@x] | -| captured_variables.rb:178:9:178:10 | [post] self [@x] | captured_variables.rb:193:1:193:1 | [post] c [@x] | -| captured_variables.rb:178:14:178:22 | call to taint | captured_variables.rb:178:9:178:10 | [post] self [@x] | -| captured_variables.rb:181:5:183:7 | &block [captured self, @x] | captured_variables.rb:187:18:187:19 | self [@x] | -| captured_variables.rb:185:5:189:7 | self in baz [@x] | captured_variables.rb:186:18:188:11 | do ... end [captured self, @x] | -| captured_variables.rb:186:18:188:11 | do ... end [captured self, @x] | captured_variables.rb:181:5:183:7 | &block [captured self, @x] | -| captured_variables.rb:187:18:187:19 | self [@x] | captured_variables.rb:187:18:187:19 | @x | -| captured_variables.rb:193:1:193:1 | [post] c [@x] | captured_variables.rb:194:1:194:1 | c [@x] | -| captured_variables.rb:194:1:194:1 | c [@x] | captured_variables.rb:185:5:189:7 | self in baz [@x] | -| instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:18:11:18 | x | -| instance_variables.rb:11:18:11:18 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | -| instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:16:14:21 | self [@field] | -| instance_variables.rb:14:16:14:21 | @field | instance_variables.rb:14:9:14:21 | return | -| instance_variables.rb:14:16:14:21 | self [@field] | instance_variables.rb:14:16:14:21 | @field | -| instance_variables.rb:16:5:18:7 | self in inc_field [@field] | instance_variables.rb:17:9:17:14 | [post] self [@field] | -| instance_variables.rb:17:9:17:14 | [post] self [@field] | instance_variables.rb:17:9:17:14 | [post] self [@field] | -| instance_variables.rb:19:5:19:8 | [post] self [@foo] | instance_variables.rb:20:10:20:13 | self [@foo] | -| instance_variables.rb:19:12:19:21 | call to taint | instance_variables.rb:19:5:19:8 | [post] self [@foo] | -| instance_variables.rb:20:10:20:13 | self [@foo] | instance_variables.rb:20:10:20:13 | @foo | -| instance_variables.rb:22:20:22:24 | field | instance_variables.rb:23:18:23:22 | field | -| instance_variables.rb:23:18:23:22 | field | instance_variables.rb:23:9:23:14 | [post] self [@field] | -| instance_variables.rb:24:9:24:17 | call to taint | instance_variables.rb:28:9:28:25 | call to initialize | -| instance_variables.rb:27:25:27:29 | field | instance_variables.rb:28:20:28:24 | field | -| instance_variables.rb:28:9:28:25 | call to initialize | instance_variables.rb:119:6:119:37 | call to call_initialize | -| instance_variables.rb:28:20:28:24 | field | instance_variables.rb:22:20:22:24 | field | -| instance_variables.rb:28:20:28:24 | field | instance_variables.rb:28:9:28:25 | [post] self [@field] | -| instance_variables.rb:31:18:31:18 | x | instance_variables.rb:33:13:33:13 | x | -| instance_variables.rb:32:13:32:21 | call to taint | instance_variables.rb:22:20:22:24 | field | -| instance_variables.rb:32:13:32:21 | call to taint | instance_variables.rb:48:20:48:20 | x | -| instance_variables.rb:33:13:33:13 | x | instance_variables.rb:22:20:22:24 | field | -| instance_variables.rb:33:13:33:13 | x | instance_variables.rb:33:9:33:14 | call to new [@field] | -| instance_variables.rb:36:10:36:23 | call to new [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | -| instance_variables.rb:36:10:36:23 | call to new [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | -| instance_variables.rb:36:10:36:23 | call to new [@field] | instance_variables.rb:36:10:36:33 | call to get_field | -| instance_variables.rb:36:14:36:22 | call to taint | instance_variables.rb:22:20:22:24 | field | -| instance_variables.rb:36:14:36:22 | call to taint | instance_variables.rb:36:10:36:23 | call to new [@field] | -| instance_variables.rb:39:6:39:23 | call to bar [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | -| instance_variables.rb:39:6:39:23 | call to bar [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | -| instance_variables.rb:39:6:39:23 | call to bar [@field] | instance_variables.rb:39:6:39:33 | call to get_field | -| instance_variables.rb:39:14:39:22 | call to taint | instance_variables.rb:31:18:31:18 | x | -| instance_variables.rb:39:14:39:22 | call to taint | instance_variables.rb:39:6:39:23 | call to bar [@field] | -| instance_variables.rb:43:9:43:17 | call to taint | instance_variables.rb:121:7:121:24 | call to new | -| instance_variables.rb:48:20:48:20 | x | instance_variables.rb:49:14:49:14 | x | -| instance_variables.rb:54:1:54:3 | [post] foo [@field] | instance_variables.rb:55:6:55:8 | foo [@field] | -| instance_variables.rb:54:15:54:23 | call to taint | captured_variables.rb:57:19:57:19 | x | -| instance_variables.rb:54:15:54:23 | call to taint | instance_variables.rb:10:19:10:19 | x | -| instance_variables.rb:54:15:54:23 | call to taint | instance_variables.rb:54:1:54:3 | [post] foo [@field] | -| instance_variables.rb:55:6:55:8 | foo [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | -| instance_variables.rb:55:6:55:8 | foo [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | -| instance_variables.rb:55:6:55:8 | foo [@field] | instance_variables.rb:55:6:55:18 | call to get_field | -| instance_variables.rb:58:1:58:3 | [post] bar [@field] | instance_variables.rb:59:6:59:8 | bar [@field] | -| instance_variables.rb:58:15:58:22 | call to taint | captured_variables.rb:57:19:57:19 | x | -| instance_variables.rb:58:15:58:22 | call to taint | instance_variables.rb:10:19:10:19 | x | -| instance_variables.rb:58:15:58:22 | call to taint | instance_variables.rb:58:1:58:3 | [post] bar [@field] | -| instance_variables.rb:59:6:59:8 | bar [@field] | instance_variables.rb:16:5:18:7 | self in inc_field [@field] | -| instance_variables.rb:59:6:59:8 | bar [@field] | instance_variables.rb:59:6:59:18 | call to inc_field | -| instance_variables.rb:62:1:62:4 | [post] foo1 [@field] | instance_variables.rb:63:6:63:9 | foo1 [@field] | -| instance_variables.rb:62:14:62:22 | call to taint | instance_variables.rb:62:1:62:4 | [post] foo1 [@field] | -| instance_variables.rb:63:6:63:9 | foo1 [@field] | instance_variables.rb:63:6:63:15 | call to field | -| instance_variables.rb:66:1:66:4 | [post] foo2 [@field] | instance_variables.rb:67:6:67:9 | foo2 [@field] | -| instance_variables.rb:66:14:66:22 | call to taint | instance_variables.rb:66:1:66:4 | [post] foo2 [@field] | -| instance_variables.rb:67:6:67:9 | foo2 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | -| instance_variables.rb:67:6:67:9 | foo2 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | -| instance_variables.rb:67:6:67:9 | foo2 [@field] | instance_variables.rb:67:6:67:19 | call to get_field | -| instance_variables.rb:70:1:70:4 | [post] foo3 [@field] | instance_variables.rb:71:6:71:9 | foo3 [@field] | -| instance_variables.rb:70:1:70:4 | [post] foo3 [@field] | instance_variables.rb:83:6:83:9 | foo3 [@field] | -| instance_variables.rb:70:16:70:24 | call to taint | captured_variables.rb:57:19:57:19 | x | -| instance_variables.rb:70:16:70:24 | call to taint | instance_variables.rb:10:19:10:19 | x | -| instance_variables.rb:70:16:70:24 | call to taint | instance_variables.rb:70:1:70:4 | [post] foo3 [@field] | -| instance_variables.rb:71:6:71:9 | foo3 [@field] | instance_variables.rb:71:6:71:15 | call to field | -| instance_variables.rb:78:2:78:5 | [post] foo5 [@field] | instance_variables.rb:79:6:79:9 | foo5 [@field] | -| instance_variables.rb:78:2:78:5 | [post] foo5 [@field] | instance_variables.rb:84:6:84:9 | foo5 [@field] | -| instance_variables.rb:78:18:78:26 | call to taint | captured_variables.rb:57:19:57:19 | x | -| instance_variables.rb:78:18:78:26 | call to taint | instance_variables.rb:10:19:10:19 | x | -| instance_variables.rb:78:18:78:26 | call to taint | instance_variables.rb:78:2:78:5 | [post] foo5 [@field] | -| instance_variables.rb:79:6:79:9 | foo5 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | -| instance_variables.rb:79:6:79:9 | foo5 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | -| instance_variables.rb:79:6:79:9 | foo5 [@field] | instance_variables.rb:79:6:79:19 | call to get_field | -| instance_variables.rb:82:15:82:18 | [post] foo6 [@field] | instance_variables.rb:85:6:85:9 | foo6 [@field] | -| instance_variables.rb:82:32:82:40 | call to taint | captured_variables.rb:57:19:57:19 | x | -| instance_variables.rb:82:32:82:40 | call to taint | instance_variables.rb:10:19:10:19 | x | -| instance_variables.rb:82:32:82:40 | call to taint | instance_variables.rb:82:15:82:18 | [post] foo6 [@field] | -| instance_variables.rb:83:6:83:9 | foo3 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | -| instance_variables.rb:83:6:83:9 | foo3 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | -| instance_variables.rb:83:6:83:9 | foo3 [@field] | instance_variables.rb:83:6:83:19 | call to get_field | -| instance_variables.rb:84:6:84:9 | foo5 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | -| instance_variables.rb:84:6:84:9 | foo5 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | -| instance_variables.rb:84:6:84:9 | foo5 [@field] | instance_variables.rb:84:6:84:19 | call to get_field | -| instance_variables.rb:85:6:85:9 | foo6 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | -| instance_variables.rb:85:6:85:9 | foo6 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | -| instance_variables.rb:85:6:85:9 | foo6 [@field] | instance_variables.rb:85:6:85:19 | call to get_field | -| instance_variables.rb:89:15:89:18 | [post] foo7 [@field] | instance_variables.rb:90:6:90:9 | foo7 [@field] | -| instance_variables.rb:89:25:89:28 | [post] foo8 [@field] | instance_variables.rb:91:6:91:9 | foo8 [@field] | -| instance_variables.rb:89:45:89:53 | call to taint | captured_variables.rb:57:19:57:19 | x | -| instance_variables.rb:89:45:89:53 | call to taint | instance_variables.rb:10:19:10:19 | x | -| instance_variables.rb:89:45:89:53 | call to taint | instance_variables.rb:89:15:89:18 | [post] foo7 [@field] | -| instance_variables.rb:89:45:89:53 | call to taint | instance_variables.rb:89:25:89:28 | [post] foo8 [@field] | -| instance_variables.rb:90:6:90:9 | foo7 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | -| instance_variables.rb:90:6:90:9 | foo7 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | -| instance_variables.rb:90:6:90:9 | foo7 [@field] | instance_variables.rb:90:6:90:19 | call to get_field | -| instance_variables.rb:91:6:91:9 | foo8 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | -| instance_variables.rb:91:6:91:9 | foo8 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | -| instance_variables.rb:91:6:91:9 | foo8 [@field] | instance_variables.rb:91:6:91:19 | call to get_field | -| instance_variables.rb:95:22:95:25 | [post] foo9 [@field] | instance_variables.rb:96:6:96:9 | foo9 [@field] | -| instance_variables.rb:95:32:95:36 | [post] foo10 [@field] | instance_variables.rb:97:6:97:10 | foo10 [@field] | -| instance_variables.rb:95:53:95:61 | call to taint | captured_variables.rb:57:19:57:19 | x | -| instance_variables.rb:95:53:95:61 | call to taint | instance_variables.rb:10:19:10:19 | x | -| instance_variables.rb:95:53:95:61 | call to taint | instance_variables.rb:95:22:95:25 | [post] foo9 [@field] | -| instance_variables.rb:95:53:95:61 | call to taint | instance_variables.rb:95:32:95:36 | [post] foo10 [@field] | -| instance_variables.rb:96:6:96:9 | foo9 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | -| instance_variables.rb:96:6:96:9 | foo9 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | -| instance_variables.rb:96:6:96:9 | foo9 [@field] | instance_variables.rb:96:6:96:19 | call to get_field | -| instance_variables.rb:97:6:97:10 | foo10 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | -| instance_variables.rb:97:6:97:10 | foo10 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | -| instance_variables.rb:97:6:97:10 | foo10 [@field] | instance_variables.rb:97:6:97:20 | call to get_field | -| instance_variables.rb:100:5:100:5 | [post] x [@field] | instance_variables.rb:104:14:104:18 | [post] foo11 [@field] | -| instance_variables.rb:100:5:100:5 | [post] x [@field] | instance_variables.rb:108:15:108:19 | [post] foo12 [@field] | -| instance_variables.rb:100:5:100:5 | [post] x [@field] | instance_variables.rb:113:22:113:26 | [post] foo13 [@field] | -| instance_variables.rb:100:17:100:25 | call to taint | captured_variables.rb:57:19:57:19 | x | -| instance_variables.rb:100:17:100:25 | call to taint | instance_variables.rb:10:19:10:19 | x | -| instance_variables.rb:100:17:100:25 | call to taint | instance_variables.rb:100:5:100:5 | [post] x [@field] | -| instance_variables.rb:104:14:104:18 | [post] foo11 [@field] | instance_variables.rb:105:6:105:10 | foo11 [@field] | -| instance_variables.rb:105:6:105:10 | foo11 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | -| instance_variables.rb:105:6:105:10 | foo11 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | -| instance_variables.rb:105:6:105:10 | foo11 [@field] | instance_variables.rb:105:6:105:20 | call to get_field | -| instance_variables.rb:108:15:108:19 | [post] foo12 [@field] | instance_variables.rb:109:6:109:10 | foo12 [@field] | -| instance_variables.rb:109:6:109:10 | foo12 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | -| instance_variables.rb:109:6:109:10 | foo12 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | -| instance_variables.rb:109:6:109:10 | foo12 [@field] | instance_variables.rb:109:6:109:20 | call to get_field | -| instance_variables.rb:113:22:113:26 | [post] foo13 [@field] | instance_variables.rb:114:6:114:10 | foo13 [@field] | -| instance_variables.rb:114:6:114:10 | foo13 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | -| instance_variables.rb:114:6:114:10 | foo13 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | -| instance_variables.rb:114:6:114:10 | foo13 [@field] | instance_variables.rb:114:6:114:20 | call to get_field | -| instance_variables.rb:116:1:116:5 | foo15 [@field] | instance_variables.rb:117:6:117:10 | foo15 [@field] | -| instance_variables.rb:116:9:116:26 | call to new [@field] | instance_variables.rb:116:1:116:5 | foo15 [@field] | -| instance_variables.rb:116:17:116:25 | call to taint | instance_variables.rb:22:20:22:24 | field | -| instance_variables.rb:116:17:116:25 | call to taint | instance_variables.rb:116:9:116:26 | call to new [@field] | -| instance_variables.rb:117:6:117:10 | foo15 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | -| instance_variables.rb:117:6:117:10 | foo15 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | -| instance_variables.rb:117:6:117:10 | foo15 [@field] | instance_variables.rb:117:6:117:20 | call to get_field | -| instance_variables.rb:119:6:119:10 | [post] foo16 [@field] | instance_variables.rb:120:6:120:10 | foo16 [@field] | -| instance_variables.rb:119:28:119:36 | call to taint | instance_variables.rb:27:25:27:29 | field | -| instance_variables.rb:119:28:119:36 | call to taint | instance_variables.rb:119:6:119:10 | [post] foo16 [@field] | -| instance_variables.rb:120:6:120:10 | foo16 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | -| instance_variables.rb:120:6:120:10 | foo16 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | -| instance_variables.rb:120:6:120:10 | foo16 [@field] | instance_variables.rb:120:6:120:20 | call to get_field | -| instance_variables.rb:121:1:121:3 | bar | instance_variables.rb:122:6:122:8 | bar | -| instance_variables.rb:121:7:121:24 | call to new | instance_variables.rb:121:1:121:3 | bar | +| blocks.rb:14:12:14:20 | call to source | blocks.rb:8:10:8:14 | yield ... | provenance | | +| captured_variables.rb:9:24:9:24 | x | captured_variables.rb:10:10:10:23 | -> { ... } [captured x] | provenance | | +| captured_variables.rb:9:24:9:24 | x | captured_variables.rb:11:5:11:6 | fn [captured x] | provenance | | +| captured_variables.rb:10:5:10:6 | fn [captured x] | captured_variables.rb:11:5:11:6 | fn [captured x] | provenance | | +| captured_variables.rb:10:10:10:23 | -> { ... } [captured x] | captured_variables.rb:10:5:10:6 | fn [captured x] | provenance | | +| captured_variables.rb:11:5:11:6 | fn [captured x] | captured_variables.rb:10:20:10:20 | x | provenance | | +| captured_variables.rb:13:20:13:29 | call to taint | captured_variables.rb:9:24:9:24 | x | provenance | | +| captured_variables.rb:15:28:15:28 | x | captured_variables.rb:16:5:18:5 | -> { ... } [captured x] | provenance | | +| captured_variables.rb:20:1:20:35 | ( ... ) [captured x] | captured_variables.rb:17:14:17:14 | x | provenance | | +| captured_variables.rb:20:2:20:34 | call to capture_escape_return1 [captured x] | captured_variables.rb:20:1:20:35 | ( ... ) [captured x] | provenance | | +| captured_variables.rb:20:25:20:34 | call to taint | captured_variables.rb:15:28:15:28 | x | provenance | | +| captured_variables.rb:20:25:20:34 | call to taint | captured_variables.rb:20:2:20:34 | call to capture_escape_return1 [captured x] | provenance | | +| captured_variables.rb:22:28:22:28 | x | captured_variables.rb:23:5:25:5 | -> { ... } [captured x] | provenance | | +| captured_variables.rb:27:25:27:57 | call to capture_escape_return2 [captured x] | captured_variables.rb:24:14:24:14 | x | provenance | | +| captured_variables.rb:27:48:27:57 | call to taint | captured_variables.rb:22:28:22:28 | x | provenance | | +| captured_variables.rb:27:48:27:57 | call to taint | captured_variables.rb:27:25:27:57 | call to capture_escape_return2 [captured x] | provenance | | +| captured_variables.rb:29:33:29:33 | x | captured_variables.rb:30:10:32:5 | -> { ... } [captured x] | provenance | | +| captured_variables.rb:29:33:29:33 | x | captured_variables.rb:33:29:33:30 | fn [captured x] | provenance | | +| captured_variables.rb:30:5:30:6 | fn [captured x] | captured_variables.rb:33:29:33:30 | fn [captured x] | provenance | | +| captured_variables.rb:30:10:32:5 | -> { ... } [captured x] | captured_variables.rb:30:5:30:6 | fn [captured x] | provenance | | +| captured_variables.rb:33:29:33:30 | fn [captured x] | captured_variables.rb:31:14:31:14 | x | provenance | | +| captured_variables.rb:35:29:35:38 | call to taint | captured_variables.rb:29:33:29:33 | x | provenance | | +| captured_variables.rb:37:13:37:14 | fn [captured x] | captured_variables.rb:38:5:38:6 | fn [captured x] | provenance | | +| captured_variables.rb:38:5:38:6 | fn [captured x] | captured_variables.rb:42:14:42:14 | x | provenance | | +| captured_variables.rb:40:31:40:31 | x | captured_variables.rb:41:10:43:5 | -> { ... } [captured x] | provenance | | +| captured_variables.rb:40:31:40:31 | x | captured_variables.rb:44:13:44:14 | fn [captured x] | provenance | | +| captured_variables.rb:41:5:41:6 | fn [captured x] | captured_variables.rb:44:13:44:14 | fn [captured x] | provenance | | +| captured_variables.rb:41:10:43:5 | -> { ... } [captured x] | captured_variables.rb:41:5:41:6 | fn [captured x] | provenance | | +| captured_variables.rb:44:13:44:14 | fn [captured x] | captured_variables.rb:37:13:37:14 | fn [captured x] | provenance | | +| captured_variables.rb:46:27:46:36 | call to taint | captured_variables.rb:40:31:40:31 | x | provenance | | +| captured_variables.rb:48:5:48:12 | call to taint | captured_variables.rb:49:16:52:3 | do ... end [captured x] | provenance | | +| captured_variables.rb:48:5:48:12 | call to taint | captured_variables.rb:54:6:54:6 | x | provenance | | +| captured_variables.rb:49:16:52:3 | [post] do ... end [captured x] | captured_variables.rb:54:6:54:6 | x | provenance | | +| captured_variables.rb:49:16:52:3 | do ... end [captured x] | captured_variables.rb:50:10:50:10 | x | provenance | | +| captured_variables.rb:51:9:51:16 | call to taint | captured_variables.rb:49:16:52:3 | [post] do ... end [captured x] | provenance | | +| captured_variables.rb:57:19:57:19 | x | captured_variables.rb:58:18:58:18 | x | provenance | | +| captured_variables.rb:58:18:58:18 | x | captured_variables.rb:58:9:58:14 | [post] self [@field] | provenance | | +| captured_variables.rb:60:5:62:7 | self in get_field [@field] | captured_variables.rb:61:16:61:21 | self [@field] | provenance | | +| captured_variables.rb:61:16:61:21 | @field | captured_variables.rb:61:9:61:21 | return | provenance | | +| captured_variables.rb:61:16:61:21 | self [@field] | captured_variables.rb:61:16:61:21 | @field | provenance | | +| captured_variables.rb:66:1:66:3 | [post] foo [@field] | captured_variables.rb:67:16:70:3 | do ... end [captured foo, @field] | provenance | | +| captured_variables.rb:66:1:66:3 | [post] foo [@field] | captured_variables.rb:72:6:72:8 | foo [@field] | provenance | | +| captured_variables.rb:66:15:66:22 | call to taint | captured_variables.rb:57:19:57:19 | x | provenance | | +| captured_variables.rb:66:15:66:22 | call to taint | captured_variables.rb:66:1:66:3 | [post] foo [@field] | provenance | | +| captured_variables.rb:66:15:66:22 | call to taint | instance_variables.rb:10:19:10:19 | x | provenance | | +| captured_variables.rb:67:16:70:3 | [post] do ... end [captured foo, @field] | captured_variables.rb:72:6:72:8 | foo [@field] | provenance | | +| captured_variables.rb:67:16:70:3 | do ... end [captured foo, @field] | captured_variables.rb:68:10:68:12 | foo [@field] | provenance | | +| captured_variables.rb:68:10:68:12 | foo [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | provenance | | +| captured_variables.rb:68:10:68:12 | foo [@field] | captured_variables.rb:68:10:68:22 | call to get_field | provenance | | +| captured_variables.rb:68:10:68:12 | foo [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | provenance | | +| captured_variables.rb:69:5:69:7 | [post] foo [@field] | captured_variables.rb:67:16:70:3 | [post] do ... end [captured foo, @field] | provenance | | +| captured_variables.rb:69:19:69:26 | call to taint | captured_variables.rb:57:19:57:19 | x | provenance | | +| captured_variables.rb:69:19:69:26 | call to taint | captured_variables.rb:69:5:69:7 | [post] foo [@field] | provenance | | +| captured_variables.rb:69:19:69:26 | call to taint | instance_variables.rb:10:19:10:19 | x | provenance | | +| captured_variables.rb:72:6:72:8 | foo [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | provenance | | +| captured_variables.rb:72:6:72:8 | foo [@field] | captured_variables.rb:72:6:72:18 | call to get_field | provenance | | +| captured_variables.rb:72:6:72:8 | foo [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | provenance | | +| captured_variables.rb:78:20:80:7 | [post] do ... end [captured foo, @field] | captured_variables.rb:83:6:83:8 | foo [@field] | provenance | | +| captured_variables.rb:79:9:79:11 | [post] foo [@field] | captured_variables.rb:78:20:80:7 | [post] do ... end [captured foo, @field] | provenance | | +| captured_variables.rb:79:23:79:30 | call to taint | captured_variables.rb:57:19:57:19 | x | provenance | | +| captured_variables.rb:79:23:79:30 | call to taint | captured_variables.rb:79:9:79:11 | [post] foo [@field] | provenance | | +| captured_variables.rb:79:23:79:30 | call to taint | instance_variables.rb:10:19:10:19 | x | provenance | | +| captured_variables.rb:83:6:83:8 | foo [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | provenance | | +| captured_variables.rb:83:6:83:8 | foo [@field] | captured_variables.rb:83:6:83:18 | call to get_field | provenance | | +| captured_variables.rb:83:6:83:8 | foo [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | provenance | | +| captured_variables.rb:85:5:85:12 | call to taint | captured_variables.rb:86:6:89:1 | -> { ... } [captured y] | provenance | | +| captured_variables.rb:85:5:85:12 | call to taint | captured_variables.rb:90:1:90:2 | fn [captured y] | provenance | | +| captured_variables.rb:85:5:85:12 | call to taint | captured_variables.rb:91:6:91:6 | y | provenance | | +| captured_variables.rb:86:1:86:2 | fn [captured y] | captured_variables.rb:90:1:90:2 | fn [captured y] | provenance | | +| captured_variables.rb:86:6:89:1 | -> { ... } [captured y] | captured_variables.rb:86:1:86:2 | fn [captured y] | provenance | | +| captured_variables.rb:88:9:88:16 | call to taint | captured_variables.rb:90:1:90:2 | [post] fn [captured y] | provenance | | +| captured_variables.rb:90:1:90:2 | [post] fn [captured y] | captured_variables.rb:91:6:91:6 | y | provenance | | +| captured_variables.rb:90:1:90:2 | fn [captured y] | captured_variables.rb:87:10:87:10 | y | provenance | | +| captured_variables.rb:93:17:93:17 | x | captured_variables.rb:94:5:96:5 | -> { ... } [captured x] | provenance | | +| captured_variables.rb:98:1:98:21 | call to capture_arg [captured x] | captured_variables.rb:95:14:95:14 | x | provenance | | +| captured_variables.rb:98:13:98:20 | call to taint | captured_variables.rb:93:17:93:17 | x | provenance | | +| captured_variables.rb:98:13:98:20 | call to taint | captured_variables.rb:98:1:98:21 | call to capture_arg [captured x] | provenance | | +| captured_variables.rb:100:21:100:21 | x | captured_variables.rb:101:11:101:11 | x | provenance | | +| captured_variables.rb:101:11:101:11 | x | captured_variables.rb:104:31:104:31 | x | provenance | | +| captured_variables.rb:104:17:104:24 | call to taint | captured_variables.rb:100:21:100:21 | x | provenance | | +| captured_variables.rb:104:31:104:31 | x | captured_variables.rb:105:10:105:10 | x | provenance | | +| captured_variables.rb:109:9:109:17 | call to taint | captured_variables.rb:110:14:116:5 | -> { ... } [captured x] | provenance | | +| captured_variables.rb:109:9:109:17 | call to taint | captured_variables.rb:117:5:117:10 | middle [captured x] | provenance | | +| captured_variables.rb:109:9:109:17 | call to taint | captured_variables.rb:118:10:118:10 | x | provenance | | +| captured_variables.rb:110:5:110:10 | middle [captured x] | captured_variables.rb:117:5:117:10 | middle [captured x] | provenance | | +| captured_variables.rb:110:14:116:5 | -> { ... } [captured x] | captured_variables.rb:110:5:110:10 | middle [captured x] | provenance | | +| captured_variables.rb:111:9:111:13 | inner [captured x] | captured_variables.rb:115:9:115:13 | inner [captured x] | provenance | | +| captured_variables.rb:111:17:114:9 | -> { ... } [captured x] | captured_variables.rb:111:9:111:13 | inner [captured x] | provenance | | +| captured_variables.rb:113:17:113:25 | call to taint | captured_variables.rb:115:9:115:13 | [post] inner [captured x] | provenance | | +| captured_variables.rb:115:9:115:13 | [post] inner [captured x] | captured_variables.rb:117:5:117:10 | [post] middle [captured x] | provenance | | +| captured_variables.rb:115:9:115:13 | inner [captured x] | captured_variables.rb:112:18:112:18 | x | provenance | | +| captured_variables.rb:117:5:117:10 | [post] middle [captured x] | captured_variables.rb:118:10:118:10 | x | provenance | | +| captured_variables.rb:117:5:117:10 | middle [captured x] | captured_variables.rb:111:17:114:9 | -> { ... } [captured x] | provenance | | +| captured_variables.rb:117:5:117:10 | middle [captured x] | captured_variables.rb:115:9:115:13 | inner [captured x] | provenance | | +| captured_variables.rb:147:5:147:6 | [post] self [@x] | captured_variables.rb:153:14:155:7 | do ... end [captured self, @x] | provenance | | +| captured_variables.rb:147:10:147:18 | call to taint | captured_variables.rb:147:5:147:6 | [post] self [@x] | provenance | | +| captured_variables.rb:149:5:151:7 | &block [captured self, @x] | captured_variables.rb:154:14:154:15 | self [@x] | provenance | | +| captured_variables.rb:153:14:155:7 | do ... end [captured self, @x] | captured_variables.rb:149:5:151:7 | &block [captured self, @x] | provenance | | +| captured_variables.rb:154:14:154:15 | self [@x] | captured_variables.rb:154:14:154:15 | @x | provenance | | +| captured_variables.rb:160:9:160:10 | [post] self [@x] | captured_variables.rb:174:1:174:24 | call to new [@x] | provenance | | +| captured_variables.rb:160:14:160:22 | call to taint | captured_variables.rb:160:9:160:10 | [post] self [@x] | provenance | | +| captured_variables.rb:163:5:165:7 | &block [captured self, @x] | captured_variables.rb:169:18:169:19 | self [@x] | provenance | | +| captured_variables.rb:167:5:171:7 | self in baz [@x] | captured_variables.rb:168:18:170:11 | do ... end [captured self, @x] | provenance | | +| captured_variables.rb:168:18:170:11 | do ... end [captured self, @x] | captured_variables.rb:163:5:165:7 | &block [captured self, @x] | provenance | | +| captured_variables.rb:169:18:169:19 | self [@x] | captured_variables.rb:169:18:169:19 | @x | provenance | | +| captured_variables.rb:174:1:174:24 | call to new [@x] | captured_variables.rb:167:5:171:7 | self in baz [@x] | provenance | | +| captured_variables.rb:178:9:178:10 | [post] self [@x] | captured_variables.rb:193:1:193:1 | [post] c [@x] | provenance | | +| captured_variables.rb:178:14:178:22 | call to taint | captured_variables.rb:178:9:178:10 | [post] self [@x] | provenance | | +| captured_variables.rb:181:5:183:7 | &block [captured self, @x] | captured_variables.rb:187:18:187:19 | self [@x] | provenance | | +| captured_variables.rb:185:5:189:7 | self in baz [@x] | captured_variables.rb:186:18:188:11 | do ... end [captured self, @x] | provenance | | +| captured_variables.rb:186:18:188:11 | do ... end [captured self, @x] | captured_variables.rb:181:5:183:7 | &block [captured self, @x] | provenance | | +| captured_variables.rb:187:18:187:19 | self [@x] | captured_variables.rb:187:18:187:19 | @x | provenance | | +| captured_variables.rb:193:1:193:1 | [post] c [@x] | captured_variables.rb:194:1:194:1 | c [@x] | provenance | | +| captured_variables.rb:194:1:194:1 | c [@x] | captured_variables.rb:185:5:189:7 | self in baz [@x] | provenance | | +| instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:18:11:18 | x | provenance | | +| instance_variables.rb:11:18:11:18 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | provenance | | +| instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:16:14:21 | self [@field] | provenance | | +| instance_variables.rb:14:16:14:21 | @field | instance_variables.rb:14:9:14:21 | return | provenance | | +| instance_variables.rb:14:16:14:21 | self [@field] | instance_variables.rb:14:16:14:21 | @field | provenance | | +| instance_variables.rb:16:5:18:7 | self in inc_field [@field] | instance_variables.rb:17:9:17:14 | [post] self [@field] | provenance | | +| instance_variables.rb:17:9:17:14 | [post] self [@field] | instance_variables.rb:17:9:17:14 | [post] self [@field] | provenance | | +| instance_variables.rb:19:5:19:8 | [post] self [@foo] | instance_variables.rb:20:10:20:13 | self [@foo] | provenance | | +| instance_variables.rb:19:12:19:21 | call to taint | instance_variables.rb:19:5:19:8 | [post] self [@foo] | provenance | | +| instance_variables.rb:20:10:20:13 | self [@foo] | instance_variables.rb:20:10:20:13 | @foo | provenance | | +| instance_variables.rb:22:20:22:24 | field | instance_variables.rb:23:18:23:22 | field | provenance | | +| instance_variables.rb:23:18:23:22 | field | instance_variables.rb:23:9:23:14 | [post] self [@field] | provenance | | +| instance_variables.rb:24:9:24:17 | call to taint | instance_variables.rb:28:9:28:25 | call to initialize | provenance | | +| instance_variables.rb:27:25:27:29 | field | instance_variables.rb:28:20:28:24 | field | provenance | | +| instance_variables.rb:28:9:28:25 | call to initialize | instance_variables.rb:119:6:119:37 | call to call_initialize | provenance | | +| instance_variables.rb:28:20:28:24 | field | instance_variables.rb:22:20:22:24 | field | provenance | | +| instance_variables.rb:28:20:28:24 | field | instance_variables.rb:28:9:28:25 | [post] self [@field] | provenance | | +| instance_variables.rb:31:18:31:18 | x | instance_variables.rb:33:13:33:13 | x | provenance | | +| instance_variables.rb:32:13:32:21 | call to taint | instance_variables.rb:22:20:22:24 | field | provenance | | +| instance_variables.rb:32:13:32:21 | call to taint | instance_variables.rb:48:20:48:20 | x | provenance | | +| instance_variables.rb:33:13:33:13 | x | instance_variables.rb:22:20:22:24 | field | provenance | | +| instance_variables.rb:33:13:33:13 | x | instance_variables.rb:33:9:33:14 | call to new [@field] | provenance | | +| instance_variables.rb:36:10:36:23 | call to new [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | provenance | | +| instance_variables.rb:36:10:36:23 | call to new [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | provenance | | +| instance_variables.rb:36:10:36:23 | call to new [@field] | instance_variables.rb:36:10:36:33 | call to get_field | provenance | | +| instance_variables.rb:36:14:36:22 | call to taint | instance_variables.rb:22:20:22:24 | field | provenance | | +| instance_variables.rb:36:14:36:22 | call to taint | instance_variables.rb:36:10:36:23 | call to new [@field] | provenance | | +| instance_variables.rb:39:6:39:23 | call to bar [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | provenance | | +| instance_variables.rb:39:6:39:23 | call to bar [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | provenance | | +| instance_variables.rb:39:6:39:23 | call to bar [@field] | instance_variables.rb:39:6:39:33 | call to get_field | provenance | | +| instance_variables.rb:39:14:39:22 | call to taint | instance_variables.rb:31:18:31:18 | x | provenance | | +| instance_variables.rb:39:14:39:22 | call to taint | instance_variables.rb:39:6:39:23 | call to bar [@field] | provenance | | +| instance_variables.rb:43:9:43:17 | call to taint | instance_variables.rb:121:7:121:24 | call to new | provenance | | +| instance_variables.rb:48:20:48:20 | x | instance_variables.rb:49:14:49:14 | x | provenance | | +| instance_variables.rb:54:1:54:3 | [post] foo [@field] | instance_variables.rb:55:6:55:8 | foo [@field] | provenance | | +| instance_variables.rb:54:15:54:23 | call to taint | captured_variables.rb:57:19:57:19 | x | provenance | | +| instance_variables.rb:54:15:54:23 | call to taint | instance_variables.rb:10:19:10:19 | x | provenance | | +| instance_variables.rb:54:15:54:23 | call to taint | instance_variables.rb:54:1:54:3 | [post] foo [@field] | provenance | | +| instance_variables.rb:55:6:55:8 | foo [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | provenance | | +| instance_variables.rb:55:6:55:8 | foo [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | provenance | | +| instance_variables.rb:55:6:55:8 | foo [@field] | instance_variables.rb:55:6:55:18 | call to get_field | provenance | | +| instance_variables.rb:58:1:58:3 | [post] bar [@field] | instance_variables.rb:59:6:59:8 | bar [@field] | provenance | | +| instance_variables.rb:58:15:58:22 | call to taint | captured_variables.rb:57:19:57:19 | x | provenance | | +| instance_variables.rb:58:15:58:22 | call to taint | instance_variables.rb:10:19:10:19 | x | provenance | | +| instance_variables.rb:58:15:58:22 | call to taint | instance_variables.rb:58:1:58:3 | [post] bar [@field] | provenance | | +| instance_variables.rb:59:6:59:8 | bar [@field] | instance_variables.rb:16:5:18:7 | self in inc_field [@field] | provenance | | +| instance_variables.rb:59:6:59:8 | bar [@field] | instance_variables.rb:59:6:59:18 | call to inc_field | provenance | | +| instance_variables.rb:62:1:62:4 | [post] foo1 [@field] | instance_variables.rb:63:6:63:9 | foo1 [@field] | provenance | | +| instance_variables.rb:62:14:62:22 | call to taint | instance_variables.rb:62:1:62:4 | [post] foo1 [@field] | provenance | | +| instance_variables.rb:63:6:63:9 | foo1 [@field] | instance_variables.rb:63:6:63:15 | call to field | provenance | | +| instance_variables.rb:66:1:66:4 | [post] foo2 [@field] | instance_variables.rb:67:6:67:9 | foo2 [@field] | provenance | | +| instance_variables.rb:66:14:66:22 | call to taint | instance_variables.rb:66:1:66:4 | [post] foo2 [@field] | provenance | | +| instance_variables.rb:67:6:67:9 | foo2 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | provenance | | +| instance_variables.rb:67:6:67:9 | foo2 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | provenance | | +| instance_variables.rb:67:6:67:9 | foo2 [@field] | instance_variables.rb:67:6:67:19 | call to get_field | provenance | | +| instance_variables.rb:70:1:70:4 | [post] foo3 [@field] | instance_variables.rb:71:6:71:9 | foo3 [@field] | provenance | | +| instance_variables.rb:70:1:70:4 | [post] foo3 [@field] | instance_variables.rb:83:6:83:9 | foo3 [@field] | provenance | | +| instance_variables.rb:70:16:70:24 | call to taint | captured_variables.rb:57:19:57:19 | x | provenance | | +| instance_variables.rb:70:16:70:24 | call to taint | instance_variables.rb:10:19:10:19 | x | provenance | | +| instance_variables.rb:70:16:70:24 | call to taint | instance_variables.rb:70:1:70:4 | [post] foo3 [@field] | provenance | | +| instance_variables.rb:71:6:71:9 | foo3 [@field] | instance_variables.rb:71:6:71:15 | call to field | provenance | | +| instance_variables.rb:78:2:78:5 | [post] foo5 [@field] | instance_variables.rb:79:6:79:9 | foo5 [@field] | provenance | | +| instance_variables.rb:78:2:78:5 | [post] foo5 [@field] | instance_variables.rb:84:6:84:9 | foo5 [@field] | provenance | | +| instance_variables.rb:78:18:78:26 | call to taint | captured_variables.rb:57:19:57:19 | x | provenance | | +| instance_variables.rb:78:18:78:26 | call to taint | instance_variables.rb:10:19:10:19 | x | provenance | | +| instance_variables.rb:78:18:78:26 | call to taint | instance_variables.rb:78:2:78:5 | [post] foo5 [@field] | provenance | | +| instance_variables.rb:79:6:79:9 | foo5 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | provenance | | +| instance_variables.rb:79:6:79:9 | foo5 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | provenance | | +| instance_variables.rb:79:6:79:9 | foo5 [@field] | instance_variables.rb:79:6:79:19 | call to get_field | provenance | | +| instance_variables.rb:82:15:82:18 | [post] foo6 [@field] | instance_variables.rb:85:6:85:9 | foo6 [@field] | provenance | | +| instance_variables.rb:82:32:82:40 | call to taint | captured_variables.rb:57:19:57:19 | x | provenance | | +| instance_variables.rb:82:32:82:40 | call to taint | instance_variables.rb:10:19:10:19 | x | provenance | | +| instance_variables.rb:82:32:82:40 | call to taint | instance_variables.rb:82:15:82:18 | [post] foo6 [@field] | provenance | | +| instance_variables.rb:83:6:83:9 | foo3 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | provenance | | +| instance_variables.rb:83:6:83:9 | foo3 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | provenance | | +| instance_variables.rb:83:6:83:9 | foo3 [@field] | instance_variables.rb:83:6:83:19 | call to get_field | provenance | | +| instance_variables.rb:84:6:84:9 | foo5 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | provenance | | +| instance_variables.rb:84:6:84:9 | foo5 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | provenance | | +| instance_variables.rb:84:6:84:9 | foo5 [@field] | instance_variables.rb:84:6:84:19 | call to get_field | provenance | | +| instance_variables.rb:85:6:85:9 | foo6 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | provenance | | +| instance_variables.rb:85:6:85:9 | foo6 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | provenance | | +| instance_variables.rb:85:6:85:9 | foo6 [@field] | instance_variables.rb:85:6:85:19 | call to get_field | provenance | | +| instance_variables.rb:89:15:89:18 | [post] foo7 [@field] | instance_variables.rb:90:6:90:9 | foo7 [@field] | provenance | | +| instance_variables.rb:89:25:89:28 | [post] foo8 [@field] | instance_variables.rb:91:6:91:9 | foo8 [@field] | provenance | | +| instance_variables.rb:89:45:89:53 | call to taint | captured_variables.rb:57:19:57:19 | x | provenance | | +| instance_variables.rb:89:45:89:53 | call to taint | instance_variables.rb:10:19:10:19 | x | provenance | | +| instance_variables.rb:89:45:89:53 | call to taint | instance_variables.rb:89:15:89:18 | [post] foo7 [@field] | provenance | | +| instance_variables.rb:89:45:89:53 | call to taint | instance_variables.rb:89:25:89:28 | [post] foo8 [@field] | provenance | | +| instance_variables.rb:90:6:90:9 | foo7 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | provenance | | +| instance_variables.rb:90:6:90:9 | foo7 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | provenance | | +| instance_variables.rb:90:6:90:9 | foo7 [@field] | instance_variables.rb:90:6:90:19 | call to get_field | provenance | | +| instance_variables.rb:91:6:91:9 | foo8 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | provenance | | +| instance_variables.rb:91:6:91:9 | foo8 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | provenance | | +| instance_variables.rb:91:6:91:9 | foo8 [@field] | instance_variables.rb:91:6:91:19 | call to get_field | provenance | | +| instance_variables.rb:95:22:95:25 | [post] foo9 [@field] | instance_variables.rb:96:6:96:9 | foo9 [@field] | provenance | | +| instance_variables.rb:95:32:95:36 | [post] foo10 [@field] | instance_variables.rb:97:6:97:10 | foo10 [@field] | provenance | | +| instance_variables.rb:95:53:95:61 | call to taint | captured_variables.rb:57:19:57:19 | x | provenance | | +| instance_variables.rb:95:53:95:61 | call to taint | instance_variables.rb:10:19:10:19 | x | provenance | | +| instance_variables.rb:95:53:95:61 | call to taint | instance_variables.rb:95:22:95:25 | [post] foo9 [@field] | provenance | | +| instance_variables.rb:95:53:95:61 | call to taint | instance_variables.rb:95:32:95:36 | [post] foo10 [@field] | provenance | | +| instance_variables.rb:96:6:96:9 | foo9 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | provenance | | +| instance_variables.rb:96:6:96:9 | foo9 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | provenance | | +| instance_variables.rb:96:6:96:9 | foo9 [@field] | instance_variables.rb:96:6:96:19 | call to get_field | provenance | | +| instance_variables.rb:97:6:97:10 | foo10 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | provenance | | +| instance_variables.rb:97:6:97:10 | foo10 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | provenance | | +| instance_variables.rb:97:6:97:10 | foo10 [@field] | instance_variables.rb:97:6:97:20 | call to get_field | provenance | | +| instance_variables.rb:100:5:100:5 | [post] x [@field] | instance_variables.rb:104:14:104:18 | [post] foo11 [@field] | provenance | | +| instance_variables.rb:100:5:100:5 | [post] x [@field] | instance_variables.rb:108:15:108:19 | [post] foo12 [@field] | provenance | | +| instance_variables.rb:100:5:100:5 | [post] x [@field] | instance_variables.rb:113:22:113:26 | [post] foo13 [@field] | provenance | | +| instance_variables.rb:100:17:100:25 | call to taint | captured_variables.rb:57:19:57:19 | x | provenance | | +| instance_variables.rb:100:17:100:25 | call to taint | instance_variables.rb:10:19:10:19 | x | provenance | | +| instance_variables.rb:100:17:100:25 | call to taint | instance_variables.rb:100:5:100:5 | [post] x [@field] | provenance | | +| instance_variables.rb:104:14:104:18 | [post] foo11 [@field] | instance_variables.rb:105:6:105:10 | foo11 [@field] | provenance | | +| instance_variables.rb:105:6:105:10 | foo11 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | provenance | | +| instance_variables.rb:105:6:105:10 | foo11 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | provenance | | +| instance_variables.rb:105:6:105:10 | foo11 [@field] | instance_variables.rb:105:6:105:20 | call to get_field | provenance | | +| instance_variables.rb:108:15:108:19 | [post] foo12 [@field] | instance_variables.rb:109:6:109:10 | foo12 [@field] | provenance | | +| instance_variables.rb:109:6:109:10 | foo12 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | provenance | | +| instance_variables.rb:109:6:109:10 | foo12 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | provenance | | +| instance_variables.rb:109:6:109:10 | foo12 [@field] | instance_variables.rb:109:6:109:20 | call to get_field | provenance | | +| instance_variables.rb:113:22:113:26 | [post] foo13 [@field] | instance_variables.rb:114:6:114:10 | foo13 [@field] | provenance | | +| instance_variables.rb:114:6:114:10 | foo13 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | provenance | | +| instance_variables.rb:114:6:114:10 | foo13 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | provenance | | +| instance_variables.rb:114:6:114:10 | foo13 [@field] | instance_variables.rb:114:6:114:20 | call to get_field | provenance | | +| instance_variables.rb:116:1:116:5 | foo15 [@field] | instance_variables.rb:117:6:117:10 | foo15 [@field] | provenance | | +| instance_variables.rb:116:9:116:26 | call to new [@field] | instance_variables.rb:116:1:116:5 | foo15 [@field] | provenance | | +| instance_variables.rb:116:17:116:25 | call to taint | instance_variables.rb:22:20:22:24 | field | provenance | | +| instance_variables.rb:116:17:116:25 | call to taint | instance_variables.rb:116:9:116:26 | call to new [@field] | provenance | | +| instance_variables.rb:117:6:117:10 | foo15 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | provenance | | +| instance_variables.rb:117:6:117:10 | foo15 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | provenance | | +| instance_variables.rb:117:6:117:10 | foo15 [@field] | instance_variables.rb:117:6:117:20 | call to get_field | provenance | | +| instance_variables.rb:119:6:119:10 | [post] foo16 [@field] | instance_variables.rb:120:6:120:10 | foo16 [@field] | provenance | | +| instance_variables.rb:119:28:119:36 | call to taint | instance_variables.rb:27:25:27:29 | field | provenance | | +| instance_variables.rb:119:28:119:36 | call to taint | instance_variables.rb:119:6:119:10 | [post] foo16 [@field] | provenance | | +| instance_variables.rb:120:6:120:10 | foo16 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | provenance | | +| instance_variables.rb:120:6:120:10 | foo16 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | provenance | | +| instance_variables.rb:120:6:120:10 | foo16 [@field] | instance_variables.rb:120:6:120:20 | call to get_field | provenance | | +| instance_variables.rb:121:1:121:3 | bar | instance_variables.rb:122:6:122:8 | bar | provenance | | +| instance_variables.rb:121:7:121:24 | call to new | instance_variables.rb:121:1:121:3 | bar | provenance | | nodes | blocks.rb:8:10:8:14 | yield ... | semmle.label | yield ... | | blocks.rb:14:12:14:20 | call to source | semmle.label | call to source | diff --git a/ruby/ql/test/library-tests/dataflow/hash-flow/hash-flow.expected b/ruby/ql/test/library-tests/dataflow/hash-flow/hash-flow.expected index 00372d87e00a..df37ffac47a0 100644 --- a/ruby/ql/test/library-tests/dataflow/hash-flow/hash-flow.expected +++ b/ruby/ql/test/library-tests/dataflow/hash-flow/hash-flow.expected @@ -1,981 +1,981 @@ testFailures edges -| hash_flow.rb:10:5:10:8 | hash [element 0] | hash_flow.rb:30:10:30:13 | hash [element 0] | -| hash_flow.rb:10:5:10:8 | hash [element :a] | hash_flow.rb:22:10:22:13 | hash [element :a] | -| hash_flow.rb:10:5:10:8 | hash [element :c] | hash_flow.rb:24:10:24:13 | hash [element :c] | -| hash_flow.rb:10:5:10:8 | hash [element e] | hash_flow.rb:26:10:26:13 | hash [element e] | -| hash_flow.rb:10:5:10:8 | hash [element g] | hash_flow.rb:28:10:28:13 | hash [element g] | -| hash_flow.rb:11:15:11:24 | call to taint | hash_flow.rb:10:5:10:8 | hash [element :a] | -| hash_flow.rb:13:12:13:21 | call to taint | hash_flow.rb:10:5:10:8 | hash [element :c] | -| hash_flow.rb:15:14:15:23 | call to taint | hash_flow.rb:10:5:10:8 | hash [element e] | -| hash_flow.rb:17:16:17:25 | call to taint | hash_flow.rb:10:5:10:8 | hash [element g] | -| hash_flow.rb:19:14:19:23 | call to taint | hash_flow.rb:10:5:10:8 | hash [element 0] | -| hash_flow.rb:22:10:22:13 | hash [element :a] | hash_flow.rb:22:10:22:17 | ...[...] | -| hash_flow.rb:24:10:24:13 | hash [element :c] | hash_flow.rb:24:10:24:17 | ...[...] | -| hash_flow.rb:26:10:26:13 | hash [element e] | hash_flow.rb:26:10:26:18 | ...[...] | -| hash_flow.rb:28:10:28:13 | hash [element g] | hash_flow.rb:28:10:28:18 | ...[...] | -| hash_flow.rb:30:10:30:13 | hash [element 0] | hash_flow.rb:30:10:30:16 | ...[...] | -| hash_flow.rb:38:5:38:8 | [post] hash [element 0] | hash_flow.rb:39:5:39:8 | hash [element 0] | -| hash_flow.rb:38:15:38:24 | call to taint | hash_flow.rb:38:5:38:8 | [post] hash [element 0] | -| hash_flow.rb:39:5:39:8 | [post] hash [element 0] | hash_flow.rb:40:5:40:8 | hash [element 0] | -| hash_flow.rb:39:5:39:8 | hash [element 0] | hash_flow.rb:39:5:39:8 | [post] hash [element 0] | -| hash_flow.rb:40:5:40:8 | [post] hash [element 0] | hash_flow.rb:41:5:41:8 | hash [element 0] | -| hash_flow.rb:40:5:40:8 | [post] hash [element :a] | hash_flow.rb:41:5:41:8 | hash [element :a] | -| hash_flow.rb:40:5:40:8 | hash [element 0] | hash_flow.rb:40:5:40:8 | [post] hash [element 0] | -| hash_flow.rb:40:16:40:25 | call to taint | hash_flow.rb:40:5:40:8 | [post] hash [element :a] | -| hash_flow.rb:41:5:41:8 | [post] hash [element 0] | hash_flow.rb:42:5:42:8 | hash [element 0] | -| hash_flow.rb:41:5:41:8 | [post] hash [element :a] | hash_flow.rb:42:5:42:8 | hash [element :a] | -| hash_flow.rb:41:5:41:8 | hash [element 0] | hash_flow.rb:41:5:41:8 | [post] hash [element 0] | -| hash_flow.rb:41:5:41:8 | hash [element :a] | hash_flow.rb:41:5:41:8 | [post] hash [element :a] | -| hash_flow.rb:42:5:42:8 | [post] hash [element 0] | hash_flow.rb:43:5:43:8 | hash [element 0] | -| hash_flow.rb:42:5:42:8 | [post] hash [element :a] | hash_flow.rb:43:5:43:8 | hash [element :a] | -| hash_flow.rb:42:5:42:8 | [post] hash [element a] | hash_flow.rb:43:5:43:8 | hash [element a] | -| hash_flow.rb:42:5:42:8 | hash [element 0] | hash_flow.rb:42:5:42:8 | [post] hash [element 0] | -| hash_flow.rb:42:5:42:8 | hash [element :a] | hash_flow.rb:42:5:42:8 | [post] hash [element :a] | -| hash_flow.rb:42:17:42:26 | call to taint | hash_flow.rb:42:5:42:8 | [post] hash [element a] | -| hash_flow.rb:43:5:43:8 | [post] hash [element 0] | hash_flow.rb:44:10:44:13 | hash [element 0] | -| hash_flow.rb:43:5:43:8 | [post] hash [element :a] | hash_flow.rb:46:10:46:13 | hash [element :a] | -| hash_flow.rb:43:5:43:8 | [post] hash [element a] | hash_flow.rb:48:10:48:13 | hash [element a] | -| hash_flow.rb:43:5:43:8 | hash [element 0] | hash_flow.rb:43:5:43:8 | [post] hash [element 0] | -| hash_flow.rb:43:5:43:8 | hash [element :a] | hash_flow.rb:43:5:43:8 | [post] hash [element :a] | -| hash_flow.rb:43:5:43:8 | hash [element a] | hash_flow.rb:43:5:43:8 | [post] hash [element a] | -| hash_flow.rb:44:10:44:13 | hash [element 0] | hash_flow.rb:44:10:44:16 | ...[...] | -| hash_flow.rb:46:10:46:13 | hash [element :a] | hash_flow.rb:46:10:46:17 | ...[...] | -| hash_flow.rb:48:10:48:13 | hash [element a] | hash_flow.rb:48:10:48:18 | ...[...] | -| hash_flow.rb:55:5:55:9 | hash1 [element :a] | hash_flow.rb:56:10:56:14 | hash1 [element :a] | -| hash_flow.rb:55:13:55:37 | ...[...] [element :a] | hash_flow.rb:55:5:55:9 | hash1 [element :a] | -| hash_flow.rb:55:21:55:30 | call to taint | hash_flow.rb:55:13:55:37 | ...[...] [element :a] | -| hash_flow.rb:56:10:56:14 | hash1 [element :a] | hash_flow.rb:56:10:56:18 | ...[...] | -| hash_flow.rb:59:5:59:5 | x [element :a] | hash_flow.rb:60:18:60:18 | x [element :a] | -| hash_flow.rb:59:13:59:22 | call to taint | hash_flow.rb:59:5:59:5 | x [element :a] | -| hash_flow.rb:60:5:60:9 | hash2 [element :a] | hash_flow.rb:61:10:61:14 | hash2 [element :a] | -| hash_flow.rb:60:13:60:19 | ...[...] [element :a] | hash_flow.rb:60:5:60:9 | hash2 [element :a] | -| hash_flow.rb:60:18:60:18 | x [element :a] | hash_flow.rb:60:13:60:19 | ...[...] [element :a] | -| hash_flow.rb:61:10:61:14 | hash2 [element :a] | hash_flow.rb:61:10:61:18 | ...[...] | -| hash_flow.rb:64:5:64:9 | hash3 [element] | hash_flow.rb:65:10:65:14 | hash3 [element] | -| hash_flow.rb:64:5:64:9 | hash3 [element] | hash_flow.rb:66:10:66:14 | hash3 [element] | -| hash_flow.rb:64:13:64:45 | ...[...] [element] | hash_flow.rb:64:5:64:9 | hash3 [element] | -| hash_flow.rb:64:24:64:33 | call to taint | hash_flow.rb:64:13:64:45 | ...[...] [element] | -| hash_flow.rb:65:10:65:14 | hash3 [element] | hash_flow.rb:65:10:65:18 | ...[...] | -| hash_flow.rb:66:10:66:14 | hash3 [element] | hash_flow.rb:66:10:66:18 | ...[...] | -| hash_flow.rb:68:5:68:9 | hash4 [element :a] | hash_flow.rb:69:10:69:14 | hash4 [element :a] | -| hash_flow.rb:68:13:68:39 | ...[...] [element :a] | hash_flow.rb:68:5:68:9 | hash4 [element :a] | -| hash_flow.rb:68:22:68:31 | call to taint | hash_flow.rb:68:13:68:39 | ...[...] [element :a] | -| hash_flow.rb:69:10:69:14 | hash4 [element :a] | hash_flow.rb:69:10:69:18 | ...[...] | -| hash_flow.rb:72:5:72:9 | hash5 [element a] | hash_flow.rb:73:10:73:14 | hash5 [element a] | -| hash_flow.rb:72:13:72:45 | ...[...] [element a] | hash_flow.rb:72:5:72:9 | hash5 [element a] | -| hash_flow.rb:72:25:72:34 | call to taint | hash_flow.rb:72:13:72:45 | ...[...] [element a] | -| hash_flow.rb:73:10:73:14 | hash5 [element a] | hash_flow.rb:73:10:73:19 | ...[...] | -| hash_flow.rb:76:5:76:9 | hash6 [element a] | hash_flow.rb:77:10:77:14 | hash6 [element a] | -| hash_flow.rb:76:13:76:47 | ...[...] [element a] | hash_flow.rb:76:5:76:9 | hash6 [element a] | -| hash_flow.rb:76:26:76:35 | call to taint | hash_flow.rb:76:13:76:47 | ...[...] [element a] | -| hash_flow.rb:77:10:77:14 | hash6 [element a] | hash_flow.rb:77:10:77:19 | ...[...] | -| hash_flow.rb:84:5:84:9 | hash1 [element :a] | hash_flow.rb:85:10:85:14 | hash1 [element :a] | -| hash_flow.rb:84:13:84:42 | call to [] [element :a] | hash_flow.rb:84:5:84:9 | hash1 [element :a] | -| hash_flow.rb:84:26:84:35 | call to taint | hash_flow.rb:84:13:84:42 | call to [] [element :a] | -| hash_flow.rb:85:10:85:14 | hash1 [element :a] | hash_flow.rb:85:10:85:18 | ...[...] | -| hash_flow.rb:92:5:92:8 | hash [element :a] | hash_flow.rb:96:30:96:33 | hash [element :a] | -| hash_flow.rb:93:15:93:24 | call to taint | hash_flow.rb:92:5:92:8 | hash [element :a] | -| hash_flow.rb:96:5:96:9 | hash2 [element :a] | hash_flow.rb:97:10:97:14 | hash2 [element :a] | -| hash_flow.rb:96:13:96:34 | call to try_convert [element :a] | hash_flow.rb:96:5:96:9 | hash2 [element :a] | -| hash_flow.rb:96:30:96:33 | hash [element :a] | hash_flow.rb:96:13:96:34 | call to try_convert [element :a] | -| hash_flow.rb:97:10:97:14 | hash2 [element :a] | hash_flow.rb:97:10:97:18 | ...[...] | -| hash_flow.rb:105:5:105:5 | b | hash_flow.rb:106:10:106:10 | b | -| hash_flow.rb:105:21:105:30 | call to taint | hash_flow.rb:105:5:105:5 | b | -| hash_flow.rb:113:5:113:5 | b | hash_flow.rb:115:10:115:10 | b | -| hash_flow.rb:113:9:113:12 | [post] hash [element :a] | hash_flow.rb:114:10:114:13 | hash [element :a] | -| hash_flow.rb:113:9:113:34 | call to store | hash_flow.rb:113:5:113:5 | b | -| hash_flow.rb:113:24:113:33 | call to taint | hash_flow.rb:113:9:113:12 | [post] hash [element :a] | -| hash_flow.rb:113:24:113:33 | call to taint | hash_flow.rb:113:9:113:34 | call to store | -| hash_flow.rb:114:10:114:13 | hash [element :a] | hash_flow.rb:114:10:114:17 | ...[...] | -| hash_flow.rb:118:5:118:5 | c | hash_flow.rb:121:10:121:10 | c | -| hash_flow.rb:118:9:118:12 | [post] hash [element] | hash_flow.rb:119:10:119:13 | hash [element] | -| hash_flow.rb:118:9:118:12 | [post] hash [element] | hash_flow.rb:120:10:120:13 | hash [element] | -| hash_flow.rb:118:9:118:33 | call to store | hash_flow.rb:118:5:118:5 | c | -| hash_flow.rb:118:23:118:32 | call to taint | hash_flow.rb:118:9:118:12 | [post] hash [element] | -| hash_flow.rb:118:23:118:32 | call to taint | hash_flow.rb:118:9:118:33 | call to store | -| hash_flow.rb:119:10:119:13 | hash [element] | hash_flow.rb:119:10:119:17 | ...[...] | -| hash_flow.rb:120:10:120:13 | hash [element] | hash_flow.rb:120:10:120:17 | ...[...] | -| hash_flow.rb:127:5:127:8 | hash [element :a] | hash_flow.rb:131:5:131:8 | hash [element :a] | -| hash_flow.rb:127:5:127:8 | hash [element :a] | hash_flow.rb:134:5:134:8 | hash [element :a] | -| hash_flow.rb:128:15:128:24 | call to taint | hash_flow.rb:127:5:127:8 | hash [element :a] | -| hash_flow.rb:131:5:131:8 | hash [element :a] | hash_flow.rb:131:18:131:29 | key_or_value | -| hash_flow.rb:131:18:131:29 | key_or_value | hash_flow.rb:132:14:132:25 | key_or_value | -| hash_flow.rb:134:5:134:8 | hash [element :a] | hash_flow.rb:134:22:134:26 | value | -| hash_flow.rb:134:22:134:26 | value | hash_flow.rb:136:14:136:18 | value | -| hash_flow.rb:143:5:143:8 | hash [element :a] | hash_flow.rb:147:9:147:12 | hash [element :a] | -| hash_flow.rb:143:5:143:8 | hash [element :a] | hash_flow.rb:151:9:151:12 | hash [element :a] | -| hash_flow.rb:144:15:144:25 | call to taint | hash_flow.rb:143:5:143:8 | hash [element :a] | -| hash_flow.rb:147:5:147:5 | b [element 1] | hash_flow.rb:149:10:149:10 | b [element 1] | -| hash_flow.rb:147:5:147:5 | b [element 1] | hash_flow.rb:150:10:150:10 | b [element 1] | -| hash_flow.rb:147:9:147:12 | hash [element :a] | hash_flow.rb:147:9:147:22 | call to assoc [element 1] | -| hash_flow.rb:147:9:147:22 | call to assoc [element 1] | hash_flow.rb:147:5:147:5 | b [element 1] | -| hash_flow.rb:149:10:149:10 | b [element 1] | hash_flow.rb:149:10:149:13 | ...[...] | -| hash_flow.rb:150:10:150:10 | b [element 1] | hash_flow.rb:150:10:150:13 | ...[...] | -| hash_flow.rb:151:5:151:5 | c [element 1] | hash_flow.rb:152:10:152:10 | c [element 1] | -| hash_flow.rb:151:9:151:12 | hash [element :a] | hash_flow.rb:151:9:151:21 | call to assoc [element 1] | -| hash_flow.rb:151:9:151:21 | call to assoc [element 1] | hash_flow.rb:151:5:151:5 | c [element 1] | -| hash_flow.rb:152:10:152:10 | c [element 1] | hash_flow.rb:152:10:152:13 | ...[...] | -| hash_flow.rb:169:5:169:8 | hash [element :a] | hash_flow.rb:173:9:173:12 | hash [element :a] | -| hash_flow.rb:170:15:170:25 | call to taint | hash_flow.rb:169:5:169:8 | hash [element :a] | -| hash_flow.rb:173:5:173:5 | a [element :a] | hash_flow.rb:174:10:174:10 | a [element :a] | -| hash_flow.rb:173:9:173:12 | hash [element :a] | hash_flow.rb:173:9:173:20 | call to compact [element :a] | -| hash_flow.rb:173:9:173:20 | call to compact [element :a] | hash_flow.rb:173:5:173:5 | a [element :a] | -| hash_flow.rb:174:10:174:10 | a [element :a] | hash_flow.rb:174:10:174:14 | ...[...] | -| hash_flow.rb:181:5:181:8 | hash [element :a] | hash_flow.rb:185:9:185:12 | hash [element :a] | -| hash_flow.rb:182:15:182:25 | call to taint | hash_flow.rb:181:5:181:8 | hash [element :a] | -| hash_flow.rb:185:5:185:5 | a | hash_flow.rb:186:10:186:10 | a | -| hash_flow.rb:185:9:185:12 | hash [element :a] | hash_flow.rb:185:9:185:23 | call to delete | -| hash_flow.rb:185:9:185:23 | call to delete | hash_flow.rb:185:5:185:5 | a | -| hash_flow.rb:193:5:193:8 | hash [element :a] | hash_flow.rb:197:9:197:12 | hash [element :a] | -| hash_flow.rb:194:15:194:25 | call to taint | hash_flow.rb:193:5:193:8 | hash [element :a] | -| hash_flow.rb:197:5:197:5 | a [element :a] | hash_flow.rb:201:10:201:10 | a [element :a] | -| hash_flow.rb:197:9:197:12 | [post] hash [element :a] | hash_flow.rb:202:10:202:13 | hash [element :a] | -| hash_flow.rb:197:9:197:12 | hash [element :a] | hash_flow.rb:197:9:197:12 | [post] hash [element :a] | -| hash_flow.rb:197:9:197:12 | hash [element :a] | hash_flow.rb:197:9:200:7 | call to delete_if [element :a] | -| hash_flow.rb:197:9:197:12 | hash [element :a] | hash_flow.rb:197:33:197:37 | value | -| hash_flow.rb:197:9:200:7 | call to delete_if [element :a] | hash_flow.rb:197:5:197:5 | a [element :a] | -| hash_flow.rb:197:33:197:37 | value | hash_flow.rb:199:14:199:18 | value | -| hash_flow.rb:201:10:201:10 | a [element :a] | hash_flow.rb:201:10:201:14 | ...[...] | -| hash_flow.rb:202:10:202:13 | hash [element :a] | hash_flow.rb:202:10:202:17 | ...[...] | -| hash_flow.rb:209:5:209:8 | hash [element :a] | hash_flow.rb:217:10:217:13 | hash [element :a] | -| hash_flow.rb:209:5:209:8 | hash [element :c, element :d] | hash_flow.rb:219:10:219:13 | hash [element :c, element :d] | -| hash_flow.rb:210:15:210:25 | call to taint | hash_flow.rb:209:5:209:8 | hash [element :a] | -| hash_flow.rb:213:19:213:29 | call to taint | hash_flow.rb:209:5:209:8 | hash [element :c, element :d] | -| hash_flow.rb:217:10:217:13 | hash [element :a] | hash_flow.rb:217:10:217:21 | call to dig | -| hash_flow.rb:219:10:219:13 | hash [element :c, element :d] | hash_flow.rb:219:10:219:24 | call to dig | -| hash_flow.rb:226:5:226:8 | hash [element :a] | hash_flow.rb:230:9:230:12 | hash [element :a] | -| hash_flow.rb:227:15:227:25 | call to taint | hash_flow.rb:226:5:226:8 | hash [element :a] | -| hash_flow.rb:230:5:230:5 | x [element :a] | hash_flow.rb:234:10:234:10 | x [element :a] | -| hash_flow.rb:230:9:230:12 | hash [element :a] | hash_flow.rb:230:9:233:7 | call to each [element :a] | -| hash_flow.rb:230:9:230:12 | hash [element :a] | hash_flow.rb:230:28:230:32 | value | -| hash_flow.rb:230:9:233:7 | call to each [element :a] | hash_flow.rb:230:5:230:5 | x [element :a] | -| hash_flow.rb:230:28:230:32 | value | hash_flow.rb:232:14:232:18 | value | -| hash_flow.rb:234:10:234:10 | x [element :a] | hash_flow.rb:234:10:234:14 | ...[...] | -| hash_flow.rb:241:5:241:8 | hash [element :a] | hash_flow.rb:245:9:245:12 | hash [element :a] | -| hash_flow.rb:242:15:242:25 | call to taint | hash_flow.rb:241:5:241:8 | hash [element :a] | -| hash_flow.rb:245:5:245:5 | x [element :a] | hash_flow.rb:248:10:248:10 | x [element :a] | -| hash_flow.rb:245:9:245:12 | hash [element :a] | hash_flow.rb:245:9:247:7 | call to each_key [element :a] | -| hash_flow.rb:245:9:247:7 | call to each_key [element :a] | hash_flow.rb:245:5:245:5 | x [element :a] | -| hash_flow.rb:248:10:248:10 | x [element :a] | hash_flow.rb:248:10:248:14 | ...[...] | -| hash_flow.rb:255:5:255:8 | hash [element :a] | hash_flow.rb:259:9:259:12 | hash [element :a] | -| hash_flow.rb:256:15:256:25 | call to taint | hash_flow.rb:255:5:255:8 | hash [element :a] | -| hash_flow.rb:259:5:259:5 | x [element :a] | hash_flow.rb:263:10:263:10 | x [element :a] | -| hash_flow.rb:259:9:259:12 | hash [element :a] | hash_flow.rb:259:9:262:7 | call to each_pair [element :a] | -| hash_flow.rb:259:9:259:12 | hash [element :a] | hash_flow.rb:259:33:259:37 | value | -| hash_flow.rb:259:9:262:7 | call to each_pair [element :a] | hash_flow.rb:259:5:259:5 | x [element :a] | -| hash_flow.rb:259:33:259:37 | value | hash_flow.rb:261:14:261:18 | value | -| hash_flow.rb:263:10:263:10 | x [element :a] | hash_flow.rb:263:10:263:14 | ...[...] | -| hash_flow.rb:270:5:270:8 | hash [element :a] | hash_flow.rb:274:9:274:12 | hash [element :a] | -| hash_flow.rb:271:15:271:25 | call to taint | hash_flow.rb:270:5:270:8 | hash [element :a] | -| hash_flow.rb:274:5:274:5 | x [element :a] | hash_flow.rb:277:10:277:10 | x [element :a] | -| hash_flow.rb:274:9:274:12 | hash [element :a] | hash_flow.rb:274:9:276:7 | call to each_value [element :a] | -| hash_flow.rb:274:9:274:12 | hash [element :a] | hash_flow.rb:274:29:274:33 | value | -| hash_flow.rb:274:9:276:7 | call to each_value [element :a] | hash_flow.rb:274:5:274:5 | x [element :a] | -| hash_flow.rb:274:29:274:33 | value | hash_flow.rb:275:14:275:18 | value | -| hash_flow.rb:277:10:277:10 | x [element :a] | hash_flow.rb:277:10:277:14 | ...[...] | -| hash_flow.rb:284:5:284:8 | hash [element :c] | hash_flow.rb:290:9:290:12 | hash [element :c] | -| hash_flow.rb:287:15:287:25 | call to taint | hash_flow.rb:284:5:284:8 | hash [element :c] | -| hash_flow.rb:290:5:290:5 | x [element :c] | hash_flow.rb:293:10:293:10 | x [element :c] | -| hash_flow.rb:290:9:290:12 | hash [element :c] | hash_flow.rb:290:9:290:28 | call to except [element :c] | -| hash_flow.rb:290:9:290:28 | call to except [element :c] | hash_flow.rb:290:5:290:5 | x [element :c] | -| hash_flow.rb:293:10:293:10 | x [element :c] | hash_flow.rb:293:10:293:14 | ...[...] | -| hash_flow.rb:300:5:300:8 | hash [element :a] | hash_flow.rb:305:9:305:12 | hash [element :a] | -| hash_flow.rb:300:5:300:8 | hash [element :a] | hash_flow.rb:309:9:309:12 | hash [element :a] | -| hash_flow.rb:300:5:300:8 | hash [element :a] | hash_flow.rb:311:9:311:12 | hash [element :a] | -| hash_flow.rb:300:5:300:8 | hash [element :a] | hash_flow.rb:315:9:315:12 | hash [element :a] | -| hash_flow.rb:300:5:300:8 | hash [element :c] | hash_flow.rb:305:9:305:12 | hash [element :c] | -| hash_flow.rb:300:5:300:8 | hash [element :c] | hash_flow.rb:315:9:315:12 | hash [element :c] | -| hash_flow.rb:301:15:301:25 | call to taint | hash_flow.rb:300:5:300:8 | hash [element :a] | -| hash_flow.rb:303:15:303:25 | call to taint | hash_flow.rb:300:5:300:8 | hash [element :c] | -| hash_flow.rb:305:5:305:5 | b | hash_flow.rb:308:10:308:10 | b | -| hash_flow.rb:305:9:305:12 | hash [element :a] | hash_flow.rb:305:9:307:7 | call to fetch | -| hash_flow.rb:305:9:305:12 | hash [element :c] | hash_flow.rb:305:9:307:7 | call to fetch | -| hash_flow.rb:305:9:307:7 | call to fetch | hash_flow.rb:305:5:305:5 | b | -| hash_flow.rb:305:20:305:30 | call to taint | hash_flow.rb:305:37:305:37 | x | -| hash_flow.rb:305:37:305:37 | x | hash_flow.rb:306:14:306:14 | x | -| hash_flow.rb:309:5:309:5 | b | hash_flow.rb:310:10:310:10 | b | -| hash_flow.rb:309:9:309:12 | hash [element :a] | hash_flow.rb:309:9:309:22 | call to fetch | -| hash_flow.rb:309:9:309:22 | call to fetch | hash_flow.rb:309:5:309:5 | b | -| hash_flow.rb:311:5:311:5 | b | hash_flow.rb:312:10:312:10 | b | -| hash_flow.rb:311:9:311:12 | hash [element :a] | hash_flow.rb:311:9:311:35 | call to fetch | -| hash_flow.rb:311:9:311:35 | call to fetch | hash_flow.rb:311:5:311:5 | b | -| hash_flow.rb:311:24:311:34 | call to taint | hash_flow.rb:311:9:311:35 | call to fetch | -| hash_flow.rb:313:5:313:5 | b | hash_flow.rb:314:10:314:10 | b | -| hash_flow.rb:313:9:313:35 | call to fetch | hash_flow.rb:313:5:313:5 | b | -| hash_flow.rb:313:24:313:34 | call to taint | hash_flow.rb:313:9:313:35 | call to fetch | -| hash_flow.rb:315:5:315:5 | b | hash_flow.rb:316:10:316:10 | b | -| hash_flow.rb:315:9:315:12 | hash [element :a] | hash_flow.rb:315:9:315:34 | call to fetch | -| hash_flow.rb:315:9:315:12 | hash [element :c] | hash_flow.rb:315:9:315:34 | call to fetch | -| hash_flow.rb:315:9:315:34 | call to fetch | hash_flow.rb:315:5:315:5 | b | -| hash_flow.rb:315:23:315:33 | call to taint | hash_flow.rb:315:9:315:34 | call to fetch | -| hash_flow.rb:322:5:322:8 | hash [element :a] | hash_flow.rb:327:9:327:12 | hash [element :a] | -| hash_flow.rb:322:5:322:8 | hash [element :a] | hash_flow.rb:332:9:332:12 | hash [element :a] | -| hash_flow.rb:322:5:322:8 | hash [element :a] | hash_flow.rb:334:9:334:12 | hash [element :a] | -| hash_flow.rb:322:5:322:8 | hash [element :c] | hash_flow.rb:327:9:327:12 | hash [element :c] | -| hash_flow.rb:322:5:322:8 | hash [element :c] | hash_flow.rb:334:9:334:12 | hash [element :c] | -| hash_flow.rb:323:15:323:25 | call to taint | hash_flow.rb:322:5:322:8 | hash [element :a] | -| hash_flow.rb:325:15:325:25 | call to taint | hash_flow.rb:322:5:322:8 | hash [element :c] | -| hash_flow.rb:327:5:327:5 | b [element] | hash_flow.rb:331:10:331:10 | b [element] | -| hash_flow.rb:327:9:327:12 | hash [element :a] | hash_flow.rb:327:9:330:7 | call to fetch_values [element] | -| hash_flow.rb:327:9:327:12 | hash [element :c] | hash_flow.rb:327:9:330:7 | call to fetch_values [element] | -| hash_flow.rb:327:9:330:7 | call to fetch_values [element] | hash_flow.rb:327:5:327:5 | b [element] | -| hash_flow.rb:327:27:327:37 | call to taint | hash_flow.rb:327:44:327:44 | x | -| hash_flow.rb:327:44:327:44 | x | hash_flow.rb:328:14:328:14 | x | -| hash_flow.rb:329:9:329:19 | call to taint | hash_flow.rb:327:9:330:7 | call to fetch_values [element] | -| hash_flow.rb:331:10:331:10 | b [element] | hash_flow.rb:331:10:331:13 | ...[...] | -| hash_flow.rb:332:5:332:5 | b [element] | hash_flow.rb:333:10:333:10 | b [element] | -| hash_flow.rb:332:9:332:12 | hash [element :a] | hash_flow.rb:332:9:332:29 | call to fetch_values [element] | -| hash_flow.rb:332:9:332:29 | call to fetch_values [element] | hash_flow.rb:332:5:332:5 | b [element] | -| hash_flow.rb:333:10:333:10 | b [element] | hash_flow.rb:333:10:333:13 | ...[...] | -| hash_flow.rb:334:5:334:5 | b [element] | hash_flow.rb:335:10:335:10 | b [element] | -| hash_flow.rb:334:9:334:12 | hash [element :a] | hash_flow.rb:334:9:334:31 | call to fetch_values [element] | -| hash_flow.rb:334:9:334:12 | hash [element :c] | hash_flow.rb:334:9:334:31 | call to fetch_values [element] | -| hash_flow.rb:334:9:334:31 | call to fetch_values [element] | hash_flow.rb:334:5:334:5 | b [element] | -| hash_flow.rb:335:10:335:10 | b [element] | hash_flow.rb:335:10:335:13 | ...[...] | -| hash_flow.rb:341:5:341:8 | hash [element :a] | hash_flow.rb:346:9:346:12 | hash [element :a] | -| hash_flow.rb:341:5:341:8 | hash [element :c] | hash_flow.rb:346:9:346:12 | hash [element :c] | -| hash_flow.rb:342:15:342:25 | call to taint | hash_flow.rb:341:5:341:8 | hash [element :a] | -| hash_flow.rb:344:15:344:25 | call to taint | hash_flow.rb:341:5:341:8 | hash [element :c] | -| hash_flow.rb:346:5:346:5 | b [element :a] | hash_flow.rb:351:11:351:11 | b [element :a] | -| hash_flow.rb:346:9:346:12 | hash [element :a] | hash_flow.rb:346:9:350:7 | call to filter [element :a] | -| hash_flow.rb:346:9:346:12 | hash [element :a] | hash_flow.rb:346:30:346:34 | value | -| hash_flow.rb:346:9:346:12 | hash [element :c] | hash_flow.rb:346:30:346:34 | value | -| hash_flow.rb:346:9:350:7 | call to filter [element :a] | hash_flow.rb:346:5:346:5 | b [element :a] | -| hash_flow.rb:346:30:346:34 | value | hash_flow.rb:348:14:348:18 | value | -| hash_flow.rb:351:11:351:11 | b [element :a] | hash_flow.rb:351:11:351:15 | ...[...] | -| hash_flow.rb:351:11:351:15 | ...[...] | hash_flow.rb:351:10:351:16 | ( ... ) | -| hash_flow.rb:357:5:357:8 | hash [element :a] | hash_flow.rb:362:5:362:8 | hash [element :a] | -| hash_flow.rb:357:5:357:8 | hash [element :c] | hash_flow.rb:362:5:362:8 | hash [element :c] | -| hash_flow.rb:358:15:358:25 | call to taint | hash_flow.rb:357:5:357:8 | hash [element :a] | -| hash_flow.rb:360:15:360:25 | call to taint | hash_flow.rb:357:5:357:8 | hash [element :c] | -| hash_flow.rb:362:5:362:8 | [post] hash [element :a] | hash_flow.rb:367:11:367:14 | hash [element :a] | -| hash_flow.rb:362:5:362:8 | hash [element :a] | hash_flow.rb:362:5:362:8 | [post] hash [element :a] | -| hash_flow.rb:362:5:362:8 | hash [element :a] | hash_flow.rb:362:27:362:31 | value | -| hash_flow.rb:362:5:362:8 | hash [element :c] | hash_flow.rb:362:27:362:31 | value | -| hash_flow.rb:362:27:362:31 | value | hash_flow.rb:364:14:364:18 | value | -| hash_flow.rb:367:11:367:14 | hash [element :a] | hash_flow.rb:367:11:367:18 | ...[...] | -| hash_flow.rb:367:11:367:18 | ...[...] | hash_flow.rb:367:10:367:19 | ( ... ) | -| hash_flow.rb:373:5:373:8 | hash [element :a] | hash_flow.rb:378:9:378:12 | hash [element :a] | -| hash_flow.rb:373:5:373:8 | hash [element :c] | hash_flow.rb:378:9:378:12 | hash [element :c] | -| hash_flow.rb:374:15:374:25 | call to taint | hash_flow.rb:373:5:373:8 | hash [element :a] | -| hash_flow.rb:376:15:376:25 | call to taint | hash_flow.rb:373:5:373:8 | hash [element :c] | -| hash_flow.rb:378:5:378:5 | b [element] | hash_flow.rb:379:11:379:11 | b [element] | -| hash_flow.rb:378:9:378:12 | hash [element :a] | hash_flow.rb:378:9:378:20 | call to flatten [element] | -| hash_flow.rb:378:9:378:12 | hash [element :c] | hash_flow.rb:378:9:378:20 | call to flatten [element] | -| hash_flow.rb:378:9:378:20 | call to flatten [element] | hash_flow.rb:378:5:378:5 | b [element] | -| hash_flow.rb:379:11:379:11 | b [element] | hash_flow.rb:379:11:379:14 | ...[...] | -| hash_flow.rb:379:11:379:14 | ...[...] | hash_flow.rb:379:10:379:15 | ( ... ) | -| hash_flow.rb:385:5:385:8 | hash [element :a] | hash_flow.rb:390:9:390:12 | hash [element :a] | -| hash_flow.rb:385:5:385:8 | hash [element :c] | hash_flow.rb:390:9:390:12 | hash [element :c] | -| hash_flow.rb:386:15:386:25 | call to taint | hash_flow.rb:385:5:385:8 | hash [element :a] | -| hash_flow.rb:388:15:388:25 | call to taint | hash_flow.rb:385:5:385:8 | hash [element :c] | -| hash_flow.rb:390:5:390:5 | b [element :a] | hash_flow.rb:396:11:396:11 | b [element :a] | -| hash_flow.rb:390:9:390:12 | [post] hash [element :a] | hash_flow.rb:395:11:395:14 | hash [element :a] | -| hash_flow.rb:390:9:390:12 | hash [element :a] | hash_flow.rb:390:9:390:12 | [post] hash [element :a] | -| hash_flow.rb:390:9:390:12 | hash [element :a] | hash_flow.rb:390:9:394:7 | call to keep_if [element :a] | -| hash_flow.rb:390:9:390:12 | hash [element :a] | hash_flow.rb:390:31:390:35 | value | -| hash_flow.rb:390:9:390:12 | hash [element :c] | hash_flow.rb:390:31:390:35 | value | -| hash_flow.rb:390:9:394:7 | call to keep_if [element :a] | hash_flow.rb:390:5:390:5 | b [element :a] | -| hash_flow.rb:390:31:390:35 | value | hash_flow.rb:392:14:392:18 | value | -| hash_flow.rb:395:11:395:14 | hash [element :a] | hash_flow.rb:395:11:395:18 | ...[...] | -| hash_flow.rb:395:11:395:18 | ...[...] | hash_flow.rb:395:10:395:19 | ( ... ) | -| hash_flow.rb:396:11:396:11 | b [element :a] | hash_flow.rb:396:11:396:15 | ...[...] | -| hash_flow.rb:396:11:396:15 | ...[...] | hash_flow.rb:396:10:396:16 | ( ... ) | -| hash_flow.rb:402:5:402:9 | hash1 [element :a] | hash_flow.rb:412:12:412:16 | hash1 [element :a] | -| hash_flow.rb:402:5:402:9 | hash1 [element :c] | hash_flow.rb:412:12:412:16 | hash1 [element :c] | -| hash_flow.rb:403:15:403:25 | call to taint | hash_flow.rb:402:5:402:9 | hash1 [element :a] | -| hash_flow.rb:405:15:405:25 | call to taint | hash_flow.rb:402:5:402:9 | hash1 [element :c] | -| hash_flow.rb:407:5:407:9 | hash2 [element :d] | hash_flow.rb:412:24:412:28 | hash2 [element :d] | -| hash_flow.rb:407:5:407:9 | hash2 [element :f] | hash_flow.rb:412:24:412:28 | hash2 [element :f] | -| hash_flow.rb:408:15:408:25 | call to taint | hash_flow.rb:407:5:407:9 | hash2 [element :d] | -| hash_flow.rb:410:15:410:25 | call to taint | hash_flow.rb:407:5:407:9 | hash2 [element :f] | -| hash_flow.rb:412:5:412:8 | hash [element :a] | hash_flow.rb:417:11:417:14 | hash [element :a] | -| hash_flow.rb:412:5:412:8 | hash [element :c] | hash_flow.rb:419:11:419:14 | hash [element :c] | -| hash_flow.rb:412:5:412:8 | hash [element :d] | hash_flow.rb:420:11:420:14 | hash [element :d] | -| hash_flow.rb:412:5:412:8 | hash [element :f] | hash_flow.rb:422:11:422:14 | hash [element :f] | -| hash_flow.rb:412:12:412:16 | hash1 [element :a] | hash_flow.rb:412:12:416:7 | call to merge [element :a] | -| hash_flow.rb:412:12:412:16 | hash1 [element :a] | hash_flow.rb:412:40:412:48 | old_value | -| hash_flow.rb:412:12:412:16 | hash1 [element :a] | hash_flow.rb:412:51:412:59 | new_value | -| hash_flow.rb:412:12:412:16 | hash1 [element :c] | hash_flow.rb:412:12:416:7 | call to merge [element :c] | -| hash_flow.rb:412:12:412:16 | hash1 [element :c] | hash_flow.rb:412:40:412:48 | old_value | -| hash_flow.rb:412:12:412:16 | hash1 [element :c] | hash_flow.rb:412:51:412:59 | new_value | -| hash_flow.rb:412:12:416:7 | call to merge [element :a] | hash_flow.rb:412:5:412:8 | hash [element :a] | -| hash_flow.rb:412:12:416:7 | call to merge [element :c] | hash_flow.rb:412:5:412:8 | hash [element :c] | -| hash_flow.rb:412:12:416:7 | call to merge [element :d] | hash_flow.rb:412:5:412:8 | hash [element :d] | -| hash_flow.rb:412:12:416:7 | call to merge [element :f] | hash_flow.rb:412:5:412:8 | hash [element :f] | -| hash_flow.rb:412:24:412:28 | hash2 [element :d] | hash_flow.rb:412:12:416:7 | call to merge [element :d] | -| hash_flow.rb:412:24:412:28 | hash2 [element :d] | hash_flow.rb:412:40:412:48 | old_value | -| hash_flow.rb:412:24:412:28 | hash2 [element :d] | hash_flow.rb:412:51:412:59 | new_value | -| hash_flow.rb:412:24:412:28 | hash2 [element :f] | hash_flow.rb:412:12:416:7 | call to merge [element :f] | -| hash_flow.rb:412:24:412:28 | hash2 [element :f] | hash_flow.rb:412:40:412:48 | old_value | -| hash_flow.rb:412:24:412:28 | hash2 [element :f] | hash_flow.rb:412:51:412:59 | new_value | -| hash_flow.rb:412:40:412:48 | old_value | hash_flow.rb:414:14:414:22 | old_value | -| hash_flow.rb:412:51:412:59 | new_value | hash_flow.rb:415:14:415:22 | new_value | -| hash_flow.rb:417:11:417:14 | hash [element :a] | hash_flow.rb:417:11:417:18 | ...[...] | -| hash_flow.rb:417:11:417:18 | ...[...] | hash_flow.rb:417:10:417:19 | ( ... ) | -| hash_flow.rb:419:11:419:14 | hash [element :c] | hash_flow.rb:419:11:419:18 | ...[...] | -| hash_flow.rb:419:11:419:18 | ...[...] | hash_flow.rb:419:10:419:19 | ( ... ) | -| hash_flow.rb:420:11:420:14 | hash [element :d] | hash_flow.rb:420:11:420:18 | ...[...] | -| hash_flow.rb:420:11:420:18 | ...[...] | hash_flow.rb:420:10:420:19 | ( ... ) | -| hash_flow.rb:422:11:422:14 | hash [element :f] | hash_flow.rb:422:11:422:18 | ...[...] | -| hash_flow.rb:422:11:422:18 | ...[...] | hash_flow.rb:422:10:422:19 | ( ... ) | -| hash_flow.rb:428:5:428:9 | hash1 [element :a] | hash_flow.rb:438:12:438:16 | hash1 [element :a] | -| hash_flow.rb:428:5:428:9 | hash1 [element :c] | hash_flow.rb:438:12:438:16 | hash1 [element :c] | -| hash_flow.rb:429:15:429:25 | call to taint | hash_flow.rb:428:5:428:9 | hash1 [element :a] | -| hash_flow.rb:431:15:431:25 | call to taint | hash_flow.rb:428:5:428:9 | hash1 [element :c] | -| hash_flow.rb:433:5:433:9 | hash2 [element :d] | hash_flow.rb:438:25:438:29 | hash2 [element :d] | -| hash_flow.rb:433:5:433:9 | hash2 [element :f] | hash_flow.rb:438:25:438:29 | hash2 [element :f] | -| hash_flow.rb:434:15:434:25 | call to taint | hash_flow.rb:433:5:433:9 | hash2 [element :d] | -| hash_flow.rb:436:15:436:25 | call to taint | hash_flow.rb:433:5:433:9 | hash2 [element :f] | -| hash_flow.rb:438:5:438:8 | hash [element :a] | hash_flow.rb:443:11:443:14 | hash [element :a] | -| hash_flow.rb:438:5:438:8 | hash [element :c] | hash_flow.rb:445:11:445:14 | hash [element :c] | -| hash_flow.rb:438:5:438:8 | hash [element :d] | hash_flow.rb:446:11:446:14 | hash [element :d] | -| hash_flow.rb:438:5:438:8 | hash [element :f] | hash_flow.rb:448:11:448:14 | hash [element :f] | -| hash_flow.rb:438:12:438:16 | [post] hash1 [element :a] | hash_flow.rb:450:11:450:15 | hash1 [element :a] | -| hash_flow.rb:438:12:438:16 | [post] hash1 [element :c] | hash_flow.rb:452:11:452:15 | hash1 [element :c] | -| hash_flow.rb:438:12:438:16 | [post] hash1 [element :d] | hash_flow.rb:453:11:453:15 | hash1 [element :d] | -| hash_flow.rb:438:12:438:16 | [post] hash1 [element :f] | hash_flow.rb:455:11:455:15 | hash1 [element :f] | -| hash_flow.rb:438:12:438:16 | hash1 [element :a] | hash_flow.rb:438:12:438:16 | [post] hash1 [element :a] | -| hash_flow.rb:438:12:438:16 | hash1 [element :a] | hash_flow.rb:438:12:442:7 | call to merge! [element :a] | -| hash_flow.rb:438:12:438:16 | hash1 [element :a] | hash_flow.rb:438:41:438:49 | old_value | -| hash_flow.rb:438:12:438:16 | hash1 [element :a] | hash_flow.rb:438:52:438:60 | new_value | -| hash_flow.rb:438:12:438:16 | hash1 [element :c] | hash_flow.rb:438:12:438:16 | [post] hash1 [element :c] | -| hash_flow.rb:438:12:438:16 | hash1 [element :c] | hash_flow.rb:438:12:442:7 | call to merge! [element :c] | -| hash_flow.rb:438:12:438:16 | hash1 [element :c] | hash_flow.rb:438:41:438:49 | old_value | -| hash_flow.rb:438:12:438:16 | hash1 [element :c] | hash_flow.rb:438:52:438:60 | new_value | -| hash_flow.rb:438:12:442:7 | call to merge! [element :a] | hash_flow.rb:438:5:438:8 | hash [element :a] | -| hash_flow.rb:438:12:442:7 | call to merge! [element :c] | hash_flow.rb:438:5:438:8 | hash [element :c] | -| hash_flow.rb:438:12:442:7 | call to merge! [element :d] | hash_flow.rb:438:5:438:8 | hash [element :d] | -| hash_flow.rb:438:12:442:7 | call to merge! [element :f] | hash_flow.rb:438:5:438:8 | hash [element :f] | -| hash_flow.rb:438:25:438:29 | hash2 [element :d] | hash_flow.rb:438:12:438:16 | [post] hash1 [element :d] | -| hash_flow.rb:438:25:438:29 | hash2 [element :d] | hash_flow.rb:438:12:442:7 | call to merge! [element :d] | -| hash_flow.rb:438:25:438:29 | hash2 [element :d] | hash_flow.rb:438:41:438:49 | old_value | -| hash_flow.rb:438:25:438:29 | hash2 [element :d] | hash_flow.rb:438:52:438:60 | new_value | -| hash_flow.rb:438:25:438:29 | hash2 [element :f] | hash_flow.rb:438:12:438:16 | [post] hash1 [element :f] | -| hash_flow.rb:438:25:438:29 | hash2 [element :f] | hash_flow.rb:438:12:442:7 | call to merge! [element :f] | -| hash_flow.rb:438:25:438:29 | hash2 [element :f] | hash_flow.rb:438:41:438:49 | old_value | -| hash_flow.rb:438:25:438:29 | hash2 [element :f] | hash_flow.rb:438:52:438:60 | new_value | -| hash_flow.rb:438:41:438:49 | old_value | hash_flow.rb:440:14:440:22 | old_value | -| hash_flow.rb:438:52:438:60 | new_value | hash_flow.rb:441:14:441:22 | new_value | -| hash_flow.rb:443:11:443:14 | hash [element :a] | hash_flow.rb:443:11:443:18 | ...[...] | -| hash_flow.rb:443:11:443:18 | ...[...] | hash_flow.rb:443:10:443:19 | ( ... ) | -| hash_flow.rb:445:11:445:14 | hash [element :c] | hash_flow.rb:445:11:445:18 | ...[...] | -| hash_flow.rb:445:11:445:18 | ...[...] | hash_flow.rb:445:10:445:19 | ( ... ) | -| hash_flow.rb:446:11:446:14 | hash [element :d] | hash_flow.rb:446:11:446:18 | ...[...] | -| hash_flow.rb:446:11:446:18 | ...[...] | hash_flow.rb:446:10:446:19 | ( ... ) | -| hash_flow.rb:448:11:448:14 | hash [element :f] | hash_flow.rb:448:11:448:18 | ...[...] | -| hash_flow.rb:448:11:448:18 | ...[...] | hash_flow.rb:448:10:448:19 | ( ... ) | -| hash_flow.rb:450:11:450:15 | hash1 [element :a] | hash_flow.rb:450:11:450:19 | ...[...] | -| hash_flow.rb:450:11:450:19 | ...[...] | hash_flow.rb:450:10:450:20 | ( ... ) | -| hash_flow.rb:452:11:452:15 | hash1 [element :c] | hash_flow.rb:452:11:452:19 | ...[...] | -| hash_flow.rb:452:11:452:19 | ...[...] | hash_flow.rb:452:10:452:20 | ( ... ) | -| hash_flow.rb:453:11:453:15 | hash1 [element :d] | hash_flow.rb:453:11:453:19 | ...[...] | -| hash_flow.rb:453:11:453:19 | ...[...] | hash_flow.rb:453:10:453:20 | ( ... ) | -| hash_flow.rb:455:11:455:15 | hash1 [element :f] | hash_flow.rb:455:11:455:19 | ...[...] | -| hash_flow.rb:455:11:455:19 | ...[...] | hash_flow.rb:455:10:455:20 | ( ... ) | -| hash_flow.rb:461:5:461:8 | hash [element :a] | hash_flow.rb:465:9:465:12 | hash [element :a] | -| hash_flow.rb:462:15:462:25 | call to taint | hash_flow.rb:461:5:461:8 | hash [element :a] | -| hash_flow.rb:465:5:465:5 | b [element 1] | hash_flow.rb:467:10:467:10 | b [element 1] | -| hash_flow.rb:465:9:465:12 | hash [element :a] | hash_flow.rb:465:9:465:22 | call to rassoc [element 1] | -| hash_flow.rb:465:9:465:22 | call to rassoc [element 1] | hash_flow.rb:465:5:465:5 | b [element 1] | -| hash_flow.rb:467:10:467:10 | b [element 1] | hash_flow.rb:467:10:467:13 | ...[...] | -| hash_flow.rb:473:5:473:8 | hash [element :a] | hash_flow.rb:477:9:477:12 | hash [element :a] | -| hash_flow.rb:474:15:474:25 | call to taint | hash_flow.rb:473:5:473:8 | hash [element :a] | -| hash_flow.rb:477:5:477:5 | b [element :a] | hash_flow.rb:482:10:482:10 | b [element :a] | -| hash_flow.rb:477:9:477:12 | hash [element :a] | hash_flow.rb:477:9:481:7 | call to reject [element :a] | -| hash_flow.rb:477:9:477:12 | hash [element :a] | hash_flow.rb:477:29:477:33 | value | -| hash_flow.rb:477:9:481:7 | call to reject [element :a] | hash_flow.rb:477:5:477:5 | b [element :a] | -| hash_flow.rb:477:29:477:33 | value | hash_flow.rb:479:14:479:18 | value | -| hash_flow.rb:482:10:482:10 | b [element :a] | hash_flow.rb:482:10:482:14 | ...[...] | -| hash_flow.rb:488:5:488:8 | hash [element :a] | hash_flow.rb:492:9:492:12 | hash [element :a] | -| hash_flow.rb:489:15:489:25 | call to taint | hash_flow.rb:488:5:488:8 | hash [element :a] | -| hash_flow.rb:492:5:492:5 | b [element :a] | hash_flow.rb:497:10:497:10 | b [element :a] | -| hash_flow.rb:492:9:492:12 | [post] hash [element :a] | hash_flow.rb:498:10:498:13 | hash [element :a] | -| hash_flow.rb:492:9:492:12 | hash [element :a] | hash_flow.rb:492:9:492:12 | [post] hash [element :a] | -| hash_flow.rb:492:9:492:12 | hash [element :a] | hash_flow.rb:492:9:496:7 | call to reject! [element :a] | -| hash_flow.rb:492:9:492:12 | hash [element :a] | hash_flow.rb:492:30:492:34 | value | -| hash_flow.rb:492:9:496:7 | call to reject! [element :a] | hash_flow.rb:492:5:492:5 | b [element :a] | -| hash_flow.rb:492:30:492:34 | value | hash_flow.rb:494:14:494:18 | value | -| hash_flow.rb:497:10:497:10 | b [element :a] | hash_flow.rb:497:10:497:14 | ...[...] | -| hash_flow.rb:498:10:498:13 | hash [element :a] | hash_flow.rb:498:10:498:17 | ...[...] | -| hash_flow.rb:504:5:504:8 | hash [element :a] | hash_flow.rb:512:19:512:22 | hash [element :a] | -| hash_flow.rb:504:5:504:8 | hash [element :c] | hash_flow.rb:512:19:512:22 | hash [element :c] | -| hash_flow.rb:505:15:505:25 | call to taint | hash_flow.rb:504:5:504:8 | hash [element :a] | -| hash_flow.rb:507:15:507:25 | call to taint | hash_flow.rb:504:5:504:8 | hash [element :c] | -| hash_flow.rb:512:5:512:9 | [post] hash2 [element :a] | hash_flow.rb:513:11:513:15 | hash2 [element :a] | -| hash_flow.rb:512:5:512:9 | [post] hash2 [element :c] | hash_flow.rb:515:11:515:15 | hash2 [element :c] | -| hash_flow.rb:512:19:512:22 | hash [element :a] | hash_flow.rb:512:5:512:9 | [post] hash2 [element :a] | -| hash_flow.rb:512:19:512:22 | hash [element :c] | hash_flow.rb:512:5:512:9 | [post] hash2 [element :c] | -| hash_flow.rb:513:11:513:15 | hash2 [element :a] | hash_flow.rb:513:11:513:19 | ...[...] | -| hash_flow.rb:513:11:513:19 | ...[...] | hash_flow.rb:513:10:513:20 | ( ... ) | -| hash_flow.rb:515:11:515:15 | hash2 [element :c] | hash_flow.rb:515:11:515:19 | ...[...] | -| hash_flow.rb:515:11:515:19 | ...[...] | hash_flow.rb:515:10:515:20 | ( ... ) | -| hash_flow.rb:519:5:519:8 | hash [element :a] | hash_flow.rb:524:9:524:12 | hash [element :a] | -| hash_flow.rb:519:5:519:8 | hash [element :c] | hash_flow.rb:524:9:524:12 | hash [element :c] | -| hash_flow.rb:520:15:520:25 | call to taint | hash_flow.rb:519:5:519:8 | hash [element :a] | -| hash_flow.rb:522:15:522:25 | call to taint | hash_flow.rb:519:5:519:8 | hash [element :c] | -| hash_flow.rb:524:5:524:5 | b [element :a] | hash_flow.rb:529:11:529:11 | b [element :a] | -| hash_flow.rb:524:9:524:12 | hash [element :a] | hash_flow.rb:524:9:528:7 | call to select [element :a] | -| hash_flow.rb:524:9:524:12 | hash [element :a] | hash_flow.rb:524:30:524:34 | value | -| hash_flow.rb:524:9:524:12 | hash [element :c] | hash_flow.rb:524:30:524:34 | value | -| hash_flow.rb:524:9:528:7 | call to select [element :a] | hash_flow.rb:524:5:524:5 | b [element :a] | -| hash_flow.rb:524:30:524:34 | value | hash_flow.rb:526:14:526:18 | value | -| hash_flow.rb:529:11:529:11 | b [element :a] | hash_flow.rb:529:11:529:15 | ...[...] | -| hash_flow.rb:529:11:529:15 | ...[...] | hash_flow.rb:529:10:529:16 | ( ... ) | -| hash_flow.rb:535:5:535:8 | hash [element :a] | hash_flow.rb:540:5:540:8 | hash [element :a] | -| hash_flow.rb:535:5:535:8 | hash [element :c] | hash_flow.rb:540:5:540:8 | hash [element :c] | -| hash_flow.rb:536:15:536:25 | call to taint | hash_flow.rb:535:5:535:8 | hash [element :a] | -| hash_flow.rb:538:15:538:25 | call to taint | hash_flow.rb:535:5:535:8 | hash [element :c] | -| hash_flow.rb:540:5:540:8 | [post] hash [element :a] | hash_flow.rb:545:11:545:14 | hash [element :a] | -| hash_flow.rb:540:5:540:8 | hash [element :a] | hash_flow.rb:540:5:540:8 | [post] hash [element :a] | -| hash_flow.rb:540:5:540:8 | hash [element :a] | hash_flow.rb:540:27:540:31 | value | -| hash_flow.rb:540:5:540:8 | hash [element :c] | hash_flow.rb:540:27:540:31 | value | -| hash_flow.rb:540:27:540:31 | value | hash_flow.rb:542:14:542:18 | value | -| hash_flow.rb:545:11:545:14 | hash [element :a] | hash_flow.rb:545:11:545:18 | ...[...] | -| hash_flow.rb:545:11:545:18 | ...[...] | hash_flow.rb:545:10:545:19 | ( ... ) | -| hash_flow.rb:551:5:551:8 | hash [element :a] | hash_flow.rb:556:9:556:12 | hash [element :a] | -| hash_flow.rb:551:5:551:8 | hash [element :c] | hash_flow.rb:556:9:556:12 | hash [element :c] | -| hash_flow.rb:552:15:552:25 | call to taint | hash_flow.rb:551:5:551:8 | hash [element :a] | -| hash_flow.rb:554:15:554:25 | call to taint | hash_flow.rb:551:5:551:8 | hash [element :c] | -| hash_flow.rb:556:5:556:5 | b [element 1] | hash_flow.rb:559:11:559:11 | b [element 1] | -| hash_flow.rb:556:9:556:12 | [post] hash [element :a] | hash_flow.rb:557:11:557:14 | hash [element :a] | -| hash_flow.rb:556:9:556:12 | hash [element :a] | hash_flow.rb:556:9:556:12 | [post] hash [element :a] | -| hash_flow.rb:556:9:556:12 | hash [element :a] | hash_flow.rb:556:9:556:18 | call to shift [element 1] | -| hash_flow.rb:556:9:556:12 | hash [element :c] | hash_flow.rb:556:9:556:18 | call to shift [element 1] | -| hash_flow.rb:556:9:556:18 | call to shift [element 1] | hash_flow.rb:556:5:556:5 | b [element 1] | -| hash_flow.rb:557:11:557:14 | hash [element :a] | hash_flow.rb:557:11:557:18 | ...[...] | -| hash_flow.rb:557:11:557:18 | ...[...] | hash_flow.rb:557:10:557:19 | ( ... ) | -| hash_flow.rb:559:11:559:11 | b [element 1] | hash_flow.rb:559:11:559:14 | ...[...] | -| hash_flow.rb:559:11:559:14 | ...[...] | hash_flow.rb:559:10:559:15 | ( ... ) | -| hash_flow.rb:565:5:565:8 | hash [element :a] | hash_flow.rb:570:9:570:12 | hash [element :a] | -| hash_flow.rb:565:5:565:8 | hash [element :a] | hash_flow.rb:575:9:575:12 | hash [element :a] | -| hash_flow.rb:565:5:565:8 | hash [element :c] | hash_flow.rb:575:9:575:12 | hash [element :c] | -| hash_flow.rb:566:15:566:25 | call to taint | hash_flow.rb:565:5:565:8 | hash [element :a] | -| hash_flow.rb:568:15:568:25 | call to taint | hash_flow.rb:565:5:565:8 | hash [element :c] | -| hash_flow.rb:570:5:570:5 | b [element :a] | hash_flow.rb:571:11:571:11 | b [element :a] | -| hash_flow.rb:570:9:570:12 | hash [element :a] | hash_flow.rb:570:9:570:26 | call to slice [element :a] | -| hash_flow.rb:570:9:570:26 | call to slice [element :a] | hash_flow.rb:570:5:570:5 | b [element :a] | -| hash_flow.rb:571:11:571:11 | b [element :a] | hash_flow.rb:571:11:571:15 | ...[...] | -| hash_flow.rb:571:11:571:15 | ...[...] | hash_flow.rb:571:10:571:16 | ( ... ) | -| hash_flow.rb:575:5:575:5 | c [element :a] | hash_flow.rb:576:11:576:11 | c [element :a] | -| hash_flow.rb:575:5:575:5 | c [element :c] | hash_flow.rb:578:11:578:11 | c [element :c] | -| hash_flow.rb:575:9:575:12 | hash [element :a] | hash_flow.rb:575:9:575:25 | call to slice [element :a] | -| hash_flow.rb:575:9:575:12 | hash [element :c] | hash_flow.rb:575:9:575:25 | call to slice [element :c] | -| hash_flow.rb:575:9:575:25 | call to slice [element :a] | hash_flow.rb:575:5:575:5 | c [element :a] | -| hash_flow.rb:575:9:575:25 | call to slice [element :c] | hash_flow.rb:575:5:575:5 | c [element :c] | -| hash_flow.rb:576:11:576:11 | c [element :a] | hash_flow.rb:576:11:576:15 | ...[...] | -| hash_flow.rb:576:11:576:15 | ...[...] | hash_flow.rb:576:10:576:16 | ( ... ) | -| hash_flow.rb:578:11:578:11 | c [element :c] | hash_flow.rb:578:11:578:15 | ...[...] | -| hash_flow.rb:578:11:578:15 | ...[...] | hash_flow.rb:578:10:578:16 | ( ... ) | -| hash_flow.rb:584:5:584:8 | hash [element :a] | hash_flow.rb:589:9:589:12 | hash [element :a] | -| hash_flow.rb:584:5:584:8 | hash [element :c] | hash_flow.rb:589:9:589:12 | hash [element :c] | -| hash_flow.rb:585:15:585:25 | call to taint | hash_flow.rb:584:5:584:8 | hash [element :a] | -| hash_flow.rb:587:15:587:25 | call to taint | hash_flow.rb:584:5:584:8 | hash [element :c] | -| hash_flow.rb:589:5:589:5 | a [element, element 1] | hash_flow.rb:591:11:591:11 | a [element, element 1] | -| hash_flow.rb:589:9:589:12 | hash [element :a] | hash_flow.rb:589:9:589:17 | call to to_a [element, element 1] | -| hash_flow.rb:589:9:589:12 | hash [element :c] | hash_flow.rb:589:9:589:17 | call to to_a [element, element 1] | -| hash_flow.rb:589:9:589:17 | call to to_a [element, element 1] | hash_flow.rb:589:5:589:5 | a [element, element 1] | -| hash_flow.rb:591:11:591:11 | a [element, element 1] | hash_flow.rb:591:11:591:14 | ...[...] [element 1] | -| hash_flow.rb:591:11:591:14 | ...[...] [element 1] | hash_flow.rb:591:11:591:17 | ...[...] | -| hash_flow.rb:591:11:591:17 | ...[...] | hash_flow.rb:591:10:591:18 | ( ... ) | -| hash_flow.rb:597:5:597:8 | hash [element :a] | hash_flow.rb:602:9:602:12 | hash [element :a] | -| hash_flow.rb:597:5:597:8 | hash [element :a] | hash_flow.rb:607:9:607:12 | hash [element :a] | -| hash_flow.rb:597:5:597:8 | hash [element :c] | hash_flow.rb:602:9:602:12 | hash [element :c] | -| hash_flow.rb:597:5:597:8 | hash [element :c] | hash_flow.rb:607:9:607:12 | hash [element :c] | -| hash_flow.rb:598:15:598:25 | call to taint | hash_flow.rb:597:5:597:8 | hash [element :a] | -| hash_flow.rb:600:15:600:25 | call to taint | hash_flow.rb:597:5:597:8 | hash [element :c] | -| hash_flow.rb:602:5:602:5 | a [element :a] | hash_flow.rb:603:11:603:11 | a [element :a] | -| hash_flow.rb:602:5:602:5 | a [element :c] | hash_flow.rb:605:11:605:11 | a [element :c] | -| hash_flow.rb:602:9:602:12 | hash [element :a] | hash_flow.rb:602:9:602:17 | call to to_h [element :a] | -| hash_flow.rb:602:9:602:12 | hash [element :c] | hash_flow.rb:602:9:602:17 | call to to_h [element :c] | -| hash_flow.rb:602:9:602:17 | call to to_h [element :a] | hash_flow.rb:602:5:602:5 | a [element :a] | -| hash_flow.rb:602:9:602:17 | call to to_h [element :c] | hash_flow.rb:602:5:602:5 | a [element :c] | -| hash_flow.rb:603:11:603:11 | a [element :a] | hash_flow.rb:603:11:603:15 | ...[...] | -| hash_flow.rb:603:11:603:15 | ...[...] | hash_flow.rb:603:10:603:16 | ( ... ) | -| hash_flow.rb:605:11:605:11 | a [element :c] | hash_flow.rb:605:11:605:15 | ...[...] | -| hash_flow.rb:605:11:605:15 | ...[...] | hash_flow.rb:605:10:605:16 | ( ... ) | -| hash_flow.rb:607:5:607:5 | b [element] | hash_flow.rb:612:11:612:11 | b [element] | -| hash_flow.rb:607:9:607:12 | hash [element :a] | hash_flow.rb:607:28:607:32 | value | -| hash_flow.rb:607:9:607:12 | hash [element :c] | hash_flow.rb:607:28:607:32 | value | -| hash_flow.rb:607:9:611:7 | call to to_h [element] | hash_flow.rb:607:5:607:5 | b [element] | -| hash_flow.rb:607:28:607:32 | value | hash_flow.rb:609:14:609:18 | value | -| hash_flow.rb:610:14:610:24 | call to taint | hash_flow.rb:607:9:611:7 | call to to_h [element] | -| hash_flow.rb:612:11:612:11 | b [element] | hash_flow.rb:612:11:612:15 | ...[...] | -| hash_flow.rb:612:11:612:15 | ...[...] | hash_flow.rb:612:10:612:16 | ( ... ) | -| hash_flow.rb:618:5:618:8 | hash [element :a] | hash_flow.rb:623:9:623:12 | hash [element :a] | -| hash_flow.rb:618:5:618:8 | hash [element :c] | hash_flow.rb:623:9:623:12 | hash [element :c] | -| hash_flow.rb:619:15:619:25 | call to taint | hash_flow.rb:618:5:618:8 | hash [element :a] | -| hash_flow.rb:621:15:621:25 | call to taint | hash_flow.rb:618:5:618:8 | hash [element :c] | -| hash_flow.rb:623:5:623:5 | a [element] | hash_flow.rb:624:11:624:11 | a [element] | -| hash_flow.rb:623:5:623:5 | a [element] | hash_flow.rb:625:11:625:11 | a [element] | -| hash_flow.rb:623:5:623:5 | a [element] | hash_flow.rb:626:11:626:11 | a [element] | -| hash_flow.rb:623:9:623:12 | hash [element :a] | hash_flow.rb:623:9:623:45 | call to transform_keys [element] | -| hash_flow.rb:623:9:623:12 | hash [element :c] | hash_flow.rb:623:9:623:45 | call to transform_keys [element] | -| hash_flow.rb:623:9:623:45 | call to transform_keys [element] | hash_flow.rb:623:5:623:5 | a [element] | -| hash_flow.rb:624:11:624:11 | a [element] | hash_flow.rb:624:11:624:16 | ...[...] | -| hash_flow.rb:624:11:624:16 | ...[...] | hash_flow.rb:624:10:624:17 | ( ... ) | -| hash_flow.rb:625:11:625:11 | a [element] | hash_flow.rb:625:11:625:16 | ...[...] | -| hash_flow.rb:625:11:625:16 | ...[...] | hash_flow.rb:625:10:625:17 | ( ... ) | -| hash_flow.rb:626:11:626:11 | a [element] | hash_flow.rb:626:11:626:16 | ...[...] | -| hash_flow.rb:626:11:626:16 | ...[...] | hash_flow.rb:626:10:626:17 | ( ... ) | -| hash_flow.rb:632:5:632:8 | hash [element :a] | hash_flow.rb:639:5:639:8 | hash [element :a] | -| hash_flow.rb:632:5:632:8 | hash [element :c] | hash_flow.rb:639:5:639:8 | hash [element :c] | -| hash_flow.rb:633:15:633:25 | call to taint | hash_flow.rb:632:5:632:8 | hash [element :a] | -| hash_flow.rb:635:15:635:25 | call to taint | hash_flow.rb:632:5:632:8 | hash [element :c] | -| hash_flow.rb:637:5:637:8 | [post] hash [element] | hash_flow.rb:639:5:639:8 | hash [element] | -| hash_flow.rb:637:5:637:8 | [post] hash [element] | hash_flow.rb:640:11:640:14 | hash [element] | -| hash_flow.rb:637:5:637:8 | [post] hash [element] | hash_flow.rb:641:11:641:14 | hash [element] | -| hash_flow.rb:637:5:637:8 | [post] hash [element] | hash_flow.rb:642:11:642:14 | hash [element] | -| hash_flow.rb:637:15:637:25 | call to taint | hash_flow.rb:637:5:637:8 | [post] hash [element] | -| hash_flow.rb:639:5:639:8 | [post] hash [element] | hash_flow.rb:640:11:640:14 | hash [element] | -| hash_flow.rb:639:5:639:8 | [post] hash [element] | hash_flow.rb:641:11:641:14 | hash [element] | -| hash_flow.rb:639:5:639:8 | [post] hash [element] | hash_flow.rb:642:11:642:14 | hash [element] | -| hash_flow.rb:639:5:639:8 | hash [element :a] | hash_flow.rb:639:5:639:8 | [post] hash [element] | -| hash_flow.rb:639:5:639:8 | hash [element :c] | hash_flow.rb:639:5:639:8 | [post] hash [element] | -| hash_flow.rb:639:5:639:8 | hash [element] | hash_flow.rb:639:5:639:8 | [post] hash [element] | -| hash_flow.rb:640:11:640:14 | hash [element] | hash_flow.rb:640:11:640:19 | ...[...] | -| hash_flow.rb:640:11:640:19 | ...[...] | hash_flow.rb:640:10:640:20 | ( ... ) | -| hash_flow.rb:641:11:641:14 | hash [element] | hash_flow.rb:641:11:641:19 | ...[...] | -| hash_flow.rb:641:11:641:19 | ...[...] | hash_flow.rb:641:10:641:20 | ( ... ) | -| hash_flow.rb:642:11:642:14 | hash [element] | hash_flow.rb:642:11:642:19 | ...[...] | -| hash_flow.rb:642:11:642:19 | ...[...] | hash_flow.rb:642:10:642:20 | ( ... ) | -| hash_flow.rb:648:5:648:8 | hash [element :a] | hash_flow.rb:653:9:653:12 | hash [element :a] | -| hash_flow.rb:648:5:648:8 | hash [element :a] | hash_flow.rb:657:11:657:14 | hash [element :a] | -| hash_flow.rb:648:5:648:8 | hash [element :c] | hash_flow.rb:653:9:653:12 | hash [element :c] | -| hash_flow.rb:649:15:649:25 | call to taint | hash_flow.rb:648:5:648:8 | hash [element :a] | -| hash_flow.rb:651:15:651:25 | call to taint | hash_flow.rb:648:5:648:8 | hash [element :c] | -| hash_flow.rb:653:5:653:5 | b [element] | hash_flow.rb:658:11:658:11 | b [element] | -| hash_flow.rb:653:9:653:12 | hash [element :a] | hash_flow.rb:653:35:653:39 | value | -| hash_flow.rb:653:9:653:12 | hash [element :c] | hash_flow.rb:653:35:653:39 | value | -| hash_flow.rb:653:9:656:7 | call to transform_values [element] | hash_flow.rb:653:5:653:5 | b [element] | -| hash_flow.rb:653:35:653:39 | value | hash_flow.rb:654:14:654:18 | value | -| hash_flow.rb:655:9:655:19 | call to taint | hash_flow.rb:653:9:656:7 | call to transform_values [element] | -| hash_flow.rb:657:11:657:14 | hash [element :a] | hash_flow.rb:657:11:657:18 | ...[...] | -| hash_flow.rb:657:11:657:18 | ...[...] | hash_flow.rb:657:10:657:19 | ( ... ) | -| hash_flow.rb:658:11:658:11 | b [element] | hash_flow.rb:658:11:658:15 | ...[...] | -| hash_flow.rb:658:11:658:15 | ...[...] | hash_flow.rb:658:10:658:16 | ( ... ) | -| hash_flow.rb:664:5:664:8 | hash [element :a] | hash_flow.rb:669:5:669:8 | hash [element :a] | -| hash_flow.rb:664:5:664:8 | hash [element :c] | hash_flow.rb:669:5:669:8 | hash [element :c] | -| hash_flow.rb:665:15:665:25 | call to taint | hash_flow.rb:664:5:664:8 | hash [element :a] | -| hash_flow.rb:667:15:667:25 | call to taint | hash_flow.rb:664:5:664:8 | hash [element :c] | -| hash_flow.rb:669:5:669:8 | [post] hash [element] | hash_flow.rb:673:11:673:14 | hash [element] | -| hash_flow.rb:669:5:669:8 | hash [element :a] | hash_flow.rb:669:32:669:36 | value | -| hash_flow.rb:669:5:669:8 | hash [element :c] | hash_flow.rb:669:32:669:36 | value | -| hash_flow.rb:669:32:669:36 | value | hash_flow.rb:670:14:670:18 | value | -| hash_flow.rb:671:9:671:19 | call to taint | hash_flow.rb:669:5:669:8 | [post] hash [element] | -| hash_flow.rb:673:11:673:14 | hash [element] | hash_flow.rb:673:11:673:18 | ...[...] | -| hash_flow.rb:673:11:673:18 | ...[...] | hash_flow.rb:673:10:673:19 | ( ... ) | -| hash_flow.rb:679:5:679:9 | hash1 [element :a] | hash_flow.rb:689:12:689:16 | hash1 [element :a] | -| hash_flow.rb:679:5:679:9 | hash1 [element :c] | hash_flow.rb:689:12:689:16 | hash1 [element :c] | -| hash_flow.rb:680:15:680:25 | call to taint | hash_flow.rb:679:5:679:9 | hash1 [element :a] | -| hash_flow.rb:682:15:682:25 | call to taint | hash_flow.rb:679:5:679:9 | hash1 [element :c] | -| hash_flow.rb:684:5:684:9 | hash2 [element :d] | hash_flow.rb:689:25:689:29 | hash2 [element :d] | -| hash_flow.rb:684:5:684:9 | hash2 [element :f] | hash_flow.rb:689:25:689:29 | hash2 [element :f] | -| hash_flow.rb:685:15:685:25 | call to taint | hash_flow.rb:684:5:684:9 | hash2 [element :d] | -| hash_flow.rb:687:15:687:25 | call to taint | hash_flow.rb:684:5:684:9 | hash2 [element :f] | -| hash_flow.rb:689:5:689:8 | hash [element :a] | hash_flow.rb:694:11:694:14 | hash [element :a] | -| hash_flow.rb:689:5:689:8 | hash [element :c] | hash_flow.rb:696:11:696:14 | hash [element :c] | -| hash_flow.rb:689:5:689:8 | hash [element :d] | hash_flow.rb:697:11:697:14 | hash [element :d] | -| hash_flow.rb:689:5:689:8 | hash [element :f] | hash_flow.rb:699:11:699:14 | hash [element :f] | -| hash_flow.rb:689:12:689:16 | [post] hash1 [element :a] | hash_flow.rb:701:11:701:15 | hash1 [element :a] | -| hash_flow.rb:689:12:689:16 | [post] hash1 [element :c] | hash_flow.rb:703:11:703:15 | hash1 [element :c] | -| hash_flow.rb:689:12:689:16 | [post] hash1 [element :d] | hash_flow.rb:704:11:704:15 | hash1 [element :d] | -| hash_flow.rb:689:12:689:16 | [post] hash1 [element :f] | hash_flow.rb:706:11:706:15 | hash1 [element :f] | -| hash_flow.rb:689:12:689:16 | hash1 [element :a] | hash_flow.rb:689:12:689:16 | [post] hash1 [element :a] | -| hash_flow.rb:689:12:689:16 | hash1 [element :a] | hash_flow.rb:689:12:693:7 | call to update [element :a] | -| hash_flow.rb:689:12:689:16 | hash1 [element :a] | hash_flow.rb:689:41:689:49 | old_value | -| hash_flow.rb:689:12:689:16 | hash1 [element :a] | hash_flow.rb:689:52:689:60 | new_value | -| hash_flow.rb:689:12:689:16 | hash1 [element :c] | hash_flow.rb:689:12:689:16 | [post] hash1 [element :c] | -| hash_flow.rb:689:12:689:16 | hash1 [element :c] | hash_flow.rb:689:12:693:7 | call to update [element :c] | -| hash_flow.rb:689:12:689:16 | hash1 [element :c] | hash_flow.rb:689:41:689:49 | old_value | -| hash_flow.rb:689:12:689:16 | hash1 [element :c] | hash_flow.rb:689:52:689:60 | new_value | -| hash_flow.rb:689:12:693:7 | call to update [element :a] | hash_flow.rb:689:5:689:8 | hash [element :a] | -| hash_flow.rb:689:12:693:7 | call to update [element :c] | hash_flow.rb:689:5:689:8 | hash [element :c] | -| hash_flow.rb:689:12:693:7 | call to update [element :d] | hash_flow.rb:689:5:689:8 | hash [element :d] | -| hash_flow.rb:689:12:693:7 | call to update [element :f] | hash_flow.rb:689:5:689:8 | hash [element :f] | -| hash_flow.rb:689:25:689:29 | hash2 [element :d] | hash_flow.rb:689:12:689:16 | [post] hash1 [element :d] | -| hash_flow.rb:689:25:689:29 | hash2 [element :d] | hash_flow.rb:689:12:693:7 | call to update [element :d] | -| hash_flow.rb:689:25:689:29 | hash2 [element :d] | hash_flow.rb:689:41:689:49 | old_value | -| hash_flow.rb:689:25:689:29 | hash2 [element :d] | hash_flow.rb:689:52:689:60 | new_value | -| hash_flow.rb:689:25:689:29 | hash2 [element :f] | hash_flow.rb:689:12:689:16 | [post] hash1 [element :f] | -| hash_flow.rb:689:25:689:29 | hash2 [element :f] | hash_flow.rb:689:12:693:7 | call to update [element :f] | -| hash_flow.rb:689:25:689:29 | hash2 [element :f] | hash_flow.rb:689:41:689:49 | old_value | -| hash_flow.rb:689:25:689:29 | hash2 [element :f] | hash_flow.rb:689:52:689:60 | new_value | -| hash_flow.rb:689:41:689:49 | old_value | hash_flow.rb:691:14:691:22 | old_value | -| hash_flow.rb:689:52:689:60 | new_value | hash_flow.rb:692:14:692:22 | new_value | -| hash_flow.rb:694:11:694:14 | hash [element :a] | hash_flow.rb:694:11:694:18 | ...[...] | -| hash_flow.rb:694:11:694:18 | ...[...] | hash_flow.rb:694:10:694:19 | ( ... ) | -| hash_flow.rb:696:11:696:14 | hash [element :c] | hash_flow.rb:696:11:696:18 | ...[...] | -| hash_flow.rb:696:11:696:18 | ...[...] | hash_flow.rb:696:10:696:19 | ( ... ) | -| hash_flow.rb:697:11:697:14 | hash [element :d] | hash_flow.rb:697:11:697:18 | ...[...] | -| hash_flow.rb:697:11:697:18 | ...[...] | hash_flow.rb:697:10:697:19 | ( ... ) | -| hash_flow.rb:699:11:699:14 | hash [element :f] | hash_flow.rb:699:11:699:18 | ...[...] | -| hash_flow.rb:699:11:699:18 | ...[...] | hash_flow.rb:699:10:699:19 | ( ... ) | -| hash_flow.rb:701:11:701:15 | hash1 [element :a] | hash_flow.rb:701:11:701:19 | ...[...] | -| hash_flow.rb:701:11:701:19 | ...[...] | hash_flow.rb:701:10:701:20 | ( ... ) | -| hash_flow.rb:703:11:703:15 | hash1 [element :c] | hash_flow.rb:703:11:703:19 | ...[...] | -| hash_flow.rb:703:11:703:19 | ...[...] | hash_flow.rb:703:10:703:20 | ( ... ) | -| hash_flow.rb:704:11:704:15 | hash1 [element :d] | hash_flow.rb:704:11:704:19 | ...[...] | -| hash_flow.rb:704:11:704:19 | ...[...] | hash_flow.rb:704:10:704:20 | ( ... ) | -| hash_flow.rb:706:11:706:15 | hash1 [element :f] | hash_flow.rb:706:11:706:19 | ...[...] | -| hash_flow.rb:706:11:706:19 | ...[...] | hash_flow.rb:706:10:706:20 | ( ... ) | -| hash_flow.rb:712:5:712:8 | hash [element :a] | hash_flow.rb:717:9:717:12 | hash [element :a] | -| hash_flow.rb:712:5:712:8 | hash [element :c] | hash_flow.rb:717:9:717:12 | hash [element :c] | -| hash_flow.rb:713:15:713:25 | call to taint | hash_flow.rb:712:5:712:8 | hash [element :a] | -| hash_flow.rb:715:15:715:25 | call to taint | hash_flow.rb:712:5:712:8 | hash [element :c] | -| hash_flow.rb:717:5:717:5 | a [element] | hash_flow.rb:718:11:718:11 | a [element] | -| hash_flow.rb:717:9:717:12 | hash [element :a] | hash_flow.rb:717:9:717:19 | call to values [element] | -| hash_flow.rb:717:9:717:12 | hash [element :c] | hash_flow.rb:717:9:717:19 | call to values [element] | -| hash_flow.rb:717:9:717:19 | call to values [element] | hash_flow.rb:717:5:717:5 | a [element] | -| hash_flow.rb:718:11:718:11 | a [element] | hash_flow.rb:718:11:718:14 | ...[...] | -| hash_flow.rb:718:11:718:14 | ...[...] | hash_flow.rb:718:10:718:15 | ( ... ) | -| hash_flow.rb:724:5:724:8 | hash [element :a] | hash_flow.rb:729:9:729:12 | hash [element :a] | -| hash_flow.rb:724:5:724:8 | hash [element :a] | hash_flow.rb:731:9:731:12 | hash [element :a] | -| hash_flow.rb:724:5:724:8 | hash [element :c] | hash_flow.rb:731:9:731:12 | hash [element :c] | -| hash_flow.rb:725:15:725:25 | call to taint | hash_flow.rb:724:5:724:8 | hash [element :a] | -| hash_flow.rb:727:15:727:25 | call to taint | hash_flow.rb:724:5:724:8 | hash [element :c] | -| hash_flow.rb:729:5:729:5 | b [element 0] | hash_flow.rb:730:10:730:10 | b [element 0] | -| hash_flow.rb:729:9:729:12 | hash [element :a] | hash_flow.rb:729:9:729:26 | call to values_at [element 0] | -| hash_flow.rb:729:9:729:26 | call to values_at [element 0] | hash_flow.rb:729:5:729:5 | b [element 0] | -| hash_flow.rb:730:10:730:10 | b [element 0] | hash_flow.rb:730:10:730:13 | ...[...] | -| hash_flow.rb:731:5:731:5 | b [element] | hash_flow.rb:732:10:732:10 | b [element] | -| hash_flow.rb:731:9:731:12 | hash [element :a] | hash_flow.rb:731:9:731:31 | call to fetch_values [element] | -| hash_flow.rb:731:9:731:12 | hash [element :c] | hash_flow.rb:731:9:731:31 | call to fetch_values [element] | -| hash_flow.rb:731:9:731:31 | call to fetch_values [element] | hash_flow.rb:731:5:731:5 | b [element] | -| hash_flow.rb:732:10:732:10 | b [element] | hash_flow.rb:732:10:732:13 | ...[...] | -| hash_flow.rb:738:5:738:9 | hash1 [element :a] | hash_flow.rb:748:16:748:20 | hash1 [element :a] | -| hash_flow.rb:738:5:738:9 | hash1 [element :c] | hash_flow.rb:748:16:748:20 | hash1 [element :c] | -| hash_flow.rb:739:15:739:25 | call to taint | hash_flow.rb:738:5:738:9 | hash1 [element :a] | -| hash_flow.rb:741:15:741:25 | call to taint | hash_flow.rb:738:5:738:9 | hash1 [element :c] | -| hash_flow.rb:743:5:743:9 | hash2 [element :d] | hash_flow.rb:748:44:748:48 | hash2 [element :d] | -| hash_flow.rb:743:5:743:9 | hash2 [element :f] | hash_flow.rb:748:44:748:48 | hash2 [element :f] | -| hash_flow.rb:744:15:744:25 | call to taint | hash_flow.rb:743:5:743:9 | hash2 [element :d] | -| hash_flow.rb:746:15:746:25 | call to taint | hash_flow.rb:743:5:743:9 | hash2 [element :f] | -| hash_flow.rb:748:5:748:8 | hash [element :a] | hash_flow.rb:749:10:749:13 | hash [element :a] | -| hash_flow.rb:748:5:748:8 | hash [element :c] | hash_flow.rb:751:10:751:13 | hash [element :c] | -| hash_flow.rb:748:5:748:8 | hash [element :d] | hash_flow.rb:752:10:752:13 | hash [element :d] | -| hash_flow.rb:748:5:748:8 | hash [element :f] | hash_flow.rb:754:10:754:13 | hash [element :f] | -| hash_flow.rb:748:5:748:8 | hash [element :g] | hash_flow.rb:755:10:755:13 | hash [element :g] | -| hash_flow.rb:748:14:748:20 | ** ... [element :a] | hash_flow.rb:748:5:748:8 | hash [element :a] | -| hash_flow.rb:748:14:748:20 | ** ... [element :c] | hash_flow.rb:748:5:748:8 | hash [element :c] | -| hash_flow.rb:748:16:748:20 | hash1 [element :a] | hash_flow.rb:748:14:748:20 | ** ... [element :a] | -| hash_flow.rb:748:16:748:20 | hash1 [element :c] | hash_flow.rb:748:14:748:20 | ** ... [element :c] | -| hash_flow.rb:748:29:748:39 | call to taint | hash_flow.rb:748:5:748:8 | hash [element :g] | -| hash_flow.rb:748:42:748:48 | ** ... [element :d] | hash_flow.rb:748:5:748:8 | hash [element :d] | -| hash_flow.rb:748:42:748:48 | ** ... [element :f] | hash_flow.rb:748:5:748:8 | hash [element :f] | -| hash_flow.rb:748:44:748:48 | hash2 [element :d] | hash_flow.rb:748:42:748:48 | ** ... [element :d] | -| hash_flow.rb:748:44:748:48 | hash2 [element :f] | hash_flow.rb:748:42:748:48 | ** ... [element :f] | -| hash_flow.rb:749:10:749:13 | hash [element :a] | hash_flow.rb:749:10:749:17 | ...[...] | -| hash_flow.rb:751:10:751:13 | hash [element :c] | hash_flow.rb:751:10:751:17 | ...[...] | -| hash_flow.rb:752:10:752:13 | hash [element :d] | hash_flow.rb:752:10:752:17 | ...[...] | -| hash_flow.rb:754:10:754:13 | hash [element :f] | hash_flow.rb:754:10:754:17 | ...[...] | -| hash_flow.rb:755:10:755:13 | hash [element :g] | hash_flow.rb:755:10:755:17 | ...[...] | -| hash_flow.rb:762:5:762:8 | hash [element :a] | hash_flow.rb:769:10:769:13 | hash [element :a] | -| hash_flow.rb:762:5:762:8 | hash [element :c] | hash_flow.rb:771:10:771:13 | hash [element :c] | -| hash_flow.rb:762:5:762:8 | hash [element :c] | hash_flow.rb:774:9:774:12 | hash [element :c] | -| hash_flow.rb:762:5:762:8 | hash [element :d] | hash_flow.rb:772:10:772:13 | hash [element :d] | -| hash_flow.rb:763:15:763:25 | call to taint | hash_flow.rb:762:5:762:8 | hash [element :a] | -| hash_flow.rb:765:15:765:25 | call to taint | hash_flow.rb:762:5:762:8 | hash [element :c] | -| hash_flow.rb:766:15:766:25 | call to taint | hash_flow.rb:762:5:762:8 | hash [element :d] | -| hash_flow.rb:769:10:769:13 | hash [element :a] | hash_flow.rb:769:10:769:17 | ...[...] | -| hash_flow.rb:771:10:771:13 | hash [element :c] | hash_flow.rb:771:10:771:17 | ...[...] | -| hash_flow.rb:772:10:772:13 | hash [element :d] | hash_flow.rb:772:10:772:17 | ...[...] | -| hash_flow.rb:774:5:774:5 | x [element :c] | hash_flow.rb:778:10:778:10 | x [element :c] | -| hash_flow.rb:774:9:774:12 | [post] hash [element :c] | hash_flow.rb:783:10:783:13 | hash [element :c] | -| hash_flow.rb:774:9:774:12 | hash [element :c] | hash_flow.rb:774:9:774:12 | [post] hash [element :c] | -| hash_flow.rb:774:9:774:12 | hash [element :c] | hash_flow.rb:774:9:774:31 | call to except! [element :c] | -| hash_flow.rb:774:9:774:31 | call to except! [element :c] | hash_flow.rb:774:5:774:5 | x [element :c] | -| hash_flow.rb:778:10:778:10 | x [element :c] | hash_flow.rb:778:10:778:14 | ...[...] | -| hash_flow.rb:783:10:783:13 | hash [element :c] | hash_flow.rb:783:10:783:17 | ...[...] | -| hash_flow.rb:790:5:790:9 | hash1 [element :a] | hash_flow.rb:800:12:800:16 | hash1 [element :a] | -| hash_flow.rb:790:5:790:9 | hash1 [element :c] | hash_flow.rb:800:12:800:16 | hash1 [element :c] | -| hash_flow.rb:791:15:791:25 | call to taint | hash_flow.rb:790:5:790:9 | hash1 [element :a] | -| hash_flow.rb:793:15:793:25 | call to taint | hash_flow.rb:790:5:790:9 | hash1 [element :c] | -| hash_flow.rb:795:5:795:9 | hash2 [element :d] | hash_flow.rb:800:29:800:33 | hash2 [element :d] | -| hash_flow.rb:795:5:795:9 | hash2 [element :f] | hash_flow.rb:800:29:800:33 | hash2 [element :f] | -| hash_flow.rb:796:15:796:25 | call to taint | hash_flow.rb:795:5:795:9 | hash2 [element :d] | -| hash_flow.rb:798:15:798:25 | call to taint | hash_flow.rb:795:5:795:9 | hash2 [element :f] | -| hash_flow.rb:800:5:800:8 | hash [element :a] | hash_flow.rb:805:11:805:14 | hash [element :a] | -| hash_flow.rb:800:5:800:8 | hash [element :c] | hash_flow.rb:807:11:807:14 | hash [element :c] | -| hash_flow.rb:800:5:800:8 | hash [element :d] | hash_flow.rb:808:11:808:14 | hash [element :d] | -| hash_flow.rb:800:5:800:8 | hash [element :f] | hash_flow.rb:810:11:810:14 | hash [element :f] | -| hash_flow.rb:800:12:800:16 | hash1 [element :a] | hash_flow.rb:800:12:804:7 | call to deep_merge [element :a] | -| hash_flow.rb:800:12:800:16 | hash1 [element :a] | hash_flow.rb:800:45:800:53 | old_value | -| hash_flow.rb:800:12:800:16 | hash1 [element :a] | hash_flow.rb:800:56:800:64 | new_value | -| hash_flow.rb:800:12:800:16 | hash1 [element :c] | hash_flow.rb:800:12:804:7 | call to deep_merge [element :c] | -| hash_flow.rb:800:12:800:16 | hash1 [element :c] | hash_flow.rb:800:45:800:53 | old_value | -| hash_flow.rb:800:12:800:16 | hash1 [element :c] | hash_flow.rb:800:56:800:64 | new_value | -| hash_flow.rb:800:12:804:7 | call to deep_merge [element :a] | hash_flow.rb:800:5:800:8 | hash [element :a] | -| hash_flow.rb:800:12:804:7 | call to deep_merge [element :c] | hash_flow.rb:800:5:800:8 | hash [element :c] | -| hash_flow.rb:800:12:804:7 | call to deep_merge [element :d] | hash_flow.rb:800:5:800:8 | hash [element :d] | -| hash_flow.rb:800:12:804:7 | call to deep_merge [element :f] | hash_flow.rb:800:5:800:8 | hash [element :f] | -| hash_flow.rb:800:29:800:33 | hash2 [element :d] | hash_flow.rb:800:12:804:7 | call to deep_merge [element :d] | -| hash_flow.rb:800:29:800:33 | hash2 [element :d] | hash_flow.rb:800:45:800:53 | old_value | -| hash_flow.rb:800:29:800:33 | hash2 [element :d] | hash_flow.rb:800:56:800:64 | new_value | -| hash_flow.rb:800:29:800:33 | hash2 [element :f] | hash_flow.rb:800:12:804:7 | call to deep_merge [element :f] | -| hash_flow.rb:800:29:800:33 | hash2 [element :f] | hash_flow.rb:800:45:800:53 | old_value | -| hash_flow.rb:800:29:800:33 | hash2 [element :f] | hash_flow.rb:800:56:800:64 | new_value | -| hash_flow.rb:800:45:800:53 | old_value | hash_flow.rb:802:14:802:22 | old_value | -| hash_flow.rb:800:56:800:64 | new_value | hash_flow.rb:803:14:803:22 | new_value | -| hash_flow.rb:805:11:805:14 | hash [element :a] | hash_flow.rb:805:11:805:18 | ...[...] | -| hash_flow.rb:805:11:805:18 | ...[...] | hash_flow.rb:805:10:805:19 | ( ... ) | -| hash_flow.rb:807:11:807:14 | hash [element :c] | hash_flow.rb:807:11:807:18 | ...[...] | -| hash_flow.rb:807:11:807:18 | ...[...] | hash_flow.rb:807:10:807:19 | ( ... ) | -| hash_flow.rb:808:11:808:14 | hash [element :d] | hash_flow.rb:808:11:808:18 | ...[...] | -| hash_flow.rb:808:11:808:18 | ...[...] | hash_flow.rb:808:10:808:19 | ( ... ) | -| hash_flow.rb:810:11:810:14 | hash [element :f] | hash_flow.rb:810:11:810:18 | ...[...] | -| hash_flow.rb:810:11:810:18 | ...[...] | hash_flow.rb:810:10:810:19 | ( ... ) | -| hash_flow.rb:816:5:816:9 | hash1 [element :a] | hash_flow.rb:826:12:826:16 | hash1 [element :a] | -| hash_flow.rb:816:5:816:9 | hash1 [element :c] | hash_flow.rb:826:12:826:16 | hash1 [element :c] | -| hash_flow.rb:817:15:817:25 | call to taint | hash_flow.rb:816:5:816:9 | hash1 [element :a] | -| hash_flow.rb:819:15:819:25 | call to taint | hash_flow.rb:816:5:816:9 | hash1 [element :c] | -| hash_flow.rb:821:5:821:9 | hash2 [element :d] | hash_flow.rb:826:30:826:34 | hash2 [element :d] | -| hash_flow.rb:821:5:821:9 | hash2 [element :f] | hash_flow.rb:826:30:826:34 | hash2 [element :f] | -| hash_flow.rb:822:15:822:25 | call to taint | hash_flow.rb:821:5:821:9 | hash2 [element :d] | -| hash_flow.rb:824:15:824:25 | call to taint | hash_flow.rb:821:5:821:9 | hash2 [element :f] | -| hash_flow.rb:826:5:826:8 | hash [element :a] | hash_flow.rb:831:11:831:14 | hash [element :a] | -| hash_flow.rb:826:5:826:8 | hash [element :c] | hash_flow.rb:833:11:833:14 | hash [element :c] | -| hash_flow.rb:826:5:826:8 | hash [element :d] | hash_flow.rb:834:11:834:14 | hash [element :d] | -| hash_flow.rb:826:5:826:8 | hash [element :f] | hash_flow.rb:836:11:836:14 | hash [element :f] | -| hash_flow.rb:826:12:826:16 | [post] hash1 [element :a] | hash_flow.rb:838:11:838:15 | hash1 [element :a] | -| hash_flow.rb:826:12:826:16 | [post] hash1 [element :c] | hash_flow.rb:840:11:840:15 | hash1 [element :c] | -| hash_flow.rb:826:12:826:16 | [post] hash1 [element :d] | hash_flow.rb:841:11:841:15 | hash1 [element :d] | -| hash_flow.rb:826:12:826:16 | [post] hash1 [element :f] | hash_flow.rb:843:11:843:15 | hash1 [element :f] | -| hash_flow.rb:826:12:826:16 | hash1 [element :a] | hash_flow.rb:826:12:826:16 | [post] hash1 [element :a] | -| hash_flow.rb:826:12:826:16 | hash1 [element :a] | hash_flow.rb:826:12:830:7 | call to deep_merge! [element :a] | -| hash_flow.rb:826:12:826:16 | hash1 [element :a] | hash_flow.rb:826:46:826:54 | old_value | -| hash_flow.rb:826:12:826:16 | hash1 [element :a] | hash_flow.rb:826:57:826:65 | new_value | -| hash_flow.rb:826:12:826:16 | hash1 [element :c] | hash_flow.rb:826:12:826:16 | [post] hash1 [element :c] | -| hash_flow.rb:826:12:826:16 | hash1 [element :c] | hash_flow.rb:826:12:830:7 | call to deep_merge! [element :c] | -| hash_flow.rb:826:12:826:16 | hash1 [element :c] | hash_flow.rb:826:46:826:54 | old_value | -| hash_flow.rb:826:12:826:16 | hash1 [element :c] | hash_flow.rb:826:57:826:65 | new_value | -| hash_flow.rb:826:12:830:7 | call to deep_merge! [element :a] | hash_flow.rb:826:5:826:8 | hash [element :a] | -| hash_flow.rb:826:12:830:7 | call to deep_merge! [element :c] | hash_flow.rb:826:5:826:8 | hash [element :c] | -| hash_flow.rb:826:12:830:7 | call to deep_merge! [element :d] | hash_flow.rb:826:5:826:8 | hash [element :d] | -| hash_flow.rb:826:12:830:7 | call to deep_merge! [element :f] | hash_flow.rb:826:5:826:8 | hash [element :f] | -| hash_flow.rb:826:30:826:34 | hash2 [element :d] | hash_flow.rb:826:12:826:16 | [post] hash1 [element :d] | -| hash_flow.rb:826:30:826:34 | hash2 [element :d] | hash_flow.rb:826:12:830:7 | call to deep_merge! [element :d] | -| hash_flow.rb:826:30:826:34 | hash2 [element :d] | hash_flow.rb:826:46:826:54 | old_value | -| hash_flow.rb:826:30:826:34 | hash2 [element :d] | hash_flow.rb:826:57:826:65 | new_value | -| hash_flow.rb:826:30:826:34 | hash2 [element :f] | hash_flow.rb:826:12:826:16 | [post] hash1 [element :f] | -| hash_flow.rb:826:30:826:34 | hash2 [element :f] | hash_flow.rb:826:12:830:7 | call to deep_merge! [element :f] | -| hash_flow.rb:826:30:826:34 | hash2 [element :f] | hash_flow.rb:826:46:826:54 | old_value | -| hash_flow.rb:826:30:826:34 | hash2 [element :f] | hash_flow.rb:826:57:826:65 | new_value | -| hash_flow.rb:826:46:826:54 | old_value | hash_flow.rb:828:14:828:22 | old_value | -| hash_flow.rb:826:57:826:65 | new_value | hash_flow.rb:829:14:829:22 | new_value | -| hash_flow.rb:831:11:831:14 | hash [element :a] | hash_flow.rb:831:11:831:18 | ...[...] | -| hash_flow.rb:831:11:831:18 | ...[...] | hash_flow.rb:831:10:831:19 | ( ... ) | -| hash_flow.rb:833:11:833:14 | hash [element :c] | hash_flow.rb:833:11:833:18 | ...[...] | -| hash_flow.rb:833:11:833:18 | ...[...] | hash_flow.rb:833:10:833:19 | ( ... ) | -| hash_flow.rb:834:11:834:14 | hash [element :d] | hash_flow.rb:834:11:834:18 | ...[...] | -| hash_flow.rb:834:11:834:18 | ...[...] | hash_flow.rb:834:10:834:19 | ( ... ) | -| hash_flow.rb:836:11:836:14 | hash [element :f] | hash_flow.rb:836:11:836:18 | ...[...] | -| hash_flow.rb:836:11:836:18 | ...[...] | hash_flow.rb:836:10:836:19 | ( ... ) | -| hash_flow.rb:838:11:838:15 | hash1 [element :a] | hash_flow.rb:838:11:838:19 | ...[...] | -| hash_flow.rb:838:11:838:19 | ...[...] | hash_flow.rb:838:10:838:20 | ( ... ) | -| hash_flow.rb:840:11:840:15 | hash1 [element :c] | hash_flow.rb:840:11:840:19 | ...[...] | -| hash_flow.rb:840:11:840:19 | ...[...] | hash_flow.rb:840:10:840:20 | ( ... ) | -| hash_flow.rb:841:11:841:15 | hash1 [element :d] | hash_flow.rb:841:11:841:19 | ...[...] | -| hash_flow.rb:841:11:841:19 | ...[...] | hash_flow.rb:841:10:841:20 | ( ... ) | -| hash_flow.rb:843:11:843:15 | hash1 [element :f] | hash_flow.rb:843:11:843:19 | ...[...] | -| hash_flow.rb:843:11:843:19 | ...[...] | hash_flow.rb:843:10:843:20 | ( ... ) | -| hash_flow.rb:849:5:849:9 | hash1 [element :a] | hash_flow.rb:860:13:860:17 | hash1 [element :a] | -| hash_flow.rb:849:5:849:9 | hash1 [element :a] | hash_flow.rb:869:13:869:17 | hash1 [element :a] | -| hash_flow.rb:849:5:849:9 | hash1 [element :c] | hash_flow.rb:860:13:860:17 | hash1 [element :c] | -| hash_flow.rb:849:5:849:9 | hash1 [element :c] | hash_flow.rb:869:13:869:17 | hash1 [element :c] | -| hash_flow.rb:850:12:850:22 | call to taint | hash_flow.rb:849:5:849:9 | hash1 [element :a] | -| hash_flow.rb:852:12:852:22 | call to taint | hash_flow.rb:849:5:849:9 | hash1 [element :c] | -| hash_flow.rb:854:5:854:9 | hash2 [element :d] | hash_flow.rb:860:33:860:37 | hash2 [element :d] | -| hash_flow.rb:854:5:854:9 | hash2 [element :d] | hash_flow.rb:869:33:869:37 | hash2 [element :d] | -| hash_flow.rb:854:5:854:9 | hash2 [element :f] | hash_flow.rb:860:33:860:37 | hash2 [element :f] | -| hash_flow.rb:854:5:854:9 | hash2 [element :f] | hash_flow.rb:869:33:869:37 | hash2 [element :f] | -| hash_flow.rb:855:12:855:22 | call to taint | hash_flow.rb:854:5:854:9 | hash2 [element :d] | -| hash_flow.rb:857:12:857:22 | call to taint | hash_flow.rb:854:5:854:9 | hash2 [element :f] | -| hash_flow.rb:860:5:860:9 | hash3 [element :a] | hash_flow.rb:861:11:861:15 | hash3 [element :a] | -| hash_flow.rb:860:5:860:9 | hash3 [element :c] | hash_flow.rb:863:11:863:15 | hash3 [element :c] | -| hash_flow.rb:860:5:860:9 | hash3 [element :d] | hash_flow.rb:864:11:864:15 | hash3 [element :d] | -| hash_flow.rb:860:5:860:9 | hash3 [element :f] | hash_flow.rb:866:11:866:15 | hash3 [element :f] | -| hash_flow.rb:860:13:860:17 | hash1 [element :a] | hash_flow.rb:860:13:860:38 | call to reverse_merge [element :a] | -| hash_flow.rb:860:13:860:17 | hash1 [element :c] | hash_flow.rb:860:13:860:38 | call to reverse_merge [element :c] | -| hash_flow.rb:860:13:860:38 | call to reverse_merge [element :a] | hash_flow.rb:860:5:860:9 | hash3 [element :a] | -| hash_flow.rb:860:13:860:38 | call to reverse_merge [element :c] | hash_flow.rb:860:5:860:9 | hash3 [element :c] | -| hash_flow.rb:860:13:860:38 | call to reverse_merge [element :d] | hash_flow.rb:860:5:860:9 | hash3 [element :d] | -| hash_flow.rb:860:13:860:38 | call to reverse_merge [element :f] | hash_flow.rb:860:5:860:9 | hash3 [element :f] | -| hash_flow.rb:860:33:860:37 | hash2 [element :d] | hash_flow.rb:860:13:860:38 | call to reverse_merge [element :d] | -| hash_flow.rb:860:33:860:37 | hash2 [element :f] | hash_flow.rb:860:13:860:38 | call to reverse_merge [element :f] | -| hash_flow.rb:861:11:861:15 | hash3 [element :a] | hash_flow.rb:861:11:861:19 | ...[...] | -| hash_flow.rb:861:11:861:19 | ...[...] | hash_flow.rb:861:10:861:20 | ( ... ) | -| hash_flow.rb:863:11:863:15 | hash3 [element :c] | hash_flow.rb:863:11:863:19 | ...[...] | -| hash_flow.rb:863:11:863:19 | ...[...] | hash_flow.rb:863:10:863:20 | ( ... ) | -| hash_flow.rb:864:11:864:15 | hash3 [element :d] | hash_flow.rb:864:11:864:19 | ...[...] | -| hash_flow.rb:864:11:864:19 | ...[...] | hash_flow.rb:864:10:864:20 | ( ... ) | -| hash_flow.rb:866:11:866:15 | hash3 [element :f] | hash_flow.rb:866:11:866:19 | ...[...] | -| hash_flow.rb:866:11:866:19 | ...[...] | hash_flow.rb:866:10:866:20 | ( ... ) | -| hash_flow.rb:869:5:869:9 | hash4 [element :a] | hash_flow.rb:870:11:870:15 | hash4 [element :a] | -| hash_flow.rb:869:5:869:9 | hash4 [element :c] | hash_flow.rb:872:11:872:15 | hash4 [element :c] | -| hash_flow.rb:869:5:869:9 | hash4 [element :d] | hash_flow.rb:873:11:873:15 | hash4 [element :d] | -| hash_flow.rb:869:5:869:9 | hash4 [element :f] | hash_flow.rb:875:11:875:15 | hash4 [element :f] | -| hash_flow.rb:869:13:869:17 | hash1 [element :a] | hash_flow.rb:869:13:869:38 | call to with_defaults [element :a] | -| hash_flow.rb:869:13:869:17 | hash1 [element :c] | hash_flow.rb:869:13:869:38 | call to with_defaults [element :c] | -| hash_flow.rb:869:13:869:38 | call to with_defaults [element :a] | hash_flow.rb:869:5:869:9 | hash4 [element :a] | -| hash_flow.rb:869:13:869:38 | call to with_defaults [element :c] | hash_flow.rb:869:5:869:9 | hash4 [element :c] | -| hash_flow.rb:869:13:869:38 | call to with_defaults [element :d] | hash_flow.rb:869:5:869:9 | hash4 [element :d] | -| hash_flow.rb:869:13:869:38 | call to with_defaults [element :f] | hash_flow.rb:869:5:869:9 | hash4 [element :f] | -| hash_flow.rb:869:33:869:37 | hash2 [element :d] | hash_flow.rb:869:13:869:38 | call to with_defaults [element :d] | -| hash_flow.rb:869:33:869:37 | hash2 [element :f] | hash_flow.rb:869:13:869:38 | call to with_defaults [element :f] | -| hash_flow.rb:870:11:870:15 | hash4 [element :a] | hash_flow.rb:870:11:870:19 | ...[...] | -| hash_flow.rb:870:11:870:19 | ...[...] | hash_flow.rb:870:10:870:20 | ( ... ) | -| hash_flow.rb:872:11:872:15 | hash4 [element :c] | hash_flow.rb:872:11:872:19 | ...[...] | -| hash_flow.rb:872:11:872:19 | ...[...] | hash_flow.rb:872:10:872:20 | ( ... ) | -| hash_flow.rb:873:11:873:15 | hash4 [element :d] | hash_flow.rb:873:11:873:19 | ...[...] | -| hash_flow.rb:873:11:873:19 | ...[...] | hash_flow.rb:873:10:873:20 | ( ... ) | -| hash_flow.rb:875:11:875:15 | hash4 [element :f] | hash_flow.rb:875:11:875:19 | ...[...] | -| hash_flow.rb:875:11:875:19 | ...[...] | hash_flow.rb:875:10:875:20 | ( ... ) | -| hash_flow.rb:881:5:881:9 | hash1 [element :a] | hash_flow.rb:892:12:892:16 | hash1 [element :a] | -| hash_flow.rb:881:5:881:9 | hash1 [element :c] | hash_flow.rb:892:12:892:16 | hash1 [element :c] | -| hash_flow.rb:882:12:882:22 | call to taint | hash_flow.rb:881:5:881:9 | hash1 [element :a] | -| hash_flow.rb:884:12:884:22 | call to taint | hash_flow.rb:881:5:881:9 | hash1 [element :c] | -| hash_flow.rb:886:5:886:9 | hash2 [element :d] | hash_flow.rb:892:33:892:37 | hash2 [element :d] | -| hash_flow.rb:886:5:886:9 | hash2 [element :f] | hash_flow.rb:892:33:892:37 | hash2 [element :f] | -| hash_flow.rb:887:12:887:22 | call to taint | hash_flow.rb:886:5:886:9 | hash2 [element :d] | -| hash_flow.rb:889:12:889:22 | call to taint | hash_flow.rb:886:5:886:9 | hash2 [element :f] | -| hash_flow.rb:892:5:892:8 | hash [element :a] | hash_flow.rb:893:11:893:14 | hash [element :a] | -| hash_flow.rb:892:5:892:8 | hash [element :c] | hash_flow.rb:895:11:895:14 | hash [element :c] | -| hash_flow.rb:892:5:892:8 | hash [element :d] | hash_flow.rb:896:11:896:14 | hash [element :d] | -| hash_flow.rb:892:5:892:8 | hash [element :f] | hash_flow.rb:898:11:898:14 | hash [element :f] | -| hash_flow.rb:892:12:892:16 | [post] hash1 [element :a] | hash_flow.rb:900:11:900:15 | hash1 [element :a] | -| hash_flow.rb:892:12:892:16 | [post] hash1 [element :c] | hash_flow.rb:902:11:902:15 | hash1 [element :c] | -| hash_flow.rb:892:12:892:16 | [post] hash1 [element :d] | hash_flow.rb:903:11:903:15 | hash1 [element :d] | -| hash_flow.rb:892:12:892:16 | [post] hash1 [element :f] | hash_flow.rb:905:11:905:15 | hash1 [element :f] | -| hash_flow.rb:892:12:892:16 | hash1 [element :a] | hash_flow.rb:892:12:892:16 | [post] hash1 [element :a] | -| hash_flow.rb:892:12:892:16 | hash1 [element :a] | hash_flow.rb:892:12:892:38 | call to reverse_merge! [element :a] | -| hash_flow.rb:892:12:892:16 | hash1 [element :c] | hash_flow.rb:892:12:892:16 | [post] hash1 [element :c] | -| hash_flow.rb:892:12:892:16 | hash1 [element :c] | hash_flow.rb:892:12:892:38 | call to reverse_merge! [element :c] | -| hash_flow.rb:892:12:892:38 | call to reverse_merge! [element :a] | hash_flow.rb:892:5:892:8 | hash [element :a] | -| hash_flow.rb:892:12:892:38 | call to reverse_merge! [element :c] | hash_flow.rb:892:5:892:8 | hash [element :c] | -| hash_flow.rb:892:12:892:38 | call to reverse_merge! [element :d] | hash_flow.rb:892:5:892:8 | hash [element :d] | -| hash_flow.rb:892:12:892:38 | call to reverse_merge! [element :f] | hash_flow.rb:892:5:892:8 | hash [element :f] | -| hash_flow.rb:892:33:892:37 | hash2 [element :d] | hash_flow.rb:892:12:892:16 | [post] hash1 [element :d] | -| hash_flow.rb:892:33:892:37 | hash2 [element :d] | hash_flow.rb:892:12:892:38 | call to reverse_merge! [element :d] | -| hash_flow.rb:892:33:892:37 | hash2 [element :f] | hash_flow.rb:892:12:892:16 | [post] hash1 [element :f] | -| hash_flow.rb:892:33:892:37 | hash2 [element :f] | hash_flow.rb:892:12:892:38 | call to reverse_merge! [element :f] | -| hash_flow.rb:893:11:893:14 | hash [element :a] | hash_flow.rb:893:11:893:18 | ...[...] | -| hash_flow.rb:893:11:893:18 | ...[...] | hash_flow.rb:893:10:893:19 | ( ... ) | -| hash_flow.rb:895:11:895:14 | hash [element :c] | hash_flow.rb:895:11:895:18 | ...[...] | -| hash_flow.rb:895:11:895:18 | ...[...] | hash_flow.rb:895:10:895:19 | ( ... ) | -| hash_flow.rb:896:11:896:14 | hash [element :d] | hash_flow.rb:896:11:896:18 | ...[...] | -| hash_flow.rb:896:11:896:18 | ...[...] | hash_flow.rb:896:10:896:19 | ( ... ) | -| hash_flow.rb:898:11:898:14 | hash [element :f] | hash_flow.rb:898:11:898:18 | ...[...] | -| hash_flow.rb:898:11:898:18 | ...[...] | hash_flow.rb:898:10:898:19 | ( ... ) | -| hash_flow.rb:900:11:900:15 | hash1 [element :a] | hash_flow.rb:900:11:900:19 | ...[...] | -| hash_flow.rb:900:11:900:19 | ...[...] | hash_flow.rb:900:10:900:20 | ( ... ) | -| hash_flow.rb:902:11:902:15 | hash1 [element :c] | hash_flow.rb:902:11:902:19 | ...[...] | -| hash_flow.rb:902:11:902:19 | ...[...] | hash_flow.rb:902:10:902:20 | ( ... ) | -| hash_flow.rb:903:11:903:15 | hash1 [element :d] | hash_flow.rb:903:11:903:19 | ...[...] | -| hash_flow.rb:903:11:903:19 | ...[...] | hash_flow.rb:903:10:903:20 | ( ... ) | -| hash_flow.rb:905:11:905:15 | hash1 [element :f] | hash_flow.rb:905:11:905:19 | ...[...] | -| hash_flow.rb:905:11:905:19 | ...[...] | hash_flow.rb:905:10:905:20 | ( ... ) | -| hash_flow.rb:911:5:911:9 | hash1 [element :a] | hash_flow.rb:922:12:922:16 | hash1 [element :a] | -| hash_flow.rb:911:5:911:9 | hash1 [element :c] | hash_flow.rb:922:12:922:16 | hash1 [element :c] | -| hash_flow.rb:912:12:912:22 | call to taint | hash_flow.rb:911:5:911:9 | hash1 [element :a] | -| hash_flow.rb:914:12:914:22 | call to taint | hash_flow.rb:911:5:911:9 | hash1 [element :c] | -| hash_flow.rb:916:5:916:9 | hash2 [element :d] | hash_flow.rb:922:33:922:37 | hash2 [element :d] | -| hash_flow.rb:916:5:916:9 | hash2 [element :f] | hash_flow.rb:922:33:922:37 | hash2 [element :f] | -| hash_flow.rb:917:12:917:22 | call to taint | hash_flow.rb:916:5:916:9 | hash2 [element :d] | -| hash_flow.rb:919:12:919:22 | call to taint | hash_flow.rb:916:5:916:9 | hash2 [element :f] | -| hash_flow.rb:922:5:922:8 | hash [element :a] | hash_flow.rb:923:11:923:14 | hash [element :a] | -| hash_flow.rb:922:5:922:8 | hash [element :c] | hash_flow.rb:925:11:925:14 | hash [element :c] | -| hash_flow.rb:922:5:922:8 | hash [element :d] | hash_flow.rb:926:11:926:14 | hash [element :d] | -| hash_flow.rb:922:5:922:8 | hash [element :f] | hash_flow.rb:928:11:928:14 | hash [element :f] | -| hash_flow.rb:922:12:922:16 | [post] hash1 [element :a] | hash_flow.rb:930:11:930:15 | hash1 [element :a] | -| hash_flow.rb:922:12:922:16 | [post] hash1 [element :c] | hash_flow.rb:932:11:932:15 | hash1 [element :c] | -| hash_flow.rb:922:12:922:16 | [post] hash1 [element :d] | hash_flow.rb:933:11:933:15 | hash1 [element :d] | -| hash_flow.rb:922:12:922:16 | [post] hash1 [element :f] | hash_flow.rb:935:11:935:15 | hash1 [element :f] | -| hash_flow.rb:922:12:922:16 | hash1 [element :a] | hash_flow.rb:922:12:922:16 | [post] hash1 [element :a] | -| hash_flow.rb:922:12:922:16 | hash1 [element :a] | hash_flow.rb:922:12:922:38 | call to with_defaults! [element :a] | -| hash_flow.rb:922:12:922:16 | hash1 [element :c] | hash_flow.rb:922:12:922:16 | [post] hash1 [element :c] | -| hash_flow.rb:922:12:922:16 | hash1 [element :c] | hash_flow.rb:922:12:922:38 | call to with_defaults! [element :c] | -| hash_flow.rb:922:12:922:38 | call to with_defaults! [element :a] | hash_flow.rb:922:5:922:8 | hash [element :a] | -| hash_flow.rb:922:12:922:38 | call to with_defaults! [element :c] | hash_flow.rb:922:5:922:8 | hash [element :c] | -| hash_flow.rb:922:12:922:38 | call to with_defaults! [element :d] | hash_flow.rb:922:5:922:8 | hash [element :d] | -| hash_flow.rb:922:12:922:38 | call to with_defaults! [element :f] | hash_flow.rb:922:5:922:8 | hash [element :f] | -| hash_flow.rb:922:33:922:37 | hash2 [element :d] | hash_flow.rb:922:12:922:16 | [post] hash1 [element :d] | -| hash_flow.rb:922:33:922:37 | hash2 [element :d] | hash_flow.rb:922:12:922:38 | call to with_defaults! [element :d] | -| hash_flow.rb:922:33:922:37 | hash2 [element :f] | hash_flow.rb:922:12:922:16 | [post] hash1 [element :f] | -| hash_flow.rb:922:33:922:37 | hash2 [element :f] | hash_flow.rb:922:12:922:38 | call to with_defaults! [element :f] | -| hash_flow.rb:923:11:923:14 | hash [element :a] | hash_flow.rb:923:11:923:18 | ...[...] | -| hash_flow.rb:923:11:923:18 | ...[...] | hash_flow.rb:923:10:923:19 | ( ... ) | -| hash_flow.rb:925:11:925:14 | hash [element :c] | hash_flow.rb:925:11:925:18 | ...[...] | -| hash_flow.rb:925:11:925:18 | ...[...] | hash_flow.rb:925:10:925:19 | ( ... ) | -| hash_flow.rb:926:11:926:14 | hash [element :d] | hash_flow.rb:926:11:926:18 | ...[...] | -| hash_flow.rb:926:11:926:18 | ...[...] | hash_flow.rb:926:10:926:19 | ( ... ) | -| hash_flow.rb:928:11:928:14 | hash [element :f] | hash_flow.rb:928:11:928:18 | ...[...] | -| hash_flow.rb:928:11:928:18 | ...[...] | hash_flow.rb:928:10:928:19 | ( ... ) | -| hash_flow.rb:930:11:930:15 | hash1 [element :a] | hash_flow.rb:930:11:930:19 | ...[...] | -| hash_flow.rb:930:11:930:19 | ...[...] | hash_flow.rb:930:10:930:20 | ( ... ) | -| hash_flow.rb:932:11:932:15 | hash1 [element :c] | hash_flow.rb:932:11:932:19 | ...[...] | -| hash_flow.rb:932:11:932:19 | ...[...] | hash_flow.rb:932:10:932:20 | ( ... ) | -| hash_flow.rb:933:11:933:15 | hash1 [element :d] | hash_flow.rb:933:11:933:19 | ...[...] | -| hash_flow.rb:933:11:933:19 | ...[...] | hash_flow.rb:933:10:933:20 | ( ... ) | -| hash_flow.rb:935:11:935:15 | hash1 [element :f] | hash_flow.rb:935:11:935:19 | ...[...] | -| hash_flow.rb:935:11:935:19 | ...[...] | hash_flow.rb:935:10:935:20 | ( ... ) | -| hash_flow.rb:941:5:941:9 | hash1 [element :a] | hash_flow.rb:952:12:952:16 | hash1 [element :a] | -| hash_flow.rb:941:5:941:9 | hash1 [element :c] | hash_flow.rb:952:12:952:16 | hash1 [element :c] | -| hash_flow.rb:942:12:942:22 | call to taint | hash_flow.rb:941:5:941:9 | hash1 [element :a] | -| hash_flow.rb:944:12:944:22 | call to taint | hash_flow.rb:941:5:941:9 | hash1 [element :c] | -| hash_flow.rb:946:5:946:9 | hash2 [element :d] | hash_flow.rb:952:33:952:37 | hash2 [element :d] | -| hash_flow.rb:946:5:946:9 | hash2 [element :f] | hash_flow.rb:952:33:952:37 | hash2 [element :f] | -| hash_flow.rb:947:12:947:22 | call to taint | hash_flow.rb:946:5:946:9 | hash2 [element :d] | -| hash_flow.rb:949:12:949:22 | call to taint | hash_flow.rb:946:5:946:9 | hash2 [element :f] | -| hash_flow.rb:952:5:952:8 | hash [element :a] | hash_flow.rb:953:11:953:14 | hash [element :a] | -| hash_flow.rb:952:5:952:8 | hash [element :c] | hash_flow.rb:955:11:955:14 | hash [element :c] | -| hash_flow.rb:952:5:952:8 | hash [element :d] | hash_flow.rb:956:11:956:14 | hash [element :d] | -| hash_flow.rb:952:5:952:8 | hash [element :f] | hash_flow.rb:958:11:958:14 | hash [element :f] | -| hash_flow.rb:952:12:952:16 | [post] hash1 [element :a] | hash_flow.rb:960:11:960:15 | hash1 [element :a] | -| hash_flow.rb:952:12:952:16 | [post] hash1 [element :c] | hash_flow.rb:962:11:962:15 | hash1 [element :c] | -| hash_flow.rb:952:12:952:16 | [post] hash1 [element :d] | hash_flow.rb:963:11:963:15 | hash1 [element :d] | -| hash_flow.rb:952:12:952:16 | [post] hash1 [element :f] | hash_flow.rb:965:11:965:15 | hash1 [element :f] | -| hash_flow.rb:952:12:952:16 | hash1 [element :a] | hash_flow.rb:952:12:952:16 | [post] hash1 [element :a] | -| hash_flow.rb:952:12:952:16 | hash1 [element :a] | hash_flow.rb:952:12:952:38 | call to with_defaults! [element :a] | -| hash_flow.rb:952:12:952:16 | hash1 [element :c] | hash_flow.rb:952:12:952:16 | [post] hash1 [element :c] | -| hash_flow.rb:952:12:952:16 | hash1 [element :c] | hash_flow.rb:952:12:952:38 | call to with_defaults! [element :c] | -| hash_flow.rb:952:12:952:38 | call to with_defaults! [element :a] | hash_flow.rb:952:5:952:8 | hash [element :a] | -| hash_flow.rb:952:12:952:38 | call to with_defaults! [element :c] | hash_flow.rb:952:5:952:8 | hash [element :c] | -| hash_flow.rb:952:12:952:38 | call to with_defaults! [element :d] | hash_flow.rb:952:5:952:8 | hash [element :d] | -| hash_flow.rb:952:12:952:38 | call to with_defaults! [element :f] | hash_flow.rb:952:5:952:8 | hash [element :f] | -| hash_flow.rb:952:33:952:37 | hash2 [element :d] | hash_flow.rb:952:12:952:16 | [post] hash1 [element :d] | -| hash_flow.rb:952:33:952:37 | hash2 [element :d] | hash_flow.rb:952:12:952:38 | call to with_defaults! [element :d] | -| hash_flow.rb:952:33:952:37 | hash2 [element :f] | hash_flow.rb:952:12:952:16 | [post] hash1 [element :f] | -| hash_flow.rb:952:33:952:37 | hash2 [element :f] | hash_flow.rb:952:12:952:38 | call to with_defaults! [element :f] | -| hash_flow.rb:953:11:953:14 | hash [element :a] | hash_flow.rb:953:11:953:18 | ...[...] | -| hash_flow.rb:953:11:953:18 | ...[...] | hash_flow.rb:953:10:953:19 | ( ... ) | -| hash_flow.rb:955:11:955:14 | hash [element :c] | hash_flow.rb:955:11:955:18 | ...[...] | -| hash_flow.rb:955:11:955:18 | ...[...] | hash_flow.rb:955:10:955:19 | ( ... ) | -| hash_flow.rb:956:11:956:14 | hash [element :d] | hash_flow.rb:956:11:956:18 | ...[...] | -| hash_flow.rb:956:11:956:18 | ...[...] | hash_flow.rb:956:10:956:19 | ( ... ) | -| hash_flow.rb:958:11:958:14 | hash [element :f] | hash_flow.rb:958:11:958:18 | ...[...] | -| hash_flow.rb:958:11:958:18 | ...[...] | hash_flow.rb:958:10:958:19 | ( ... ) | -| hash_flow.rb:960:11:960:15 | hash1 [element :a] | hash_flow.rb:960:11:960:19 | ...[...] | -| hash_flow.rb:960:11:960:19 | ...[...] | hash_flow.rb:960:10:960:20 | ( ... ) | -| hash_flow.rb:962:11:962:15 | hash1 [element :c] | hash_flow.rb:962:11:962:19 | ...[...] | -| hash_flow.rb:962:11:962:19 | ...[...] | hash_flow.rb:962:10:962:20 | ( ... ) | -| hash_flow.rb:963:11:963:15 | hash1 [element :d] | hash_flow.rb:963:11:963:19 | ...[...] | -| hash_flow.rb:963:11:963:19 | ...[...] | hash_flow.rb:963:10:963:20 | ( ... ) | -| hash_flow.rb:965:11:965:15 | hash1 [element :f] | hash_flow.rb:965:11:965:19 | ...[...] | -| hash_flow.rb:965:11:965:19 | ...[...] | hash_flow.rb:965:10:965:20 | ( ... ) | -| hash_flow.rb:971:5:971:5 | h [element :b] | hash_flow.rb:973:10:973:10 | h [element :b] | -| hash_flow.rb:971:5:971:5 | h [element :b] | hash_flow.rb:975:10:975:10 | h [element :b] | -| hash_flow.rb:971:9:971:38 | ...[...] [element :b] | hash_flow.rb:971:5:971:5 | h [element :b] | -| hash_flow.rb:971:23:971:31 | call to taint | hash_flow.rb:971:9:971:38 | ...[...] [element :b] | -| hash_flow.rb:973:10:973:10 | h [element :b] | hash_flow.rb:973:10:973:14 | ...[...] | -| hash_flow.rb:975:10:975:10 | h [element :b] | hash_flow.rb:975:10:975:13 | ...[...] | -| hash_flow.rb:994:9:994:10 | h2 [element :b] | hash_flow.rb:996:14:996:15 | h2 [element :b] | -| hash_flow.rb:994:9:994:10 | h2 [element :b] | hash_flow.rb:998:14:998:15 | h2 [element :b] | -| hash_flow.rb:994:14:994:47 | ...[...] [element :b] | hash_flow.rb:994:9:994:10 | h2 [element :b] | -| hash_flow.rb:994:30:994:40 | call to taint | hash_flow.rb:994:14:994:47 | ...[...] [element :b] | -| hash_flow.rb:996:14:996:15 | h2 [element :b] | hash_flow.rb:996:14:996:19 | ...[...] | -| hash_flow.rb:998:14:998:15 | h2 [element :b] | hash_flow.rb:998:14:998:18 | ...[...] | +| hash_flow.rb:10:5:10:8 | hash [element 0] | hash_flow.rb:30:10:30:13 | hash [element 0] | provenance | | +| hash_flow.rb:10:5:10:8 | hash [element :a] | hash_flow.rb:22:10:22:13 | hash [element :a] | provenance | | +| hash_flow.rb:10:5:10:8 | hash [element :c] | hash_flow.rb:24:10:24:13 | hash [element :c] | provenance | | +| hash_flow.rb:10:5:10:8 | hash [element e] | hash_flow.rb:26:10:26:13 | hash [element e] | provenance | | +| hash_flow.rb:10:5:10:8 | hash [element g] | hash_flow.rb:28:10:28:13 | hash [element g] | provenance | | +| hash_flow.rb:11:15:11:24 | call to taint | hash_flow.rb:10:5:10:8 | hash [element :a] | provenance | | +| hash_flow.rb:13:12:13:21 | call to taint | hash_flow.rb:10:5:10:8 | hash [element :c] | provenance | | +| hash_flow.rb:15:14:15:23 | call to taint | hash_flow.rb:10:5:10:8 | hash [element e] | provenance | | +| hash_flow.rb:17:16:17:25 | call to taint | hash_flow.rb:10:5:10:8 | hash [element g] | provenance | | +| hash_flow.rb:19:14:19:23 | call to taint | hash_flow.rb:10:5:10:8 | hash [element 0] | provenance | | +| hash_flow.rb:22:10:22:13 | hash [element :a] | hash_flow.rb:22:10:22:17 | ...[...] | provenance | | +| hash_flow.rb:24:10:24:13 | hash [element :c] | hash_flow.rb:24:10:24:17 | ...[...] | provenance | | +| hash_flow.rb:26:10:26:13 | hash [element e] | hash_flow.rb:26:10:26:18 | ...[...] | provenance | | +| hash_flow.rb:28:10:28:13 | hash [element g] | hash_flow.rb:28:10:28:18 | ...[...] | provenance | | +| hash_flow.rb:30:10:30:13 | hash [element 0] | hash_flow.rb:30:10:30:16 | ...[...] | provenance | | +| hash_flow.rb:38:5:38:8 | [post] hash [element 0] | hash_flow.rb:39:5:39:8 | hash [element 0] | provenance | | +| hash_flow.rb:38:15:38:24 | call to taint | hash_flow.rb:38:5:38:8 | [post] hash [element 0] | provenance | | +| hash_flow.rb:39:5:39:8 | [post] hash [element 0] | hash_flow.rb:40:5:40:8 | hash [element 0] | provenance | | +| hash_flow.rb:39:5:39:8 | hash [element 0] | hash_flow.rb:39:5:39:8 | [post] hash [element 0] | provenance | | +| hash_flow.rb:40:5:40:8 | [post] hash [element 0] | hash_flow.rb:41:5:41:8 | hash [element 0] | provenance | | +| hash_flow.rb:40:5:40:8 | [post] hash [element :a] | hash_flow.rb:41:5:41:8 | hash [element :a] | provenance | | +| hash_flow.rb:40:5:40:8 | hash [element 0] | hash_flow.rb:40:5:40:8 | [post] hash [element 0] | provenance | | +| hash_flow.rb:40:16:40:25 | call to taint | hash_flow.rb:40:5:40:8 | [post] hash [element :a] | provenance | | +| hash_flow.rb:41:5:41:8 | [post] hash [element 0] | hash_flow.rb:42:5:42:8 | hash [element 0] | provenance | | +| hash_flow.rb:41:5:41:8 | [post] hash [element :a] | hash_flow.rb:42:5:42:8 | hash [element :a] | provenance | | +| hash_flow.rb:41:5:41:8 | hash [element 0] | hash_flow.rb:41:5:41:8 | [post] hash [element 0] | provenance | | +| hash_flow.rb:41:5:41:8 | hash [element :a] | hash_flow.rb:41:5:41:8 | [post] hash [element :a] | provenance | | +| hash_flow.rb:42:5:42:8 | [post] hash [element 0] | hash_flow.rb:43:5:43:8 | hash [element 0] | provenance | | +| hash_flow.rb:42:5:42:8 | [post] hash [element :a] | hash_flow.rb:43:5:43:8 | hash [element :a] | provenance | | +| hash_flow.rb:42:5:42:8 | [post] hash [element a] | hash_flow.rb:43:5:43:8 | hash [element a] | provenance | | +| hash_flow.rb:42:5:42:8 | hash [element 0] | hash_flow.rb:42:5:42:8 | [post] hash [element 0] | provenance | | +| hash_flow.rb:42:5:42:8 | hash [element :a] | hash_flow.rb:42:5:42:8 | [post] hash [element :a] | provenance | | +| hash_flow.rb:42:17:42:26 | call to taint | hash_flow.rb:42:5:42:8 | [post] hash [element a] | provenance | | +| hash_flow.rb:43:5:43:8 | [post] hash [element 0] | hash_flow.rb:44:10:44:13 | hash [element 0] | provenance | | +| hash_flow.rb:43:5:43:8 | [post] hash [element :a] | hash_flow.rb:46:10:46:13 | hash [element :a] | provenance | | +| hash_flow.rb:43:5:43:8 | [post] hash [element a] | hash_flow.rb:48:10:48:13 | hash [element a] | provenance | | +| hash_flow.rb:43:5:43:8 | hash [element 0] | hash_flow.rb:43:5:43:8 | [post] hash [element 0] | provenance | | +| hash_flow.rb:43:5:43:8 | hash [element :a] | hash_flow.rb:43:5:43:8 | [post] hash [element :a] | provenance | | +| hash_flow.rb:43:5:43:8 | hash [element a] | hash_flow.rb:43:5:43:8 | [post] hash [element a] | provenance | | +| hash_flow.rb:44:10:44:13 | hash [element 0] | hash_flow.rb:44:10:44:16 | ...[...] | provenance | | +| hash_flow.rb:46:10:46:13 | hash [element :a] | hash_flow.rb:46:10:46:17 | ...[...] | provenance | | +| hash_flow.rb:48:10:48:13 | hash [element a] | hash_flow.rb:48:10:48:18 | ...[...] | provenance | | +| hash_flow.rb:55:5:55:9 | hash1 [element :a] | hash_flow.rb:56:10:56:14 | hash1 [element :a] | provenance | | +| hash_flow.rb:55:13:55:37 | ...[...] [element :a] | hash_flow.rb:55:5:55:9 | hash1 [element :a] | provenance | | +| hash_flow.rb:55:21:55:30 | call to taint | hash_flow.rb:55:13:55:37 | ...[...] [element :a] | provenance | | +| hash_flow.rb:56:10:56:14 | hash1 [element :a] | hash_flow.rb:56:10:56:18 | ...[...] | provenance | | +| hash_flow.rb:59:5:59:5 | x [element :a] | hash_flow.rb:60:18:60:18 | x [element :a] | provenance | | +| hash_flow.rb:59:13:59:22 | call to taint | hash_flow.rb:59:5:59:5 | x [element :a] | provenance | | +| hash_flow.rb:60:5:60:9 | hash2 [element :a] | hash_flow.rb:61:10:61:14 | hash2 [element :a] | provenance | | +| hash_flow.rb:60:13:60:19 | ...[...] [element :a] | hash_flow.rb:60:5:60:9 | hash2 [element :a] | provenance | | +| hash_flow.rb:60:18:60:18 | x [element :a] | hash_flow.rb:60:13:60:19 | ...[...] [element :a] | provenance | | +| hash_flow.rb:61:10:61:14 | hash2 [element :a] | hash_flow.rb:61:10:61:18 | ...[...] | provenance | | +| hash_flow.rb:64:5:64:9 | hash3 [element] | hash_flow.rb:65:10:65:14 | hash3 [element] | provenance | | +| hash_flow.rb:64:5:64:9 | hash3 [element] | hash_flow.rb:66:10:66:14 | hash3 [element] | provenance | | +| hash_flow.rb:64:13:64:45 | ...[...] [element] | hash_flow.rb:64:5:64:9 | hash3 [element] | provenance | | +| hash_flow.rb:64:24:64:33 | call to taint | hash_flow.rb:64:13:64:45 | ...[...] [element] | provenance | | +| hash_flow.rb:65:10:65:14 | hash3 [element] | hash_flow.rb:65:10:65:18 | ...[...] | provenance | | +| hash_flow.rb:66:10:66:14 | hash3 [element] | hash_flow.rb:66:10:66:18 | ...[...] | provenance | | +| hash_flow.rb:68:5:68:9 | hash4 [element :a] | hash_flow.rb:69:10:69:14 | hash4 [element :a] | provenance | | +| hash_flow.rb:68:13:68:39 | ...[...] [element :a] | hash_flow.rb:68:5:68:9 | hash4 [element :a] | provenance | | +| hash_flow.rb:68:22:68:31 | call to taint | hash_flow.rb:68:13:68:39 | ...[...] [element :a] | provenance | | +| hash_flow.rb:69:10:69:14 | hash4 [element :a] | hash_flow.rb:69:10:69:18 | ...[...] | provenance | | +| hash_flow.rb:72:5:72:9 | hash5 [element a] | hash_flow.rb:73:10:73:14 | hash5 [element a] | provenance | | +| hash_flow.rb:72:13:72:45 | ...[...] [element a] | hash_flow.rb:72:5:72:9 | hash5 [element a] | provenance | | +| hash_flow.rb:72:25:72:34 | call to taint | hash_flow.rb:72:13:72:45 | ...[...] [element a] | provenance | | +| hash_flow.rb:73:10:73:14 | hash5 [element a] | hash_flow.rb:73:10:73:19 | ...[...] | provenance | | +| hash_flow.rb:76:5:76:9 | hash6 [element a] | hash_flow.rb:77:10:77:14 | hash6 [element a] | provenance | | +| hash_flow.rb:76:13:76:47 | ...[...] [element a] | hash_flow.rb:76:5:76:9 | hash6 [element a] | provenance | | +| hash_flow.rb:76:26:76:35 | call to taint | hash_flow.rb:76:13:76:47 | ...[...] [element a] | provenance | | +| hash_flow.rb:77:10:77:14 | hash6 [element a] | hash_flow.rb:77:10:77:19 | ...[...] | provenance | | +| hash_flow.rb:84:5:84:9 | hash1 [element :a] | hash_flow.rb:85:10:85:14 | hash1 [element :a] | provenance | | +| hash_flow.rb:84:13:84:42 | call to [] [element :a] | hash_flow.rb:84:5:84:9 | hash1 [element :a] | provenance | | +| hash_flow.rb:84:26:84:35 | call to taint | hash_flow.rb:84:13:84:42 | call to [] [element :a] | provenance | | +| hash_flow.rb:85:10:85:14 | hash1 [element :a] | hash_flow.rb:85:10:85:18 | ...[...] | provenance | | +| hash_flow.rb:92:5:92:8 | hash [element :a] | hash_flow.rb:96:30:96:33 | hash [element :a] | provenance | | +| hash_flow.rb:93:15:93:24 | call to taint | hash_flow.rb:92:5:92:8 | hash [element :a] | provenance | | +| hash_flow.rb:96:5:96:9 | hash2 [element :a] | hash_flow.rb:97:10:97:14 | hash2 [element :a] | provenance | | +| hash_flow.rb:96:13:96:34 | call to try_convert [element :a] | hash_flow.rb:96:5:96:9 | hash2 [element :a] | provenance | | +| hash_flow.rb:96:30:96:33 | hash [element :a] | hash_flow.rb:96:13:96:34 | call to try_convert [element :a] | provenance | | +| hash_flow.rb:97:10:97:14 | hash2 [element :a] | hash_flow.rb:97:10:97:18 | ...[...] | provenance | | +| hash_flow.rb:105:5:105:5 | b | hash_flow.rb:106:10:106:10 | b | provenance | | +| hash_flow.rb:105:21:105:30 | call to taint | hash_flow.rb:105:5:105:5 | b | provenance | | +| hash_flow.rb:113:5:113:5 | b | hash_flow.rb:115:10:115:10 | b | provenance | | +| hash_flow.rb:113:9:113:12 | [post] hash [element :a] | hash_flow.rb:114:10:114:13 | hash [element :a] | provenance | | +| hash_flow.rb:113:9:113:34 | call to store | hash_flow.rb:113:5:113:5 | b | provenance | | +| hash_flow.rb:113:24:113:33 | call to taint | hash_flow.rb:113:9:113:12 | [post] hash [element :a] | provenance | | +| hash_flow.rb:113:24:113:33 | call to taint | hash_flow.rb:113:9:113:34 | call to store | provenance | | +| hash_flow.rb:114:10:114:13 | hash [element :a] | hash_flow.rb:114:10:114:17 | ...[...] | provenance | | +| hash_flow.rb:118:5:118:5 | c | hash_flow.rb:121:10:121:10 | c | provenance | | +| hash_flow.rb:118:9:118:12 | [post] hash [element] | hash_flow.rb:119:10:119:13 | hash [element] | provenance | | +| hash_flow.rb:118:9:118:12 | [post] hash [element] | hash_flow.rb:120:10:120:13 | hash [element] | provenance | | +| hash_flow.rb:118:9:118:33 | call to store | hash_flow.rb:118:5:118:5 | c | provenance | | +| hash_flow.rb:118:23:118:32 | call to taint | hash_flow.rb:118:9:118:12 | [post] hash [element] | provenance | | +| hash_flow.rb:118:23:118:32 | call to taint | hash_flow.rb:118:9:118:33 | call to store | provenance | | +| hash_flow.rb:119:10:119:13 | hash [element] | hash_flow.rb:119:10:119:17 | ...[...] | provenance | | +| hash_flow.rb:120:10:120:13 | hash [element] | hash_flow.rb:120:10:120:17 | ...[...] | provenance | | +| hash_flow.rb:127:5:127:8 | hash [element :a] | hash_flow.rb:131:5:131:8 | hash [element :a] | provenance | | +| hash_flow.rb:127:5:127:8 | hash [element :a] | hash_flow.rb:134:5:134:8 | hash [element :a] | provenance | | +| hash_flow.rb:128:15:128:24 | call to taint | hash_flow.rb:127:5:127:8 | hash [element :a] | provenance | | +| hash_flow.rb:131:5:131:8 | hash [element :a] | hash_flow.rb:131:18:131:29 | key_or_value | provenance | | +| hash_flow.rb:131:18:131:29 | key_or_value | hash_flow.rb:132:14:132:25 | key_or_value | provenance | | +| hash_flow.rb:134:5:134:8 | hash [element :a] | hash_flow.rb:134:22:134:26 | value | provenance | | +| hash_flow.rb:134:22:134:26 | value | hash_flow.rb:136:14:136:18 | value | provenance | | +| hash_flow.rb:143:5:143:8 | hash [element :a] | hash_flow.rb:147:9:147:12 | hash [element :a] | provenance | | +| hash_flow.rb:143:5:143:8 | hash [element :a] | hash_flow.rb:151:9:151:12 | hash [element :a] | provenance | | +| hash_flow.rb:144:15:144:25 | call to taint | hash_flow.rb:143:5:143:8 | hash [element :a] | provenance | | +| hash_flow.rb:147:5:147:5 | b [element 1] | hash_flow.rb:149:10:149:10 | b [element 1] | provenance | | +| hash_flow.rb:147:5:147:5 | b [element 1] | hash_flow.rb:150:10:150:10 | b [element 1] | provenance | | +| hash_flow.rb:147:9:147:12 | hash [element :a] | hash_flow.rb:147:9:147:22 | call to assoc [element 1] | provenance | | +| hash_flow.rb:147:9:147:22 | call to assoc [element 1] | hash_flow.rb:147:5:147:5 | b [element 1] | provenance | | +| hash_flow.rb:149:10:149:10 | b [element 1] | hash_flow.rb:149:10:149:13 | ...[...] | provenance | | +| hash_flow.rb:150:10:150:10 | b [element 1] | hash_flow.rb:150:10:150:13 | ...[...] | provenance | | +| hash_flow.rb:151:5:151:5 | c [element 1] | hash_flow.rb:152:10:152:10 | c [element 1] | provenance | | +| hash_flow.rb:151:9:151:12 | hash [element :a] | hash_flow.rb:151:9:151:21 | call to assoc [element 1] | provenance | | +| hash_flow.rb:151:9:151:21 | call to assoc [element 1] | hash_flow.rb:151:5:151:5 | c [element 1] | provenance | | +| hash_flow.rb:152:10:152:10 | c [element 1] | hash_flow.rb:152:10:152:13 | ...[...] | provenance | | +| hash_flow.rb:169:5:169:8 | hash [element :a] | hash_flow.rb:173:9:173:12 | hash [element :a] | provenance | | +| hash_flow.rb:170:15:170:25 | call to taint | hash_flow.rb:169:5:169:8 | hash [element :a] | provenance | | +| hash_flow.rb:173:5:173:5 | a [element :a] | hash_flow.rb:174:10:174:10 | a [element :a] | provenance | | +| hash_flow.rb:173:9:173:12 | hash [element :a] | hash_flow.rb:173:9:173:20 | call to compact [element :a] | provenance | | +| hash_flow.rb:173:9:173:20 | call to compact [element :a] | hash_flow.rb:173:5:173:5 | a [element :a] | provenance | | +| hash_flow.rb:174:10:174:10 | a [element :a] | hash_flow.rb:174:10:174:14 | ...[...] | provenance | | +| hash_flow.rb:181:5:181:8 | hash [element :a] | hash_flow.rb:185:9:185:12 | hash [element :a] | provenance | | +| hash_flow.rb:182:15:182:25 | call to taint | hash_flow.rb:181:5:181:8 | hash [element :a] | provenance | | +| hash_flow.rb:185:5:185:5 | a | hash_flow.rb:186:10:186:10 | a | provenance | | +| hash_flow.rb:185:9:185:12 | hash [element :a] | hash_flow.rb:185:9:185:23 | call to delete | provenance | | +| hash_flow.rb:185:9:185:23 | call to delete | hash_flow.rb:185:5:185:5 | a | provenance | | +| hash_flow.rb:193:5:193:8 | hash [element :a] | hash_flow.rb:197:9:197:12 | hash [element :a] | provenance | | +| hash_flow.rb:194:15:194:25 | call to taint | hash_flow.rb:193:5:193:8 | hash [element :a] | provenance | | +| hash_flow.rb:197:5:197:5 | a [element :a] | hash_flow.rb:201:10:201:10 | a [element :a] | provenance | | +| hash_flow.rb:197:9:197:12 | [post] hash [element :a] | hash_flow.rb:202:10:202:13 | hash [element :a] | provenance | | +| hash_flow.rb:197:9:197:12 | hash [element :a] | hash_flow.rb:197:9:197:12 | [post] hash [element :a] | provenance | | +| hash_flow.rb:197:9:197:12 | hash [element :a] | hash_flow.rb:197:9:200:7 | call to delete_if [element :a] | provenance | | +| hash_flow.rb:197:9:197:12 | hash [element :a] | hash_flow.rb:197:33:197:37 | value | provenance | | +| hash_flow.rb:197:9:200:7 | call to delete_if [element :a] | hash_flow.rb:197:5:197:5 | a [element :a] | provenance | | +| hash_flow.rb:197:33:197:37 | value | hash_flow.rb:199:14:199:18 | value | provenance | | +| hash_flow.rb:201:10:201:10 | a [element :a] | hash_flow.rb:201:10:201:14 | ...[...] | provenance | | +| hash_flow.rb:202:10:202:13 | hash [element :a] | hash_flow.rb:202:10:202:17 | ...[...] | provenance | | +| hash_flow.rb:209:5:209:8 | hash [element :a] | hash_flow.rb:217:10:217:13 | hash [element :a] | provenance | | +| hash_flow.rb:209:5:209:8 | hash [element :c, element :d] | hash_flow.rb:219:10:219:13 | hash [element :c, element :d] | provenance | | +| hash_flow.rb:210:15:210:25 | call to taint | hash_flow.rb:209:5:209:8 | hash [element :a] | provenance | | +| hash_flow.rb:213:19:213:29 | call to taint | hash_flow.rb:209:5:209:8 | hash [element :c, element :d] | provenance | | +| hash_flow.rb:217:10:217:13 | hash [element :a] | hash_flow.rb:217:10:217:21 | call to dig | provenance | | +| hash_flow.rb:219:10:219:13 | hash [element :c, element :d] | hash_flow.rb:219:10:219:24 | call to dig | provenance | | +| hash_flow.rb:226:5:226:8 | hash [element :a] | hash_flow.rb:230:9:230:12 | hash [element :a] | provenance | | +| hash_flow.rb:227:15:227:25 | call to taint | hash_flow.rb:226:5:226:8 | hash [element :a] | provenance | | +| hash_flow.rb:230:5:230:5 | x [element :a] | hash_flow.rb:234:10:234:10 | x [element :a] | provenance | | +| hash_flow.rb:230:9:230:12 | hash [element :a] | hash_flow.rb:230:9:233:7 | call to each [element :a] | provenance | | +| hash_flow.rb:230:9:230:12 | hash [element :a] | hash_flow.rb:230:28:230:32 | value | provenance | | +| hash_flow.rb:230:9:233:7 | call to each [element :a] | hash_flow.rb:230:5:230:5 | x [element :a] | provenance | | +| hash_flow.rb:230:28:230:32 | value | hash_flow.rb:232:14:232:18 | value | provenance | | +| hash_flow.rb:234:10:234:10 | x [element :a] | hash_flow.rb:234:10:234:14 | ...[...] | provenance | | +| hash_flow.rb:241:5:241:8 | hash [element :a] | hash_flow.rb:245:9:245:12 | hash [element :a] | provenance | | +| hash_flow.rb:242:15:242:25 | call to taint | hash_flow.rb:241:5:241:8 | hash [element :a] | provenance | | +| hash_flow.rb:245:5:245:5 | x [element :a] | hash_flow.rb:248:10:248:10 | x [element :a] | provenance | | +| hash_flow.rb:245:9:245:12 | hash [element :a] | hash_flow.rb:245:9:247:7 | call to each_key [element :a] | provenance | | +| hash_flow.rb:245:9:247:7 | call to each_key [element :a] | hash_flow.rb:245:5:245:5 | x [element :a] | provenance | | +| hash_flow.rb:248:10:248:10 | x [element :a] | hash_flow.rb:248:10:248:14 | ...[...] | provenance | | +| hash_flow.rb:255:5:255:8 | hash [element :a] | hash_flow.rb:259:9:259:12 | hash [element :a] | provenance | | +| hash_flow.rb:256:15:256:25 | call to taint | hash_flow.rb:255:5:255:8 | hash [element :a] | provenance | | +| hash_flow.rb:259:5:259:5 | x [element :a] | hash_flow.rb:263:10:263:10 | x [element :a] | provenance | | +| hash_flow.rb:259:9:259:12 | hash [element :a] | hash_flow.rb:259:9:262:7 | call to each_pair [element :a] | provenance | | +| hash_flow.rb:259:9:259:12 | hash [element :a] | hash_flow.rb:259:33:259:37 | value | provenance | | +| hash_flow.rb:259:9:262:7 | call to each_pair [element :a] | hash_flow.rb:259:5:259:5 | x [element :a] | provenance | | +| hash_flow.rb:259:33:259:37 | value | hash_flow.rb:261:14:261:18 | value | provenance | | +| hash_flow.rb:263:10:263:10 | x [element :a] | hash_flow.rb:263:10:263:14 | ...[...] | provenance | | +| hash_flow.rb:270:5:270:8 | hash [element :a] | hash_flow.rb:274:9:274:12 | hash [element :a] | provenance | | +| hash_flow.rb:271:15:271:25 | call to taint | hash_flow.rb:270:5:270:8 | hash [element :a] | provenance | | +| hash_flow.rb:274:5:274:5 | x [element :a] | hash_flow.rb:277:10:277:10 | x [element :a] | provenance | | +| hash_flow.rb:274:9:274:12 | hash [element :a] | hash_flow.rb:274:9:276:7 | call to each_value [element :a] | provenance | | +| hash_flow.rb:274:9:274:12 | hash [element :a] | hash_flow.rb:274:29:274:33 | value | provenance | | +| hash_flow.rb:274:9:276:7 | call to each_value [element :a] | hash_flow.rb:274:5:274:5 | x [element :a] | provenance | | +| hash_flow.rb:274:29:274:33 | value | hash_flow.rb:275:14:275:18 | value | provenance | | +| hash_flow.rb:277:10:277:10 | x [element :a] | hash_flow.rb:277:10:277:14 | ...[...] | provenance | | +| hash_flow.rb:284:5:284:8 | hash [element :c] | hash_flow.rb:290:9:290:12 | hash [element :c] | provenance | | +| hash_flow.rb:287:15:287:25 | call to taint | hash_flow.rb:284:5:284:8 | hash [element :c] | provenance | | +| hash_flow.rb:290:5:290:5 | x [element :c] | hash_flow.rb:293:10:293:10 | x [element :c] | provenance | | +| hash_flow.rb:290:9:290:12 | hash [element :c] | hash_flow.rb:290:9:290:28 | call to except [element :c] | provenance | | +| hash_flow.rb:290:9:290:28 | call to except [element :c] | hash_flow.rb:290:5:290:5 | x [element :c] | provenance | | +| hash_flow.rb:293:10:293:10 | x [element :c] | hash_flow.rb:293:10:293:14 | ...[...] | provenance | | +| hash_flow.rb:300:5:300:8 | hash [element :a] | hash_flow.rb:305:9:305:12 | hash [element :a] | provenance | | +| hash_flow.rb:300:5:300:8 | hash [element :a] | hash_flow.rb:309:9:309:12 | hash [element :a] | provenance | | +| hash_flow.rb:300:5:300:8 | hash [element :a] | hash_flow.rb:311:9:311:12 | hash [element :a] | provenance | | +| hash_flow.rb:300:5:300:8 | hash [element :a] | hash_flow.rb:315:9:315:12 | hash [element :a] | provenance | | +| hash_flow.rb:300:5:300:8 | hash [element :c] | hash_flow.rb:305:9:305:12 | hash [element :c] | provenance | | +| hash_flow.rb:300:5:300:8 | hash [element :c] | hash_flow.rb:315:9:315:12 | hash [element :c] | provenance | | +| hash_flow.rb:301:15:301:25 | call to taint | hash_flow.rb:300:5:300:8 | hash [element :a] | provenance | | +| hash_flow.rb:303:15:303:25 | call to taint | hash_flow.rb:300:5:300:8 | hash [element :c] | provenance | | +| hash_flow.rb:305:5:305:5 | b | hash_flow.rb:308:10:308:10 | b | provenance | | +| hash_flow.rb:305:9:305:12 | hash [element :a] | hash_flow.rb:305:9:307:7 | call to fetch | provenance | | +| hash_flow.rb:305:9:305:12 | hash [element :c] | hash_flow.rb:305:9:307:7 | call to fetch | provenance | | +| hash_flow.rb:305:9:307:7 | call to fetch | hash_flow.rb:305:5:305:5 | b | provenance | | +| hash_flow.rb:305:20:305:30 | call to taint | hash_flow.rb:305:37:305:37 | x | provenance | | +| hash_flow.rb:305:37:305:37 | x | hash_flow.rb:306:14:306:14 | x | provenance | | +| hash_flow.rb:309:5:309:5 | b | hash_flow.rb:310:10:310:10 | b | provenance | | +| hash_flow.rb:309:9:309:12 | hash [element :a] | hash_flow.rb:309:9:309:22 | call to fetch | provenance | | +| hash_flow.rb:309:9:309:22 | call to fetch | hash_flow.rb:309:5:309:5 | b | provenance | | +| hash_flow.rb:311:5:311:5 | b | hash_flow.rb:312:10:312:10 | b | provenance | | +| hash_flow.rb:311:9:311:12 | hash [element :a] | hash_flow.rb:311:9:311:35 | call to fetch | provenance | | +| hash_flow.rb:311:9:311:35 | call to fetch | hash_flow.rb:311:5:311:5 | b | provenance | | +| hash_flow.rb:311:24:311:34 | call to taint | hash_flow.rb:311:9:311:35 | call to fetch | provenance | | +| hash_flow.rb:313:5:313:5 | b | hash_flow.rb:314:10:314:10 | b | provenance | | +| hash_flow.rb:313:9:313:35 | call to fetch | hash_flow.rb:313:5:313:5 | b | provenance | | +| hash_flow.rb:313:24:313:34 | call to taint | hash_flow.rb:313:9:313:35 | call to fetch | provenance | | +| hash_flow.rb:315:5:315:5 | b | hash_flow.rb:316:10:316:10 | b | provenance | | +| hash_flow.rb:315:9:315:12 | hash [element :a] | hash_flow.rb:315:9:315:34 | call to fetch | provenance | | +| hash_flow.rb:315:9:315:12 | hash [element :c] | hash_flow.rb:315:9:315:34 | call to fetch | provenance | | +| hash_flow.rb:315:9:315:34 | call to fetch | hash_flow.rb:315:5:315:5 | b | provenance | | +| hash_flow.rb:315:23:315:33 | call to taint | hash_flow.rb:315:9:315:34 | call to fetch | provenance | | +| hash_flow.rb:322:5:322:8 | hash [element :a] | hash_flow.rb:327:9:327:12 | hash [element :a] | provenance | | +| hash_flow.rb:322:5:322:8 | hash [element :a] | hash_flow.rb:332:9:332:12 | hash [element :a] | provenance | | +| hash_flow.rb:322:5:322:8 | hash [element :a] | hash_flow.rb:334:9:334:12 | hash [element :a] | provenance | | +| hash_flow.rb:322:5:322:8 | hash [element :c] | hash_flow.rb:327:9:327:12 | hash [element :c] | provenance | | +| hash_flow.rb:322:5:322:8 | hash [element :c] | hash_flow.rb:334:9:334:12 | hash [element :c] | provenance | | +| hash_flow.rb:323:15:323:25 | call to taint | hash_flow.rb:322:5:322:8 | hash [element :a] | provenance | | +| hash_flow.rb:325:15:325:25 | call to taint | hash_flow.rb:322:5:322:8 | hash [element :c] | provenance | | +| hash_flow.rb:327:5:327:5 | b [element] | hash_flow.rb:331:10:331:10 | b [element] | provenance | | +| hash_flow.rb:327:9:327:12 | hash [element :a] | hash_flow.rb:327:9:330:7 | call to fetch_values [element] | provenance | | +| hash_flow.rb:327:9:327:12 | hash [element :c] | hash_flow.rb:327:9:330:7 | call to fetch_values [element] | provenance | | +| hash_flow.rb:327:9:330:7 | call to fetch_values [element] | hash_flow.rb:327:5:327:5 | b [element] | provenance | | +| hash_flow.rb:327:27:327:37 | call to taint | hash_flow.rb:327:44:327:44 | x | provenance | | +| hash_flow.rb:327:44:327:44 | x | hash_flow.rb:328:14:328:14 | x | provenance | | +| hash_flow.rb:329:9:329:19 | call to taint | hash_flow.rb:327:9:330:7 | call to fetch_values [element] | provenance | | +| hash_flow.rb:331:10:331:10 | b [element] | hash_flow.rb:331:10:331:13 | ...[...] | provenance | | +| hash_flow.rb:332:5:332:5 | b [element] | hash_flow.rb:333:10:333:10 | b [element] | provenance | | +| hash_flow.rb:332:9:332:12 | hash [element :a] | hash_flow.rb:332:9:332:29 | call to fetch_values [element] | provenance | | +| hash_flow.rb:332:9:332:29 | call to fetch_values [element] | hash_flow.rb:332:5:332:5 | b [element] | provenance | | +| hash_flow.rb:333:10:333:10 | b [element] | hash_flow.rb:333:10:333:13 | ...[...] | provenance | | +| hash_flow.rb:334:5:334:5 | b [element] | hash_flow.rb:335:10:335:10 | b [element] | provenance | | +| hash_flow.rb:334:9:334:12 | hash [element :a] | hash_flow.rb:334:9:334:31 | call to fetch_values [element] | provenance | | +| hash_flow.rb:334:9:334:12 | hash [element :c] | hash_flow.rb:334:9:334:31 | call to fetch_values [element] | provenance | | +| hash_flow.rb:334:9:334:31 | call to fetch_values [element] | hash_flow.rb:334:5:334:5 | b [element] | provenance | | +| hash_flow.rb:335:10:335:10 | b [element] | hash_flow.rb:335:10:335:13 | ...[...] | provenance | | +| hash_flow.rb:341:5:341:8 | hash [element :a] | hash_flow.rb:346:9:346:12 | hash [element :a] | provenance | | +| hash_flow.rb:341:5:341:8 | hash [element :c] | hash_flow.rb:346:9:346:12 | hash [element :c] | provenance | | +| hash_flow.rb:342:15:342:25 | call to taint | hash_flow.rb:341:5:341:8 | hash [element :a] | provenance | | +| hash_flow.rb:344:15:344:25 | call to taint | hash_flow.rb:341:5:341:8 | hash [element :c] | provenance | | +| hash_flow.rb:346:5:346:5 | b [element :a] | hash_flow.rb:351:11:351:11 | b [element :a] | provenance | | +| hash_flow.rb:346:9:346:12 | hash [element :a] | hash_flow.rb:346:9:350:7 | call to filter [element :a] | provenance | | +| hash_flow.rb:346:9:346:12 | hash [element :a] | hash_flow.rb:346:30:346:34 | value | provenance | | +| hash_flow.rb:346:9:346:12 | hash [element :c] | hash_flow.rb:346:30:346:34 | value | provenance | | +| hash_flow.rb:346:9:350:7 | call to filter [element :a] | hash_flow.rb:346:5:346:5 | b [element :a] | provenance | | +| hash_flow.rb:346:30:346:34 | value | hash_flow.rb:348:14:348:18 | value | provenance | | +| hash_flow.rb:351:11:351:11 | b [element :a] | hash_flow.rb:351:11:351:15 | ...[...] | provenance | | +| hash_flow.rb:351:11:351:15 | ...[...] | hash_flow.rb:351:10:351:16 | ( ... ) | provenance | | +| hash_flow.rb:357:5:357:8 | hash [element :a] | hash_flow.rb:362:5:362:8 | hash [element :a] | provenance | | +| hash_flow.rb:357:5:357:8 | hash [element :c] | hash_flow.rb:362:5:362:8 | hash [element :c] | provenance | | +| hash_flow.rb:358:15:358:25 | call to taint | hash_flow.rb:357:5:357:8 | hash [element :a] | provenance | | +| hash_flow.rb:360:15:360:25 | call to taint | hash_flow.rb:357:5:357:8 | hash [element :c] | provenance | | +| hash_flow.rb:362:5:362:8 | [post] hash [element :a] | hash_flow.rb:367:11:367:14 | hash [element :a] | provenance | | +| hash_flow.rb:362:5:362:8 | hash [element :a] | hash_flow.rb:362:5:362:8 | [post] hash [element :a] | provenance | | +| hash_flow.rb:362:5:362:8 | hash [element :a] | hash_flow.rb:362:27:362:31 | value | provenance | | +| hash_flow.rb:362:5:362:8 | hash [element :c] | hash_flow.rb:362:27:362:31 | value | provenance | | +| hash_flow.rb:362:27:362:31 | value | hash_flow.rb:364:14:364:18 | value | provenance | | +| hash_flow.rb:367:11:367:14 | hash [element :a] | hash_flow.rb:367:11:367:18 | ...[...] | provenance | | +| hash_flow.rb:367:11:367:18 | ...[...] | hash_flow.rb:367:10:367:19 | ( ... ) | provenance | | +| hash_flow.rb:373:5:373:8 | hash [element :a] | hash_flow.rb:378:9:378:12 | hash [element :a] | provenance | | +| hash_flow.rb:373:5:373:8 | hash [element :c] | hash_flow.rb:378:9:378:12 | hash [element :c] | provenance | | +| hash_flow.rb:374:15:374:25 | call to taint | hash_flow.rb:373:5:373:8 | hash [element :a] | provenance | | +| hash_flow.rb:376:15:376:25 | call to taint | hash_flow.rb:373:5:373:8 | hash [element :c] | provenance | | +| hash_flow.rb:378:5:378:5 | b [element] | hash_flow.rb:379:11:379:11 | b [element] | provenance | | +| hash_flow.rb:378:9:378:12 | hash [element :a] | hash_flow.rb:378:9:378:20 | call to flatten [element] | provenance | | +| hash_flow.rb:378:9:378:12 | hash [element :c] | hash_flow.rb:378:9:378:20 | call to flatten [element] | provenance | | +| hash_flow.rb:378:9:378:20 | call to flatten [element] | hash_flow.rb:378:5:378:5 | b [element] | provenance | | +| hash_flow.rb:379:11:379:11 | b [element] | hash_flow.rb:379:11:379:14 | ...[...] | provenance | | +| hash_flow.rb:379:11:379:14 | ...[...] | hash_flow.rb:379:10:379:15 | ( ... ) | provenance | | +| hash_flow.rb:385:5:385:8 | hash [element :a] | hash_flow.rb:390:9:390:12 | hash [element :a] | provenance | | +| hash_flow.rb:385:5:385:8 | hash [element :c] | hash_flow.rb:390:9:390:12 | hash [element :c] | provenance | | +| hash_flow.rb:386:15:386:25 | call to taint | hash_flow.rb:385:5:385:8 | hash [element :a] | provenance | | +| hash_flow.rb:388:15:388:25 | call to taint | hash_flow.rb:385:5:385:8 | hash [element :c] | provenance | | +| hash_flow.rb:390:5:390:5 | b [element :a] | hash_flow.rb:396:11:396:11 | b [element :a] | provenance | | +| hash_flow.rb:390:9:390:12 | [post] hash [element :a] | hash_flow.rb:395:11:395:14 | hash [element :a] | provenance | | +| hash_flow.rb:390:9:390:12 | hash [element :a] | hash_flow.rb:390:9:390:12 | [post] hash [element :a] | provenance | | +| hash_flow.rb:390:9:390:12 | hash [element :a] | hash_flow.rb:390:9:394:7 | call to keep_if [element :a] | provenance | | +| hash_flow.rb:390:9:390:12 | hash [element :a] | hash_flow.rb:390:31:390:35 | value | provenance | | +| hash_flow.rb:390:9:390:12 | hash [element :c] | hash_flow.rb:390:31:390:35 | value | provenance | | +| hash_flow.rb:390:9:394:7 | call to keep_if [element :a] | hash_flow.rb:390:5:390:5 | b [element :a] | provenance | | +| hash_flow.rb:390:31:390:35 | value | hash_flow.rb:392:14:392:18 | value | provenance | | +| hash_flow.rb:395:11:395:14 | hash [element :a] | hash_flow.rb:395:11:395:18 | ...[...] | provenance | | +| hash_flow.rb:395:11:395:18 | ...[...] | hash_flow.rb:395:10:395:19 | ( ... ) | provenance | | +| hash_flow.rb:396:11:396:11 | b [element :a] | hash_flow.rb:396:11:396:15 | ...[...] | provenance | | +| hash_flow.rb:396:11:396:15 | ...[...] | hash_flow.rb:396:10:396:16 | ( ... ) | provenance | | +| hash_flow.rb:402:5:402:9 | hash1 [element :a] | hash_flow.rb:412:12:412:16 | hash1 [element :a] | provenance | | +| hash_flow.rb:402:5:402:9 | hash1 [element :c] | hash_flow.rb:412:12:412:16 | hash1 [element :c] | provenance | | +| hash_flow.rb:403:15:403:25 | call to taint | hash_flow.rb:402:5:402:9 | hash1 [element :a] | provenance | | +| hash_flow.rb:405:15:405:25 | call to taint | hash_flow.rb:402:5:402:9 | hash1 [element :c] | provenance | | +| hash_flow.rb:407:5:407:9 | hash2 [element :d] | hash_flow.rb:412:24:412:28 | hash2 [element :d] | provenance | | +| hash_flow.rb:407:5:407:9 | hash2 [element :f] | hash_flow.rb:412:24:412:28 | hash2 [element :f] | provenance | | +| hash_flow.rb:408:15:408:25 | call to taint | hash_flow.rb:407:5:407:9 | hash2 [element :d] | provenance | | +| hash_flow.rb:410:15:410:25 | call to taint | hash_flow.rb:407:5:407:9 | hash2 [element :f] | provenance | | +| hash_flow.rb:412:5:412:8 | hash [element :a] | hash_flow.rb:417:11:417:14 | hash [element :a] | provenance | | +| hash_flow.rb:412:5:412:8 | hash [element :c] | hash_flow.rb:419:11:419:14 | hash [element :c] | provenance | | +| hash_flow.rb:412:5:412:8 | hash [element :d] | hash_flow.rb:420:11:420:14 | hash [element :d] | provenance | | +| hash_flow.rb:412:5:412:8 | hash [element :f] | hash_flow.rb:422:11:422:14 | hash [element :f] | provenance | | +| hash_flow.rb:412:12:412:16 | hash1 [element :a] | hash_flow.rb:412:12:416:7 | call to merge [element :a] | provenance | | +| hash_flow.rb:412:12:412:16 | hash1 [element :a] | hash_flow.rb:412:40:412:48 | old_value | provenance | | +| hash_flow.rb:412:12:412:16 | hash1 [element :a] | hash_flow.rb:412:51:412:59 | new_value | provenance | | +| hash_flow.rb:412:12:412:16 | hash1 [element :c] | hash_flow.rb:412:12:416:7 | call to merge [element :c] | provenance | | +| hash_flow.rb:412:12:412:16 | hash1 [element :c] | hash_flow.rb:412:40:412:48 | old_value | provenance | | +| hash_flow.rb:412:12:412:16 | hash1 [element :c] | hash_flow.rb:412:51:412:59 | new_value | provenance | | +| hash_flow.rb:412:12:416:7 | call to merge [element :a] | hash_flow.rb:412:5:412:8 | hash [element :a] | provenance | | +| hash_flow.rb:412:12:416:7 | call to merge [element :c] | hash_flow.rb:412:5:412:8 | hash [element :c] | provenance | | +| hash_flow.rb:412:12:416:7 | call to merge [element :d] | hash_flow.rb:412:5:412:8 | hash [element :d] | provenance | | +| hash_flow.rb:412:12:416:7 | call to merge [element :f] | hash_flow.rb:412:5:412:8 | hash [element :f] | provenance | | +| hash_flow.rb:412:24:412:28 | hash2 [element :d] | hash_flow.rb:412:12:416:7 | call to merge [element :d] | provenance | | +| hash_flow.rb:412:24:412:28 | hash2 [element :d] | hash_flow.rb:412:40:412:48 | old_value | provenance | | +| hash_flow.rb:412:24:412:28 | hash2 [element :d] | hash_flow.rb:412:51:412:59 | new_value | provenance | | +| hash_flow.rb:412:24:412:28 | hash2 [element :f] | hash_flow.rb:412:12:416:7 | call to merge [element :f] | provenance | | +| hash_flow.rb:412:24:412:28 | hash2 [element :f] | hash_flow.rb:412:40:412:48 | old_value | provenance | | +| hash_flow.rb:412:24:412:28 | hash2 [element :f] | hash_flow.rb:412:51:412:59 | new_value | provenance | | +| hash_flow.rb:412:40:412:48 | old_value | hash_flow.rb:414:14:414:22 | old_value | provenance | | +| hash_flow.rb:412:51:412:59 | new_value | hash_flow.rb:415:14:415:22 | new_value | provenance | | +| hash_flow.rb:417:11:417:14 | hash [element :a] | hash_flow.rb:417:11:417:18 | ...[...] | provenance | | +| hash_flow.rb:417:11:417:18 | ...[...] | hash_flow.rb:417:10:417:19 | ( ... ) | provenance | | +| hash_flow.rb:419:11:419:14 | hash [element :c] | hash_flow.rb:419:11:419:18 | ...[...] | provenance | | +| hash_flow.rb:419:11:419:18 | ...[...] | hash_flow.rb:419:10:419:19 | ( ... ) | provenance | | +| hash_flow.rb:420:11:420:14 | hash [element :d] | hash_flow.rb:420:11:420:18 | ...[...] | provenance | | +| hash_flow.rb:420:11:420:18 | ...[...] | hash_flow.rb:420:10:420:19 | ( ... ) | provenance | | +| hash_flow.rb:422:11:422:14 | hash [element :f] | hash_flow.rb:422:11:422:18 | ...[...] | provenance | | +| hash_flow.rb:422:11:422:18 | ...[...] | hash_flow.rb:422:10:422:19 | ( ... ) | provenance | | +| hash_flow.rb:428:5:428:9 | hash1 [element :a] | hash_flow.rb:438:12:438:16 | hash1 [element :a] | provenance | | +| hash_flow.rb:428:5:428:9 | hash1 [element :c] | hash_flow.rb:438:12:438:16 | hash1 [element :c] | provenance | | +| hash_flow.rb:429:15:429:25 | call to taint | hash_flow.rb:428:5:428:9 | hash1 [element :a] | provenance | | +| hash_flow.rb:431:15:431:25 | call to taint | hash_flow.rb:428:5:428:9 | hash1 [element :c] | provenance | | +| hash_flow.rb:433:5:433:9 | hash2 [element :d] | hash_flow.rb:438:25:438:29 | hash2 [element :d] | provenance | | +| hash_flow.rb:433:5:433:9 | hash2 [element :f] | hash_flow.rb:438:25:438:29 | hash2 [element :f] | provenance | | +| hash_flow.rb:434:15:434:25 | call to taint | hash_flow.rb:433:5:433:9 | hash2 [element :d] | provenance | | +| hash_flow.rb:436:15:436:25 | call to taint | hash_flow.rb:433:5:433:9 | hash2 [element :f] | provenance | | +| hash_flow.rb:438:5:438:8 | hash [element :a] | hash_flow.rb:443:11:443:14 | hash [element :a] | provenance | | +| hash_flow.rb:438:5:438:8 | hash [element :c] | hash_flow.rb:445:11:445:14 | hash [element :c] | provenance | | +| hash_flow.rb:438:5:438:8 | hash [element :d] | hash_flow.rb:446:11:446:14 | hash [element :d] | provenance | | +| hash_flow.rb:438:5:438:8 | hash [element :f] | hash_flow.rb:448:11:448:14 | hash [element :f] | provenance | | +| hash_flow.rb:438:12:438:16 | [post] hash1 [element :a] | hash_flow.rb:450:11:450:15 | hash1 [element :a] | provenance | | +| hash_flow.rb:438:12:438:16 | [post] hash1 [element :c] | hash_flow.rb:452:11:452:15 | hash1 [element :c] | provenance | | +| hash_flow.rb:438:12:438:16 | [post] hash1 [element :d] | hash_flow.rb:453:11:453:15 | hash1 [element :d] | provenance | | +| hash_flow.rb:438:12:438:16 | [post] hash1 [element :f] | hash_flow.rb:455:11:455:15 | hash1 [element :f] | provenance | | +| hash_flow.rb:438:12:438:16 | hash1 [element :a] | hash_flow.rb:438:12:438:16 | [post] hash1 [element :a] | provenance | | +| hash_flow.rb:438:12:438:16 | hash1 [element :a] | hash_flow.rb:438:12:442:7 | call to merge! [element :a] | provenance | | +| hash_flow.rb:438:12:438:16 | hash1 [element :a] | hash_flow.rb:438:41:438:49 | old_value | provenance | | +| hash_flow.rb:438:12:438:16 | hash1 [element :a] | hash_flow.rb:438:52:438:60 | new_value | provenance | | +| hash_flow.rb:438:12:438:16 | hash1 [element :c] | hash_flow.rb:438:12:438:16 | [post] hash1 [element :c] | provenance | | +| hash_flow.rb:438:12:438:16 | hash1 [element :c] | hash_flow.rb:438:12:442:7 | call to merge! [element :c] | provenance | | +| hash_flow.rb:438:12:438:16 | hash1 [element :c] | hash_flow.rb:438:41:438:49 | old_value | provenance | | +| hash_flow.rb:438:12:438:16 | hash1 [element :c] | hash_flow.rb:438:52:438:60 | new_value | provenance | | +| hash_flow.rb:438:12:442:7 | call to merge! [element :a] | hash_flow.rb:438:5:438:8 | hash [element :a] | provenance | | +| hash_flow.rb:438:12:442:7 | call to merge! [element :c] | hash_flow.rb:438:5:438:8 | hash [element :c] | provenance | | +| hash_flow.rb:438:12:442:7 | call to merge! [element :d] | hash_flow.rb:438:5:438:8 | hash [element :d] | provenance | | +| hash_flow.rb:438:12:442:7 | call to merge! [element :f] | hash_flow.rb:438:5:438:8 | hash [element :f] | provenance | | +| hash_flow.rb:438:25:438:29 | hash2 [element :d] | hash_flow.rb:438:12:438:16 | [post] hash1 [element :d] | provenance | | +| hash_flow.rb:438:25:438:29 | hash2 [element :d] | hash_flow.rb:438:12:442:7 | call to merge! [element :d] | provenance | | +| hash_flow.rb:438:25:438:29 | hash2 [element :d] | hash_flow.rb:438:41:438:49 | old_value | provenance | | +| hash_flow.rb:438:25:438:29 | hash2 [element :d] | hash_flow.rb:438:52:438:60 | new_value | provenance | | +| hash_flow.rb:438:25:438:29 | hash2 [element :f] | hash_flow.rb:438:12:438:16 | [post] hash1 [element :f] | provenance | | +| hash_flow.rb:438:25:438:29 | hash2 [element :f] | hash_flow.rb:438:12:442:7 | call to merge! [element :f] | provenance | | +| hash_flow.rb:438:25:438:29 | hash2 [element :f] | hash_flow.rb:438:41:438:49 | old_value | provenance | | +| hash_flow.rb:438:25:438:29 | hash2 [element :f] | hash_flow.rb:438:52:438:60 | new_value | provenance | | +| hash_flow.rb:438:41:438:49 | old_value | hash_flow.rb:440:14:440:22 | old_value | provenance | | +| hash_flow.rb:438:52:438:60 | new_value | hash_flow.rb:441:14:441:22 | new_value | provenance | | +| hash_flow.rb:443:11:443:14 | hash [element :a] | hash_flow.rb:443:11:443:18 | ...[...] | provenance | | +| hash_flow.rb:443:11:443:18 | ...[...] | hash_flow.rb:443:10:443:19 | ( ... ) | provenance | | +| hash_flow.rb:445:11:445:14 | hash [element :c] | hash_flow.rb:445:11:445:18 | ...[...] | provenance | | +| hash_flow.rb:445:11:445:18 | ...[...] | hash_flow.rb:445:10:445:19 | ( ... ) | provenance | | +| hash_flow.rb:446:11:446:14 | hash [element :d] | hash_flow.rb:446:11:446:18 | ...[...] | provenance | | +| hash_flow.rb:446:11:446:18 | ...[...] | hash_flow.rb:446:10:446:19 | ( ... ) | provenance | | +| hash_flow.rb:448:11:448:14 | hash [element :f] | hash_flow.rb:448:11:448:18 | ...[...] | provenance | | +| hash_flow.rb:448:11:448:18 | ...[...] | hash_flow.rb:448:10:448:19 | ( ... ) | provenance | | +| hash_flow.rb:450:11:450:15 | hash1 [element :a] | hash_flow.rb:450:11:450:19 | ...[...] | provenance | | +| hash_flow.rb:450:11:450:19 | ...[...] | hash_flow.rb:450:10:450:20 | ( ... ) | provenance | | +| hash_flow.rb:452:11:452:15 | hash1 [element :c] | hash_flow.rb:452:11:452:19 | ...[...] | provenance | | +| hash_flow.rb:452:11:452:19 | ...[...] | hash_flow.rb:452:10:452:20 | ( ... ) | provenance | | +| hash_flow.rb:453:11:453:15 | hash1 [element :d] | hash_flow.rb:453:11:453:19 | ...[...] | provenance | | +| hash_flow.rb:453:11:453:19 | ...[...] | hash_flow.rb:453:10:453:20 | ( ... ) | provenance | | +| hash_flow.rb:455:11:455:15 | hash1 [element :f] | hash_flow.rb:455:11:455:19 | ...[...] | provenance | | +| hash_flow.rb:455:11:455:19 | ...[...] | hash_flow.rb:455:10:455:20 | ( ... ) | provenance | | +| hash_flow.rb:461:5:461:8 | hash [element :a] | hash_flow.rb:465:9:465:12 | hash [element :a] | provenance | | +| hash_flow.rb:462:15:462:25 | call to taint | hash_flow.rb:461:5:461:8 | hash [element :a] | provenance | | +| hash_flow.rb:465:5:465:5 | b [element 1] | hash_flow.rb:467:10:467:10 | b [element 1] | provenance | | +| hash_flow.rb:465:9:465:12 | hash [element :a] | hash_flow.rb:465:9:465:22 | call to rassoc [element 1] | provenance | | +| hash_flow.rb:465:9:465:22 | call to rassoc [element 1] | hash_flow.rb:465:5:465:5 | b [element 1] | provenance | | +| hash_flow.rb:467:10:467:10 | b [element 1] | hash_flow.rb:467:10:467:13 | ...[...] | provenance | | +| hash_flow.rb:473:5:473:8 | hash [element :a] | hash_flow.rb:477:9:477:12 | hash [element :a] | provenance | | +| hash_flow.rb:474:15:474:25 | call to taint | hash_flow.rb:473:5:473:8 | hash [element :a] | provenance | | +| hash_flow.rb:477:5:477:5 | b [element :a] | hash_flow.rb:482:10:482:10 | b [element :a] | provenance | | +| hash_flow.rb:477:9:477:12 | hash [element :a] | hash_flow.rb:477:9:481:7 | call to reject [element :a] | provenance | | +| hash_flow.rb:477:9:477:12 | hash [element :a] | hash_flow.rb:477:29:477:33 | value | provenance | | +| hash_flow.rb:477:9:481:7 | call to reject [element :a] | hash_flow.rb:477:5:477:5 | b [element :a] | provenance | | +| hash_flow.rb:477:29:477:33 | value | hash_flow.rb:479:14:479:18 | value | provenance | | +| hash_flow.rb:482:10:482:10 | b [element :a] | hash_flow.rb:482:10:482:14 | ...[...] | provenance | | +| hash_flow.rb:488:5:488:8 | hash [element :a] | hash_flow.rb:492:9:492:12 | hash [element :a] | provenance | | +| hash_flow.rb:489:15:489:25 | call to taint | hash_flow.rb:488:5:488:8 | hash [element :a] | provenance | | +| hash_flow.rb:492:5:492:5 | b [element :a] | hash_flow.rb:497:10:497:10 | b [element :a] | provenance | | +| hash_flow.rb:492:9:492:12 | [post] hash [element :a] | hash_flow.rb:498:10:498:13 | hash [element :a] | provenance | | +| hash_flow.rb:492:9:492:12 | hash [element :a] | hash_flow.rb:492:9:492:12 | [post] hash [element :a] | provenance | | +| hash_flow.rb:492:9:492:12 | hash [element :a] | hash_flow.rb:492:9:496:7 | call to reject! [element :a] | provenance | | +| hash_flow.rb:492:9:492:12 | hash [element :a] | hash_flow.rb:492:30:492:34 | value | provenance | | +| hash_flow.rb:492:9:496:7 | call to reject! [element :a] | hash_flow.rb:492:5:492:5 | b [element :a] | provenance | | +| hash_flow.rb:492:30:492:34 | value | hash_flow.rb:494:14:494:18 | value | provenance | | +| hash_flow.rb:497:10:497:10 | b [element :a] | hash_flow.rb:497:10:497:14 | ...[...] | provenance | | +| hash_flow.rb:498:10:498:13 | hash [element :a] | hash_flow.rb:498:10:498:17 | ...[...] | provenance | | +| hash_flow.rb:504:5:504:8 | hash [element :a] | hash_flow.rb:512:19:512:22 | hash [element :a] | provenance | | +| hash_flow.rb:504:5:504:8 | hash [element :c] | hash_flow.rb:512:19:512:22 | hash [element :c] | provenance | | +| hash_flow.rb:505:15:505:25 | call to taint | hash_flow.rb:504:5:504:8 | hash [element :a] | provenance | | +| hash_flow.rb:507:15:507:25 | call to taint | hash_flow.rb:504:5:504:8 | hash [element :c] | provenance | | +| hash_flow.rb:512:5:512:9 | [post] hash2 [element :a] | hash_flow.rb:513:11:513:15 | hash2 [element :a] | provenance | | +| hash_flow.rb:512:5:512:9 | [post] hash2 [element :c] | hash_flow.rb:515:11:515:15 | hash2 [element :c] | provenance | | +| hash_flow.rb:512:19:512:22 | hash [element :a] | hash_flow.rb:512:5:512:9 | [post] hash2 [element :a] | provenance | | +| hash_flow.rb:512:19:512:22 | hash [element :c] | hash_flow.rb:512:5:512:9 | [post] hash2 [element :c] | provenance | | +| hash_flow.rb:513:11:513:15 | hash2 [element :a] | hash_flow.rb:513:11:513:19 | ...[...] | provenance | | +| hash_flow.rb:513:11:513:19 | ...[...] | hash_flow.rb:513:10:513:20 | ( ... ) | provenance | | +| hash_flow.rb:515:11:515:15 | hash2 [element :c] | hash_flow.rb:515:11:515:19 | ...[...] | provenance | | +| hash_flow.rb:515:11:515:19 | ...[...] | hash_flow.rb:515:10:515:20 | ( ... ) | provenance | | +| hash_flow.rb:519:5:519:8 | hash [element :a] | hash_flow.rb:524:9:524:12 | hash [element :a] | provenance | | +| hash_flow.rb:519:5:519:8 | hash [element :c] | hash_flow.rb:524:9:524:12 | hash [element :c] | provenance | | +| hash_flow.rb:520:15:520:25 | call to taint | hash_flow.rb:519:5:519:8 | hash [element :a] | provenance | | +| hash_flow.rb:522:15:522:25 | call to taint | hash_flow.rb:519:5:519:8 | hash [element :c] | provenance | | +| hash_flow.rb:524:5:524:5 | b [element :a] | hash_flow.rb:529:11:529:11 | b [element :a] | provenance | | +| hash_flow.rb:524:9:524:12 | hash [element :a] | hash_flow.rb:524:9:528:7 | call to select [element :a] | provenance | | +| hash_flow.rb:524:9:524:12 | hash [element :a] | hash_flow.rb:524:30:524:34 | value | provenance | | +| hash_flow.rb:524:9:524:12 | hash [element :c] | hash_flow.rb:524:30:524:34 | value | provenance | | +| hash_flow.rb:524:9:528:7 | call to select [element :a] | hash_flow.rb:524:5:524:5 | b [element :a] | provenance | | +| hash_flow.rb:524:30:524:34 | value | hash_flow.rb:526:14:526:18 | value | provenance | | +| hash_flow.rb:529:11:529:11 | b [element :a] | hash_flow.rb:529:11:529:15 | ...[...] | provenance | | +| hash_flow.rb:529:11:529:15 | ...[...] | hash_flow.rb:529:10:529:16 | ( ... ) | provenance | | +| hash_flow.rb:535:5:535:8 | hash [element :a] | hash_flow.rb:540:5:540:8 | hash [element :a] | provenance | | +| hash_flow.rb:535:5:535:8 | hash [element :c] | hash_flow.rb:540:5:540:8 | hash [element :c] | provenance | | +| hash_flow.rb:536:15:536:25 | call to taint | hash_flow.rb:535:5:535:8 | hash [element :a] | provenance | | +| hash_flow.rb:538:15:538:25 | call to taint | hash_flow.rb:535:5:535:8 | hash [element :c] | provenance | | +| hash_flow.rb:540:5:540:8 | [post] hash [element :a] | hash_flow.rb:545:11:545:14 | hash [element :a] | provenance | | +| hash_flow.rb:540:5:540:8 | hash [element :a] | hash_flow.rb:540:5:540:8 | [post] hash [element :a] | provenance | | +| hash_flow.rb:540:5:540:8 | hash [element :a] | hash_flow.rb:540:27:540:31 | value | provenance | | +| hash_flow.rb:540:5:540:8 | hash [element :c] | hash_flow.rb:540:27:540:31 | value | provenance | | +| hash_flow.rb:540:27:540:31 | value | hash_flow.rb:542:14:542:18 | value | provenance | | +| hash_flow.rb:545:11:545:14 | hash [element :a] | hash_flow.rb:545:11:545:18 | ...[...] | provenance | | +| hash_flow.rb:545:11:545:18 | ...[...] | hash_flow.rb:545:10:545:19 | ( ... ) | provenance | | +| hash_flow.rb:551:5:551:8 | hash [element :a] | hash_flow.rb:556:9:556:12 | hash [element :a] | provenance | | +| hash_flow.rb:551:5:551:8 | hash [element :c] | hash_flow.rb:556:9:556:12 | hash [element :c] | provenance | | +| hash_flow.rb:552:15:552:25 | call to taint | hash_flow.rb:551:5:551:8 | hash [element :a] | provenance | | +| hash_flow.rb:554:15:554:25 | call to taint | hash_flow.rb:551:5:551:8 | hash [element :c] | provenance | | +| hash_flow.rb:556:5:556:5 | b [element 1] | hash_flow.rb:559:11:559:11 | b [element 1] | provenance | | +| hash_flow.rb:556:9:556:12 | [post] hash [element :a] | hash_flow.rb:557:11:557:14 | hash [element :a] | provenance | | +| hash_flow.rb:556:9:556:12 | hash [element :a] | hash_flow.rb:556:9:556:12 | [post] hash [element :a] | provenance | | +| hash_flow.rb:556:9:556:12 | hash [element :a] | hash_flow.rb:556:9:556:18 | call to shift [element 1] | provenance | | +| hash_flow.rb:556:9:556:12 | hash [element :c] | hash_flow.rb:556:9:556:18 | call to shift [element 1] | provenance | | +| hash_flow.rb:556:9:556:18 | call to shift [element 1] | hash_flow.rb:556:5:556:5 | b [element 1] | provenance | | +| hash_flow.rb:557:11:557:14 | hash [element :a] | hash_flow.rb:557:11:557:18 | ...[...] | provenance | | +| hash_flow.rb:557:11:557:18 | ...[...] | hash_flow.rb:557:10:557:19 | ( ... ) | provenance | | +| hash_flow.rb:559:11:559:11 | b [element 1] | hash_flow.rb:559:11:559:14 | ...[...] | provenance | | +| hash_flow.rb:559:11:559:14 | ...[...] | hash_flow.rb:559:10:559:15 | ( ... ) | provenance | | +| hash_flow.rb:565:5:565:8 | hash [element :a] | hash_flow.rb:570:9:570:12 | hash [element :a] | provenance | | +| hash_flow.rb:565:5:565:8 | hash [element :a] | hash_flow.rb:575:9:575:12 | hash [element :a] | provenance | | +| hash_flow.rb:565:5:565:8 | hash [element :c] | hash_flow.rb:575:9:575:12 | hash [element :c] | provenance | | +| hash_flow.rb:566:15:566:25 | call to taint | hash_flow.rb:565:5:565:8 | hash [element :a] | provenance | | +| hash_flow.rb:568:15:568:25 | call to taint | hash_flow.rb:565:5:565:8 | hash [element :c] | provenance | | +| hash_flow.rb:570:5:570:5 | b [element :a] | hash_flow.rb:571:11:571:11 | b [element :a] | provenance | | +| hash_flow.rb:570:9:570:12 | hash [element :a] | hash_flow.rb:570:9:570:26 | call to slice [element :a] | provenance | | +| hash_flow.rb:570:9:570:26 | call to slice [element :a] | hash_flow.rb:570:5:570:5 | b [element :a] | provenance | | +| hash_flow.rb:571:11:571:11 | b [element :a] | hash_flow.rb:571:11:571:15 | ...[...] | provenance | | +| hash_flow.rb:571:11:571:15 | ...[...] | hash_flow.rb:571:10:571:16 | ( ... ) | provenance | | +| hash_flow.rb:575:5:575:5 | c [element :a] | hash_flow.rb:576:11:576:11 | c [element :a] | provenance | | +| hash_flow.rb:575:5:575:5 | c [element :c] | hash_flow.rb:578:11:578:11 | c [element :c] | provenance | | +| hash_flow.rb:575:9:575:12 | hash [element :a] | hash_flow.rb:575:9:575:25 | call to slice [element :a] | provenance | | +| hash_flow.rb:575:9:575:12 | hash [element :c] | hash_flow.rb:575:9:575:25 | call to slice [element :c] | provenance | | +| hash_flow.rb:575:9:575:25 | call to slice [element :a] | hash_flow.rb:575:5:575:5 | c [element :a] | provenance | | +| hash_flow.rb:575:9:575:25 | call to slice [element :c] | hash_flow.rb:575:5:575:5 | c [element :c] | provenance | | +| hash_flow.rb:576:11:576:11 | c [element :a] | hash_flow.rb:576:11:576:15 | ...[...] | provenance | | +| hash_flow.rb:576:11:576:15 | ...[...] | hash_flow.rb:576:10:576:16 | ( ... ) | provenance | | +| hash_flow.rb:578:11:578:11 | c [element :c] | hash_flow.rb:578:11:578:15 | ...[...] | provenance | | +| hash_flow.rb:578:11:578:15 | ...[...] | hash_flow.rb:578:10:578:16 | ( ... ) | provenance | | +| hash_flow.rb:584:5:584:8 | hash [element :a] | hash_flow.rb:589:9:589:12 | hash [element :a] | provenance | | +| hash_flow.rb:584:5:584:8 | hash [element :c] | hash_flow.rb:589:9:589:12 | hash [element :c] | provenance | | +| hash_flow.rb:585:15:585:25 | call to taint | hash_flow.rb:584:5:584:8 | hash [element :a] | provenance | | +| hash_flow.rb:587:15:587:25 | call to taint | hash_flow.rb:584:5:584:8 | hash [element :c] | provenance | | +| hash_flow.rb:589:5:589:5 | a [element, element 1] | hash_flow.rb:591:11:591:11 | a [element, element 1] | provenance | | +| hash_flow.rb:589:9:589:12 | hash [element :a] | hash_flow.rb:589:9:589:17 | call to to_a [element, element 1] | provenance | | +| hash_flow.rb:589:9:589:12 | hash [element :c] | hash_flow.rb:589:9:589:17 | call to to_a [element, element 1] | provenance | | +| hash_flow.rb:589:9:589:17 | call to to_a [element, element 1] | hash_flow.rb:589:5:589:5 | a [element, element 1] | provenance | | +| hash_flow.rb:591:11:591:11 | a [element, element 1] | hash_flow.rb:591:11:591:14 | ...[...] [element 1] | provenance | | +| hash_flow.rb:591:11:591:14 | ...[...] [element 1] | hash_flow.rb:591:11:591:17 | ...[...] | provenance | | +| hash_flow.rb:591:11:591:17 | ...[...] | hash_flow.rb:591:10:591:18 | ( ... ) | provenance | | +| hash_flow.rb:597:5:597:8 | hash [element :a] | hash_flow.rb:602:9:602:12 | hash [element :a] | provenance | | +| hash_flow.rb:597:5:597:8 | hash [element :a] | hash_flow.rb:607:9:607:12 | hash [element :a] | provenance | | +| hash_flow.rb:597:5:597:8 | hash [element :c] | hash_flow.rb:602:9:602:12 | hash [element :c] | provenance | | +| hash_flow.rb:597:5:597:8 | hash [element :c] | hash_flow.rb:607:9:607:12 | hash [element :c] | provenance | | +| hash_flow.rb:598:15:598:25 | call to taint | hash_flow.rb:597:5:597:8 | hash [element :a] | provenance | | +| hash_flow.rb:600:15:600:25 | call to taint | hash_flow.rb:597:5:597:8 | hash [element :c] | provenance | | +| hash_flow.rb:602:5:602:5 | a [element :a] | hash_flow.rb:603:11:603:11 | a [element :a] | provenance | | +| hash_flow.rb:602:5:602:5 | a [element :c] | hash_flow.rb:605:11:605:11 | a [element :c] | provenance | | +| hash_flow.rb:602:9:602:12 | hash [element :a] | hash_flow.rb:602:9:602:17 | call to to_h [element :a] | provenance | | +| hash_flow.rb:602:9:602:12 | hash [element :c] | hash_flow.rb:602:9:602:17 | call to to_h [element :c] | provenance | | +| hash_flow.rb:602:9:602:17 | call to to_h [element :a] | hash_flow.rb:602:5:602:5 | a [element :a] | provenance | | +| hash_flow.rb:602:9:602:17 | call to to_h [element :c] | hash_flow.rb:602:5:602:5 | a [element :c] | provenance | | +| hash_flow.rb:603:11:603:11 | a [element :a] | hash_flow.rb:603:11:603:15 | ...[...] | provenance | | +| hash_flow.rb:603:11:603:15 | ...[...] | hash_flow.rb:603:10:603:16 | ( ... ) | provenance | | +| hash_flow.rb:605:11:605:11 | a [element :c] | hash_flow.rb:605:11:605:15 | ...[...] | provenance | | +| hash_flow.rb:605:11:605:15 | ...[...] | hash_flow.rb:605:10:605:16 | ( ... ) | provenance | | +| hash_flow.rb:607:5:607:5 | b [element] | hash_flow.rb:612:11:612:11 | b [element] | provenance | | +| hash_flow.rb:607:9:607:12 | hash [element :a] | hash_flow.rb:607:28:607:32 | value | provenance | | +| hash_flow.rb:607:9:607:12 | hash [element :c] | hash_flow.rb:607:28:607:32 | value | provenance | | +| hash_flow.rb:607:9:611:7 | call to to_h [element] | hash_flow.rb:607:5:607:5 | b [element] | provenance | | +| hash_flow.rb:607:28:607:32 | value | hash_flow.rb:609:14:609:18 | value | provenance | | +| hash_flow.rb:610:14:610:24 | call to taint | hash_flow.rb:607:9:611:7 | call to to_h [element] | provenance | | +| hash_flow.rb:612:11:612:11 | b [element] | hash_flow.rb:612:11:612:15 | ...[...] | provenance | | +| hash_flow.rb:612:11:612:15 | ...[...] | hash_flow.rb:612:10:612:16 | ( ... ) | provenance | | +| hash_flow.rb:618:5:618:8 | hash [element :a] | hash_flow.rb:623:9:623:12 | hash [element :a] | provenance | | +| hash_flow.rb:618:5:618:8 | hash [element :c] | hash_flow.rb:623:9:623:12 | hash [element :c] | provenance | | +| hash_flow.rb:619:15:619:25 | call to taint | hash_flow.rb:618:5:618:8 | hash [element :a] | provenance | | +| hash_flow.rb:621:15:621:25 | call to taint | hash_flow.rb:618:5:618:8 | hash [element :c] | provenance | | +| hash_flow.rb:623:5:623:5 | a [element] | hash_flow.rb:624:11:624:11 | a [element] | provenance | | +| hash_flow.rb:623:5:623:5 | a [element] | hash_flow.rb:625:11:625:11 | a [element] | provenance | | +| hash_flow.rb:623:5:623:5 | a [element] | hash_flow.rb:626:11:626:11 | a [element] | provenance | | +| hash_flow.rb:623:9:623:12 | hash [element :a] | hash_flow.rb:623:9:623:45 | call to transform_keys [element] | provenance | | +| hash_flow.rb:623:9:623:12 | hash [element :c] | hash_flow.rb:623:9:623:45 | call to transform_keys [element] | provenance | | +| hash_flow.rb:623:9:623:45 | call to transform_keys [element] | hash_flow.rb:623:5:623:5 | a [element] | provenance | | +| hash_flow.rb:624:11:624:11 | a [element] | hash_flow.rb:624:11:624:16 | ...[...] | provenance | | +| hash_flow.rb:624:11:624:16 | ...[...] | hash_flow.rb:624:10:624:17 | ( ... ) | provenance | | +| hash_flow.rb:625:11:625:11 | a [element] | hash_flow.rb:625:11:625:16 | ...[...] | provenance | | +| hash_flow.rb:625:11:625:16 | ...[...] | hash_flow.rb:625:10:625:17 | ( ... ) | provenance | | +| hash_flow.rb:626:11:626:11 | a [element] | hash_flow.rb:626:11:626:16 | ...[...] | provenance | | +| hash_flow.rb:626:11:626:16 | ...[...] | hash_flow.rb:626:10:626:17 | ( ... ) | provenance | | +| hash_flow.rb:632:5:632:8 | hash [element :a] | hash_flow.rb:639:5:639:8 | hash [element :a] | provenance | | +| hash_flow.rb:632:5:632:8 | hash [element :c] | hash_flow.rb:639:5:639:8 | hash [element :c] | provenance | | +| hash_flow.rb:633:15:633:25 | call to taint | hash_flow.rb:632:5:632:8 | hash [element :a] | provenance | | +| hash_flow.rb:635:15:635:25 | call to taint | hash_flow.rb:632:5:632:8 | hash [element :c] | provenance | | +| hash_flow.rb:637:5:637:8 | [post] hash [element] | hash_flow.rb:639:5:639:8 | hash [element] | provenance | | +| hash_flow.rb:637:5:637:8 | [post] hash [element] | hash_flow.rb:640:11:640:14 | hash [element] | provenance | | +| hash_flow.rb:637:5:637:8 | [post] hash [element] | hash_flow.rb:641:11:641:14 | hash [element] | provenance | | +| hash_flow.rb:637:5:637:8 | [post] hash [element] | hash_flow.rb:642:11:642:14 | hash [element] | provenance | | +| hash_flow.rb:637:15:637:25 | call to taint | hash_flow.rb:637:5:637:8 | [post] hash [element] | provenance | | +| hash_flow.rb:639:5:639:8 | [post] hash [element] | hash_flow.rb:640:11:640:14 | hash [element] | provenance | | +| hash_flow.rb:639:5:639:8 | [post] hash [element] | hash_flow.rb:641:11:641:14 | hash [element] | provenance | | +| hash_flow.rb:639:5:639:8 | [post] hash [element] | hash_flow.rb:642:11:642:14 | hash [element] | provenance | | +| hash_flow.rb:639:5:639:8 | hash [element :a] | hash_flow.rb:639:5:639:8 | [post] hash [element] | provenance | | +| hash_flow.rb:639:5:639:8 | hash [element :c] | hash_flow.rb:639:5:639:8 | [post] hash [element] | provenance | | +| hash_flow.rb:639:5:639:8 | hash [element] | hash_flow.rb:639:5:639:8 | [post] hash [element] | provenance | | +| hash_flow.rb:640:11:640:14 | hash [element] | hash_flow.rb:640:11:640:19 | ...[...] | provenance | | +| hash_flow.rb:640:11:640:19 | ...[...] | hash_flow.rb:640:10:640:20 | ( ... ) | provenance | | +| hash_flow.rb:641:11:641:14 | hash [element] | hash_flow.rb:641:11:641:19 | ...[...] | provenance | | +| hash_flow.rb:641:11:641:19 | ...[...] | hash_flow.rb:641:10:641:20 | ( ... ) | provenance | | +| hash_flow.rb:642:11:642:14 | hash [element] | hash_flow.rb:642:11:642:19 | ...[...] | provenance | | +| hash_flow.rb:642:11:642:19 | ...[...] | hash_flow.rb:642:10:642:20 | ( ... ) | provenance | | +| hash_flow.rb:648:5:648:8 | hash [element :a] | hash_flow.rb:653:9:653:12 | hash [element :a] | provenance | | +| hash_flow.rb:648:5:648:8 | hash [element :a] | hash_flow.rb:657:11:657:14 | hash [element :a] | provenance | | +| hash_flow.rb:648:5:648:8 | hash [element :c] | hash_flow.rb:653:9:653:12 | hash [element :c] | provenance | | +| hash_flow.rb:649:15:649:25 | call to taint | hash_flow.rb:648:5:648:8 | hash [element :a] | provenance | | +| hash_flow.rb:651:15:651:25 | call to taint | hash_flow.rb:648:5:648:8 | hash [element :c] | provenance | | +| hash_flow.rb:653:5:653:5 | b [element] | hash_flow.rb:658:11:658:11 | b [element] | provenance | | +| hash_flow.rb:653:9:653:12 | hash [element :a] | hash_flow.rb:653:35:653:39 | value | provenance | | +| hash_flow.rb:653:9:653:12 | hash [element :c] | hash_flow.rb:653:35:653:39 | value | provenance | | +| hash_flow.rb:653:9:656:7 | call to transform_values [element] | hash_flow.rb:653:5:653:5 | b [element] | provenance | | +| hash_flow.rb:653:35:653:39 | value | hash_flow.rb:654:14:654:18 | value | provenance | | +| hash_flow.rb:655:9:655:19 | call to taint | hash_flow.rb:653:9:656:7 | call to transform_values [element] | provenance | | +| hash_flow.rb:657:11:657:14 | hash [element :a] | hash_flow.rb:657:11:657:18 | ...[...] | provenance | | +| hash_flow.rb:657:11:657:18 | ...[...] | hash_flow.rb:657:10:657:19 | ( ... ) | provenance | | +| hash_flow.rb:658:11:658:11 | b [element] | hash_flow.rb:658:11:658:15 | ...[...] | provenance | | +| hash_flow.rb:658:11:658:15 | ...[...] | hash_flow.rb:658:10:658:16 | ( ... ) | provenance | | +| hash_flow.rb:664:5:664:8 | hash [element :a] | hash_flow.rb:669:5:669:8 | hash [element :a] | provenance | | +| hash_flow.rb:664:5:664:8 | hash [element :c] | hash_flow.rb:669:5:669:8 | hash [element :c] | provenance | | +| hash_flow.rb:665:15:665:25 | call to taint | hash_flow.rb:664:5:664:8 | hash [element :a] | provenance | | +| hash_flow.rb:667:15:667:25 | call to taint | hash_flow.rb:664:5:664:8 | hash [element :c] | provenance | | +| hash_flow.rb:669:5:669:8 | [post] hash [element] | hash_flow.rb:673:11:673:14 | hash [element] | provenance | | +| hash_flow.rb:669:5:669:8 | hash [element :a] | hash_flow.rb:669:32:669:36 | value | provenance | | +| hash_flow.rb:669:5:669:8 | hash [element :c] | hash_flow.rb:669:32:669:36 | value | provenance | | +| hash_flow.rb:669:32:669:36 | value | hash_flow.rb:670:14:670:18 | value | provenance | | +| hash_flow.rb:671:9:671:19 | call to taint | hash_flow.rb:669:5:669:8 | [post] hash [element] | provenance | | +| hash_flow.rb:673:11:673:14 | hash [element] | hash_flow.rb:673:11:673:18 | ...[...] | provenance | | +| hash_flow.rb:673:11:673:18 | ...[...] | hash_flow.rb:673:10:673:19 | ( ... ) | provenance | | +| hash_flow.rb:679:5:679:9 | hash1 [element :a] | hash_flow.rb:689:12:689:16 | hash1 [element :a] | provenance | | +| hash_flow.rb:679:5:679:9 | hash1 [element :c] | hash_flow.rb:689:12:689:16 | hash1 [element :c] | provenance | | +| hash_flow.rb:680:15:680:25 | call to taint | hash_flow.rb:679:5:679:9 | hash1 [element :a] | provenance | | +| hash_flow.rb:682:15:682:25 | call to taint | hash_flow.rb:679:5:679:9 | hash1 [element :c] | provenance | | +| hash_flow.rb:684:5:684:9 | hash2 [element :d] | hash_flow.rb:689:25:689:29 | hash2 [element :d] | provenance | | +| hash_flow.rb:684:5:684:9 | hash2 [element :f] | hash_flow.rb:689:25:689:29 | hash2 [element :f] | provenance | | +| hash_flow.rb:685:15:685:25 | call to taint | hash_flow.rb:684:5:684:9 | hash2 [element :d] | provenance | | +| hash_flow.rb:687:15:687:25 | call to taint | hash_flow.rb:684:5:684:9 | hash2 [element :f] | provenance | | +| hash_flow.rb:689:5:689:8 | hash [element :a] | hash_flow.rb:694:11:694:14 | hash [element :a] | provenance | | +| hash_flow.rb:689:5:689:8 | hash [element :c] | hash_flow.rb:696:11:696:14 | hash [element :c] | provenance | | +| hash_flow.rb:689:5:689:8 | hash [element :d] | hash_flow.rb:697:11:697:14 | hash [element :d] | provenance | | +| hash_flow.rb:689:5:689:8 | hash [element :f] | hash_flow.rb:699:11:699:14 | hash [element :f] | provenance | | +| hash_flow.rb:689:12:689:16 | [post] hash1 [element :a] | hash_flow.rb:701:11:701:15 | hash1 [element :a] | provenance | | +| hash_flow.rb:689:12:689:16 | [post] hash1 [element :c] | hash_flow.rb:703:11:703:15 | hash1 [element :c] | provenance | | +| hash_flow.rb:689:12:689:16 | [post] hash1 [element :d] | hash_flow.rb:704:11:704:15 | hash1 [element :d] | provenance | | +| hash_flow.rb:689:12:689:16 | [post] hash1 [element :f] | hash_flow.rb:706:11:706:15 | hash1 [element :f] | provenance | | +| hash_flow.rb:689:12:689:16 | hash1 [element :a] | hash_flow.rb:689:12:689:16 | [post] hash1 [element :a] | provenance | | +| hash_flow.rb:689:12:689:16 | hash1 [element :a] | hash_flow.rb:689:12:693:7 | call to update [element :a] | provenance | | +| hash_flow.rb:689:12:689:16 | hash1 [element :a] | hash_flow.rb:689:41:689:49 | old_value | provenance | | +| hash_flow.rb:689:12:689:16 | hash1 [element :a] | hash_flow.rb:689:52:689:60 | new_value | provenance | | +| hash_flow.rb:689:12:689:16 | hash1 [element :c] | hash_flow.rb:689:12:689:16 | [post] hash1 [element :c] | provenance | | +| hash_flow.rb:689:12:689:16 | hash1 [element :c] | hash_flow.rb:689:12:693:7 | call to update [element :c] | provenance | | +| hash_flow.rb:689:12:689:16 | hash1 [element :c] | hash_flow.rb:689:41:689:49 | old_value | provenance | | +| hash_flow.rb:689:12:689:16 | hash1 [element :c] | hash_flow.rb:689:52:689:60 | new_value | provenance | | +| hash_flow.rb:689:12:693:7 | call to update [element :a] | hash_flow.rb:689:5:689:8 | hash [element :a] | provenance | | +| hash_flow.rb:689:12:693:7 | call to update [element :c] | hash_flow.rb:689:5:689:8 | hash [element :c] | provenance | | +| hash_flow.rb:689:12:693:7 | call to update [element :d] | hash_flow.rb:689:5:689:8 | hash [element :d] | provenance | | +| hash_flow.rb:689:12:693:7 | call to update [element :f] | hash_flow.rb:689:5:689:8 | hash [element :f] | provenance | | +| hash_flow.rb:689:25:689:29 | hash2 [element :d] | hash_flow.rb:689:12:689:16 | [post] hash1 [element :d] | provenance | | +| hash_flow.rb:689:25:689:29 | hash2 [element :d] | hash_flow.rb:689:12:693:7 | call to update [element :d] | provenance | | +| hash_flow.rb:689:25:689:29 | hash2 [element :d] | hash_flow.rb:689:41:689:49 | old_value | provenance | | +| hash_flow.rb:689:25:689:29 | hash2 [element :d] | hash_flow.rb:689:52:689:60 | new_value | provenance | | +| hash_flow.rb:689:25:689:29 | hash2 [element :f] | hash_flow.rb:689:12:689:16 | [post] hash1 [element :f] | provenance | | +| hash_flow.rb:689:25:689:29 | hash2 [element :f] | hash_flow.rb:689:12:693:7 | call to update [element :f] | provenance | | +| hash_flow.rb:689:25:689:29 | hash2 [element :f] | hash_flow.rb:689:41:689:49 | old_value | provenance | | +| hash_flow.rb:689:25:689:29 | hash2 [element :f] | hash_flow.rb:689:52:689:60 | new_value | provenance | | +| hash_flow.rb:689:41:689:49 | old_value | hash_flow.rb:691:14:691:22 | old_value | provenance | | +| hash_flow.rb:689:52:689:60 | new_value | hash_flow.rb:692:14:692:22 | new_value | provenance | | +| hash_flow.rb:694:11:694:14 | hash [element :a] | hash_flow.rb:694:11:694:18 | ...[...] | provenance | | +| hash_flow.rb:694:11:694:18 | ...[...] | hash_flow.rb:694:10:694:19 | ( ... ) | provenance | | +| hash_flow.rb:696:11:696:14 | hash [element :c] | hash_flow.rb:696:11:696:18 | ...[...] | provenance | | +| hash_flow.rb:696:11:696:18 | ...[...] | hash_flow.rb:696:10:696:19 | ( ... ) | provenance | | +| hash_flow.rb:697:11:697:14 | hash [element :d] | hash_flow.rb:697:11:697:18 | ...[...] | provenance | | +| hash_flow.rb:697:11:697:18 | ...[...] | hash_flow.rb:697:10:697:19 | ( ... ) | provenance | | +| hash_flow.rb:699:11:699:14 | hash [element :f] | hash_flow.rb:699:11:699:18 | ...[...] | provenance | | +| hash_flow.rb:699:11:699:18 | ...[...] | hash_flow.rb:699:10:699:19 | ( ... ) | provenance | | +| hash_flow.rb:701:11:701:15 | hash1 [element :a] | hash_flow.rb:701:11:701:19 | ...[...] | provenance | | +| hash_flow.rb:701:11:701:19 | ...[...] | hash_flow.rb:701:10:701:20 | ( ... ) | provenance | | +| hash_flow.rb:703:11:703:15 | hash1 [element :c] | hash_flow.rb:703:11:703:19 | ...[...] | provenance | | +| hash_flow.rb:703:11:703:19 | ...[...] | hash_flow.rb:703:10:703:20 | ( ... ) | provenance | | +| hash_flow.rb:704:11:704:15 | hash1 [element :d] | hash_flow.rb:704:11:704:19 | ...[...] | provenance | | +| hash_flow.rb:704:11:704:19 | ...[...] | hash_flow.rb:704:10:704:20 | ( ... ) | provenance | | +| hash_flow.rb:706:11:706:15 | hash1 [element :f] | hash_flow.rb:706:11:706:19 | ...[...] | provenance | | +| hash_flow.rb:706:11:706:19 | ...[...] | hash_flow.rb:706:10:706:20 | ( ... ) | provenance | | +| hash_flow.rb:712:5:712:8 | hash [element :a] | hash_flow.rb:717:9:717:12 | hash [element :a] | provenance | | +| hash_flow.rb:712:5:712:8 | hash [element :c] | hash_flow.rb:717:9:717:12 | hash [element :c] | provenance | | +| hash_flow.rb:713:15:713:25 | call to taint | hash_flow.rb:712:5:712:8 | hash [element :a] | provenance | | +| hash_flow.rb:715:15:715:25 | call to taint | hash_flow.rb:712:5:712:8 | hash [element :c] | provenance | | +| hash_flow.rb:717:5:717:5 | a [element] | hash_flow.rb:718:11:718:11 | a [element] | provenance | | +| hash_flow.rb:717:9:717:12 | hash [element :a] | hash_flow.rb:717:9:717:19 | call to values [element] | provenance | | +| hash_flow.rb:717:9:717:12 | hash [element :c] | hash_flow.rb:717:9:717:19 | call to values [element] | provenance | | +| hash_flow.rb:717:9:717:19 | call to values [element] | hash_flow.rb:717:5:717:5 | a [element] | provenance | | +| hash_flow.rb:718:11:718:11 | a [element] | hash_flow.rb:718:11:718:14 | ...[...] | provenance | | +| hash_flow.rb:718:11:718:14 | ...[...] | hash_flow.rb:718:10:718:15 | ( ... ) | provenance | | +| hash_flow.rb:724:5:724:8 | hash [element :a] | hash_flow.rb:729:9:729:12 | hash [element :a] | provenance | | +| hash_flow.rb:724:5:724:8 | hash [element :a] | hash_flow.rb:731:9:731:12 | hash [element :a] | provenance | | +| hash_flow.rb:724:5:724:8 | hash [element :c] | hash_flow.rb:731:9:731:12 | hash [element :c] | provenance | | +| hash_flow.rb:725:15:725:25 | call to taint | hash_flow.rb:724:5:724:8 | hash [element :a] | provenance | | +| hash_flow.rb:727:15:727:25 | call to taint | hash_flow.rb:724:5:724:8 | hash [element :c] | provenance | | +| hash_flow.rb:729:5:729:5 | b [element 0] | hash_flow.rb:730:10:730:10 | b [element 0] | provenance | | +| hash_flow.rb:729:9:729:12 | hash [element :a] | hash_flow.rb:729:9:729:26 | call to values_at [element 0] | provenance | | +| hash_flow.rb:729:9:729:26 | call to values_at [element 0] | hash_flow.rb:729:5:729:5 | b [element 0] | provenance | | +| hash_flow.rb:730:10:730:10 | b [element 0] | hash_flow.rb:730:10:730:13 | ...[...] | provenance | | +| hash_flow.rb:731:5:731:5 | b [element] | hash_flow.rb:732:10:732:10 | b [element] | provenance | | +| hash_flow.rb:731:9:731:12 | hash [element :a] | hash_flow.rb:731:9:731:31 | call to fetch_values [element] | provenance | | +| hash_flow.rb:731:9:731:12 | hash [element :c] | hash_flow.rb:731:9:731:31 | call to fetch_values [element] | provenance | | +| hash_flow.rb:731:9:731:31 | call to fetch_values [element] | hash_flow.rb:731:5:731:5 | b [element] | provenance | | +| hash_flow.rb:732:10:732:10 | b [element] | hash_flow.rb:732:10:732:13 | ...[...] | provenance | | +| hash_flow.rb:738:5:738:9 | hash1 [element :a] | hash_flow.rb:748:16:748:20 | hash1 [element :a] | provenance | | +| hash_flow.rb:738:5:738:9 | hash1 [element :c] | hash_flow.rb:748:16:748:20 | hash1 [element :c] | provenance | | +| hash_flow.rb:739:15:739:25 | call to taint | hash_flow.rb:738:5:738:9 | hash1 [element :a] | provenance | | +| hash_flow.rb:741:15:741:25 | call to taint | hash_flow.rb:738:5:738:9 | hash1 [element :c] | provenance | | +| hash_flow.rb:743:5:743:9 | hash2 [element :d] | hash_flow.rb:748:44:748:48 | hash2 [element :d] | provenance | | +| hash_flow.rb:743:5:743:9 | hash2 [element :f] | hash_flow.rb:748:44:748:48 | hash2 [element :f] | provenance | | +| hash_flow.rb:744:15:744:25 | call to taint | hash_flow.rb:743:5:743:9 | hash2 [element :d] | provenance | | +| hash_flow.rb:746:15:746:25 | call to taint | hash_flow.rb:743:5:743:9 | hash2 [element :f] | provenance | | +| hash_flow.rb:748:5:748:8 | hash [element :a] | hash_flow.rb:749:10:749:13 | hash [element :a] | provenance | | +| hash_flow.rb:748:5:748:8 | hash [element :c] | hash_flow.rb:751:10:751:13 | hash [element :c] | provenance | | +| hash_flow.rb:748:5:748:8 | hash [element :d] | hash_flow.rb:752:10:752:13 | hash [element :d] | provenance | | +| hash_flow.rb:748:5:748:8 | hash [element :f] | hash_flow.rb:754:10:754:13 | hash [element :f] | provenance | | +| hash_flow.rb:748:5:748:8 | hash [element :g] | hash_flow.rb:755:10:755:13 | hash [element :g] | provenance | | +| hash_flow.rb:748:14:748:20 | ** ... [element :a] | hash_flow.rb:748:5:748:8 | hash [element :a] | provenance | | +| hash_flow.rb:748:14:748:20 | ** ... [element :c] | hash_flow.rb:748:5:748:8 | hash [element :c] | provenance | | +| hash_flow.rb:748:16:748:20 | hash1 [element :a] | hash_flow.rb:748:14:748:20 | ** ... [element :a] | provenance | | +| hash_flow.rb:748:16:748:20 | hash1 [element :c] | hash_flow.rb:748:14:748:20 | ** ... [element :c] | provenance | | +| hash_flow.rb:748:29:748:39 | call to taint | hash_flow.rb:748:5:748:8 | hash [element :g] | provenance | | +| hash_flow.rb:748:42:748:48 | ** ... [element :d] | hash_flow.rb:748:5:748:8 | hash [element :d] | provenance | | +| hash_flow.rb:748:42:748:48 | ** ... [element :f] | hash_flow.rb:748:5:748:8 | hash [element :f] | provenance | | +| hash_flow.rb:748:44:748:48 | hash2 [element :d] | hash_flow.rb:748:42:748:48 | ** ... [element :d] | provenance | | +| hash_flow.rb:748:44:748:48 | hash2 [element :f] | hash_flow.rb:748:42:748:48 | ** ... [element :f] | provenance | | +| hash_flow.rb:749:10:749:13 | hash [element :a] | hash_flow.rb:749:10:749:17 | ...[...] | provenance | | +| hash_flow.rb:751:10:751:13 | hash [element :c] | hash_flow.rb:751:10:751:17 | ...[...] | provenance | | +| hash_flow.rb:752:10:752:13 | hash [element :d] | hash_flow.rb:752:10:752:17 | ...[...] | provenance | | +| hash_flow.rb:754:10:754:13 | hash [element :f] | hash_flow.rb:754:10:754:17 | ...[...] | provenance | | +| hash_flow.rb:755:10:755:13 | hash [element :g] | hash_flow.rb:755:10:755:17 | ...[...] | provenance | | +| hash_flow.rb:762:5:762:8 | hash [element :a] | hash_flow.rb:769:10:769:13 | hash [element :a] | provenance | | +| hash_flow.rb:762:5:762:8 | hash [element :c] | hash_flow.rb:771:10:771:13 | hash [element :c] | provenance | | +| hash_flow.rb:762:5:762:8 | hash [element :c] | hash_flow.rb:774:9:774:12 | hash [element :c] | provenance | | +| hash_flow.rb:762:5:762:8 | hash [element :d] | hash_flow.rb:772:10:772:13 | hash [element :d] | provenance | | +| hash_flow.rb:763:15:763:25 | call to taint | hash_flow.rb:762:5:762:8 | hash [element :a] | provenance | | +| hash_flow.rb:765:15:765:25 | call to taint | hash_flow.rb:762:5:762:8 | hash [element :c] | provenance | | +| hash_flow.rb:766:15:766:25 | call to taint | hash_flow.rb:762:5:762:8 | hash [element :d] | provenance | | +| hash_flow.rb:769:10:769:13 | hash [element :a] | hash_flow.rb:769:10:769:17 | ...[...] | provenance | | +| hash_flow.rb:771:10:771:13 | hash [element :c] | hash_flow.rb:771:10:771:17 | ...[...] | provenance | | +| hash_flow.rb:772:10:772:13 | hash [element :d] | hash_flow.rb:772:10:772:17 | ...[...] | provenance | | +| hash_flow.rb:774:5:774:5 | x [element :c] | hash_flow.rb:778:10:778:10 | x [element :c] | provenance | | +| hash_flow.rb:774:9:774:12 | [post] hash [element :c] | hash_flow.rb:783:10:783:13 | hash [element :c] | provenance | | +| hash_flow.rb:774:9:774:12 | hash [element :c] | hash_flow.rb:774:9:774:12 | [post] hash [element :c] | provenance | | +| hash_flow.rb:774:9:774:12 | hash [element :c] | hash_flow.rb:774:9:774:31 | call to except! [element :c] | provenance | | +| hash_flow.rb:774:9:774:31 | call to except! [element :c] | hash_flow.rb:774:5:774:5 | x [element :c] | provenance | | +| hash_flow.rb:778:10:778:10 | x [element :c] | hash_flow.rb:778:10:778:14 | ...[...] | provenance | | +| hash_flow.rb:783:10:783:13 | hash [element :c] | hash_flow.rb:783:10:783:17 | ...[...] | provenance | | +| hash_flow.rb:790:5:790:9 | hash1 [element :a] | hash_flow.rb:800:12:800:16 | hash1 [element :a] | provenance | | +| hash_flow.rb:790:5:790:9 | hash1 [element :c] | hash_flow.rb:800:12:800:16 | hash1 [element :c] | provenance | | +| hash_flow.rb:791:15:791:25 | call to taint | hash_flow.rb:790:5:790:9 | hash1 [element :a] | provenance | | +| hash_flow.rb:793:15:793:25 | call to taint | hash_flow.rb:790:5:790:9 | hash1 [element :c] | provenance | | +| hash_flow.rb:795:5:795:9 | hash2 [element :d] | hash_flow.rb:800:29:800:33 | hash2 [element :d] | provenance | | +| hash_flow.rb:795:5:795:9 | hash2 [element :f] | hash_flow.rb:800:29:800:33 | hash2 [element :f] | provenance | | +| hash_flow.rb:796:15:796:25 | call to taint | hash_flow.rb:795:5:795:9 | hash2 [element :d] | provenance | | +| hash_flow.rb:798:15:798:25 | call to taint | hash_flow.rb:795:5:795:9 | hash2 [element :f] | provenance | | +| hash_flow.rb:800:5:800:8 | hash [element :a] | hash_flow.rb:805:11:805:14 | hash [element :a] | provenance | | +| hash_flow.rb:800:5:800:8 | hash [element :c] | hash_flow.rb:807:11:807:14 | hash [element :c] | provenance | | +| hash_flow.rb:800:5:800:8 | hash [element :d] | hash_flow.rb:808:11:808:14 | hash [element :d] | provenance | | +| hash_flow.rb:800:5:800:8 | hash [element :f] | hash_flow.rb:810:11:810:14 | hash [element :f] | provenance | | +| hash_flow.rb:800:12:800:16 | hash1 [element :a] | hash_flow.rb:800:12:804:7 | call to deep_merge [element :a] | provenance | | +| hash_flow.rb:800:12:800:16 | hash1 [element :a] | hash_flow.rb:800:45:800:53 | old_value | provenance | | +| hash_flow.rb:800:12:800:16 | hash1 [element :a] | hash_flow.rb:800:56:800:64 | new_value | provenance | | +| hash_flow.rb:800:12:800:16 | hash1 [element :c] | hash_flow.rb:800:12:804:7 | call to deep_merge [element :c] | provenance | | +| hash_flow.rb:800:12:800:16 | hash1 [element :c] | hash_flow.rb:800:45:800:53 | old_value | provenance | | +| hash_flow.rb:800:12:800:16 | hash1 [element :c] | hash_flow.rb:800:56:800:64 | new_value | provenance | | +| hash_flow.rb:800:12:804:7 | call to deep_merge [element :a] | hash_flow.rb:800:5:800:8 | hash [element :a] | provenance | | +| hash_flow.rb:800:12:804:7 | call to deep_merge [element :c] | hash_flow.rb:800:5:800:8 | hash [element :c] | provenance | | +| hash_flow.rb:800:12:804:7 | call to deep_merge [element :d] | hash_flow.rb:800:5:800:8 | hash [element :d] | provenance | | +| hash_flow.rb:800:12:804:7 | call to deep_merge [element :f] | hash_flow.rb:800:5:800:8 | hash [element :f] | provenance | | +| hash_flow.rb:800:29:800:33 | hash2 [element :d] | hash_flow.rb:800:12:804:7 | call to deep_merge [element :d] | provenance | | +| hash_flow.rb:800:29:800:33 | hash2 [element :d] | hash_flow.rb:800:45:800:53 | old_value | provenance | | +| hash_flow.rb:800:29:800:33 | hash2 [element :d] | hash_flow.rb:800:56:800:64 | new_value | provenance | | +| hash_flow.rb:800:29:800:33 | hash2 [element :f] | hash_flow.rb:800:12:804:7 | call to deep_merge [element :f] | provenance | | +| hash_flow.rb:800:29:800:33 | hash2 [element :f] | hash_flow.rb:800:45:800:53 | old_value | provenance | | +| hash_flow.rb:800:29:800:33 | hash2 [element :f] | hash_flow.rb:800:56:800:64 | new_value | provenance | | +| hash_flow.rb:800:45:800:53 | old_value | hash_flow.rb:802:14:802:22 | old_value | provenance | | +| hash_flow.rb:800:56:800:64 | new_value | hash_flow.rb:803:14:803:22 | new_value | provenance | | +| hash_flow.rb:805:11:805:14 | hash [element :a] | hash_flow.rb:805:11:805:18 | ...[...] | provenance | | +| hash_flow.rb:805:11:805:18 | ...[...] | hash_flow.rb:805:10:805:19 | ( ... ) | provenance | | +| hash_flow.rb:807:11:807:14 | hash [element :c] | hash_flow.rb:807:11:807:18 | ...[...] | provenance | | +| hash_flow.rb:807:11:807:18 | ...[...] | hash_flow.rb:807:10:807:19 | ( ... ) | provenance | | +| hash_flow.rb:808:11:808:14 | hash [element :d] | hash_flow.rb:808:11:808:18 | ...[...] | provenance | | +| hash_flow.rb:808:11:808:18 | ...[...] | hash_flow.rb:808:10:808:19 | ( ... ) | provenance | | +| hash_flow.rb:810:11:810:14 | hash [element :f] | hash_flow.rb:810:11:810:18 | ...[...] | provenance | | +| hash_flow.rb:810:11:810:18 | ...[...] | hash_flow.rb:810:10:810:19 | ( ... ) | provenance | | +| hash_flow.rb:816:5:816:9 | hash1 [element :a] | hash_flow.rb:826:12:826:16 | hash1 [element :a] | provenance | | +| hash_flow.rb:816:5:816:9 | hash1 [element :c] | hash_flow.rb:826:12:826:16 | hash1 [element :c] | provenance | | +| hash_flow.rb:817:15:817:25 | call to taint | hash_flow.rb:816:5:816:9 | hash1 [element :a] | provenance | | +| hash_flow.rb:819:15:819:25 | call to taint | hash_flow.rb:816:5:816:9 | hash1 [element :c] | provenance | | +| hash_flow.rb:821:5:821:9 | hash2 [element :d] | hash_flow.rb:826:30:826:34 | hash2 [element :d] | provenance | | +| hash_flow.rb:821:5:821:9 | hash2 [element :f] | hash_flow.rb:826:30:826:34 | hash2 [element :f] | provenance | | +| hash_flow.rb:822:15:822:25 | call to taint | hash_flow.rb:821:5:821:9 | hash2 [element :d] | provenance | | +| hash_flow.rb:824:15:824:25 | call to taint | hash_flow.rb:821:5:821:9 | hash2 [element :f] | provenance | | +| hash_flow.rb:826:5:826:8 | hash [element :a] | hash_flow.rb:831:11:831:14 | hash [element :a] | provenance | | +| hash_flow.rb:826:5:826:8 | hash [element :c] | hash_flow.rb:833:11:833:14 | hash [element :c] | provenance | | +| hash_flow.rb:826:5:826:8 | hash [element :d] | hash_flow.rb:834:11:834:14 | hash [element :d] | provenance | | +| hash_flow.rb:826:5:826:8 | hash [element :f] | hash_flow.rb:836:11:836:14 | hash [element :f] | provenance | | +| hash_flow.rb:826:12:826:16 | [post] hash1 [element :a] | hash_flow.rb:838:11:838:15 | hash1 [element :a] | provenance | | +| hash_flow.rb:826:12:826:16 | [post] hash1 [element :c] | hash_flow.rb:840:11:840:15 | hash1 [element :c] | provenance | | +| hash_flow.rb:826:12:826:16 | [post] hash1 [element :d] | hash_flow.rb:841:11:841:15 | hash1 [element :d] | provenance | | +| hash_flow.rb:826:12:826:16 | [post] hash1 [element :f] | hash_flow.rb:843:11:843:15 | hash1 [element :f] | provenance | | +| hash_flow.rb:826:12:826:16 | hash1 [element :a] | hash_flow.rb:826:12:826:16 | [post] hash1 [element :a] | provenance | | +| hash_flow.rb:826:12:826:16 | hash1 [element :a] | hash_flow.rb:826:12:830:7 | call to deep_merge! [element :a] | provenance | | +| hash_flow.rb:826:12:826:16 | hash1 [element :a] | hash_flow.rb:826:46:826:54 | old_value | provenance | | +| hash_flow.rb:826:12:826:16 | hash1 [element :a] | hash_flow.rb:826:57:826:65 | new_value | provenance | | +| hash_flow.rb:826:12:826:16 | hash1 [element :c] | hash_flow.rb:826:12:826:16 | [post] hash1 [element :c] | provenance | | +| hash_flow.rb:826:12:826:16 | hash1 [element :c] | hash_flow.rb:826:12:830:7 | call to deep_merge! [element :c] | provenance | | +| hash_flow.rb:826:12:826:16 | hash1 [element :c] | hash_flow.rb:826:46:826:54 | old_value | provenance | | +| hash_flow.rb:826:12:826:16 | hash1 [element :c] | hash_flow.rb:826:57:826:65 | new_value | provenance | | +| hash_flow.rb:826:12:830:7 | call to deep_merge! [element :a] | hash_flow.rb:826:5:826:8 | hash [element :a] | provenance | | +| hash_flow.rb:826:12:830:7 | call to deep_merge! [element :c] | hash_flow.rb:826:5:826:8 | hash [element :c] | provenance | | +| hash_flow.rb:826:12:830:7 | call to deep_merge! [element :d] | hash_flow.rb:826:5:826:8 | hash [element :d] | provenance | | +| hash_flow.rb:826:12:830:7 | call to deep_merge! [element :f] | hash_flow.rb:826:5:826:8 | hash [element :f] | provenance | | +| hash_flow.rb:826:30:826:34 | hash2 [element :d] | hash_flow.rb:826:12:826:16 | [post] hash1 [element :d] | provenance | | +| hash_flow.rb:826:30:826:34 | hash2 [element :d] | hash_flow.rb:826:12:830:7 | call to deep_merge! [element :d] | provenance | | +| hash_flow.rb:826:30:826:34 | hash2 [element :d] | hash_flow.rb:826:46:826:54 | old_value | provenance | | +| hash_flow.rb:826:30:826:34 | hash2 [element :d] | hash_flow.rb:826:57:826:65 | new_value | provenance | | +| hash_flow.rb:826:30:826:34 | hash2 [element :f] | hash_flow.rb:826:12:826:16 | [post] hash1 [element :f] | provenance | | +| hash_flow.rb:826:30:826:34 | hash2 [element :f] | hash_flow.rb:826:12:830:7 | call to deep_merge! [element :f] | provenance | | +| hash_flow.rb:826:30:826:34 | hash2 [element :f] | hash_flow.rb:826:46:826:54 | old_value | provenance | | +| hash_flow.rb:826:30:826:34 | hash2 [element :f] | hash_flow.rb:826:57:826:65 | new_value | provenance | | +| hash_flow.rb:826:46:826:54 | old_value | hash_flow.rb:828:14:828:22 | old_value | provenance | | +| hash_flow.rb:826:57:826:65 | new_value | hash_flow.rb:829:14:829:22 | new_value | provenance | | +| hash_flow.rb:831:11:831:14 | hash [element :a] | hash_flow.rb:831:11:831:18 | ...[...] | provenance | | +| hash_flow.rb:831:11:831:18 | ...[...] | hash_flow.rb:831:10:831:19 | ( ... ) | provenance | | +| hash_flow.rb:833:11:833:14 | hash [element :c] | hash_flow.rb:833:11:833:18 | ...[...] | provenance | | +| hash_flow.rb:833:11:833:18 | ...[...] | hash_flow.rb:833:10:833:19 | ( ... ) | provenance | | +| hash_flow.rb:834:11:834:14 | hash [element :d] | hash_flow.rb:834:11:834:18 | ...[...] | provenance | | +| hash_flow.rb:834:11:834:18 | ...[...] | hash_flow.rb:834:10:834:19 | ( ... ) | provenance | | +| hash_flow.rb:836:11:836:14 | hash [element :f] | hash_flow.rb:836:11:836:18 | ...[...] | provenance | | +| hash_flow.rb:836:11:836:18 | ...[...] | hash_flow.rb:836:10:836:19 | ( ... ) | provenance | | +| hash_flow.rb:838:11:838:15 | hash1 [element :a] | hash_flow.rb:838:11:838:19 | ...[...] | provenance | | +| hash_flow.rb:838:11:838:19 | ...[...] | hash_flow.rb:838:10:838:20 | ( ... ) | provenance | | +| hash_flow.rb:840:11:840:15 | hash1 [element :c] | hash_flow.rb:840:11:840:19 | ...[...] | provenance | | +| hash_flow.rb:840:11:840:19 | ...[...] | hash_flow.rb:840:10:840:20 | ( ... ) | provenance | | +| hash_flow.rb:841:11:841:15 | hash1 [element :d] | hash_flow.rb:841:11:841:19 | ...[...] | provenance | | +| hash_flow.rb:841:11:841:19 | ...[...] | hash_flow.rb:841:10:841:20 | ( ... ) | provenance | | +| hash_flow.rb:843:11:843:15 | hash1 [element :f] | hash_flow.rb:843:11:843:19 | ...[...] | provenance | | +| hash_flow.rb:843:11:843:19 | ...[...] | hash_flow.rb:843:10:843:20 | ( ... ) | provenance | | +| hash_flow.rb:849:5:849:9 | hash1 [element :a] | hash_flow.rb:860:13:860:17 | hash1 [element :a] | provenance | | +| hash_flow.rb:849:5:849:9 | hash1 [element :a] | hash_flow.rb:869:13:869:17 | hash1 [element :a] | provenance | | +| hash_flow.rb:849:5:849:9 | hash1 [element :c] | hash_flow.rb:860:13:860:17 | hash1 [element :c] | provenance | | +| hash_flow.rb:849:5:849:9 | hash1 [element :c] | hash_flow.rb:869:13:869:17 | hash1 [element :c] | provenance | | +| hash_flow.rb:850:12:850:22 | call to taint | hash_flow.rb:849:5:849:9 | hash1 [element :a] | provenance | | +| hash_flow.rb:852:12:852:22 | call to taint | hash_flow.rb:849:5:849:9 | hash1 [element :c] | provenance | | +| hash_flow.rb:854:5:854:9 | hash2 [element :d] | hash_flow.rb:860:33:860:37 | hash2 [element :d] | provenance | | +| hash_flow.rb:854:5:854:9 | hash2 [element :d] | hash_flow.rb:869:33:869:37 | hash2 [element :d] | provenance | | +| hash_flow.rb:854:5:854:9 | hash2 [element :f] | hash_flow.rb:860:33:860:37 | hash2 [element :f] | provenance | | +| hash_flow.rb:854:5:854:9 | hash2 [element :f] | hash_flow.rb:869:33:869:37 | hash2 [element :f] | provenance | | +| hash_flow.rb:855:12:855:22 | call to taint | hash_flow.rb:854:5:854:9 | hash2 [element :d] | provenance | | +| hash_flow.rb:857:12:857:22 | call to taint | hash_flow.rb:854:5:854:9 | hash2 [element :f] | provenance | | +| hash_flow.rb:860:5:860:9 | hash3 [element :a] | hash_flow.rb:861:11:861:15 | hash3 [element :a] | provenance | | +| hash_flow.rb:860:5:860:9 | hash3 [element :c] | hash_flow.rb:863:11:863:15 | hash3 [element :c] | provenance | | +| hash_flow.rb:860:5:860:9 | hash3 [element :d] | hash_flow.rb:864:11:864:15 | hash3 [element :d] | provenance | | +| hash_flow.rb:860:5:860:9 | hash3 [element :f] | hash_flow.rb:866:11:866:15 | hash3 [element :f] | provenance | | +| hash_flow.rb:860:13:860:17 | hash1 [element :a] | hash_flow.rb:860:13:860:38 | call to reverse_merge [element :a] | provenance | | +| hash_flow.rb:860:13:860:17 | hash1 [element :c] | hash_flow.rb:860:13:860:38 | call to reverse_merge [element :c] | provenance | | +| hash_flow.rb:860:13:860:38 | call to reverse_merge [element :a] | hash_flow.rb:860:5:860:9 | hash3 [element :a] | provenance | | +| hash_flow.rb:860:13:860:38 | call to reverse_merge [element :c] | hash_flow.rb:860:5:860:9 | hash3 [element :c] | provenance | | +| hash_flow.rb:860:13:860:38 | call to reverse_merge [element :d] | hash_flow.rb:860:5:860:9 | hash3 [element :d] | provenance | | +| hash_flow.rb:860:13:860:38 | call to reverse_merge [element :f] | hash_flow.rb:860:5:860:9 | hash3 [element :f] | provenance | | +| hash_flow.rb:860:33:860:37 | hash2 [element :d] | hash_flow.rb:860:13:860:38 | call to reverse_merge [element :d] | provenance | | +| hash_flow.rb:860:33:860:37 | hash2 [element :f] | hash_flow.rb:860:13:860:38 | call to reverse_merge [element :f] | provenance | | +| hash_flow.rb:861:11:861:15 | hash3 [element :a] | hash_flow.rb:861:11:861:19 | ...[...] | provenance | | +| hash_flow.rb:861:11:861:19 | ...[...] | hash_flow.rb:861:10:861:20 | ( ... ) | provenance | | +| hash_flow.rb:863:11:863:15 | hash3 [element :c] | hash_flow.rb:863:11:863:19 | ...[...] | provenance | | +| hash_flow.rb:863:11:863:19 | ...[...] | hash_flow.rb:863:10:863:20 | ( ... ) | provenance | | +| hash_flow.rb:864:11:864:15 | hash3 [element :d] | hash_flow.rb:864:11:864:19 | ...[...] | provenance | | +| hash_flow.rb:864:11:864:19 | ...[...] | hash_flow.rb:864:10:864:20 | ( ... ) | provenance | | +| hash_flow.rb:866:11:866:15 | hash3 [element :f] | hash_flow.rb:866:11:866:19 | ...[...] | provenance | | +| hash_flow.rb:866:11:866:19 | ...[...] | hash_flow.rb:866:10:866:20 | ( ... ) | provenance | | +| hash_flow.rb:869:5:869:9 | hash4 [element :a] | hash_flow.rb:870:11:870:15 | hash4 [element :a] | provenance | | +| hash_flow.rb:869:5:869:9 | hash4 [element :c] | hash_flow.rb:872:11:872:15 | hash4 [element :c] | provenance | | +| hash_flow.rb:869:5:869:9 | hash4 [element :d] | hash_flow.rb:873:11:873:15 | hash4 [element :d] | provenance | | +| hash_flow.rb:869:5:869:9 | hash4 [element :f] | hash_flow.rb:875:11:875:15 | hash4 [element :f] | provenance | | +| hash_flow.rb:869:13:869:17 | hash1 [element :a] | hash_flow.rb:869:13:869:38 | call to with_defaults [element :a] | provenance | | +| hash_flow.rb:869:13:869:17 | hash1 [element :c] | hash_flow.rb:869:13:869:38 | call to with_defaults [element :c] | provenance | | +| hash_flow.rb:869:13:869:38 | call to with_defaults [element :a] | hash_flow.rb:869:5:869:9 | hash4 [element :a] | provenance | | +| hash_flow.rb:869:13:869:38 | call to with_defaults [element :c] | hash_flow.rb:869:5:869:9 | hash4 [element :c] | provenance | | +| hash_flow.rb:869:13:869:38 | call to with_defaults [element :d] | hash_flow.rb:869:5:869:9 | hash4 [element :d] | provenance | | +| hash_flow.rb:869:13:869:38 | call to with_defaults [element :f] | hash_flow.rb:869:5:869:9 | hash4 [element :f] | provenance | | +| hash_flow.rb:869:33:869:37 | hash2 [element :d] | hash_flow.rb:869:13:869:38 | call to with_defaults [element :d] | provenance | | +| hash_flow.rb:869:33:869:37 | hash2 [element :f] | hash_flow.rb:869:13:869:38 | call to with_defaults [element :f] | provenance | | +| hash_flow.rb:870:11:870:15 | hash4 [element :a] | hash_flow.rb:870:11:870:19 | ...[...] | provenance | | +| hash_flow.rb:870:11:870:19 | ...[...] | hash_flow.rb:870:10:870:20 | ( ... ) | provenance | | +| hash_flow.rb:872:11:872:15 | hash4 [element :c] | hash_flow.rb:872:11:872:19 | ...[...] | provenance | | +| hash_flow.rb:872:11:872:19 | ...[...] | hash_flow.rb:872:10:872:20 | ( ... ) | provenance | | +| hash_flow.rb:873:11:873:15 | hash4 [element :d] | hash_flow.rb:873:11:873:19 | ...[...] | provenance | | +| hash_flow.rb:873:11:873:19 | ...[...] | hash_flow.rb:873:10:873:20 | ( ... ) | provenance | | +| hash_flow.rb:875:11:875:15 | hash4 [element :f] | hash_flow.rb:875:11:875:19 | ...[...] | provenance | | +| hash_flow.rb:875:11:875:19 | ...[...] | hash_flow.rb:875:10:875:20 | ( ... ) | provenance | | +| hash_flow.rb:881:5:881:9 | hash1 [element :a] | hash_flow.rb:892:12:892:16 | hash1 [element :a] | provenance | | +| hash_flow.rb:881:5:881:9 | hash1 [element :c] | hash_flow.rb:892:12:892:16 | hash1 [element :c] | provenance | | +| hash_flow.rb:882:12:882:22 | call to taint | hash_flow.rb:881:5:881:9 | hash1 [element :a] | provenance | | +| hash_flow.rb:884:12:884:22 | call to taint | hash_flow.rb:881:5:881:9 | hash1 [element :c] | provenance | | +| hash_flow.rb:886:5:886:9 | hash2 [element :d] | hash_flow.rb:892:33:892:37 | hash2 [element :d] | provenance | | +| hash_flow.rb:886:5:886:9 | hash2 [element :f] | hash_flow.rb:892:33:892:37 | hash2 [element :f] | provenance | | +| hash_flow.rb:887:12:887:22 | call to taint | hash_flow.rb:886:5:886:9 | hash2 [element :d] | provenance | | +| hash_flow.rb:889:12:889:22 | call to taint | hash_flow.rb:886:5:886:9 | hash2 [element :f] | provenance | | +| hash_flow.rb:892:5:892:8 | hash [element :a] | hash_flow.rb:893:11:893:14 | hash [element :a] | provenance | | +| hash_flow.rb:892:5:892:8 | hash [element :c] | hash_flow.rb:895:11:895:14 | hash [element :c] | provenance | | +| hash_flow.rb:892:5:892:8 | hash [element :d] | hash_flow.rb:896:11:896:14 | hash [element :d] | provenance | | +| hash_flow.rb:892:5:892:8 | hash [element :f] | hash_flow.rb:898:11:898:14 | hash [element :f] | provenance | | +| hash_flow.rb:892:12:892:16 | [post] hash1 [element :a] | hash_flow.rb:900:11:900:15 | hash1 [element :a] | provenance | | +| hash_flow.rb:892:12:892:16 | [post] hash1 [element :c] | hash_flow.rb:902:11:902:15 | hash1 [element :c] | provenance | | +| hash_flow.rb:892:12:892:16 | [post] hash1 [element :d] | hash_flow.rb:903:11:903:15 | hash1 [element :d] | provenance | | +| hash_flow.rb:892:12:892:16 | [post] hash1 [element :f] | hash_flow.rb:905:11:905:15 | hash1 [element :f] | provenance | | +| hash_flow.rb:892:12:892:16 | hash1 [element :a] | hash_flow.rb:892:12:892:16 | [post] hash1 [element :a] | provenance | | +| hash_flow.rb:892:12:892:16 | hash1 [element :a] | hash_flow.rb:892:12:892:38 | call to reverse_merge! [element :a] | provenance | | +| hash_flow.rb:892:12:892:16 | hash1 [element :c] | hash_flow.rb:892:12:892:16 | [post] hash1 [element :c] | provenance | | +| hash_flow.rb:892:12:892:16 | hash1 [element :c] | hash_flow.rb:892:12:892:38 | call to reverse_merge! [element :c] | provenance | | +| hash_flow.rb:892:12:892:38 | call to reverse_merge! [element :a] | hash_flow.rb:892:5:892:8 | hash [element :a] | provenance | | +| hash_flow.rb:892:12:892:38 | call to reverse_merge! [element :c] | hash_flow.rb:892:5:892:8 | hash [element :c] | provenance | | +| hash_flow.rb:892:12:892:38 | call to reverse_merge! [element :d] | hash_flow.rb:892:5:892:8 | hash [element :d] | provenance | | +| hash_flow.rb:892:12:892:38 | call to reverse_merge! [element :f] | hash_flow.rb:892:5:892:8 | hash [element :f] | provenance | | +| hash_flow.rb:892:33:892:37 | hash2 [element :d] | hash_flow.rb:892:12:892:16 | [post] hash1 [element :d] | provenance | | +| hash_flow.rb:892:33:892:37 | hash2 [element :d] | hash_flow.rb:892:12:892:38 | call to reverse_merge! [element :d] | provenance | | +| hash_flow.rb:892:33:892:37 | hash2 [element :f] | hash_flow.rb:892:12:892:16 | [post] hash1 [element :f] | provenance | | +| hash_flow.rb:892:33:892:37 | hash2 [element :f] | hash_flow.rb:892:12:892:38 | call to reverse_merge! [element :f] | provenance | | +| hash_flow.rb:893:11:893:14 | hash [element :a] | hash_flow.rb:893:11:893:18 | ...[...] | provenance | | +| hash_flow.rb:893:11:893:18 | ...[...] | hash_flow.rb:893:10:893:19 | ( ... ) | provenance | | +| hash_flow.rb:895:11:895:14 | hash [element :c] | hash_flow.rb:895:11:895:18 | ...[...] | provenance | | +| hash_flow.rb:895:11:895:18 | ...[...] | hash_flow.rb:895:10:895:19 | ( ... ) | provenance | | +| hash_flow.rb:896:11:896:14 | hash [element :d] | hash_flow.rb:896:11:896:18 | ...[...] | provenance | | +| hash_flow.rb:896:11:896:18 | ...[...] | hash_flow.rb:896:10:896:19 | ( ... ) | provenance | | +| hash_flow.rb:898:11:898:14 | hash [element :f] | hash_flow.rb:898:11:898:18 | ...[...] | provenance | | +| hash_flow.rb:898:11:898:18 | ...[...] | hash_flow.rb:898:10:898:19 | ( ... ) | provenance | | +| hash_flow.rb:900:11:900:15 | hash1 [element :a] | hash_flow.rb:900:11:900:19 | ...[...] | provenance | | +| hash_flow.rb:900:11:900:19 | ...[...] | hash_flow.rb:900:10:900:20 | ( ... ) | provenance | | +| hash_flow.rb:902:11:902:15 | hash1 [element :c] | hash_flow.rb:902:11:902:19 | ...[...] | provenance | | +| hash_flow.rb:902:11:902:19 | ...[...] | hash_flow.rb:902:10:902:20 | ( ... ) | provenance | | +| hash_flow.rb:903:11:903:15 | hash1 [element :d] | hash_flow.rb:903:11:903:19 | ...[...] | provenance | | +| hash_flow.rb:903:11:903:19 | ...[...] | hash_flow.rb:903:10:903:20 | ( ... ) | provenance | | +| hash_flow.rb:905:11:905:15 | hash1 [element :f] | hash_flow.rb:905:11:905:19 | ...[...] | provenance | | +| hash_flow.rb:905:11:905:19 | ...[...] | hash_flow.rb:905:10:905:20 | ( ... ) | provenance | | +| hash_flow.rb:911:5:911:9 | hash1 [element :a] | hash_flow.rb:922:12:922:16 | hash1 [element :a] | provenance | | +| hash_flow.rb:911:5:911:9 | hash1 [element :c] | hash_flow.rb:922:12:922:16 | hash1 [element :c] | provenance | | +| hash_flow.rb:912:12:912:22 | call to taint | hash_flow.rb:911:5:911:9 | hash1 [element :a] | provenance | | +| hash_flow.rb:914:12:914:22 | call to taint | hash_flow.rb:911:5:911:9 | hash1 [element :c] | provenance | | +| hash_flow.rb:916:5:916:9 | hash2 [element :d] | hash_flow.rb:922:33:922:37 | hash2 [element :d] | provenance | | +| hash_flow.rb:916:5:916:9 | hash2 [element :f] | hash_flow.rb:922:33:922:37 | hash2 [element :f] | provenance | | +| hash_flow.rb:917:12:917:22 | call to taint | hash_flow.rb:916:5:916:9 | hash2 [element :d] | provenance | | +| hash_flow.rb:919:12:919:22 | call to taint | hash_flow.rb:916:5:916:9 | hash2 [element :f] | provenance | | +| hash_flow.rb:922:5:922:8 | hash [element :a] | hash_flow.rb:923:11:923:14 | hash [element :a] | provenance | | +| hash_flow.rb:922:5:922:8 | hash [element :c] | hash_flow.rb:925:11:925:14 | hash [element :c] | provenance | | +| hash_flow.rb:922:5:922:8 | hash [element :d] | hash_flow.rb:926:11:926:14 | hash [element :d] | provenance | | +| hash_flow.rb:922:5:922:8 | hash [element :f] | hash_flow.rb:928:11:928:14 | hash [element :f] | provenance | | +| hash_flow.rb:922:12:922:16 | [post] hash1 [element :a] | hash_flow.rb:930:11:930:15 | hash1 [element :a] | provenance | | +| hash_flow.rb:922:12:922:16 | [post] hash1 [element :c] | hash_flow.rb:932:11:932:15 | hash1 [element :c] | provenance | | +| hash_flow.rb:922:12:922:16 | [post] hash1 [element :d] | hash_flow.rb:933:11:933:15 | hash1 [element :d] | provenance | | +| hash_flow.rb:922:12:922:16 | [post] hash1 [element :f] | hash_flow.rb:935:11:935:15 | hash1 [element :f] | provenance | | +| hash_flow.rb:922:12:922:16 | hash1 [element :a] | hash_flow.rb:922:12:922:16 | [post] hash1 [element :a] | provenance | | +| hash_flow.rb:922:12:922:16 | hash1 [element :a] | hash_flow.rb:922:12:922:38 | call to with_defaults! [element :a] | provenance | | +| hash_flow.rb:922:12:922:16 | hash1 [element :c] | hash_flow.rb:922:12:922:16 | [post] hash1 [element :c] | provenance | | +| hash_flow.rb:922:12:922:16 | hash1 [element :c] | hash_flow.rb:922:12:922:38 | call to with_defaults! [element :c] | provenance | | +| hash_flow.rb:922:12:922:38 | call to with_defaults! [element :a] | hash_flow.rb:922:5:922:8 | hash [element :a] | provenance | | +| hash_flow.rb:922:12:922:38 | call to with_defaults! [element :c] | hash_flow.rb:922:5:922:8 | hash [element :c] | provenance | | +| hash_flow.rb:922:12:922:38 | call to with_defaults! [element :d] | hash_flow.rb:922:5:922:8 | hash [element :d] | provenance | | +| hash_flow.rb:922:12:922:38 | call to with_defaults! [element :f] | hash_flow.rb:922:5:922:8 | hash [element :f] | provenance | | +| hash_flow.rb:922:33:922:37 | hash2 [element :d] | hash_flow.rb:922:12:922:16 | [post] hash1 [element :d] | provenance | | +| hash_flow.rb:922:33:922:37 | hash2 [element :d] | hash_flow.rb:922:12:922:38 | call to with_defaults! [element :d] | provenance | | +| hash_flow.rb:922:33:922:37 | hash2 [element :f] | hash_flow.rb:922:12:922:16 | [post] hash1 [element :f] | provenance | | +| hash_flow.rb:922:33:922:37 | hash2 [element :f] | hash_flow.rb:922:12:922:38 | call to with_defaults! [element :f] | provenance | | +| hash_flow.rb:923:11:923:14 | hash [element :a] | hash_flow.rb:923:11:923:18 | ...[...] | provenance | | +| hash_flow.rb:923:11:923:18 | ...[...] | hash_flow.rb:923:10:923:19 | ( ... ) | provenance | | +| hash_flow.rb:925:11:925:14 | hash [element :c] | hash_flow.rb:925:11:925:18 | ...[...] | provenance | | +| hash_flow.rb:925:11:925:18 | ...[...] | hash_flow.rb:925:10:925:19 | ( ... ) | provenance | | +| hash_flow.rb:926:11:926:14 | hash [element :d] | hash_flow.rb:926:11:926:18 | ...[...] | provenance | | +| hash_flow.rb:926:11:926:18 | ...[...] | hash_flow.rb:926:10:926:19 | ( ... ) | provenance | | +| hash_flow.rb:928:11:928:14 | hash [element :f] | hash_flow.rb:928:11:928:18 | ...[...] | provenance | | +| hash_flow.rb:928:11:928:18 | ...[...] | hash_flow.rb:928:10:928:19 | ( ... ) | provenance | | +| hash_flow.rb:930:11:930:15 | hash1 [element :a] | hash_flow.rb:930:11:930:19 | ...[...] | provenance | | +| hash_flow.rb:930:11:930:19 | ...[...] | hash_flow.rb:930:10:930:20 | ( ... ) | provenance | | +| hash_flow.rb:932:11:932:15 | hash1 [element :c] | hash_flow.rb:932:11:932:19 | ...[...] | provenance | | +| hash_flow.rb:932:11:932:19 | ...[...] | hash_flow.rb:932:10:932:20 | ( ... ) | provenance | | +| hash_flow.rb:933:11:933:15 | hash1 [element :d] | hash_flow.rb:933:11:933:19 | ...[...] | provenance | | +| hash_flow.rb:933:11:933:19 | ...[...] | hash_flow.rb:933:10:933:20 | ( ... ) | provenance | | +| hash_flow.rb:935:11:935:15 | hash1 [element :f] | hash_flow.rb:935:11:935:19 | ...[...] | provenance | | +| hash_flow.rb:935:11:935:19 | ...[...] | hash_flow.rb:935:10:935:20 | ( ... ) | provenance | | +| hash_flow.rb:941:5:941:9 | hash1 [element :a] | hash_flow.rb:952:12:952:16 | hash1 [element :a] | provenance | | +| hash_flow.rb:941:5:941:9 | hash1 [element :c] | hash_flow.rb:952:12:952:16 | hash1 [element :c] | provenance | | +| hash_flow.rb:942:12:942:22 | call to taint | hash_flow.rb:941:5:941:9 | hash1 [element :a] | provenance | | +| hash_flow.rb:944:12:944:22 | call to taint | hash_flow.rb:941:5:941:9 | hash1 [element :c] | provenance | | +| hash_flow.rb:946:5:946:9 | hash2 [element :d] | hash_flow.rb:952:33:952:37 | hash2 [element :d] | provenance | | +| hash_flow.rb:946:5:946:9 | hash2 [element :f] | hash_flow.rb:952:33:952:37 | hash2 [element :f] | provenance | | +| hash_flow.rb:947:12:947:22 | call to taint | hash_flow.rb:946:5:946:9 | hash2 [element :d] | provenance | | +| hash_flow.rb:949:12:949:22 | call to taint | hash_flow.rb:946:5:946:9 | hash2 [element :f] | provenance | | +| hash_flow.rb:952:5:952:8 | hash [element :a] | hash_flow.rb:953:11:953:14 | hash [element :a] | provenance | | +| hash_flow.rb:952:5:952:8 | hash [element :c] | hash_flow.rb:955:11:955:14 | hash [element :c] | provenance | | +| hash_flow.rb:952:5:952:8 | hash [element :d] | hash_flow.rb:956:11:956:14 | hash [element :d] | provenance | | +| hash_flow.rb:952:5:952:8 | hash [element :f] | hash_flow.rb:958:11:958:14 | hash [element :f] | provenance | | +| hash_flow.rb:952:12:952:16 | [post] hash1 [element :a] | hash_flow.rb:960:11:960:15 | hash1 [element :a] | provenance | | +| hash_flow.rb:952:12:952:16 | [post] hash1 [element :c] | hash_flow.rb:962:11:962:15 | hash1 [element :c] | provenance | | +| hash_flow.rb:952:12:952:16 | [post] hash1 [element :d] | hash_flow.rb:963:11:963:15 | hash1 [element :d] | provenance | | +| hash_flow.rb:952:12:952:16 | [post] hash1 [element :f] | hash_flow.rb:965:11:965:15 | hash1 [element :f] | provenance | | +| hash_flow.rb:952:12:952:16 | hash1 [element :a] | hash_flow.rb:952:12:952:16 | [post] hash1 [element :a] | provenance | | +| hash_flow.rb:952:12:952:16 | hash1 [element :a] | hash_flow.rb:952:12:952:38 | call to with_defaults! [element :a] | provenance | | +| hash_flow.rb:952:12:952:16 | hash1 [element :c] | hash_flow.rb:952:12:952:16 | [post] hash1 [element :c] | provenance | | +| hash_flow.rb:952:12:952:16 | hash1 [element :c] | hash_flow.rb:952:12:952:38 | call to with_defaults! [element :c] | provenance | | +| hash_flow.rb:952:12:952:38 | call to with_defaults! [element :a] | hash_flow.rb:952:5:952:8 | hash [element :a] | provenance | | +| hash_flow.rb:952:12:952:38 | call to with_defaults! [element :c] | hash_flow.rb:952:5:952:8 | hash [element :c] | provenance | | +| hash_flow.rb:952:12:952:38 | call to with_defaults! [element :d] | hash_flow.rb:952:5:952:8 | hash [element :d] | provenance | | +| hash_flow.rb:952:12:952:38 | call to with_defaults! [element :f] | hash_flow.rb:952:5:952:8 | hash [element :f] | provenance | | +| hash_flow.rb:952:33:952:37 | hash2 [element :d] | hash_flow.rb:952:12:952:16 | [post] hash1 [element :d] | provenance | | +| hash_flow.rb:952:33:952:37 | hash2 [element :d] | hash_flow.rb:952:12:952:38 | call to with_defaults! [element :d] | provenance | | +| hash_flow.rb:952:33:952:37 | hash2 [element :f] | hash_flow.rb:952:12:952:16 | [post] hash1 [element :f] | provenance | | +| hash_flow.rb:952:33:952:37 | hash2 [element :f] | hash_flow.rb:952:12:952:38 | call to with_defaults! [element :f] | provenance | | +| hash_flow.rb:953:11:953:14 | hash [element :a] | hash_flow.rb:953:11:953:18 | ...[...] | provenance | | +| hash_flow.rb:953:11:953:18 | ...[...] | hash_flow.rb:953:10:953:19 | ( ... ) | provenance | | +| hash_flow.rb:955:11:955:14 | hash [element :c] | hash_flow.rb:955:11:955:18 | ...[...] | provenance | | +| hash_flow.rb:955:11:955:18 | ...[...] | hash_flow.rb:955:10:955:19 | ( ... ) | provenance | | +| hash_flow.rb:956:11:956:14 | hash [element :d] | hash_flow.rb:956:11:956:18 | ...[...] | provenance | | +| hash_flow.rb:956:11:956:18 | ...[...] | hash_flow.rb:956:10:956:19 | ( ... ) | provenance | | +| hash_flow.rb:958:11:958:14 | hash [element :f] | hash_flow.rb:958:11:958:18 | ...[...] | provenance | | +| hash_flow.rb:958:11:958:18 | ...[...] | hash_flow.rb:958:10:958:19 | ( ... ) | provenance | | +| hash_flow.rb:960:11:960:15 | hash1 [element :a] | hash_flow.rb:960:11:960:19 | ...[...] | provenance | | +| hash_flow.rb:960:11:960:19 | ...[...] | hash_flow.rb:960:10:960:20 | ( ... ) | provenance | | +| hash_flow.rb:962:11:962:15 | hash1 [element :c] | hash_flow.rb:962:11:962:19 | ...[...] | provenance | | +| hash_flow.rb:962:11:962:19 | ...[...] | hash_flow.rb:962:10:962:20 | ( ... ) | provenance | | +| hash_flow.rb:963:11:963:15 | hash1 [element :d] | hash_flow.rb:963:11:963:19 | ...[...] | provenance | | +| hash_flow.rb:963:11:963:19 | ...[...] | hash_flow.rb:963:10:963:20 | ( ... ) | provenance | | +| hash_flow.rb:965:11:965:15 | hash1 [element :f] | hash_flow.rb:965:11:965:19 | ...[...] | provenance | | +| hash_flow.rb:965:11:965:19 | ...[...] | hash_flow.rb:965:10:965:20 | ( ... ) | provenance | | +| hash_flow.rb:971:5:971:5 | h [element :b] | hash_flow.rb:973:10:973:10 | h [element :b] | provenance | | +| hash_flow.rb:971:5:971:5 | h [element :b] | hash_flow.rb:975:10:975:10 | h [element :b] | provenance | | +| hash_flow.rb:971:9:971:38 | ...[...] [element :b] | hash_flow.rb:971:5:971:5 | h [element :b] | provenance | | +| hash_flow.rb:971:23:971:31 | call to taint | hash_flow.rb:971:9:971:38 | ...[...] [element :b] | provenance | | +| hash_flow.rb:973:10:973:10 | h [element :b] | hash_flow.rb:973:10:973:14 | ...[...] | provenance | | +| hash_flow.rb:975:10:975:10 | h [element :b] | hash_flow.rb:975:10:975:13 | ...[...] | provenance | | +| hash_flow.rb:994:9:994:10 | h2 [element :b] | hash_flow.rb:996:14:996:15 | h2 [element :b] | provenance | | +| hash_flow.rb:994:9:994:10 | h2 [element :b] | hash_flow.rb:998:14:998:15 | h2 [element :b] | provenance | | +| hash_flow.rb:994:14:994:47 | ...[...] [element :b] | hash_flow.rb:994:9:994:10 | h2 [element :b] | provenance | | +| hash_flow.rb:994:30:994:40 | call to taint | hash_flow.rb:994:14:994:47 | ...[...] [element :b] | provenance | | +| hash_flow.rb:996:14:996:15 | h2 [element :b] | hash_flow.rb:996:14:996:19 | ...[...] | provenance | | +| hash_flow.rb:998:14:998:15 | h2 [element :b] | hash_flow.rb:998:14:998:18 | ...[...] | provenance | | nodes | hash_flow.rb:10:5:10:8 | hash [element 0] | semmle.label | hash [element 0] | | hash_flow.rb:10:5:10:8 | hash [element :a] | semmle.label | hash [element :a] | diff --git a/ruby/ql/test/library-tests/dataflow/local/InlineFlowTest.expected b/ruby/ql/test/library-tests/dataflow/local/InlineFlowTest.expected index 0efa1cd8b5ac..a8722b1fb507 100644 --- a/ruby/ql/test/library-tests/dataflow/local/InlineFlowTest.expected +++ b/ruby/ql/test/library-tests/dataflow/local/InlineFlowTest.expected @@ -1,50 +1,50 @@ testFailures edges -| local_dataflow.rb:78:3:78:3 | z | local_dataflow.rb:89:8:89:8 | z | -| local_dataflow.rb:78:12:78:20 | call to source | local_dataflow.rb:79:13:79:13 | b | -| local_dataflow.rb:78:12:78:20 | call to source | local_dataflow.rb:80:8:80:8 | a | -| local_dataflow.rb:78:12:78:20 | call to source | local_dataflow.rb:81:9:81:9 | c | -| local_dataflow.rb:78:12:78:20 | call to source | local_dataflow.rb:81:13:81:13 | d | -| local_dataflow.rb:78:12:78:20 | call to source | local_dataflow.rb:81:16:81:16 | e | -| local_dataflow.rb:78:12:78:20 | call to source | local_dataflow.rb:85:13:85:13 | f | -| local_dataflow.rb:78:12:78:20 | call to source | local_dataflow.rb:86:18:86:18 | g | -| local_dataflow.rb:78:12:78:20 | call to source | local_dataflow.rb:87:10:87:10 | x | -| local_dataflow.rb:79:13:79:13 | b | local_dataflow.rb:79:25:79:25 | b | -| local_dataflow.rb:80:8:80:8 | a | local_dataflow.rb:80:29:80:29 | a | -| local_dataflow.rb:81:9:81:9 | c | local_dataflow.rb:82:12:82:12 | c | -| local_dataflow.rb:81:13:81:13 | d | local_dataflow.rb:83:12:83:12 | d | -| local_dataflow.rb:81:16:81:16 | e | local_dataflow.rb:84:12:84:12 | e | -| local_dataflow.rb:85:13:85:13 | f | local_dataflow.rb:85:27:85:27 | f | -| local_dataflow.rb:86:18:86:18 | g | local_dataflow.rb:86:33:86:33 | g | -| local_dataflow.rb:87:10:87:10 | x | local_dataflow.rb:78:3:78:3 | z | -| local_dataflow.rb:87:10:87:10 | x | local_dataflow.rb:87:25:87:25 | x | -| local_dataflow.rb:93:3:93:3 | a | local_dataflow.rb:94:8:94:8 | a | -| local_dataflow.rb:93:7:93:15 | call to source | local_dataflow.rb:93:3:93:3 | a | -| local_dataflow.rb:93:20:93:28 | call to source | local_dataflow.rb:93:3:93:3 | a | -| local_dataflow.rb:95:3:95:3 | b | local_dataflow.rb:96:8:96:8 | b | -| local_dataflow.rb:95:8:95:16 | call to source | local_dataflow.rb:95:3:95:3 | b | -| local_dataflow.rb:95:21:95:29 | call to source | local_dataflow.rb:95:3:95:3 | b | -| local_dataflow.rb:98:3:98:3 | a | local_dataflow.rb:99:8:99:8 | a | -| local_dataflow.rb:98:20:98:28 | call to source | local_dataflow.rb:98:3:98:3 | a | -| local_dataflow.rb:100:3:100:3 | b | local_dataflow.rb:101:8:101:8 | b | -| local_dataflow.rb:100:22:100:30 | call to source | local_dataflow.rb:100:3:100:3 | b | -| local_dataflow.rb:103:3:103:3 | a | local_dataflow.rb:104:3:104:3 | a | -| local_dataflow.rb:103:7:103:15 | call to source | local_dataflow.rb:103:3:103:3 | a | -| local_dataflow.rb:104:3:104:3 | a | local_dataflow.rb:105:8:105:8 | a | -| local_dataflow.rb:104:9:104:17 | call to source | local_dataflow.rb:104:3:104:3 | a | -| local_dataflow.rb:107:3:107:3 | b | local_dataflow.rb:108:8:108:8 | b | -| local_dataflow.rb:107:9:107:17 | call to source | local_dataflow.rb:107:3:107:3 | b | -| local_dataflow.rb:112:8:112:16 | call to source | local_dataflow.rb:112:8:112:20 | call to dup | -| local_dataflow.rb:113:8:113:16 | call to source | local_dataflow.rb:113:8:113:20 | call to dup | -| local_dataflow.rb:113:8:113:20 | call to dup | local_dataflow.rb:113:8:113:24 | call to dup | -| local_dataflow.rb:117:8:117:16 | call to source | local_dataflow.rb:117:8:117:23 | call to tap | -| local_dataflow.rb:118:3:118:11 | call to source | local_dataflow.rb:118:20:118:20 | x | -| local_dataflow.rb:118:20:118:20 | x | local_dataflow.rb:118:28:118:28 | x | -| local_dataflow.rb:119:8:119:16 | call to source | local_dataflow.rb:119:8:119:23 | call to tap | -| local_dataflow.rb:119:8:119:23 | call to tap | local_dataflow.rb:119:8:119:30 | call to tap | -| local_dataflow.rb:123:8:123:16 | call to source | local_dataflow.rb:123:8:123:20 | call to dup | -| local_dataflow.rb:123:8:123:20 | call to dup | local_dataflow.rb:123:8:123:45 | call to tap | -| local_dataflow.rb:123:8:123:45 | call to tap | local_dataflow.rb:123:8:123:49 | call to dup | +| local_dataflow.rb:78:3:78:3 | z | local_dataflow.rb:89:8:89:8 | z | provenance | | +| local_dataflow.rb:78:12:78:20 | call to source | local_dataflow.rb:79:13:79:13 | b | provenance | | +| local_dataflow.rb:78:12:78:20 | call to source | local_dataflow.rb:80:8:80:8 | a | provenance | | +| local_dataflow.rb:78:12:78:20 | call to source | local_dataflow.rb:81:9:81:9 | c | provenance | | +| local_dataflow.rb:78:12:78:20 | call to source | local_dataflow.rb:81:13:81:13 | d | provenance | | +| local_dataflow.rb:78:12:78:20 | call to source | local_dataflow.rb:81:16:81:16 | e | provenance | | +| local_dataflow.rb:78:12:78:20 | call to source | local_dataflow.rb:85:13:85:13 | f | provenance | | +| local_dataflow.rb:78:12:78:20 | call to source | local_dataflow.rb:86:18:86:18 | g | provenance | | +| local_dataflow.rb:78:12:78:20 | call to source | local_dataflow.rb:87:10:87:10 | x | provenance | | +| local_dataflow.rb:79:13:79:13 | b | local_dataflow.rb:79:25:79:25 | b | provenance | | +| local_dataflow.rb:80:8:80:8 | a | local_dataflow.rb:80:29:80:29 | a | provenance | | +| local_dataflow.rb:81:9:81:9 | c | local_dataflow.rb:82:12:82:12 | c | provenance | | +| local_dataflow.rb:81:13:81:13 | d | local_dataflow.rb:83:12:83:12 | d | provenance | | +| local_dataflow.rb:81:16:81:16 | e | local_dataflow.rb:84:12:84:12 | e | provenance | | +| local_dataflow.rb:85:13:85:13 | f | local_dataflow.rb:85:27:85:27 | f | provenance | | +| local_dataflow.rb:86:18:86:18 | g | local_dataflow.rb:86:33:86:33 | g | provenance | | +| local_dataflow.rb:87:10:87:10 | x | local_dataflow.rb:78:3:78:3 | z | provenance | | +| local_dataflow.rb:87:10:87:10 | x | local_dataflow.rb:87:25:87:25 | x | provenance | | +| local_dataflow.rb:93:3:93:3 | a | local_dataflow.rb:94:8:94:8 | a | provenance | | +| local_dataflow.rb:93:7:93:15 | call to source | local_dataflow.rb:93:3:93:3 | a | provenance | | +| local_dataflow.rb:93:20:93:28 | call to source | local_dataflow.rb:93:3:93:3 | a | provenance | | +| local_dataflow.rb:95:3:95:3 | b | local_dataflow.rb:96:8:96:8 | b | provenance | | +| local_dataflow.rb:95:8:95:16 | call to source | local_dataflow.rb:95:3:95:3 | b | provenance | | +| local_dataflow.rb:95:21:95:29 | call to source | local_dataflow.rb:95:3:95:3 | b | provenance | | +| local_dataflow.rb:98:3:98:3 | a | local_dataflow.rb:99:8:99:8 | a | provenance | | +| local_dataflow.rb:98:20:98:28 | call to source | local_dataflow.rb:98:3:98:3 | a | provenance | | +| local_dataflow.rb:100:3:100:3 | b | local_dataflow.rb:101:8:101:8 | b | provenance | | +| local_dataflow.rb:100:22:100:30 | call to source | local_dataflow.rb:100:3:100:3 | b | provenance | | +| local_dataflow.rb:103:3:103:3 | a | local_dataflow.rb:104:3:104:3 | a | provenance | | +| local_dataflow.rb:103:7:103:15 | call to source | local_dataflow.rb:103:3:103:3 | a | provenance | | +| local_dataflow.rb:104:3:104:3 | a | local_dataflow.rb:105:8:105:8 | a | provenance | | +| local_dataflow.rb:104:9:104:17 | call to source | local_dataflow.rb:104:3:104:3 | a | provenance | | +| local_dataflow.rb:107:3:107:3 | b | local_dataflow.rb:108:8:108:8 | b | provenance | | +| local_dataflow.rb:107:9:107:17 | call to source | local_dataflow.rb:107:3:107:3 | b | provenance | | +| local_dataflow.rb:112:8:112:16 | call to source | local_dataflow.rb:112:8:112:20 | call to dup | provenance | | +| local_dataflow.rb:113:8:113:16 | call to source | local_dataflow.rb:113:8:113:20 | call to dup | provenance | | +| local_dataflow.rb:113:8:113:20 | call to dup | local_dataflow.rb:113:8:113:24 | call to dup | provenance | | +| local_dataflow.rb:117:8:117:16 | call to source | local_dataflow.rb:117:8:117:23 | call to tap | provenance | | +| local_dataflow.rb:118:3:118:11 | call to source | local_dataflow.rb:118:20:118:20 | x | provenance | | +| local_dataflow.rb:118:20:118:20 | x | local_dataflow.rb:118:28:118:28 | x | provenance | | +| local_dataflow.rb:119:8:119:16 | call to source | local_dataflow.rb:119:8:119:23 | call to tap | provenance | | +| local_dataflow.rb:119:8:119:23 | call to tap | local_dataflow.rb:119:8:119:30 | call to tap | provenance | | +| local_dataflow.rb:123:8:123:16 | call to source | local_dataflow.rb:123:8:123:20 | call to dup | provenance | | +| local_dataflow.rb:123:8:123:20 | call to dup | local_dataflow.rb:123:8:123:45 | call to tap | provenance | | +| local_dataflow.rb:123:8:123:45 | call to tap | local_dataflow.rb:123:8:123:49 | call to dup | provenance | | nodes | local_dataflow.rb:78:3:78:3 | z | semmle.label | z | | local_dataflow.rb:78:12:78:20 | call to source | semmle.label | call to source | diff --git a/ruby/ql/test/library-tests/dataflow/params/params-flow.expected b/ruby/ql/test/library-tests/dataflow/params/params-flow.expected index 7ed1f7586822..629c99939840 100644 --- a/ruby/ql/test/library-tests/dataflow/params/params-flow.expected +++ b/ruby/ql/test/library-tests/dataflow/params/params-flow.expected @@ -1,174 +1,174 @@ testFailures edges -| params_flow.rb:9:16:9:17 | p1 | params_flow.rb:10:10:10:11 | p1 | -| params_flow.rb:9:20:9:21 | p2 | params_flow.rb:11:10:11:11 | p2 | -| params_flow.rb:14:12:14:19 | call to taint | params_flow.rb:9:16:9:17 | p1 | -| params_flow.rb:14:22:14:29 | call to taint | params_flow.rb:9:20:9:21 | p2 | -| params_flow.rb:16:13:16:14 | p1 | params_flow.rb:17:10:17:11 | p1 | -| params_flow.rb:16:18:16:19 | p2 | params_flow.rb:18:10:18:11 | p2 | -| params_flow.rb:21:13:21:20 | call to taint | params_flow.rb:16:13:16:14 | p1 | -| params_flow.rb:21:27:21:34 | call to taint | params_flow.rb:16:18:16:19 | p2 | -| params_flow.rb:22:13:22:20 | call to taint | params_flow.rb:16:18:16:19 | p2 | -| params_flow.rb:22:27:22:34 | call to taint | params_flow.rb:16:13:16:14 | p1 | -| params_flow.rb:23:16:23:23 | call to taint | params_flow.rb:16:18:16:19 | p2 | -| params_flow.rb:23:33:23:40 | call to taint | params_flow.rb:16:13:16:14 | p1 | -| params_flow.rb:25:12:25:13 | p1 | params_flow.rb:26:10:26:11 | p1 | -| params_flow.rb:25:17:25:24 | **kwargs [element :p2] | params_flow.rb:28:11:28:16 | kwargs [element :p2] | -| params_flow.rb:25:17:25:24 | **kwargs [element :p3] | params_flow.rb:29:11:29:16 | kwargs [element :p3] | -| params_flow.rb:25:17:25:24 | **kwargs [hash-splat position :p2] | params_flow.rb:28:11:28:16 | kwargs [hash-splat position :p2] | -| params_flow.rb:25:17:25:24 | **kwargs [hash-splat position :p3] | params_flow.rb:29:11:29:16 | kwargs [hash-splat position :p3] | -| params_flow.rb:28:11:28:16 | kwargs [element :p2] | params_flow.rb:28:11:28:21 | ...[...] | -| params_flow.rb:28:11:28:16 | kwargs [hash-splat position :p2] | params_flow.rb:28:11:28:21 | ...[...] | -| params_flow.rb:28:11:28:21 | ...[...] | params_flow.rb:28:10:28:22 | ( ... ) | -| params_flow.rb:29:11:29:16 | kwargs [element :p3] | params_flow.rb:29:11:29:21 | ...[...] | -| params_flow.rb:29:11:29:16 | kwargs [hash-splat position :p3] | params_flow.rb:29:11:29:21 | ...[...] | -| params_flow.rb:29:11:29:21 | ...[...] | params_flow.rb:29:10:29:22 | ( ... ) | -| params_flow.rb:33:12:33:19 | call to taint | params_flow.rb:25:12:25:13 | p1 | -| params_flow.rb:33:26:33:34 | call to taint | params_flow.rb:25:17:25:24 | **kwargs [hash-splat position :p2] | -| params_flow.rb:33:41:33:49 | call to taint | params_flow.rb:25:17:25:24 | **kwargs [hash-splat position :p3] | -| params_flow.rb:34:1:34:4 | args [element :p3] | params_flow.rb:35:25:35:28 | args [element :p3] | -| params_flow.rb:34:14:34:22 | call to taint | params_flow.rb:34:1:34:4 | args [element :p3] | -| params_flow.rb:35:12:35:20 | call to taint | params_flow.rb:25:12:25:13 | p1 | -| params_flow.rb:35:23:35:28 | ** ... [element :p3] | params_flow.rb:25:17:25:24 | **kwargs [element :p3] | -| params_flow.rb:35:25:35:28 | args [element :p3] | params_flow.rb:35:23:35:28 | ** ... [element :p3] | -| params_flow.rb:37:1:37:4 | args [element :p1] | params_flow.rb:38:10:38:13 | args [element :p1] | -| params_flow.rb:37:1:37:4 | args [element :p2] | params_flow.rb:38:10:38:13 | args [element :p2] | -| params_flow.rb:37:16:37:24 | call to taint | params_flow.rb:37:1:37:4 | args [element :p1] | -| params_flow.rb:37:34:37:42 | call to taint | params_flow.rb:37:1:37:4 | args [element :p2] | -| params_flow.rb:38:8:38:13 | ** ... [element :p1] | params_flow.rb:25:12:25:13 | p1 | -| params_flow.rb:38:8:38:13 | ** ... [element :p2] | params_flow.rb:25:17:25:24 | **kwargs [element :p2] | -| params_flow.rb:38:10:38:13 | args [element :p1] | params_flow.rb:38:8:38:13 | ** ... [element :p1] | -| params_flow.rb:38:10:38:13 | args [element :p2] | params_flow.rb:38:8:38:13 | ** ... [element :p2] | -| params_flow.rb:40:1:40:4 | args [element :p1] | params_flow.rb:41:26:41:29 | args [element :p1] | -| params_flow.rb:40:16:40:24 | call to taint | params_flow.rb:40:1:40:4 | args [element :p1] | -| params_flow.rb:41:13:41:21 | call to taint | params_flow.rb:16:18:16:19 | p2 | -| params_flow.rb:41:24:41:29 | ** ... [element :p1] | params_flow.rb:16:13:16:14 | p1 | -| params_flow.rb:41:26:41:29 | args [element :p1] | params_flow.rb:41:24:41:29 | ** ... [element :p1] | -| params_flow.rb:43:1:43:4 | args [element 0] | params_flow.rb:44:24:44:27 | args [element 0] | -| params_flow.rb:43:9:43:17 | call to taint | params_flow.rb:43:1:43:4 | args [element 0] | -| params_flow.rb:44:12:44:20 | call to taint | params_flow.rb:9:16:9:17 | p1 | -| params_flow.rb:44:23:44:27 | * ... [element 0] | params_flow.rb:9:20:9:21 | p2 | -| params_flow.rb:44:24:44:27 | args [element 0] | params_flow.rb:44:23:44:27 | * ... [element 0] | -| params_flow.rb:46:1:46:4 | args [element 0] | params_flow.rb:47:13:47:16 | args [element 0] | -| params_flow.rb:46:1:46:4 | args [element 1] | params_flow.rb:47:13:47:16 | args [element 1] | -| params_flow.rb:46:9:46:17 | call to taint | params_flow.rb:46:1:46:4 | args [element 0] | -| params_flow.rb:46:20:46:28 | call to taint | params_flow.rb:46:1:46:4 | args [element 1] | -| params_flow.rb:47:12:47:16 | * ... [element 0] | params_flow.rb:9:16:9:17 | p1 | -| params_flow.rb:47:12:47:16 | * ... [element 1] | params_flow.rb:9:20:9:21 | p2 | -| params_flow.rb:47:13:47:16 | args [element 0] | params_flow.rb:47:12:47:16 | * ... [element 0] | -| params_flow.rb:47:13:47:16 | args [element 1] | params_flow.rb:47:12:47:16 | * ... [element 1] | -| params_flow.rb:49:13:49:14 | p1 | params_flow.rb:50:10:50:11 | p1 | -| params_flow.rb:49:17:49:24 | *posargs [element 0] | params_flow.rb:51:11:51:17 | posargs [element 0] | -| params_flow.rb:49:17:49:24 | *posargs [element 0] | params_flow.rb:51:11:51:17 | posargs [element 0] | -| params_flow.rb:51:11:51:17 | posargs [element 0] | params_flow.rb:51:11:51:20 | ...[...] | -| params_flow.rb:51:11:51:17 | posargs [element 0] | params_flow.rb:51:11:51:20 | ...[...] | -| params_flow.rb:51:11:51:20 | ...[...] | params_flow.rb:51:10:51:21 | ( ... ) | -| params_flow.rb:55:9:55:17 | call to taint | params_flow.rb:49:13:49:14 | p1 | -| params_flow.rb:55:20:55:28 | call to taint | params_flow.rb:49:17:49:24 | *posargs [element 0] | -| params_flow.rb:57:1:57:4 | args [element 0] | params_flow.rb:58:21:58:24 | args [element 0] | -| params_flow.rb:57:9:57:17 | call to taint | params_flow.rb:57:1:57:4 | args [element 0] | -| params_flow.rb:58:9:58:17 | call to taint | params_flow.rb:49:13:49:14 | p1 | -| params_flow.rb:58:20:58:24 | * ... [element 0] | params_flow.rb:49:17:49:24 | *posargs [element 0] | -| params_flow.rb:58:20:58:24 | * ... [element 0] | params_flow.rb:49:17:49:24 | *posargs [element 0] | -| params_flow.rb:58:21:58:24 | args [element 0] | params_flow.rb:58:20:58:24 | * ... [element 0] | -| params_flow.rb:60:1:60:4 | args [element 0] | params_flow.rb:61:10:61:13 | args [element 0] | -| params_flow.rb:60:1:60:4 | args [element 1] | params_flow.rb:61:10:61:13 | args [element 1] | -| params_flow.rb:60:9:60:17 | call to taint | params_flow.rb:60:1:60:4 | args [element 0] | -| params_flow.rb:60:20:60:28 | call to taint | params_flow.rb:60:1:60:4 | args [element 1] | -| params_flow.rb:61:9:61:13 | * ... [element 0] | params_flow.rb:49:13:49:14 | p1 | -| params_flow.rb:61:9:61:13 | * ... [element 1] | params_flow.rb:49:17:49:24 | *posargs [element 0] | -| params_flow.rb:61:10:61:13 | args [element 0] | params_flow.rb:61:9:61:13 | * ... [element 0] | -| params_flow.rb:61:10:61:13 | args [element 1] | params_flow.rb:61:9:61:13 | * ... [element 1] | -| params_flow.rb:63:1:63:4 | args | params_flow.rb:67:13:67:16 | args | -| params_flow.rb:63:8:63:16 | call to taint | params_flow.rb:63:1:63:4 | args | -| params_flow.rb:64:16:64:17 | *x [element 0] | params_flow.rb:65:10:65:10 | x [element 0] | -| params_flow.rb:65:10:65:10 | x [element 0] | params_flow.rb:65:10:65:13 | ...[...] | -| params_flow.rb:67:12:67:16 | * ... [element 0] | params_flow.rb:64:16:64:17 | *x [element 0] | -| params_flow.rb:67:13:67:16 | args | params_flow.rb:67:12:67:16 | * ... [element 0] | -| params_flow.rb:69:14:69:14 | x | params_flow.rb:70:10:70:10 | x | -| params_flow.rb:69:17:69:17 | y | params_flow.rb:71:10:71:10 | y | -| params_flow.rb:69:24:69:24 | w | params_flow.rb:74:10:74:10 | w | -| params_flow.rb:69:27:69:27 | r | params_flow.rb:75:10:75:10 | r | -| params_flow.rb:78:10:78:18 | call to taint | params_flow.rb:69:14:69:14 | x | -| params_flow.rb:78:21:78:29 | call to taint | params_flow.rb:69:17:69:17 | y | -| params_flow.rb:78:43:78:51 | call to taint | params_flow.rb:69:24:69:24 | w | -| params_flow.rb:78:54:78:62 | call to taint | params_flow.rb:69:27:69:27 | r | -| params_flow.rb:80:1:80:4 | args [element 0] | params_flow.rb:81:22:81:25 | args [element 0] | -| params_flow.rb:80:9:80:17 | call to taint | params_flow.rb:80:1:80:4 | args [element 0] | -| params_flow.rb:81:10:81:18 | call to taint | params_flow.rb:69:14:69:14 | x | -| params_flow.rb:81:21:81:25 | * ... [element 0] | params_flow.rb:69:17:69:17 | y | -| params_flow.rb:81:22:81:25 | args [element 0] | params_flow.rb:81:21:81:25 | * ... [element 0] | -| params_flow.rb:83:14:83:14 | t | params_flow.rb:84:10:84:10 | t | -| params_flow.rb:83:17:83:17 | u | params_flow.rb:85:10:85:10 | u | -| params_flow.rb:83:20:83:20 | v | params_flow.rb:86:10:86:10 | v | -| params_flow.rb:83:23:83:23 | w | params_flow.rb:87:10:87:10 | w | -| params_flow.rb:83:26:83:26 | x | params_flow.rb:88:10:88:10 | x | -| params_flow.rb:83:29:83:29 | y | params_flow.rb:89:10:89:10 | y | -| params_flow.rb:93:1:93:4 | args [element 0] | params_flow.rb:94:33:94:36 | args [element 0] | -| params_flow.rb:93:1:93:4 | args [element 1] | params_flow.rb:94:33:94:36 | args [element 1] | -| params_flow.rb:93:1:93:4 | args [element 2] | params_flow.rb:94:33:94:36 | args [element 2] | -| params_flow.rb:93:1:93:4 | args [element 3] | params_flow.rb:94:33:94:36 | args [element 3] | -| params_flow.rb:93:9:93:17 | call to taint | params_flow.rb:93:1:93:4 | args [element 0] | -| params_flow.rb:93:20:93:28 | call to taint | params_flow.rb:93:1:93:4 | args [element 1] | -| params_flow.rb:93:31:93:39 | call to taint | params_flow.rb:93:1:93:4 | args [element 2] | -| params_flow.rb:93:42:93:50 | call to taint | params_flow.rb:93:1:93:4 | args [element 3] | -| params_flow.rb:94:10:94:18 | call to taint | params_flow.rb:83:14:83:14 | t | -| params_flow.rb:94:21:94:29 | call to taint | params_flow.rb:83:17:83:17 | u | -| params_flow.rb:94:32:94:36 | * ... [element 0] | params_flow.rb:83:20:83:20 | v | -| params_flow.rb:94:32:94:36 | * ... [element 1] | params_flow.rb:83:23:83:23 | w | -| params_flow.rb:94:32:94:36 | * ... [element 2] | params_flow.rb:83:26:83:26 | x | -| params_flow.rb:94:32:94:36 | * ... [element 3] | params_flow.rb:83:29:83:29 | y | -| params_flow.rb:94:33:94:36 | args [element 0] | params_flow.rb:94:32:94:36 | * ... [element 0] | -| params_flow.rb:94:33:94:36 | args [element 1] | params_flow.rb:94:32:94:36 | * ... [element 1] | -| params_flow.rb:94:33:94:36 | args [element 2] | params_flow.rb:94:32:94:36 | * ... [element 2] | -| params_flow.rb:94:33:94:36 | args [element 3] | params_flow.rb:94:32:94:36 | * ... [element 3] | -| params_flow.rb:94:39:94:47 | call to taint | params_flow.rb:83:23:83:23 | w | -| params_flow.rb:96:10:96:18 | call to taint | params_flow.rb:69:14:69:14 | x | -| params_flow.rb:96:21:96:29 | call to taint | params_flow.rb:69:17:69:17 | y | -| params_flow.rb:96:68:96:76 | call to taint | params_flow.rb:69:24:69:24 | w | -| params_flow.rb:96:79:96:87 | call to taint | params_flow.rb:69:27:69:27 | r | -| params_flow.rb:98:19:98:19 | a | params_flow.rb:99:10:99:10 | a | -| params_flow.rb:98:31:98:31 | b | params_flow.rb:102:10:102:10 | b | -| params_flow.rb:105:15:105:23 | call to taint | params_flow.rb:98:19:98:19 | a | -| params_flow.rb:106:15:106:23 | call to taint | params_flow.rb:98:19:98:19 | a | -| params_flow.rb:106:37:106:45 | call to taint | params_flow.rb:98:31:98:31 | b | -| params_flow.rb:108:37:108:37 | a | params_flow.rb:109:10:109:10 | a | -| params_flow.rb:108:40:108:41 | *b [element 0] | params_flow.rb:110:10:110:10 | b [element 0] | -| params_flow.rb:108:44:108:44 | c | params_flow.rb:111:10:111:10 | c | -| params_flow.rb:110:10:110:10 | b [element 0] | params_flow.rb:110:10:110:13 | ...[...] | -| params_flow.rb:114:33:114:41 | call to taint | params_flow.rb:108:37:108:37 | a | -| params_flow.rb:114:44:114:52 | call to taint | params_flow.rb:108:40:108:41 | *b [element 0] | -| params_flow.rb:114:58:114:66 | call to taint | params_flow.rb:108:44:108:44 | c | -| params_flow.rb:117:1:117:1 | [post] x [element] | params_flow.rb:118:13:118:13 | x [element] | -| params_flow.rb:117:19:117:27 | call to taint | params_flow.rb:117:1:117:1 | [post] x [element] | -| params_flow.rb:118:12:118:13 | * ... [element] | params_flow.rb:9:16:9:17 | p1 | -| params_flow.rb:118:12:118:13 | * ... [element] | params_flow.rb:9:20:9:21 | p2 | -| params_flow.rb:118:13:118:13 | x [element] | params_flow.rb:118:12:118:13 | * ... [element] | -| params_flow.rb:130:1:130:4 | args [element 0] | params_flow.rb:131:11:131:14 | args [element 0] | -| params_flow.rb:130:1:130:4 | args [element 1] | params_flow.rb:131:11:131:14 | args [element 1] | -| params_flow.rb:130:9:130:17 | call to taint | params_flow.rb:130:1:130:4 | args [element 0] | -| params_flow.rb:130:20:130:28 | call to taint | params_flow.rb:130:1:130:4 | args [element 1] | -| params_flow.rb:131:10:131:14 | * ... [element 0] | params_flow.rb:83:14:83:14 | t | -| params_flow.rb:131:10:131:14 | * ... [element 1] | params_flow.rb:83:17:83:17 | u | -| params_flow.rb:131:11:131:14 | args [element 0] | params_flow.rb:131:10:131:14 | * ... [element 0] | -| params_flow.rb:131:11:131:14 | args [element 1] | params_flow.rb:131:10:131:14 | * ... [element 1] | -| params_flow.rb:131:17:131:25 | call to taint | params_flow.rb:83:17:83:17 | u | -| params_flow.rb:133:14:133:18 | *args [element 1] | params_flow.rb:134:10:134:13 | args [element 1] | -| params_flow.rb:134:10:134:13 | args [element 1] | params_flow.rb:134:10:134:16 | ...[...] | -| params_flow.rb:137:10:137:43 | * ... [element 1] | params_flow.rb:133:14:133:18 | *args [element 1] | -| params_flow.rb:137:23:137:31 | call to taint | params_flow.rb:137:10:137:43 | * ... [element 1] | -| params_flow.rb:153:28:153:29 | p2 | params_flow.rb:154:18:154:19 | p2 | -| params_flow.rb:154:18:154:19 | p2 | params_flow.rb:154:5:154:6 | [post] p1 [element 0] | -| params_flow.rb:164:23:164:24 | [post] p1 [element 0] | params_flow.rb:165:6:165:7 | p1 [element 0] | -| params_flow.rb:164:31:164:39 | call to taint | params_flow.rb:153:28:153:29 | p2 | -| params_flow.rb:164:31:164:39 | call to taint | params_flow.rb:164:23:164:24 | [post] p1 [element 0] | -| params_flow.rb:165:6:165:7 | p1 [element 0] | params_flow.rb:165:6:165:10 | ...[...] | -| params_flow.rb:181:28:181:29 | p2 | params_flow.rb:182:18:182:19 | p2 | -| params_flow.rb:182:18:182:19 | p2 | params_flow.rb:182:5:182:6 | [post] p1 [element 0] | -| params_flow.rb:192:20:192:21 | [post] p1 [element 0] | params_flow.rb:193:6:193:7 | p1 [element 0] | -| params_flow.rb:192:24:192:32 | call to taint | params_flow.rb:181:28:181:29 | p2 | -| params_flow.rb:192:24:192:32 | call to taint | params_flow.rb:192:20:192:21 | [post] p1 [element 0] | -| params_flow.rb:193:6:193:7 | p1 [element 0] | params_flow.rb:193:6:193:10 | ...[...] | +| params_flow.rb:9:16:9:17 | p1 | params_flow.rb:10:10:10:11 | p1 | provenance | | +| params_flow.rb:9:20:9:21 | p2 | params_flow.rb:11:10:11:11 | p2 | provenance | | +| params_flow.rb:14:12:14:19 | call to taint | params_flow.rb:9:16:9:17 | p1 | provenance | | +| params_flow.rb:14:22:14:29 | call to taint | params_flow.rb:9:20:9:21 | p2 | provenance | | +| params_flow.rb:16:13:16:14 | p1 | params_flow.rb:17:10:17:11 | p1 | provenance | | +| params_flow.rb:16:18:16:19 | p2 | params_flow.rb:18:10:18:11 | p2 | provenance | | +| params_flow.rb:21:13:21:20 | call to taint | params_flow.rb:16:13:16:14 | p1 | provenance | | +| params_flow.rb:21:27:21:34 | call to taint | params_flow.rb:16:18:16:19 | p2 | provenance | | +| params_flow.rb:22:13:22:20 | call to taint | params_flow.rb:16:18:16:19 | p2 | provenance | | +| params_flow.rb:22:27:22:34 | call to taint | params_flow.rb:16:13:16:14 | p1 | provenance | | +| params_flow.rb:23:16:23:23 | call to taint | params_flow.rb:16:18:16:19 | p2 | provenance | | +| params_flow.rb:23:33:23:40 | call to taint | params_flow.rb:16:13:16:14 | p1 | provenance | | +| params_flow.rb:25:12:25:13 | p1 | params_flow.rb:26:10:26:11 | p1 | provenance | | +| params_flow.rb:25:17:25:24 | **kwargs [element :p2] | params_flow.rb:28:11:28:16 | kwargs [element :p2] | provenance | | +| params_flow.rb:25:17:25:24 | **kwargs [element :p3] | params_flow.rb:29:11:29:16 | kwargs [element :p3] | provenance | | +| params_flow.rb:25:17:25:24 | **kwargs [hash-splat position :p2] | params_flow.rb:28:11:28:16 | kwargs [hash-splat position :p2] | provenance | | +| params_flow.rb:25:17:25:24 | **kwargs [hash-splat position :p3] | params_flow.rb:29:11:29:16 | kwargs [hash-splat position :p3] | provenance | | +| params_flow.rb:28:11:28:16 | kwargs [element :p2] | params_flow.rb:28:11:28:21 | ...[...] | provenance | | +| params_flow.rb:28:11:28:16 | kwargs [hash-splat position :p2] | params_flow.rb:28:11:28:21 | ...[...] | provenance | | +| params_flow.rb:28:11:28:21 | ...[...] | params_flow.rb:28:10:28:22 | ( ... ) | provenance | | +| params_flow.rb:29:11:29:16 | kwargs [element :p3] | params_flow.rb:29:11:29:21 | ...[...] | provenance | | +| params_flow.rb:29:11:29:16 | kwargs [hash-splat position :p3] | params_flow.rb:29:11:29:21 | ...[...] | provenance | | +| params_flow.rb:29:11:29:21 | ...[...] | params_flow.rb:29:10:29:22 | ( ... ) | provenance | | +| params_flow.rb:33:12:33:19 | call to taint | params_flow.rb:25:12:25:13 | p1 | provenance | | +| params_flow.rb:33:26:33:34 | call to taint | params_flow.rb:25:17:25:24 | **kwargs [hash-splat position :p2] | provenance | | +| params_flow.rb:33:41:33:49 | call to taint | params_flow.rb:25:17:25:24 | **kwargs [hash-splat position :p3] | provenance | | +| params_flow.rb:34:1:34:4 | args [element :p3] | params_flow.rb:35:25:35:28 | args [element :p3] | provenance | | +| params_flow.rb:34:14:34:22 | call to taint | params_flow.rb:34:1:34:4 | args [element :p3] | provenance | | +| params_flow.rb:35:12:35:20 | call to taint | params_flow.rb:25:12:25:13 | p1 | provenance | | +| params_flow.rb:35:23:35:28 | ** ... [element :p3] | params_flow.rb:25:17:25:24 | **kwargs [element :p3] | provenance | | +| params_flow.rb:35:25:35:28 | args [element :p3] | params_flow.rb:35:23:35:28 | ** ... [element :p3] | provenance | | +| params_flow.rb:37:1:37:4 | args [element :p1] | params_flow.rb:38:10:38:13 | args [element :p1] | provenance | | +| params_flow.rb:37:1:37:4 | args [element :p2] | params_flow.rb:38:10:38:13 | args [element :p2] | provenance | | +| params_flow.rb:37:16:37:24 | call to taint | params_flow.rb:37:1:37:4 | args [element :p1] | provenance | | +| params_flow.rb:37:34:37:42 | call to taint | params_flow.rb:37:1:37:4 | args [element :p2] | provenance | | +| params_flow.rb:38:8:38:13 | ** ... [element :p1] | params_flow.rb:25:12:25:13 | p1 | provenance | | +| params_flow.rb:38:8:38:13 | ** ... [element :p2] | params_flow.rb:25:17:25:24 | **kwargs [element :p2] | provenance | | +| params_flow.rb:38:10:38:13 | args [element :p1] | params_flow.rb:38:8:38:13 | ** ... [element :p1] | provenance | | +| params_flow.rb:38:10:38:13 | args [element :p2] | params_flow.rb:38:8:38:13 | ** ... [element :p2] | provenance | | +| params_flow.rb:40:1:40:4 | args [element :p1] | params_flow.rb:41:26:41:29 | args [element :p1] | provenance | | +| params_flow.rb:40:16:40:24 | call to taint | params_flow.rb:40:1:40:4 | args [element :p1] | provenance | | +| params_flow.rb:41:13:41:21 | call to taint | params_flow.rb:16:18:16:19 | p2 | provenance | | +| params_flow.rb:41:24:41:29 | ** ... [element :p1] | params_flow.rb:16:13:16:14 | p1 | provenance | | +| params_flow.rb:41:26:41:29 | args [element :p1] | params_flow.rb:41:24:41:29 | ** ... [element :p1] | provenance | | +| params_flow.rb:43:1:43:4 | args [element 0] | params_flow.rb:44:24:44:27 | args [element 0] | provenance | | +| params_flow.rb:43:9:43:17 | call to taint | params_flow.rb:43:1:43:4 | args [element 0] | provenance | | +| params_flow.rb:44:12:44:20 | call to taint | params_flow.rb:9:16:9:17 | p1 | provenance | | +| params_flow.rb:44:23:44:27 | * ... [element 0] | params_flow.rb:9:20:9:21 | p2 | provenance | | +| params_flow.rb:44:24:44:27 | args [element 0] | params_flow.rb:44:23:44:27 | * ... [element 0] | provenance | | +| params_flow.rb:46:1:46:4 | args [element 0] | params_flow.rb:47:13:47:16 | args [element 0] | provenance | | +| params_flow.rb:46:1:46:4 | args [element 1] | params_flow.rb:47:13:47:16 | args [element 1] | provenance | | +| params_flow.rb:46:9:46:17 | call to taint | params_flow.rb:46:1:46:4 | args [element 0] | provenance | | +| params_flow.rb:46:20:46:28 | call to taint | params_flow.rb:46:1:46:4 | args [element 1] | provenance | | +| params_flow.rb:47:12:47:16 | * ... [element 0] | params_flow.rb:9:16:9:17 | p1 | provenance | | +| params_flow.rb:47:12:47:16 | * ... [element 1] | params_flow.rb:9:20:9:21 | p2 | provenance | | +| params_flow.rb:47:13:47:16 | args [element 0] | params_flow.rb:47:12:47:16 | * ... [element 0] | provenance | | +| params_flow.rb:47:13:47:16 | args [element 1] | params_flow.rb:47:12:47:16 | * ... [element 1] | provenance | | +| params_flow.rb:49:13:49:14 | p1 | params_flow.rb:50:10:50:11 | p1 | provenance | | +| params_flow.rb:49:17:49:24 | *posargs [element 0] | params_flow.rb:51:11:51:17 | posargs [element 0] | provenance | | +| params_flow.rb:49:17:49:24 | *posargs [element 0] | params_flow.rb:51:11:51:17 | posargs [element 0] | provenance | | +| params_flow.rb:51:11:51:17 | posargs [element 0] | params_flow.rb:51:11:51:20 | ...[...] | provenance | | +| params_flow.rb:51:11:51:17 | posargs [element 0] | params_flow.rb:51:11:51:20 | ...[...] | provenance | | +| params_flow.rb:51:11:51:20 | ...[...] | params_flow.rb:51:10:51:21 | ( ... ) | provenance | | +| params_flow.rb:55:9:55:17 | call to taint | params_flow.rb:49:13:49:14 | p1 | provenance | | +| params_flow.rb:55:20:55:28 | call to taint | params_flow.rb:49:17:49:24 | *posargs [element 0] | provenance | | +| params_flow.rb:57:1:57:4 | args [element 0] | params_flow.rb:58:21:58:24 | args [element 0] | provenance | | +| params_flow.rb:57:9:57:17 | call to taint | params_flow.rb:57:1:57:4 | args [element 0] | provenance | | +| params_flow.rb:58:9:58:17 | call to taint | params_flow.rb:49:13:49:14 | p1 | provenance | | +| params_flow.rb:58:20:58:24 | * ... [element 0] | params_flow.rb:49:17:49:24 | *posargs [element 0] | provenance | | +| params_flow.rb:58:20:58:24 | * ... [element 0] | params_flow.rb:49:17:49:24 | *posargs [element 0] | provenance | | +| params_flow.rb:58:21:58:24 | args [element 0] | params_flow.rb:58:20:58:24 | * ... [element 0] | provenance | | +| params_flow.rb:60:1:60:4 | args [element 0] | params_flow.rb:61:10:61:13 | args [element 0] | provenance | | +| params_flow.rb:60:1:60:4 | args [element 1] | params_flow.rb:61:10:61:13 | args [element 1] | provenance | | +| params_flow.rb:60:9:60:17 | call to taint | params_flow.rb:60:1:60:4 | args [element 0] | provenance | | +| params_flow.rb:60:20:60:28 | call to taint | params_flow.rb:60:1:60:4 | args [element 1] | provenance | | +| params_flow.rb:61:9:61:13 | * ... [element 0] | params_flow.rb:49:13:49:14 | p1 | provenance | | +| params_flow.rb:61:9:61:13 | * ... [element 1] | params_flow.rb:49:17:49:24 | *posargs [element 0] | provenance | | +| params_flow.rb:61:10:61:13 | args [element 0] | params_flow.rb:61:9:61:13 | * ... [element 0] | provenance | | +| params_flow.rb:61:10:61:13 | args [element 1] | params_flow.rb:61:9:61:13 | * ... [element 1] | provenance | | +| params_flow.rb:63:1:63:4 | args | params_flow.rb:67:13:67:16 | args | provenance | | +| params_flow.rb:63:8:63:16 | call to taint | params_flow.rb:63:1:63:4 | args | provenance | | +| params_flow.rb:64:16:64:17 | *x [element 0] | params_flow.rb:65:10:65:10 | x [element 0] | provenance | | +| params_flow.rb:65:10:65:10 | x [element 0] | params_flow.rb:65:10:65:13 | ...[...] | provenance | | +| params_flow.rb:67:12:67:16 | * ... [element 0] | params_flow.rb:64:16:64:17 | *x [element 0] | provenance | | +| params_flow.rb:67:13:67:16 | args | params_flow.rb:67:12:67:16 | * ... [element 0] | provenance | | +| params_flow.rb:69:14:69:14 | x | params_flow.rb:70:10:70:10 | x | provenance | | +| params_flow.rb:69:17:69:17 | y | params_flow.rb:71:10:71:10 | y | provenance | | +| params_flow.rb:69:24:69:24 | w | params_flow.rb:74:10:74:10 | w | provenance | | +| params_flow.rb:69:27:69:27 | r | params_flow.rb:75:10:75:10 | r | provenance | | +| params_flow.rb:78:10:78:18 | call to taint | params_flow.rb:69:14:69:14 | x | provenance | | +| params_flow.rb:78:21:78:29 | call to taint | params_flow.rb:69:17:69:17 | y | provenance | | +| params_flow.rb:78:43:78:51 | call to taint | params_flow.rb:69:24:69:24 | w | provenance | | +| params_flow.rb:78:54:78:62 | call to taint | params_flow.rb:69:27:69:27 | r | provenance | | +| params_flow.rb:80:1:80:4 | args [element 0] | params_flow.rb:81:22:81:25 | args [element 0] | provenance | | +| params_flow.rb:80:9:80:17 | call to taint | params_flow.rb:80:1:80:4 | args [element 0] | provenance | | +| params_flow.rb:81:10:81:18 | call to taint | params_flow.rb:69:14:69:14 | x | provenance | | +| params_flow.rb:81:21:81:25 | * ... [element 0] | params_flow.rb:69:17:69:17 | y | provenance | | +| params_flow.rb:81:22:81:25 | args [element 0] | params_flow.rb:81:21:81:25 | * ... [element 0] | provenance | | +| params_flow.rb:83:14:83:14 | t | params_flow.rb:84:10:84:10 | t | provenance | | +| params_flow.rb:83:17:83:17 | u | params_flow.rb:85:10:85:10 | u | provenance | | +| params_flow.rb:83:20:83:20 | v | params_flow.rb:86:10:86:10 | v | provenance | | +| params_flow.rb:83:23:83:23 | w | params_flow.rb:87:10:87:10 | w | provenance | | +| params_flow.rb:83:26:83:26 | x | params_flow.rb:88:10:88:10 | x | provenance | | +| params_flow.rb:83:29:83:29 | y | params_flow.rb:89:10:89:10 | y | provenance | | +| params_flow.rb:93:1:93:4 | args [element 0] | params_flow.rb:94:33:94:36 | args [element 0] | provenance | | +| params_flow.rb:93:1:93:4 | args [element 1] | params_flow.rb:94:33:94:36 | args [element 1] | provenance | | +| params_flow.rb:93:1:93:4 | args [element 2] | params_flow.rb:94:33:94:36 | args [element 2] | provenance | | +| params_flow.rb:93:1:93:4 | args [element 3] | params_flow.rb:94:33:94:36 | args [element 3] | provenance | | +| params_flow.rb:93:9:93:17 | call to taint | params_flow.rb:93:1:93:4 | args [element 0] | provenance | | +| params_flow.rb:93:20:93:28 | call to taint | params_flow.rb:93:1:93:4 | args [element 1] | provenance | | +| params_flow.rb:93:31:93:39 | call to taint | params_flow.rb:93:1:93:4 | args [element 2] | provenance | | +| params_flow.rb:93:42:93:50 | call to taint | params_flow.rb:93:1:93:4 | args [element 3] | provenance | | +| params_flow.rb:94:10:94:18 | call to taint | params_flow.rb:83:14:83:14 | t | provenance | | +| params_flow.rb:94:21:94:29 | call to taint | params_flow.rb:83:17:83:17 | u | provenance | | +| params_flow.rb:94:32:94:36 | * ... [element 0] | params_flow.rb:83:20:83:20 | v | provenance | | +| params_flow.rb:94:32:94:36 | * ... [element 1] | params_flow.rb:83:23:83:23 | w | provenance | | +| params_flow.rb:94:32:94:36 | * ... [element 2] | params_flow.rb:83:26:83:26 | x | provenance | | +| params_flow.rb:94:32:94:36 | * ... [element 3] | params_flow.rb:83:29:83:29 | y | provenance | | +| params_flow.rb:94:33:94:36 | args [element 0] | params_flow.rb:94:32:94:36 | * ... [element 0] | provenance | | +| params_flow.rb:94:33:94:36 | args [element 1] | params_flow.rb:94:32:94:36 | * ... [element 1] | provenance | | +| params_flow.rb:94:33:94:36 | args [element 2] | params_flow.rb:94:32:94:36 | * ... [element 2] | provenance | | +| params_flow.rb:94:33:94:36 | args [element 3] | params_flow.rb:94:32:94:36 | * ... [element 3] | provenance | | +| params_flow.rb:94:39:94:47 | call to taint | params_flow.rb:83:23:83:23 | w | provenance | | +| params_flow.rb:96:10:96:18 | call to taint | params_flow.rb:69:14:69:14 | x | provenance | | +| params_flow.rb:96:21:96:29 | call to taint | params_flow.rb:69:17:69:17 | y | provenance | | +| params_flow.rb:96:68:96:76 | call to taint | params_flow.rb:69:24:69:24 | w | provenance | | +| params_flow.rb:96:79:96:87 | call to taint | params_flow.rb:69:27:69:27 | r | provenance | | +| params_flow.rb:98:19:98:19 | a | params_flow.rb:99:10:99:10 | a | provenance | | +| params_flow.rb:98:31:98:31 | b | params_flow.rb:102:10:102:10 | b | provenance | | +| params_flow.rb:105:15:105:23 | call to taint | params_flow.rb:98:19:98:19 | a | provenance | | +| params_flow.rb:106:15:106:23 | call to taint | params_flow.rb:98:19:98:19 | a | provenance | | +| params_flow.rb:106:37:106:45 | call to taint | params_flow.rb:98:31:98:31 | b | provenance | | +| params_flow.rb:108:37:108:37 | a | params_flow.rb:109:10:109:10 | a | provenance | | +| params_flow.rb:108:40:108:41 | *b [element 0] | params_flow.rb:110:10:110:10 | b [element 0] | provenance | | +| params_flow.rb:108:44:108:44 | c | params_flow.rb:111:10:111:10 | c | provenance | | +| params_flow.rb:110:10:110:10 | b [element 0] | params_flow.rb:110:10:110:13 | ...[...] | provenance | | +| params_flow.rb:114:33:114:41 | call to taint | params_flow.rb:108:37:108:37 | a | provenance | | +| params_flow.rb:114:44:114:52 | call to taint | params_flow.rb:108:40:108:41 | *b [element 0] | provenance | | +| params_flow.rb:114:58:114:66 | call to taint | params_flow.rb:108:44:108:44 | c | provenance | | +| params_flow.rb:117:1:117:1 | [post] x [element] | params_flow.rb:118:13:118:13 | x [element] | provenance | | +| params_flow.rb:117:19:117:27 | call to taint | params_flow.rb:117:1:117:1 | [post] x [element] | provenance | | +| params_flow.rb:118:12:118:13 | * ... [element] | params_flow.rb:9:16:9:17 | p1 | provenance | | +| params_flow.rb:118:12:118:13 | * ... [element] | params_flow.rb:9:20:9:21 | p2 | provenance | | +| params_flow.rb:118:13:118:13 | x [element] | params_flow.rb:118:12:118:13 | * ... [element] | provenance | | +| params_flow.rb:130:1:130:4 | args [element 0] | params_flow.rb:131:11:131:14 | args [element 0] | provenance | | +| params_flow.rb:130:1:130:4 | args [element 1] | params_flow.rb:131:11:131:14 | args [element 1] | provenance | | +| params_flow.rb:130:9:130:17 | call to taint | params_flow.rb:130:1:130:4 | args [element 0] | provenance | | +| params_flow.rb:130:20:130:28 | call to taint | params_flow.rb:130:1:130:4 | args [element 1] | provenance | | +| params_flow.rb:131:10:131:14 | * ... [element 0] | params_flow.rb:83:14:83:14 | t | provenance | | +| params_flow.rb:131:10:131:14 | * ... [element 1] | params_flow.rb:83:17:83:17 | u | provenance | | +| params_flow.rb:131:11:131:14 | args [element 0] | params_flow.rb:131:10:131:14 | * ... [element 0] | provenance | | +| params_flow.rb:131:11:131:14 | args [element 1] | params_flow.rb:131:10:131:14 | * ... [element 1] | provenance | | +| params_flow.rb:131:17:131:25 | call to taint | params_flow.rb:83:17:83:17 | u | provenance | | +| params_flow.rb:133:14:133:18 | *args [element 1] | params_flow.rb:134:10:134:13 | args [element 1] | provenance | | +| params_flow.rb:134:10:134:13 | args [element 1] | params_flow.rb:134:10:134:16 | ...[...] | provenance | | +| params_flow.rb:137:10:137:43 | * ... [element 1] | params_flow.rb:133:14:133:18 | *args [element 1] | provenance | | +| params_flow.rb:137:23:137:31 | call to taint | params_flow.rb:137:10:137:43 | * ... [element 1] | provenance | | +| params_flow.rb:153:28:153:29 | p2 | params_flow.rb:154:18:154:19 | p2 | provenance | | +| params_flow.rb:154:18:154:19 | p2 | params_flow.rb:154:5:154:6 | [post] p1 [element 0] | provenance | | +| params_flow.rb:164:23:164:24 | [post] p1 [element 0] | params_flow.rb:165:6:165:7 | p1 [element 0] | provenance | | +| params_flow.rb:164:31:164:39 | call to taint | params_flow.rb:153:28:153:29 | p2 | provenance | | +| params_flow.rb:164:31:164:39 | call to taint | params_flow.rb:164:23:164:24 | [post] p1 [element 0] | provenance | | +| params_flow.rb:165:6:165:7 | p1 [element 0] | params_flow.rb:165:6:165:10 | ...[...] | provenance | | +| params_flow.rb:181:28:181:29 | p2 | params_flow.rb:182:18:182:19 | p2 | provenance | | +| params_flow.rb:182:18:182:19 | p2 | params_flow.rb:182:5:182:6 | [post] p1 [element 0] | provenance | | +| params_flow.rb:192:20:192:21 | [post] p1 [element 0] | params_flow.rb:193:6:193:7 | p1 [element 0] | provenance | | +| params_flow.rb:192:24:192:32 | call to taint | params_flow.rb:181:28:181:29 | p2 | provenance | | +| params_flow.rb:192:24:192:32 | call to taint | params_flow.rb:192:20:192:21 | [post] p1 [element 0] | provenance | | +| params_flow.rb:193:6:193:7 | p1 [element 0] | params_flow.rb:193:6:193:10 | ...[...] | provenance | | nodes | params_flow.rb:9:16:9:17 | p1 | semmle.label | p1 | | params_flow.rb:9:20:9:21 | p2 | semmle.label | p2 | diff --git a/ruby/ql/test/library-tests/dataflow/ssa-flow/ssa-flow.expected b/ruby/ql/test/library-tests/dataflow/ssa-flow/ssa-flow.expected index c7a8595c4644..4fc620f68500 100644 --- a/ruby/ql/test/library-tests/dataflow/ssa-flow/ssa-flow.expected +++ b/ruby/ql/test/library-tests/dataflow/ssa-flow/ssa-flow.expected @@ -1,8 +1,8 @@ testFailures edges -| ssa_flow.rb:12:9:12:9 | [post] a [element 0] | ssa_flow.rb:16:10:16:10 | a [element 0] | -| ssa_flow.rb:12:16:12:23 | call to taint | ssa_flow.rb:12:9:12:9 | [post] a [element 0] | -| ssa_flow.rb:16:10:16:10 | a [element 0] | ssa_flow.rb:16:10:16:13 | ...[...] | +| ssa_flow.rb:12:9:12:9 | [post] a [element 0] | ssa_flow.rb:16:10:16:10 | a [element 0] | provenance | | +| ssa_flow.rb:12:16:12:23 | call to taint | ssa_flow.rb:12:9:12:9 | [post] a [element 0] | provenance | | +| ssa_flow.rb:16:10:16:10 | a [element 0] | ssa_flow.rb:16:10:16:13 | ...[...] | provenance | | nodes | ssa_flow.rb:12:9:12:9 | [post] a [element 0] | semmle.label | [post] a [element 0] | | ssa_flow.rb:12:16:12:23 | call to taint | semmle.label | call to taint | diff --git a/ruby/ql/test/library-tests/dataflow/string-flow/string-flow.expected b/ruby/ql/test/library-tests/dataflow/string-flow/string-flow.expected index ec483b6fc8e3..48b62cc592d4 100644 --- a/ruby/ql/test/library-tests/dataflow/string-flow/string-flow.expected +++ b/ruby/ql/test/library-tests/dataflow/string-flow/string-flow.expected @@ -2,17 +2,17 @@ testFailures | string_flow.rb:85:10:85:10 | a | Unexpected result: hasValueFlow=a | | string_flow.rb:227:10:227:10 | a | Unexpected result: hasValueFlow=a | edges -| string_flow.rb:2:5:2:5 | a | string_flow.rb:3:21:3:21 | a | -| string_flow.rb:2:9:2:18 | call to source | string_flow.rb:2:5:2:5 | a | -| string_flow.rb:3:21:3:21 | a | string_flow.rb:3:10:3:22 | call to new | -| string_flow.rb:83:5:83:5 | a | string_flow.rb:84:5:84:5 | a | -| string_flow.rb:83:9:83:18 | call to source | string_flow.rb:83:5:83:5 | a | -| string_flow.rb:84:5:84:5 | [post] a | string_flow.rb:85:10:85:10 | a | -| string_flow.rb:84:5:84:5 | a | string_flow.rb:84:5:84:5 | [post] a | -| string_flow.rb:223:5:223:5 | a | string_flow.rb:225:10:225:10 | a | -| string_flow.rb:223:9:223:18 | call to source | string_flow.rb:223:5:223:5 | a | -| string_flow.rb:225:10:225:10 | [post] a | string_flow.rb:227:10:227:10 | a | -| string_flow.rb:225:10:225:10 | a | string_flow.rb:225:10:225:10 | [post] a | +| string_flow.rb:2:5:2:5 | a | string_flow.rb:3:21:3:21 | a | provenance | | +| string_flow.rb:2:9:2:18 | call to source | string_flow.rb:2:5:2:5 | a | provenance | | +| string_flow.rb:3:21:3:21 | a | string_flow.rb:3:10:3:22 | call to new | provenance | | +| string_flow.rb:83:5:83:5 | a | string_flow.rb:84:5:84:5 | a | provenance | | +| string_flow.rb:83:9:83:18 | call to source | string_flow.rb:83:5:83:5 | a | provenance | | +| string_flow.rb:84:5:84:5 | [post] a | string_flow.rb:85:10:85:10 | a | provenance | | +| string_flow.rb:84:5:84:5 | a | string_flow.rb:84:5:84:5 | [post] a | provenance | | +| string_flow.rb:223:5:223:5 | a | string_flow.rb:225:10:225:10 | a | provenance | | +| string_flow.rb:223:9:223:18 | call to source | string_flow.rb:223:5:223:5 | a | provenance | | +| string_flow.rb:225:10:225:10 | [post] a | string_flow.rb:227:10:227:10 | a | provenance | | +| string_flow.rb:225:10:225:10 | a | string_flow.rb:225:10:225:10 | [post] a | provenance | | nodes | string_flow.rb:2:5:2:5 | a | semmle.label | a | | string_flow.rb:2:9:2:18 | call to source | semmle.label | call to source | diff --git a/ruby/ql/test/library-tests/dataflow/summaries/Summaries.expected b/ruby/ql/test/library-tests/dataflow/summaries/Summaries.expected index b8194f74f428..693832e5577a 100644 --- a/ruby/ql/test/library-tests/dataflow/summaries/Summaries.expected +++ b/ruby/ql/test/library-tests/dataflow/summaries/Summaries.expected @@ -1,258 +1,258 @@ testFailures edges -| summaries.rb:1:11:1:36 | call to identity | summaries.rb:2:6:2:12 | tainted | -| summaries.rb:1:11:1:36 | call to identity | summaries.rb:2:6:2:12 | tainted | -| summaries.rb:1:11:1:36 | call to identity | summaries.rb:4:24:4:30 | tainted | -| summaries.rb:1:11:1:36 | call to identity | summaries.rb:4:24:4:30 | tainted | -| summaries.rb:1:11:1:36 | call to identity | summaries.rb:16:36:16:42 | tainted | -| summaries.rb:1:11:1:36 | call to identity | summaries.rb:16:36:16:42 | tainted | -| summaries.rb:1:11:1:36 | call to identity | summaries.rb:20:25:20:31 | tainted | -| summaries.rb:1:11:1:36 | call to identity | summaries.rb:26:31:26:37 | tainted | -| summaries.rb:1:11:1:36 | call to identity | summaries.rb:30:24:30:30 | tainted | -| summaries.rb:1:11:1:36 | call to identity | summaries.rb:31:27:31:33 | tainted | -| summaries.rb:1:11:1:36 | call to identity | summaries.rb:34:16:34:22 | tainted | -| summaries.rb:1:11:1:36 | call to identity | summaries.rb:34:16:34:22 | tainted | -| summaries.rb:1:11:1:36 | call to identity | summaries.rb:35:16:35:22 | tainted | -| summaries.rb:1:11:1:36 | call to identity | summaries.rb:35:16:35:22 | tainted | -| summaries.rb:1:11:1:36 | call to identity | summaries.rb:36:21:36:27 | tainted | -| summaries.rb:1:11:1:36 | call to identity | summaries.rb:36:21:36:27 | tainted | -| summaries.rb:1:11:1:36 | call to identity | summaries.rb:37:36:37:42 | tainted | -| summaries.rb:1:11:1:36 | call to identity | summaries.rb:37:36:37:42 | tainted | -| summaries.rb:1:11:1:36 | call to identity | summaries.rb:51:24:51:30 | tainted | -| summaries.rb:1:11:1:36 | call to identity | summaries.rb:56:22:56:28 | tainted | -| summaries.rb:1:11:1:36 | call to identity | summaries.rb:57:17:57:23 | tainted | -| summaries.rb:1:11:1:36 | call to identity | summaries.rb:59:27:59:33 | tainted | -| summaries.rb:1:11:1:36 | call to identity | summaries.rb:63:32:63:38 | tainted | -| summaries.rb:1:11:1:36 | call to identity | summaries.rb:65:23:65:29 | tainted | -| summaries.rb:1:11:1:36 | call to identity | summaries.rb:122:16:122:22 | tainted | -| summaries.rb:1:11:1:36 | call to identity | summaries.rb:128:14:128:20 | tainted | -| summaries.rb:1:11:1:36 | call to identity | summaries.rb:131:16:131:22 | tainted | -| summaries.rb:1:11:1:36 | call to identity | summaries.rb:131:16:131:22 | tainted | -| summaries.rb:1:11:1:36 | call to identity | summaries.rb:131:16:131:22 | tainted | -| summaries.rb:1:11:1:36 | call to identity | summaries.rb:132:21:132:27 | tainted | -| summaries.rb:1:11:1:36 | call to identity | summaries.rb:132:21:132:27 | tainted | -| summaries.rb:1:11:1:36 | call to identity | summaries.rb:135:26:135:32 | tainted | -| summaries.rb:1:11:1:36 | call to identity | summaries.rb:135:26:135:32 | tainted | -| summaries.rb:1:11:1:36 | call to identity | summaries.rb:137:23:137:29 | tainted | -| summaries.rb:1:11:1:36 | call to identity | summaries.rb:137:23:137:29 | tainted | -| summaries.rb:1:11:1:36 | call to identity | summaries.rb:140:19:140:25 | tainted | -| summaries.rb:1:11:1:36 | call to identity | summaries.rb:140:19:140:25 | tainted | -| summaries.rb:1:11:1:36 | call to identity | summaries.rb:141:19:141:25 | tainted | -| summaries.rb:1:11:1:36 | call to identity | summaries.rb:141:19:141:25 | tainted | -| summaries.rb:1:11:1:36 | call to identity | summaries.rb:145:26:145:32 | tainted | -| summaries.rb:1:11:1:36 | call to identity | summaries.rb:145:26:145:32 | tainted | -| summaries.rb:1:11:1:36 | call to identity | summaries.rb:147:16:147:22 | tainted | -| summaries.rb:1:11:1:36 | call to identity | summaries.rb:147:16:147:22 | tainted | -| summaries.rb:1:11:1:36 | call to identity | summaries.rb:150:39:150:45 | tainted | -| summaries.rb:1:11:1:36 | call to identity | summaries.rb:150:39:150:45 | tainted | -| summaries.rb:1:11:1:36 | call to identity | summaries.rb:154:20:154:26 | tainted | -| summaries.rb:1:11:1:36 | call to identity | summaries.rb:154:20:154:26 | tainted | -| summaries.rb:1:11:1:36 | call to identity | summaries.rb:155:28:155:34 | tainted | -| summaries.rb:1:11:1:36 | call to identity | summaries.rb:155:28:155:34 | tainted | -| summaries.rb:1:11:1:36 | call to identity | summaries.rb:156:27:156:33 | tainted | -| summaries.rb:1:11:1:36 | call to identity | summaries.rb:156:27:156:33 | tainted | -| summaries.rb:1:11:1:36 | call to identity | summaries.rb:157:14:160:3 | do ... end [captured tainted] | -| summaries.rb:1:11:1:36 | call to identity | summaries.rb:157:14:160:3 | do ... end [captured tainted] | -| summaries.rb:1:20:1:36 | call to source | summaries.rb:1:11:1:36 | call to identity | -| summaries.rb:1:20:1:36 | call to source | summaries.rb:1:11:1:36 | call to identity | -| summaries.rb:4:1:4:8 | tainted2 | summaries.rb:9:6:9:13 | tainted2 | -| summaries.rb:4:1:4:8 | tainted2 | summaries.rb:9:6:9:13 | tainted2 | -| summaries.rb:4:12:7:3 | call to apply_block | summaries.rb:4:1:4:8 | tainted2 | -| summaries.rb:4:12:7:3 | call to apply_block | summaries.rb:4:1:4:8 | tainted2 | -| summaries.rb:4:24:4:30 | tainted | summaries.rb:4:12:7:3 | call to apply_block | -| summaries.rb:4:24:4:30 | tainted | summaries.rb:4:12:7:3 | call to apply_block | -| summaries.rb:4:24:4:30 | tainted | summaries.rb:4:36:4:36 | x | -| summaries.rb:4:24:4:30 | tainted | summaries.rb:4:36:4:36 | x | -| summaries.rb:4:36:4:36 | x | summaries.rb:5:8:5:8 | x | -| summaries.rb:4:36:4:36 | x | summaries.rb:5:8:5:8 | x | -| summaries.rb:11:17:11:17 | x | summaries.rb:12:8:12:8 | x | -| summaries.rb:11:17:11:17 | x | summaries.rb:12:8:12:8 | x | -| summaries.rb:16:1:16:8 | tainted3 | summaries.rb:18:6:18:13 | tainted3 | -| summaries.rb:16:1:16:8 | tainted3 | summaries.rb:18:6:18:13 | tainted3 | -| summaries.rb:16:12:16:43 | call to apply_lambda | summaries.rb:16:1:16:8 | tainted3 | -| summaries.rb:16:12:16:43 | call to apply_lambda | summaries.rb:16:1:16:8 | tainted3 | -| summaries.rb:16:36:16:42 | tainted | summaries.rb:11:17:11:17 | x | -| summaries.rb:16:36:16:42 | tainted | summaries.rb:11:17:11:17 | x | -| summaries.rb:16:36:16:42 | tainted | summaries.rb:16:12:16:43 | call to apply_lambda | -| summaries.rb:16:36:16:42 | tainted | summaries.rb:16:12:16:43 | call to apply_lambda | -| summaries.rb:20:1:20:8 | tainted4 | summaries.rb:21:6:21:13 | tainted4 | -| summaries.rb:20:12:20:32 | call to firstArg | summaries.rb:20:1:20:8 | tainted4 | -| summaries.rb:20:25:20:31 | tainted | summaries.rb:20:12:20:32 | call to firstArg | -| summaries.rb:26:1:26:8 | tainted5 | summaries.rb:27:6:27:13 | tainted5 | -| summaries.rb:26:12:26:38 | call to secondArg | summaries.rb:26:1:26:8 | tainted5 | -| summaries.rb:26:31:26:37 | tainted | summaries.rb:26:12:26:38 | call to secondArg | -| summaries.rb:30:24:30:30 | tainted | summaries.rb:30:6:30:42 | call to onlyWithBlock | -| summaries.rb:31:27:31:33 | tainted | summaries.rb:31:6:31:34 | call to onlyWithoutBlock | -| summaries.rb:40:3:40:3 | t | summaries.rb:41:24:41:24 | t | -| summaries.rb:40:3:40:3 | t | summaries.rb:42:24:42:24 | t | -| summaries.rb:40:3:40:3 | t | summaries.rb:44:8:44:8 | t | -| summaries.rb:40:7:40:17 | call to source | summaries.rb:40:3:40:3 | t | -| summaries.rb:41:24:41:24 | t | summaries.rb:41:8:41:25 | call to matchedByName | -| summaries.rb:42:24:42:24 | t | summaries.rb:42:8:42:25 | call to matchedByName | -| summaries.rb:44:8:44:8 | t | summaries.rb:44:8:44:27 | call to matchedByNameRcv | -| summaries.rb:48:24:48:41 | call to source | summaries.rb:48:8:48:42 | call to preserveTaint | -| summaries.rb:51:24:51:30 | tainted | summaries.rb:51:6:51:31 | call to namedArg | -| summaries.rb:53:1:53:4 | args [element :foo] | summaries.rb:54:21:54:24 | args [element :foo] | -| summaries.rb:53:15:53:31 | call to source | summaries.rb:53:1:53:4 | args [element :foo] | -| summaries.rb:54:19:54:24 | ** ... [element :foo] | summaries.rb:54:6:54:25 | call to namedArg | -| summaries.rb:54:21:54:24 | args [element :foo] | summaries.rb:54:19:54:24 | ** ... [element :foo] | -| summaries.rb:56:22:56:28 | tainted | summaries.rb:56:6:56:29 | call to anyArg | -| summaries.rb:57:17:57:23 | tainted | summaries.rb:57:6:57:24 | call to anyArg | -| summaries.rb:59:27:59:33 | tainted | summaries.rb:59:6:59:34 | call to anyNamedArg | -| summaries.rb:63:32:63:38 | tainted | summaries.rb:63:6:63:39 | call to anyPositionFromOne | -| summaries.rb:65:23:65:29 | tainted | summaries.rb:65:40:65:40 | x | -| summaries.rb:65:40:65:40 | x | summaries.rb:66:8:66:8 | x | -| summaries.rb:73:24:73:53 | call to source | summaries.rb:73:8:73:54 | call to preserveTaint | -| summaries.rb:76:26:76:56 | call to source | summaries.rb:76:8:76:57 | call to preserveTaint | -| summaries.rb:79:1:79:1 | a [element 1] | summaries.rb:82:6:82:6 | a [element 1] | -| summaries.rb:79:1:79:1 | a [element 1] | summaries.rb:82:6:82:6 | a [element 1] | -| summaries.rb:79:1:79:1 | a [element 1] | summaries.rb:83:6:83:6 | a [element 1] | -| summaries.rb:79:1:79:1 | a [element 1] | summaries.rb:83:6:83:6 | a [element 1] | -| summaries.rb:79:1:79:1 | a [element 1] | summaries.rb:85:6:85:6 | a [element 1] | -| summaries.rb:79:1:79:1 | a [element 1] | summaries.rb:85:6:85:6 | a [element 1] | -| summaries.rb:79:1:79:1 | a [element 1] | summaries.rb:87:5:87:5 | a [element 1] | -| summaries.rb:79:1:79:1 | a [element 1] | summaries.rb:87:5:87:5 | a [element 1] | -| summaries.rb:79:1:79:1 | a [element 1] | summaries.rb:91:5:91:5 | a [element 1] | -| summaries.rb:79:1:79:1 | a [element 1] | summaries.rb:91:5:91:5 | a [element 1] | -| summaries.rb:79:1:79:1 | a [element 2] | summaries.rb:86:6:86:6 | a [element 2] | -| summaries.rb:79:1:79:1 | a [element 2] | summaries.rb:86:6:86:6 | a [element 2] | -| summaries.rb:79:1:79:1 | a [element 2] | summaries.rb:95:1:95:1 | a [element 2] | -| summaries.rb:79:1:79:1 | a [element 2] | summaries.rb:95:1:95:1 | a [element 2] | -| summaries.rb:79:15:79:29 | call to source | summaries.rb:79:1:79:1 | a [element 1] | -| summaries.rb:79:15:79:29 | call to source | summaries.rb:79:1:79:1 | a [element 1] | -| summaries.rb:79:32:79:46 | call to source | summaries.rb:79:1:79:1 | a [element 2] | -| summaries.rb:79:32:79:46 | call to source | summaries.rb:79:1:79:1 | a [element 2] | -| summaries.rb:81:1:81:1 | [post] a [element] | summaries.rb:82:6:82:6 | a [element] | -| summaries.rb:81:1:81:1 | [post] a [element] | summaries.rb:82:6:82:6 | a [element] | -| summaries.rb:81:1:81:1 | [post] a [element] | summaries.rb:84:6:84:6 | a [element] | -| summaries.rb:81:1:81:1 | [post] a [element] | summaries.rb:84:6:84:6 | a [element] | -| summaries.rb:81:1:81:1 | [post] a [element] | summaries.rb:85:6:85:6 | a [element] | -| summaries.rb:81:1:81:1 | [post] a [element] | summaries.rb:85:6:85:6 | a [element] | -| summaries.rb:81:1:81:1 | [post] a [element] | summaries.rb:86:6:86:6 | a [element] | -| summaries.rb:81:1:81:1 | [post] a [element] | summaries.rb:86:6:86:6 | a [element] | -| summaries.rb:81:1:81:1 | [post] a [element] | summaries.rb:87:5:87:5 | a [element] | -| summaries.rb:81:1:81:1 | [post] a [element] | summaries.rb:87:5:87:5 | a [element] | -| summaries.rb:81:1:81:1 | [post] a [element] | summaries.rb:95:1:95:1 | a [element] | -| summaries.rb:81:1:81:1 | [post] a [element] | summaries.rb:95:1:95:1 | a [element] | -| summaries.rb:81:13:81:27 | call to source | summaries.rb:81:1:81:1 | [post] a [element] | -| summaries.rb:81:13:81:27 | call to source | summaries.rb:81:1:81:1 | [post] a [element] | -| summaries.rb:82:6:82:6 | a [element 1] | summaries.rb:82:6:82:24 | call to readElementOne | -| summaries.rb:82:6:82:6 | a [element 1] | summaries.rb:82:6:82:24 | call to readElementOne | -| summaries.rb:82:6:82:6 | a [element] | summaries.rb:82:6:82:24 | call to readElementOne | -| summaries.rb:82:6:82:6 | a [element] | summaries.rb:82:6:82:24 | call to readElementOne | -| summaries.rb:83:6:83:6 | a [element 1] | summaries.rb:83:6:83:31 | call to readExactlyElementOne | -| summaries.rb:83:6:83:6 | a [element 1] | summaries.rb:83:6:83:31 | call to readExactlyElementOne | -| summaries.rb:84:6:84:6 | a [element] | summaries.rb:84:6:84:9 | ...[...] | -| summaries.rb:84:6:84:6 | a [element] | summaries.rb:84:6:84:9 | ...[...] | -| summaries.rb:85:6:85:6 | a [element 1] | summaries.rb:85:6:85:9 | ...[...] | -| summaries.rb:85:6:85:6 | a [element 1] | summaries.rb:85:6:85:9 | ...[...] | -| summaries.rb:85:6:85:6 | a [element] | summaries.rb:85:6:85:9 | ...[...] | -| summaries.rb:85:6:85:6 | a [element] | summaries.rb:85:6:85:9 | ...[...] | -| summaries.rb:86:6:86:6 | a [element 2] | summaries.rb:86:6:86:9 | ...[...] | -| summaries.rb:86:6:86:6 | a [element 2] | summaries.rb:86:6:86:9 | ...[...] | -| summaries.rb:86:6:86:6 | a [element] | summaries.rb:86:6:86:9 | ...[...] | -| summaries.rb:86:6:86:6 | a [element] | summaries.rb:86:6:86:9 | ...[...] | -| summaries.rb:87:1:87:1 | b [element 1] | summaries.rb:89:6:89:6 | b [element 1] | -| summaries.rb:87:1:87:1 | b [element 1] | summaries.rb:89:6:89:6 | b [element 1] | -| summaries.rb:87:1:87:1 | b [element] | summaries.rb:88:6:88:6 | b [element] | -| summaries.rb:87:1:87:1 | b [element] | summaries.rb:88:6:88:6 | b [element] | -| summaries.rb:87:1:87:1 | b [element] | summaries.rb:89:6:89:6 | b [element] | -| summaries.rb:87:1:87:1 | b [element] | summaries.rb:89:6:89:6 | b [element] | -| summaries.rb:87:1:87:1 | b [element] | summaries.rb:90:6:90:6 | b [element] | -| summaries.rb:87:1:87:1 | b [element] | summaries.rb:90:6:90:6 | b [element] | -| summaries.rb:87:5:87:5 | a [element 1] | summaries.rb:87:5:87:22 | call to withElementOne [element 1] | -| summaries.rb:87:5:87:5 | a [element 1] | summaries.rb:87:5:87:22 | call to withElementOne [element 1] | -| summaries.rb:87:5:87:5 | a [element] | summaries.rb:87:5:87:22 | call to withElementOne [element] | -| summaries.rb:87:5:87:5 | a [element] | summaries.rb:87:5:87:22 | call to withElementOne [element] | -| summaries.rb:87:5:87:22 | call to withElementOne [element 1] | summaries.rb:87:1:87:1 | b [element 1] | -| summaries.rb:87:5:87:22 | call to withElementOne [element 1] | summaries.rb:87:1:87:1 | b [element 1] | -| summaries.rb:87:5:87:22 | call to withElementOne [element] | summaries.rb:87:1:87:1 | b [element] | -| summaries.rb:87:5:87:22 | call to withElementOne [element] | summaries.rb:87:1:87:1 | b [element] | -| summaries.rb:88:6:88:6 | b [element] | summaries.rb:88:6:88:9 | ...[...] | -| summaries.rb:88:6:88:6 | b [element] | summaries.rb:88:6:88:9 | ...[...] | -| summaries.rb:89:6:89:6 | b [element 1] | summaries.rb:89:6:89:9 | ...[...] | -| summaries.rb:89:6:89:6 | b [element 1] | summaries.rb:89:6:89:9 | ...[...] | -| summaries.rb:89:6:89:6 | b [element] | summaries.rb:89:6:89:9 | ...[...] | -| summaries.rb:89:6:89:6 | b [element] | summaries.rb:89:6:89:9 | ...[...] | -| summaries.rb:90:6:90:6 | b [element] | summaries.rb:90:6:90:9 | ...[...] | -| summaries.rb:90:6:90:6 | b [element] | summaries.rb:90:6:90:9 | ...[...] | -| summaries.rb:91:1:91:1 | c [element 1] | summaries.rb:93:6:93:6 | c [element 1] | -| summaries.rb:91:1:91:1 | c [element 1] | summaries.rb:93:6:93:6 | c [element 1] | -| summaries.rb:91:5:91:5 | a [element 1] | summaries.rb:91:5:91:29 | call to withExactlyElementOne [element 1] | -| summaries.rb:91:5:91:5 | a [element 1] | summaries.rb:91:5:91:29 | call to withExactlyElementOne [element 1] | -| summaries.rb:91:5:91:29 | call to withExactlyElementOne [element 1] | summaries.rb:91:1:91:1 | c [element 1] | -| summaries.rb:91:5:91:29 | call to withExactlyElementOne [element 1] | summaries.rb:91:1:91:1 | c [element 1] | -| summaries.rb:93:6:93:6 | c [element 1] | summaries.rb:93:6:93:9 | ...[...] | -| summaries.rb:93:6:93:6 | c [element 1] | summaries.rb:93:6:93:9 | ...[...] | -| summaries.rb:95:1:95:1 | [post] a [element 2] | summaries.rb:98:6:98:6 | a [element 2] | -| summaries.rb:95:1:95:1 | [post] a [element 2] | summaries.rb:98:6:98:6 | a [element 2] | -| summaries.rb:95:1:95:1 | [post] a [element 2] | summaries.rb:99:1:99:1 | a [element 2] | -| summaries.rb:95:1:95:1 | [post] a [element 2] | summaries.rb:99:1:99:1 | a [element 2] | -| summaries.rb:95:1:95:1 | [post] a [element] | summaries.rb:96:6:96:6 | a [element] | -| summaries.rb:95:1:95:1 | [post] a [element] | summaries.rb:96:6:96:6 | a [element] | -| summaries.rb:95:1:95:1 | [post] a [element] | summaries.rb:97:6:97:6 | a [element] | -| summaries.rb:95:1:95:1 | [post] a [element] | summaries.rb:97:6:97:6 | a [element] | -| summaries.rb:95:1:95:1 | [post] a [element] | summaries.rb:98:6:98:6 | a [element] | -| summaries.rb:95:1:95:1 | [post] a [element] | summaries.rb:98:6:98:6 | a [element] | -| summaries.rb:95:1:95:1 | a [element 2] | summaries.rb:95:1:95:1 | [post] a [element 2] | -| summaries.rb:95:1:95:1 | a [element 2] | summaries.rb:95:1:95:1 | [post] a [element 2] | -| summaries.rb:95:1:95:1 | a [element] | summaries.rb:95:1:95:1 | [post] a [element] | -| summaries.rb:95:1:95:1 | a [element] | summaries.rb:95:1:95:1 | [post] a [element] | -| summaries.rb:96:6:96:6 | a [element] | summaries.rb:96:6:96:9 | ...[...] | -| summaries.rb:96:6:96:6 | a [element] | summaries.rb:96:6:96:9 | ...[...] | -| summaries.rb:97:6:97:6 | a [element] | summaries.rb:97:6:97:9 | ...[...] | -| summaries.rb:97:6:97:6 | a [element] | summaries.rb:97:6:97:9 | ...[...] | -| summaries.rb:98:6:98:6 | a [element 2] | summaries.rb:98:6:98:9 | ...[...] | -| summaries.rb:98:6:98:6 | a [element 2] | summaries.rb:98:6:98:9 | ...[...] | -| summaries.rb:98:6:98:6 | a [element] | summaries.rb:98:6:98:9 | ...[...] | -| summaries.rb:98:6:98:6 | a [element] | summaries.rb:98:6:98:9 | ...[...] | -| summaries.rb:99:1:99:1 | [post] a [element 2] | summaries.rb:102:6:102:6 | a [element 2] | -| summaries.rb:99:1:99:1 | [post] a [element 2] | summaries.rb:102:6:102:6 | a [element 2] | -| summaries.rb:99:1:99:1 | a [element 2] | summaries.rb:99:1:99:1 | [post] a [element 2] | -| summaries.rb:99:1:99:1 | a [element 2] | summaries.rb:99:1:99:1 | [post] a [element 2] | -| summaries.rb:102:6:102:6 | a [element 2] | summaries.rb:102:6:102:9 | ...[...] | -| summaries.rb:102:6:102:6 | a [element 2] | summaries.rb:102:6:102:9 | ...[...] | -| summaries.rb:103:1:103:1 | [post] d [element 3] | summaries.rb:104:1:104:1 | d [element 3] | -| summaries.rb:103:1:103:1 | [post] d [element 3] | summaries.rb:104:1:104:1 | d [element 3] | -| summaries.rb:103:8:103:22 | call to source | summaries.rb:103:1:103:1 | [post] d [element 3] | -| summaries.rb:103:8:103:22 | call to source | summaries.rb:103:1:103:1 | [post] d [element 3] | -| summaries.rb:104:1:104:1 | [post] d [element 3] | summaries.rb:108:6:108:6 | d [element 3] | -| summaries.rb:104:1:104:1 | [post] d [element 3] | summaries.rb:108:6:108:6 | d [element 3] | -| summaries.rb:104:1:104:1 | d [element 3] | summaries.rb:104:1:104:1 | [post] d [element 3] | -| summaries.rb:104:1:104:1 | d [element 3] | summaries.rb:104:1:104:1 | [post] d [element 3] | -| summaries.rb:108:6:108:6 | d [element 3] | summaries.rb:108:6:108:9 | ...[...] | -| summaries.rb:108:6:108:6 | d [element 3] | summaries.rb:108:6:108:9 | ...[...] | -| summaries.rb:111:1:111:1 | [post] x [@value] | summaries.rb:112:6:112:6 | x [@value] | -| summaries.rb:111:1:111:1 | [post] x [@value] | summaries.rb:112:6:112:6 | x [@value] | -| summaries.rb:111:13:111:26 | call to source | summaries.rb:111:1:111:1 | [post] x [@value] | -| summaries.rb:111:13:111:26 | call to source | summaries.rb:111:1:111:1 | [post] x [@value] | -| summaries.rb:112:6:112:6 | x [@value] | summaries.rb:112:6:112:16 | call to get_value | -| summaries.rb:112:6:112:6 | x [@value] | summaries.rb:112:6:112:16 | call to get_value | -| summaries.rb:122:16:122:22 | [post] tainted | summaries.rb:128:14:128:20 | tainted | -| summaries.rb:122:16:122:22 | [post] tainted | summaries.rb:131:16:131:22 | tainted | -| summaries.rb:122:16:122:22 | [post] tainted | summaries.rb:131:16:131:22 | tainted | -| summaries.rb:122:16:122:22 | [post] tainted | summaries.rb:132:21:132:27 | tainted | -| summaries.rb:122:16:122:22 | [post] tainted | summaries.rb:135:26:135:32 | tainted | -| summaries.rb:122:16:122:22 | [post] tainted | summaries.rb:137:23:137:29 | tainted | -| summaries.rb:122:16:122:22 | [post] tainted | summaries.rb:140:19:140:25 | tainted | -| summaries.rb:122:16:122:22 | [post] tainted | summaries.rb:141:19:141:25 | tainted | -| summaries.rb:122:16:122:22 | [post] tainted | summaries.rb:145:26:145:32 | tainted | -| summaries.rb:122:16:122:22 | [post] tainted | summaries.rb:147:16:147:22 | tainted | -| summaries.rb:122:16:122:22 | [post] tainted | summaries.rb:150:39:150:45 | tainted | -| summaries.rb:122:16:122:22 | [post] tainted | summaries.rb:154:20:154:26 | tainted | -| summaries.rb:122:16:122:22 | [post] tainted | summaries.rb:155:28:155:34 | tainted | -| summaries.rb:122:16:122:22 | [post] tainted | summaries.rb:156:27:156:33 | tainted | -| summaries.rb:122:16:122:22 | [post] tainted | summaries.rb:157:14:160:3 | do ... end [captured tainted] | -| summaries.rb:122:16:122:22 | tainted | summaries.rb:122:16:122:22 | [post] tainted | -| summaries.rb:122:16:122:22 | tainted | summaries.rb:122:25:122:25 | [post] y | -| summaries.rb:122:16:122:22 | tainted | summaries.rb:122:33:122:33 | [post] z | -| summaries.rb:122:25:122:25 | [post] y | summaries.rb:124:6:124:6 | y | -| summaries.rb:122:33:122:33 | [post] z | summaries.rb:125:6:125:6 | z | -| summaries.rb:128:1:128:1 | [post] x | summaries.rb:129:6:129:6 | x | -| summaries.rb:128:14:128:20 | tainted | summaries.rb:128:1:128:1 | [post] x | -| summaries.rb:131:16:131:22 | tainted | summaries.rb:131:1:131:23 | synthetic splat argument | -| summaries.rb:157:14:160:3 | do ... end [captured tainted] | summaries.rb:158:15:158:21 | tainted | -| summaries.rb:157:14:160:3 | do ... end [captured tainted] | summaries.rb:158:15:158:21 | tainted | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:2:6:2:12 | tainted | provenance | | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:2:6:2:12 | tainted | provenance | | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:4:24:4:30 | tainted | provenance | | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:4:24:4:30 | tainted | provenance | | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:16:36:16:42 | tainted | provenance | | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:16:36:16:42 | tainted | provenance | | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:20:25:20:31 | tainted | provenance | | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:26:31:26:37 | tainted | provenance | | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:30:24:30:30 | tainted | provenance | | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:31:27:31:33 | tainted | provenance | | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:34:16:34:22 | tainted | provenance | | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:34:16:34:22 | tainted | provenance | | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:35:16:35:22 | tainted | provenance | | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:35:16:35:22 | tainted | provenance | | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:36:21:36:27 | tainted | provenance | | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:36:21:36:27 | tainted | provenance | | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:37:36:37:42 | tainted | provenance | | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:37:36:37:42 | tainted | provenance | | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:51:24:51:30 | tainted | provenance | | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:56:22:56:28 | tainted | provenance | | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:57:17:57:23 | tainted | provenance | | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:59:27:59:33 | tainted | provenance | | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:63:32:63:38 | tainted | provenance | | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:65:23:65:29 | tainted | provenance | | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:122:16:122:22 | tainted | provenance | | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:128:14:128:20 | tainted | provenance | | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:131:16:131:22 | tainted | provenance | | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:131:16:131:22 | tainted | provenance | | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:131:16:131:22 | tainted | provenance | | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:132:21:132:27 | tainted | provenance | | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:132:21:132:27 | tainted | provenance | | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:135:26:135:32 | tainted | provenance | | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:135:26:135:32 | tainted | provenance | | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:137:23:137:29 | tainted | provenance | | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:137:23:137:29 | tainted | provenance | | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:140:19:140:25 | tainted | provenance | | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:140:19:140:25 | tainted | provenance | | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:141:19:141:25 | tainted | provenance | | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:141:19:141:25 | tainted | provenance | | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:145:26:145:32 | tainted | provenance | | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:145:26:145:32 | tainted | provenance | | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:147:16:147:22 | tainted | provenance | | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:147:16:147:22 | tainted | provenance | | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:150:39:150:45 | tainted | provenance | | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:150:39:150:45 | tainted | provenance | | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:154:20:154:26 | tainted | provenance | | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:154:20:154:26 | tainted | provenance | | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:155:28:155:34 | tainted | provenance | | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:155:28:155:34 | tainted | provenance | | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:156:27:156:33 | tainted | provenance | | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:156:27:156:33 | tainted | provenance | | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:157:14:160:3 | do ... end [captured tainted] | provenance | | +| summaries.rb:1:11:1:36 | call to identity | summaries.rb:157:14:160:3 | do ... end [captured tainted] | provenance | | +| summaries.rb:1:20:1:36 | call to source | summaries.rb:1:11:1:36 | call to identity | provenance | | +| summaries.rb:1:20:1:36 | call to source | summaries.rb:1:11:1:36 | call to identity | provenance | | +| summaries.rb:4:1:4:8 | tainted2 | summaries.rb:9:6:9:13 | tainted2 | provenance | | +| summaries.rb:4:1:4:8 | tainted2 | summaries.rb:9:6:9:13 | tainted2 | provenance | | +| summaries.rb:4:12:7:3 | call to apply_block | summaries.rb:4:1:4:8 | tainted2 | provenance | | +| summaries.rb:4:12:7:3 | call to apply_block | summaries.rb:4:1:4:8 | tainted2 | provenance | | +| summaries.rb:4:24:4:30 | tainted | summaries.rb:4:12:7:3 | call to apply_block | provenance | | +| summaries.rb:4:24:4:30 | tainted | summaries.rb:4:12:7:3 | call to apply_block | provenance | | +| summaries.rb:4:24:4:30 | tainted | summaries.rb:4:36:4:36 | x | provenance | | +| summaries.rb:4:24:4:30 | tainted | summaries.rb:4:36:4:36 | x | provenance | | +| summaries.rb:4:36:4:36 | x | summaries.rb:5:8:5:8 | x | provenance | | +| summaries.rb:4:36:4:36 | x | summaries.rb:5:8:5:8 | x | provenance | | +| summaries.rb:11:17:11:17 | x | summaries.rb:12:8:12:8 | x | provenance | | +| summaries.rb:11:17:11:17 | x | summaries.rb:12:8:12:8 | x | provenance | | +| summaries.rb:16:1:16:8 | tainted3 | summaries.rb:18:6:18:13 | tainted3 | provenance | | +| summaries.rb:16:1:16:8 | tainted3 | summaries.rb:18:6:18:13 | tainted3 | provenance | | +| summaries.rb:16:12:16:43 | call to apply_lambda | summaries.rb:16:1:16:8 | tainted3 | provenance | | +| summaries.rb:16:12:16:43 | call to apply_lambda | summaries.rb:16:1:16:8 | tainted3 | provenance | | +| summaries.rb:16:36:16:42 | tainted | summaries.rb:11:17:11:17 | x | provenance | | +| summaries.rb:16:36:16:42 | tainted | summaries.rb:11:17:11:17 | x | provenance | | +| summaries.rb:16:36:16:42 | tainted | summaries.rb:16:12:16:43 | call to apply_lambda | provenance | | +| summaries.rb:16:36:16:42 | tainted | summaries.rb:16:12:16:43 | call to apply_lambda | provenance | | +| summaries.rb:20:1:20:8 | tainted4 | summaries.rb:21:6:21:13 | tainted4 | provenance | | +| summaries.rb:20:12:20:32 | call to firstArg | summaries.rb:20:1:20:8 | tainted4 | provenance | | +| summaries.rb:20:25:20:31 | tainted | summaries.rb:20:12:20:32 | call to firstArg | provenance | | +| summaries.rb:26:1:26:8 | tainted5 | summaries.rb:27:6:27:13 | tainted5 | provenance | | +| summaries.rb:26:12:26:38 | call to secondArg | summaries.rb:26:1:26:8 | tainted5 | provenance | | +| summaries.rb:26:31:26:37 | tainted | summaries.rb:26:12:26:38 | call to secondArg | provenance | | +| summaries.rb:30:24:30:30 | tainted | summaries.rb:30:6:30:42 | call to onlyWithBlock | provenance | | +| summaries.rb:31:27:31:33 | tainted | summaries.rb:31:6:31:34 | call to onlyWithoutBlock | provenance | | +| summaries.rb:40:3:40:3 | t | summaries.rb:41:24:41:24 | t | provenance | | +| summaries.rb:40:3:40:3 | t | summaries.rb:42:24:42:24 | t | provenance | | +| summaries.rb:40:3:40:3 | t | summaries.rb:44:8:44:8 | t | provenance | | +| summaries.rb:40:7:40:17 | call to source | summaries.rb:40:3:40:3 | t | provenance | | +| summaries.rb:41:24:41:24 | t | summaries.rb:41:8:41:25 | call to matchedByName | provenance | | +| summaries.rb:42:24:42:24 | t | summaries.rb:42:8:42:25 | call to matchedByName | provenance | | +| summaries.rb:44:8:44:8 | t | summaries.rb:44:8:44:27 | call to matchedByNameRcv | provenance | | +| summaries.rb:48:24:48:41 | call to source | summaries.rb:48:8:48:42 | call to preserveTaint | provenance | | +| summaries.rb:51:24:51:30 | tainted | summaries.rb:51:6:51:31 | call to namedArg | provenance | | +| summaries.rb:53:1:53:4 | args [element :foo] | summaries.rb:54:21:54:24 | args [element :foo] | provenance | | +| summaries.rb:53:15:53:31 | call to source | summaries.rb:53:1:53:4 | args [element :foo] | provenance | | +| summaries.rb:54:19:54:24 | ** ... [element :foo] | summaries.rb:54:6:54:25 | call to namedArg | provenance | | +| summaries.rb:54:21:54:24 | args [element :foo] | summaries.rb:54:19:54:24 | ** ... [element :foo] | provenance | | +| summaries.rb:56:22:56:28 | tainted | summaries.rb:56:6:56:29 | call to anyArg | provenance | | +| summaries.rb:57:17:57:23 | tainted | summaries.rb:57:6:57:24 | call to anyArg | provenance | | +| summaries.rb:59:27:59:33 | tainted | summaries.rb:59:6:59:34 | call to anyNamedArg | provenance | | +| summaries.rb:63:32:63:38 | tainted | summaries.rb:63:6:63:39 | call to anyPositionFromOne | provenance | | +| summaries.rb:65:23:65:29 | tainted | summaries.rb:65:40:65:40 | x | provenance | | +| summaries.rb:65:40:65:40 | x | summaries.rb:66:8:66:8 | x | provenance | | +| summaries.rb:73:24:73:53 | call to source | summaries.rb:73:8:73:54 | call to preserveTaint | provenance | | +| summaries.rb:76:26:76:56 | call to source | summaries.rb:76:8:76:57 | call to preserveTaint | provenance | | +| summaries.rb:79:1:79:1 | a [element 1] | summaries.rb:82:6:82:6 | a [element 1] | provenance | | +| summaries.rb:79:1:79:1 | a [element 1] | summaries.rb:82:6:82:6 | a [element 1] | provenance | | +| summaries.rb:79:1:79:1 | a [element 1] | summaries.rb:83:6:83:6 | a [element 1] | provenance | | +| summaries.rb:79:1:79:1 | a [element 1] | summaries.rb:83:6:83:6 | a [element 1] | provenance | | +| summaries.rb:79:1:79:1 | a [element 1] | summaries.rb:85:6:85:6 | a [element 1] | provenance | | +| summaries.rb:79:1:79:1 | a [element 1] | summaries.rb:85:6:85:6 | a [element 1] | provenance | | +| summaries.rb:79:1:79:1 | a [element 1] | summaries.rb:87:5:87:5 | a [element 1] | provenance | | +| summaries.rb:79:1:79:1 | a [element 1] | summaries.rb:87:5:87:5 | a [element 1] | provenance | | +| summaries.rb:79:1:79:1 | a [element 1] | summaries.rb:91:5:91:5 | a [element 1] | provenance | | +| summaries.rb:79:1:79:1 | a [element 1] | summaries.rb:91:5:91:5 | a [element 1] | provenance | | +| summaries.rb:79:1:79:1 | a [element 2] | summaries.rb:86:6:86:6 | a [element 2] | provenance | | +| summaries.rb:79:1:79:1 | a [element 2] | summaries.rb:86:6:86:6 | a [element 2] | provenance | | +| summaries.rb:79:1:79:1 | a [element 2] | summaries.rb:95:1:95:1 | a [element 2] | provenance | | +| summaries.rb:79:1:79:1 | a [element 2] | summaries.rb:95:1:95:1 | a [element 2] | provenance | | +| summaries.rb:79:15:79:29 | call to source | summaries.rb:79:1:79:1 | a [element 1] | provenance | | +| summaries.rb:79:15:79:29 | call to source | summaries.rb:79:1:79:1 | a [element 1] | provenance | | +| summaries.rb:79:32:79:46 | call to source | summaries.rb:79:1:79:1 | a [element 2] | provenance | | +| summaries.rb:79:32:79:46 | call to source | summaries.rb:79:1:79:1 | a [element 2] | provenance | | +| summaries.rb:81:1:81:1 | [post] a [element] | summaries.rb:82:6:82:6 | a [element] | provenance | | +| summaries.rb:81:1:81:1 | [post] a [element] | summaries.rb:82:6:82:6 | a [element] | provenance | | +| summaries.rb:81:1:81:1 | [post] a [element] | summaries.rb:84:6:84:6 | a [element] | provenance | | +| summaries.rb:81:1:81:1 | [post] a [element] | summaries.rb:84:6:84:6 | a [element] | provenance | | +| summaries.rb:81:1:81:1 | [post] a [element] | summaries.rb:85:6:85:6 | a [element] | provenance | | +| summaries.rb:81:1:81:1 | [post] a [element] | summaries.rb:85:6:85:6 | a [element] | provenance | | +| summaries.rb:81:1:81:1 | [post] a [element] | summaries.rb:86:6:86:6 | a [element] | provenance | | +| summaries.rb:81:1:81:1 | [post] a [element] | summaries.rb:86:6:86:6 | a [element] | provenance | | +| summaries.rb:81:1:81:1 | [post] a [element] | summaries.rb:87:5:87:5 | a [element] | provenance | | +| summaries.rb:81:1:81:1 | [post] a [element] | summaries.rb:87:5:87:5 | a [element] | provenance | | +| summaries.rb:81:1:81:1 | [post] a [element] | summaries.rb:95:1:95:1 | a [element] | provenance | | +| summaries.rb:81:1:81:1 | [post] a [element] | summaries.rb:95:1:95:1 | a [element] | provenance | | +| summaries.rb:81:13:81:27 | call to source | summaries.rb:81:1:81:1 | [post] a [element] | provenance | | +| summaries.rb:81:13:81:27 | call to source | summaries.rb:81:1:81:1 | [post] a [element] | provenance | | +| summaries.rb:82:6:82:6 | a [element 1] | summaries.rb:82:6:82:24 | call to readElementOne | provenance | | +| summaries.rb:82:6:82:6 | a [element 1] | summaries.rb:82:6:82:24 | call to readElementOne | provenance | | +| summaries.rb:82:6:82:6 | a [element] | summaries.rb:82:6:82:24 | call to readElementOne | provenance | | +| summaries.rb:82:6:82:6 | a [element] | summaries.rb:82:6:82:24 | call to readElementOne | provenance | | +| summaries.rb:83:6:83:6 | a [element 1] | summaries.rb:83:6:83:31 | call to readExactlyElementOne | provenance | | +| summaries.rb:83:6:83:6 | a [element 1] | summaries.rb:83:6:83:31 | call to readExactlyElementOne | provenance | | +| summaries.rb:84:6:84:6 | a [element] | summaries.rb:84:6:84:9 | ...[...] | provenance | | +| summaries.rb:84:6:84:6 | a [element] | summaries.rb:84:6:84:9 | ...[...] | provenance | | +| summaries.rb:85:6:85:6 | a [element 1] | summaries.rb:85:6:85:9 | ...[...] | provenance | | +| summaries.rb:85:6:85:6 | a [element 1] | summaries.rb:85:6:85:9 | ...[...] | provenance | | +| summaries.rb:85:6:85:6 | a [element] | summaries.rb:85:6:85:9 | ...[...] | provenance | | +| summaries.rb:85:6:85:6 | a [element] | summaries.rb:85:6:85:9 | ...[...] | provenance | | +| summaries.rb:86:6:86:6 | a [element 2] | summaries.rb:86:6:86:9 | ...[...] | provenance | | +| summaries.rb:86:6:86:6 | a [element 2] | summaries.rb:86:6:86:9 | ...[...] | provenance | | +| summaries.rb:86:6:86:6 | a [element] | summaries.rb:86:6:86:9 | ...[...] | provenance | | +| summaries.rb:86:6:86:6 | a [element] | summaries.rb:86:6:86:9 | ...[...] | provenance | | +| summaries.rb:87:1:87:1 | b [element 1] | summaries.rb:89:6:89:6 | b [element 1] | provenance | | +| summaries.rb:87:1:87:1 | b [element 1] | summaries.rb:89:6:89:6 | b [element 1] | provenance | | +| summaries.rb:87:1:87:1 | b [element] | summaries.rb:88:6:88:6 | b [element] | provenance | | +| summaries.rb:87:1:87:1 | b [element] | summaries.rb:88:6:88:6 | b [element] | provenance | | +| summaries.rb:87:1:87:1 | b [element] | summaries.rb:89:6:89:6 | b [element] | provenance | | +| summaries.rb:87:1:87:1 | b [element] | summaries.rb:89:6:89:6 | b [element] | provenance | | +| summaries.rb:87:1:87:1 | b [element] | summaries.rb:90:6:90:6 | b [element] | provenance | | +| summaries.rb:87:1:87:1 | b [element] | summaries.rb:90:6:90:6 | b [element] | provenance | | +| summaries.rb:87:5:87:5 | a [element 1] | summaries.rb:87:5:87:22 | call to withElementOne [element 1] | provenance | | +| summaries.rb:87:5:87:5 | a [element 1] | summaries.rb:87:5:87:22 | call to withElementOne [element 1] | provenance | | +| summaries.rb:87:5:87:5 | a [element] | summaries.rb:87:5:87:22 | call to withElementOne [element] | provenance | | +| summaries.rb:87:5:87:5 | a [element] | summaries.rb:87:5:87:22 | call to withElementOne [element] | provenance | | +| summaries.rb:87:5:87:22 | call to withElementOne [element 1] | summaries.rb:87:1:87:1 | b [element 1] | provenance | | +| summaries.rb:87:5:87:22 | call to withElementOne [element 1] | summaries.rb:87:1:87:1 | b [element 1] | provenance | | +| summaries.rb:87:5:87:22 | call to withElementOne [element] | summaries.rb:87:1:87:1 | b [element] | provenance | | +| summaries.rb:87:5:87:22 | call to withElementOne [element] | summaries.rb:87:1:87:1 | b [element] | provenance | | +| summaries.rb:88:6:88:6 | b [element] | summaries.rb:88:6:88:9 | ...[...] | provenance | | +| summaries.rb:88:6:88:6 | b [element] | summaries.rb:88:6:88:9 | ...[...] | provenance | | +| summaries.rb:89:6:89:6 | b [element 1] | summaries.rb:89:6:89:9 | ...[...] | provenance | | +| summaries.rb:89:6:89:6 | b [element 1] | summaries.rb:89:6:89:9 | ...[...] | provenance | | +| summaries.rb:89:6:89:6 | b [element] | summaries.rb:89:6:89:9 | ...[...] | provenance | | +| summaries.rb:89:6:89:6 | b [element] | summaries.rb:89:6:89:9 | ...[...] | provenance | | +| summaries.rb:90:6:90:6 | b [element] | summaries.rb:90:6:90:9 | ...[...] | provenance | | +| summaries.rb:90:6:90:6 | b [element] | summaries.rb:90:6:90:9 | ...[...] | provenance | | +| summaries.rb:91:1:91:1 | c [element 1] | summaries.rb:93:6:93:6 | c [element 1] | provenance | | +| summaries.rb:91:1:91:1 | c [element 1] | summaries.rb:93:6:93:6 | c [element 1] | provenance | | +| summaries.rb:91:5:91:5 | a [element 1] | summaries.rb:91:5:91:29 | call to withExactlyElementOne [element 1] | provenance | | +| summaries.rb:91:5:91:5 | a [element 1] | summaries.rb:91:5:91:29 | call to withExactlyElementOne [element 1] | provenance | | +| summaries.rb:91:5:91:29 | call to withExactlyElementOne [element 1] | summaries.rb:91:1:91:1 | c [element 1] | provenance | | +| summaries.rb:91:5:91:29 | call to withExactlyElementOne [element 1] | summaries.rb:91:1:91:1 | c [element 1] | provenance | | +| summaries.rb:93:6:93:6 | c [element 1] | summaries.rb:93:6:93:9 | ...[...] | provenance | | +| summaries.rb:93:6:93:6 | c [element 1] | summaries.rb:93:6:93:9 | ...[...] | provenance | | +| summaries.rb:95:1:95:1 | [post] a [element 2] | summaries.rb:98:6:98:6 | a [element 2] | provenance | | +| summaries.rb:95:1:95:1 | [post] a [element 2] | summaries.rb:98:6:98:6 | a [element 2] | provenance | | +| summaries.rb:95:1:95:1 | [post] a [element 2] | summaries.rb:99:1:99:1 | a [element 2] | provenance | | +| summaries.rb:95:1:95:1 | [post] a [element 2] | summaries.rb:99:1:99:1 | a [element 2] | provenance | | +| summaries.rb:95:1:95:1 | [post] a [element] | summaries.rb:96:6:96:6 | a [element] | provenance | | +| summaries.rb:95:1:95:1 | [post] a [element] | summaries.rb:96:6:96:6 | a [element] | provenance | | +| summaries.rb:95:1:95:1 | [post] a [element] | summaries.rb:97:6:97:6 | a [element] | provenance | | +| summaries.rb:95:1:95:1 | [post] a [element] | summaries.rb:97:6:97:6 | a [element] | provenance | | +| summaries.rb:95:1:95:1 | [post] a [element] | summaries.rb:98:6:98:6 | a [element] | provenance | | +| summaries.rb:95:1:95:1 | [post] a [element] | summaries.rb:98:6:98:6 | a [element] | provenance | | +| summaries.rb:95:1:95:1 | a [element 2] | summaries.rb:95:1:95:1 | [post] a [element 2] | provenance | | +| summaries.rb:95:1:95:1 | a [element 2] | summaries.rb:95:1:95:1 | [post] a [element 2] | provenance | | +| summaries.rb:95:1:95:1 | a [element] | summaries.rb:95:1:95:1 | [post] a [element] | provenance | | +| summaries.rb:95:1:95:1 | a [element] | summaries.rb:95:1:95:1 | [post] a [element] | provenance | | +| summaries.rb:96:6:96:6 | a [element] | summaries.rb:96:6:96:9 | ...[...] | provenance | | +| summaries.rb:96:6:96:6 | a [element] | summaries.rb:96:6:96:9 | ...[...] | provenance | | +| summaries.rb:97:6:97:6 | a [element] | summaries.rb:97:6:97:9 | ...[...] | provenance | | +| summaries.rb:97:6:97:6 | a [element] | summaries.rb:97:6:97:9 | ...[...] | provenance | | +| summaries.rb:98:6:98:6 | a [element 2] | summaries.rb:98:6:98:9 | ...[...] | provenance | | +| summaries.rb:98:6:98:6 | a [element 2] | summaries.rb:98:6:98:9 | ...[...] | provenance | | +| summaries.rb:98:6:98:6 | a [element] | summaries.rb:98:6:98:9 | ...[...] | provenance | | +| summaries.rb:98:6:98:6 | a [element] | summaries.rb:98:6:98:9 | ...[...] | provenance | | +| summaries.rb:99:1:99:1 | [post] a [element 2] | summaries.rb:102:6:102:6 | a [element 2] | provenance | | +| summaries.rb:99:1:99:1 | [post] a [element 2] | summaries.rb:102:6:102:6 | a [element 2] | provenance | | +| summaries.rb:99:1:99:1 | a [element 2] | summaries.rb:99:1:99:1 | [post] a [element 2] | provenance | | +| summaries.rb:99:1:99:1 | a [element 2] | summaries.rb:99:1:99:1 | [post] a [element 2] | provenance | | +| summaries.rb:102:6:102:6 | a [element 2] | summaries.rb:102:6:102:9 | ...[...] | provenance | | +| summaries.rb:102:6:102:6 | a [element 2] | summaries.rb:102:6:102:9 | ...[...] | provenance | | +| summaries.rb:103:1:103:1 | [post] d [element 3] | summaries.rb:104:1:104:1 | d [element 3] | provenance | | +| summaries.rb:103:1:103:1 | [post] d [element 3] | summaries.rb:104:1:104:1 | d [element 3] | provenance | | +| summaries.rb:103:8:103:22 | call to source | summaries.rb:103:1:103:1 | [post] d [element 3] | provenance | | +| summaries.rb:103:8:103:22 | call to source | summaries.rb:103:1:103:1 | [post] d [element 3] | provenance | | +| summaries.rb:104:1:104:1 | [post] d [element 3] | summaries.rb:108:6:108:6 | d [element 3] | provenance | | +| summaries.rb:104:1:104:1 | [post] d [element 3] | summaries.rb:108:6:108:6 | d [element 3] | provenance | | +| summaries.rb:104:1:104:1 | d [element 3] | summaries.rb:104:1:104:1 | [post] d [element 3] | provenance | | +| summaries.rb:104:1:104:1 | d [element 3] | summaries.rb:104:1:104:1 | [post] d [element 3] | provenance | | +| summaries.rb:108:6:108:6 | d [element 3] | summaries.rb:108:6:108:9 | ...[...] | provenance | | +| summaries.rb:108:6:108:6 | d [element 3] | summaries.rb:108:6:108:9 | ...[...] | provenance | | +| summaries.rb:111:1:111:1 | [post] x [@value] | summaries.rb:112:6:112:6 | x [@value] | provenance | | +| summaries.rb:111:1:111:1 | [post] x [@value] | summaries.rb:112:6:112:6 | x [@value] | provenance | | +| summaries.rb:111:13:111:26 | call to source | summaries.rb:111:1:111:1 | [post] x [@value] | provenance | | +| summaries.rb:111:13:111:26 | call to source | summaries.rb:111:1:111:1 | [post] x [@value] | provenance | | +| summaries.rb:112:6:112:6 | x [@value] | summaries.rb:112:6:112:16 | call to get_value | provenance | | +| summaries.rb:112:6:112:6 | x [@value] | summaries.rb:112:6:112:16 | call to get_value | provenance | | +| summaries.rb:122:16:122:22 | [post] tainted | summaries.rb:128:14:128:20 | tainted | provenance | | +| summaries.rb:122:16:122:22 | [post] tainted | summaries.rb:131:16:131:22 | tainted | provenance | | +| summaries.rb:122:16:122:22 | [post] tainted | summaries.rb:131:16:131:22 | tainted | provenance | | +| summaries.rb:122:16:122:22 | [post] tainted | summaries.rb:132:21:132:27 | tainted | provenance | | +| summaries.rb:122:16:122:22 | [post] tainted | summaries.rb:135:26:135:32 | tainted | provenance | | +| summaries.rb:122:16:122:22 | [post] tainted | summaries.rb:137:23:137:29 | tainted | provenance | | +| summaries.rb:122:16:122:22 | [post] tainted | summaries.rb:140:19:140:25 | tainted | provenance | | +| summaries.rb:122:16:122:22 | [post] tainted | summaries.rb:141:19:141:25 | tainted | provenance | | +| summaries.rb:122:16:122:22 | [post] tainted | summaries.rb:145:26:145:32 | tainted | provenance | | +| summaries.rb:122:16:122:22 | [post] tainted | summaries.rb:147:16:147:22 | tainted | provenance | | +| summaries.rb:122:16:122:22 | [post] tainted | summaries.rb:150:39:150:45 | tainted | provenance | | +| summaries.rb:122:16:122:22 | [post] tainted | summaries.rb:154:20:154:26 | tainted | provenance | | +| summaries.rb:122:16:122:22 | [post] tainted | summaries.rb:155:28:155:34 | tainted | provenance | | +| summaries.rb:122:16:122:22 | [post] tainted | summaries.rb:156:27:156:33 | tainted | provenance | | +| summaries.rb:122:16:122:22 | [post] tainted | summaries.rb:157:14:160:3 | do ... end [captured tainted] | provenance | | +| summaries.rb:122:16:122:22 | tainted | summaries.rb:122:16:122:22 | [post] tainted | provenance | | +| summaries.rb:122:16:122:22 | tainted | summaries.rb:122:25:122:25 | [post] y | provenance | | +| summaries.rb:122:16:122:22 | tainted | summaries.rb:122:33:122:33 | [post] z | provenance | | +| summaries.rb:122:25:122:25 | [post] y | summaries.rb:124:6:124:6 | y | provenance | | +| summaries.rb:122:33:122:33 | [post] z | summaries.rb:125:6:125:6 | z | provenance | | +| summaries.rb:128:1:128:1 | [post] x | summaries.rb:129:6:129:6 | x | provenance | | +| summaries.rb:128:14:128:20 | tainted | summaries.rb:128:1:128:1 | [post] x | provenance | | +| summaries.rb:131:16:131:22 | tainted | summaries.rb:131:1:131:23 | synthetic splat argument | provenance | | +| summaries.rb:157:14:160:3 | do ... end [captured tainted] | summaries.rb:158:15:158:21 | tainted | provenance | | +| summaries.rb:157:14:160:3 | do ... end [captured tainted] | summaries.rb:158:15:158:21 | tainted | provenance | | nodes | summaries.rb:1:11:1:36 | call to identity | semmle.label | call to identity | | summaries.rb:1:11:1:36 | call to identity | semmle.label | call to identity | diff --git a/ruby/ql/test/library-tests/frameworks/action_controller/params-flow.expected b/ruby/ql/test/library-tests/frameworks/action_controller/params-flow.expected index a0349ec9ee33..69946539384b 100644 --- a/ruby/ql/test/library-tests/frameworks/action_controller/params-flow.expected +++ b/ruby/ql/test/library-tests/frameworks/action_controller/params-flow.expected @@ -5,102 +5,102 @@ testFailures | filter_flow.rb:71:10:71:17 | call to bar | Unexpected result: hasTaintFlow= | | filter_flow.rb:87:11:87:14 | @foo | Unexpected result: hasTaintFlow= | edges -| filter_flow.rb:14:5:14:8 | [post] self [@foo] | filter_flow.rb:17:3:18:5 | self in b [@foo] | -| filter_flow.rb:14:12:14:17 | call to params | filter_flow.rb:14:12:14:23 | ...[...] | -| filter_flow.rb:14:12:14:23 | ...[...] | filter_flow.rb:14:5:14:8 | [post] self [@foo] | -| filter_flow.rb:17:3:18:5 | self in b [@foo] | filter_flow.rb:20:3:22:5 | self in c [@foo] | -| filter_flow.rb:20:3:22:5 | self in c [@foo] | filter_flow.rb:21:10:21:13 | self [@foo] | -| filter_flow.rb:21:10:21:13 | self [@foo] | filter_flow.rb:21:10:21:13 | @foo | -| filter_flow.rb:30:5:30:8 | [post] self [@foo] | filter_flow.rb:33:3:35:5 | self in b [@foo] | -| filter_flow.rb:30:12:30:17 | call to params | filter_flow.rb:30:12:30:23 | ...[...] | -| filter_flow.rb:30:12:30:23 | ...[...] | filter_flow.rb:30:5:30:8 | [post] self [@foo] | -| filter_flow.rb:33:3:35:5 | self in b [@foo] | filter_flow.rb:37:3:39:5 | self in c [@foo] | -| filter_flow.rb:37:3:39:5 | self in c [@foo] | filter_flow.rb:38:10:38:13 | self [@foo] | -| filter_flow.rb:38:10:38:13 | self [@foo] | filter_flow.rb:38:10:38:13 | @foo | -| filter_flow.rb:47:5:47:8 | [post] self [@foo] | filter_flow.rb:51:3:52:5 | self in b [@foo] | -| filter_flow.rb:47:12:47:17 | call to params | filter_flow.rb:47:12:47:23 | ...[...] | -| filter_flow.rb:47:12:47:23 | ...[...] | filter_flow.rb:47:5:47:8 | [post] self [@foo] | -| filter_flow.rb:51:3:52:5 | self in b [@foo] | filter_flow.rb:54:3:56:5 | self in c [@foo] | -| filter_flow.rb:54:3:56:5 | self in c [@foo] | filter_flow.rb:55:10:55:13 | self [@foo] | -| filter_flow.rb:55:10:55:13 | self [@foo] | filter_flow.rb:55:10:55:13 | @foo | -| filter_flow.rb:64:5:64:8 | [post] @foo [@bar] | filter_flow.rb:64:5:64:8 | [post] self [@foo, @bar] | -| filter_flow.rb:64:5:64:8 | [post] self [@foo, @bar] | filter_flow.rb:67:3:68:5 | self in b [@foo, @bar] | -| filter_flow.rb:64:16:64:21 | call to params | filter_flow.rb:64:16:64:27 | ...[...] | -| filter_flow.rb:64:16:64:27 | ...[...] | filter_flow.rb:64:5:64:8 | [post] @foo [@bar] | -| filter_flow.rb:67:3:68:5 | self in b [@foo, @bar] | filter_flow.rb:70:3:72:5 | self in c [@foo, @bar] | -| filter_flow.rb:70:3:72:5 | self in c [@foo, @bar] | filter_flow.rb:71:10:71:13 | self [@foo, @bar] | -| filter_flow.rb:71:10:71:13 | @foo [@bar] | filter_flow.rb:71:10:71:17 | call to bar | -| filter_flow.rb:71:10:71:13 | self [@foo, @bar] | filter_flow.rb:71:10:71:13 | @foo [@bar] | -| filter_flow.rb:80:5:80:8 | [post] self [@foo] | filter_flow.rb:83:3:84:5 | self in b [@foo] | -| filter_flow.rb:83:3:84:5 | self in b [@foo] | filter_flow.rb:86:3:88:5 | self in c [@foo] | -| filter_flow.rb:86:3:88:5 | self in c [@foo] | filter_flow.rb:87:11:87:14 | self [@foo] | -| filter_flow.rb:87:11:87:14 | self [@foo] | filter_flow.rb:87:11:87:14 | @foo | -| filter_flow.rb:91:5:91:8 | [post] self [@foo] | filter_flow.rb:80:5:80:8 | [post] self [@foo] | -| filter_flow.rb:91:12:91:17 | call to params | filter_flow.rb:91:12:91:23 | ...[...] | -| filter_flow.rb:91:12:91:23 | ...[...] | filter_flow.rb:91:5:91:8 | [post] self [@foo] | -| params_flow.rb:3:10:3:15 | call to params | params_flow.rb:3:10:3:19 | ...[...] | -| params_flow.rb:7:10:7:15 | call to params | params_flow.rb:7:10:7:23 | call to as_json | -| params_flow.rb:15:10:15:15 | call to params | params_flow.rb:15:10:15:33 | call to permit | -| params_flow.rb:19:10:19:15 | call to params | params_flow.rb:19:10:19:34 | call to require | -| params_flow.rb:23:10:23:15 | call to params | params_flow.rb:23:10:23:35 | call to required | -| params_flow.rb:27:10:27:15 | call to params | params_flow.rb:27:10:27:24 | call to deep_dup | -| params_flow.rb:31:10:31:15 | call to params | params_flow.rb:31:10:31:45 | call to deep_transform_keys | -| params_flow.rb:35:10:35:15 | call to params | params_flow.rb:35:10:35:46 | call to deep_transform_keys! | -| params_flow.rb:39:10:39:15 | call to params | params_flow.rb:39:10:39:48 | call to delete_if | -| params_flow.rb:43:10:43:15 | call to params | params_flow.rb:43:10:43:32 | call to extract! | -| params_flow.rb:47:10:47:15 | call to params | params_flow.rb:47:10:47:46 | call to keep_if | -| params_flow.rb:51:10:51:15 | call to params | params_flow.rb:51:10:51:45 | call to select | -| params_flow.rb:55:10:55:15 | call to params | params_flow.rb:55:10:55:46 | call to select! | -| params_flow.rb:59:10:59:15 | call to params | params_flow.rb:59:10:59:45 | call to reject | -| params_flow.rb:63:10:63:15 | call to params | params_flow.rb:63:10:63:46 | call to reject! | -| params_flow.rb:67:10:67:15 | call to params | params_flow.rb:67:10:67:20 | call to to_h | -| params_flow.rb:71:10:71:15 | call to params | params_flow.rb:71:10:71:23 | call to to_hash | -| params_flow.rb:75:10:75:15 | call to params | params_flow.rb:75:10:75:24 | call to to_query | -| params_flow.rb:79:10:79:15 | call to params | params_flow.rb:79:10:79:24 | call to to_param | -| params_flow.rb:83:10:83:15 | call to params | params_flow.rb:83:10:83:27 | call to to_unsafe_h | -| params_flow.rb:87:10:87:15 | call to params | params_flow.rb:87:10:87:30 | call to to_unsafe_hash | -| params_flow.rb:91:10:91:15 | call to params | params_flow.rb:91:10:91:40 | call to transform_keys | -| params_flow.rb:91:10:91:15 | call to params | params_flow.rb:91:10:91:40 | call to transform_keys [element] | -| params_flow.rb:91:10:91:40 | call to transform_keys [element] | params_flow.rb:91:10:91:40 | call to transform_keys | -| params_flow.rb:95:10:95:15 | call to params | params_flow.rb:95:10:95:41 | call to transform_keys! | -| params_flow.rb:99:10:99:15 | call to params | params_flow.rb:99:10:99:42 | call to transform_values | -| params_flow.rb:103:10:103:15 | call to params | params_flow.rb:103:10:103:43 | call to transform_values! | -| params_flow.rb:107:10:107:15 | call to params | params_flow.rb:107:10:107:33 | call to values_at | -| params_flow.rb:107:10:107:15 | call to params | params_flow.rb:107:10:107:33 | call to values_at [element 0] | -| params_flow.rb:107:10:107:15 | call to params | params_flow.rb:107:10:107:33 | call to values_at [element 1] | -| params_flow.rb:107:10:107:33 | call to values_at [element 0] | params_flow.rb:107:10:107:33 | call to values_at | -| params_flow.rb:107:10:107:33 | call to values_at [element 1] | params_flow.rb:107:10:107:33 | call to values_at | -| params_flow.rb:111:10:111:15 | call to params | params_flow.rb:111:10:111:29 | call to merge | -| params_flow.rb:112:10:112:29 | call to merge [splat position 0] | params_flow.rb:112:10:112:29 | call to merge | -| params_flow.rb:112:23:112:28 | call to params | params_flow.rb:112:10:112:29 | call to merge | -| params_flow.rb:112:23:112:28 | call to params | params_flow.rb:112:10:112:29 | call to merge [splat position 0] | -| params_flow.rb:116:10:116:15 | call to params | params_flow.rb:116:10:116:37 | call to reverse_merge | -| params_flow.rb:117:31:117:36 | call to params | params_flow.rb:117:10:117:37 | call to reverse_merge | -| params_flow.rb:121:10:121:15 | call to params | params_flow.rb:121:10:121:43 | call to with_defaults | -| params_flow.rb:122:31:122:36 | call to params | params_flow.rb:122:10:122:37 | call to with_defaults | -| params_flow.rb:126:10:126:15 | call to params | params_flow.rb:126:10:126:30 | call to merge! | -| params_flow.rb:127:10:127:30 | call to merge! [splat position 0] | params_flow.rb:127:10:127:30 | call to merge! | -| params_flow.rb:127:24:127:29 | call to params | params_flow.rb:127:10:127:30 | call to merge! | -| params_flow.rb:127:24:127:29 | call to params | params_flow.rb:127:10:127:30 | call to merge! [splat position 0] | -| params_flow.rb:130:5:130:5 | [post] p | params_flow.rb:131:10:131:10 | p | -| params_flow.rb:130:5:130:5 | [post] p [splat position 0] | params_flow.rb:131:10:131:10 | p | -| params_flow.rb:130:14:130:19 | call to params | params_flow.rb:130:5:130:5 | [post] p | -| params_flow.rb:130:14:130:19 | call to params | params_flow.rb:130:5:130:5 | [post] p [splat position 0] | -| params_flow.rb:135:10:135:15 | call to params | params_flow.rb:135:10:135:38 | call to reverse_merge! | -| params_flow.rb:136:32:136:37 | call to params | params_flow.rb:136:10:136:38 | call to reverse_merge! | -| params_flow.rb:139:5:139:5 | [post] p | params_flow.rb:140:10:140:10 | p | -| params_flow.rb:139:22:139:27 | call to params | params_flow.rb:139:5:139:5 | [post] p | -| params_flow.rb:144:10:144:15 | call to params | params_flow.rb:144:10:144:44 | call to with_defaults! | -| params_flow.rb:145:32:145:37 | call to params | params_flow.rb:145:10:145:38 | call to with_defaults! | -| params_flow.rb:148:5:148:5 | [post] p | params_flow.rb:149:10:149:10 | p | -| params_flow.rb:148:22:148:27 | call to params | params_flow.rb:148:5:148:5 | [post] p | -| params_flow.rb:153:10:153:15 | call to params | params_flow.rb:153:10:153:44 | call to reverse_update | -| params_flow.rb:154:32:154:37 | call to params | params_flow.rb:154:10:154:38 | call to reverse_update | -| params_flow.rb:157:5:157:5 | [post] p | params_flow.rb:158:10:158:10 | p | -| params_flow.rb:157:22:157:27 | call to params | params_flow.rb:157:5:157:5 | [post] p | -| params_flow.rb:166:10:166:15 | call to params | params_flow.rb:166:10:166:19 | ...[...] | -| params_flow.rb:172:10:172:15 | call to params | params_flow.rb:172:10:172:19 | ...[...] | -| params_flow.rb:176:10:176:15 | call to params | params_flow.rb:176:10:176:19 | ...[...] | +| filter_flow.rb:14:5:14:8 | [post] self [@foo] | filter_flow.rb:17:3:18:5 | self in b [@foo] | provenance | | +| filter_flow.rb:14:12:14:17 | call to params | filter_flow.rb:14:12:14:23 | ...[...] | provenance | | +| filter_flow.rb:14:12:14:23 | ...[...] | filter_flow.rb:14:5:14:8 | [post] self [@foo] | provenance | | +| filter_flow.rb:17:3:18:5 | self in b [@foo] | filter_flow.rb:20:3:22:5 | self in c [@foo] | provenance | | +| filter_flow.rb:20:3:22:5 | self in c [@foo] | filter_flow.rb:21:10:21:13 | self [@foo] | provenance | | +| filter_flow.rb:21:10:21:13 | self [@foo] | filter_flow.rb:21:10:21:13 | @foo | provenance | | +| filter_flow.rb:30:5:30:8 | [post] self [@foo] | filter_flow.rb:33:3:35:5 | self in b [@foo] | provenance | | +| filter_flow.rb:30:12:30:17 | call to params | filter_flow.rb:30:12:30:23 | ...[...] | provenance | | +| filter_flow.rb:30:12:30:23 | ...[...] | filter_flow.rb:30:5:30:8 | [post] self [@foo] | provenance | | +| filter_flow.rb:33:3:35:5 | self in b [@foo] | filter_flow.rb:37:3:39:5 | self in c [@foo] | provenance | | +| filter_flow.rb:37:3:39:5 | self in c [@foo] | filter_flow.rb:38:10:38:13 | self [@foo] | provenance | | +| filter_flow.rb:38:10:38:13 | self [@foo] | filter_flow.rb:38:10:38:13 | @foo | provenance | | +| filter_flow.rb:47:5:47:8 | [post] self [@foo] | filter_flow.rb:51:3:52:5 | self in b [@foo] | provenance | | +| filter_flow.rb:47:12:47:17 | call to params | filter_flow.rb:47:12:47:23 | ...[...] | provenance | | +| filter_flow.rb:47:12:47:23 | ...[...] | filter_flow.rb:47:5:47:8 | [post] self [@foo] | provenance | | +| filter_flow.rb:51:3:52:5 | self in b [@foo] | filter_flow.rb:54:3:56:5 | self in c [@foo] | provenance | | +| filter_flow.rb:54:3:56:5 | self in c [@foo] | filter_flow.rb:55:10:55:13 | self [@foo] | provenance | | +| filter_flow.rb:55:10:55:13 | self [@foo] | filter_flow.rb:55:10:55:13 | @foo | provenance | | +| filter_flow.rb:64:5:64:8 | [post] @foo [@bar] | filter_flow.rb:64:5:64:8 | [post] self [@foo, @bar] | provenance | | +| filter_flow.rb:64:5:64:8 | [post] self [@foo, @bar] | filter_flow.rb:67:3:68:5 | self in b [@foo, @bar] | provenance | | +| filter_flow.rb:64:16:64:21 | call to params | filter_flow.rb:64:16:64:27 | ...[...] | provenance | | +| filter_flow.rb:64:16:64:27 | ...[...] | filter_flow.rb:64:5:64:8 | [post] @foo [@bar] | provenance | | +| filter_flow.rb:67:3:68:5 | self in b [@foo, @bar] | filter_flow.rb:70:3:72:5 | self in c [@foo, @bar] | provenance | | +| filter_flow.rb:70:3:72:5 | self in c [@foo, @bar] | filter_flow.rb:71:10:71:13 | self [@foo, @bar] | provenance | | +| filter_flow.rb:71:10:71:13 | @foo [@bar] | filter_flow.rb:71:10:71:17 | call to bar | provenance | | +| filter_flow.rb:71:10:71:13 | self [@foo, @bar] | filter_flow.rb:71:10:71:13 | @foo [@bar] | provenance | | +| filter_flow.rb:80:5:80:8 | [post] self [@foo] | filter_flow.rb:83:3:84:5 | self in b [@foo] | provenance | | +| filter_flow.rb:83:3:84:5 | self in b [@foo] | filter_flow.rb:86:3:88:5 | self in c [@foo] | provenance | | +| filter_flow.rb:86:3:88:5 | self in c [@foo] | filter_flow.rb:87:11:87:14 | self [@foo] | provenance | | +| filter_flow.rb:87:11:87:14 | self [@foo] | filter_flow.rb:87:11:87:14 | @foo | provenance | | +| filter_flow.rb:91:5:91:8 | [post] self [@foo] | filter_flow.rb:80:5:80:8 | [post] self [@foo] | provenance | | +| filter_flow.rb:91:12:91:17 | call to params | filter_flow.rb:91:12:91:23 | ...[...] | provenance | | +| filter_flow.rb:91:12:91:23 | ...[...] | filter_flow.rb:91:5:91:8 | [post] self [@foo] | provenance | | +| params_flow.rb:3:10:3:15 | call to params | params_flow.rb:3:10:3:19 | ...[...] | provenance | | +| params_flow.rb:7:10:7:15 | call to params | params_flow.rb:7:10:7:23 | call to as_json | provenance | | +| params_flow.rb:15:10:15:15 | call to params | params_flow.rb:15:10:15:33 | call to permit | provenance | | +| params_flow.rb:19:10:19:15 | call to params | params_flow.rb:19:10:19:34 | call to require | provenance | | +| params_flow.rb:23:10:23:15 | call to params | params_flow.rb:23:10:23:35 | call to required | provenance | | +| params_flow.rb:27:10:27:15 | call to params | params_flow.rb:27:10:27:24 | call to deep_dup | provenance | | +| params_flow.rb:31:10:31:15 | call to params | params_flow.rb:31:10:31:45 | call to deep_transform_keys | provenance | | +| params_flow.rb:35:10:35:15 | call to params | params_flow.rb:35:10:35:46 | call to deep_transform_keys! | provenance | | +| params_flow.rb:39:10:39:15 | call to params | params_flow.rb:39:10:39:48 | call to delete_if | provenance | | +| params_flow.rb:43:10:43:15 | call to params | params_flow.rb:43:10:43:32 | call to extract! | provenance | | +| params_flow.rb:47:10:47:15 | call to params | params_flow.rb:47:10:47:46 | call to keep_if | provenance | | +| params_flow.rb:51:10:51:15 | call to params | params_flow.rb:51:10:51:45 | call to select | provenance | | +| params_flow.rb:55:10:55:15 | call to params | params_flow.rb:55:10:55:46 | call to select! | provenance | | +| params_flow.rb:59:10:59:15 | call to params | params_flow.rb:59:10:59:45 | call to reject | provenance | | +| params_flow.rb:63:10:63:15 | call to params | params_flow.rb:63:10:63:46 | call to reject! | provenance | | +| params_flow.rb:67:10:67:15 | call to params | params_flow.rb:67:10:67:20 | call to to_h | provenance | | +| params_flow.rb:71:10:71:15 | call to params | params_flow.rb:71:10:71:23 | call to to_hash | provenance | | +| params_flow.rb:75:10:75:15 | call to params | params_flow.rb:75:10:75:24 | call to to_query | provenance | | +| params_flow.rb:79:10:79:15 | call to params | params_flow.rb:79:10:79:24 | call to to_param | provenance | | +| params_flow.rb:83:10:83:15 | call to params | params_flow.rb:83:10:83:27 | call to to_unsafe_h | provenance | | +| params_flow.rb:87:10:87:15 | call to params | params_flow.rb:87:10:87:30 | call to to_unsafe_hash | provenance | | +| params_flow.rb:91:10:91:15 | call to params | params_flow.rb:91:10:91:40 | call to transform_keys | provenance | | +| params_flow.rb:91:10:91:15 | call to params | params_flow.rb:91:10:91:40 | call to transform_keys [element] | provenance | | +| params_flow.rb:91:10:91:40 | call to transform_keys [element] | params_flow.rb:91:10:91:40 | call to transform_keys | provenance | | +| params_flow.rb:95:10:95:15 | call to params | params_flow.rb:95:10:95:41 | call to transform_keys! | provenance | | +| params_flow.rb:99:10:99:15 | call to params | params_flow.rb:99:10:99:42 | call to transform_values | provenance | | +| params_flow.rb:103:10:103:15 | call to params | params_flow.rb:103:10:103:43 | call to transform_values! | provenance | | +| params_flow.rb:107:10:107:15 | call to params | params_flow.rb:107:10:107:33 | call to values_at | provenance | | +| params_flow.rb:107:10:107:15 | call to params | params_flow.rb:107:10:107:33 | call to values_at [element 0] | provenance | | +| params_flow.rb:107:10:107:15 | call to params | params_flow.rb:107:10:107:33 | call to values_at [element 1] | provenance | | +| params_flow.rb:107:10:107:33 | call to values_at [element 0] | params_flow.rb:107:10:107:33 | call to values_at | provenance | | +| params_flow.rb:107:10:107:33 | call to values_at [element 1] | params_flow.rb:107:10:107:33 | call to values_at | provenance | | +| params_flow.rb:111:10:111:15 | call to params | params_flow.rb:111:10:111:29 | call to merge | provenance | | +| params_flow.rb:112:10:112:29 | call to merge [splat position 0] | params_flow.rb:112:10:112:29 | call to merge | provenance | | +| params_flow.rb:112:23:112:28 | call to params | params_flow.rb:112:10:112:29 | call to merge | provenance | | +| params_flow.rb:112:23:112:28 | call to params | params_flow.rb:112:10:112:29 | call to merge [splat position 0] | provenance | | +| params_flow.rb:116:10:116:15 | call to params | params_flow.rb:116:10:116:37 | call to reverse_merge | provenance | | +| params_flow.rb:117:31:117:36 | call to params | params_flow.rb:117:10:117:37 | call to reverse_merge | provenance | | +| params_flow.rb:121:10:121:15 | call to params | params_flow.rb:121:10:121:43 | call to with_defaults | provenance | | +| params_flow.rb:122:31:122:36 | call to params | params_flow.rb:122:10:122:37 | call to with_defaults | provenance | | +| params_flow.rb:126:10:126:15 | call to params | params_flow.rb:126:10:126:30 | call to merge! | provenance | | +| params_flow.rb:127:10:127:30 | call to merge! [splat position 0] | params_flow.rb:127:10:127:30 | call to merge! | provenance | | +| params_flow.rb:127:24:127:29 | call to params | params_flow.rb:127:10:127:30 | call to merge! | provenance | | +| params_flow.rb:127:24:127:29 | call to params | params_flow.rb:127:10:127:30 | call to merge! [splat position 0] | provenance | | +| params_flow.rb:130:5:130:5 | [post] p | params_flow.rb:131:10:131:10 | p | provenance | | +| params_flow.rb:130:5:130:5 | [post] p [splat position 0] | params_flow.rb:131:10:131:10 | p | provenance | | +| params_flow.rb:130:14:130:19 | call to params | params_flow.rb:130:5:130:5 | [post] p | provenance | | +| params_flow.rb:130:14:130:19 | call to params | params_flow.rb:130:5:130:5 | [post] p [splat position 0] | provenance | | +| params_flow.rb:135:10:135:15 | call to params | params_flow.rb:135:10:135:38 | call to reverse_merge! | provenance | | +| params_flow.rb:136:32:136:37 | call to params | params_flow.rb:136:10:136:38 | call to reverse_merge! | provenance | | +| params_flow.rb:139:5:139:5 | [post] p | params_flow.rb:140:10:140:10 | p | provenance | | +| params_flow.rb:139:22:139:27 | call to params | params_flow.rb:139:5:139:5 | [post] p | provenance | | +| params_flow.rb:144:10:144:15 | call to params | params_flow.rb:144:10:144:44 | call to with_defaults! | provenance | | +| params_flow.rb:145:32:145:37 | call to params | params_flow.rb:145:10:145:38 | call to with_defaults! | provenance | | +| params_flow.rb:148:5:148:5 | [post] p | params_flow.rb:149:10:149:10 | p | provenance | | +| params_flow.rb:148:22:148:27 | call to params | params_flow.rb:148:5:148:5 | [post] p | provenance | | +| params_flow.rb:153:10:153:15 | call to params | params_flow.rb:153:10:153:44 | call to reverse_update | provenance | | +| params_flow.rb:154:32:154:37 | call to params | params_flow.rb:154:10:154:38 | call to reverse_update | provenance | | +| params_flow.rb:157:5:157:5 | [post] p | params_flow.rb:158:10:158:10 | p | provenance | | +| params_flow.rb:157:22:157:27 | call to params | params_flow.rb:157:5:157:5 | [post] p | provenance | | +| params_flow.rb:166:10:166:15 | call to params | params_flow.rb:166:10:166:19 | ...[...] | provenance | | +| params_flow.rb:172:10:172:15 | call to params | params_flow.rb:172:10:172:19 | ...[...] | provenance | | +| params_flow.rb:176:10:176:15 | call to params | params_flow.rb:176:10:176:19 | ...[...] | provenance | | nodes | filter_flow.rb:14:5:14:8 | [post] self [@foo] | semmle.label | [post] self [@foo] | | filter_flow.rb:14:12:14:17 | call to params | semmle.label | call to params | diff --git a/ruby/ql/test/library-tests/frameworks/action_mailer/params-flow.expected b/ruby/ql/test/library-tests/frameworks/action_mailer/params-flow.expected index 43d262663521..e69e4a8ebfde 100644 --- a/ruby/ql/test/library-tests/frameworks/action_mailer/params-flow.expected +++ b/ruby/ql/test/library-tests/frameworks/action_mailer/params-flow.expected @@ -1,6 +1,6 @@ testFailures edges -| mailer.rb:3:10:3:15 | call to params | mailer.rb:3:10:3:21 | ...[...] | +| mailer.rb:3:10:3:15 | call to params | mailer.rb:3:10:3:21 | ...[...] | provenance | | nodes | mailer.rb:3:10:3:15 | call to params | semmle.label | call to params | | mailer.rb:3:10:3:21 | ...[...] | semmle.label | ...[...] | diff --git a/ruby/ql/test/library-tests/frameworks/active_support/ActiveSupportDataFlow.expected b/ruby/ql/test/library-tests/frameworks/active_support/ActiveSupportDataFlow.expected index b4178c9bac50..4eadde7fa544 100644 --- a/ruby/ql/test/library-tests/frameworks/active_support/ActiveSupportDataFlow.expected +++ b/ruby/ql/test/library-tests/frameworks/active_support/ActiveSupportDataFlow.expected @@ -1,208 +1,208 @@ testFailures | hash_extensions.rb:126:10:126:19 | call to sole | Unexpected result: hasValueFlow=b | edges -| active_support.rb:180:5:180:5 | x [element 0] | active_support.rb:181:9:181:9 | x [element 0] | -| active_support.rb:180:10:180:17 | call to source | active_support.rb:180:5:180:5 | x [element 0] | -| active_support.rb:181:5:181:5 | y [element] | active_support.rb:182:10:182:10 | y [element] | -| active_support.rb:181:9:181:9 | x [element 0] | active_support.rb:181:9:181:23 | call to compact_blank [element] | -| active_support.rb:181:9:181:23 | call to compact_blank [element] | active_support.rb:181:5:181:5 | y [element] | -| active_support.rb:182:10:182:10 | y [element] | active_support.rb:182:10:182:13 | ...[...] | -| active_support.rb:186:5:186:5 | x [element 0] | active_support.rb:187:9:187:9 | x [element 0] | -| active_support.rb:186:10:186:18 | call to source | active_support.rb:186:5:186:5 | x [element 0] | -| active_support.rb:187:5:187:5 | y [element] | active_support.rb:188:10:188:10 | y [element] | -| active_support.rb:187:9:187:9 | x [element 0] | active_support.rb:187:9:187:21 | call to excluding [element] | -| active_support.rb:187:9:187:21 | call to excluding [element] | active_support.rb:187:5:187:5 | y [element] | -| active_support.rb:188:10:188:10 | y [element] | active_support.rb:188:10:188:13 | ...[...] | -| active_support.rb:192:5:192:5 | x [element 0] | active_support.rb:193:9:193:9 | x [element 0] | -| active_support.rb:192:10:192:18 | call to source | active_support.rb:192:5:192:5 | x [element 0] | -| active_support.rb:193:5:193:5 | y [element] | active_support.rb:194:10:194:10 | y [element] | -| active_support.rb:193:9:193:9 | x [element 0] | active_support.rb:193:9:193:19 | call to without [element] | -| active_support.rb:193:9:193:19 | call to without [element] | active_support.rb:193:5:193:5 | y [element] | -| active_support.rb:194:10:194:10 | y [element] | active_support.rb:194:10:194:13 | ...[...] | -| active_support.rb:198:5:198:5 | x [element 0] | active_support.rb:199:9:199:9 | x [element 0] | -| active_support.rb:198:10:198:18 | call to source | active_support.rb:198:5:198:5 | x [element 0] | -| active_support.rb:199:5:199:5 | y [element] | active_support.rb:200:10:200:10 | y [element] | -| active_support.rb:199:9:199:9 | x [element 0] | active_support.rb:199:9:199:37 | call to in_order_of [element] | -| active_support.rb:199:9:199:37 | call to in_order_of [element] | active_support.rb:199:5:199:5 | y [element] | -| active_support.rb:200:10:200:10 | y [element] | active_support.rb:200:10:200:13 | ...[...] | -| active_support.rb:204:5:204:5 | a [element 0] | active_support.rb:205:9:205:9 | a [element 0] | -| active_support.rb:204:5:204:5 | a [element 0] | active_support.rb:206:10:206:10 | a [element 0] | -| active_support.rb:204:10:204:18 | call to source | active_support.rb:204:5:204:5 | a [element 0] | -| active_support.rb:205:5:205:5 | b [element 0] | active_support.rb:208:10:208:10 | b [element 0] | -| active_support.rb:205:5:205:5 | b [element] | active_support.rb:208:10:208:10 | b [element] | -| active_support.rb:205:5:205:5 | b [element] | active_support.rb:209:10:209:10 | b [element] | -| active_support.rb:205:5:205:5 | b [element] | active_support.rb:210:10:210:10 | b [element] | -| active_support.rb:205:5:205:5 | b [element] | active_support.rb:211:10:211:10 | b [element] | -| active_support.rb:205:9:205:9 | a [element 0] | active_support.rb:205:9:205:41 | call to including [element 0] | -| active_support.rb:205:9:205:41 | call to including [element 0] | active_support.rb:205:5:205:5 | b [element 0] | -| active_support.rb:205:9:205:41 | call to including [element] | active_support.rb:205:5:205:5 | b [element] | -| active_support.rb:205:21:205:29 | call to source | active_support.rb:205:9:205:41 | call to including [element] | -| active_support.rb:205:32:205:40 | call to source | active_support.rb:205:9:205:41 | call to including [element] | -| active_support.rb:206:10:206:10 | a [element 0] | active_support.rb:206:10:206:13 | ...[...] | -| active_support.rb:208:10:208:10 | b [element 0] | active_support.rb:208:10:208:13 | ...[...] | -| active_support.rb:208:10:208:10 | b [element] | active_support.rb:208:10:208:13 | ...[...] | -| active_support.rb:209:10:209:10 | b [element] | active_support.rb:209:10:209:13 | ...[...] | -| active_support.rb:210:10:210:10 | b [element] | active_support.rb:210:10:210:13 | ...[...] | -| active_support.rb:211:10:211:10 | b [element] | active_support.rb:211:10:211:13 | ...[...] | -| active_support.rb:282:3:282:3 | x | active_support.rb:283:8:283:8 | x | -| active_support.rb:282:7:282:16 | call to source | active_support.rb:282:3:282:3 | x | -| active_support.rb:283:8:283:8 | x | active_support.rb:283:8:283:17 | call to presence | -| active_support.rb:285:3:285:3 | y | active_support.rb:286:8:286:8 | y | -| active_support.rb:285:7:285:16 | call to source | active_support.rb:285:3:285:3 | y | -| active_support.rb:286:8:286:8 | y | active_support.rb:286:8:286:17 | call to presence | -| active_support.rb:290:3:290:3 | x | active_support.rb:291:8:291:8 | x | -| active_support.rb:290:7:290:16 | call to source | active_support.rb:290:3:290:3 | x | -| active_support.rb:291:8:291:8 | x | active_support.rb:291:8:291:17 | call to deep_dup | -| hash_extensions.rb:2:5:2:5 | h [element :a] | hash_extensions.rb:3:9:3:9 | h [element :a] | -| hash_extensions.rb:2:14:2:24 | call to source | hash_extensions.rb:2:5:2:5 | h [element :a] | -| hash_extensions.rb:3:5:3:5 | x [element] | hash_extensions.rb:4:10:4:10 | x [element] | -| hash_extensions.rb:3:9:3:9 | h [element :a] | hash_extensions.rb:3:9:3:24 | call to stringify_keys [element] | -| hash_extensions.rb:3:9:3:24 | call to stringify_keys [element] | hash_extensions.rb:3:5:3:5 | x [element] | -| hash_extensions.rb:4:10:4:10 | x [element] | hash_extensions.rb:4:10:4:14 | ...[...] | -| hash_extensions.rb:10:5:10:5 | h [element :a] | hash_extensions.rb:11:9:11:9 | h [element :a] | -| hash_extensions.rb:10:14:10:24 | call to source | hash_extensions.rb:10:5:10:5 | h [element :a] | -| hash_extensions.rb:11:5:11:5 | x [element] | hash_extensions.rb:12:10:12:10 | x [element] | -| hash_extensions.rb:11:9:11:9 | h [element :a] | hash_extensions.rb:11:9:11:20 | call to to_options [element] | -| hash_extensions.rb:11:9:11:20 | call to to_options [element] | hash_extensions.rb:11:5:11:5 | x [element] | -| hash_extensions.rb:12:10:12:10 | x [element] | hash_extensions.rb:12:10:12:14 | ...[...] | -| hash_extensions.rb:18:5:18:5 | h [element :a] | hash_extensions.rb:19:9:19:9 | h [element :a] | -| hash_extensions.rb:18:14:18:24 | call to source | hash_extensions.rb:18:5:18:5 | h [element :a] | -| hash_extensions.rb:19:5:19:5 | x [element] | hash_extensions.rb:20:10:20:10 | x [element] | -| hash_extensions.rb:19:9:19:9 | h [element :a] | hash_extensions.rb:19:9:19:24 | call to symbolize_keys [element] | -| hash_extensions.rb:19:9:19:24 | call to symbolize_keys [element] | hash_extensions.rb:19:5:19:5 | x [element] | -| hash_extensions.rb:20:10:20:10 | x [element] | hash_extensions.rb:20:10:20:14 | ...[...] | -| hash_extensions.rb:26:5:26:5 | h [element :a] | hash_extensions.rb:27:9:27:9 | h [element :a] | -| hash_extensions.rb:26:14:26:24 | call to source | hash_extensions.rb:26:5:26:5 | h [element :a] | -| hash_extensions.rb:27:5:27:5 | x [element] | hash_extensions.rb:28:10:28:10 | x [element] | -| hash_extensions.rb:27:9:27:9 | h [element :a] | hash_extensions.rb:27:9:27:29 | call to deep_stringify_keys [element] | -| hash_extensions.rb:27:9:27:29 | call to deep_stringify_keys [element] | hash_extensions.rb:27:5:27:5 | x [element] | -| hash_extensions.rb:28:10:28:10 | x [element] | hash_extensions.rb:28:10:28:14 | ...[...] | -| hash_extensions.rb:34:5:34:5 | h [element :a] | hash_extensions.rb:35:9:35:9 | h [element :a] | -| hash_extensions.rb:34:14:34:24 | call to source | hash_extensions.rb:34:5:34:5 | h [element :a] | -| hash_extensions.rb:35:5:35:5 | x [element] | hash_extensions.rb:36:10:36:10 | x [element] | -| hash_extensions.rb:35:9:35:9 | h [element :a] | hash_extensions.rb:35:9:35:29 | call to deep_symbolize_keys [element] | -| hash_extensions.rb:35:9:35:29 | call to deep_symbolize_keys [element] | hash_extensions.rb:35:5:35:5 | x [element] | -| hash_extensions.rb:36:10:36:10 | x [element] | hash_extensions.rb:36:10:36:14 | ...[...] | -| hash_extensions.rb:42:5:42:5 | h [element :a] | hash_extensions.rb:43:9:43:9 | h [element :a] | -| hash_extensions.rb:42:14:42:24 | call to source | hash_extensions.rb:42:5:42:5 | h [element :a] | -| hash_extensions.rb:43:5:43:5 | x [element] | hash_extensions.rb:44:10:44:10 | x [element] | -| hash_extensions.rb:43:9:43:9 | h [element :a] | hash_extensions.rb:43:9:43:33 | call to with_indifferent_access [element] | -| hash_extensions.rb:43:9:43:33 | call to with_indifferent_access [element] | hash_extensions.rb:43:5:43:5 | x [element] | -| hash_extensions.rb:44:10:44:10 | x [element] | hash_extensions.rb:44:10:44:14 | ...[...] | -| hash_extensions.rb:50:5:50:5 | h [element :a] | hash_extensions.rb:51:9:51:9 | h [element :a] | -| hash_extensions.rb:50:5:50:5 | h [element :b] | hash_extensions.rb:51:9:51:9 | h [element :b] | -| hash_extensions.rb:50:5:50:5 | h [element :d] | hash_extensions.rb:51:9:51:9 | h [element :d] | -| hash_extensions.rb:50:14:50:23 | call to taint | hash_extensions.rb:50:5:50:5 | h [element :a] | -| hash_extensions.rb:50:29:50:38 | call to taint | hash_extensions.rb:50:5:50:5 | h [element :b] | -| hash_extensions.rb:50:52:50:61 | call to taint | hash_extensions.rb:50:5:50:5 | h [element :d] | -| hash_extensions.rb:51:5:51:5 | x [element :a] | hash_extensions.rb:58:10:58:10 | x [element :a] | -| hash_extensions.rb:51:5:51:5 | x [element :b] | hash_extensions.rb:59:10:59:10 | x [element :b] | -| hash_extensions.rb:51:9:51:9 | [post] h [element :d] | hash_extensions.rb:56:10:56:10 | h [element :d] | -| hash_extensions.rb:51:9:51:9 | h [element :a] | hash_extensions.rb:51:9:51:29 | call to extract! [element :a] | -| hash_extensions.rb:51:9:51:9 | h [element :b] | hash_extensions.rb:51:9:51:29 | call to extract! [element :b] | -| hash_extensions.rb:51:9:51:9 | h [element :d] | hash_extensions.rb:51:9:51:9 | [post] h [element :d] | -| hash_extensions.rb:51:9:51:29 | call to extract! [element :a] | hash_extensions.rb:51:5:51:5 | x [element :a] | -| hash_extensions.rb:51:9:51:29 | call to extract! [element :b] | hash_extensions.rb:51:5:51:5 | x [element :b] | -| hash_extensions.rb:56:10:56:10 | h [element :d] | hash_extensions.rb:56:10:56:14 | ...[...] | -| hash_extensions.rb:58:10:58:10 | x [element :a] | hash_extensions.rb:58:10:58:14 | ...[...] | -| hash_extensions.rb:59:10:59:10 | x [element :b] | hash_extensions.rb:59:10:59:14 | ...[...] | -| hash_extensions.rb:67:5:67:10 | values [element 0] | hash_extensions.rb:68:9:68:14 | values [element 0] | -| hash_extensions.rb:67:5:67:10 | values [element 1] | hash_extensions.rb:68:9:68:14 | values [element 1] | -| hash_extensions.rb:67:5:67:10 | values [element 2] | hash_extensions.rb:68:9:68:14 | values [element 2] | -| hash_extensions.rb:67:15:67:25 | call to source | hash_extensions.rb:67:5:67:10 | values [element 0] | -| hash_extensions.rb:67:28:67:38 | call to source | hash_extensions.rb:67:5:67:10 | values [element 1] | -| hash_extensions.rb:67:41:67:51 | call to source | hash_extensions.rb:67:5:67:10 | values [element 2] | -| hash_extensions.rb:68:5:68:5 | h [element] | hash_extensions.rb:73:10:73:10 | h [element] | -| hash_extensions.rb:68:5:68:5 | h [element] | hash_extensions.rb:74:10:74:10 | h [element] | -| hash_extensions.rb:68:9:68:14 | values [element 0] | hash_extensions.rb:68:9:71:7 | call to index_by [element] | -| hash_extensions.rb:68:9:68:14 | values [element 0] | hash_extensions.rb:68:29:68:33 | value | -| hash_extensions.rb:68:9:68:14 | values [element 1] | hash_extensions.rb:68:9:71:7 | call to index_by [element] | -| hash_extensions.rb:68:9:68:14 | values [element 1] | hash_extensions.rb:68:29:68:33 | value | -| hash_extensions.rb:68:9:68:14 | values [element 2] | hash_extensions.rb:68:9:71:7 | call to index_by [element] | -| hash_extensions.rb:68:9:68:14 | values [element 2] | hash_extensions.rb:68:29:68:33 | value | -| hash_extensions.rb:68:9:71:7 | call to index_by [element] | hash_extensions.rb:68:5:68:5 | h [element] | -| hash_extensions.rb:68:29:68:33 | value | hash_extensions.rb:69:14:69:18 | value | -| hash_extensions.rb:73:10:73:10 | h [element] | hash_extensions.rb:73:10:73:16 | ...[...] | -| hash_extensions.rb:74:10:74:10 | h [element] | hash_extensions.rb:74:10:74:16 | ...[...] | -| hash_extensions.rb:80:5:80:10 | values [element 0] | hash_extensions.rb:81:9:81:14 | values [element 0] | -| hash_extensions.rb:80:5:80:10 | values [element 1] | hash_extensions.rb:81:9:81:14 | values [element 1] | -| hash_extensions.rb:80:5:80:10 | values [element 2] | hash_extensions.rb:81:9:81:14 | values [element 2] | -| hash_extensions.rb:80:15:80:25 | call to source | hash_extensions.rb:80:5:80:10 | values [element 0] | -| hash_extensions.rb:80:28:80:38 | call to source | hash_extensions.rb:80:5:80:10 | values [element 1] | -| hash_extensions.rb:80:41:80:51 | call to source | hash_extensions.rb:80:5:80:10 | values [element 2] | -| hash_extensions.rb:81:5:81:5 | h [element] | hash_extensions.rb:86:10:86:10 | h [element] | -| hash_extensions.rb:81:5:81:5 | h [element] | hash_extensions.rb:87:10:87:10 | h [element] | -| hash_extensions.rb:81:9:81:14 | values [element 0] | hash_extensions.rb:81:31:81:33 | key | -| hash_extensions.rb:81:9:81:14 | values [element 1] | hash_extensions.rb:81:31:81:33 | key | -| hash_extensions.rb:81:9:81:14 | values [element 2] | hash_extensions.rb:81:31:81:33 | key | -| hash_extensions.rb:81:9:84:7 | call to index_with [element] | hash_extensions.rb:81:5:81:5 | h [element] | -| hash_extensions.rb:81:31:81:33 | key | hash_extensions.rb:82:14:82:16 | key | -| hash_extensions.rb:83:9:83:19 | call to source | hash_extensions.rb:81:9:84:7 | call to index_with [element] | -| hash_extensions.rb:86:10:86:10 | h [element] | hash_extensions.rb:86:10:86:16 | ...[...] | -| hash_extensions.rb:87:10:87:10 | h [element] | hash_extensions.rb:87:10:87:16 | ...[...] | -| hash_extensions.rb:89:5:89:5 | j [element] | hash_extensions.rb:91:10:91:10 | j [element] | -| hash_extensions.rb:89:5:89:5 | j [element] | hash_extensions.rb:92:10:92:10 | j [element] | -| hash_extensions.rb:89:9:89:38 | call to index_with [element] | hash_extensions.rb:89:5:89:5 | j [element] | -| hash_extensions.rb:89:27:89:37 | call to source | hash_extensions.rb:89:9:89:38 | call to index_with [element] | -| hash_extensions.rb:91:10:91:10 | j [element] | hash_extensions.rb:91:10:91:16 | ...[...] | -| hash_extensions.rb:92:10:92:10 | j [element] | hash_extensions.rb:92:10:92:16 | ...[...] | -| hash_extensions.rb:98:5:98:10 | values [element 0, element :id] | hash_extensions.rb:99:10:99:15 | values [element 0, element :id] | -| hash_extensions.rb:98:5:98:10 | values [element 0, element :id] | hash_extensions.rb:101:10:101:15 | values [element 0, element :id] | -| hash_extensions.rb:98:5:98:10 | values [element 0, element :id] | hash_extensions.rb:104:10:104:15 | values [element 0, element :id] | -| hash_extensions.rb:98:5:98:10 | values [element 0, element :name] | hash_extensions.rb:100:10:100:15 | values [element 0, element :name] | -| hash_extensions.rb:98:5:98:10 | values [element 0, element :name] | hash_extensions.rb:102:10:102:15 | values [element 0, element :name] | -| hash_extensions.rb:98:5:98:10 | values [element 0, element :name] | hash_extensions.rb:103:10:103:15 | values [element 0, element :name] | -| hash_extensions.rb:98:21:98:31 | call to source | hash_extensions.rb:98:5:98:10 | values [element 0, element :id] | -| hash_extensions.rb:98:40:98:54 | call to source | hash_extensions.rb:98:5:98:10 | values [element 0, element :name] | -| hash_extensions.rb:99:10:99:15 | values [element 0, element :id] | hash_extensions.rb:99:10:99:25 | call to pick | -| hash_extensions.rb:100:10:100:15 | values [element 0, element :name] | hash_extensions.rb:100:10:100:27 | call to pick | -| hash_extensions.rb:101:10:101:15 | values [element 0, element :id] | hash_extensions.rb:101:10:101:32 | call to pick [element 0] | -| hash_extensions.rb:101:10:101:32 | call to pick [element 0] | hash_extensions.rb:101:10:101:35 | ...[...] | -| hash_extensions.rb:102:10:102:15 | values [element 0, element :name] | hash_extensions.rb:102:10:102:32 | call to pick [element 1] | -| hash_extensions.rb:102:10:102:32 | call to pick [element 1] | hash_extensions.rb:102:10:102:35 | ...[...] | -| hash_extensions.rb:103:10:103:15 | values [element 0, element :name] | hash_extensions.rb:103:10:103:32 | call to pick [element 0] | -| hash_extensions.rb:103:10:103:32 | call to pick [element 0] | hash_extensions.rb:103:10:103:35 | ...[...] | -| hash_extensions.rb:104:10:104:15 | values [element 0, element :id] | hash_extensions.rb:104:10:104:32 | call to pick [element 1] | -| hash_extensions.rb:104:10:104:32 | call to pick [element 1] | hash_extensions.rb:104:10:104:35 | ...[...] | -| hash_extensions.rb:110:5:110:10 | values [element 0, element :id] | hash_extensions.rb:112:10:112:15 | values [element 0, element :id] | -| hash_extensions.rb:110:5:110:10 | values [element 0, element :id] | hash_extensions.rb:115:10:115:15 | values [element 0, element :id] | -| hash_extensions.rb:110:5:110:10 | values [element 0, element :name] | hash_extensions.rb:111:10:111:15 | values [element 0, element :name] | -| hash_extensions.rb:110:5:110:10 | values [element 0, element :name] | hash_extensions.rb:113:10:113:15 | values [element 0, element :name] | -| hash_extensions.rb:110:5:110:10 | values [element 0, element :name] | hash_extensions.rb:114:10:114:15 | values [element 0, element :name] | -| hash_extensions.rb:110:5:110:10 | values [element 1, element :id] | hash_extensions.rb:112:10:112:15 | values [element 1, element :id] | -| hash_extensions.rb:110:5:110:10 | values [element 1, element :id] | hash_extensions.rb:115:10:115:15 | values [element 1, element :id] | -| hash_extensions.rb:110:5:110:10 | values [element 1, element :name] | hash_extensions.rb:111:10:111:15 | values [element 1, element :name] | -| hash_extensions.rb:110:5:110:10 | values [element 1, element :name] | hash_extensions.rb:113:10:113:15 | values [element 1, element :name] | -| hash_extensions.rb:110:5:110:10 | values [element 1, element :name] | hash_extensions.rb:114:10:114:15 | values [element 1, element :name] | -| hash_extensions.rb:110:21:110:31 | call to source | hash_extensions.rb:110:5:110:10 | values [element 0, element :id] | -| hash_extensions.rb:110:40:110:54 | call to source | hash_extensions.rb:110:5:110:10 | values [element 0, element :name] | -| hash_extensions.rb:110:65:110:75 | call to source | hash_extensions.rb:110:5:110:10 | values [element 1, element :id] | -| hash_extensions.rb:110:84:110:99 | call to source | hash_extensions.rb:110:5:110:10 | values [element 1, element :name] | -| hash_extensions.rb:111:10:111:15 | values [element 0, element :name] | hash_extensions.rb:111:10:111:28 | call to pluck [element] | -| hash_extensions.rb:111:10:111:15 | values [element 1, element :name] | hash_extensions.rb:111:10:111:28 | call to pluck [element] | -| hash_extensions.rb:111:10:111:28 | call to pluck [element] | hash_extensions.rb:111:10:111:31 | ...[...] | -| hash_extensions.rb:112:10:112:15 | values [element 0, element :id] | hash_extensions.rb:112:10:112:33 | call to pluck [element, element 0] | -| hash_extensions.rb:112:10:112:15 | values [element 1, element :id] | hash_extensions.rb:112:10:112:33 | call to pluck [element, element 0] | -| hash_extensions.rb:112:10:112:33 | call to pluck [element, element 0] | hash_extensions.rb:112:10:112:36 | ...[...] [element 0] | -| hash_extensions.rb:112:10:112:36 | ...[...] [element 0] | hash_extensions.rb:112:10:112:39 | ...[...] | -| hash_extensions.rb:113:10:113:15 | values [element 0, element :name] | hash_extensions.rb:113:10:113:33 | call to pluck [element, element 1] | -| hash_extensions.rb:113:10:113:15 | values [element 1, element :name] | hash_extensions.rb:113:10:113:33 | call to pluck [element, element 1] | -| hash_extensions.rb:113:10:113:33 | call to pluck [element, element 1] | hash_extensions.rb:113:10:113:36 | ...[...] [element 1] | -| hash_extensions.rb:113:10:113:36 | ...[...] [element 1] | hash_extensions.rb:113:10:113:39 | ...[...] | -| hash_extensions.rb:114:10:114:15 | values [element 0, element :name] | hash_extensions.rb:114:10:114:33 | call to pluck [element, element 0] | -| hash_extensions.rb:114:10:114:15 | values [element 1, element :name] | hash_extensions.rb:114:10:114:33 | call to pluck [element, element 0] | -| hash_extensions.rb:114:10:114:33 | call to pluck [element, element 0] | hash_extensions.rb:114:10:114:36 | ...[...] [element 0] | -| hash_extensions.rb:114:10:114:36 | ...[...] [element 0] | hash_extensions.rb:114:10:114:39 | ...[...] | -| hash_extensions.rb:115:10:115:15 | values [element 0, element :id] | hash_extensions.rb:115:10:115:33 | call to pluck [element, element 1] | -| hash_extensions.rb:115:10:115:15 | values [element 1, element :id] | hash_extensions.rb:115:10:115:33 | call to pluck [element, element 1] | -| hash_extensions.rb:115:10:115:33 | call to pluck [element, element 1] | hash_extensions.rb:115:10:115:36 | ...[...] [element 1] | -| hash_extensions.rb:115:10:115:36 | ...[...] [element 1] | hash_extensions.rb:115:10:115:39 | ...[...] | -| hash_extensions.rb:122:5:122:10 | single [element 0] | hash_extensions.rb:125:10:125:15 | single [element 0] | -| hash_extensions.rb:122:15:122:25 | call to source | hash_extensions.rb:122:5:122:10 | single [element 0] | -| hash_extensions.rb:123:5:123:9 | multi [element 0] | hash_extensions.rb:126:10:126:14 | multi [element 0] | -| hash_extensions.rb:123:14:123:24 | call to source | hash_extensions.rb:123:5:123:9 | multi [element 0] | -| hash_extensions.rb:125:10:125:15 | single [element 0] | hash_extensions.rb:125:10:125:20 | call to sole | -| hash_extensions.rb:126:10:126:14 | multi [element 0] | hash_extensions.rb:126:10:126:19 | call to sole | +| active_support.rb:180:5:180:5 | x [element 0] | active_support.rb:181:9:181:9 | x [element 0] | provenance | | +| active_support.rb:180:10:180:17 | call to source | active_support.rb:180:5:180:5 | x [element 0] | provenance | | +| active_support.rb:181:5:181:5 | y [element] | active_support.rb:182:10:182:10 | y [element] | provenance | | +| active_support.rb:181:9:181:9 | x [element 0] | active_support.rb:181:9:181:23 | call to compact_blank [element] | provenance | | +| active_support.rb:181:9:181:23 | call to compact_blank [element] | active_support.rb:181:5:181:5 | y [element] | provenance | | +| active_support.rb:182:10:182:10 | y [element] | active_support.rb:182:10:182:13 | ...[...] | provenance | | +| active_support.rb:186:5:186:5 | x [element 0] | active_support.rb:187:9:187:9 | x [element 0] | provenance | | +| active_support.rb:186:10:186:18 | call to source | active_support.rb:186:5:186:5 | x [element 0] | provenance | | +| active_support.rb:187:5:187:5 | y [element] | active_support.rb:188:10:188:10 | y [element] | provenance | | +| active_support.rb:187:9:187:9 | x [element 0] | active_support.rb:187:9:187:21 | call to excluding [element] | provenance | | +| active_support.rb:187:9:187:21 | call to excluding [element] | active_support.rb:187:5:187:5 | y [element] | provenance | | +| active_support.rb:188:10:188:10 | y [element] | active_support.rb:188:10:188:13 | ...[...] | provenance | | +| active_support.rb:192:5:192:5 | x [element 0] | active_support.rb:193:9:193:9 | x [element 0] | provenance | | +| active_support.rb:192:10:192:18 | call to source | active_support.rb:192:5:192:5 | x [element 0] | provenance | | +| active_support.rb:193:5:193:5 | y [element] | active_support.rb:194:10:194:10 | y [element] | provenance | | +| active_support.rb:193:9:193:9 | x [element 0] | active_support.rb:193:9:193:19 | call to without [element] | provenance | | +| active_support.rb:193:9:193:19 | call to without [element] | active_support.rb:193:5:193:5 | y [element] | provenance | | +| active_support.rb:194:10:194:10 | y [element] | active_support.rb:194:10:194:13 | ...[...] | provenance | | +| active_support.rb:198:5:198:5 | x [element 0] | active_support.rb:199:9:199:9 | x [element 0] | provenance | | +| active_support.rb:198:10:198:18 | call to source | active_support.rb:198:5:198:5 | x [element 0] | provenance | | +| active_support.rb:199:5:199:5 | y [element] | active_support.rb:200:10:200:10 | y [element] | provenance | | +| active_support.rb:199:9:199:9 | x [element 0] | active_support.rb:199:9:199:37 | call to in_order_of [element] | provenance | | +| active_support.rb:199:9:199:37 | call to in_order_of [element] | active_support.rb:199:5:199:5 | y [element] | provenance | | +| active_support.rb:200:10:200:10 | y [element] | active_support.rb:200:10:200:13 | ...[...] | provenance | | +| active_support.rb:204:5:204:5 | a [element 0] | active_support.rb:205:9:205:9 | a [element 0] | provenance | | +| active_support.rb:204:5:204:5 | a [element 0] | active_support.rb:206:10:206:10 | a [element 0] | provenance | | +| active_support.rb:204:10:204:18 | call to source | active_support.rb:204:5:204:5 | a [element 0] | provenance | | +| active_support.rb:205:5:205:5 | b [element 0] | active_support.rb:208:10:208:10 | b [element 0] | provenance | | +| active_support.rb:205:5:205:5 | b [element] | active_support.rb:208:10:208:10 | b [element] | provenance | | +| active_support.rb:205:5:205:5 | b [element] | active_support.rb:209:10:209:10 | b [element] | provenance | | +| active_support.rb:205:5:205:5 | b [element] | active_support.rb:210:10:210:10 | b [element] | provenance | | +| active_support.rb:205:5:205:5 | b [element] | active_support.rb:211:10:211:10 | b [element] | provenance | | +| active_support.rb:205:9:205:9 | a [element 0] | active_support.rb:205:9:205:41 | call to including [element 0] | provenance | | +| active_support.rb:205:9:205:41 | call to including [element 0] | active_support.rb:205:5:205:5 | b [element 0] | provenance | | +| active_support.rb:205:9:205:41 | call to including [element] | active_support.rb:205:5:205:5 | b [element] | provenance | | +| active_support.rb:205:21:205:29 | call to source | active_support.rb:205:9:205:41 | call to including [element] | provenance | | +| active_support.rb:205:32:205:40 | call to source | active_support.rb:205:9:205:41 | call to including [element] | provenance | | +| active_support.rb:206:10:206:10 | a [element 0] | active_support.rb:206:10:206:13 | ...[...] | provenance | | +| active_support.rb:208:10:208:10 | b [element 0] | active_support.rb:208:10:208:13 | ...[...] | provenance | | +| active_support.rb:208:10:208:10 | b [element] | active_support.rb:208:10:208:13 | ...[...] | provenance | | +| active_support.rb:209:10:209:10 | b [element] | active_support.rb:209:10:209:13 | ...[...] | provenance | | +| active_support.rb:210:10:210:10 | b [element] | active_support.rb:210:10:210:13 | ...[...] | provenance | | +| active_support.rb:211:10:211:10 | b [element] | active_support.rb:211:10:211:13 | ...[...] | provenance | | +| active_support.rb:282:3:282:3 | x | active_support.rb:283:8:283:8 | x | provenance | | +| active_support.rb:282:7:282:16 | call to source | active_support.rb:282:3:282:3 | x | provenance | | +| active_support.rb:283:8:283:8 | x | active_support.rb:283:8:283:17 | call to presence | provenance | | +| active_support.rb:285:3:285:3 | y | active_support.rb:286:8:286:8 | y | provenance | | +| active_support.rb:285:7:285:16 | call to source | active_support.rb:285:3:285:3 | y | provenance | | +| active_support.rb:286:8:286:8 | y | active_support.rb:286:8:286:17 | call to presence | provenance | | +| active_support.rb:290:3:290:3 | x | active_support.rb:291:8:291:8 | x | provenance | | +| active_support.rb:290:7:290:16 | call to source | active_support.rb:290:3:290:3 | x | provenance | | +| active_support.rb:291:8:291:8 | x | active_support.rb:291:8:291:17 | call to deep_dup | provenance | | +| hash_extensions.rb:2:5:2:5 | h [element :a] | hash_extensions.rb:3:9:3:9 | h [element :a] | provenance | | +| hash_extensions.rb:2:14:2:24 | call to source | hash_extensions.rb:2:5:2:5 | h [element :a] | provenance | | +| hash_extensions.rb:3:5:3:5 | x [element] | hash_extensions.rb:4:10:4:10 | x [element] | provenance | | +| hash_extensions.rb:3:9:3:9 | h [element :a] | hash_extensions.rb:3:9:3:24 | call to stringify_keys [element] | provenance | | +| hash_extensions.rb:3:9:3:24 | call to stringify_keys [element] | hash_extensions.rb:3:5:3:5 | x [element] | provenance | | +| hash_extensions.rb:4:10:4:10 | x [element] | hash_extensions.rb:4:10:4:14 | ...[...] | provenance | | +| hash_extensions.rb:10:5:10:5 | h [element :a] | hash_extensions.rb:11:9:11:9 | h [element :a] | provenance | | +| hash_extensions.rb:10:14:10:24 | call to source | hash_extensions.rb:10:5:10:5 | h [element :a] | provenance | | +| hash_extensions.rb:11:5:11:5 | x [element] | hash_extensions.rb:12:10:12:10 | x [element] | provenance | | +| hash_extensions.rb:11:9:11:9 | h [element :a] | hash_extensions.rb:11:9:11:20 | call to to_options [element] | provenance | | +| hash_extensions.rb:11:9:11:20 | call to to_options [element] | hash_extensions.rb:11:5:11:5 | x [element] | provenance | | +| hash_extensions.rb:12:10:12:10 | x [element] | hash_extensions.rb:12:10:12:14 | ...[...] | provenance | | +| hash_extensions.rb:18:5:18:5 | h [element :a] | hash_extensions.rb:19:9:19:9 | h [element :a] | provenance | | +| hash_extensions.rb:18:14:18:24 | call to source | hash_extensions.rb:18:5:18:5 | h [element :a] | provenance | | +| hash_extensions.rb:19:5:19:5 | x [element] | hash_extensions.rb:20:10:20:10 | x [element] | provenance | | +| hash_extensions.rb:19:9:19:9 | h [element :a] | hash_extensions.rb:19:9:19:24 | call to symbolize_keys [element] | provenance | | +| hash_extensions.rb:19:9:19:24 | call to symbolize_keys [element] | hash_extensions.rb:19:5:19:5 | x [element] | provenance | | +| hash_extensions.rb:20:10:20:10 | x [element] | hash_extensions.rb:20:10:20:14 | ...[...] | provenance | | +| hash_extensions.rb:26:5:26:5 | h [element :a] | hash_extensions.rb:27:9:27:9 | h [element :a] | provenance | | +| hash_extensions.rb:26:14:26:24 | call to source | hash_extensions.rb:26:5:26:5 | h [element :a] | provenance | | +| hash_extensions.rb:27:5:27:5 | x [element] | hash_extensions.rb:28:10:28:10 | x [element] | provenance | | +| hash_extensions.rb:27:9:27:9 | h [element :a] | hash_extensions.rb:27:9:27:29 | call to deep_stringify_keys [element] | provenance | | +| hash_extensions.rb:27:9:27:29 | call to deep_stringify_keys [element] | hash_extensions.rb:27:5:27:5 | x [element] | provenance | | +| hash_extensions.rb:28:10:28:10 | x [element] | hash_extensions.rb:28:10:28:14 | ...[...] | provenance | | +| hash_extensions.rb:34:5:34:5 | h [element :a] | hash_extensions.rb:35:9:35:9 | h [element :a] | provenance | | +| hash_extensions.rb:34:14:34:24 | call to source | hash_extensions.rb:34:5:34:5 | h [element :a] | provenance | | +| hash_extensions.rb:35:5:35:5 | x [element] | hash_extensions.rb:36:10:36:10 | x [element] | provenance | | +| hash_extensions.rb:35:9:35:9 | h [element :a] | hash_extensions.rb:35:9:35:29 | call to deep_symbolize_keys [element] | provenance | | +| hash_extensions.rb:35:9:35:29 | call to deep_symbolize_keys [element] | hash_extensions.rb:35:5:35:5 | x [element] | provenance | | +| hash_extensions.rb:36:10:36:10 | x [element] | hash_extensions.rb:36:10:36:14 | ...[...] | provenance | | +| hash_extensions.rb:42:5:42:5 | h [element :a] | hash_extensions.rb:43:9:43:9 | h [element :a] | provenance | | +| hash_extensions.rb:42:14:42:24 | call to source | hash_extensions.rb:42:5:42:5 | h [element :a] | provenance | | +| hash_extensions.rb:43:5:43:5 | x [element] | hash_extensions.rb:44:10:44:10 | x [element] | provenance | | +| hash_extensions.rb:43:9:43:9 | h [element :a] | hash_extensions.rb:43:9:43:33 | call to with_indifferent_access [element] | provenance | | +| hash_extensions.rb:43:9:43:33 | call to with_indifferent_access [element] | hash_extensions.rb:43:5:43:5 | x [element] | provenance | | +| hash_extensions.rb:44:10:44:10 | x [element] | hash_extensions.rb:44:10:44:14 | ...[...] | provenance | | +| hash_extensions.rb:50:5:50:5 | h [element :a] | hash_extensions.rb:51:9:51:9 | h [element :a] | provenance | | +| hash_extensions.rb:50:5:50:5 | h [element :b] | hash_extensions.rb:51:9:51:9 | h [element :b] | provenance | | +| hash_extensions.rb:50:5:50:5 | h [element :d] | hash_extensions.rb:51:9:51:9 | h [element :d] | provenance | | +| hash_extensions.rb:50:14:50:23 | call to taint | hash_extensions.rb:50:5:50:5 | h [element :a] | provenance | | +| hash_extensions.rb:50:29:50:38 | call to taint | hash_extensions.rb:50:5:50:5 | h [element :b] | provenance | | +| hash_extensions.rb:50:52:50:61 | call to taint | hash_extensions.rb:50:5:50:5 | h [element :d] | provenance | | +| hash_extensions.rb:51:5:51:5 | x [element :a] | hash_extensions.rb:58:10:58:10 | x [element :a] | provenance | | +| hash_extensions.rb:51:5:51:5 | x [element :b] | hash_extensions.rb:59:10:59:10 | x [element :b] | provenance | | +| hash_extensions.rb:51:9:51:9 | [post] h [element :d] | hash_extensions.rb:56:10:56:10 | h [element :d] | provenance | | +| hash_extensions.rb:51:9:51:9 | h [element :a] | hash_extensions.rb:51:9:51:29 | call to extract! [element :a] | provenance | | +| hash_extensions.rb:51:9:51:9 | h [element :b] | hash_extensions.rb:51:9:51:29 | call to extract! [element :b] | provenance | | +| hash_extensions.rb:51:9:51:9 | h [element :d] | hash_extensions.rb:51:9:51:9 | [post] h [element :d] | provenance | | +| hash_extensions.rb:51:9:51:29 | call to extract! [element :a] | hash_extensions.rb:51:5:51:5 | x [element :a] | provenance | | +| hash_extensions.rb:51:9:51:29 | call to extract! [element :b] | hash_extensions.rb:51:5:51:5 | x [element :b] | provenance | | +| hash_extensions.rb:56:10:56:10 | h [element :d] | hash_extensions.rb:56:10:56:14 | ...[...] | provenance | | +| hash_extensions.rb:58:10:58:10 | x [element :a] | hash_extensions.rb:58:10:58:14 | ...[...] | provenance | | +| hash_extensions.rb:59:10:59:10 | x [element :b] | hash_extensions.rb:59:10:59:14 | ...[...] | provenance | | +| hash_extensions.rb:67:5:67:10 | values [element 0] | hash_extensions.rb:68:9:68:14 | values [element 0] | provenance | | +| hash_extensions.rb:67:5:67:10 | values [element 1] | hash_extensions.rb:68:9:68:14 | values [element 1] | provenance | | +| hash_extensions.rb:67:5:67:10 | values [element 2] | hash_extensions.rb:68:9:68:14 | values [element 2] | provenance | | +| hash_extensions.rb:67:15:67:25 | call to source | hash_extensions.rb:67:5:67:10 | values [element 0] | provenance | | +| hash_extensions.rb:67:28:67:38 | call to source | hash_extensions.rb:67:5:67:10 | values [element 1] | provenance | | +| hash_extensions.rb:67:41:67:51 | call to source | hash_extensions.rb:67:5:67:10 | values [element 2] | provenance | | +| hash_extensions.rb:68:5:68:5 | h [element] | hash_extensions.rb:73:10:73:10 | h [element] | provenance | | +| hash_extensions.rb:68:5:68:5 | h [element] | hash_extensions.rb:74:10:74:10 | h [element] | provenance | | +| hash_extensions.rb:68:9:68:14 | values [element 0] | hash_extensions.rb:68:9:71:7 | call to index_by [element] | provenance | | +| hash_extensions.rb:68:9:68:14 | values [element 0] | hash_extensions.rb:68:29:68:33 | value | provenance | | +| hash_extensions.rb:68:9:68:14 | values [element 1] | hash_extensions.rb:68:9:71:7 | call to index_by [element] | provenance | | +| hash_extensions.rb:68:9:68:14 | values [element 1] | hash_extensions.rb:68:29:68:33 | value | provenance | | +| hash_extensions.rb:68:9:68:14 | values [element 2] | hash_extensions.rb:68:9:71:7 | call to index_by [element] | provenance | | +| hash_extensions.rb:68:9:68:14 | values [element 2] | hash_extensions.rb:68:29:68:33 | value | provenance | | +| hash_extensions.rb:68:9:71:7 | call to index_by [element] | hash_extensions.rb:68:5:68:5 | h [element] | provenance | | +| hash_extensions.rb:68:29:68:33 | value | hash_extensions.rb:69:14:69:18 | value | provenance | | +| hash_extensions.rb:73:10:73:10 | h [element] | hash_extensions.rb:73:10:73:16 | ...[...] | provenance | | +| hash_extensions.rb:74:10:74:10 | h [element] | hash_extensions.rb:74:10:74:16 | ...[...] | provenance | | +| hash_extensions.rb:80:5:80:10 | values [element 0] | hash_extensions.rb:81:9:81:14 | values [element 0] | provenance | | +| hash_extensions.rb:80:5:80:10 | values [element 1] | hash_extensions.rb:81:9:81:14 | values [element 1] | provenance | | +| hash_extensions.rb:80:5:80:10 | values [element 2] | hash_extensions.rb:81:9:81:14 | values [element 2] | provenance | | +| hash_extensions.rb:80:15:80:25 | call to source | hash_extensions.rb:80:5:80:10 | values [element 0] | provenance | | +| hash_extensions.rb:80:28:80:38 | call to source | hash_extensions.rb:80:5:80:10 | values [element 1] | provenance | | +| hash_extensions.rb:80:41:80:51 | call to source | hash_extensions.rb:80:5:80:10 | values [element 2] | provenance | | +| hash_extensions.rb:81:5:81:5 | h [element] | hash_extensions.rb:86:10:86:10 | h [element] | provenance | | +| hash_extensions.rb:81:5:81:5 | h [element] | hash_extensions.rb:87:10:87:10 | h [element] | provenance | | +| hash_extensions.rb:81:9:81:14 | values [element 0] | hash_extensions.rb:81:31:81:33 | key | provenance | | +| hash_extensions.rb:81:9:81:14 | values [element 1] | hash_extensions.rb:81:31:81:33 | key | provenance | | +| hash_extensions.rb:81:9:81:14 | values [element 2] | hash_extensions.rb:81:31:81:33 | key | provenance | | +| hash_extensions.rb:81:9:84:7 | call to index_with [element] | hash_extensions.rb:81:5:81:5 | h [element] | provenance | | +| hash_extensions.rb:81:31:81:33 | key | hash_extensions.rb:82:14:82:16 | key | provenance | | +| hash_extensions.rb:83:9:83:19 | call to source | hash_extensions.rb:81:9:84:7 | call to index_with [element] | provenance | | +| hash_extensions.rb:86:10:86:10 | h [element] | hash_extensions.rb:86:10:86:16 | ...[...] | provenance | | +| hash_extensions.rb:87:10:87:10 | h [element] | hash_extensions.rb:87:10:87:16 | ...[...] | provenance | | +| hash_extensions.rb:89:5:89:5 | j [element] | hash_extensions.rb:91:10:91:10 | j [element] | provenance | | +| hash_extensions.rb:89:5:89:5 | j [element] | hash_extensions.rb:92:10:92:10 | j [element] | provenance | | +| hash_extensions.rb:89:9:89:38 | call to index_with [element] | hash_extensions.rb:89:5:89:5 | j [element] | provenance | | +| hash_extensions.rb:89:27:89:37 | call to source | hash_extensions.rb:89:9:89:38 | call to index_with [element] | provenance | | +| hash_extensions.rb:91:10:91:10 | j [element] | hash_extensions.rb:91:10:91:16 | ...[...] | provenance | | +| hash_extensions.rb:92:10:92:10 | j [element] | hash_extensions.rb:92:10:92:16 | ...[...] | provenance | | +| hash_extensions.rb:98:5:98:10 | values [element 0, element :id] | hash_extensions.rb:99:10:99:15 | values [element 0, element :id] | provenance | | +| hash_extensions.rb:98:5:98:10 | values [element 0, element :id] | hash_extensions.rb:101:10:101:15 | values [element 0, element :id] | provenance | | +| hash_extensions.rb:98:5:98:10 | values [element 0, element :id] | hash_extensions.rb:104:10:104:15 | values [element 0, element :id] | provenance | | +| hash_extensions.rb:98:5:98:10 | values [element 0, element :name] | hash_extensions.rb:100:10:100:15 | values [element 0, element :name] | provenance | | +| hash_extensions.rb:98:5:98:10 | values [element 0, element :name] | hash_extensions.rb:102:10:102:15 | values [element 0, element :name] | provenance | | +| hash_extensions.rb:98:5:98:10 | values [element 0, element :name] | hash_extensions.rb:103:10:103:15 | values [element 0, element :name] | provenance | | +| hash_extensions.rb:98:21:98:31 | call to source | hash_extensions.rb:98:5:98:10 | values [element 0, element :id] | provenance | | +| hash_extensions.rb:98:40:98:54 | call to source | hash_extensions.rb:98:5:98:10 | values [element 0, element :name] | provenance | | +| hash_extensions.rb:99:10:99:15 | values [element 0, element :id] | hash_extensions.rb:99:10:99:25 | call to pick | provenance | | +| hash_extensions.rb:100:10:100:15 | values [element 0, element :name] | hash_extensions.rb:100:10:100:27 | call to pick | provenance | | +| hash_extensions.rb:101:10:101:15 | values [element 0, element :id] | hash_extensions.rb:101:10:101:32 | call to pick [element 0] | provenance | | +| hash_extensions.rb:101:10:101:32 | call to pick [element 0] | hash_extensions.rb:101:10:101:35 | ...[...] | provenance | | +| hash_extensions.rb:102:10:102:15 | values [element 0, element :name] | hash_extensions.rb:102:10:102:32 | call to pick [element 1] | provenance | | +| hash_extensions.rb:102:10:102:32 | call to pick [element 1] | hash_extensions.rb:102:10:102:35 | ...[...] | provenance | | +| hash_extensions.rb:103:10:103:15 | values [element 0, element :name] | hash_extensions.rb:103:10:103:32 | call to pick [element 0] | provenance | | +| hash_extensions.rb:103:10:103:32 | call to pick [element 0] | hash_extensions.rb:103:10:103:35 | ...[...] | provenance | | +| hash_extensions.rb:104:10:104:15 | values [element 0, element :id] | hash_extensions.rb:104:10:104:32 | call to pick [element 1] | provenance | | +| hash_extensions.rb:104:10:104:32 | call to pick [element 1] | hash_extensions.rb:104:10:104:35 | ...[...] | provenance | | +| hash_extensions.rb:110:5:110:10 | values [element 0, element :id] | hash_extensions.rb:112:10:112:15 | values [element 0, element :id] | provenance | | +| hash_extensions.rb:110:5:110:10 | values [element 0, element :id] | hash_extensions.rb:115:10:115:15 | values [element 0, element :id] | provenance | | +| hash_extensions.rb:110:5:110:10 | values [element 0, element :name] | hash_extensions.rb:111:10:111:15 | values [element 0, element :name] | provenance | | +| hash_extensions.rb:110:5:110:10 | values [element 0, element :name] | hash_extensions.rb:113:10:113:15 | values [element 0, element :name] | provenance | | +| hash_extensions.rb:110:5:110:10 | values [element 0, element :name] | hash_extensions.rb:114:10:114:15 | values [element 0, element :name] | provenance | | +| hash_extensions.rb:110:5:110:10 | values [element 1, element :id] | hash_extensions.rb:112:10:112:15 | values [element 1, element :id] | provenance | | +| hash_extensions.rb:110:5:110:10 | values [element 1, element :id] | hash_extensions.rb:115:10:115:15 | values [element 1, element :id] | provenance | | +| hash_extensions.rb:110:5:110:10 | values [element 1, element :name] | hash_extensions.rb:111:10:111:15 | values [element 1, element :name] | provenance | | +| hash_extensions.rb:110:5:110:10 | values [element 1, element :name] | hash_extensions.rb:113:10:113:15 | values [element 1, element :name] | provenance | | +| hash_extensions.rb:110:5:110:10 | values [element 1, element :name] | hash_extensions.rb:114:10:114:15 | values [element 1, element :name] | provenance | | +| hash_extensions.rb:110:21:110:31 | call to source | hash_extensions.rb:110:5:110:10 | values [element 0, element :id] | provenance | | +| hash_extensions.rb:110:40:110:54 | call to source | hash_extensions.rb:110:5:110:10 | values [element 0, element :name] | provenance | | +| hash_extensions.rb:110:65:110:75 | call to source | hash_extensions.rb:110:5:110:10 | values [element 1, element :id] | provenance | | +| hash_extensions.rb:110:84:110:99 | call to source | hash_extensions.rb:110:5:110:10 | values [element 1, element :name] | provenance | | +| hash_extensions.rb:111:10:111:15 | values [element 0, element :name] | hash_extensions.rb:111:10:111:28 | call to pluck [element] | provenance | | +| hash_extensions.rb:111:10:111:15 | values [element 1, element :name] | hash_extensions.rb:111:10:111:28 | call to pluck [element] | provenance | | +| hash_extensions.rb:111:10:111:28 | call to pluck [element] | hash_extensions.rb:111:10:111:31 | ...[...] | provenance | | +| hash_extensions.rb:112:10:112:15 | values [element 0, element :id] | hash_extensions.rb:112:10:112:33 | call to pluck [element, element 0] | provenance | | +| hash_extensions.rb:112:10:112:15 | values [element 1, element :id] | hash_extensions.rb:112:10:112:33 | call to pluck [element, element 0] | provenance | | +| hash_extensions.rb:112:10:112:33 | call to pluck [element, element 0] | hash_extensions.rb:112:10:112:36 | ...[...] [element 0] | provenance | | +| hash_extensions.rb:112:10:112:36 | ...[...] [element 0] | hash_extensions.rb:112:10:112:39 | ...[...] | provenance | | +| hash_extensions.rb:113:10:113:15 | values [element 0, element :name] | hash_extensions.rb:113:10:113:33 | call to pluck [element, element 1] | provenance | | +| hash_extensions.rb:113:10:113:15 | values [element 1, element :name] | hash_extensions.rb:113:10:113:33 | call to pluck [element, element 1] | provenance | | +| hash_extensions.rb:113:10:113:33 | call to pluck [element, element 1] | hash_extensions.rb:113:10:113:36 | ...[...] [element 1] | provenance | | +| hash_extensions.rb:113:10:113:36 | ...[...] [element 1] | hash_extensions.rb:113:10:113:39 | ...[...] | provenance | | +| hash_extensions.rb:114:10:114:15 | values [element 0, element :name] | hash_extensions.rb:114:10:114:33 | call to pluck [element, element 0] | provenance | | +| hash_extensions.rb:114:10:114:15 | values [element 1, element :name] | hash_extensions.rb:114:10:114:33 | call to pluck [element, element 0] | provenance | | +| hash_extensions.rb:114:10:114:33 | call to pluck [element, element 0] | hash_extensions.rb:114:10:114:36 | ...[...] [element 0] | provenance | | +| hash_extensions.rb:114:10:114:36 | ...[...] [element 0] | hash_extensions.rb:114:10:114:39 | ...[...] | provenance | | +| hash_extensions.rb:115:10:115:15 | values [element 0, element :id] | hash_extensions.rb:115:10:115:33 | call to pluck [element, element 1] | provenance | | +| hash_extensions.rb:115:10:115:15 | values [element 1, element :id] | hash_extensions.rb:115:10:115:33 | call to pluck [element, element 1] | provenance | | +| hash_extensions.rb:115:10:115:33 | call to pluck [element, element 1] | hash_extensions.rb:115:10:115:36 | ...[...] [element 1] | provenance | | +| hash_extensions.rb:115:10:115:36 | ...[...] [element 1] | hash_extensions.rb:115:10:115:39 | ...[...] | provenance | | +| hash_extensions.rb:122:5:122:10 | single [element 0] | hash_extensions.rb:125:10:125:15 | single [element 0] | provenance | | +| hash_extensions.rb:122:15:122:25 | call to source | hash_extensions.rb:122:5:122:10 | single [element 0] | provenance | | +| hash_extensions.rb:123:5:123:9 | multi [element 0] | hash_extensions.rb:126:10:126:14 | multi [element 0] | provenance | | +| hash_extensions.rb:123:14:123:24 | call to source | hash_extensions.rb:123:5:123:9 | multi [element 0] | provenance | | +| hash_extensions.rb:125:10:125:15 | single [element 0] | hash_extensions.rb:125:10:125:20 | call to sole | provenance | | +| hash_extensions.rb:126:10:126:14 | multi [element 0] | hash_extensions.rb:126:10:126:19 | call to sole | provenance | | nodes | active_support.rb:180:5:180:5 | x [element 0] | semmle.label | x [element 0] | | active_support.rb:180:10:180:17 | call to source | semmle.label | call to source | diff --git a/ruby/ql/test/library-tests/frameworks/arel/Arel.expected b/ruby/ql/test/library-tests/frameworks/arel/Arel.expected index 1a8eab7e84fa..c2242a7e7d98 100644 --- a/ruby/ql/test/library-tests/frameworks/arel/Arel.expected +++ b/ruby/ql/test/library-tests/frameworks/arel/Arel.expected @@ -1,8 +1,8 @@ testFailures edges -| arel.rb:2:3:2:3 | x | arel.rb:3:17:3:17 | x | -| arel.rb:2:7:2:14 | call to source | arel.rb:2:3:2:3 | x | -| arel.rb:3:17:3:17 | x | arel.rb:3:8:3:18 | call to sql | +| arel.rb:2:3:2:3 | x | arel.rb:3:17:3:17 | x | provenance | | +| arel.rb:2:7:2:14 | call to source | arel.rb:2:3:2:3 | x | provenance | | +| arel.rb:3:17:3:17 | x | arel.rb:3:8:3:18 | call to sql | provenance | | nodes | arel.rb:2:3:2:3 | x | semmle.label | x | | arel.rb:2:7:2:14 | call to source | semmle.label | call to source | diff --git a/ruby/ql/test/library-tests/frameworks/json/JsonDataFlow.expected b/ruby/ql/test/library-tests/frameworks/json/JsonDataFlow.expected index b4ba9ce73741..a12400cf123e 100644 --- a/ruby/ql/test/library-tests/frameworks/json/JsonDataFlow.expected +++ b/ruby/ql/test/library-tests/frameworks/json/JsonDataFlow.expected @@ -1,15 +1,15 @@ testFailures edges -| json.rb:1:17:1:26 | call to source | json.rb:1:6:1:27 | call to parse | -| json.rb:2:18:2:27 | call to source | json.rb:2:6:2:28 | call to parse! | -| json.rb:3:16:3:25 | call to source | json.rb:3:6:3:26 | call to load | -| json.rb:4:19:4:28 | call to source | json.rb:4:6:4:29 | call to restore | -| json.rb:6:20:6:29 | call to source | json.rb:6:6:6:30 | call to generate | -| json.rb:7:25:7:34 | call to source | json.rb:7:6:7:35 | call to fast_generate | -| json.rb:8:27:8:36 | call to source | json.rb:8:6:8:37 | call to pretty_generate | -| json.rb:9:16:9:25 | call to source | json.rb:9:6:9:26 | call to dump | -| json.rb:10:19:10:28 | call to source | json.rb:10:6:10:29 | call to unparse | -| json.rb:11:24:11:33 | call to source | json.rb:11:6:11:34 | call to fast_unparse | +| json.rb:1:17:1:26 | call to source | json.rb:1:6:1:27 | call to parse | provenance | | +| json.rb:2:18:2:27 | call to source | json.rb:2:6:2:28 | call to parse! | provenance | | +| json.rb:3:16:3:25 | call to source | json.rb:3:6:3:26 | call to load | provenance | | +| json.rb:4:19:4:28 | call to source | json.rb:4:6:4:29 | call to restore | provenance | | +| json.rb:6:20:6:29 | call to source | json.rb:6:6:6:30 | call to generate | provenance | | +| json.rb:7:25:7:34 | call to source | json.rb:7:6:7:35 | call to fast_generate | provenance | | +| json.rb:8:27:8:36 | call to source | json.rb:8:6:8:37 | call to pretty_generate | provenance | | +| json.rb:9:16:9:25 | call to source | json.rb:9:6:9:26 | call to dump | provenance | | +| json.rb:10:19:10:28 | call to source | json.rb:10:6:10:29 | call to unparse | provenance | | +| json.rb:11:24:11:33 | call to source | json.rb:11:6:11:34 | call to fast_unparse | provenance | | nodes | json.rb:1:6:1:27 | call to parse | semmle.label | call to parse | | json.rb:1:17:1:26 | call to source | semmle.label | call to source | diff --git a/ruby/ql/test/library-tests/frameworks/sinatra/Flow.expected b/ruby/ql/test/library-tests/frameworks/sinatra/Flow.expected index 1a3665a31c1c..baad7a63b8d2 100644 --- a/ruby/ql/test/library-tests/frameworks/sinatra/Flow.expected +++ b/ruby/ql/test/library-tests/frameworks/sinatra/Flow.expected @@ -1,11 +1,11 @@ testFailures | views/index.erb:2:10:2:12 | call to foo | Unexpected result: hasTaintFlow= | edges -| app.rb:75:5:75:8 | [post] self [@foo] | app.rb:76:32:76:35 | self [@foo] | -| app.rb:75:12:75:17 | call to params | app.rb:75:12:75:24 | ...[...] | -| app.rb:75:12:75:24 | ...[...] | app.rb:75:5:75:8 | [post] self [@foo] | -| app.rb:76:32:76:35 | @foo | views/index.erb:2:10:2:12 | call to foo | -| app.rb:76:32:76:35 | self [@foo] | app.rb:76:32:76:35 | @foo | +| app.rb:75:5:75:8 | [post] self [@foo] | app.rb:76:32:76:35 | self [@foo] | provenance | | +| app.rb:75:12:75:17 | call to params | app.rb:75:12:75:24 | ...[...] | provenance | | +| app.rb:75:12:75:24 | ...[...] | app.rb:75:5:75:8 | [post] self [@foo] | provenance | | +| app.rb:76:32:76:35 | @foo | views/index.erb:2:10:2:12 | call to foo | provenance | | +| app.rb:76:32:76:35 | self [@foo] | app.rb:76:32:76:35 | @foo | provenance | | nodes | app.rb:75:5:75:8 | [post] self [@foo] | semmle.label | [post] self [@foo] | | app.rb:75:12:75:17 | call to params | semmle.label | call to params | diff --git a/ruby/ql/test/query-tests/experimental/ImproperLdapAuth/ImproperLdapAuth.expected b/ruby/ql/test/query-tests/experimental/ImproperLdapAuth/ImproperLdapAuth.expected index 17c9a009cbd9..1b0e8d4fbb38 100644 --- a/ruby/ql/test/query-tests/experimental/ImproperLdapAuth/ImproperLdapAuth.expected +++ b/ruby/ql/test/query-tests/experimental/ImproperLdapAuth/ImproperLdapAuth.expected @@ -1,10 +1,10 @@ edges -| ImproperLdapAuth.rb:5:5:5:8 | pass | ImproperLdapAuth.rb:15:23:15:26 | pass | -| ImproperLdapAuth.rb:5:12:5:17 | call to params | ImproperLdapAuth.rb:5:12:5:24 | ...[...] | -| ImproperLdapAuth.rb:5:12:5:24 | ...[...] | ImproperLdapAuth.rb:5:5:5:8 | pass | -| ImproperLdapAuth.rb:24:5:24:8 | pass | ImproperLdapAuth.rb:31:24:31:27 | pass | -| ImproperLdapAuth.rb:24:12:24:17 | call to params | ImproperLdapAuth.rb:24:12:24:24 | ...[...] | -| ImproperLdapAuth.rb:24:12:24:24 | ...[...] | ImproperLdapAuth.rb:24:5:24:8 | pass | +| ImproperLdapAuth.rb:5:5:5:8 | pass | ImproperLdapAuth.rb:15:23:15:26 | pass | provenance | | +| ImproperLdapAuth.rb:5:12:5:17 | call to params | ImproperLdapAuth.rb:5:12:5:24 | ...[...] | provenance | | +| ImproperLdapAuth.rb:5:12:5:24 | ...[...] | ImproperLdapAuth.rb:5:5:5:8 | pass | provenance | | +| ImproperLdapAuth.rb:24:5:24:8 | pass | ImproperLdapAuth.rb:31:24:31:27 | pass | provenance | | +| ImproperLdapAuth.rb:24:12:24:17 | call to params | ImproperLdapAuth.rb:24:12:24:24 | ...[...] | provenance | | +| ImproperLdapAuth.rb:24:12:24:24 | ...[...] | ImproperLdapAuth.rb:24:5:24:8 | pass | provenance | | nodes | ImproperLdapAuth.rb:5:5:5:8 | pass | semmle.label | pass | | ImproperLdapAuth.rb:5:12:5:17 | call to params | semmle.label | call to params | diff --git a/ruby/ql/test/query-tests/experimental/LdapInjection/Ldapinjection.expected b/ruby/ql/test/query-tests/experimental/LdapInjection/Ldapinjection.expected index 2c2aa193d77d..9eddf82c15ca 100644 --- a/ruby/ql/test/query-tests/experimental/LdapInjection/Ldapinjection.expected +++ b/ruby/ql/test/query-tests/experimental/LdapInjection/Ldapinjection.expected @@ -1,16 +1,16 @@ edges -| LdapInjection.rb:5:5:5:6 | dc | LdapInjection.rb:25:23:25:49 | "ou=people,dc=#{...},dc=com" | -| LdapInjection.rb:5:10:5:15 | call to params | LdapInjection.rb:5:10:5:20 | ...[...] | -| LdapInjection.rb:5:10:5:20 | ...[...] | LdapInjection.rb:5:5:5:6 | dc | -| LdapInjection.rb:9:5:9:8 | name | LdapInjection.rb:29:62:29:73 | "cn=#{...}" | -| LdapInjection.rb:9:5:9:8 | name | LdapInjection.rb:33:88:33:91 | name | -| LdapInjection.rb:9:12:9:17 | call to params | LdapInjection.rb:9:12:9:29 | ...[...] | -| LdapInjection.rb:9:12:9:29 | ...[...] | LdapInjection.rb:9:5:9:8 | name | -| LdapInjection.rb:33:88:33:91 | name | LdapInjection.rb:33:87:33:92 | call to [] | -| LdapInjection.rb:33:88:33:91 | name | LdapInjection.rb:37:41:37:44 | name | -| LdapInjection.rb:37:5:37:10 | filter | LdapInjection.rb:38:62:38:67 | filter | -| LdapInjection.rb:37:14:37:45 | call to eq | LdapInjection.rb:37:5:37:10 | filter | -| LdapInjection.rb:37:41:37:44 | name | LdapInjection.rb:37:14:37:45 | call to eq | +| LdapInjection.rb:5:5:5:6 | dc | LdapInjection.rb:25:23:25:49 | "ou=people,dc=#{...},dc=com" | provenance | | +| LdapInjection.rb:5:10:5:15 | call to params | LdapInjection.rb:5:10:5:20 | ...[...] | provenance | | +| LdapInjection.rb:5:10:5:20 | ...[...] | LdapInjection.rb:5:5:5:6 | dc | provenance | | +| LdapInjection.rb:9:5:9:8 | name | LdapInjection.rb:29:62:29:73 | "cn=#{...}" | provenance | | +| LdapInjection.rb:9:5:9:8 | name | LdapInjection.rb:33:88:33:91 | name | provenance | | +| LdapInjection.rb:9:12:9:17 | call to params | LdapInjection.rb:9:12:9:29 | ...[...] | provenance | | +| LdapInjection.rb:9:12:9:29 | ...[...] | LdapInjection.rb:9:5:9:8 | name | provenance | | +| LdapInjection.rb:33:88:33:91 | name | LdapInjection.rb:33:87:33:92 | call to [] | provenance | | +| LdapInjection.rb:33:88:33:91 | name | LdapInjection.rb:37:41:37:44 | name | provenance | | +| LdapInjection.rb:37:5:37:10 | filter | LdapInjection.rb:38:62:38:67 | filter | provenance | | +| LdapInjection.rb:37:14:37:45 | call to eq | LdapInjection.rb:37:5:37:10 | filter | provenance | | +| LdapInjection.rb:37:41:37:44 | name | LdapInjection.rb:37:14:37:45 | call to eq | provenance | | nodes | LdapInjection.rb:5:5:5:6 | dc | semmle.label | dc | | LdapInjection.rb:5:10:5:15 | call to params | semmle.label | call to params | diff --git a/ruby/ql/test/query-tests/experimental/TemplateInjection/TemplateInjection.expected b/ruby/ql/test/query-tests/experimental/TemplateInjection/TemplateInjection.expected index 103dc82bda4f..bf51b4340622 100644 --- a/ruby/ql/test/query-tests/experimental/TemplateInjection/TemplateInjection.expected +++ b/ruby/ql/test/query-tests/experimental/TemplateInjection/TemplateInjection.expected @@ -1,21 +1,21 @@ edges -| ErbInjection.rb:5:5:5:8 | name | ErbInjection.rb:8:5:8:12 | bad_text | -| ErbInjection.rb:5:5:5:8 | name | ErbInjection.rb:11:11:11:14 | name | -| ErbInjection.rb:5:12:5:17 | call to params | ErbInjection.rb:5:12:5:24 | ...[...] | -| ErbInjection.rb:5:12:5:24 | ...[...] | ErbInjection.rb:5:5:5:8 | name | -| ErbInjection.rb:8:5:8:12 | bad_text | ErbInjection.rb:15:24:15:31 | bad_text | -| ErbInjection.rb:8:5:8:12 | bad_text | ErbInjection.rb:19:20:19:27 | bad_text | -| ErbInjection.rb:8:16:11:14 | ... % ... | ErbInjection.rb:8:5:8:12 | bad_text | -| ErbInjection.rb:11:11:11:14 | name | ErbInjection.rb:8:16:11:14 | ... % ... | -| SlimInjection.rb:5:5:5:8 | name | SlimInjection.rb:11:11:11:14 | name | -| SlimInjection.rb:5:5:5:8 | name | SlimInjection.rb:14:23:14:34 | { ... } [captured bad_text] | -| SlimInjection.rb:5:5:5:8 | name | SlimInjection.rb:23:23:23:35 | { ... } [captured bad2_text] | -| SlimInjection.rb:5:12:5:17 | call to params | SlimInjection.rb:5:12:5:24 | ...[...] | -| SlimInjection.rb:5:12:5:24 | ...[...] | SlimInjection.rb:5:5:5:8 | name | -| SlimInjection.rb:8:16:11:14 | ... % ... | SlimInjection.rb:14:23:14:34 | { ... } [captured bad_text] | -| SlimInjection.rb:11:11:11:14 | name | SlimInjection.rb:8:16:11:14 | ... % ... | -| SlimInjection.rb:14:23:14:34 | { ... } [captured bad_text] | SlimInjection.rb:14:25:14:32 | bad_text | -| SlimInjection.rb:23:23:23:35 | { ... } [captured bad2_text] | SlimInjection.rb:23:25:23:33 | bad2_text | +| ErbInjection.rb:5:5:5:8 | name | ErbInjection.rb:8:5:8:12 | bad_text | provenance | | +| ErbInjection.rb:5:5:5:8 | name | ErbInjection.rb:11:11:11:14 | name | provenance | | +| ErbInjection.rb:5:12:5:17 | call to params | ErbInjection.rb:5:12:5:24 | ...[...] | provenance | | +| ErbInjection.rb:5:12:5:24 | ...[...] | ErbInjection.rb:5:5:5:8 | name | provenance | | +| ErbInjection.rb:8:5:8:12 | bad_text | ErbInjection.rb:15:24:15:31 | bad_text | provenance | | +| ErbInjection.rb:8:5:8:12 | bad_text | ErbInjection.rb:19:20:19:27 | bad_text | provenance | | +| ErbInjection.rb:8:16:11:14 | ... % ... | ErbInjection.rb:8:5:8:12 | bad_text | provenance | | +| ErbInjection.rb:11:11:11:14 | name | ErbInjection.rb:8:16:11:14 | ... % ... | provenance | | +| SlimInjection.rb:5:5:5:8 | name | SlimInjection.rb:11:11:11:14 | name | provenance | | +| SlimInjection.rb:5:5:5:8 | name | SlimInjection.rb:14:23:14:34 | { ... } [captured bad_text] | provenance | | +| SlimInjection.rb:5:5:5:8 | name | SlimInjection.rb:23:23:23:35 | { ... } [captured bad2_text] | provenance | | +| SlimInjection.rb:5:12:5:17 | call to params | SlimInjection.rb:5:12:5:24 | ...[...] | provenance | | +| SlimInjection.rb:5:12:5:24 | ...[...] | SlimInjection.rb:5:5:5:8 | name | provenance | | +| SlimInjection.rb:8:16:11:14 | ... % ... | SlimInjection.rb:14:23:14:34 | { ... } [captured bad_text] | provenance | | +| SlimInjection.rb:11:11:11:14 | name | SlimInjection.rb:8:16:11:14 | ... % ... | provenance | | +| SlimInjection.rb:14:23:14:34 | { ... } [captured bad_text] | SlimInjection.rb:14:25:14:32 | bad_text | provenance | | +| SlimInjection.rb:23:23:23:35 | { ... } [captured bad2_text] | SlimInjection.rb:23:25:23:33 | bad2_text | provenance | | nodes | ErbInjection.rb:5:5:5:8 | name | semmle.label | name | | ErbInjection.rb:5:12:5:17 | call to params | semmle.label | call to params | diff --git a/ruby/ql/test/query-tests/experimental/XPathInjection/XPathInjection.expected b/ruby/ql/test/query-tests/experimental/XPathInjection/XPathInjection.expected index 789eef9f4fcc..d6c6f0b34bc8 100644 --- a/ruby/ql/test/query-tests/experimental/XPathInjection/XPathInjection.expected +++ b/ruby/ql/test/query-tests/experimental/XPathInjection/XPathInjection.expected @@ -1,20 +1,20 @@ edges -| LibxmlInjection.rb:5:5:5:8 | name | LibxmlInjection.rb:21:31:21:41 | "//#{...}" | -| LibxmlInjection.rb:5:5:5:8 | name | LibxmlInjection.rb:27:25:27:35 | "//#{...}" | -| LibxmlInjection.rb:5:12:5:17 | call to params | LibxmlInjection.rb:5:12:5:29 | ...[...] | -| LibxmlInjection.rb:5:12:5:29 | ...[...] | LibxmlInjection.rb:5:5:5:8 | name | -| NokogiriInjection.rb:5:5:5:8 | name | NokogiriInjection.rb:21:23:21:33 | "//#{...}" | -| NokogiriInjection.rb:5:5:5:8 | name | NokogiriInjection.rb:27:26:27:36 | "//#{...}" | -| NokogiriInjection.rb:5:5:5:8 | name | NokogiriInjection.rb:33:29:33:39 | "//#{...}" | -| NokogiriInjection.rb:5:5:5:8 | name | NokogiriInjection.rb:41:15:41:25 | "//#{...}" | -| NokogiriInjection.rb:5:5:5:8 | name | NokogiriInjection.rb:51:16:51:26 | "//#{...}" | -| NokogiriInjection.rb:5:12:5:17 | call to params | NokogiriInjection.rb:5:12:5:29 | ...[...] | -| NokogiriInjection.rb:5:12:5:29 | ...[...] | NokogiriInjection.rb:5:5:5:8 | name | -| RexmlInjection.rb:5:5:5:8 | name | RexmlInjection.rb:21:40:21:50 | "//#{...}" | -| RexmlInjection.rb:5:5:5:8 | name | RexmlInjection.rb:27:40:27:50 | "//#{...}" | -| RexmlInjection.rb:5:5:5:8 | name | RexmlInjection.rb:35:28:35:38 | "//#{...}" | -| RexmlInjection.rb:5:12:5:17 | call to params | RexmlInjection.rb:5:12:5:29 | ...[...] | -| RexmlInjection.rb:5:12:5:29 | ...[...] | RexmlInjection.rb:5:5:5:8 | name | +| LibxmlInjection.rb:5:5:5:8 | name | LibxmlInjection.rb:21:31:21:41 | "//#{...}" | provenance | | +| LibxmlInjection.rb:5:5:5:8 | name | LibxmlInjection.rb:27:25:27:35 | "//#{...}" | provenance | | +| LibxmlInjection.rb:5:12:5:17 | call to params | LibxmlInjection.rb:5:12:5:29 | ...[...] | provenance | | +| LibxmlInjection.rb:5:12:5:29 | ...[...] | LibxmlInjection.rb:5:5:5:8 | name | provenance | | +| NokogiriInjection.rb:5:5:5:8 | name | NokogiriInjection.rb:21:23:21:33 | "//#{...}" | provenance | | +| NokogiriInjection.rb:5:5:5:8 | name | NokogiriInjection.rb:27:26:27:36 | "//#{...}" | provenance | | +| NokogiriInjection.rb:5:5:5:8 | name | NokogiriInjection.rb:33:29:33:39 | "//#{...}" | provenance | | +| NokogiriInjection.rb:5:5:5:8 | name | NokogiriInjection.rb:41:15:41:25 | "//#{...}" | provenance | | +| NokogiriInjection.rb:5:5:5:8 | name | NokogiriInjection.rb:51:16:51:26 | "//#{...}" | provenance | | +| NokogiriInjection.rb:5:12:5:17 | call to params | NokogiriInjection.rb:5:12:5:29 | ...[...] | provenance | | +| NokogiriInjection.rb:5:12:5:29 | ...[...] | NokogiriInjection.rb:5:5:5:8 | name | provenance | | +| RexmlInjection.rb:5:5:5:8 | name | RexmlInjection.rb:21:40:21:50 | "//#{...}" | provenance | | +| RexmlInjection.rb:5:5:5:8 | name | RexmlInjection.rb:27:40:27:50 | "//#{...}" | provenance | | +| RexmlInjection.rb:5:5:5:8 | name | RexmlInjection.rb:35:28:35:38 | "//#{...}" | provenance | | +| RexmlInjection.rb:5:12:5:17 | call to params | RexmlInjection.rb:5:12:5:29 | ...[...] | provenance | | +| RexmlInjection.rb:5:12:5:29 | ...[...] | RexmlInjection.rb:5:5:5:8 | name | provenance | | nodes | LibxmlInjection.rb:5:5:5:8 | name | semmle.label | name | | LibxmlInjection.rb:5:12:5:17 | call to params | semmle.label | call to params | diff --git a/ruby/ql/test/query-tests/experimental/cwe-022-ZipSlip/ZipSlip.expected b/ruby/ql/test/query-tests/experimental/cwe-022-ZipSlip/ZipSlip.expected index 0c8be5c24633..b7cfcdc42a3f 100644 --- a/ruby/ql/test/query-tests/experimental/cwe-022-ZipSlip/ZipSlip.expected +++ b/ruby/ql/test/query-tests/experimental/cwe-022-ZipSlip/ZipSlip.expected @@ -1,36 +1,36 @@ edges -| zip_slip.rb:8:5:8:11 | tarfile | zip_slip.rb:9:5:9:11 | tarfile | -| zip_slip.rb:8:15:8:54 | call to new | zip_slip.rb:8:5:8:11 | tarfile | -| zip_slip.rb:9:5:9:11 | tarfile | zip_slip.rb:9:22:9:26 | entry | -| zip_slip.rb:9:22:9:26 | entry | zip_slip.rb:10:19:10:23 | entry | -| zip_slip.rb:10:19:10:23 | entry | zip_slip.rb:10:19:10:33 | call to full_name | -| zip_slip.rb:20:50:20:56 | tarfile | zip_slip.rb:21:7:21:13 | tarfile | -| zip_slip.rb:21:7:21:13 | tarfile | zip_slip.rb:21:30:21:34 | entry | -| zip_slip.rb:21:30:21:34 | entry | zip_slip.rb:22:21:22:25 | entry | -| zip_slip.rb:22:21:22:25 | entry | zip_slip.rb:22:21:22:35 | call to full_name | -| zip_slip.rb:46:5:46:24 | call to open | zip_slip.rb:46:35:46:39 | entry | -| zip_slip.rb:46:35:46:39 | entry | zip_slip.rb:47:17:47:21 | entry | -| zip_slip.rb:47:17:47:21 | entry | zip_slip.rb:47:17:47:26 | call to name | -| zip_slip.rb:56:30:56:37 | zip_file | zip_slip.rb:57:7:57:14 | zip_file | -| zip_slip.rb:57:7:57:14 | zip_file | zip_slip.rb:57:25:57:29 | entry | -| zip_slip.rb:57:25:57:29 | entry | zip_slip.rb:58:19:58:23 | entry | -| zip_slip.rb:58:19:58:23 | entry | zip_slip.rb:58:19:58:28 | call to name | -| zip_slip.rb:90:5:90:8 | gzip | zip_slip.rb:91:11:91:14 | gzip | -| zip_slip.rb:90:12:90:54 | call to open | zip_slip.rb:90:5:90:8 | gzip | -| zip_slip.rb:91:11:91:14 | gzip | zip_slip.rb:97:42:97:56 | compressed_file | -| zip_slip.rb:97:42:97:56 | compressed_file | zip_slip.rb:98:7:98:21 | compressed_file | -| zip_slip.rb:98:7:98:21 | compressed_file | zip_slip.rb:98:32:98:36 | entry | -| zip_slip.rb:98:32:98:36 | entry | zip_slip.rb:99:22:99:26 | entry | -| zip_slip.rb:99:9:99:18 | entry_path | zip_slip.rb:100:21:100:30 | entry_path | -| zip_slip.rb:99:22:99:26 | entry | zip_slip.rb:99:22:99:36 | call to full_name | -| zip_slip.rb:99:22:99:36 | call to full_name | zip_slip.rb:99:9:99:18 | entry_path | -| zip_slip.rb:123:7:123:8 | gz | zip_slip.rb:124:7:124:8 | gz | -| zip_slip.rb:123:12:123:34 | call to new | zip_slip.rb:123:7:123:8 | gz | -| zip_slip.rb:124:7:124:8 | gz | zip_slip.rb:124:19:124:23 | entry | -| zip_slip.rb:124:19:124:23 | entry | zip_slip.rb:125:22:125:26 | entry | -| zip_slip.rb:125:9:125:18 | entry_path | zip_slip.rb:126:21:126:30 | entry_path | -| zip_slip.rb:125:22:125:26 | entry | zip_slip.rb:125:22:125:36 | call to full_name | -| zip_slip.rb:125:22:125:36 | call to full_name | zip_slip.rb:125:9:125:18 | entry_path | +| zip_slip.rb:8:5:8:11 | tarfile | zip_slip.rb:9:5:9:11 | tarfile | provenance | | +| zip_slip.rb:8:15:8:54 | call to new | zip_slip.rb:8:5:8:11 | tarfile | provenance | | +| zip_slip.rb:9:5:9:11 | tarfile | zip_slip.rb:9:22:9:26 | entry | provenance | | +| zip_slip.rb:9:22:9:26 | entry | zip_slip.rb:10:19:10:23 | entry | provenance | | +| zip_slip.rb:10:19:10:23 | entry | zip_slip.rb:10:19:10:33 | call to full_name | provenance | | +| zip_slip.rb:20:50:20:56 | tarfile | zip_slip.rb:21:7:21:13 | tarfile | provenance | | +| zip_slip.rb:21:7:21:13 | tarfile | zip_slip.rb:21:30:21:34 | entry | provenance | | +| zip_slip.rb:21:30:21:34 | entry | zip_slip.rb:22:21:22:25 | entry | provenance | | +| zip_slip.rb:22:21:22:25 | entry | zip_slip.rb:22:21:22:35 | call to full_name | provenance | | +| zip_slip.rb:46:5:46:24 | call to open | zip_slip.rb:46:35:46:39 | entry | provenance | | +| zip_slip.rb:46:35:46:39 | entry | zip_slip.rb:47:17:47:21 | entry | provenance | | +| zip_slip.rb:47:17:47:21 | entry | zip_slip.rb:47:17:47:26 | call to name | provenance | | +| zip_slip.rb:56:30:56:37 | zip_file | zip_slip.rb:57:7:57:14 | zip_file | provenance | | +| zip_slip.rb:57:7:57:14 | zip_file | zip_slip.rb:57:25:57:29 | entry | provenance | | +| zip_slip.rb:57:25:57:29 | entry | zip_slip.rb:58:19:58:23 | entry | provenance | | +| zip_slip.rb:58:19:58:23 | entry | zip_slip.rb:58:19:58:28 | call to name | provenance | | +| zip_slip.rb:90:5:90:8 | gzip | zip_slip.rb:91:11:91:14 | gzip | provenance | | +| zip_slip.rb:90:12:90:54 | call to open | zip_slip.rb:90:5:90:8 | gzip | provenance | | +| zip_slip.rb:91:11:91:14 | gzip | zip_slip.rb:97:42:97:56 | compressed_file | provenance | | +| zip_slip.rb:97:42:97:56 | compressed_file | zip_slip.rb:98:7:98:21 | compressed_file | provenance | | +| zip_slip.rb:98:7:98:21 | compressed_file | zip_slip.rb:98:32:98:36 | entry | provenance | | +| zip_slip.rb:98:32:98:36 | entry | zip_slip.rb:99:22:99:26 | entry | provenance | | +| zip_slip.rb:99:9:99:18 | entry_path | zip_slip.rb:100:21:100:30 | entry_path | provenance | | +| zip_slip.rb:99:22:99:26 | entry | zip_slip.rb:99:22:99:36 | call to full_name | provenance | | +| zip_slip.rb:99:22:99:36 | call to full_name | zip_slip.rb:99:9:99:18 | entry_path | provenance | | +| zip_slip.rb:123:7:123:8 | gz | zip_slip.rb:124:7:124:8 | gz | provenance | | +| zip_slip.rb:123:12:123:34 | call to new | zip_slip.rb:123:7:123:8 | gz | provenance | | +| zip_slip.rb:124:7:124:8 | gz | zip_slip.rb:124:19:124:23 | entry | provenance | | +| zip_slip.rb:124:19:124:23 | entry | zip_slip.rb:125:22:125:26 | entry | provenance | | +| zip_slip.rb:125:9:125:18 | entry_path | zip_slip.rb:126:21:126:30 | entry_path | provenance | | +| zip_slip.rb:125:22:125:26 | entry | zip_slip.rb:125:22:125:36 | call to full_name | provenance | | +| zip_slip.rb:125:22:125:36 | call to full_name | zip_slip.rb:125:9:125:18 | entry_path | provenance | | nodes | zip_slip.rb:8:5:8:11 | tarfile | semmle.label | tarfile | | zip_slip.rb:8:15:8:54 | call to new | semmle.label | call to new | diff --git a/ruby/ql/test/query-tests/experimental/cwe-176/UnicodeBypassValidation.expected b/ruby/ql/test/query-tests/experimental/cwe-176/UnicodeBypassValidation.expected index b79057a8479a..da4709abe453 100644 --- a/ruby/ql/test/query-tests/experimental/cwe-176/UnicodeBypassValidation.expected +++ b/ruby/ql/test/query-tests/experimental/cwe-176/UnicodeBypassValidation.expected @@ -1,34 +1,34 @@ edges -| unicode_normalization.rb:7:5:7:17 | unicode_input | unicode_normalization.rb:8:23:8:35 | unicode_input | -| unicode_normalization.rb:7:5:7:17 | unicode_input | unicode_normalization.rb:9:22:9:34 | unicode_input | -| unicode_normalization.rb:7:21:7:26 | call to params | unicode_normalization.rb:7:21:7:42 | ...[...] | -| unicode_normalization.rb:7:21:7:42 | ...[...] | unicode_normalization.rb:7:5:7:17 | unicode_input | -| unicode_normalization.rb:15:5:15:17 | unicode_input | unicode_normalization.rb:16:27:16:39 | unicode_input | -| unicode_normalization.rb:15:5:15:17 | unicode_input | unicode_normalization.rb:16:27:16:39 | unicode_input | -| unicode_normalization.rb:15:21:15:26 | call to params | unicode_normalization.rb:15:21:15:42 | ...[...] | -| unicode_normalization.rb:15:21:15:26 | call to params | unicode_normalization.rb:15:21:15:42 | ...[...] | -| unicode_normalization.rb:15:21:15:42 | ...[...] | unicode_normalization.rb:15:5:15:17 | unicode_input | -| unicode_normalization.rb:15:21:15:42 | ...[...] | unicode_normalization.rb:15:5:15:17 | unicode_input | -| unicode_normalization.rb:16:5:16:23 | unicode_input_manip | unicode_normalization.rb:17:23:17:41 | unicode_input_manip | -| unicode_normalization.rb:16:5:16:23 | unicode_input_manip | unicode_normalization.rb:18:22:18:40 | unicode_input_manip | -| unicode_normalization.rb:16:27:16:39 | unicode_input | unicode_normalization.rb:16:27:16:59 | call to sub | -| unicode_normalization.rb:16:27:16:39 | unicode_input | unicode_normalization.rb:16:27:16:59 | call to sub | -| unicode_normalization.rb:16:27:16:59 | call to sub | unicode_normalization.rb:16:5:16:23 | unicode_input_manip | -| unicode_normalization.rb:24:5:24:17 | unicode_input | unicode_normalization.rb:25:37:25:49 | unicode_input | -| unicode_normalization.rb:24:21:24:26 | call to params | unicode_normalization.rb:24:21:24:42 | ...[...] | -| unicode_normalization.rb:24:21:24:42 | ...[...] | unicode_normalization.rb:24:5:24:17 | unicode_input | -| unicode_normalization.rb:25:5:25:21 | unicode_html_safe | unicode_normalization.rb:26:23:26:39 | unicode_html_safe | -| unicode_normalization.rb:25:5:25:21 | unicode_html_safe | unicode_normalization.rb:27:22:27:38 | unicode_html_safe | -| unicode_normalization.rb:25:25:25:50 | call to html_escape | unicode_normalization.rb:25:5:25:21 | unicode_html_safe | -| unicode_normalization.rb:25:37:25:49 | unicode_input | unicode_normalization.rb:25:25:25:50 | call to html_escape | -| unicode_normalization.rb:33:5:33:17 | unicode_input | unicode_normalization.rb:34:40:34:52 | unicode_input | -| unicode_normalization.rb:33:21:33:26 | call to params | unicode_normalization.rb:33:21:33:42 | ...[...] | -| unicode_normalization.rb:33:21:33:42 | ...[...] | unicode_normalization.rb:33:5:33:17 | unicode_input | -| unicode_normalization.rb:34:5:34:21 | unicode_html_safe | unicode_normalization.rb:35:23:35:39 | unicode_html_safe | -| unicode_normalization.rb:34:5:34:21 | unicode_html_safe | unicode_normalization.rb:36:22:36:38 | unicode_html_safe | -| unicode_normalization.rb:34:25:34:53 | call to escapeHTML | unicode_normalization.rb:34:25:34:63 | call to html_safe | -| unicode_normalization.rb:34:25:34:63 | call to html_safe | unicode_normalization.rb:34:5:34:21 | unicode_html_safe | -| unicode_normalization.rb:34:40:34:52 | unicode_input | unicode_normalization.rb:34:25:34:53 | call to escapeHTML | +| unicode_normalization.rb:7:5:7:17 | unicode_input | unicode_normalization.rb:8:23:8:35 | unicode_input | provenance | | +| unicode_normalization.rb:7:5:7:17 | unicode_input | unicode_normalization.rb:9:22:9:34 | unicode_input | provenance | | +| unicode_normalization.rb:7:21:7:26 | call to params | unicode_normalization.rb:7:21:7:42 | ...[...] | provenance | | +| unicode_normalization.rb:7:21:7:42 | ...[...] | unicode_normalization.rb:7:5:7:17 | unicode_input | provenance | | +| unicode_normalization.rb:15:5:15:17 | unicode_input | unicode_normalization.rb:16:27:16:39 | unicode_input | provenance | | +| unicode_normalization.rb:15:5:15:17 | unicode_input | unicode_normalization.rb:16:27:16:39 | unicode_input | provenance | | +| unicode_normalization.rb:15:21:15:26 | call to params | unicode_normalization.rb:15:21:15:42 | ...[...] | provenance | | +| unicode_normalization.rb:15:21:15:26 | call to params | unicode_normalization.rb:15:21:15:42 | ...[...] | provenance | | +| unicode_normalization.rb:15:21:15:42 | ...[...] | unicode_normalization.rb:15:5:15:17 | unicode_input | provenance | | +| unicode_normalization.rb:15:21:15:42 | ...[...] | unicode_normalization.rb:15:5:15:17 | unicode_input | provenance | | +| unicode_normalization.rb:16:5:16:23 | unicode_input_manip | unicode_normalization.rb:17:23:17:41 | unicode_input_manip | provenance | | +| unicode_normalization.rb:16:5:16:23 | unicode_input_manip | unicode_normalization.rb:18:22:18:40 | unicode_input_manip | provenance | | +| unicode_normalization.rb:16:27:16:39 | unicode_input | unicode_normalization.rb:16:27:16:59 | call to sub | provenance | | +| unicode_normalization.rb:16:27:16:39 | unicode_input | unicode_normalization.rb:16:27:16:59 | call to sub | provenance | | +| unicode_normalization.rb:16:27:16:59 | call to sub | unicode_normalization.rb:16:5:16:23 | unicode_input_manip | provenance | | +| unicode_normalization.rb:24:5:24:17 | unicode_input | unicode_normalization.rb:25:37:25:49 | unicode_input | provenance | | +| unicode_normalization.rb:24:21:24:26 | call to params | unicode_normalization.rb:24:21:24:42 | ...[...] | provenance | | +| unicode_normalization.rb:24:21:24:42 | ...[...] | unicode_normalization.rb:24:5:24:17 | unicode_input | provenance | | +| unicode_normalization.rb:25:5:25:21 | unicode_html_safe | unicode_normalization.rb:26:23:26:39 | unicode_html_safe | provenance | | +| unicode_normalization.rb:25:5:25:21 | unicode_html_safe | unicode_normalization.rb:27:22:27:38 | unicode_html_safe | provenance | | +| unicode_normalization.rb:25:25:25:50 | call to html_escape | unicode_normalization.rb:25:5:25:21 | unicode_html_safe | provenance | | +| unicode_normalization.rb:25:37:25:49 | unicode_input | unicode_normalization.rb:25:25:25:50 | call to html_escape | provenance | | +| unicode_normalization.rb:33:5:33:17 | unicode_input | unicode_normalization.rb:34:40:34:52 | unicode_input | provenance | | +| unicode_normalization.rb:33:21:33:26 | call to params | unicode_normalization.rb:33:21:33:42 | ...[...] | provenance | | +| unicode_normalization.rb:33:21:33:42 | ...[...] | unicode_normalization.rb:33:5:33:17 | unicode_input | provenance | | +| unicode_normalization.rb:34:5:34:21 | unicode_html_safe | unicode_normalization.rb:35:23:35:39 | unicode_html_safe | provenance | | +| unicode_normalization.rb:34:5:34:21 | unicode_html_safe | unicode_normalization.rb:36:22:36:38 | unicode_html_safe | provenance | | +| unicode_normalization.rb:34:25:34:53 | call to escapeHTML | unicode_normalization.rb:34:25:34:63 | call to html_safe | provenance | | +| unicode_normalization.rb:34:25:34:63 | call to html_safe | unicode_normalization.rb:34:5:34:21 | unicode_html_safe | provenance | | +| unicode_normalization.rb:34:40:34:52 | unicode_input | unicode_normalization.rb:34:25:34:53 | call to escapeHTML | provenance | | nodes | unicode_normalization.rb:7:5:7:17 | unicode_input | semmle.label | unicode_input | | unicode_normalization.rb:7:21:7:26 | call to params | semmle.label | call to params | diff --git a/ruby/ql/test/query-tests/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.expected b/ruby/ql/test/query-tests/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.expected index 1f066c979b49..e0e85b75ebbe 100644 --- a/ruby/ql/test/query-tests/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.expected +++ b/ruby/ql/test/query-tests/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.expected @@ -1,16 +1,16 @@ edges -| ManuallyCheckHttpVerb.rb:11:5:11:10 | method | ManuallyCheckHttpVerb.rb:12:8:12:22 | ... == ... | -| ManuallyCheckHttpVerb.rb:11:14:11:24 | call to env | ManuallyCheckHttpVerb.rb:11:14:11:42 | ...[...] | -| ManuallyCheckHttpVerb.rb:11:14:11:42 | ...[...] | ManuallyCheckHttpVerb.rb:11:5:11:10 | method | -| ManuallyCheckHttpVerb.rb:19:5:19:10 | method | ManuallyCheckHttpVerb.rb:20:8:20:22 | ... == ... | -| ManuallyCheckHttpVerb.rb:19:14:19:35 | call to request_method | ManuallyCheckHttpVerb.rb:19:5:19:10 | method | -| ManuallyCheckHttpVerb.rb:27:5:27:10 | method | ManuallyCheckHttpVerb.rb:28:8:28:22 | ... == ... | -| ManuallyCheckHttpVerb.rb:27:14:27:27 | call to method | ManuallyCheckHttpVerb.rb:27:5:27:10 | method | -| ManuallyCheckHttpVerb.rb:35:5:35:10 | method | ManuallyCheckHttpVerb.rb:36:8:36:22 | ... == ... | -| ManuallyCheckHttpVerb.rb:35:14:35:39 | call to raw_request_method | ManuallyCheckHttpVerb.rb:35:5:35:10 | method | -| ManuallyCheckHttpVerb.rb:51:7:51:12 | method | ManuallyCheckHttpVerb.rb:52:10:52:23 | ... == ... | -| ManuallyCheckHttpVerb.rb:51:16:51:44 | call to request_method_symbol | ManuallyCheckHttpVerb.rb:51:7:51:12 | method | -| ManuallyCheckHttpVerb.rb:59:10:59:20 | call to env | ManuallyCheckHttpVerb.rb:59:10:59:38 | ...[...] | +| ManuallyCheckHttpVerb.rb:11:5:11:10 | method | ManuallyCheckHttpVerb.rb:12:8:12:22 | ... == ... | provenance | | +| ManuallyCheckHttpVerb.rb:11:14:11:24 | call to env | ManuallyCheckHttpVerb.rb:11:14:11:42 | ...[...] | provenance | | +| ManuallyCheckHttpVerb.rb:11:14:11:42 | ...[...] | ManuallyCheckHttpVerb.rb:11:5:11:10 | method | provenance | | +| ManuallyCheckHttpVerb.rb:19:5:19:10 | method | ManuallyCheckHttpVerb.rb:20:8:20:22 | ... == ... | provenance | | +| ManuallyCheckHttpVerb.rb:19:14:19:35 | call to request_method | ManuallyCheckHttpVerb.rb:19:5:19:10 | method | provenance | | +| ManuallyCheckHttpVerb.rb:27:5:27:10 | method | ManuallyCheckHttpVerb.rb:28:8:28:22 | ... == ... | provenance | | +| ManuallyCheckHttpVerb.rb:27:14:27:27 | call to method | ManuallyCheckHttpVerb.rb:27:5:27:10 | method | provenance | | +| ManuallyCheckHttpVerb.rb:35:5:35:10 | method | ManuallyCheckHttpVerb.rb:36:8:36:22 | ... == ... | provenance | | +| ManuallyCheckHttpVerb.rb:35:14:35:39 | call to raw_request_method | ManuallyCheckHttpVerb.rb:35:5:35:10 | method | provenance | | +| ManuallyCheckHttpVerb.rb:51:7:51:12 | method | ManuallyCheckHttpVerb.rb:52:10:52:23 | ... == ... | provenance | | +| ManuallyCheckHttpVerb.rb:51:16:51:44 | call to request_method_symbol | ManuallyCheckHttpVerb.rb:51:7:51:12 | method | provenance | | +| ManuallyCheckHttpVerb.rb:59:10:59:20 | call to env | ManuallyCheckHttpVerb.rb:59:10:59:38 | ...[...] | provenance | | nodes | ManuallyCheckHttpVerb.rb:4:8:4:19 | call to get? | semmle.label | call to get? | | ManuallyCheckHttpVerb.rb:11:5:11:10 | method | semmle.label | method | diff --git a/ruby/ql/test/query-tests/experimental/weak-params/WeakParams.expected b/ruby/ql/test/query-tests/experimental/weak-params/WeakParams.expected index d84d761c17aa..4f72a24cee77 100644 --- a/ruby/ql/test/query-tests/experimental/weak-params/WeakParams.expected +++ b/ruby/ql/test/query-tests/experimental/weak-params/WeakParams.expected @@ -1,8 +1,8 @@ edges -| WeakParams.rb:5:28:5:53 | call to request_parameters | WeakParams.rb:5:28:5:59 | ...[...] | -| WeakParams.rb:10:28:10:51 | call to query_parameters | WeakParams.rb:10:28:10:57 | ...[...] | -| WeakParams.rb:15:28:15:39 | call to POST | WeakParams.rb:15:28:15:45 | ...[...] | -| WeakParams.rb:20:28:20:38 | call to GET | WeakParams.rb:20:28:20:44 | ...[...] | +| WeakParams.rb:5:28:5:53 | call to request_parameters | WeakParams.rb:5:28:5:59 | ...[...] | provenance | | +| WeakParams.rb:10:28:10:51 | call to query_parameters | WeakParams.rb:10:28:10:57 | ...[...] | provenance | | +| WeakParams.rb:15:28:15:39 | call to POST | WeakParams.rb:15:28:15:45 | ...[...] | provenance | | +| WeakParams.rb:20:28:20:38 | call to GET | WeakParams.rb:20:28:20:44 | ...[...] | provenance | | nodes | WeakParams.rb:5:28:5:53 | call to request_parameters | semmle.label | call to request_parameters | | WeakParams.rb:5:28:5:59 | ...[...] | semmle.label | ...[...] | diff --git a/ruby/ql/test/query-tests/security/cwe-020/MissingFullAnchor/MissingFullAnchor.expected b/ruby/ql/test/query-tests/security/cwe-020/MissingFullAnchor/MissingFullAnchor.expected index f9b1241ea069..4032d044fd86 100644 --- a/ruby/ql/test/query-tests/security/cwe-020/MissingFullAnchor/MissingFullAnchor.expected +++ b/ruby/ql/test/query-tests/security/cwe-020/MissingFullAnchor/MissingFullAnchor.expected @@ -1,7 +1,7 @@ edges -| impl/miss-anchor.rb:2:12:2:15 | name | impl/miss-anchor.rb:3:39:3:42 | name | -| impl/miss-anchor.rb:6:12:6:15 | name | impl/miss-anchor.rb:7:43:7:46 | name | -| impl/miss-anchor.rb:14:12:14:15 | name | impl/miss-anchor.rb:15:47:15:50 | name | +| impl/miss-anchor.rb:2:12:2:15 | name | impl/miss-anchor.rb:3:39:3:42 | name | provenance | | +| impl/miss-anchor.rb:6:12:6:15 | name | impl/miss-anchor.rb:7:43:7:46 | name | provenance | | +| impl/miss-anchor.rb:14:12:14:15 | name | impl/miss-anchor.rb:15:47:15:50 | name | provenance | | nodes | impl/miss-anchor.rb:2:12:2:15 | name | semmle.label | name | | impl/miss-anchor.rb:3:39:3:42 | name | semmle.label | name | diff --git a/ruby/ql/test/query-tests/security/cwe-022/PathInjection.expected b/ruby/ql/test/query-tests/security/cwe-022/PathInjection.expected index a93fdd9f008d..fe9751e6585c 100644 --- a/ruby/ql/test/query-tests/security/cwe-022/PathInjection.expected +++ b/ruby/ql/test/query-tests/security/cwe-022/PathInjection.expected @@ -1,71 +1,71 @@ edges -| ArchiveApiPathTraversal.rb:5:26:5:31 | call to params | ArchiveApiPathTraversal.rb:5:26:5:42 | ...[...] | -| ArchiveApiPathTraversal.rb:5:26:5:42 | ...[...] | ArchiveApiPathTraversal.rb:49:17:49:27 | destination | -| ArchiveApiPathTraversal.rb:10:11:10:16 | call to params | ArchiveApiPathTraversal.rb:10:11:10:23 | ...[...] | -| ArchiveApiPathTraversal.rb:10:11:10:23 | ...[...] | ArchiveApiPathTraversal.rb:67:13:67:16 | file | -| ArchiveApiPathTraversal.rb:15:9:15:14 | call to params | ArchiveApiPathTraversal.rb:15:9:15:25 | ...[...] | -| ArchiveApiPathTraversal.rb:15:9:15:25 | ...[...] | ArchiveApiPathTraversal.rb:75:11:75:18 | filename | -| ArchiveApiPathTraversal.rb:49:17:49:27 | destination | ArchiveApiPathTraversal.rb:50:36:64:7 | do ... end [captured destination] | -| ArchiveApiPathTraversal.rb:50:36:64:7 | do ... end [captured destination] | ArchiveApiPathTraversal.rb:51:16:63:9 | do ... end [captured destination] | -| ArchiveApiPathTraversal.rb:51:16:63:9 | do ... end [captured destination] | ArchiveApiPathTraversal.rb:52:38:52:48 | destination | -| ArchiveApiPathTraversal.rb:52:9:52:24 | destination_file | ArchiveApiPathTraversal.rb:59:21:59:36 | destination_file | -| ArchiveApiPathTraversal.rb:52:28:52:67 | call to join | ArchiveApiPathTraversal.rb:52:9:52:24 | destination_file | -| ArchiveApiPathTraversal.rb:52:38:52:48 | destination | ArchiveApiPathTraversal.rb:52:28:52:67 | call to join | -| ArchiveApiPathTraversal.rb:67:13:67:16 | file | ArchiveApiPathTraversal.rb:68:20:68:23 | file | -| ArchiveApiPathTraversal.rb:75:11:75:18 | filename | ArchiveApiPathTraversal.rb:76:19:76:26 | filename | -| tainted_path.rb:4:5:4:8 | path | tainted_path.rb:5:26:5:29 | path | -| tainted_path.rb:4:12:4:17 | call to params | tainted_path.rb:4:12:4:24 | ...[...] | -| tainted_path.rb:4:12:4:24 | ...[...] | tainted_path.rb:4:5:4:8 | path | -| tainted_path.rb:10:5:10:8 | path | tainted_path.rb:11:26:11:29 | path | -| tainted_path.rb:10:12:10:43 | call to absolute_path | tainted_path.rb:10:5:10:8 | path | -| tainted_path.rb:10:31:10:36 | call to params | tainted_path.rb:10:31:10:43 | ...[...] | -| tainted_path.rb:10:31:10:43 | ...[...] | tainted_path.rb:10:12:10:43 | call to absolute_path | -| tainted_path.rb:16:5:16:8 | path | tainted_path.rb:17:26:17:29 | path | -| tainted_path.rb:16:15:16:41 | call to dirname | tainted_path.rb:16:5:16:8 | path | -| tainted_path.rb:16:28:16:33 | call to params | tainted_path.rb:16:28:16:40 | ...[...] | -| tainted_path.rb:16:28:16:40 | ...[...] | tainted_path.rb:16:15:16:41 | call to dirname | -| tainted_path.rb:22:5:22:8 | path | tainted_path.rb:23:26:23:29 | path | -| tainted_path.rb:22:12:22:41 | call to expand_path | tainted_path.rb:22:5:22:8 | path | -| tainted_path.rb:22:29:22:34 | call to params | tainted_path.rb:22:29:22:41 | ...[...] | -| tainted_path.rb:22:29:22:41 | ...[...] | tainted_path.rb:22:12:22:41 | call to expand_path | -| tainted_path.rb:28:5:28:8 | path | tainted_path.rb:29:26:29:29 | path | -| tainted_path.rb:28:12:28:34 | call to path | tainted_path.rb:28:5:28:8 | path | -| tainted_path.rb:28:22:28:27 | call to params | tainted_path.rb:28:22:28:34 | ...[...] | -| tainted_path.rb:28:22:28:34 | ...[...] | tainted_path.rb:28:12:28:34 | call to path | -| tainted_path.rb:34:5:34:8 | path | tainted_path.rb:35:26:35:29 | path | -| tainted_path.rb:34:12:34:41 | call to realdirpath | tainted_path.rb:34:5:34:8 | path | -| tainted_path.rb:34:29:34:34 | call to params | tainted_path.rb:34:29:34:41 | ...[...] | -| tainted_path.rb:34:29:34:41 | ...[...] | tainted_path.rb:34:12:34:41 | call to realdirpath | -| tainted_path.rb:40:5:40:8 | path | tainted_path.rb:41:26:41:29 | path | -| tainted_path.rb:40:12:40:38 | call to realpath | tainted_path.rb:40:5:40:8 | path | -| tainted_path.rb:40:26:40:31 | call to params | tainted_path.rb:40:26:40:38 | ...[...] | -| tainted_path.rb:40:26:40:38 | ...[...] | tainted_path.rb:40:12:40:38 | call to realpath | -| tainted_path.rb:47:5:47:8 | path | tainted_path.rb:48:26:48:29 | path | -| tainted_path.rb:47:12:47:63 | call to join | tainted_path.rb:47:5:47:8 | path | -| tainted_path.rb:47:43:47:48 | call to params | tainted_path.rb:47:43:47:55 | ...[...] | -| tainted_path.rb:47:43:47:55 | ...[...] | tainted_path.rb:47:12:47:63 | call to join | -| tainted_path.rb:59:5:59:8 | path | tainted_path.rb:60:26:60:29 | path | -| tainted_path.rb:59:12:59:53 | call to new | tainted_path.rb:59:5:59:8 | path | -| tainted_path.rb:59:40:59:45 | call to params | tainted_path.rb:59:40:59:52 | ...[...] | -| tainted_path.rb:59:40:59:52 | ...[...] | tainted_path.rb:59:12:59:53 | call to new | -| tainted_path.rb:71:5:71:8 | path | tainted_path.rb:72:15:72:18 | path | -| tainted_path.rb:71:12:71:53 | call to new | tainted_path.rb:71:5:71:8 | path | -| tainted_path.rb:71:40:71:45 | call to params | tainted_path.rb:71:40:71:52 | ...[...] | -| tainted_path.rb:71:40:71:52 | ...[...] | tainted_path.rb:71:12:71:53 | call to new | -| tainted_path.rb:77:5:77:8 | path | tainted_path.rb:78:19:78:22 | path | -| tainted_path.rb:77:5:77:8 | path | tainted_path.rb:79:14:79:17 | path | -| tainted_path.rb:77:12:77:53 | call to new | tainted_path.rb:77:5:77:8 | path | -| tainted_path.rb:77:40:77:45 | call to params | tainted_path.rb:77:40:77:52 | ...[...] | -| tainted_path.rb:77:40:77:52 | ...[...] | tainted_path.rb:77:12:77:53 | call to new | -| tainted_path.rb:84:5:84:8 | path | tainted_path.rb:85:10:85:13 | path | -| tainted_path.rb:84:5:84:8 | path | tainted_path.rb:86:25:86:28 | path | -| tainted_path.rb:84:12:84:53 | call to new | tainted_path.rb:84:5:84:8 | path | -| tainted_path.rb:84:40:84:45 | call to params | tainted_path.rb:84:40:84:52 | ...[...] | -| tainted_path.rb:84:40:84:52 | ...[...] | tainted_path.rb:84:12:84:53 | call to new | -| tainted_path.rb:90:5:90:8 | path | tainted_path.rb:92:11:92:14 | path | -| tainted_path.rb:90:12:90:53 | call to new | tainted_path.rb:90:5:90:8 | path | -| tainted_path.rb:90:40:90:45 | call to params | tainted_path.rb:90:40:90:52 | ...[...] | -| tainted_path.rb:90:40:90:52 | ...[...] | tainted_path.rb:90:12:90:53 | call to new | +| ArchiveApiPathTraversal.rb:5:26:5:31 | call to params | ArchiveApiPathTraversal.rb:5:26:5:42 | ...[...] | provenance | | +| ArchiveApiPathTraversal.rb:5:26:5:42 | ...[...] | ArchiveApiPathTraversal.rb:49:17:49:27 | destination | provenance | | +| ArchiveApiPathTraversal.rb:10:11:10:16 | call to params | ArchiveApiPathTraversal.rb:10:11:10:23 | ...[...] | provenance | | +| ArchiveApiPathTraversal.rb:10:11:10:23 | ...[...] | ArchiveApiPathTraversal.rb:67:13:67:16 | file | provenance | | +| ArchiveApiPathTraversal.rb:15:9:15:14 | call to params | ArchiveApiPathTraversal.rb:15:9:15:25 | ...[...] | provenance | | +| ArchiveApiPathTraversal.rb:15:9:15:25 | ...[...] | ArchiveApiPathTraversal.rb:75:11:75:18 | filename | provenance | | +| ArchiveApiPathTraversal.rb:49:17:49:27 | destination | ArchiveApiPathTraversal.rb:50:36:64:7 | do ... end [captured destination] | provenance | | +| ArchiveApiPathTraversal.rb:50:36:64:7 | do ... end [captured destination] | ArchiveApiPathTraversal.rb:51:16:63:9 | do ... end [captured destination] | provenance | | +| ArchiveApiPathTraversal.rb:51:16:63:9 | do ... end [captured destination] | ArchiveApiPathTraversal.rb:52:38:52:48 | destination | provenance | | +| ArchiveApiPathTraversal.rb:52:9:52:24 | destination_file | ArchiveApiPathTraversal.rb:59:21:59:36 | destination_file | provenance | | +| ArchiveApiPathTraversal.rb:52:28:52:67 | call to join | ArchiveApiPathTraversal.rb:52:9:52:24 | destination_file | provenance | | +| ArchiveApiPathTraversal.rb:52:38:52:48 | destination | ArchiveApiPathTraversal.rb:52:28:52:67 | call to join | provenance | | +| ArchiveApiPathTraversal.rb:67:13:67:16 | file | ArchiveApiPathTraversal.rb:68:20:68:23 | file | provenance | | +| ArchiveApiPathTraversal.rb:75:11:75:18 | filename | ArchiveApiPathTraversal.rb:76:19:76:26 | filename | provenance | | +| tainted_path.rb:4:5:4:8 | path | tainted_path.rb:5:26:5:29 | path | provenance | | +| tainted_path.rb:4:12:4:17 | call to params | tainted_path.rb:4:12:4:24 | ...[...] | provenance | | +| tainted_path.rb:4:12:4:24 | ...[...] | tainted_path.rb:4:5:4:8 | path | provenance | | +| tainted_path.rb:10:5:10:8 | path | tainted_path.rb:11:26:11:29 | path | provenance | | +| tainted_path.rb:10:12:10:43 | call to absolute_path | tainted_path.rb:10:5:10:8 | path | provenance | | +| tainted_path.rb:10:31:10:36 | call to params | tainted_path.rb:10:31:10:43 | ...[...] | provenance | | +| tainted_path.rb:10:31:10:43 | ...[...] | tainted_path.rb:10:12:10:43 | call to absolute_path | provenance | | +| tainted_path.rb:16:5:16:8 | path | tainted_path.rb:17:26:17:29 | path | provenance | | +| tainted_path.rb:16:15:16:41 | call to dirname | tainted_path.rb:16:5:16:8 | path | provenance | | +| tainted_path.rb:16:28:16:33 | call to params | tainted_path.rb:16:28:16:40 | ...[...] | provenance | | +| tainted_path.rb:16:28:16:40 | ...[...] | tainted_path.rb:16:15:16:41 | call to dirname | provenance | | +| tainted_path.rb:22:5:22:8 | path | tainted_path.rb:23:26:23:29 | path | provenance | | +| tainted_path.rb:22:12:22:41 | call to expand_path | tainted_path.rb:22:5:22:8 | path | provenance | | +| tainted_path.rb:22:29:22:34 | call to params | tainted_path.rb:22:29:22:41 | ...[...] | provenance | | +| tainted_path.rb:22:29:22:41 | ...[...] | tainted_path.rb:22:12:22:41 | call to expand_path | provenance | | +| tainted_path.rb:28:5:28:8 | path | tainted_path.rb:29:26:29:29 | path | provenance | | +| tainted_path.rb:28:12:28:34 | call to path | tainted_path.rb:28:5:28:8 | path | provenance | | +| tainted_path.rb:28:22:28:27 | call to params | tainted_path.rb:28:22:28:34 | ...[...] | provenance | | +| tainted_path.rb:28:22:28:34 | ...[...] | tainted_path.rb:28:12:28:34 | call to path | provenance | | +| tainted_path.rb:34:5:34:8 | path | tainted_path.rb:35:26:35:29 | path | provenance | | +| tainted_path.rb:34:12:34:41 | call to realdirpath | tainted_path.rb:34:5:34:8 | path | provenance | | +| tainted_path.rb:34:29:34:34 | call to params | tainted_path.rb:34:29:34:41 | ...[...] | provenance | | +| tainted_path.rb:34:29:34:41 | ...[...] | tainted_path.rb:34:12:34:41 | call to realdirpath | provenance | | +| tainted_path.rb:40:5:40:8 | path | tainted_path.rb:41:26:41:29 | path | provenance | | +| tainted_path.rb:40:12:40:38 | call to realpath | tainted_path.rb:40:5:40:8 | path | provenance | | +| tainted_path.rb:40:26:40:31 | call to params | tainted_path.rb:40:26:40:38 | ...[...] | provenance | | +| tainted_path.rb:40:26:40:38 | ...[...] | tainted_path.rb:40:12:40:38 | call to realpath | provenance | | +| tainted_path.rb:47:5:47:8 | path | tainted_path.rb:48:26:48:29 | path | provenance | | +| tainted_path.rb:47:12:47:63 | call to join | tainted_path.rb:47:5:47:8 | path | provenance | | +| tainted_path.rb:47:43:47:48 | call to params | tainted_path.rb:47:43:47:55 | ...[...] | provenance | | +| tainted_path.rb:47:43:47:55 | ...[...] | tainted_path.rb:47:12:47:63 | call to join | provenance | | +| tainted_path.rb:59:5:59:8 | path | tainted_path.rb:60:26:60:29 | path | provenance | | +| tainted_path.rb:59:12:59:53 | call to new | tainted_path.rb:59:5:59:8 | path | provenance | | +| tainted_path.rb:59:40:59:45 | call to params | tainted_path.rb:59:40:59:52 | ...[...] | provenance | | +| tainted_path.rb:59:40:59:52 | ...[...] | tainted_path.rb:59:12:59:53 | call to new | provenance | | +| tainted_path.rb:71:5:71:8 | path | tainted_path.rb:72:15:72:18 | path | provenance | | +| tainted_path.rb:71:12:71:53 | call to new | tainted_path.rb:71:5:71:8 | path | provenance | | +| tainted_path.rb:71:40:71:45 | call to params | tainted_path.rb:71:40:71:52 | ...[...] | provenance | | +| tainted_path.rb:71:40:71:52 | ...[...] | tainted_path.rb:71:12:71:53 | call to new | provenance | | +| tainted_path.rb:77:5:77:8 | path | tainted_path.rb:78:19:78:22 | path | provenance | | +| tainted_path.rb:77:5:77:8 | path | tainted_path.rb:79:14:79:17 | path | provenance | | +| tainted_path.rb:77:12:77:53 | call to new | tainted_path.rb:77:5:77:8 | path | provenance | | +| tainted_path.rb:77:40:77:45 | call to params | tainted_path.rb:77:40:77:52 | ...[...] | provenance | | +| tainted_path.rb:77:40:77:52 | ...[...] | tainted_path.rb:77:12:77:53 | call to new | provenance | | +| tainted_path.rb:84:5:84:8 | path | tainted_path.rb:85:10:85:13 | path | provenance | | +| tainted_path.rb:84:5:84:8 | path | tainted_path.rb:86:25:86:28 | path | provenance | | +| tainted_path.rb:84:12:84:53 | call to new | tainted_path.rb:84:5:84:8 | path | provenance | | +| tainted_path.rb:84:40:84:45 | call to params | tainted_path.rb:84:40:84:52 | ...[...] | provenance | | +| tainted_path.rb:84:40:84:52 | ...[...] | tainted_path.rb:84:12:84:53 | call to new | provenance | | +| tainted_path.rb:90:5:90:8 | path | tainted_path.rb:92:11:92:14 | path | provenance | | +| tainted_path.rb:90:12:90:53 | call to new | tainted_path.rb:90:5:90:8 | path | provenance | | +| tainted_path.rb:90:40:90:45 | call to params | tainted_path.rb:90:40:90:52 | ...[...] | provenance | | +| tainted_path.rb:90:40:90:52 | ...[...] | tainted_path.rb:90:12:90:53 | call to new | provenance | | nodes | ArchiveApiPathTraversal.rb:5:26:5:31 | call to params | semmle.label | call to params | | ArchiveApiPathTraversal.rb:5:26:5:42 | ...[...] | semmle.label | ...[...] | diff --git a/ruby/ql/test/query-tests/security/cwe-078/CommandInjection/CommandInjection.expected b/ruby/ql/test/query-tests/security/cwe-078/CommandInjection/CommandInjection.expected index 24ae9c623200..be4473409b78 100644 --- a/ruby/ql/test/query-tests/security/cwe-078/CommandInjection/CommandInjection.expected +++ b/ruby/ql/test/query-tests/security/cwe-078/CommandInjection/CommandInjection.expected @@ -1,26 +1,26 @@ edges -| CommandInjection.rb:6:9:6:11 | cmd | CommandInjection.rb:7:10:7:15 | #{...} | -| CommandInjection.rb:6:9:6:11 | cmd | CommandInjection.rb:8:16:8:18 | cmd | -| CommandInjection.rb:6:9:6:11 | cmd | CommandInjection.rb:10:14:10:16 | cmd | -| CommandInjection.rb:6:9:6:11 | cmd | CommandInjection.rb:11:17:11:22 | #{...} | -| CommandInjection.rb:6:9:6:11 | cmd | CommandInjection.rb:13:9:13:14 | #{...} | -| CommandInjection.rb:6:9:6:11 | cmd | CommandInjection.rb:29:19:29:24 | #{...} | -| CommandInjection.rb:6:9:6:11 | cmd | CommandInjection.rb:33:24:33:36 | "echo #{...}" | -| CommandInjection.rb:6:9:6:11 | cmd | CommandInjection.rb:34:39:34:51 | "grep #{...}" | -| CommandInjection.rb:6:15:6:20 | call to params | CommandInjection.rb:6:15:6:26 | ...[...] | -| CommandInjection.rb:6:15:6:26 | ...[...] | CommandInjection.rb:6:9:6:11 | cmd | -| CommandInjection.rb:46:9:46:11 | cmd | CommandInjection.rb:50:24:50:36 | "echo #{...}" | -| CommandInjection.rb:46:15:46:20 | call to params | CommandInjection.rb:46:15:46:26 | ...[...] | -| CommandInjection.rb:46:15:46:26 | ...[...] | CommandInjection.rb:46:9:46:11 | cmd | -| CommandInjection.rb:54:7:54:9 | cmd | CommandInjection.rb:59:14:59:16 | cmd | -| CommandInjection.rb:54:13:54:18 | call to params | CommandInjection.rb:54:13:54:24 | ...[...] | -| CommandInjection.rb:54:13:54:24 | ...[...] | CommandInjection.rb:54:7:54:9 | cmd | -| CommandInjection.rb:73:18:73:23 | number | CommandInjection.rb:74:14:74:29 | "echo #{...}" | -| CommandInjection.rb:81:23:81:33 | blah_number | CommandInjection.rb:82:14:82:34 | "echo #{...}" | -| CommandInjection.rb:91:22:91:37 | ...[...] | CommandInjection.rb:91:14:91:39 | "echo #{...}" | -| CommandInjection.rb:103:9:103:12 | file | CommandInjection.rb:104:16:104:28 | "cat #{...}" | -| CommandInjection.rb:103:16:103:21 | call to params | CommandInjection.rb:103:16:103:28 | ...[...] | -| CommandInjection.rb:103:16:103:28 | ...[...] | CommandInjection.rb:103:9:103:12 | file | +| CommandInjection.rb:6:9:6:11 | cmd | CommandInjection.rb:7:10:7:15 | #{...} | provenance | | +| CommandInjection.rb:6:9:6:11 | cmd | CommandInjection.rb:8:16:8:18 | cmd | provenance | | +| CommandInjection.rb:6:9:6:11 | cmd | CommandInjection.rb:10:14:10:16 | cmd | provenance | | +| CommandInjection.rb:6:9:6:11 | cmd | CommandInjection.rb:11:17:11:22 | #{...} | provenance | | +| CommandInjection.rb:6:9:6:11 | cmd | CommandInjection.rb:13:9:13:14 | #{...} | provenance | | +| CommandInjection.rb:6:9:6:11 | cmd | CommandInjection.rb:29:19:29:24 | #{...} | provenance | | +| CommandInjection.rb:6:9:6:11 | cmd | CommandInjection.rb:33:24:33:36 | "echo #{...}" | provenance | | +| CommandInjection.rb:6:9:6:11 | cmd | CommandInjection.rb:34:39:34:51 | "grep #{...}" | provenance | | +| CommandInjection.rb:6:15:6:20 | call to params | CommandInjection.rb:6:15:6:26 | ...[...] | provenance | | +| CommandInjection.rb:6:15:6:26 | ...[...] | CommandInjection.rb:6:9:6:11 | cmd | provenance | | +| CommandInjection.rb:46:9:46:11 | cmd | CommandInjection.rb:50:24:50:36 | "echo #{...}" | provenance | | +| CommandInjection.rb:46:15:46:20 | call to params | CommandInjection.rb:46:15:46:26 | ...[...] | provenance | | +| CommandInjection.rb:46:15:46:26 | ...[...] | CommandInjection.rb:46:9:46:11 | cmd | provenance | | +| CommandInjection.rb:54:7:54:9 | cmd | CommandInjection.rb:59:14:59:16 | cmd | provenance | | +| CommandInjection.rb:54:13:54:18 | call to params | CommandInjection.rb:54:13:54:24 | ...[...] | provenance | | +| CommandInjection.rb:54:13:54:24 | ...[...] | CommandInjection.rb:54:7:54:9 | cmd | provenance | | +| CommandInjection.rb:73:18:73:23 | number | CommandInjection.rb:74:14:74:29 | "echo #{...}" | provenance | | +| CommandInjection.rb:81:23:81:33 | blah_number | CommandInjection.rb:82:14:82:34 | "echo #{...}" | provenance | | +| CommandInjection.rb:91:22:91:37 | ...[...] | CommandInjection.rb:91:14:91:39 | "echo #{...}" | provenance | | +| CommandInjection.rb:103:9:103:12 | file | CommandInjection.rb:104:16:104:28 | "cat #{...}" | provenance | | +| CommandInjection.rb:103:16:103:21 | call to params | CommandInjection.rb:103:16:103:28 | ...[...] | provenance | | +| CommandInjection.rb:103:16:103:28 | ...[...] | CommandInjection.rb:103:9:103:12 | file | provenance | | nodes | CommandInjection.rb:6:9:6:11 | cmd | semmle.label | cmd | | CommandInjection.rb:6:15:6:20 | call to params | semmle.label | call to params | diff --git a/ruby/ql/test/query-tests/security/cwe-078/KernelOpen/KernelOpen.expected b/ruby/ql/test/query-tests/security/cwe-078/KernelOpen/KernelOpen.expected index 506ea30d53c3..67e618a3a1fd 100644 --- a/ruby/ql/test/query-tests/security/cwe-078/KernelOpen/KernelOpen.expected +++ b/ruby/ql/test/query-tests/security/cwe-078/KernelOpen/KernelOpen.expected @@ -1,17 +1,17 @@ edges -| KernelOpen.rb:3:5:3:8 | file | KernelOpen.rb:4:10:4:13 | file | -| KernelOpen.rb:3:5:3:8 | file | KernelOpen.rb:5:13:5:16 | file | -| KernelOpen.rb:3:5:3:8 | file | KernelOpen.rb:6:14:6:17 | file | -| KernelOpen.rb:3:5:3:8 | file | KernelOpen.rb:7:16:7:19 | file | -| KernelOpen.rb:3:5:3:8 | file | KernelOpen.rb:8:17:8:20 | file | -| KernelOpen.rb:3:5:3:8 | file | KernelOpen.rb:9:16:9:19 | file | -| KernelOpen.rb:3:5:3:8 | file | KernelOpen.rb:10:18:10:21 | file | -| KernelOpen.rb:3:5:3:8 | file | KernelOpen.rb:11:14:11:17 | file | -| KernelOpen.rb:3:5:3:8 | file | KernelOpen.rb:13:23:13:26 | file | -| KernelOpen.rb:3:5:3:8 | file | KernelOpen.rb:26:10:26:13 | file | -| KernelOpen.rb:3:12:3:17 | call to params | KernelOpen.rb:3:12:3:24 | ...[...] | -| KernelOpen.rb:3:12:3:24 | ...[...] | KernelOpen.rb:3:5:3:8 | file | -| KernelOpen.rb:13:23:13:26 | file | KernelOpen.rb:13:13:13:31 | call to join | +| KernelOpen.rb:3:5:3:8 | file | KernelOpen.rb:4:10:4:13 | file | provenance | | +| KernelOpen.rb:3:5:3:8 | file | KernelOpen.rb:5:13:5:16 | file | provenance | | +| KernelOpen.rb:3:5:3:8 | file | KernelOpen.rb:6:14:6:17 | file | provenance | | +| KernelOpen.rb:3:5:3:8 | file | KernelOpen.rb:7:16:7:19 | file | provenance | | +| KernelOpen.rb:3:5:3:8 | file | KernelOpen.rb:8:17:8:20 | file | provenance | | +| KernelOpen.rb:3:5:3:8 | file | KernelOpen.rb:9:16:9:19 | file | provenance | | +| KernelOpen.rb:3:5:3:8 | file | KernelOpen.rb:10:18:10:21 | file | provenance | | +| KernelOpen.rb:3:5:3:8 | file | KernelOpen.rb:11:14:11:17 | file | provenance | | +| KernelOpen.rb:3:5:3:8 | file | KernelOpen.rb:13:23:13:26 | file | provenance | | +| KernelOpen.rb:3:5:3:8 | file | KernelOpen.rb:26:10:26:13 | file | provenance | | +| KernelOpen.rb:3:12:3:17 | call to params | KernelOpen.rb:3:12:3:24 | ...[...] | provenance | | +| KernelOpen.rb:3:12:3:24 | ...[...] | KernelOpen.rb:3:5:3:8 | file | provenance | | +| KernelOpen.rb:13:23:13:26 | file | KernelOpen.rb:13:13:13:31 | call to join | provenance | | nodes | KernelOpen.rb:3:5:3:8 | file | semmle.label | file | | KernelOpen.rb:3:12:3:17 | call to params | semmle.label | call to params | diff --git a/ruby/ql/test/query-tests/security/cwe-078/UnsafeShellCommandConstruction/UnsafeShellCommandConstruction.expected b/ruby/ql/test/query-tests/security/cwe-078/UnsafeShellCommandConstruction/UnsafeShellCommandConstruction.expected index a8ded2881ede..ae05501bfa7e 100644 --- a/ruby/ql/test/query-tests/security/cwe-078/UnsafeShellCommandConstruction/UnsafeShellCommandConstruction.expected +++ b/ruby/ql/test/query-tests/security/cwe-078/UnsafeShellCommandConstruction/UnsafeShellCommandConstruction.expected @@ -1,21 +1,21 @@ edges -| impl/sub/notImported.rb:2:12:2:17 | target | impl/sub/notImported.rb:3:19:3:27 | #{...} | -| impl/sub/other2.rb:2:12:2:17 | target | impl/sub/other2.rb:3:19:3:27 | #{...} | -| impl/sub/other.rb:2:12:2:17 | target | impl/sub/other.rb:3:19:3:27 | #{...} | -| impl/unsafeShell.rb:2:12:2:17 | target | impl/unsafeShell.rb:3:19:3:27 | #{...} | -| impl/unsafeShell.rb:6:12:6:12 | x | impl/unsafeShell.rb:7:32:7:32 | x | -| impl/unsafeShell.rb:15:47:15:64 | innocent_file_path | impl/unsafeShell.rb:20:21:20:41 | #{...} | -| impl/unsafeShell.rb:23:15:23:23 | file_path | impl/unsafeShell.rb:26:19:26:30 | #{...} | -| impl/unsafeShell.rb:33:12:33:17 | target | impl/unsafeShell.rb:34:19:34:27 | #{...} | -| impl/unsafeShell.rb:37:10:37:10 | x | impl/unsafeShell.rb:38:19:38:22 | #{...} | -| impl/unsafeShell.rb:47:16:47:21 | target | impl/unsafeShell.rb:48:19:48:27 | #{...} | -| impl/unsafeShell.rb:51:17:51:17 | x | impl/unsafeShell.rb:52:14:52:14 | x | -| impl/unsafeShell.rb:51:17:51:17 | x | impl/unsafeShell.rb:54:29:54:29 | x | -| impl/unsafeShell.rb:57:21:57:21 | x | impl/unsafeShell.rb:58:23:58:23 | x | -| impl/unsafeShell.rb:61:20:61:20 | x | impl/unsafeShell.rb:63:14:63:14 | x | -| impl/unsafeShell.rb:63:5:63:7 | [post] arr [element] | impl/unsafeShell.rb:64:14:64:16 | arr | -| impl/unsafeShell.rb:63:5:63:7 | [post] arr [element] | impl/unsafeShell.rb:68:14:68:16 | arr | -| impl/unsafeShell.rb:63:14:63:14 | x | impl/unsafeShell.rb:63:5:63:7 | [post] arr [element] | +| impl/sub/notImported.rb:2:12:2:17 | target | impl/sub/notImported.rb:3:19:3:27 | #{...} | provenance | | +| impl/sub/other2.rb:2:12:2:17 | target | impl/sub/other2.rb:3:19:3:27 | #{...} | provenance | | +| impl/sub/other.rb:2:12:2:17 | target | impl/sub/other.rb:3:19:3:27 | #{...} | provenance | | +| impl/unsafeShell.rb:2:12:2:17 | target | impl/unsafeShell.rb:3:19:3:27 | #{...} | provenance | | +| impl/unsafeShell.rb:6:12:6:12 | x | impl/unsafeShell.rb:7:32:7:32 | x | provenance | | +| impl/unsafeShell.rb:15:47:15:64 | innocent_file_path | impl/unsafeShell.rb:20:21:20:41 | #{...} | provenance | | +| impl/unsafeShell.rb:23:15:23:23 | file_path | impl/unsafeShell.rb:26:19:26:30 | #{...} | provenance | | +| impl/unsafeShell.rb:33:12:33:17 | target | impl/unsafeShell.rb:34:19:34:27 | #{...} | provenance | | +| impl/unsafeShell.rb:37:10:37:10 | x | impl/unsafeShell.rb:38:19:38:22 | #{...} | provenance | | +| impl/unsafeShell.rb:47:16:47:21 | target | impl/unsafeShell.rb:48:19:48:27 | #{...} | provenance | | +| impl/unsafeShell.rb:51:17:51:17 | x | impl/unsafeShell.rb:52:14:52:14 | x | provenance | | +| impl/unsafeShell.rb:51:17:51:17 | x | impl/unsafeShell.rb:54:29:54:29 | x | provenance | | +| impl/unsafeShell.rb:57:21:57:21 | x | impl/unsafeShell.rb:58:23:58:23 | x | provenance | | +| impl/unsafeShell.rb:61:20:61:20 | x | impl/unsafeShell.rb:63:14:63:14 | x | provenance | | +| impl/unsafeShell.rb:63:5:63:7 | [post] arr [element] | impl/unsafeShell.rb:64:14:64:16 | arr | provenance | | +| impl/unsafeShell.rb:63:5:63:7 | [post] arr [element] | impl/unsafeShell.rb:68:14:68:16 | arr | provenance | | +| impl/unsafeShell.rb:63:14:63:14 | x | impl/unsafeShell.rb:63:5:63:7 | [post] arr [element] | provenance | | nodes | impl/sub/notImported.rb:2:12:2:17 | target | semmle.label | target | | impl/sub/notImported.rb:3:19:3:27 | #{...} | semmle.label | #{...} | diff --git a/ruby/ql/test/query-tests/security/cwe-079/ReflectedXSS.expected b/ruby/ql/test/query-tests/security/cwe-079/ReflectedXSS.expected index 284cd463d023..650168f7bce5 100644 --- a/ruby/ql/test/query-tests/security/cwe-079/ReflectedXSS.expected +++ b/ruby/ql/test/query-tests/security/cwe-079/ReflectedXSS.expected @@ -1,46 +1,46 @@ edges -| app/controllers/foo/bars_controller.rb:9:12:9:17 | call to params | app/controllers/foo/bars_controller.rb:9:12:9:29 | ...[...] | -| app/controllers/foo/bars_controller.rb:9:12:9:29 | ...[...] | app/views/foo/bars/show.html.erb:46:5:46:13 | call to user_name | -| app/controllers/foo/bars_controller.rb:13:5:13:14 | [post] self [@user_name] | app/controllers/foo/bars_controller.rb:13:5:13:14 | [post] self [@user_name] | -| app/controllers/foo/bars_controller.rb:13:5:13:14 | [post] self [@user_name] | app/views/foo/bars/show.html.erb:50:5:50:18 | call to user_name_memo | -| app/controllers/foo/bars_controller.rb:13:20:13:25 | call to params | app/controllers/foo/bars_controller.rb:13:20:13:37 | ...[...] | -| app/controllers/foo/bars_controller.rb:13:20:13:37 | ...[...] | app/controllers/foo/bars_controller.rb:13:5:13:14 | [post] self [@user_name] | -| app/controllers/foo/bars_controller.rb:13:20:13:37 | ...[...] | app/views/foo/bars/show.html.erb:50:5:50:18 | call to user_name_memo | -| app/controllers/foo/bars_controller.rb:17:21:17:26 | call to params | app/controllers/foo/bars_controller.rb:17:21:17:36 | ...[...] | -| app/controllers/foo/bars_controller.rb:17:21:17:36 | ...[...] | app/views/foo/bars/show.html.erb:2:18:2:30 | @user_website | -| app/controllers/foo/bars_controller.rb:18:5:18:6 | dt | app/controllers/foo/bars_controller.rb:19:22:19:23 | dt | -| app/controllers/foo/bars_controller.rb:18:10:18:15 | call to params | app/controllers/foo/bars_controller.rb:18:10:18:22 | ...[...] | -| app/controllers/foo/bars_controller.rb:18:10:18:22 | ...[...] | app/controllers/foo/bars_controller.rb:18:5:18:6 | dt | -| app/controllers/foo/bars_controller.rb:19:22:19:23 | dt | app/controllers/foo/bars_controller.rb:26:53:26:54 | dt | -| app/controllers/foo/bars_controller.rb:19:22:19:23 | dt | app/views/foo/bars/show.html.erb:40:3:40:16 | @instance_text | -| app/controllers/foo/bars_controller.rb:24:39:24:44 | call to params | app/controllers/foo/bars_controller.rb:24:39:24:59 | ...[...] | -| app/controllers/foo/bars_controller.rb:24:39:24:59 | ...[...] | app/controllers/foo/bars_controller.rb:24:39:24:59 | ... = ... | -| app/controllers/foo/bars_controller.rb:26:53:26:54 | dt | app/views/foo/bars/show.html.erb:5:9:5:20 | call to display_text | -| app/controllers/foo/bars_controller.rb:26:53:26:54 | dt | app/views/foo/bars/show.html.erb:8:9:8:21 | call to local_assigns [element :display_text] | -| app/controllers/foo/bars_controller.rb:26:53:26:54 | dt | app/views/foo/bars/show.html.erb:12:9:12:21 | call to local_assigns [element :display_text] | -| app/controllers/foo/bars_controller.rb:26:53:26:54 | dt | app/views/foo/bars/show.html.erb:17:15:17:27 | call to local_assigns [element :display_text] | -| app/controllers/foo/bars_controller.rb:26:53:26:54 | dt | app/views/foo/bars/show.html.erb:35:3:35:14 | call to display_text | -| app/controllers/foo/bars_controller.rb:26:53:26:54 | dt | app/views/foo/bars/show.html.erb:43:76:43:87 | call to display_text | -| app/controllers/foo/bars_controller.rb:30:5:30:7 | str | app/controllers/foo/bars_controller.rb:31:5:31:7 | str | -| app/controllers/foo/bars_controller.rb:30:11:30:16 | call to params | app/controllers/foo/bars_controller.rb:30:11:30:28 | ...[...] | -| app/controllers/foo/bars_controller.rb:30:11:30:28 | ...[...] | app/controllers/foo/bars_controller.rb:30:5:30:7 | str | -| app/views/foo/bars/_widget.html.erb:5:9:5:20 | call to display_text [element] | app/views/foo/bars/_widget.html.erb:5:9:5:20 | call to display_text | -| app/views/foo/bars/_widget.html.erb:8:9:8:21 | call to local_assigns [element :display_text, element] | app/views/foo/bars/_widget.html.erb:8:9:8:36 | ...[...] [element] | -| app/views/foo/bars/_widget.html.erb:8:9:8:21 | call to local_assigns [element :display_text] | app/views/foo/bars/_widget.html.erb:8:9:8:36 | ...[...] | -| app/views/foo/bars/_widget.html.erb:8:9:8:36 | ...[...] [element] | app/views/foo/bars/_widget.html.erb:8:9:8:36 | ...[...] | -| app/views/foo/bars/show.html.erb:8:9:8:21 | call to local_assigns [element :display_text] | app/views/foo/bars/show.html.erb:8:9:8:36 | ...[...] | -| app/views/foo/bars/show.html.erb:12:9:12:21 | call to local_assigns [element :display_text] | app/views/foo/bars/show.html.erb:12:9:12:26 | ...[...] | -| app/views/foo/bars/show.html.erb:17:15:17:27 | call to local_assigns [element :display_text] | app/views/foo/bars/show.html.erb:17:15:17:32 | ...[...] | -| app/views/foo/bars/show.html.erb:43:64:43:87 | ... + ... | app/views/foo/bars/_widget.html.erb:5:9:5:20 | call to display_text | -| app/views/foo/bars/show.html.erb:43:64:43:87 | ... + ... | app/views/foo/bars/_widget.html.erb:8:9:8:21 | call to local_assigns [element :display_text] | -| app/views/foo/bars/show.html.erb:43:64:43:87 | ... + ... [element] | app/views/foo/bars/_widget.html.erb:5:9:5:20 | call to display_text [element] | -| app/views/foo/bars/show.html.erb:43:64:43:87 | ... + ... [element] | app/views/foo/bars/_widget.html.erb:8:9:8:21 | call to local_assigns [element :display_text, element] | -| app/views/foo/bars/show.html.erb:43:76:43:87 | call to display_text | app/views/foo/bars/show.html.erb:43:64:43:87 | ... + ... | -| app/views/foo/bars/show.html.erb:43:76:43:87 | call to display_text | app/views/foo/bars/show.html.erb:43:64:43:87 | ... + ... [element] | -| app/views/foo/bars/show.html.erb:53:29:53:34 | call to params | app/views/foo/bars/show.html.erb:53:29:53:44 | ...[...] | -| app/views/foo/bars/show.html.erb:56:13:56:18 | call to params | app/views/foo/bars/show.html.erb:56:13:56:28 | ...[...] | -| app/views/foo/bars/show.html.erb:73:19:73:24 | call to params | app/views/foo/bars/show.html.erb:73:19:73:34 | ...[...] | -| app/views/foo/bars/show.html.erb:76:28:76:33 | call to params | app/views/foo/bars/show.html.erb:76:28:76:39 | ...[...] | +| app/controllers/foo/bars_controller.rb:9:12:9:17 | call to params | app/controllers/foo/bars_controller.rb:9:12:9:29 | ...[...] | provenance | | +| app/controllers/foo/bars_controller.rb:9:12:9:29 | ...[...] | app/views/foo/bars/show.html.erb:46:5:46:13 | call to user_name | provenance | | +| app/controllers/foo/bars_controller.rb:13:5:13:14 | [post] self [@user_name] | app/controllers/foo/bars_controller.rb:13:5:13:14 | [post] self [@user_name] | provenance | | +| app/controllers/foo/bars_controller.rb:13:5:13:14 | [post] self [@user_name] | app/views/foo/bars/show.html.erb:50:5:50:18 | call to user_name_memo | provenance | | +| app/controllers/foo/bars_controller.rb:13:20:13:25 | call to params | app/controllers/foo/bars_controller.rb:13:20:13:37 | ...[...] | provenance | | +| app/controllers/foo/bars_controller.rb:13:20:13:37 | ...[...] | app/controllers/foo/bars_controller.rb:13:5:13:14 | [post] self [@user_name] | provenance | | +| app/controllers/foo/bars_controller.rb:13:20:13:37 | ...[...] | app/views/foo/bars/show.html.erb:50:5:50:18 | call to user_name_memo | provenance | | +| app/controllers/foo/bars_controller.rb:17:21:17:26 | call to params | app/controllers/foo/bars_controller.rb:17:21:17:36 | ...[...] | provenance | | +| app/controllers/foo/bars_controller.rb:17:21:17:36 | ...[...] | app/views/foo/bars/show.html.erb:2:18:2:30 | @user_website | provenance | | +| app/controllers/foo/bars_controller.rb:18:5:18:6 | dt | app/controllers/foo/bars_controller.rb:19:22:19:23 | dt | provenance | | +| app/controllers/foo/bars_controller.rb:18:10:18:15 | call to params | app/controllers/foo/bars_controller.rb:18:10:18:22 | ...[...] | provenance | | +| app/controllers/foo/bars_controller.rb:18:10:18:22 | ...[...] | app/controllers/foo/bars_controller.rb:18:5:18:6 | dt | provenance | | +| app/controllers/foo/bars_controller.rb:19:22:19:23 | dt | app/controllers/foo/bars_controller.rb:26:53:26:54 | dt | provenance | | +| app/controllers/foo/bars_controller.rb:19:22:19:23 | dt | app/views/foo/bars/show.html.erb:40:3:40:16 | @instance_text | provenance | | +| app/controllers/foo/bars_controller.rb:24:39:24:44 | call to params | app/controllers/foo/bars_controller.rb:24:39:24:59 | ...[...] | provenance | | +| app/controllers/foo/bars_controller.rb:24:39:24:59 | ...[...] | app/controllers/foo/bars_controller.rb:24:39:24:59 | ... = ... | provenance | | +| app/controllers/foo/bars_controller.rb:26:53:26:54 | dt | app/views/foo/bars/show.html.erb:5:9:5:20 | call to display_text | provenance | | +| app/controllers/foo/bars_controller.rb:26:53:26:54 | dt | app/views/foo/bars/show.html.erb:8:9:8:21 | call to local_assigns [element :display_text] | provenance | | +| app/controllers/foo/bars_controller.rb:26:53:26:54 | dt | app/views/foo/bars/show.html.erb:12:9:12:21 | call to local_assigns [element :display_text] | provenance | | +| app/controllers/foo/bars_controller.rb:26:53:26:54 | dt | app/views/foo/bars/show.html.erb:17:15:17:27 | call to local_assigns [element :display_text] | provenance | | +| app/controllers/foo/bars_controller.rb:26:53:26:54 | dt | app/views/foo/bars/show.html.erb:35:3:35:14 | call to display_text | provenance | | +| app/controllers/foo/bars_controller.rb:26:53:26:54 | dt | app/views/foo/bars/show.html.erb:43:76:43:87 | call to display_text | provenance | | +| app/controllers/foo/bars_controller.rb:30:5:30:7 | str | app/controllers/foo/bars_controller.rb:31:5:31:7 | str | provenance | | +| app/controllers/foo/bars_controller.rb:30:11:30:16 | call to params | app/controllers/foo/bars_controller.rb:30:11:30:28 | ...[...] | provenance | | +| app/controllers/foo/bars_controller.rb:30:11:30:28 | ...[...] | app/controllers/foo/bars_controller.rb:30:5:30:7 | str | provenance | | +| app/views/foo/bars/_widget.html.erb:5:9:5:20 | call to display_text [element] | app/views/foo/bars/_widget.html.erb:5:9:5:20 | call to display_text | provenance | | +| app/views/foo/bars/_widget.html.erb:8:9:8:21 | call to local_assigns [element :display_text, element] | app/views/foo/bars/_widget.html.erb:8:9:8:36 | ...[...] [element] | provenance | | +| app/views/foo/bars/_widget.html.erb:8:9:8:21 | call to local_assigns [element :display_text] | app/views/foo/bars/_widget.html.erb:8:9:8:36 | ...[...] | provenance | | +| app/views/foo/bars/_widget.html.erb:8:9:8:36 | ...[...] [element] | app/views/foo/bars/_widget.html.erb:8:9:8:36 | ...[...] | provenance | | +| app/views/foo/bars/show.html.erb:8:9:8:21 | call to local_assigns [element :display_text] | app/views/foo/bars/show.html.erb:8:9:8:36 | ...[...] | provenance | | +| app/views/foo/bars/show.html.erb:12:9:12:21 | call to local_assigns [element :display_text] | app/views/foo/bars/show.html.erb:12:9:12:26 | ...[...] | provenance | | +| app/views/foo/bars/show.html.erb:17:15:17:27 | call to local_assigns [element :display_text] | app/views/foo/bars/show.html.erb:17:15:17:32 | ...[...] | provenance | | +| app/views/foo/bars/show.html.erb:43:64:43:87 | ... + ... | app/views/foo/bars/_widget.html.erb:5:9:5:20 | call to display_text | provenance | | +| app/views/foo/bars/show.html.erb:43:64:43:87 | ... + ... | app/views/foo/bars/_widget.html.erb:8:9:8:21 | call to local_assigns [element :display_text] | provenance | | +| app/views/foo/bars/show.html.erb:43:64:43:87 | ... + ... [element] | app/views/foo/bars/_widget.html.erb:5:9:5:20 | call to display_text [element] | provenance | | +| app/views/foo/bars/show.html.erb:43:64:43:87 | ... + ... [element] | app/views/foo/bars/_widget.html.erb:8:9:8:21 | call to local_assigns [element :display_text, element] | provenance | | +| app/views/foo/bars/show.html.erb:43:76:43:87 | call to display_text | app/views/foo/bars/show.html.erb:43:64:43:87 | ... + ... | provenance | | +| app/views/foo/bars/show.html.erb:43:76:43:87 | call to display_text | app/views/foo/bars/show.html.erb:43:64:43:87 | ... + ... [element] | provenance | | +| app/views/foo/bars/show.html.erb:53:29:53:34 | call to params | app/views/foo/bars/show.html.erb:53:29:53:44 | ...[...] | provenance | | +| app/views/foo/bars/show.html.erb:56:13:56:18 | call to params | app/views/foo/bars/show.html.erb:56:13:56:28 | ...[...] | provenance | | +| app/views/foo/bars/show.html.erb:73:19:73:24 | call to params | app/views/foo/bars/show.html.erb:73:19:73:34 | ...[...] | provenance | | +| app/views/foo/bars/show.html.erb:76:28:76:33 | call to params | app/views/foo/bars/show.html.erb:76:28:76:39 | ...[...] | provenance | | nodes | app/controllers/foo/bars_controller.rb:9:12:9:17 | call to params | semmle.label | call to params | | app/controllers/foo/bars_controller.rb:9:12:9:29 | ...[...] | semmle.label | ...[...] | diff --git a/ruby/ql/test/query-tests/security/cwe-079/StoredXSS.expected b/ruby/ql/test/query-tests/security/cwe-079/StoredXSS.expected index 2cf4aff64007..8ae455760c13 100644 --- a/ruby/ql/test/query-tests/security/cwe-079/StoredXSS.expected +++ b/ruby/ql/test/query-tests/security/cwe-079/StoredXSS.expected @@ -1,28 +1,28 @@ edges -| app/controllers/foo/stores_controller.rb:8:5:8:6 | dt | app/controllers/foo/stores_controller.rb:9:22:9:23 | dt | -| app/controllers/foo/stores_controller.rb:8:10:8:29 | call to read | app/controllers/foo/stores_controller.rb:8:5:8:6 | dt | -| app/controllers/foo/stores_controller.rb:9:22:9:23 | dt | app/controllers/foo/stores_controller.rb:13:55:13:56 | dt | -| app/controllers/foo/stores_controller.rb:9:22:9:23 | dt | app/views/foo/stores/show.html.erb:37:3:37:16 | @instance_text | -| app/controllers/foo/stores_controller.rb:13:55:13:56 | dt | app/views/foo/stores/show.html.erb:2:9:2:20 | call to display_text | -| app/controllers/foo/stores_controller.rb:13:55:13:56 | dt | app/views/foo/stores/show.html.erb:5:9:5:21 | call to local_assigns [element :display_text] | -| app/controllers/foo/stores_controller.rb:13:55:13:56 | dt | app/views/foo/stores/show.html.erb:9:9:9:21 | call to local_assigns [element :display_text] | -| app/controllers/foo/stores_controller.rb:13:55:13:56 | dt | app/views/foo/stores/show.html.erb:14:15:14:27 | call to local_assigns [element :display_text] | -| app/controllers/foo/stores_controller.rb:13:55:13:56 | dt | app/views/foo/stores/show.html.erb:32:3:32:14 | call to display_text | -| app/controllers/foo/stores_controller.rb:13:55:13:56 | dt | app/views/foo/stores/show.html.erb:40:76:40:87 | call to display_text | -| app/views/foo/bars/_widget.html.erb:5:9:5:20 | call to display_text [element] | app/views/foo/bars/_widget.html.erb:5:9:5:20 | call to display_text | -| app/views/foo/bars/_widget.html.erb:8:9:8:21 | call to local_assigns [element :display_text, element] | app/views/foo/bars/_widget.html.erb:8:9:8:36 | ...[...] [element] | -| app/views/foo/bars/_widget.html.erb:8:9:8:21 | call to local_assigns [element :display_text] | app/views/foo/bars/_widget.html.erb:8:9:8:36 | ...[...] | -| app/views/foo/bars/_widget.html.erb:8:9:8:36 | ...[...] [element] | app/views/foo/bars/_widget.html.erb:8:9:8:36 | ...[...] | -| app/views/foo/stores/show.html.erb:5:9:5:21 | call to local_assigns [element :display_text] | app/views/foo/stores/show.html.erb:5:9:5:36 | ...[...] | -| app/views/foo/stores/show.html.erb:9:9:9:21 | call to local_assigns [element :display_text] | app/views/foo/stores/show.html.erb:9:9:9:26 | ...[...] | -| app/views/foo/stores/show.html.erb:14:15:14:27 | call to local_assigns [element :display_text] | app/views/foo/stores/show.html.erb:14:15:14:32 | ...[...] | -| app/views/foo/stores/show.html.erb:40:64:40:87 | ... + ... | app/views/foo/bars/_widget.html.erb:5:9:5:20 | call to display_text | -| app/views/foo/stores/show.html.erb:40:64:40:87 | ... + ... | app/views/foo/bars/_widget.html.erb:8:9:8:21 | call to local_assigns [element :display_text] | -| app/views/foo/stores/show.html.erb:40:64:40:87 | ... + ... [element] | app/views/foo/bars/_widget.html.erb:5:9:5:20 | call to display_text [element] | -| app/views/foo/stores/show.html.erb:40:64:40:87 | ... + ... [element] | app/views/foo/bars/_widget.html.erb:8:9:8:21 | call to local_assigns [element :display_text, element] | -| app/views/foo/stores/show.html.erb:40:76:40:87 | call to display_text | app/views/foo/stores/show.html.erb:40:64:40:87 | ... + ... | -| app/views/foo/stores/show.html.erb:40:76:40:87 | call to display_text | app/views/foo/stores/show.html.erb:40:64:40:87 | ... + ... [element] | -| app/views/foo/stores/show.html.erb:86:17:86:28 | call to handle | app/views/foo/stores/show.html.erb:86:3:86:29 | call to sprintf | +| app/controllers/foo/stores_controller.rb:8:5:8:6 | dt | app/controllers/foo/stores_controller.rb:9:22:9:23 | dt | provenance | | +| app/controllers/foo/stores_controller.rb:8:10:8:29 | call to read | app/controllers/foo/stores_controller.rb:8:5:8:6 | dt | provenance | | +| app/controllers/foo/stores_controller.rb:9:22:9:23 | dt | app/controllers/foo/stores_controller.rb:13:55:13:56 | dt | provenance | | +| app/controllers/foo/stores_controller.rb:9:22:9:23 | dt | app/views/foo/stores/show.html.erb:37:3:37:16 | @instance_text | provenance | | +| app/controllers/foo/stores_controller.rb:13:55:13:56 | dt | app/views/foo/stores/show.html.erb:2:9:2:20 | call to display_text | provenance | | +| app/controllers/foo/stores_controller.rb:13:55:13:56 | dt | app/views/foo/stores/show.html.erb:5:9:5:21 | call to local_assigns [element :display_text] | provenance | | +| app/controllers/foo/stores_controller.rb:13:55:13:56 | dt | app/views/foo/stores/show.html.erb:9:9:9:21 | call to local_assigns [element :display_text] | provenance | | +| app/controllers/foo/stores_controller.rb:13:55:13:56 | dt | app/views/foo/stores/show.html.erb:14:15:14:27 | call to local_assigns [element :display_text] | provenance | | +| app/controllers/foo/stores_controller.rb:13:55:13:56 | dt | app/views/foo/stores/show.html.erb:32:3:32:14 | call to display_text | provenance | | +| app/controllers/foo/stores_controller.rb:13:55:13:56 | dt | app/views/foo/stores/show.html.erb:40:76:40:87 | call to display_text | provenance | | +| app/views/foo/bars/_widget.html.erb:5:9:5:20 | call to display_text [element] | app/views/foo/bars/_widget.html.erb:5:9:5:20 | call to display_text | provenance | | +| app/views/foo/bars/_widget.html.erb:8:9:8:21 | call to local_assigns [element :display_text, element] | app/views/foo/bars/_widget.html.erb:8:9:8:36 | ...[...] [element] | provenance | | +| app/views/foo/bars/_widget.html.erb:8:9:8:21 | call to local_assigns [element :display_text] | app/views/foo/bars/_widget.html.erb:8:9:8:36 | ...[...] | provenance | | +| app/views/foo/bars/_widget.html.erb:8:9:8:36 | ...[...] [element] | app/views/foo/bars/_widget.html.erb:8:9:8:36 | ...[...] | provenance | | +| app/views/foo/stores/show.html.erb:5:9:5:21 | call to local_assigns [element :display_text] | app/views/foo/stores/show.html.erb:5:9:5:36 | ...[...] | provenance | | +| app/views/foo/stores/show.html.erb:9:9:9:21 | call to local_assigns [element :display_text] | app/views/foo/stores/show.html.erb:9:9:9:26 | ...[...] | provenance | | +| app/views/foo/stores/show.html.erb:14:15:14:27 | call to local_assigns [element :display_text] | app/views/foo/stores/show.html.erb:14:15:14:32 | ...[...] | provenance | | +| app/views/foo/stores/show.html.erb:40:64:40:87 | ... + ... | app/views/foo/bars/_widget.html.erb:5:9:5:20 | call to display_text | provenance | | +| app/views/foo/stores/show.html.erb:40:64:40:87 | ... + ... | app/views/foo/bars/_widget.html.erb:8:9:8:21 | call to local_assigns [element :display_text] | provenance | | +| app/views/foo/stores/show.html.erb:40:64:40:87 | ... + ... [element] | app/views/foo/bars/_widget.html.erb:5:9:5:20 | call to display_text [element] | provenance | | +| app/views/foo/stores/show.html.erb:40:64:40:87 | ... + ... [element] | app/views/foo/bars/_widget.html.erb:8:9:8:21 | call to local_assigns [element :display_text, element] | provenance | | +| app/views/foo/stores/show.html.erb:40:76:40:87 | call to display_text | app/views/foo/stores/show.html.erb:40:64:40:87 | ... + ... | provenance | | +| app/views/foo/stores/show.html.erb:40:76:40:87 | call to display_text | app/views/foo/stores/show.html.erb:40:64:40:87 | ... + ... [element] | provenance | | +| app/views/foo/stores/show.html.erb:86:17:86:28 | call to handle | app/views/foo/stores/show.html.erb:86:3:86:29 | call to sprintf | provenance | | nodes | app/controllers/foo/stores_controller.rb:8:5:8:6 | dt | semmle.label | dt | | app/controllers/foo/stores_controller.rb:8:10:8:29 | call to read | semmle.label | call to read | diff --git a/ruby/ql/test/query-tests/security/cwe-079/UnsafeHtmlConstruction.expected b/ruby/ql/test/query-tests/security/cwe-079/UnsafeHtmlConstruction.expected index 064d5a2e1dcf..b9019c8f1d04 100644 --- a/ruby/ql/test/query-tests/security/cwe-079/UnsafeHtmlConstruction.expected +++ b/ruby/ql/test/query-tests/security/cwe-079/UnsafeHtmlConstruction.expected @@ -1,7 +1,7 @@ edges -| lib/unsafeHtml.rb:2:31:2:34 | name | lib/unsafeHtml.rb:3:10:3:16 | #{...} | -| lib/unsafeHtml.rb:9:27:9:30 | name | lib/unsafeHtml.rb:11:13:11:19 | #{...} | -| lib/unsafeHtml.rb:16:19:16:22 | name | lib/unsafeHtml.rb:17:28:17:31 | name | +| lib/unsafeHtml.rb:2:31:2:34 | name | lib/unsafeHtml.rb:3:10:3:16 | #{...} | provenance | | +| lib/unsafeHtml.rb:9:27:9:30 | name | lib/unsafeHtml.rb:11:13:11:19 | #{...} | provenance | | +| lib/unsafeHtml.rb:16:19:16:22 | name | lib/unsafeHtml.rb:17:28:17:31 | name | provenance | | nodes | lib/unsafeHtml.rb:2:31:2:34 | name | semmle.label | name | | lib/unsafeHtml.rb:3:10:3:16 | #{...} | semmle.label | #{...} | diff --git a/ruby/ql/test/query-tests/security/cwe-089/SqlInjection.expected b/ruby/ql/test/query-tests/security/cwe-089/SqlInjection.expected index 266da5b21fed..1f9b8483f3b0 100644 --- a/ruby/ql/test/query-tests/security/cwe-089/SqlInjection.expected +++ b/ruby/ql/test/query-tests/security/cwe-089/SqlInjection.expected @@ -1,83 +1,83 @@ edges -| ActiveRecordInjection.rb:8:25:8:28 | name | ActiveRecordInjection.rb:10:33:10:67 | "name='#{...}' and pass='#{...}'" | -| ActiveRecordInjection.rb:8:31:8:34 | pass | ActiveRecordInjection.rb:10:33:10:67 | "name='#{...}' and pass='#{...}'" | -| ActiveRecordInjection.rb:20:22:20:30 | condition | ActiveRecordInjection.rb:23:16:23:24 | condition | -| ActiveRecordInjection.rb:35:30:35:35 | call to params | ActiveRecordInjection.rb:35:30:35:44 | ...[...] | -| ActiveRecordInjection.rb:39:18:39:23 | call to params | ActiveRecordInjection.rb:39:18:39:32 | ...[...] | -| ActiveRecordInjection.rb:43:29:43:34 | call to params | ActiveRecordInjection.rb:43:29:43:39 | ...[...] | -| ActiveRecordInjection.rb:43:29:43:39 | ...[...] | ActiveRecordInjection.rb:43:20:43:42 | "id = '#{...}'" | -| ActiveRecordInjection.rb:48:30:48:35 | call to params | ActiveRecordInjection.rb:48:30:48:40 | ...[...] | -| ActiveRecordInjection.rb:48:30:48:40 | ...[...] | ActiveRecordInjection.rb:48:21:48:43 | "id = '#{...}'" | -| ActiveRecordInjection.rb:52:22:52:44 | "id = '#{...}'" | ActiveRecordInjection.rb:52:21:52:45 | call to [] | -| ActiveRecordInjection.rb:52:31:52:36 | call to params | ActiveRecordInjection.rb:52:31:52:41 | ...[...] | -| ActiveRecordInjection.rb:52:31:52:41 | ...[...] | ActiveRecordInjection.rb:52:22:52:44 | "id = '#{...}'" | -| ActiveRecordInjection.rb:57:23:57:45 | "id = '#{...}'" | ActiveRecordInjection.rb:57:22:57:46 | call to [] | -| ActiveRecordInjection.rb:57:32:57:37 | call to params | ActiveRecordInjection.rb:57:32:57:42 | ...[...] | -| ActiveRecordInjection.rb:57:32:57:42 | ...[...] | ActiveRecordInjection.rb:57:23:57:45 | "id = '#{...}'" | -| ActiveRecordInjection.rb:62:21:62:26 | call to params | ActiveRecordInjection.rb:62:21:62:35 | ...[...] | -| ActiveRecordInjection.rb:62:21:62:35 | ...[...] | ActiveRecordInjection.rb:61:16:61:21 | <<-SQL | -| ActiveRecordInjection.rb:68:34:68:39 | call to params | ActiveRecordInjection.rb:68:34:68:44 | ...[...] | -| ActiveRecordInjection.rb:68:34:68:44 | ...[...] | ActiveRecordInjection.rb:68:20:68:47 | "user.id = '#{...}'" | -| ActiveRecordInjection.rb:70:23:70:28 | call to params | ActiveRecordInjection.rb:70:23:70:35 | ...[...] | -| ActiveRecordInjection.rb:70:23:70:35 | ...[...] | ActiveRecordInjection.rb:8:25:8:28 | name | -| ActiveRecordInjection.rb:70:38:70:43 | call to params | ActiveRecordInjection.rb:70:38:70:50 | ...[...] | -| ActiveRecordInjection.rb:70:38:70:50 | ...[...] | ActiveRecordInjection.rb:8:31:8:34 | pass | -| ActiveRecordInjection.rb:74:41:74:46 | call to params | ActiveRecordInjection.rb:74:41:74:51 | ...[...] | -| ActiveRecordInjection.rb:74:41:74:51 | ...[...] | ActiveRecordInjection.rb:74:32:74:54 | "id = '#{...}'" | -| ActiveRecordInjection.rb:79:23:79:28 | call to params | ActiveRecordInjection.rb:79:23:79:35 | ...[...] | -| ActiveRecordInjection.rb:83:17:83:22 | call to params | ActiveRecordInjection.rb:83:17:83:31 | ...[...] | -| ActiveRecordInjection.rb:84:19:84:24 | call to params | ActiveRecordInjection.rb:84:19:84:33 | ...[...] | -| ActiveRecordInjection.rb:88:18:88:23 | call to params | ActiveRecordInjection.rb:88:18:88:35 | ...[...] | -| ActiveRecordInjection.rb:92:21:92:26 | call to params | ActiveRecordInjection.rb:92:21:92:35 | ...[...] | -| ActiveRecordInjection.rb:100:31:100:36 | call to params | ActiveRecordInjection.rb:100:31:100:52 | ...[...] | -| ActiveRecordInjection.rb:100:31:100:52 | ...[...] | ActiveRecordInjection.rb:100:20:100:55 | "name = '#{...}'" | -| ActiveRecordInjection.rb:104:30:104:35 | call to params | ActiveRecordInjection.rb:104:30:104:51 | ...[...] | -| ActiveRecordInjection.rb:104:30:104:51 | ...[...] | ActiveRecordInjection.rb:104:19:104:54 | "name = '#{...}'" | -| ActiveRecordInjection.rb:106:18:106:23 | call to params | ActiveRecordInjection.rb:106:18:106:35 | ...[...] | -| ActiveRecordInjection.rb:108:23:108:28 | call to params | ActiveRecordInjection.rb:108:23:108:47 | ...[...] | -| ActiveRecordInjection.rb:114:5:114:6 | ps | ActiveRecordInjection.rb:115:11:115:12 | ps | -| ActiveRecordInjection.rb:114:10:114:15 | call to params | ActiveRecordInjection.rb:114:5:114:6 | ps | -| ActiveRecordInjection.rb:115:5:115:7 | uid | ActiveRecordInjection.rb:116:5:116:9 | uidEq | -| ActiveRecordInjection.rb:115:11:115:12 | ps | ActiveRecordInjection.rb:115:11:115:17 | ...[...] | -| ActiveRecordInjection.rb:115:11:115:17 | ...[...] | ActiveRecordInjection.rb:115:5:115:7 | uid | -| ActiveRecordInjection.rb:116:5:116:9 | uidEq | ActiveRecordInjection.rb:120:20:120:32 | ... + ... | -| ActiveRecordInjection.rb:116:5:116:9 | uidEq | ActiveRecordInjection.rb:120:28:120:32 | uidEq | -| ActiveRecordInjection.rb:120:20:120:32 | ... + ... [element] | ActiveRecordInjection.rb:120:20:120:32 | ... + ... | -| ActiveRecordInjection.rb:120:28:120:32 | uidEq | ActiveRecordInjection.rb:120:20:120:32 | ... + ... [element] | -| ActiveRecordInjection.rb:153:21:153:26 | call to params | ActiveRecordInjection.rb:153:21:153:44 | ...[...] | -| ActiveRecordInjection.rb:153:21:153:26 | call to params | ActiveRecordInjection.rb:153:21:153:44 | ...[...] | -| ActiveRecordInjection.rb:153:21:153:44 | ...[...] | ActiveRecordInjection.rb:20:22:20:30 | condition | -| ActiveRecordInjection.rb:167:59:167:64 | call to params | ActiveRecordInjection.rb:167:59:167:74 | ...[...] | -| ActiveRecordInjection.rb:167:59:167:74 | ...[...] | ActiveRecordInjection.rb:167:27:167:76 | "this is an unsafe annotation:..." | -| ActiveRecordInjection.rb:178:5:178:13 | my_params | ActiveRecordInjection.rb:179:47:179:55 | my_params | -| ActiveRecordInjection.rb:178:17:178:32 | call to permitted_params | ActiveRecordInjection.rb:178:5:178:13 | my_params | -| ActiveRecordInjection.rb:179:5:179:9 | query | ActiveRecordInjection.rb:180:37:180:41 | query | -| ActiveRecordInjection.rb:179:47:179:55 | my_params | ActiveRecordInjection.rb:179:47:179:65 | ...[...] | -| ActiveRecordInjection.rb:179:47:179:65 | ...[...] | ActiveRecordInjection.rb:179:5:179:9 | query | -| ActiveRecordInjection.rb:185:5:185:10 | call to params | ActiveRecordInjection.rb:185:5:185:27 | call to require | -| ActiveRecordInjection.rb:185:5:185:27 | call to require | ActiveRecordInjection.rb:185:5:185:59 | call to permit | -| ActiveRecordInjection.rb:185:5:185:59 | call to permit | ActiveRecordInjection.rb:178:17:178:32 | call to permitted_params | -| ActiveRecordInjection.rb:185:5:185:59 | call to permit | ActiveRecordInjection.rb:189:77:189:92 | call to permitted_params | -| ActiveRecordInjection.rb:185:5:185:59 | call to permit | ActiveRecordInjection.rb:190:69:190:84 | call to permitted_params | -| ActiveRecordInjection.rb:189:77:189:92 | call to permitted_params | ActiveRecordInjection.rb:189:77:189:102 | ...[...] | -| ActiveRecordInjection.rb:189:77:189:102 | ...[...] | ActiveRecordInjection.rb:189:43:189:104 | "SELECT * FROM users WHERE id ..." | -| ActiveRecordInjection.rb:190:69:190:84 | call to permitted_params | ActiveRecordInjection.rb:190:69:190:94 | ...[...] | -| ActiveRecordInjection.rb:190:69:190:94 | ...[...] | ActiveRecordInjection.rb:190:35:190:96 | "SELECT * FROM users WHERE id ..." | -| ArelInjection.rb:4:5:4:8 | name | ArelInjection.rb:6:20:6:61 | "SELECT * FROM users WHERE nam..." | -| ArelInjection.rb:4:12:4:17 | call to params | ArelInjection.rb:4:12:4:29 | ...[...] | -| ArelInjection.rb:4:12:4:29 | ...[...] | ArelInjection.rb:4:5:4:8 | name | -| PgInjection.rb:6:5:6:8 | name | PgInjection.rb:13:5:13:8 | qry1 | -| PgInjection.rb:6:5:6:8 | name | PgInjection.rb:19:5:19:8 | qry2 | -| PgInjection.rb:6:5:6:8 | name | PgInjection.rb:31:5:31:8 | qry3 | -| PgInjection.rb:6:5:6:8 | name | PgInjection.rb:43:5:43:8 | qry3 | -| PgInjection.rb:6:12:6:17 | call to params | PgInjection.rb:6:12:6:24 | ...[...] | -| PgInjection.rb:6:12:6:24 | ...[...] | PgInjection.rb:6:5:6:8 | name | -| PgInjection.rb:13:5:13:8 | qry1 | PgInjection.rb:14:15:14:18 | qry1 | -| PgInjection.rb:13:5:13:8 | qry1 | PgInjection.rb:15:21:15:24 | qry1 | -| PgInjection.rb:19:5:19:8 | qry2 | PgInjection.rb:20:22:20:25 | qry2 | -| PgInjection.rb:19:5:19:8 | qry2 | PgInjection.rb:21:28:21:31 | qry2 | -| PgInjection.rb:31:5:31:8 | qry3 | PgInjection.rb:32:29:32:32 | qry3 | -| PgInjection.rb:43:5:43:8 | qry3 | PgInjection.rb:44:29:44:32 | qry3 | +| ActiveRecordInjection.rb:8:25:8:28 | name | ActiveRecordInjection.rb:10:33:10:67 | "name='#{...}' and pass='#{...}'" | provenance | | +| ActiveRecordInjection.rb:8:31:8:34 | pass | ActiveRecordInjection.rb:10:33:10:67 | "name='#{...}' and pass='#{...}'" | provenance | | +| ActiveRecordInjection.rb:20:22:20:30 | condition | ActiveRecordInjection.rb:23:16:23:24 | condition | provenance | | +| ActiveRecordInjection.rb:35:30:35:35 | call to params | ActiveRecordInjection.rb:35:30:35:44 | ...[...] | provenance | | +| ActiveRecordInjection.rb:39:18:39:23 | call to params | ActiveRecordInjection.rb:39:18:39:32 | ...[...] | provenance | | +| ActiveRecordInjection.rb:43:29:43:34 | call to params | ActiveRecordInjection.rb:43:29:43:39 | ...[...] | provenance | | +| ActiveRecordInjection.rb:43:29:43:39 | ...[...] | ActiveRecordInjection.rb:43:20:43:42 | "id = '#{...}'" | provenance | | +| ActiveRecordInjection.rb:48:30:48:35 | call to params | ActiveRecordInjection.rb:48:30:48:40 | ...[...] | provenance | | +| ActiveRecordInjection.rb:48:30:48:40 | ...[...] | ActiveRecordInjection.rb:48:21:48:43 | "id = '#{...}'" | provenance | | +| ActiveRecordInjection.rb:52:22:52:44 | "id = '#{...}'" | ActiveRecordInjection.rb:52:21:52:45 | call to [] | provenance | | +| ActiveRecordInjection.rb:52:31:52:36 | call to params | ActiveRecordInjection.rb:52:31:52:41 | ...[...] | provenance | | +| ActiveRecordInjection.rb:52:31:52:41 | ...[...] | ActiveRecordInjection.rb:52:22:52:44 | "id = '#{...}'" | provenance | | +| ActiveRecordInjection.rb:57:23:57:45 | "id = '#{...}'" | ActiveRecordInjection.rb:57:22:57:46 | call to [] | provenance | | +| ActiveRecordInjection.rb:57:32:57:37 | call to params | ActiveRecordInjection.rb:57:32:57:42 | ...[...] | provenance | | +| ActiveRecordInjection.rb:57:32:57:42 | ...[...] | ActiveRecordInjection.rb:57:23:57:45 | "id = '#{...}'" | provenance | | +| ActiveRecordInjection.rb:62:21:62:26 | call to params | ActiveRecordInjection.rb:62:21:62:35 | ...[...] | provenance | | +| ActiveRecordInjection.rb:62:21:62:35 | ...[...] | ActiveRecordInjection.rb:61:16:61:21 | <<-SQL | provenance | | +| ActiveRecordInjection.rb:68:34:68:39 | call to params | ActiveRecordInjection.rb:68:34:68:44 | ...[...] | provenance | | +| ActiveRecordInjection.rb:68:34:68:44 | ...[...] | ActiveRecordInjection.rb:68:20:68:47 | "user.id = '#{...}'" | provenance | | +| ActiveRecordInjection.rb:70:23:70:28 | call to params | ActiveRecordInjection.rb:70:23:70:35 | ...[...] | provenance | | +| ActiveRecordInjection.rb:70:23:70:35 | ...[...] | ActiveRecordInjection.rb:8:25:8:28 | name | provenance | | +| ActiveRecordInjection.rb:70:38:70:43 | call to params | ActiveRecordInjection.rb:70:38:70:50 | ...[...] | provenance | | +| ActiveRecordInjection.rb:70:38:70:50 | ...[...] | ActiveRecordInjection.rb:8:31:8:34 | pass | provenance | | +| ActiveRecordInjection.rb:74:41:74:46 | call to params | ActiveRecordInjection.rb:74:41:74:51 | ...[...] | provenance | | +| ActiveRecordInjection.rb:74:41:74:51 | ...[...] | ActiveRecordInjection.rb:74:32:74:54 | "id = '#{...}'" | provenance | | +| ActiveRecordInjection.rb:79:23:79:28 | call to params | ActiveRecordInjection.rb:79:23:79:35 | ...[...] | provenance | | +| ActiveRecordInjection.rb:83:17:83:22 | call to params | ActiveRecordInjection.rb:83:17:83:31 | ...[...] | provenance | | +| ActiveRecordInjection.rb:84:19:84:24 | call to params | ActiveRecordInjection.rb:84:19:84:33 | ...[...] | provenance | | +| ActiveRecordInjection.rb:88:18:88:23 | call to params | ActiveRecordInjection.rb:88:18:88:35 | ...[...] | provenance | | +| ActiveRecordInjection.rb:92:21:92:26 | call to params | ActiveRecordInjection.rb:92:21:92:35 | ...[...] | provenance | | +| ActiveRecordInjection.rb:100:31:100:36 | call to params | ActiveRecordInjection.rb:100:31:100:52 | ...[...] | provenance | | +| ActiveRecordInjection.rb:100:31:100:52 | ...[...] | ActiveRecordInjection.rb:100:20:100:55 | "name = '#{...}'" | provenance | | +| ActiveRecordInjection.rb:104:30:104:35 | call to params | ActiveRecordInjection.rb:104:30:104:51 | ...[...] | provenance | | +| ActiveRecordInjection.rb:104:30:104:51 | ...[...] | ActiveRecordInjection.rb:104:19:104:54 | "name = '#{...}'" | provenance | | +| ActiveRecordInjection.rb:106:18:106:23 | call to params | ActiveRecordInjection.rb:106:18:106:35 | ...[...] | provenance | | +| ActiveRecordInjection.rb:108:23:108:28 | call to params | ActiveRecordInjection.rb:108:23:108:47 | ...[...] | provenance | | +| ActiveRecordInjection.rb:114:5:114:6 | ps | ActiveRecordInjection.rb:115:11:115:12 | ps | provenance | | +| ActiveRecordInjection.rb:114:10:114:15 | call to params | ActiveRecordInjection.rb:114:5:114:6 | ps | provenance | | +| ActiveRecordInjection.rb:115:5:115:7 | uid | ActiveRecordInjection.rb:116:5:116:9 | uidEq | provenance | | +| ActiveRecordInjection.rb:115:11:115:12 | ps | ActiveRecordInjection.rb:115:11:115:17 | ...[...] | provenance | | +| ActiveRecordInjection.rb:115:11:115:17 | ...[...] | ActiveRecordInjection.rb:115:5:115:7 | uid | provenance | | +| ActiveRecordInjection.rb:116:5:116:9 | uidEq | ActiveRecordInjection.rb:120:20:120:32 | ... + ... | provenance | | +| ActiveRecordInjection.rb:116:5:116:9 | uidEq | ActiveRecordInjection.rb:120:28:120:32 | uidEq | provenance | | +| ActiveRecordInjection.rb:120:20:120:32 | ... + ... [element] | ActiveRecordInjection.rb:120:20:120:32 | ... + ... | provenance | | +| ActiveRecordInjection.rb:120:28:120:32 | uidEq | ActiveRecordInjection.rb:120:20:120:32 | ... + ... [element] | provenance | | +| ActiveRecordInjection.rb:153:21:153:26 | call to params | ActiveRecordInjection.rb:153:21:153:44 | ...[...] | provenance | | +| ActiveRecordInjection.rb:153:21:153:26 | call to params | ActiveRecordInjection.rb:153:21:153:44 | ...[...] | provenance | | +| ActiveRecordInjection.rb:153:21:153:44 | ...[...] | ActiveRecordInjection.rb:20:22:20:30 | condition | provenance | | +| ActiveRecordInjection.rb:167:59:167:64 | call to params | ActiveRecordInjection.rb:167:59:167:74 | ...[...] | provenance | | +| ActiveRecordInjection.rb:167:59:167:74 | ...[...] | ActiveRecordInjection.rb:167:27:167:76 | "this is an unsafe annotation:..." | provenance | | +| ActiveRecordInjection.rb:178:5:178:13 | my_params | ActiveRecordInjection.rb:179:47:179:55 | my_params | provenance | | +| ActiveRecordInjection.rb:178:17:178:32 | call to permitted_params | ActiveRecordInjection.rb:178:5:178:13 | my_params | provenance | | +| ActiveRecordInjection.rb:179:5:179:9 | query | ActiveRecordInjection.rb:180:37:180:41 | query | provenance | | +| ActiveRecordInjection.rb:179:47:179:55 | my_params | ActiveRecordInjection.rb:179:47:179:65 | ...[...] | provenance | | +| ActiveRecordInjection.rb:179:47:179:65 | ...[...] | ActiveRecordInjection.rb:179:5:179:9 | query | provenance | | +| ActiveRecordInjection.rb:185:5:185:10 | call to params | ActiveRecordInjection.rb:185:5:185:27 | call to require | provenance | | +| ActiveRecordInjection.rb:185:5:185:27 | call to require | ActiveRecordInjection.rb:185:5:185:59 | call to permit | provenance | | +| ActiveRecordInjection.rb:185:5:185:59 | call to permit | ActiveRecordInjection.rb:178:17:178:32 | call to permitted_params | provenance | | +| ActiveRecordInjection.rb:185:5:185:59 | call to permit | ActiveRecordInjection.rb:189:77:189:92 | call to permitted_params | provenance | | +| ActiveRecordInjection.rb:185:5:185:59 | call to permit | ActiveRecordInjection.rb:190:69:190:84 | call to permitted_params | provenance | | +| ActiveRecordInjection.rb:189:77:189:92 | call to permitted_params | ActiveRecordInjection.rb:189:77:189:102 | ...[...] | provenance | | +| ActiveRecordInjection.rb:189:77:189:102 | ...[...] | ActiveRecordInjection.rb:189:43:189:104 | "SELECT * FROM users WHERE id ..." | provenance | | +| ActiveRecordInjection.rb:190:69:190:84 | call to permitted_params | ActiveRecordInjection.rb:190:69:190:94 | ...[...] | provenance | | +| ActiveRecordInjection.rb:190:69:190:94 | ...[...] | ActiveRecordInjection.rb:190:35:190:96 | "SELECT * FROM users WHERE id ..." | provenance | | +| ArelInjection.rb:4:5:4:8 | name | ArelInjection.rb:6:20:6:61 | "SELECT * FROM users WHERE nam..." | provenance | | +| ArelInjection.rb:4:12:4:17 | call to params | ArelInjection.rb:4:12:4:29 | ...[...] | provenance | | +| ArelInjection.rb:4:12:4:29 | ...[...] | ArelInjection.rb:4:5:4:8 | name | provenance | | +| PgInjection.rb:6:5:6:8 | name | PgInjection.rb:13:5:13:8 | qry1 | provenance | | +| PgInjection.rb:6:5:6:8 | name | PgInjection.rb:19:5:19:8 | qry2 | provenance | | +| PgInjection.rb:6:5:6:8 | name | PgInjection.rb:31:5:31:8 | qry3 | provenance | | +| PgInjection.rb:6:5:6:8 | name | PgInjection.rb:43:5:43:8 | qry3 | provenance | | +| PgInjection.rb:6:12:6:17 | call to params | PgInjection.rb:6:12:6:24 | ...[...] | provenance | | +| PgInjection.rb:6:12:6:24 | ...[...] | PgInjection.rb:6:5:6:8 | name | provenance | | +| PgInjection.rb:13:5:13:8 | qry1 | PgInjection.rb:14:15:14:18 | qry1 | provenance | | +| PgInjection.rb:13:5:13:8 | qry1 | PgInjection.rb:15:21:15:24 | qry1 | provenance | | +| PgInjection.rb:19:5:19:8 | qry2 | PgInjection.rb:20:22:20:25 | qry2 | provenance | | +| PgInjection.rb:19:5:19:8 | qry2 | PgInjection.rb:21:28:21:31 | qry2 | provenance | | +| PgInjection.rb:31:5:31:8 | qry3 | PgInjection.rb:32:29:32:32 | qry3 | provenance | | +| PgInjection.rb:43:5:43:8 | qry3 | PgInjection.rb:44:29:44:32 | qry3 | provenance | | nodes | ActiveRecordInjection.rb:8:25:8:28 | name | semmle.label | name | | ActiveRecordInjection.rb:8:31:8:34 | pass | semmle.label | pass | diff --git a/ruby/ql/test/query-tests/security/cwe-094/CodeInjection/CodeInjection.expected b/ruby/ql/test/query-tests/security/cwe-094/CodeInjection/CodeInjection.expected index 8b9e7e3abed0..b3f6dfcd5e5f 100644 --- a/ruby/ql/test/query-tests/security/cwe-094/CodeInjection/CodeInjection.expected +++ b/ruby/ql/test/query-tests/security/cwe-094/CodeInjection/CodeInjection.expected @@ -1,50 +1,50 @@ edges -| CodeInjection.rb:5:5:5:8 | code | CodeInjection.rb:8:10:8:13 | code | -| CodeInjection.rb:5:5:5:8 | code | CodeInjection.rb:8:10:8:13 | code | -| CodeInjection.rb:5:5:5:8 | code | CodeInjection.rb:20:20:20:23 | code | -| CodeInjection.rb:5:5:5:8 | code | CodeInjection.rb:20:20:20:23 | code | -| CodeInjection.rb:5:5:5:8 | code | CodeInjection.rb:23:21:23:24 | code | -| CodeInjection.rb:5:5:5:8 | code | CodeInjection.rb:23:21:23:24 | code | -| CodeInjection.rb:5:5:5:8 | code | CodeInjection.rb:29:15:29:18 | code | -| CodeInjection.rb:5:5:5:8 | code | CodeInjection.rb:32:19:32:22 | code | -| CodeInjection.rb:5:5:5:8 | code | CodeInjection.rb:38:24:38:27 | code | -| CodeInjection.rb:5:5:5:8 | code | CodeInjection.rb:38:24:38:27 | code | -| CodeInjection.rb:5:5:5:8 | code | CodeInjection.rb:41:40:41:43 | code | -| CodeInjection.rb:5:12:5:17 | call to params | CodeInjection.rb:5:12:5:24 | ...[...] | -| CodeInjection.rb:5:12:5:17 | call to params | CodeInjection.rb:5:12:5:24 | ...[...] | -| CodeInjection.rb:5:12:5:24 | ...[...] | CodeInjection.rb:5:5:5:8 | code | -| CodeInjection.rb:5:12:5:24 | ...[...] | CodeInjection.rb:5:5:5:8 | code | -| CodeInjection.rb:38:24:38:27 | code | CodeInjection.rb:38:10:38:28 | call to escape | -| CodeInjection.rb:38:24:38:27 | code | CodeInjection.rb:38:10:38:28 | call to escape | -| CodeInjection.rb:78:5:78:8 | code | CodeInjection.rb:80:16:80:19 | code | -| CodeInjection.rb:78:5:78:8 | code | CodeInjection.rb:86:10:86:25 | ... + ... | -| CodeInjection.rb:78:5:78:8 | code | CodeInjection.rb:86:10:86:37 | ... + ... | -| CodeInjection.rb:78:5:78:8 | code | CodeInjection.rb:86:22:86:25 | code | -| CodeInjection.rb:78:5:78:8 | code | CodeInjection.rb:88:10:88:32 | "prefix_#{...}_suffix" | -| CodeInjection.rb:78:5:78:8 | code | CodeInjection.rb:90:10:90:13 | code | -| CodeInjection.rb:78:5:78:8 | code | CodeInjection.rb:90:10:90:13 | code | -| CodeInjection.rb:78:12:78:17 | call to params | CodeInjection.rb:78:12:78:24 | ...[...] | -| CodeInjection.rb:78:12:78:17 | call to params | CodeInjection.rb:78:12:78:24 | ...[...] | -| CodeInjection.rb:78:12:78:24 | ...[...] | CodeInjection.rb:78:5:78:8 | code | -| CodeInjection.rb:78:12:78:24 | ...[...] | CodeInjection.rb:78:5:78:8 | code | -| CodeInjection.rb:86:10:86:25 | ... + ... | CodeInjection.rb:86:10:86:37 | ... + ... | -| CodeInjection.rb:86:10:86:25 | ... + ... [element] | CodeInjection.rb:86:10:86:37 | ... + ... [element] | -| CodeInjection.rb:86:10:86:37 | ... + ... [element] | CodeInjection.rb:86:10:86:37 | ... + ... | -| CodeInjection.rb:86:22:86:25 | code | CodeInjection.rb:86:10:86:25 | ... + ... [element] | -| CodeInjection.rb:101:3:102:5 | self in index [@foo] | CodeInjection.rb:111:3:113:5 | self in baz [@foo] | -| CodeInjection.rb:101:3:102:5 | self in index [@foo] | CodeInjection.rb:111:3:113:5 | self in baz [@foo] | -| CodeInjection.rb:105:5:105:8 | [post] self [@foo] | CodeInjection.rb:108:3:109:5 | self in bar [@foo] | -| CodeInjection.rb:105:5:105:8 | [post] self [@foo] | CodeInjection.rb:108:3:109:5 | self in bar [@foo] | -| CodeInjection.rb:105:12:105:17 | call to params | CodeInjection.rb:105:12:105:23 | ...[...] | -| CodeInjection.rb:105:12:105:17 | call to params | CodeInjection.rb:105:12:105:23 | ...[...] | -| CodeInjection.rb:105:12:105:23 | ...[...] | CodeInjection.rb:105:5:105:8 | [post] self [@foo] | -| CodeInjection.rb:105:12:105:23 | ...[...] | CodeInjection.rb:105:5:105:8 | [post] self [@foo] | -| CodeInjection.rb:108:3:109:5 | self in bar [@foo] | CodeInjection.rb:101:3:102:5 | self in index [@foo] | -| CodeInjection.rb:108:3:109:5 | self in bar [@foo] | CodeInjection.rb:101:3:102:5 | self in index [@foo] | -| CodeInjection.rb:111:3:113:5 | self in baz [@foo] | CodeInjection.rb:112:10:112:13 | self [@foo] | -| CodeInjection.rb:111:3:113:5 | self in baz [@foo] | CodeInjection.rb:112:10:112:13 | self [@foo] | -| CodeInjection.rb:112:10:112:13 | self [@foo] | CodeInjection.rb:112:10:112:13 | @foo | -| CodeInjection.rb:112:10:112:13 | self [@foo] | CodeInjection.rb:112:10:112:13 | @foo | +| CodeInjection.rb:5:5:5:8 | code | CodeInjection.rb:8:10:8:13 | code | provenance | | +| CodeInjection.rb:5:5:5:8 | code | CodeInjection.rb:8:10:8:13 | code | provenance | | +| CodeInjection.rb:5:5:5:8 | code | CodeInjection.rb:20:20:20:23 | code | provenance | | +| CodeInjection.rb:5:5:5:8 | code | CodeInjection.rb:20:20:20:23 | code | provenance | | +| CodeInjection.rb:5:5:5:8 | code | CodeInjection.rb:23:21:23:24 | code | provenance | | +| CodeInjection.rb:5:5:5:8 | code | CodeInjection.rb:23:21:23:24 | code | provenance | | +| CodeInjection.rb:5:5:5:8 | code | CodeInjection.rb:29:15:29:18 | code | provenance | | +| CodeInjection.rb:5:5:5:8 | code | CodeInjection.rb:32:19:32:22 | code | provenance | | +| CodeInjection.rb:5:5:5:8 | code | CodeInjection.rb:38:24:38:27 | code | provenance | | +| CodeInjection.rb:5:5:5:8 | code | CodeInjection.rb:38:24:38:27 | code | provenance | | +| CodeInjection.rb:5:5:5:8 | code | CodeInjection.rb:41:40:41:43 | code | provenance | | +| CodeInjection.rb:5:12:5:17 | call to params | CodeInjection.rb:5:12:5:24 | ...[...] | provenance | | +| CodeInjection.rb:5:12:5:17 | call to params | CodeInjection.rb:5:12:5:24 | ...[...] | provenance | | +| CodeInjection.rb:5:12:5:24 | ...[...] | CodeInjection.rb:5:5:5:8 | code | provenance | | +| CodeInjection.rb:5:12:5:24 | ...[...] | CodeInjection.rb:5:5:5:8 | code | provenance | | +| CodeInjection.rb:38:24:38:27 | code | CodeInjection.rb:38:10:38:28 | call to escape | provenance | | +| CodeInjection.rb:38:24:38:27 | code | CodeInjection.rb:38:10:38:28 | call to escape | provenance | | +| CodeInjection.rb:78:5:78:8 | code | CodeInjection.rb:80:16:80:19 | code | provenance | | +| CodeInjection.rb:78:5:78:8 | code | CodeInjection.rb:86:10:86:25 | ... + ... | provenance | | +| CodeInjection.rb:78:5:78:8 | code | CodeInjection.rb:86:10:86:37 | ... + ... | provenance | | +| CodeInjection.rb:78:5:78:8 | code | CodeInjection.rb:86:22:86:25 | code | provenance | | +| CodeInjection.rb:78:5:78:8 | code | CodeInjection.rb:88:10:88:32 | "prefix_#{...}_suffix" | provenance | | +| CodeInjection.rb:78:5:78:8 | code | CodeInjection.rb:90:10:90:13 | code | provenance | | +| CodeInjection.rb:78:5:78:8 | code | CodeInjection.rb:90:10:90:13 | code | provenance | | +| CodeInjection.rb:78:12:78:17 | call to params | CodeInjection.rb:78:12:78:24 | ...[...] | provenance | | +| CodeInjection.rb:78:12:78:17 | call to params | CodeInjection.rb:78:12:78:24 | ...[...] | provenance | | +| CodeInjection.rb:78:12:78:24 | ...[...] | CodeInjection.rb:78:5:78:8 | code | provenance | | +| CodeInjection.rb:78:12:78:24 | ...[...] | CodeInjection.rb:78:5:78:8 | code | provenance | | +| CodeInjection.rb:86:10:86:25 | ... + ... | CodeInjection.rb:86:10:86:37 | ... + ... | provenance | | +| CodeInjection.rb:86:10:86:25 | ... + ... [element] | CodeInjection.rb:86:10:86:37 | ... + ... [element] | provenance | | +| CodeInjection.rb:86:10:86:37 | ... + ... [element] | CodeInjection.rb:86:10:86:37 | ... + ... | provenance | | +| CodeInjection.rb:86:22:86:25 | code | CodeInjection.rb:86:10:86:25 | ... + ... [element] | provenance | | +| CodeInjection.rb:101:3:102:5 | self in index [@foo] | CodeInjection.rb:111:3:113:5 | self in baz [@foo] | provenance | | +| CodeInjection.rb:101:3:102:5 | self in index [@foo] | CodeInjection.rb:111:3:113:5 | self in baz [@foo] | provenance | | +| CodeInjection.rb:105:5:105:8 | [post] self [@foo] | CodeInjection.rb:108:3:109:5 | self in bar [@foo] | provenance | | +| CodeInjection.rb:105:5:105:8 | [post] self [@foo] | CodeInjection.rb:108:3:109:5 | self in bar [@foo] | provenance | | +| CodeInjection.rb:105:12:105:17 | call to params | CodeInjection.rb:105:12:105:23 | ...[...] | provenance | | +| CodeInjection.rb:105:12:105:17 | call to params | CodeInjection.rb:105:12:105:23 | ...[...] | provenance | | +| CodeInjection.rb:105:12:105:23 | ...[...] | CodeInjection.rb:105:5:105:8 | [post] self [@foo] | provenance | | +| CodeInjection.rb:105:12:105:23 | ...[...] | CodeInjection.rb:105:5:105:8 | [post] self [@foo] | provenance | | +| CodeInjection.rb:108:3:109:5 | self in bar [@foo] | CodeInjection.rb:101:3:102:5 | self in index [@foo] | provenance | | +| CodeInjection.rb:108:3:109:5 | self in bar [@foo] | CodeInjection.rb:101:3:102:5 | self in index [@foo] | provenance | | +| CodeInjection.rb:111:3:113:5 | self in baz [@foo] | CodeInjection.rb:112:10:112:13 | self [@foo] | provenance | | +| CodeInjection.rb:111:3:113:5 | self in baz [@foo] | CodeInjection.rb:112:10:112:13 | self [@foo] | provenance | | +| CodeInjection.rb:112:10:112:13 | self [@foo] | CodeInjection.rb:112:10:112:13 | @foo | provenance | | +| CodeInjection.rb:112:10:112:13 | self [@foo] | CodeInjection.rb:112:10:112:13 | @foo | provenance | | nodes | CodeInjection.rb:5:5:5:8 | code | semmle.label | code | | CodeInjection.rb:5:5:5:8 | code | semmle.label | code | diff --git a/ruby/ql/test/query-tests/security/cwe-094/UnsafeCodeConstruction/UnsafeCodeConstruction.expected b/ruby/ql/test/query-tests/security/cwe-094/UnsafeCodeConstruction/UnsafeCodeConstruction.expected index 716cf5591f96..8af3ed306de6 100644 --- a/ruby/ql/test/query-tests/security/cwe-094/UnsafeCodeConstruction/UnsafeCodeConstruction.expected +++ b/ruby/ql/test/query-tests/security/cwe-094/UnsafeCodeConstruction/UnsafeCodeConstruction.expected @@ -1,26 +1,26 @@ edges -| impl/unsafeCode.rb:2:12:2:17 | target | impl/unsafeCode.rb:3:17:3:25 | #{...} | -| impl/unsafeCode.rb:7:12:7:12 | x | impl/unsafeCode.rb:8:30:8:30 | x | -| impl/unsafeCode.rb:12:12:12:12 | x | impl/unsafeCode.rb:13:33:13:33 | x | -| impl/unsafeCode.rb:28:17:28:22 | my_arr | impl/unsafeCode.rb:29:10:29:15 | my_arr | -| impl/unsafeCode.rb:32:21:32:21 | x | impl/unsafeCode.rb:33:12:33:12 | x | -| impl/unsafeCode.rb:33:5:33:7 | arr [element 0] | impl/unsafeCode.rb:34:10:34:12 | arr | -| impl/unsafeCode.rb:33:12:33:12 | x | impl/unsafeCode.rb:33:5:33:7 | arr [element 0] | -| impl/unsafeCode.rb:37:15:37:15 | x | impl/unsafeCode.rb:39:14:39:14 | x | -| impl/unsafeCode.rb:39:5:39:7 | [post] arr [element] | impl/unsafeCode.rb:40:10:40:12 | arr | -| impl/unsafeCode.rb:39:5:39:7 | [post] arr [element] | impl/unsafeCode.rb:44:10:44:12 | arr | -| impl/unsafeCode.rb:39:14:39:14 | x | impl/unsafeCode.rb:39:5:39:7 | [post] arr [element] | -| impl/unsafeCode.rb:47:15:47:15 | x | impl/unsafeCode.rb:49:9:49:12 | #{...} | -| impl/unsafeCode.rb:54:21:54:21 | x | impl/unsafeCode.rb:55:22:55:22 | x | -| impl/unsafeCode.rb:59:21:59:21 | x | impl/unsafeCode.rb:60:17:60:17 | x | -| impl/unsafeCode.rb:59:24:59:24 | y | impl/unsafeCode.rb:63:30:63:30 | y | -| impl/unsafeCode.rb:60:5:60:7 | arr [element 0] | impl/unsafeCode.rb:61:10:61:12 | arr | -| impl/unsafeCode.rb:60:11:60:18 | call to Array [element 0] | impl/unsafeCode.rb:60:5:60:7 | arr [element 0] | -| impl/unsafeCode.rb:60:17:60:17 | x | impl/unsafeCode.rb:60:11:60:18 | call to Array [element 0] | -| impl/unsafeCode.rb:63:5:63:8 | arr2 [element 0] | impl/unsafeCode.rb:64:10:64:13 | arr2 | -| impl/unsafeCode.rb:63:13:63:32 | call to Array [element 1] | impl/unsafeCode.rb:63:13:63:42 | call to join | -| impl/unsafeCode.rb:63:13:63:42 | call to join | impl/unsafeCode.rb:63:5:63:8 | arr2 [element 0] | -| impl/unsafeCode.rb:63:30:63:30 | y | impl/unsafeCode.rb:63:13:63:32 | call to Array [element 1] | +| impl/unsafeCode.rb:2:12:2:17 | target | impl/unsafeCode.rb:3:17:3:25 | #{...} | provenance | | +| impl/unsafeCode.rb:7:12:7:12 | x | impl/unsafeCode.rb:8:30:8:30 | x | provenance | | +| impl/unsafeCode.rb:12:12:12:12 | x | impl/unsafeCode.rb:13:33:13:33 | x | provenance | | +| impl/unsafeCode.rb:28:17:28:22 | my_arr | impl/unsafeCode.rb:29:10:29:15 | my_arr | provenance | | +| impl/unsafeCode.rb:32:21:32:21 | x | impl/unsafeCode.rb:33:12:33:12 | x | provenance | | +| impl/unsafeCode.rb:33:5:33:7 | arr [element 0] | impl/unsafeCode.rb:34:10:34:12 | arr | provenance | | +| impl/unsafeCode.rb:33:12:33:12 | x | impl/unsafeCode.rb:33:5:33:7 | arr [element 0] | provenance | | +| impl/unsafeCode.rb:37:15:37:15 | x | impl/unsafeCode.rb:39:14:39:14 | x | provenance | | +| impl/unsafeCode.rb:39:5:39:7 | [post] arr [element] | impl/unsafeCode.rb:40:10:40:12 | arr | provenance | | +| impl/unsafeCode.rb:39:5:39:7 | [post] arr [element] | impl/unsafeCode.rb:44:10:44:12 | arr | provenance | | +| impl/unsafeCode.rb:39:14:39:14 | x | impl/unsafeCode.rb:39:5:39:7 | [post] arr [element] | provenance | | +| impl/unsafeCode.rb:47:15:47:15 | x | impl/unsafeCode.rb:49:9:49:12 | #{...} | provenance | | +| impl/unsafeCode.rb:54:21:54:21 | x | impl/unsafeCode.rb:55:22:55:22 | x | provenance | | +| impl/unsafeCode.rb:59:21:59:21 | x | impl/unsafeCode.rb:60:17:60:17 | x | provenance | | +| impl/unsafeCode.rb:59:24:59:24 | y | impl/unsafeCode.rb:63:30:63:30 | y | provenance | | +| impl/unsafeCode.rb:60:5:60:7 | arr [element 0] | impl/unsafeCode.rb:61:10:61:12 | arr | provenance | | +| impl/unsafeCode.rb:60:11:60:18 | call to Array [element 0] | impl/unsafeCode.rb:60:5:60:7 | arr [element 0] | provenance | | +| impl/unsafeCode.rb:60:17:60:17 | x | impl/unsafeCode.rb:60:11:60:18 | call to Array [element 0] | provenance | | +| impl/unsafeCode.rb:63:5:63:8 | arr2 [element 0] | impl/unsafeCode.rb:64:10:64:13 | arr2 | provenance | | +| impl/unsafeCode.rb:63:13:63:32 | call to Array [element 1] | impl/unsafeCode.rb:63:13:63:42 | call to join | provenance | | +| impl/unsafeCode.rb:63:13:63:42 | call to join | impl/unsafeCode.rb:63:5:63:8 | arr2 [element 0] | provenance | | +| impl/unsafeCode.rb:63:30:63:30 | y | impl/unsafeCode.rb:63:13:63:32 | call to Array [element 1] | provenance | | nodes | impl/unsafeCode.rb:2:12:2:17 | target | semmle.label | target | | impl/unsafeCode.rb:3:17:3:25 | #{...} | semmle.label | #{...} | diff --git a/ruby/ql/test/query-tests/security/cwe-117/LogInjection.expected b/ruby/ql/test/query-tests/security/cwe-117/LogInjection.expected index e3ea62b535d6..e0d5101f150f 100644 --- a/ruby/ql/test/query-tests/security/cwe-117/LogInjection.expected +++ b/ruby/ql/test/query-tests/security/cwe-117/LogInjection.expected @@ -1,28 +1,28 @@ edges -| app/controllers/users_controller.rb:15:5:15:15 | unsanitized | app/controllers/users_controller.rb:16:19:16:29 | unsanitized | -| app/controllers/users_controller.rb:15:5:15:15 | unsanitized | app/controllers/users_controller.rb:17:19:17:41 | ... + ... | -| app/controllers/users_controller.rb:15:5:15:15 | unsanitized | app/controllers/users_controller.rb:17:31:17:41 | unsanitized | -| app/controllers/users_controller.rb:15:5:15:15 | unsanitized | app/controllers/users_controller.rb:23:20:23:30 | unsanitized | -| app/controllers/users_controller.rb:15:19:15:24 | call to params | app/controllers/users_controller.rb:15:19:15:30 | ...[...] | -| app/controllers/users_controller.rb:15:19:15:30 | ...[...] | app/controllers/users_controller.rb:15:5:15:15 | unsanitized | -| app/controllers/users_controller.rb:17:19:17:41 | ... + ... [element] | app/controllers/users_controller.rb:17:19:17:41 | ... + ... | -| app/controllers/users_controller.rb:17:31:17:41 | unsanitized | app/controllers/users_controller.rb:17:19:17:41 | ... + ... [element] | -| app/controllers/users_controller.rb:23:20:23:30 | unsanitized | app/controllers/users_controller.rb:23:20:23:44 | call to sub | -| app/controllers/users_controller.rb:23:20:23:44 | call to sub | app/controllers/users_controller.rb:24:18:26:7 | do ... end [captured unsanitized2] | -| app/controllers/users_controller.rb:23:20:23:44 | call to sub | app/controllers/users_controller.rb:27:16:27:39 | ... + ... | -| app/controllers/users_controller.rb:23:20:23:44 | call to sub | app/controllers/users_controller.rb:27:28:27:39 | unsanitized2 | -| app/controllers/users_controller.rb:24:18:26:7 | do ... end [captured unsanitized2] | app/controllers/users_controller.rb:25:7:25:18 | unsanitized2 | -| app/controllers/users_controller.rb:27:16:27:39 | ... + ... [element] | app/controllers/users_controller.rb:27:16:27:39 | ... + ... | -| app/controllers/users_controller.rb:27:28:27:39 | unsanitized2 | app/controllers/users_controller.rb:27:16:27:39 | ... + ... [element] | -| app/controllers/users_controller.rb:33:19:33:25 | call to cookies | app/controllers/users_controller.rb:33:19:33:31 | ...[...] | -| app/controllers/users_controller.rb:33:19:33:31 | ...[...] | app/controllers/users_controller.rb:34:31:34:45 | { ... } [captured unsanitized] | -| app/controllers/users_controller.rb:33:19:33:31 | ...[...] | app/controllers/users_controller.rb:35:31:35:57 | { ... } [captured unsanitized] | -| app/controllers/users_controller.rb:34:31:34:45 | { ... } [captured unsanitized] | app/controllers/users_controller.rb:34:33:34:43 | unsanitized | -| app/controllers/users_controller.rb:35:31:35:57 | { ... } [captured unsanitized] | app/controllers/users_controller.rb:35:45:35:55 | unsanitized | -| app/controllers/users_controller.rb:35:33:35:55 | ... + ... [element] | app/controllers/users_controller.rb:35:33:35:55 | ... + ... | -| app/controllers/users_controller.rb:35:45:35:55 | unsanitized | app/controllers/users_controller.rb:35:33:35:55 | ... + ... | -| app/controllers/users_controller.rb:35:45:35:55 | unsanitized | app/controllers/users_controller.rb:35:33:35:55 | ... + ... [element] | -| app/controllers/users_controller.rb:49:19:49:24 | call to params | app/controllers/users_controller.rb:49:19:49:30 | ...[...] | +| app/controllers/users_controller.rb:15:5:15:15 | unsanitized | app/controllers/users_controller.rb:16:19:16:29 | unsanitized | provenance | | +| app/controllers/users_controller.rb:15:5:15:15 | unsanitized | app/controllers/users_controller.rb:17:19:17:41 | ... + ... | provenance | | +| app/controllers/users_controller.rb:15:5:15:15 | unsanitized | app/controllers/users_controller.rb:17:31:17:41 | unsanitized | provenance | | +| app/controllers/users_controller.rb:15:5:15:15 | unsanitized | app/controllers/users_controller.rb:23:20:23:30 | unsanitized | provenance | | +| app/controllers/users_controller.rb:15:19:15:24 | call to params | app/controllers/users_controller.rb:15:19:15:30 | ...[...] | provenance | | +| app/controllers/users_controller.rb:15:19:15:30 | ...[...] | app/controllers/users_controller.rb:15:5:15:15 | unsanitized | provenance | | +| app/controllers/users_controller.rb:17:19:17:41 | ... + ... [element] | app/controllers/users_controller.rb:17:19:17:41 | ... + ... | provenance | | +| app/controllers/users_controller.rb:17:31:17:41 | unsanitized | app/controllers/users_controller.rb:17:19:17:41 | ... + ... [element] | provenance | | +| app/controllers/users_controller.rb:23:20:23:30 | unsanitized | app/controllers/users_controller.rb:23:20:23:44 | call to sub | provenance | | +| app/controllers/users_controller.rb:23:20:23:44 | call to sub | app/controllers/users_controller.rb:24:18:26:7 | do ... end [captured unsanitized2] | provenance | | +| app/controllers/users_controller.rb:23:20:23:44 | call to sub | app/controllers/users_controller.rb:27:16:27:39 | ... + ... | provenance | | +| app/controllers/users_controller.rb:23:20:23:44 | call to sub | app/controllers/users_controller.rb:27:28:27:39 | unsanitized2 | provenance | | +| app/controllers/users_controller.rb:24:18:26:7 | do ... end [captured unsanitized2] | app/controllers/users_controller.rb:25:7:25:18 | unsanitized2 | provenance | | +| app/controllers/users_controller.rb:27:16:27:39 | ... + ... [element] | app/controllers/users_controller.rb:27:16:27:39 | ... + ... | provenance | | +| app/controllers/users_controller.rb:27:28:27:39 | unsanitized2 | app/controllers/users_controller.rb:27:16:27:39 | ... + ... [element] | provenance | | +| app/controllers/users_controller.rb:33:19:33:25 | call to cookies | app/controllers/users_controller.rb:33:19:33:31 | ...[...] | provenance | | +| app/controllers/users_controller.rb:33:19:33:31 | ...[...] | app/controllers/users_controller.rb:34:31:34:45 | { ... } [captured unsanitized] | provenance | | +| app/controllers/users_controller.rb:33:19:33:31 | ...[...] | app/controllers/users_controller.rb:35:31:35:57 | { ... } [captured unsanitized] | provenance | | +| app/controllers/users_controller.rb:34:31:34:45 | { ... } [captured unsanitized] | app/controllers/users_controller.rb:34:33:34:43 | unsanitized | provenance | | +| app/controllers/users_controller.rb:35:31:35:57 | { ... } [captured unsanitized] | app/controllers/users_controller.rb:35:45:35:55 | unsanitized | provenance | | +| app/controllers/users_controller.rb:35:33:35:55 | ... + ... [element] | app/controllers/users_controller.rb:35:33:35:55 | ... + ... | provenance | | +| app/controllers/users_controller.rb:35:45:35:55 | unsanitized | app/controllers/users_controller.rb:35:33:35:55 | ... + ... | provenance | | +| app/controllers/users_controller.rb:35:45:35:55 | unsanitized | app/controllers/users_controller.rb:35:33:35:55 | ... + ... [element] | provenance | | +| app/controllers/users_controller.rb:49:19:49:24 | call to params | app/controllers/users_controller.rb:49:19:49:30 | ...[...] | provenance | | nodes | app/controllers/users_controller.rb:15:5:15:15 | unsanitized | semmle.label | unsanitized | | app/controllers/users_controller.rb:15:19:15:24 | call to params | semmle.label | call to params | diff --git a/ruby/ql/test/query-tests/security/cwe-1333-polynomial-redos/PolynomialReDoS.expected b/ruby/ql/test/query-tests/security/cwe-1333-polynomial-redos/PolynomialReDoS.expected index ec079020695f..79d6c72fa3f5 100644 --- a/ruby/ql/test/query-tests/security/cwe-1333-polynomial-redos/PolynomialReDoS.expected +++ b/ruby/ql/test/query-tests/security/cwe-1333-polynomial-redos/PolynomialReDoS.expected @@ -1,51 +1,51 @@ edges -| PolynomialReDoS.rb:4:5:4:8 | name | PolynomialReDoS.rb:10:5:10:8 | name | -| PolynomialReDoS.rb:4:5:4:8 | name | PolynomialReDoS.rb:11:5:11:8 | name | -| PolynomialReDoS.rb:4:5:4:8 | name | PolynomialReDoS.rb:12:5:12:8 | name | -| PolynomialReDoS.rb:4:5:4:8 | name | PolynomialReDoS.rb:13:5:13:8 | name | -| PolynomialReDoS.rb:4:5:4:8 | name | PolynomialReDoS.rb:14:5:14:8 | name | -| PolynomialReDoS.rb:4:5:4:8 | name | PolynomialReDoS.rb:15:5:15:8 | name | -| PolynomialReDoS.rb:4:5:4:8 | name | PolynomialReDoS.rb:16:5:16:8 | name | -| PolynomialReDoS.rb:4:5:4:8 | name | PolynomialReDoS.rb:17:5:17:8 | name | -| PolynomialReDoS.rb:4:5:4:8 | name | PolynomialReDoS.rb:18:5:18:8 | name | -| PolynomialReDoS.rb:4:5:4:8 | name | PolynomialReDoS.rb:19:5:19:8 | name | -| PolynomialReDoS.rb:4:5:4:8 | name | PolynomialReDoS.rb:20:5:20:8 | name | -| PolynomialReDoS.rb:4:5:4:8 | name | PolynomialReDoS.rb:21:5:21:8 | name | -| PolynomialReDoS.rb:4:5:4:8 | name | PolynomialReDoS.rb:22:5:22:8 | name | -| PolynomialReDoS.rb:4:5:4:8 | name | PolynomialReDoS.rb:23:17:23:20 | name | -| PolynomialReDoS.rb:4:5:4:8 | name | PolynomialReDoS.rb:24:18:24:21 | name | -| PolynomialReDoS.rb:4:5:4:8 | name | PolynomialReDoS.rb:42:10:42:13 | name | -| PolynomialReDoS.rb:4:5:4:8 | name | PolynomialReDoS.rb:47:10:47:13 | name | -| PolynomialReDoS.rb:4:12:4:17 | call to params | PolynomialReDoS.rb:4:12:4:24 | ...[...] | -| PolynomialReDoS.rb:4:12:4:24 | ...[...] | PolynomialReDoS.rb:4:5:4:8 | name | -| PolynomialReDoS.rb:27:5:27:5 | a | PolynomialReDoS.rb:28:5:28:5 | a | -| PolynomialReDoS.rb:27:9:27:14 | call to params | PolynomialReDoS.rb:27:9:27:18 | ...[...] | -| PolynomialReDoS.rb:27:9:27:18 | ...[...] | PolynomialReDoS.rb:27:5:27:5 | a | -| PolynomialReDoS.rb:29:5:29:5 | b | PolynomialReDoS.rb:30:5:30:5 | b | -| PolynomialReDoS.rb:29:9:29:14 | call to params | PolynomialReDoS.rb:29:9:29:18 | ...[...] | -| PolynomialReDoS.rb:29:9:29:18 | ...[...] | PolynomialReDoS.rb:29:5:29:5 | b | -| PolynomialReDoS.rb:31:5:31:5 | c | PolynomialReDoS.rb:32:5:32:5 | c | -| PolynomialReDoS.rb:31:9:31:14 | call to params | PolynomialReDoS.rb:31:9:31:18 | ...[...] | -| PolynomialReDoS.rb:31:9:31:18 | ...[...] | PolynomialReDoS.rb:31:5:31:5 | c | -| PolynomialReDoS.rb:54:5:54:8 | name | PolynomialReDoS.rb:56:38:56:41 | name | -| PolynomialReDoS.rb:54:5:54:8 | name | PolynomialReDoS.rb:58:37:58:40 | name | -| PolynomialReDoS.rb:54:12:54:17 | call to params | PolynomialReDoS.rb:54:12:54:24 | ...[...] | -| PolynomialReDoS.rb:54:12:54:24 | ...[...] | PolynomialReDoS.rb:54:5:54:8 | name | -| PolynomialReDoS.rb:56:38:56:41 | name | PolynomialReDoS.rb:61:33:61:37 | input | -| PolynomialReDoS.rb:58:37:58:40 | name | PolynomialReDoS.rb:65:42:65:46 | input | -| PolynomialReDoS.rb:61:33:61:37 | input | PolynomialReDoS.rb:62:5:62:9 | input | -| PolynomialReDoS.rb:65:42:65:46 | input | PolynomialReDoS.rb:66:5:66:9 | input | -| PolynomialReDoS.rb:70:5:70:8 | name | PolynomialReDoS.rb:73:32:73:35 | name | -| PolynomialReDoS.rb:70:12:70:17 | call to params | PolynomialReDoS.rb:70:12:70:24 | ...[...] | -| PolynomialReDoS.rb:70:12:70:24 | ...[...] | PolynomialReDoS.rb:70:5:70:8 | name | -| PolynomialReDoS.rb:73:32:73:35 | name | PolynomialReDoS.rb:76:35:76:39 | input | -| PolynomialReDoS.rb:76:35:76:39 | input | PolynomialReDoS.rb:77:5:77:9 | input | -| PolynomialReDoS.rb:103:5:103:8 | name | PolynomialReDoS.rb:105:5:105:8 | name | -| PolynomialReDoS.rb:103:12:103:17 | call to params | PolynomialReDoS.rb:103:12:103:24 | ...[...] | -| PolynomialReDoS.rb:103:12:103:24 | ...[...] | PolynomialReDoS.rb:103:5:103:8 | name | -| lib/index.rb:2:11:2:11 | x | lib/index.rb:4:13:4:13 | x | -| lib/index.rb:8:13:8:13 | x | lib/index.rb:9:15:9:15 | x | -| lib/index.rb:8:13:8:13 | x | lib/index.rb:11:16:11:16 | x | +| PolynomialReDoS.rb:4:5:4:8 | name | PolynomialReDoS.rb:10:5:10:8 | name | provenance | | +| PolynomialReDoS.rb:4:5:4:8 | name | PolynomialReDoS.rb:11:5:11:8 | name | provenance | | +| PolynomialReDoS.rb:4:5:4:8 | name | PolynomialReDoS.rb:12:5:12:8 | name | provenance | | +| PolynomialReDoS.rb:4:5:4:8 | name | PolynomialReDoS.rb:13:5:13:8 | name | provenance | | +| PolynomialReDoS.rb:4:5:4:8 | name | PolynomialReDoS.rb:14:5:14:8 | name | provenance | | +| PolynomialReDoS.rb:4:5:4:8 | name | PolynomialReDoS.rb:15:5:15:8 | name | provenance | | +| PolynomialReDoS.rb:4:5:4:8 | name | PolynomialReDoS.rb:16:5:16:8 | name | provenance | | +| PolynomialReDoS.rb:4:5:4:8 | name | PolynomialReDoS.rb:17:5:17:8 | name | provenance | | +| PolynomialReDoS.rb:4:5:4:8 | name | PolynomialReDoS.rb:18:5:18:8 | name | provenance | | +| PolynomialReDoS.rb:4:5:4:8 | name | PolynomialReDoS.rb:19:5:19:8 | name | provenance | | +| PolynomialReDoS.rb:4:5:4:8 | name | PolynomialReDoS.rb:20:5:20:8 | name | provenance | | +| PolynomialReDoS.rb:4:5:4:8 | name | PolynomialReDoS.rb:21:5:21:8 | name | provenance | | +| PolynomialReDoS.rb:4:5:4:8 | name | PolynomialReDoS.rb:22:5:22:8 | name | provenance | | +| PolynomialReDoS.rb:4:5:4:8 | name | PolynomialReDoS.rb:23:17:23:20 | name | provenance | | +| PolynomialReDoS.rb:4:5:4:8 | name | PolynomialReDoS.rb:24:18:24:21 | name | provenance | | +| PolynomialReDoS.rb:4:5:4:8 | name | PolynomialReDoS.rb:42:10:42:13 | name | provenance | | +| PolynomialReDoS.rb:4:5:4:8 | name | PolynomialReDoS.rb:47:10:47:13 | name | provenance | | +| PolynomialReDoS.rb:4:12:4:17 | call to params | PolynomialReDoS.rb:4:12:4:24 | ...[...] | provenance | | +| PolynomialReDoS.rb:4:12:4:24 | ...[...] | PolynomialReDoS.rb:4:5:4:8 | name | provenance | | +| PolynomialReDoS.rb:27:5:27:5 | a | PolynomialReDoS.rb:28:5:28:5 | a | provenance | | +| PolynomialReDoS.rb:27:9:27:14 | call to params | PolynomialReDoS.rb:27:9:27:18 | ...[...] | provenance | | +| PolynomialReDoS.rb:27:9:27:18 | ...[...] | PolynomialReDoS.rb:27:5:27:5 | a | provenance | | +| PolynomialReDoS.rb:29:5:29:5 | b | PolynomialReDoS.rb:30:5:30:5 | b | provenance | | +| PolynomialReDoS.rb:29:9:29:14 | call to params | PolynomialReDoS.rb:29:9:29:18 | ...[...] | provenance | | +| PolynomialReDoS.rb:29:9:29:18 | ...[...] | PolynomialReDoS.rb:29:5:29:5 | b | provenance | | +| PolynomialReDoS.rb:31:5:31:5 | c | PolynomialReDoS.rb:32:5:32:5 | c | provenance | | +| PolynomialReDoS.rb:31:9:31:14 | call to params | PolynomialReDoS.rb:31:9:31:18 | ...[...] | provenance | | +| PolynomialReDoS.rb:31:9:31:18 | ...[...] | PolynomialReDoS.rb:31:5:31:5 | c | provenance | | +| PolynomialReDoS.rb:54:5:54:8 | name | PolynomialReDoS.rb:56:38:56:41 | name | provenance | | +| PolynomialReDoS.rb:54:5:54:8 | name | PolynomialReDoS.rb:58:37:58:40 | name | provenance | | +| PolynomialReDoS.rb:54:12:54:17 | call to params | PolynomialReDoS.rb:54:12:54:24 | ...[...] | provenance | | +| PolynomialReDoS.rb:54:12:54:24 | ...[...] | PolynomialReDoS.rb:54:5:54:8 | name | provenance | | +| PolynomialReDoS.rb:56:38:56:41 | name | PolynomialReDoS.rb:61:33:61:37 | input | provenance | | +| PolynomialReDoS.rb:58:37:58:40 | name | PolynomialReDoS.rb:65:42:65:46 | input | provenance | | +| PolynomialReDoS.rb:61:33:61:37 | input | PolynomialReDoS.rb:62:5:62:9 | input | provenance | | +| PolynomialReDoS.rb:65:42:65:46 | input | PolynomialReDoS.rb:66:5:66:9 | input | provenance | | +| PolynomialReDoS.rb:70:5:70:8 | name | PolynomialReDoS.rb:73:32:73:35 | name | provenance | | +| PolynomialReDoS.rb:70:12:70:17 | call to params | PolynomialReDoS.rb:70:12:70:24 | ...[...] | provenance | | +| PolynomialReDoS.rb:70:12:70:24 | ...[...] | PolynomialReDoS.rb:70:5:70:8 | name | provenance | | +| PolynomialReDoS.rb:73:32:73:35 | name | PolynomialReDoS.rb:76:35:76:39 | input | provenance | | +| PolynomialReDoS.rb:76:35:76:39 | input | PolynomialReDoS.rb:77:5:77:9 | input | provenance | | +| PolynomialReDoS.rb:103:5:103:8 | name | PolynomialReDoS.rb:105:5:105:8 | name | provenance | | +| PolynomialReDoS.rb:103:12:103:17 | call to params | PolynomialReDoS.rb:103:12:103:24 | ...[...] | provenance | | +| PolynomialReDoS.rb:103:12:103:24 | ...[...] | PolynomialReDoS.rb:103:5:103:8 | name | provenance | | +| lib/index.rb:2:11:2:11 | x | lib/index.rb:4:13:4:13 | x | provenance | | +| lib/index.rb:8:13:8:13 | x | lib/index.rb:9:15:9:15 | x | provenance | | +| lib/index.rb:8:13:8:13 | x | lib/index.rb:11:16:11:16 | x | provenance | | nodes | PolynomialReDoS.rb:4:5:4:8 | name | semmle.label | name | | PolynomialReDoS.rb:4:12:4:17 | call to params | semmle.label | call to params | diff --git a/ruby/ql/test/query-tests/security/cwe-1333-regexp-injection/RegExpInjection.expected b/ruby/ql/test/query-tests/security/cwe-1333-regexp-injection/RegExpInjection.expected index 3857229d278e..dff126abec1d 100644 --- a/ruby/ql/test/query-tests/security/cwe-1333-regexp-injection/RegExpInjection.expected +++ b/ruby/ql/test/query-tests/security/cwe-1333-regexp-injection/RegExpInjection.expected @@ -1,25 +1,25 @@ edges -| RegExpInjection.rb:4:5:4:8 | name | RegExpInjection.rb:5:13:5:21 | /#{...}/ | -| RegExpInjection.rb:4:12:4:17 | call to params | RegExpInjection.rb:4:12:4:24 | ...[...] | -| RegExpInjection.rb:4:12:4:24 | ...[...] | RegExpInjection.rb:4:5:4:8 | name | -| RegExpInjection.rb:10:5:10:8 | name | RegExpInjection.rb:11:13:11:27 | /foo#{...}bar/ | -| RegExpInjection.rb:10:12:10:17 | call to params | RegExpInjection.rb:10:12:10:24 | ...[...] | -| RegExpInjection.rb:10:12:10:24 | ...[...] | RegExpInjection.rb:10:5:10:8 | name | -| RegExpInjection.rb:16:5:16:8 | name | RegExpInjection.rb:17:24:17:27 | name | -| RegExpInjection.rb:16:12:16:17 | call to params | RegExpInjection.rb:16:12:16:24 | ...[...] | -| RegExpInjection.rb:16:12:16:24 | ...[...] | RegExpInjection.rb:16:5:16:8 | name | -| RegExpInjection.rb:22:5:22:8 | name | RegExpInjection.rb:23:24:23:33 | ... + ... | -| RegExpInjection.rb:22:5:22:8 | name | RegExpInjection.rb:23:30:23:33 | name | -| RegExpInjection.rb:22:12:22:17 | call to params | RegExpInjection.rb:22:12:22:24 | ...[...] | -| RegExpInjection.rb:22:12:22:24 | ...[...] | RegExpInjection.rb:22:5:22:8 | name | -| RegExpInjection.rb:23:24:23:33 | ... + ... [element] | RegExpInjection.rb:23:24:23:33 | ... + ... | -| RegExpInjection.rb:23:30:23:33 | name | RegExpInjection.rb:23:24:23:33 | ... + ... [element] | -| RegExpInjection.rb:54:5:54:8 | name | RegExpInjection.rb:55:28:55:37 | ... + ... | -| RegExpInjection.rb:54:5:54:8 | name | RegExpInjection.rb:55:34:55:37 | name | -| RegExpInjection.rb:54:12:54:17 | call to params | RegExpInjection.rb:54:12:54:24 | ...[...] | -| RegExpInjection.rb:54:12:54:24 | ...[...] | RegExpInjection.rb:54:5:54:8 | name | -| RegExpInjection.rb:55:28:55:37 | ... + ... [element] | RegExpInjection.rb:55:28:55:37 | ... + ... | -| RegExpInjection.rb:55:34:55:37 | name | RegExpInjection.rb:55:28:55:37 | ... + ... [element] | +| RegExpInjection.rb:4:5:4:8 | name | RegExpInjection.rb:5:13:5:21 | /#{...}/ | provenance | | +| RegExpInjection.rb:4:12:4:17 | call to params | RegExpInjection.rb:4:12:4:24 | ...[...] | provenance | | +| RegExpInjection.rb:4:12:4:24 | ...[...] | RegExpInjection.rb:4:5:4:8 | name | provenance | | +| RegExpInjection.rb:10:5:10:8 | name | RegExpInjection.rb:11:13:11:27 | /foo#{...}bar/ | provenance | | +| RegExpInjection.rb:10:12:10:17 | call to params | RegExpInjection.rb:10:12:10:24 | ...[...] | provenance | | +| RegExpInjection.rb:10:12:10:24 | ...[...] | RegExpInjection.rb:10:5:10:8 | name | provenance | | +| RegExpInjection.rb:16:5:16:8 | name | RegExpInjection.rb:17:24:17:27 | name | provenance | | +| RegExpInjection.rb:16:12:16:17 | call to params | RegExpInjection.rb:16:12:16:24 | ...[...] | provenance | | +| RegExpInjection.rb:16:12:16:24 | ...[...] | RegExpInjection.rb:16:5:16:8 | name | provenance | | +| RegExpInjection.rb:22:5:22:8 | name | RegExpInjection.rb:23:24:23:33 | ... + ... | provenance | | +| RegExpInjection.rb:22:5:22:8 | name | RegExpInjection.rb:23:30:23:33 | name | provenance | | +| RegExpInjection.rb:22:12:22:17 | call to params | RegExpInjection.rb:22:12:22:24 | ...[...] | provenance | | +| RegExpInjection.rb:22:12:22:24 | ...[...] | RegExpInjection.rb:22:5:22:8 | name | provenance | | +| RegExpInjection.rb:23:24:23:33 | ... + ... [element] | RegExpInjection.rb:23:24:23:33 | ... + ... | provenance | | +| RegExpInjection.rb:23:30:23:33 | name | RegExpInjection.rb:23:24:23:33 | ... + ... [element] | provenance | | +| RegExpInjection.rb:54:5:54:8 | name | RegExpInjection.rb:55:28:55:37 | ... + ... | provenance | | +| RegExpInjection.rb:54:5:54:8 | name | RegExpInjection.rb:55:34:55:37 | name | provenance | | +| RegExpInjection.rb:54:12:54:17 | call to params | RegExpInjection.rb:54:12:54:24 | ...[...] | provenance | | +| RegExpInjection.rb:54:12:54:24 | ...[...] | RegExpInjection.rb:54:5:54:8 | name | provenance | | +| RegExpInjection.rb:55:28:55:37 | ... + ... [element] | RegExpInjection.rb:55:28:55:37 | ... + ... | provenance | | +| RegExpInjection.rb:55:34:55:37 | name | RegExpInjection.rb:55:28:55:37 | ... + ... [element] | provenance | | nodes | RegExpInjection.rb:4:5:4:8 | name | semmle.label | name | | RegExpInjection.rb:4:12:4:17 | call to params | semmle.label | call to params | diff --git a/ruby/ql/test/query-tests/security/cwe-134/TaintedFormatString.expected b/ruby/ql/test/query-tests/security/cwe-134/TaintedFormatString.expected index de044832e237..a84a886c7783 100644 --- a/ruby/ql/test/query-tests/security/cwe-134/TaintedFormatString.expected +++ b/ruby/ql/test/query-tests/security/cwe-134/TaintedFormatString.expected @@ -1,23 +1,23 @@ edges -| tainted_format_string.rb:4:12:4:17 | call to params | tainted_format_string.rb:4:12:4:26 | ...[...] | -| tainted_format_string.rb:5:19:5:24 | call to params | tainted_format_string.rb:5:19:5:33 | ...[...] | -| tainted_format_string.rb:10:23:10:28 | call to params | tainted_format_string.rb:10:23:10:37 | ...[...] | -| tainted_format_string.rb:11:30:11:35 | call to params | tainted_format_string.rb:11:30:11:44 | ...[...] | -| tainted_format_string.rb:18:23:18:28 | call to params | tainted_format_string.rb:18:23:18:37 | ...[...] | -| tainted_format_string.rb:19:30:19:35 | call to params | tainted_format_string.rb:19:30:19:44 | ...[...] | -| tainted_format_string.rb:21:27:21:32 | call to params | tainted_format_string.rb:21:27:21:41 | ...[...] | -| tainted_format_string.rb:22:20:22:25 | call to params | tainted_format_string.rb:22:20:22:34 | ...[...] | -| tainted_format_string.rb:28:19:28:24 | call to params | tainted_format_string.rb:28:19:28:33 | ...[...] | -| tainted_format_string.rb:33:12:33:46 | ... + ... [element] | tainted_format_string.rb:33:12:33:46 | ... + ... | -| tainted_format_string.rb:33:32:33:37 | call to params | tainted_format_string.rb:33:32:33:46 | ...[...] | -| tainted_format_string.rb:33:32:33:46 | ...[...] | tainted_format_string.rb:33:12:33:46 | ... + ... | -| tainted_format_string.rb:33:32:33:46 | ...[...] | tainted_format_string.rb:33:12:33:46 | ... + ... [element] | -| tainted_format_string.rb:36:30:36:35 | call to params | tainted_format_string.rb:36:30:36:44 | ...[...] | -| tainted_format_string.rb:36:30:36:44 | ...[...] | tainted_format_string.rb:36:12:36:46 | "A log message: #{...}" | -| tainted_format_string.rb:39:22:39:27 | call to params | tainted_format_string.rb:39:22:39:36 | ...[...] | -| tainted_format_string.rb:39:22:39:36 | ...[...] | tainted_format_string.rb:39:5:39:45 | "A log message #{...} %{foo}" | -| tainted_format_string.rb:42:22:42:27 | call to params | tainted_format_string.rb:42:22:42:36 | ...[...] | -| tainted_format_string.rb:42:22:42:36 | ...[...] | tainted_format_string.rb:42:5:42:43 | "A log message #{...} %08x" | +| tainted_format_string.rb:4:12:4:17 | call to params | tainted_format_string.rb:4:12:4:26 | ...[...] | provenance | | +| tainted_format_string.rb:5:19:5:24 | call to params | tainted_format_string.rb:5:19:5:33 | ...[...] | provenance | | +| tainted_format_string.rb:10:23:10:28 | call to params | tainted_format_string.rb:10:23:10:37 | ...[...] | provenance | | +| tainted_format_string.rb:11:30:11:35 | call to params | tainted_format_string.rb:11:30:11:44 | ...[...] | provenance | | +| tainted_format_string.rb:18:23:18:28 | call to params | tainted_format_string.rb:18:23:18:37 | ...[...] | provenance | | +| tainted_format_string.rb:19:30:19:35 | call to params | tainted_format_string.rb:19:30:19:44 | ...[...] | provenance | | +| tainted_format_string.rb:21:27:21:32 | call to params | tainted_format_string.rb:21:27:21:41 | ...[...] | provenance | | +| tainted_format_string.rb:22:20:22:25 | call to params | tainted_format_string.rb:22:20:22:34 | ...[...] | provenance | | +| tainted_format_string.rb:28:19:28:24 | call to params | tainted_format_string.rb:28:19:28:33 | ...[...] | provenance | | +| tainted_format_string.rb:33:12:33:46 | ... + ... [element] | tainted_format_string.rb:33:12:33:46 | ... + ... | provenance | | +| tainted_format_string.rb:33:32:33:37 | call to params | tainted_format_string.rb:33:32:33:46 | ...[...] | provenance | | +| tainted_format_string.rb:33:32:33:46 | ...[...] | tainted_format_string.rb:33:12:33:46 | ... + ... | provenance | | +| tainted_format_string.rb:33:32:33:46 | ...[...] | tainted_format_string.rb:33:12:33:46 | ... + ... [element] | provenance | | +| tainted_format_string.rb:36:30:36:35 | call to params | tainted_format_string.rb:36:30:36:44 | ...[...] | provenance | | +| tainted_format_string.rb:36:30:36:44 | ...[...] | tainted_format_string.rb:36:12:36:46 | "A log message: #{...}" | provenance | | +| tainted_format_string.rb:39:22:39:27 | call to params | tainted_format_string.rb:39:22:39:36 | ...[...] | provenance | | +| tainted_format_string.rb:39:22:39:36 | ...[...] | tainted_format_string.rb:39:5:39:45 | "A log message #{...} %{foo}" | provenance | | +| tainted_format_string.rb:42:22:42:27 | call to params | tainted_format_string.rb:42:22:42:36 | ...[...] | provenance | | +| tainted_format_string.rb:42:22:42:36 | ...[...] | tainted_format_string.rb:42:5:42:43 | "A log message #{...} %08x" | provenance | | nodes | tainted_format_string.rb:4:12:4:17 | call to params | semmle.label | call to params | | tainted_format_string.rb:4:12:4:26 | ...[...] | semmle.label | ...[...] | diff --git a/ruby/ql/test/query-tests/security/cwe-209/StackTraceExposure.expected b/ruby/ql/test/query-tests/security/cwe-209/StackTraceExposure.expected index 59dc2e070eef..00e0b4317de2 100644 --- a/ruby/ql/test/query-tests/security/cwe-209/StackTraceExposure.expected +++ b/ruby/ql/test/query-tests/security/cwe-209/StackTraceExposure.expected @@ -1,6 +1,6 @@ edges -| StackTraceExposure.rb:11:5:11:6 | bt | StackTraceExposure.rb:12:18:12:19 | bt | -| StackTraceExposure.rb:11:10:11:17 | call to caller | StackTraceExposure.rb:11:5:11:6 | bt | +| StackTraceExposure.rb:11:5:11:6 | bt | StackTraceExposure.rb:12:18:12:19 | bt | provenance | | +| StackTraceExposure.rb:11:10:11:17 | call to caller | StackTraceExposure.rb:11:5:11:6 | bt | provenance | | nodes | StackTraceExposure.rb:6:18:6:28 | call to backtrace | semmle.label | call to backtrace | | StackTraceExposure.rb:11:5:11:6 | bt | semmle.label | bt | diff --git a/ruby/ql/test/query-tests/security/cwe-312/CleartextLogging.expected b/ruby/ql/test/query-tests/security/cwe-312/CleartextLogging.expected index a35aef729365..cb29945fbee8 100644 --- a/ruby/ql/test/query-tests/security/cwe-312/CleartextLogging.expected +++ b/ruby/ql/test/query-tests/security/cwe-312/CleartextLogging.expected @@ -1,43 +1,43 @@ edges -| logging.rb:3:1:3:8 | password | logging.rb:6:20:6:27 | password | -| logging.rb:3:1:3:8 | password | logging.rb:8:21:8:28 | password | -| logging.rb:3:1:3:8 | password | logging.rb:10:21:10:28 | password | -| logging.rb:3:1:3:8 | password | logging.rb:12:21:12:28 | password | -| logging.rb:3:1:3:8 | password | logging.rb:14:23:14:30 | password | -| logging.rb:3:1:3:8 | password | logging.rb:16:20:16:27 | password | -| logging.rb:3:1:3:8 | password | logging.rb:19:33:19:40 | password | -| logging.rb:3:1:3:8 | password | logging.rb:21:44:21:51 | password | -| logging.rb:3:1:3:8 | password | logging.rb:23:33:23:40 | password | -| logging.rb:3:1:3:8 | password | logging.rb:26:18:26:34 | "pw: #{...}" | -| logging.rb:3:1:3:8 | password | logging.rb:28:26:28:33 | password | -| logging.rb:3:12:3:45 | "043697b96909e03ca907599d6420555f" | logging.rb:3:1:3:8 | password | -| logging.rb:30:1:30:4 | hsh1 [element :password] | logging.rb:38:20:38:23 | hsh1 [element :password] | -| logging.rb:30:20:30:53 | "aec5058e61f7f122998b1a30ee2c66b6" | logging.rb:30:1:30:4 | hsh1 [element :password] | -| logging.rb:34:1:34:4 | [post] hsh2 [element :password] | logging.rb:35:1:35:4 | hsh3 [element :password] | -| logging.rb:34:1:34:4 | [post] hsh2 [element :password] | logging.rb:40:20:40:23 | hsh2 [element :password] | -| logging.rb:34:19:34:52 | "beeda625d7306b45784d91ea0336e201" | logging.rb:34:1:34:4 | [post] hsh2 [element :password] | -| logging.rb:35:1:35:4 | hsh3 [element :password] | logging.rb:42:20:42:23 | hsh3 [element :password] | -| logging.rb:38:20:38:23 | hsh1 [element :password] | logging.rb:38:20:38:34 | ...[...] | -| logging.rb:40:20:40:23 | hsh2 [element :password] | logging.rb:40:20:40:34 | ...[...] | -| logging.rb:42:20:42:23 | hsh3 [element :password] | logging.rb:42:20:42:34 | ...[...] | -| logging.rb:64:1:64:31 | password_masked_ineffective_sub | logging.rb:68:35:68:65 | password_masked_ineffective_sub | -| logging.rb:64:35:64:68 | "ca497451f5e883662fb1a37bc9ec7838" | logging.rb:64:1:64:31 | password_masked_ineffective_sub | -| logging.rb:65:1:65:34 | password_masked_ineffective_sub_ex | logging.rb:78:20:78:53 | password_masked_ineffective_sub_ex | -| logging.rb:65:38:65:71 | "ca497451f5e883662fb1a37bc9ec7838" | logging.rb:65:1:65:34 | password_masked_ineffective_sub_ex | -| logging.rb:66:1:66:32 | password_masked_ineffective_gsub | logging.rb:70:36:70:67 | password_masked_ineffective_gsub | -| logging.rb:66:36:66:69 | "a7e3747b19930d4f4b8181047194832f" | logging.rb:66:1:66:32 | password_masked_ineffective_gsub | -| logging.rb:67:1:67:35 | password_masked_ineffective_gsub_ex | logging.rb:80:20:80:54 | password_masked_ineffective_gsub_ex | -| logging.rb:67:39:67:72 | "a7e3747b19930d4f4b8181047194832f" | logging.rb:67:1:67:35 | password_masked_ineffective_gsub_ex | -| logging.rb:68:1:68:31 | password_masked_ineffective_sub | logging.rb:74:20:74:50 | password_masked_ineffective_sub | -| logging.rb:68:35:68:65 | password_masked_ineffective_sub | logging.rb:68:35:68:88 | call to sub | -| logging.rb:68:35:68:88 | call to sub | logging.rb:68:1:68:31 | password_masked_ineffective_sub | -| logging.rb:70:1:70:32 | password_masked_ineffective_gsub | logging.rb:76:20:76:51 | password_masked_ineffective_gsub | -| logging.rb:70:36:70:67 | password_masked_ineffective_gsub | logging.rb:70:36:70:86 | call to gsub | -| logging.rb:70:36:70:86 | call to gsub | logging.rb:70:1:70:32 | password_masked_ineffective_gsub | -| logging.rb:82:9:82:16 | password | logging.rb:84:15:84:22 | password | -| logging.rb:87:1:87:12 | password_arg | logging.rb:88:5:88:16 | password_arg | -| logging.rb:87:16:87:49 | "65f2950df2f0e2c38d7ba2ccca767291" | logging.rb:87:1:87:12 | password_arg | -| logging.rb:88:5:88:16 | password_arg | logging.rb:82:9:82:16 | password | +| logging.rb:3:1:3:8 | password | logging.rb:6:20:6:27 | password | provenance | | +| logging.rb:3:1:3:8 | password | logging.rb:8:21:8:28 | password | provenance | | +| logging.rb:3:1:3:8 | password | logging.rb:10:21:10:28 | password | provenance | | +| logging.rb:3:1:3:8 | password | logging.rb:12:21:12:28 | password | provenance | | +| logging.rb:3:1:3:8 | password | logging.rb:14:23:14:30 | password | provenance | | +| logging.rb:3:1:3:8 | password | logging.rb:16:20:16:27 | password | provenance | | +| logging.rb:3:1:3:8 | password | logging.rb:19:33:19:40 | password | provenance | | +| logging.rb:3:1:3:8 | password | logging.rb:21:44:21:51 | password | provenance | | +| logging.rb:3:1:3:8 | password | logging.rb:23:33:23:40 | password | provenance | | +| logging.rb:3:1:3:8 | password | logging.rb:26:18:26:34 | "pw: #{...}" | provenance | | +| logging.rb:3:1:3:8 | password | logging.rb:28:26:28:33 | password | provenance | | +| logging.rb:3:12:3:45 | "043697b96909e03ca907599d6420555f" | logging.rb:3:1:3:8 | password | provenance | | +| logging.rb:30:1:30:4 | hsh1 [element :password] | logging.rb:38:20:38:23 | hsh1 [element :password] | provenance | | +| logging.rb:30:20:30:53 | "aec5058e61f7f122998b1a30ee2c66b6" | logging.rb:30:1:30:4 | hsh1 [element :password] | provenance | | +| logging.rb:34:1:34:4 | [post] hsh2 [element :password] | logging.rb:35:1:35:4 | hsh3 [element :password] | provenance | | +| logging.rb:34:1:34:4 | [post] hsh2 [element :password] | logging.rb:40:20:40:23 | hsh2 [element :password] | provenance | | +| logging.rb:34:19:34:52 | "beeda625d7306b45784d91ea0336e201" | logging.rb:34:1:34:4 | [post] hsh2 [element :password] | provenance | | +| logging.rb:35:1:35:4 | hsh3 [element :password] | logging.rb:42:20:42:23 | hsh3 [element :password] | provenance | | +| logging.rb:38:20:38:23 | hsh1 [element :password] | logging.rb:38:20:38:34 | ...[...] | provenance | | +| logging.rb:40:20:40:23 | hsh2 [element :password] | logging.rb:40:20:40:34 | ...[...] | provenance | | +| logging.rb:42:20:42:23 | hsh3 [element :password] | logging.rb:42:20:42:34 | ...[...] | provenance | | +| logging.rb:64:1:64:31 | password_masked_ineffective_sub | logging.rb:68:35:68:65 | password_masked_ineffective_sub | provenance | | +| logging.rb:64:35:64:68 | "ca497451f5e883662fb1a37bc9ec7838" | logging.rb:64:1:64:31 | password_masked_ineffective_sub | provenance | | +| logging.rb:65:1:65:34 | password_masked_ineffective_sub_ex | logging.rb:78:20:78:53 | password_masked_ineffective_sub_ex | provenance | | +| logging.rb:65:38:65:71 | "ca497451f5e883662fb1a37bc9ec7838" | logging.rb:65:1:65:34 | password_masked_ineffective_sub_ex | provenance | | +| logging.rb:66:1:66:32 | password_masked_ineffective_gsub | logging.rb:70:36:70:67 | password_masked_ineffective_gsub | provenance | | +| logging.rb:66:36:66:69 | "a7e3747b19930d4f4b8181047194832f" | logging.rb:66:1:66:32 | password_masked_ineffective_gsub | provenance | | +| logging.rb:67:1:67:35 | password_masked_ineffective_gsub_ex | logging.rb:80:20:80:54 | password_masked_ineffective_gsub_ex | provenance | | +| logging.rb:67:39:67:72 | "a7e3747b19930d4f4b8181047194832f" | logging.rb:67:1:67:35 | password_masked_ineffective_gsub_ex | provenance | | +| logging.rb:68:1:68:31 | password_masked_ineffective_sub | logging.rb:74:20:74:50 | password_masked_ineffective_sub | provenance | | +| logging.rb:68:35:68:65 | password_masked_ineffective_sub | logging.rb:68:35:68:88 | call to sub | provenance | | +| logging.rb:68:35:68:88 | call to sub | logging.rb:68:1:68:31 | password_masked_ineffective_sub | provenance | | +| logging.rb:70:1:70:32 | password_masked_ineffective_gsub | logging.rb:76:20:76:51 | password_masked_ineffective_gsub | provenance | | +| logging.rb:70:36:70:67 | password_masked_ineffective_gsub | logging.rb:70:36:70:86 | call to gsub | provenance | | +| logging.rb:70:36:70:86 | call to gsub | logging.rb:70:1:70:32 | password_masked_ineffective_gsub | provenance | | +| logging.rb:82:9:82:16 | password | logging.rb:84:15:84:22 | password | provenance | | +| logging.rb:87:1:87:12 | password_arg | logging.rb:88:5:88:16 | password_arg | provenance | | +| logging.rb:87:16:87:49 | "65f2950df2f0e2c38d7ba2ccca767291" | logging.rb:87:1:87:12 | password_arg | provenance | | +| logging.rb:88:5:88:16 | password_arg | logging.rb:82:9:82:16 | password | provenance | | nodes | logging.rb:3:1:3:8 | password | semmle.label | password | | logging.rb:3:12:3:45 | "043697b96909e03ca907599d6420555f" | semmle.label | "043697b96909e03ca907599d6420555f" | diff --git a/ruby/ql/test/query-tests/security/cwe-312/CleartextStorage.expected b/ruby/ql/test/query-tests/security/cwe-312/CleartextStorage.expected index 9ec7e50e4600..f740990bceda 100644 --- a/ruby/ql/test/query-tests/security/cwe-312/CleartextStorage.expected +++ b/ruby/ql/test/query-tests/security/cwe-312/CleartextStorage.expected @@ -1,34 +1,34 @@ edges -| app/controllers/users_controller.rb:3:5:3:16 | new_password | app/controllers/users_controller.rb:5:39:5:50 | new_password | -| app/controllers/users_controller.rb:3:5:3:16 | new_password | app/controllers/users_controller.rb:7:41:7:52 | new_password | -| app/controllers/users_controller.rb:3:20:3:53 | "043697b96909e03ca907599d6420555f" | app/controllers/users_controller.rb:3:5:3:16 | new_password | -| app/controllers/users_controller.rb:11:5:11:16 | new_password | app/controllers/users_controller.rb:13:42:13:53 | new_password | -| app/controllers/users_controller.rb:11:5:11:16 | new_password | app/controllers/users_controller.rb:15:49:15:60 | new_password | -| app/controllers/users_controller.rb:11:5:11:16 | new_password | app/controllers/users_controller.rb:15:49:15:60 | new_password | -| app/controllers/users_controller.rb:11:5:11:16 | new_password | app/controllers/users_controller.rb:15:87:15:98 | new_password | -| app/controllers/users_controller.rb:11:20:11:53 | "083c9e1da4cc0c2f5480bb4dbe6ff141" | app/controllers/users_controller.rb:11:5:11:16 | new_password | -| app/controllers/users_controller.rb:15:49:15:60 | new_password | app/controllers/users_controller.rb:15:87:15:98 | new_password | -| app/controllers/users_controller.rb:19:5:19:16 | new_password | app/controllers/users_controller.rb:21:45:21:56 | new_password | -| app/controllers/users_controller.rb:19:5:19:16 | new_password | app/controllers/users_controller.rb:21:45:21:56 | new_password | -| app/controllers/users_controller.rb:19:5:19:16 | new_password | app/controllers/users_controller.rb:21:83:21:94 | new_password | -| app/controllers/users_controller.rb:19:20:19:53 | "504d224a806cf8073cd14ef08242d422" | app/controllers/users_controller.rb:19:5:19:16 | new_password | -| app/controllers/users_controller.rb:21:45:21:56 | new_password | app/controllers/users_controller.rb:21:83:21:94 | new_password | -| app/controllers/users_controller.rb:26:5:26:16 | new_password | app/controllers/users_controller.rb:28:27:28:38 | new_password | -| app/controllers/users_controller.rb:26:5:26:16 | new_password | app/controllers/users_controller.rb:30:28:30:39 | new_password | -| app/controllers/users_controller.rb:26:20:26:53 | "7d6ae08394c3f284506dca70f05995f6" | app/controllers/users_controller.rb:26:5:26:16 | new_password | -| app/controllers/users_controller.rb:35:5:35:16 | new_password | app/controllers/users_controller.rb:37:39:37:50 | new_password | -| app/controllers/users_controller.rb:35:20:35:53 | "ff295f8648a406c37fbe378377320e4c" | app/controllers/users_controller.rb:35:5:35:16 | new_password | -| app/controllers/users_controller.rb:42:5:42:16 | new_password | app/controllers/users_controller.rb:44:21:44:32 | new_password | -| app/controllers/users_controller.rb:42:20:42:53 | "78ffbec583b546bd073efd898f833184" | app/controllers/users_controller.rb:42:5:42:16 | new_password | -| app/controllers/users_controller.rb:58:5:58:16 | new_password | app/controllers/users_controller.rb:61:25:61:53 | "password: #{...}\\n" | -| app/controllers/users_controller.rb:58:5:58:16 | new_password | app/controllers/users_controller.rb:64:35:64:61 | "password: #{...}" | -| app/controllers/users_controller.rb:58:20:58:53 | "0157af7c38cbdd24f1616de4e5321861" | app/controllers/users_controller.rb:58:5:58:16 | new_password | -| app/models/user.rb:3:5:3:16 | new_password | app/models/user.rb:5:27:5:38 | new_password | -| app/models/user.rb:3:20:3:53 | "06c38c6a8a9c11a9d3b209a3193047b4" | app/models/user.rb:3:5:3:16 | new_password | -| app/models/user.rb:9:5:9:16 | new_password | app/models/user.rb:11:22:11:33 | new_password | -| app/models/user.rb:9:20:9:53 | "52652fb5c709fb6b9b5a0194af7c6067" | app/models/user.rb:9:5:9:16 | new_password | -| app/models/user.rb:15:5:15:16 | new_password | app/models/user.rb:17:21:17:32 | new_password | -| app/models/user.rb:15:20:15:53 | "f982bf2531c149a8a1444a951b12e830" | app/models/user.rb:15:5:15:16 | new_password | +| app/controllers/users_controller.rb:3:5:3:16 | new_password | app/controllers/users_controller.rb:5:39:5:50 | new_password | provenance | | +| app/controllers/users_controller.rb:3:5:3:16 | new_password | app/controllers/users_controller.rb:7:41:7:52 | new_password | provenance | | +| app/controllers/users_controller.rb:3:20:3:53 | "043697b96909e03ca907599d6420555f" | app/controllers/users_controller.rb:3:5:3:16 | new_password | provenance | | +| app/controllers/users_controller.rb:11:5:11:16 | new_password | app/controllers/users_controller.rb:13:42:13:53 | new_password | provenance | | +| app/controllers/users_controller.rb:11:5:11:16 | new_password | app/controllers/users_controller.rb:15:49:15:60 | new_password | provenance | | +| app/controllers/users_controller.rb:11:5:11:16 | new_password | app/controllers/users_controller.rb:15:49:15:60 | new_password | provenance | | +| app/controllers/users_controller.rb:11:5:11:16 | new_password | app/controllers/users_controller.rb:15:87:15:98 | new_password | provenance | | +| app/controllers/users_controller.rb:11:20:11:53 | "083c9e1da4cc0c2f5480bb4dbe6ff141" | app/controllers/users_controller.rb:11:5:11:16 | new_password | provenance | | +| app/controllers/users_controller.rb:15:49:15:60 | new_password | app/controllers/users_controller.rb:15:87:15:98 | new_password | provenance | | +| app/controllers/users_controller.rb:19:5:19:16 | new_password | app/controllers/users_controller.rb:21:45:21:56 | new_password | provenance | | +| app/controllers/users_controller.rb:19:5:19:16 | new_password | app/controllers/users_controller.rb:21:45:21:56 | new_password | provenance | | +| app/controllers/users_controller.rb:19:5:19:16 | new_password | app/controllers/users_controller.rb:21:83:21:94 | new_password | provenance | | +| app/controllers/users_controller.rb:19:20:19:53 | "504d224a806cf8073cd14ef08242d422" | app/controllers/users_controller.rb:19:5:19:16 | new_password | provenance | | +| app/controllers/users_controller.rb:21:45:21:56 | new_password | app/controllers/users_controller.rb:21:83:21:94 | new_password | provenance | | +| app/controllers/users_controller.rb:26:5:26:16 | new_password | app/controllers/users_controller.rb:28:27:28:38 | new_password | provenance | | +| app/controllers/users_controller.rb:26:5:26:16 | new_password | app/controllers/users_controller.rb:30:28:30:39 | new_password | provenance | | +| app/controllers/users_controller.rb:26:20:26:53 | "7d6ae08394c3f284506dca70f05995f6" | app/controllers/users_controller.rb:26:5:26:16 | new_password | provenance | | +| app/controllers/users_controller.rb:35:5:35:16 | new_password | app/controllers/users_controller.rb:37:39:37:50 | new_password | provenance | | +| app/controllers/users_controller.rb:35:20:35:53 | "ff295f8648a406c37fbe378377320e4c" | app/controllers/users_controller.rb:35:5:35:16 | new_password | provenance | | +| app/controllers/users_controller.rb:42:5:42:16 | new_password | app/controllers/users_controller.rb:44:21:44:32 | new_password | provenance | | +| app/controllers/users_controller.rb:42:20:42:53 | "78ffbec583b546bd073efd898f833184" | app/controllers/users_controller.rb:42:5:42:16 | new_password | provenance | | +| app/controllers/users_controller.rb:58:5:58:16 | new_password | app/controllers/users_controller.rb:61:25:61:53 | "password: #{...}\\n" | provenance | | +| app/controllers/users_controller.rb:58:5:58:16 | new_password | app/controllers/users_controller.rb:64:35:64:61 | "password: #{...}" | provenance | | +| app/controllers/users_controller.rb:58:20:58:53 | "0157af7c38cbdd24f1616de4e5321861" | app/controllers/users_controller.rb:58:5:58:16 | new_password | provenance | | +| app/models/user.rb:3:5:3:16 | new_password | app/models/user.rb:5:27:5:38 | new_password | provenance | | +| app/models/user.rb:3:20:3:53 | "06c38c6a8a9c11a9d3b209a3193047b4" | app/models/user.rb:3:5:3:16 | new_password | provenance | | +| app/models/user.rb:9:5:9:16 | new_password | app/models/user.rb:11:22:11:33 | new_password | provenance | | +| app/models/user.rb:9:20:9:53 | "52652fb5c709fb6b9b5a0194af7c6067" | app/models/user.rb:9:5:9:16 | new_password | provenance | | +| app/models/user.rb:15:5:15:16 | new_password | app/models/user.rb:17:21:17:32 | new_password | provenance | | +| app/models/user.rb:15:20:15:53 | "f982bf2531c149a8a1444a951b12e830" | app/models/user.rb:15:5:15:16 | new_password | provenance | | nodes | app/controllers/users_controller.rb:3:5:3:16 | new_password | semmle.label | new_password | | app/controllers/users_controller.rb:3:20:3:53 | "043697b96909e03ca907599d6420555f" | semmle.label | "043697b96909e03ca907599d6420555f" | diff --git a/ruby/ql/test/query-tests/security/cwe-502/oj-global-options/UnsafeDeserialization.expected b/ruby/ql/test/query-tests/security/cwe-502/oj-global-options/UnsafeDeserialization.expected index 27bfc08947fe..44f54744e4b1 100644 --- a/ruby/ql/test/query-tests/security/cwe-502/oj-global-options/UnsafeDeserialization.expected +++ b/ruby/ql/test/query-tests/security/cwe-502/oj-global-options/UnsafeDeserialization.expected @@ -1,7 +1,7 @@ edges -| OjGlobalOptions.rb:13:5:13:13 | json_data | OjGlobalOptions.rb:14:22:14:30 | json_data | -| OjGlobalOptions.rb:13:17:13:22 | call to params | OjGlobalOptions.rb:13:17:13:28 | ...[...] | -| OjGlobalOptions.rb:13:17:13:28 | ...[...] | OjGlobalOptions.rb:13:5:13:13 | json_data | +| OjGlobalOptions.rb:13:5:13:13 | json_data | OjGlobalOptions.rb:14:22:14:30 | json_data | provenance | | +| OjGlobalOptions.rb:13:17:13:22 | call to params | OjGlobalOptions.rb:13:17:13:28 | ...[...] | provenance | | +| OjGlobalOptions.rb:13:17:13:28 | ...[...] | OjGlobalOptions.rb:13:5:13:13 | json_data | provenance | | nodes | OjGlobalOptions.rb:13:5:13:13 | json_data | semmle.label | json_data | | OjGlobalOptions.rb:13:17:13:22 | call to params | semmle.label | call to params | diff --git a/ruby/ql/test/query-tests/security/cwe-502/ox-global-options/UnsafeDeserialization.expected b/ruby/ql/test/query-tests/security/cwe-502/ox-global-options/UnsafeDeserialization.expected index e96275a95ad1..4fa7c85df052 100644 --- a/ruby/ql/test/query-tests/security/cwe-502/ox-global-options/UnsafeDeserialization.expected +++ b/ruby/ql/test/query-tests/security/cwe-502/ox-global-options/UnsafeDeserialization.expected @@ -1,7 +1,7 @@ edges -| OxGlobalOptions.rb:6:5:6:12 | xml_data | OxGlobalOptions.rb:7:22:7:29 | xml_data | -| OxGlobalOptions.rb:6:16:6:21 | call to params | OxGlobalOptions.rb:6:16:6:27 | ...[...] | -| OxGlobalOptions.rb:6:16:6:27 | ...[...] | OxGlobalOptions.rb:6:5:6:12 | xml_data | +| OxGlobalOptions.rb:6:5:6:12 | xml_data | OxGlobalOptions.rb:7:22:7:29 | xml_data | provenance | | +| OxGlobalOptions.rb:6:16:6:21 | call to params | OxGlobalOptions.rb:6:16:6:27 | ...[...] | provenance | | +| OxGlobalOptions.rb:6:16:6:27 | ...[...] | OxGlobalOptions.rb:6:5:6:12 | xml_data | provenance | | nodes | OxGlobalOptions.rb:6:5:6:12 | xml_data | semmle.label | xml_data | | OxGlobalOptions.rb:6:16:6:21 | call to params | semmle.label | call to params | diff --git a/ruby/ql/test/query-tests/security/cwe-502/unsafe-deserialization/UnsafeDeserialization.expected b/ruby/ql/test/query-tests/security/cwe-502/unsafe-deserialization/UnsafeDeserialization.expected index 8a17c569e337..bf0376f39599 100644 --- a/ruby/ql/test/query-tests/security/cwe-502/unsafe-deserialization/UnsafeDeserialization.expected +++ b/ruby/ql/test/query-tests/security/cwe-502/unsafe-deserialization/UnsafeDeserialization.expected @@ -1,55 +1,55 @@ edges -| PlistUnsafeDeserialization.rb:5:30:5:35 | call to params | PlistUnsafeDeserialization.rb:5:30:5:49 | ...[...] | -| PlistUnsafeDeserialization.rb:6:30:6:35 | call to params | PlistUnsafeDeserialization.rb:6:30:6:49 | ...[...] | -| UnsafeDeserialization.rb:11:5:11:19 | serialized_data | UnsafeDeserialization.rb:12:27:12:41 | serialized_data | -| UnsafeDeserialization.rb:11:23:11:50 | call to decode64 | UnsafeDeserialization.rb:11:5:11:19 | serialized_data | -| UnsafeDeserialization.rb:11:39:11:44 | call to params | UnsafeDeserialization.rb:11:39:11:50 | ...[...] | -| UnsafeDeserialization.rb:11:39:11:50 | ...[...] | UnsafeDeserialization.rb:11:23:11:50 | call to decode64 | -| UnsafeDeserialization.rb:17:5:17:19 | serialized_data | UnsafeDeserialization.rb:18:30:18:44 | serialized_data | -| UnsafeDeserialization.rb:17:23:17:50 | call to decode64 | UnsafeDeserialization.rb:17:5:17:19 | serialized_data | -| UnsafeDeserialization.rb:17:39:17:44 | call to params | UnsafeDeserialization.rb:17:39:17:50 | ...[...] | -| UnsafeDeserialization.rb:17:39:17:50 | ...[...] | UnsafeDeserialization.rb:17:23:17:50 | call to decode64 | -| UnsafeDeserialization.rb:23:5:23:13 | json_data | UnsafeDeserialization.rb:24:24:24:32 | json_data | -| UnsafeDeserialization.rb:23:17:23:22 | call to params | UnsafeDeserialization.rb:23:17:23:28 | ...[...] | -| UnsafeDeserialization.rb:23:17:23:28 | ...[...] | UnsafeDeserialization.rb:23:5:23:13 | json_data | -| UnsafeDeserialization.rb:29:5:29:13 | json_data | UnsafeDeserialization.rb:30:27:30:35 | json_data | -| UnsafeDeserialization.rb:29:17:29:22 | call to params | UnsafeDeserialization.rb:29:17:29:28 | ...[...] | -| UnsafeDeserialization.rb:29:17:29:28 | ...[...] | UnsafeDeserialization.rb:29:5:29:13 | json_data | -| UnsafeDeserialization.rb:41:5:41:13 | yaml_data | UnsafeDeserialization.rb:42:24:42:32 | yaml_data | -| UnsafeDeserialization.rb:41:17:41:22 | call to params | UnsafeDeserialization.rb:41:17:41:28 | ...[...] | -| UnsafeDeserialization.rb:41:17:41:28 | ...[...] | UnsafeDeserialization.rb:41:5:41:13 | yaml_data | -| UnsafeDeserialization.rb:53:5:53:13 | json_data | UnsafeDeserialization.rb:54:22:54:30 | json_data | -| UnsafeDeserialization.rb:53:5:53:13 | json_data | UnsafeDeserialization.rb:55:22:55:30 | json_data | -| UnsafeDeserialization.rb:53:17:53:22 | call to params | UnsafeDeserialization.rb:53:17:53:28 | ...[...] | -| UnsafeDeserialization.rb:53:17:53:28 | ...[...] | UnsafeDeserialization.rb:53:5:53:13 | json_data | -| UnsafeDeserialization.rb:60:5:60:13 | json_data | UnsafeDeserialization.rb:70:23:70:31 | json_data | -| UnsafeDeserialization.rb:60:17:60:22 | call to params | UnsafeDeserialization.rb:60:17:60:28 | ...[...] | -| UnsafeDeserialization.rb:60:17:60:28 | ...[...] | UnsafeDeserialization.rb:60:5:60:13 | json_data | -| UnsafeDeserialization.rb:81:4:81:12 | json_data | UnsafeDeserialization.rb:82:28:82:36 | json_data | -| UnsafeDeserialization.rb:81:16:81:21 | call to params | UnsafeDeserialization.rb:81:16:81:27 | ...[...] | -| UnsafeDeserialization.rb:81:16:81:27 | ...[...] | UnsafeDeserialization.rb:81:4:81:12 | json_data | -| UnsafeDeserialization.rb:87:4:87:11 | xml_data | UnsafeDeserialization.rb:88:26:88:33 | xml_data | -| UnsafeDeserialization.rb:87:15:87:20 | call to params | UnsafeDeserialization.rb:87:15:87:26 | ...[...] | -| UnsafeDeserialization.rb:87:15:87:26 | ...[...] | UnsafeDeserialization.rb:87:4:87:11 | xml_data | -| UnsafeDeserialization.rb:93:5:93:12 | xml_data | UnsafeDeserialization.rb:94:22:94:29 | xml_data | -| UnsafeDeserialization.rb:93:16:93:21 | call to params | UnsafeDeserialization.rb:93:16:93:27 | ...[...] | -| UnsafeDeserialization.rb:93:16:93:27 | ...[...] | UnsafeDeserialization.rb:93:5:93:12 | xml_data | -| UnsafeDeserialization.rb:109:5:109:7 | xml | UnsafeDeserialization.rb:110:34:110:36 | xml | -| UnsafeDeserialization.rb:109:11:109:16 | call to params | UnsafeDeserialization.rb:109:11:109:22 | ...[...] | -| UnsafeDeserialization.rb:109:11:109:22 | ...[...] | UnsafeDeserialization.rb:109:5:109:7 | xml | -| UnsafeDeserialization.rb:115:5:115:13 | yaml_data | UnsafeDeserialization.rb:116:25:116:33 | yaml_data | -| UnsafeDeserialization.rb:115:17:115:22 | call to params | UnsafeDeserialization.rb:115:17:115:28 | ...[...] | -| UnsafeDeserialization.rb:115:17:115:28 | ...[...] | UnsafeDeserialization.rb:115:5:115:13 | yaml_data | -| YAMLUnsafeDeserialization.rb:5:16:5:21 | call to params | YAMLUnsafeDeserialization.rb:5:16:5:35 | ...[...] | -| YAMLUnsafeDeserialization.rb:11:23:11:28 | call to params | YAMLUnsafeDeserialization.rb:11:23:11:42 | ...[...] | -| YAMLUnsafeDeserialization.rb:12:28:12:33 | call to params | YAMLUnsafeDeserialization.rb:12:28:12:45 | ...[...] | -| YAMLUnsafeDeserialization.rb:13:23:13:28 | call to params | YAMLUnsafeDeserialization.rb:13:23:13:42 | ...[...] | -| YAMLUnsafeDeserialization.rb:14:39:14:44 | call to params | YAMLUnsafeDeserialization.rb:14:39:14:58 | ...[...] | -| YAMLUnsafeDeserialization.rb:14:39:14:58 | ...[...] | YAMLUnsafeDeserialization.rb:15:5:15:24 | call to to_ruby | -| YAMLUnsafeDeserialization.rb:16:17:16:22 | call to params | YAMLUnsafeDeserialization.rb:16:17:16:36 | ...[...] | -| YAMLUnsafeDeserialization.rb:16:17:16:36 | ...[...] | YAMLUnsafeDeserialization.rb:16:5:16:45 | call to to_ruby | -| YAMLUnsafeDeserialization.rb:17:22:17:27 | call to params | YAMLUnsafeDeserialization.rb:17:22:17:39 | ...[...] | -| YAMLUnsafeDeserialization.rb:17:22:17:39 | ...[...] | YAMLUnsafeDeserialization.rb:17:5:17:48 | call to to_ruby | +| PlistUnsafeDeserialization.rb:5:30:5:35 | call to params | PlistUnsafeDeserialization.rb:5:30:5:49 | ...[...] | provenance | | +| PlistUnsafeDeserialization.rb:6:30:6:35 | call to params | PlistUnsafeDeserialization.rb:6:30:6:49 | ...[...] | provenance | | +| UnsafeDeserialization.rb:11:5:11:19 | serialized_data | UnsafeDeserialization.rb:12:27:12:41 | serialized_data | provenance | | +| UnsafeDeserialization.rb:11:23:11:50 | call to decode64 | UnsafeDeserialization.rb:11:5:11:19 | serialized_data | provenance | | +| UnsafeDeserialization.rb:11:39:11:44 | call to params | UnsafeDeserialization.rb:11:39:11:50 | ...[...] | provenance | | +| UnsafeDeserialization.rb:11:39:11:50 | ...[...] | UnsafeDeserialization.rb:11:23:11:50 | call to decode64 | provenance | | +| UnsafeDeserialization.rb:17:5:17:19 | serialized_data | UnsafeDeserialization.rb:18:30:18:44 | serialized_data | provenance | | +| UnsafeDeserialization.rb:17:23:17:50 | call to decode64 | UnsafeDeserialization.rb:17:5:17:19 | serialized_data | provenance | | +| UnsafeDeserialization.rb:17:39:17:44 | call to params | UnsafeDeserialization.rb:17:39:17:50 | ...[...] | provenance | | +| UnsafeDeserialization.rb:17:39:17:50 | ...[...] | UnsafeDeserialization.rb:17:23:17:50 | call to decode64 | provenance | | +| UnsafeDeserialization.rb:23:5:23:13 | json_data | UnsafeDeserialization.rb:24:24:24:32 | json_data | provenance | | +| UnsafeDeserialization.rb:23:17:23:22 | call to params | UnsafeDeserialization.rb:23:17:23:28 | ...[...] | provenance | | +| UnsafeDeserialization.rb:23:17:23:28 | ...[...] | UnsafeDeserialization.rb:23:5:23:13 | json_data | provenance | | +| UnsafeDeserialization.rb:29:5:29:13 | json_data | UnsafeDeserialization.rb:30:27:30:35 | json_data | provenance | | +| UnsafeDeserialization.rb:29:17:29:22 | call to params | UnsafeDeserialization.rb:29:17:29:28 | ...[...] | provenance | | +| UnsafeDeserialization.rb:29:17:29:28 | ...[...] | UnsafeDeserialization.rb:29:5:29:13 | json_data | provenance | | +| UnsafeDeserialization.rb:41:5:41:13 | yaml_data | UnsafeDeserialization.rb:42:24:42:32 | yaml_data | provenance | | +| UnsafeDeserialization.rb:41:17:41:22 | call to params | UnsafeDeserialization.rb:41:17:41:28 | ...[...] | provenance | | +| UnsafeDeserialization.rb:41:17:41:28 | ...[...] | UnsafeDeserialization.rb:41:5:41:13 | yaml_data | provenance | | +| UnsafeDeserialization.rb:53:5:53:13 | json_data | UnsafeDeserialization.rb:54:22:54:30 | json_data | provenance | | +| UnsafeDeserialization.rb:53:5:53:13 | json_data | UnsafeDeserialization.rb:55:22:55:30 | json_data | provenance | | +| UnsafeDeserialization.rb:53:17:53:22 | call to params | UnsafeDeserialization.rb:53:17:53:28 | ...[...] | provenance | | +| UnsafeDeserialization.rb:53:17:53:28 | ...[...] | UnsafeDeserialization.rb:53:5:53:13 | json_data | provenance | | +| UnsafeDeserialization.rb:60:5:60:13 | json_data | UnsafeDeserialization.rb:70:23:70:31 | json_data | provenance | | +| UnsafeDeserialization.rb:60:17:60:22 | call to params | UnsafeDeserialization.rb:60:17:60:28 | ...[...] | provenance | | +| UnsafeDeserialization.rb:60:17:60:28 | ...[...] | UnsafeDeserialization.rb:60:5:60:13 | json_data | provenance | | +| UnsafeDeserialization.rb:81:4:81:12 | json_data | UnsafeDeserialization.rb:82:28:82:36 | json_data | provenance | | +| UnsafeDeserialization.rb:81:16:81:21 | call to params | UnsafeDeserialization.rb:81:16:81:27 | ...[...] | provenance | | +| UnsafeDeserialization.rb:81:16:81:27 | ...[...] | UnsafeDeserialization.rb:81:4:81:12 | json_data | provenance | | +| UnsafeDeserialization.rb:87:4:87:11 | xml_data | UnsafeDeserialization.rb:88:26:88:33 | xml_data | provenance | | +| UnsafeDeserialization.rb:87:15:87:20 | call to params | UnsafeDeserialization.rb:87:15:87:26 | ...[...] | provenance | | +| UnsafeDeserialization.rb:87:15:87:26 | ...[...] | UnsafeDeserialization.rb:87:4:87:11 | xml_data | provenance | | +| UnsafeDeserialization.rb:93:5:93:12 | xml_data | UnsafeDeserialization.rb:94:22:94:29 | xml_data | provenance | | +| UnsafeDeserialization.rb:93:16:93:21 | call to params | UnsafeDeserialization.rb:93:16:93:27 | ...[...] | provenance | | +| UnsafeDeserialization.rb:93:16:93:27 | ...[...] | UnsafeDeserialization.rb:93:5:93:12 | xml_data | provenance | | +| UnsafeDeserialization.rb:109:5:109:7 | xml | UnsafeDeserialization.rb:110:34:110:36 | xml | provenance | | +| UnsafeDeserialization.rb:109:11:109:16 | call to params | UnsafeDeserialization.rb:109:11:109:22 | ...[...] | provenance | | +| UnsafeDeserialization.rb:109:11:109:22 | ...[...] | UnsafeDeserialization.rb:109:5:109:7 | xml | provenance | | +| UnsafeDeserialization.rb:115:5:115:13 | yaml_data | UnsafeDeserialization.rb:116:25:116:33 | yaml_data | provenance | | +| UnsafeDeserialization.rb:115:17:115:22 | call to params | UnsafeDeserialization.rb:115:17:115:28 | ...[...] | provenance | | +| UnsafeDeserialization.rb:115:17:115:28 | ...[...] | UnsafeDeserialization.rb:115:5:115:13 | yaml_data | provenance | | +| YAMLUnsafeDeserialization.rb:5:16:5:21 | call to params | YAMLUnsafeDeserialization.rb:5:16:5:35 | ...[...] | provenance | | +| YAMLUnsafeDeserialization.rb:11:23:11:28 | call to params | YAMLUnsafeDeserialization.rb:11:23:11:42 | ...[...] | provenance | | +| YAMLUnsafeDeserialization.rb:12:28:12:33 | call to params | YAMLUnsafeDeserialization.rb:12:28:12:45 | ...[...] | provenance | | +| YAMLUnsafeDeserialization.rb:13:23:13:28 | call to params | YAMLUnsafeDeserialization.rb:13:23:13:42 | ...[...] | provenance | | +| YAMLUnsafeDeserialization.rb:14:39:14:44 | call to params | YAMLUnsafeDeserialization.rb:14:39:14:58 | ...[...] | provenance | | +| YAMLUnsafeDeserialization.rb:14:39:14:58 | ...[...] | YAMLUnsafeDeserialization.rb:15:5:15:24 | call to to_ruby | provenance | | +| YAMLUnsafeDeserialization.rb:16:17:16:22 | call to params | YAMLUnsafeDeserialization.rb:16:17:16:36 | ...[...] | provenance | | +| YAMLUnsafeDeserialization.rb:16:17:16:36 | ...[...] | YAMLUnsafeDeserialization.rb:16:5:16:45 | call to to_ruby | provenance | | +| YAMLUnsafeDeserialization.rb:17:22:17:27 | call to params | YAMLUnsafeDeserialization.rb:17:22:17:39 | ...[...] | provenance | | +| YAMLUnsafeDeserialization.rb:17:22:17:39 | ...[...] | YAMLUnsafeDeserialization.rb:17:5:17:48 | call to to_ruby | provenance | | nodes | PlistUnsafeDeserialization.rb:5:30:5:35 | call to params | semmle.label | call to params | | PlistUnsafeDeserialization.rb:5:30:5:49 | ...[...] | semmle.label | ...[...] | diff --git a/ruby/ql/test/query-tests/security/cwe-506/HardcodedDataInterpretedAsCode.expected b/ruby/ql/test/query-tests/security/cwe-506/HardcodedDataInterpretedAsCode.expected index 57918d9da205..84a462763717 100644 --- a/ruby/ql/test/query-tests/security/cwe-506/HardcodedDataInterpretedAsCode.expected +++ b/ruby/ql/test/query-tests/security/cwe-506/HardcodedDataInterpretedAsCode.expected @@ -1,15 +1,15 @@ edges -| tst.rb:1:7:1:7 | r | tst.rb:2:4:2:4 | r | -| tst.rb:2:4:2:4 | r | tst.rb:2:3:2:15 | call to pack | -| tst.rb:5:1:5:23 | totally_harmless_string | tst.rb:7:8:7:30 | totally_harmless_string | -| tst.rb:5:27:5:72 | "707574732822636f646520696e6a6..." | tst.rb:5:1:5:23 | totally_harmless_string | -| tst.rb:7:8:7:30 | totally_harmless_string | tst.rb:1:7:1:7 | r | -| tst.rb:7:8:7:30 | totally_harmless_string | tst.rb:7:6:7:31 | call to e | -| tst.rb:10:11:10:24 | "666f6f626172" | tst.rb:1:7:1:7 | r | -| tst.rb:10:11:10:24 | "666f6f626172" | tst.rb:10:9:10:25 | call to e | -| tst.rb:16:1:16:27 | another_questionable_string | tst.rb:17:6:17:32 | another_questionable_string | -| tst.rb:16:31:16:84 | "\\x70\\x75\\x74\\x73\\x28\\x27\\x68\\..." | tst.rb:16:1:16:27 | another_questionable_string | -| tst.rb:17:6:17:32 | another_questionable_string | tst.rb:17:6:17:38 | call to strip | +| tst.rb:1:7:1:7 | r | tst.rb:2:4:2:4 | r | provenance | | +| tst.rb:2:4:2:4 | r | tst.rb:2:3:2:15 | call to pack | provenance | | +| tst.rb:5:1:5:23 | totally_harmless_string | tst.rb:7:8:7:30 | totally_harmless_string | provenance | | +| tst.rb:5:27:5:72 | "707574732822636f646520696e6a6..." | tst.rb:5:1:5:23 | totally_harmless_string | provenance | | +| tst.rb:7:8:7:30 | totally_harmless_string | tst.rb:1:7:1:7 | r | provenance | | +| tst.rb:7:8:7:30 | totally_harmless_string | tst.rb:7:6:7:31 | call to e | provenance | | +| tst.rb:10:11:10:24 | "666f6f626172" | tst.rb:1:7:1:7 | r | provenance | | +| tst.rb:10:11:10:24 | "666f6f626172" | tst.rb:10:9:10:25 | call to e | provenance | | +| tst.rb:16:1:16:27 | another_questionable_string | tst.rb:17:6:17:32 | another_questionable_string | provenance | | +| tst.rb:16:31:16:84 | "\\x70\\x75\\x74\\x73\\x28\\x27\\x68\\..." | tst.rb:16:1:16:27 | another_questionable_string | provenance | | +| tst.rb:17:6:17:32 | another_questionable_string | tst.rb:17:6:17:38 | call to strip | provenance | | nodes | tst.rb:1:7:1:7 | r | semmle.label | r | | tst.rb:2:3:2:15 | call to pack | semmle.label | call to pack | diff --git a/ruby/ql/test/query-tests/security/cwe-601/UrlRedirect.expected b/ruby/ql/test/query-tests/security/cwe-601/UrlRedirect.expected index 8d09e79a5715..3dfe8be90bf4 100644 --- a/ruby/ql/test/query-tests/security/cwe-601/UrlRedirect.expected +++ b/ruby/ql/test/query-tests/security/cwe-601/UrlRedirect.expected @@ -1,17 +1,17 @@ edges -| UrlRedirect.rb:9:17:9:22 | call to params | UrlRedirect.rb:9:17:9:28 | ...[...] | -| UrlRedirect.rb:14:17:14:22 | call to params | UrlRedirect.rb:14:17:14:43 | call to fetch | -| UrlRedirect.rb:19:17:19:22 | call to params | UrlRedirect.rb:19:17:19:37 | call to to_unsafe_hash | -| UrlRedirect.rb:24:31:24:36 | call to params | UrlRedirect.rb:24:17:24:37 | call to filter_params | -| UrlRedirect.rb:24:31:24:36 | call to params | UrlRedirect.rb:93:21:93:32 | input_params | -| UrlRedirect.rb:34:20:34:25 | call to params | UrlRedirect.rb:34:20:34:31 | ...[...] | -| UrlRedirect.rb:34:20:34:31 | ...[...] | UrlRedirect.rb:34:17:34:37 | "#{...}/foo" | -| UrlRedirect.rb:58:17:58:22 | call to params | UrlRedirect.rb:58:17:58:28 | ...[...] | -| UrlRedirect.rb:63:38:63:43 | call to params | UrlRedirect.rb:63:38:63:49 | ...[...] | -| UrlRedirect.rb:68:38:68:43 | call to params | UrlRedirect.rb:68:38:68:49 | ...[...] | -| UrlRedirect.rb:73:25:73:30 | call to params | UrlRedirect.rb:73:25:73:36 | ...[...] | -| UrlRedirect.rb:93:21:93:32 | input_params | UrlRedirect.rb:94:5:94:16 | input_params | -| UrlRedirect.rb:94:5:94:16 | input_params | UrlRedirect.rb:94:5:94:29 | call to permit | +| UrlRedirect.rb:9:17:9:22 | call to params | UrlRedirect.rb:9:17:9:28 | ...[...] | provenance | | +| UrlRedirect.rb:14:17:14:22 | call to params | UrlRedirect.rb:14:17:14:43 | call to fetch | provenance | | +| UrlRedirect.rb:19:17:19:22 | call to params | UrlRedirect.rb:19:17:19:37 | call to to_unsafe_hash | provenance | | +| UrlRedirect.rb:24:31:24:36 | call to params | UrlRedirect.rb:24:17:24:37 | call to filter_params | provenance | | +| UrlRedirect.rb:24:31:24:36 | call to params | UrlRedirect.rb:93:21:93:32 | input_params | provenance | | +| UrlRedirect.rb:34:20:34:25 | call to params | UrlRedirect.rb:34:20:34:31 | ...[...] | provenance | | +| UrlRedirect.rb:34:20:34:31 | ...[...] | UrlRedirect.rb:34:17:34:37 | "#{...}/foo" | provenance | | +| UrlRedirect.rb:58:17:58:22 | call to params | UrlRedirect.rb:58:17:58:28 | ...[...] | provenance | | +| UrlRedirect.rb:63:38:63:43 | call to params | UrlRedirect.rb:63:38:63:49 | ...[...] | provenance | | +| UrlRedirect.rb:68:38:68:43 | call to params | UrlRedirect.rb:68:38:68:49 | ...[...] | provenance | | +| UrlRedirect.rb:73:25:73:30 | call to params | UrlRedirect.rb:73:25:73:36 | ...[...] | provenance | | +| UrlRedirect.rb:93:21:93:32 | input_params | UrlRedirect.rb:94:5:94:16 | input_params | provenance | | +| UrlRedirect.rb:94:5:94:16 | input_params | UrlRedirect.rb:94:5:94:29 | call to permit | provenance | | nodes | UrlRedirect.rb:4:17:4:22 | call to params | semmle.label | call to params | | UrlRedirect.rb:9:17:9:22 | call to params | semmle.label | call to params | diff --git a/ruby/ql/test/query-tests/security/cwe-611/libxml-backend/Xxe.expected b/ruby/ql/test/query-tests/security/cwe-611/libxml-backend/Xxe.expected index f4af8eaf7c03..d819e92c9305 100644 --- a/ruby/ql/test/query-tests/security/cwe-611/libxml-backend/Xxe.expected +++ b/ruby/ql/test/query-tests/security/cwe-611/libxml-backend/Xxe.expected @@ -1,10 +1,10 @@ edges -| LibXmlBackend.rb:16:5:16:11 | content | LibXmlBackend.rb:18:30:18:36 | content | -| LibXmlBackend.rb:16:5:16:11 | content | LibXmlBackend.rb:19:19:19:25 | content | -| LibXmlBackend.rb:16:5:16:11 | content | LibXmlBackend.rb:20:27:20:33 | content | -| LibXmlBackend.rb:16:5:16:11 | content | LibXmlBackend.rb:21:34:21:40 | content | -| LibXmlBackend.rb:16:15:16:20 | call to params | LibXmlBackend.rb:16:15:16:26 | ...[...] | -| LibXmlBackend.rb:16:15:16:26 | ...[...] | LibXmlBackend.rb:16:5:16:11 | content | +| LibXmlBackend.rb:16:5:16:11 | content | LibXmlBackend.rb:18:30:18:36 | content | provenance | | +| LibXmlBackend.rb:16:5:16:11 | content | LibXmlBackend.rb:19:19:19:25 | content | provenance | | +| LibXmlBackend.rb:16:5:16:11 | content | LibXmlBackend.rb:20:27:20:33 | content | provenance | | +| LibXmlBackend.rb:16:5:16:11 | content | LibXmlBackend.rb:21:34:21:40 | content | provenance | | +| LibXmlBackend.rb:16:15:16:20 | call to params | LibXmlBackend.rb:16:15:16:26 | ...[...] | provenance | | +| LibXmlBackend.rb:16:15:16:26 | ...[...] | LibXmlBackend.rb:16:5:16:11 | content | provenance | | nodes | LibXmlBackend.rb:16:5:16:11 | content | semmle.label | content | | LibXmlBackend.rb:16:15:16:20 | call to params | semmle.label | call to params | diff --git a/ruby/ql/test/query-tests/security/cwe-611/xxe/Xxe.expected b/ruby/ql/test/query-tests/security/cwe-611/xxe/Xxe.expected index 9474c258561d..44acc636b600 100644 --- a/ruby/ql/test/query-tests/security/cwe-611/xxe/Xxe.expected +++ b/ruby/ql/test/query-tests/security/cwe-611/xxe/Xxe.expected @@ -1,31 +1,31 @@ edges -| LibXmlRuby.rb:3:5:3:11 | content | LibXmlRuby.rb:4:34:4:40 | content | -| LibXmlRuby.rb:3:5:3:11 | content | LibXmlRuby.rb:5:32:5:38 | content | -| LibXmlRuby.rb:3:5:3:11 | content | LibXmlRuby.rb:6:30:6:36 | content | -| LibXmlRuby.rb:3:5:3:11 | content | LibXmlRuby.rb:7:32:7:38 | content | -| LibXmlRuby.rb:3:5:3:11 | content | LibXmlRuby.rb:8:30:8:36 | content | -| LibXmlRuby.rb:3:5:3:11 | content | LibXmlRuby.rb:9:28:9:34 | content | -| LibXmlRuby.rb:3:5:3:11 | content | LibXmlRuby.rb:11:26:11:32 | content | -| LibXmlRuby.rb:3:5:3:11 | content | LibXmlRuby.rb:12:24:12:30 | content | -| LibXmlRuby.rb:3:15:3:20 | call to params | LibXmlRuby.rb:3:15:3:26 | ...[...] | -| LibXmlRuby.rb:3:15:3:26 | ...[...] | LibXmlRuby.rb:3:5:3:11 | content | -| Nokogiri.rb:3:5:3:11 | content | Nokogiri.rb:5:26:5:32 | content | -| Nokogiri.rb:3:5:3:11 | content | Nokogiri.rb:6:26:6:32 | content | -| Nokogiri.rb:3:5:3:11 | content | Nokogiri.rb:7:26:7:32 | content | -| Nokogiri.rb:3:5:3:11 | content | Nokogiri.rb:8:26:8:32 | content | -| Nokogiri.rb:3:5:3:11 | content | Nokogiri.rb:9:26:9:32 | content | -| Nokogiri.rb:3:5:3:11 | content | Nokogiri.rb:11:26:11:32 | content | -| Nokogiri.rb:3:5:3:11 | content | Nokogiri.rb:12:26:12:32 | content | -| Nokogiri.rb:3:5:3:11 | content | Nokogiri.rb:15:26:15:32 | content | -| Nokogiri.rb:3:5:3:11 | content | Nokogiri.rb:16:26:16:32 | content | -| Nokogiri.rb:3:5:3:11 | content | Nokogiri.rb:18:26:18:32 | content | -| Nokogiri.rb:3:5:3:11 | content | Nokogiri.rb:19:26:19:32 | content | -| Nokogiri.rb:3:5:3:11 | content | Nokogiri.rb:22:26:22:32 | content | -| Nokogiri.rb:3:5:3:11 | content | Nokogiri.rb:25:26:25:32 | content | -| Nokogiri.rb:3:5:3:11 | content | Nokogiri.rb:27:26:27:32 | content | -| Nokogiri.rb:3:5:3:11 | content | Nokogiri.rb:28:26:28:32 | content | -| Nokogiri.rb:3:15:3:20 | call to params | Nokogiri.rb:3:15:3:26 | ...[...] | -| Nokogiri.rb:3:15:3:26 | ...[...] | Nokogiri.rb:3:5:3:11 | content | +| LibXmlRuby.rb:3:5:3:11 | content | LibXmlRuby.rb:4:34:4:40 | content | provenance | | +| LibXmlRuby.rb:3:5:3:11 | content | LibXmlRuby.rb:5:32:5:38 | content | provenance | | +| LibXmlRuby.rb:3:5:3:11 | content | LibXmlRuby.rb:6:30:6:36 | content | provenance | | +| LibXmlRuby.rb:3:5:3:11 | content | LibXmlRuby.rb:7:32:7:38 | content | provenance | | +| LibXmlRuby.rb:3:5:3:11 | content | LibXmlRuby.rb:8:30:8:36 | content | provenance | | +| LibXmlRuby.rb:3:5:3:11 | content | LibXmlRuby.rb:9:28:9:34 | content | provenance | | +| LibXmlRuby.rb:3:5:3:11 | content | LibXmlRuby.rb:11:26:11:32 | content | provenance | | +| LibXmlRuby.rb:3:5:3:11 | content | LibXmlRuby.rb:12:24:12:30 | content | provenance | | +| LibXmlRuby.rb:3:15:3:20 | call to params | LibXmlRuby.rb:3:15:3:26 | ...[...] | provenance | | +| LibXmlRuby.rb:3:15:3:26 | ...[...] | LibXmlRuby.rb:3:5:3:11 | content | provenance | | +| Nokogiri.rb:3:5:3:11 | content | Nokogiri.rb:5:26:5:32 | content | provenance | | +| Nokogiri.rb:3:5:3:11 | content | Nokogiri.rb:6:26:6:32 | content | provenance | | +| Nokogiri.rb:3:5:3:11 | content | Nokogiri.rb:7:26:7:32 | content | provenance | | +| Nokogiri.rb:3:5:3:11 | content | Nokogiri.rb:8:26:8:32 | content | provenance | | +| Nokogiri.rb:3:5:3:11 | content | Nokogiri.rb:9:26:9:32 | content | provenance | | +| Nokogiri.rb:3:5:3:11 | content | Nokogiri.rb:11:26:11:32 | content | provenance | | +| Nokogiri.rb:3:5:3:11 | content | Nokogiri.rb:12:26:12:32 | content | provenance | | +| Nokogiri.rb:3:5:3:11 | content | Nokogiri.rb:15:26:15:32 | content | provenance | | +| Nokogiri.rb:3:5:3:11 | content | Nokogiri.rb:16:26:16:32 | content | provenance | | +| Nokogiri.rb:3:5:3:11 | content | Nokogiri.rb:18:26:18:32 | content | provenance | | +| Nokogiri.rb:3:5:3:11 | content | Nokogiri.rb:19:26:19:32 | content | provenance | | +| Nokogiri.rb:3:5:3:11 | content | Nokogiri.rb:22:26:22:32 | content | provenance | | +| Nokogiri.rb:3:5:3:11 | content | Nokogiri.rb:25:26:25:32 | content | provenance | | +| Nokogiri.rb:3:5:3:11 | content | Nokogiri.rb:27:26:27:32 | content | provenance | | +| Nokogiri.rb:3:5:3:11 | content | Nokogiri.rb:28:26:28:32 | content | provenance | | +| Nokogiri.rb:3:15:3:20 | call to params | Nokogiri.rb:3:15:3:26 | ...[...] | provenance | | +| Nokogiri.rb:3:15:3:26 | ...[...] | Nokogiri.rb:3:5:3:11 | content | provenance | | nodes | LibXmlRuby.rb:3:5:3:11 | content | semmle.label | content | | LibXmlRuby.rb:3:15:3:20 | call to params | semmle.label | call to params | diff --git a/ruby/ql/test/query-tests/security/cwe-732/WeakFilePermissions.expected b/ruby/ql/test/query-tests/security/cwe-732/WeakFilePermissions.expected index a4e8218f8c1d..fe2f0f984221 100644 --- a/ruby/ql/test/query-tests/security/cwe-732/WeakFilePermissions.expected +++ b/ruby/ql/test/query-tests/security/cwe-732/WeakFilePermissions.expected @@ -1,11 +1,11 @@ edges -| FilePermissions.rb:51:3:51:6 | perm | FilePermissions.rb:53:19:53:22 | perm | -| FilePermissions.rb:51:3:51:6 | perm | FilePermissions.rb:54:3:54:7 | perm2 | -| FilePermissions.rb:51:10:51:13 | 0777 | FilePermissions.rb:51:3:51:6 | perm | -| FilePermissions.rb:54:3:54:7 | perm2 | FilePermissions.rb:56:19:56:23 | perm2 | -| FilePermissions.rb:58:3:58:6 | perm | FilePermissions.rb:59:3:59:7 | perm2 | -| FilePermissions.rb:58:10:58:26 | "u=wrx,g=rwx,o=x" | FilePermissions.rb:58:3:58:6 | perm | -| FilePermissions.rb:59:3:59:7 | perm2 | FilePermissions.rb:61:19:61:23 | perm2 | +| FilePermissions.rb:51:3:51:6 | perm | FilePermissions.rb:53:19:53:22 | perm | provenance | | +| FilePermissions.rb:51:3:51:6 | perm | FilePermissions.rb:54:3:54:7 | perm2 | provenance | | +| FilePermissions.rb:51:10:51:13 | 0777 | FilePermissions.rb:51:3:51:6 | perm | provenance | | +| FilePermissions.rb:54:3:54:7 | perm2 | FilePermissions.rb:56:19:56:23 | perm2 | provenance | | +| FilePermissions.rb:58:3:58:6 | perm | FilePermissions.rb:59:3:59:7 | perm2 | provenance | | +| FilePermissions.rb:58:10:58:26 | "u=wrx,g=rwx,o=x" | FilePermissions.rb:58:3:58:6 | perm | provenance | | +| FilePermissions.rb:59:3:59:7 | perm2 | FilePermissions.rb:61:19:61:23 | perm2 | provenance | | nodes | FilePermissions.rb:5:19:5:22 | 0222 | semmle.label | 0222 | | FilePermissions.rb:7:19:7:22 | 0622 | semmle.label | 0622 | diff --git a/ruby/ql/test/query-tests/security/cwe-798/HardcodedCredentials.expected b/ruby/ql/test/query-tests/security/cwe-798/HardcodedCredentials.expected index 3492e9b41aec..662b6c9575fb 100644 --- a/ruby/ql/test/query-tests/security/cwe-798/HardcodedCredentials.expected +++ b/ruby/ql/test/query-tests/security/cwe-798/HardcodedCredentials.expected @@ -1,20 +1,20 @@ edges -| HardcodedCredentials.rb:12:19:12:64 | "4NQX/CqB5Ae98zFUmwj1DMpF7azsh..." | HardcodedCredentials.rb:1:23:1:30 | password | -| HardcodedCredentials.rb:15:30:15:75 | "WLC17dLQ9P8YlQvqm77qplOMm5pd1..." | HardcodedCredentials.rb:1:33:1:36 | cert | -| HardcodedCredentials.rb:18:19:18:72 | ... + ... | HardcodedCredentials.rb:1:23:1:30 | password | -| HardcodedCredentials.rb:18:27:18:72 | "ogH6qSYWGdbR/2WOGYa7eZ/tObL+G..." | HardcodedCredentials.rb:18:19:18:72 | ... + ... | -| HardcodedCredentials.rb:20:1:20:7 | pw_left | HardcodedCredentials.rb:22:6:22:12 | pw_left | -| HardcodedCredentials.rb:20:11:20:76 | "3jOe7sXKX6Tx52qHWUVqh2t9LNsE+..." | HardcodedCredentials.rb:20:1:20:7 | pw_left | -| HardcodedCredentials.rb:21:1:21:8 | pw_right | HardcodedCredentials.rb:22:16:22:23 | pw_right | -| HardcodedCredentials.rb:21:12:21:37 | "4fQuzXef4f2yow8KWvIJTA==" | HardcodedCredentials.rb:21:1:21:8 | pw_right | -| HardcodedCredentials.rb:22:1:22:2 | pw | HardcodedCredentials.rb:23:19:23:20 | pw | -| HardcodedCredentials.rb:22:6:22:12 | pw_left | HardcodedCredentials.rb:22:6:22:23 | ... + ... | -| HardcodedCredentials.rb:22:6:22:23 | ... + ... | HardcodedCredentials.rb:22:1:22:2 | pw | -| HardcodedCredentials.rb:22:16:22:23 | pw_right | HardcodedCredentials.rb:22:6:22:23 | ... + ... | -| HardcodedCredentials.rb:23:19:23:20 | pw | HardcodedCredentials.rb:1:23:1:30 | password | -| HardcodedCredentials.rb:38:40:38:85 | "kdW/xVhiv6y1fQQNevDpUaq+2rfPK..." | HardcodedCredentials.rb:31:18:31:23 | passwd | -| HardcodedCredentials.rb:43:29:43:43 | "user@test.com" | HardcodedCredentials.rb:43:18:43:25 | username | -| HardcodedCredentials.rb:43:57:43:70 | "abcdef123456" | HardcodedCredentials.rb:43:46:43:53 | password | +| HardcodedCredentials.rb:12:19:12:64 | "4NQX/CqB5Ae98zFUmwj1DMpF7azsh..." | HardcodedCredentials.rb:1:23:1:30 | password | provenance | | +| HardcodedCredentials.rb:15:30:15:75 | "WLC17dLQ9P8YlQvqm77qplOMm5pd1..." | HardcodedCredentials.rb:1:33:1:36 | cert | provenance | | +| HardcodedCredentials.rb:18:19:18:72 | ... + ... | HardcodedCredentials.rb:1:23:1:30 | password | provenance | | +| HardcodedCredentials.rb:18:27:18:72 | "ogH6qSYWGdbR/2WOGYa7eZ/tObL+G..." | HardcodedCredentials.rb:18:19:18:72 | ... + ... | provenance | | +| HardcodedCredentials.rb:20:1:20:7 | pw_left | HardcodedCredentials.rb:22:6:22:12 | pw_left | provenance | | +| HardcodedCredentials.rb:20:11:20:76 | "3jOe7sXKX6Tx52qHWUVqh2t9LNsE+..." | HardcodedCredentials.rb:20:1:20:7 | pw_left | provenance | | +| HardcodedCredentials.rb:21:1:21:8 | pw_right | HardcodedCredentials.rb:22:16:22:23 | pw_right | provenance | | +| HardcodedCredentials.rb:21:12:21:37 | "4fQuzXef4f2yow8KWvIJTA==" | HardcodedCredentials.rb:21:1:21:8 | pw_right | provenance | | +| HardcodedCredentials.rb:22:1:22:2 | pw | HardcodedCredentials.rb:23:19:23:20 | pw | provenance | | +| HardcodedCredentials.rb:22:6:22:12 | pw_left | HardcodedCredentials.rb:22:6:22:23 | ... + ... | provenance | | +| HardcodedCredentials.rb:22:6:22:23 | ... + ... | HardcodedCredentials.rb:22:1:22:2 | pw | provenance | | +| HardcodedCredentials.rb:22:16:22:23 | pw_right | HardcodedCredentials.rb:22:6:22:23 | ... + ... | provenance | | +| HardcodedCredentials.rb:23:19:23:20 | pw | HardcodedCredentials.rb:1:23:1:30 | password | provenance | | +| HardcodedCredentials.rb:38:40:38:85 | "kdW/xVhiv6y1fQQNevDpUaq+2rfPK..." | HardcodedCredentials.rb:31:18:31:23 | passwd | provenance | | +| HardcodedCredentials.rb:43:29:43:43 | "user@test.com" | HardcodedCredentials.rb:43:18:43:25 | username | provenance | | +| HardcodedCredentials.rb:43:57:43:70 | "abcdef123456" | HardcodedCredentials.rb:43:46:43:53 | password | provenance | | nodes | HardcodedCredentials.rb:1:23:1:30 | password | semmle.label | password | | HardcodedCredentials.rb:1:33:1:36 | cert | semmle.label | cert | diff --git a/ruby/ql/test/query-tests/security/cwe-807-user-controlled-bypass/ConditionalBypass.expected b/ruby/ql/test/query-tests/security/cwe-807-user-controlled-bypass/ConditionalBypass.expected index c591f922334c..897e8276049f 100644 --- a/ruby/ql/test/query-tests/security/cwe-807-user-controlled-bypass/ConditionalBypass.expected +++ b/ruby/ql/test/query-tests/security/cwe-807-user-controlled-bypass/ConditionalBypass.expected @@ -1,12 +1,12 @@ edges -| ConditionalBypass.rb:3:5:3:9 | check | ConditionalBypass.rb:6:8:6:12 | check | -| ConditionalBypass.rb:3:13:3:18 | call to params | ConditionalBypass.rb:3:13:3:26 | ...[...] | -| ConditionalBypass.rb:3:13:3:26 | ...[...] | ConditionalBypass.rb:3:5:3:9 | check | -| ConditionalBypass.rb:14:14:14:19 | call to params | ConditionalBypass.rb:14:14:14:27 | ...[...] | -| ConditionalBypass.rb:25:5:25:5 | p | ConditionalBypass.rb:27:8:27:8 | p | -| ConditionalBypass.rb:25:10:25:15 | call to params | ConditionalBypass.rb:25:10:25:22 | ...[...] | -| ConditionalBypass.rb:25:10:25:15 | call to params | ConditionalBypass.rb:25:10:25:22 | ...[...] | -| ConditionalBypass.rb:25:10:25:22 | ...[...] | ConditionalBypass.rb:25:5:25:5 | p | +| ConditionalBypass.rb:3:5:3:9 | check | ConditionalBypass.rb:6:8:6:12 | check | provenance | | +| ConditionalBypass.rb:3:13:3:18 | call to params | ConditionalBypass.rb:3:13:3:26 | ...[...] | provenance | | +| ConditionalBypass.rb:3:13:3:26 | ...[...] | ConditionalBypass.rb:3:5:3:9 | check | provenance | | +| ConditionalBypass.rb:14:14:14:19 | call to params | ConditionalBypass.rb:14:14:14:27 | ...[...] | provenance | | +| ConditionalBypass.rb:25:5:25:5 | p | ConditionalBypass.rb:27:8:27:8 | p | provenance | | +| ConditionalBypass.rb:25:10:25:15 | call to params | ConditionalBypass.rb:25:10:25:22 | ...[...] | provenance | | +| ConditionalBypass.rb:25:10:25:15 | call to params | ConditionalBypass.rb:25:10:25:22 | ...[...] | provenance | | +| ConditionalBypass.rb:25:10:25:22 | ...[...] | ConditionalBypass.rb:25:5:25:5 | p | provenance | | nodes | ConditionalBypass.rb:3:5:3:9 | check | semmle.label | check | | ConditionalBypass.rb:3:13:3:18 | call to params | semmle.label | call to params | diff --git a/ruby/ql/test/query-tests/security/cwe-829/InsecureDownload.expected b/ruby/ql/test/query-tests/security/cwe-829/InsecureDownload.expected index 82fbafcfc89e..c025499f2e86 100644 --- a/ruby/ql/test/query-tests/security/cwe-829/InsecureDownload.expected +++ b/ruby/ql/test/query-tests/security/cwe-829/InsecureDownload.expected @@ -1,9 +1,10 @@ +testFailures failures edges -| insecure_download.rb:31:5:31:7 | url | insecure_download.rb:33:15:33:17 | url | -| insecure_download.rb:31:5:31:7 | url | insecure_download.rb:33:15:33:17 | url | -| insecure_download.rb:31:11:31:41 | "http://example.org/unsafe.APK" | insecure_download.rb:31:5:31:7 | url | -| insecure_download.rb:31:11:31:41 | "http://example.org/unsafe.APK" | insecure_download.rb:31:5:31:7 | url | +| insecure_download.rb:31:5:31:7 | url | insecure_download.rb:33:15:33:17 | url | provenance | | +| insecure_download.rb:31:5:31:7 | url | insecure_download.rb:33:15:33:17 | url | provenance | | +| insecure_download.rb:31:11:31:41 | "http://example.org/unsafe.APK" | insecure_download.rb:31:5:31:7 | url | provenance | | +| insecure_download.rb:31:11:31:41 | "http://example.org/unsafe.APK" | insecure_download.rb:31:5:31:7 | url | provenance | | nodes | insecure_download.rb:27:15:27:45 | "http://example.org/unsafe.APK" | semmle.label | "http://example.org/unsafe.APK" | | insecure_download.rb:27:15:27:45 | "http://example.org/unsafe.APK" | semmle.label | "http://example.org/unsafe.APK" | @@ -18,7 +19,6 @@ nodes | insecure_download.rb:43:22:43:56 | "http://example.org/unsafe.unk..." | semmle.label | "http://example.org/unsafe.unk..." | | insecure_download.rb:53:65:53:78 | "/myscript.sh" | semmle.label | "/myscript.sh" | subpaths -testFailures #select | insecure_download.rb:27:15:27:45 | "http://example.org/unsafe.APK" | insecure_download.rb:27:15:27:45 | "http://example.org/unsafe.APK" | insecure_download.rb:27:15:27:45 | "http://example.org/unsafe.APK" | $@ | insecure_download.rb:27:15:27:45 | "http://example.org/unsafe.APK" | "http://example.org/unsafe.APK" | | insecure_download.rb:27:15:27:45 | "http://example.org/unsafe.APK" | insecure_download.rb:27:15:27:45 | "http://example.org/unsafe.APK" | insecure_download.rb:27:15:27:45 | "http://example.org/unsafe.APK" | $@ | insecure_download.rb:27:15:27:45 | "http://example.org/unsafe.APK" | "http://example.org/unsafe.APK" | diff --git a/ruby/ql/test/query-tests/security/cwe-912/HttpToFileAccess.expected b/ruby/ql/test/query-tests/security/cwe-912/HttpToFileAccess.expected index 19b955a9a8d8..792b17303b10 100644 --- a/ruby/ql/test/query-tests/security/cwe-912/HttpToFileAccess.expected +++ b/ruby/ql/test/query-tests/security/cwe-912/HttpToFileAccess.expected @@ -1,9 +1,9 @@ edges -| http_to_file_access.rb:3:1:3:4 | resp | http_to_file_access.rb:5:12:5:15 | resp | -| http_to_file_access.rb:3:8:3:52 | call to body | http_to_file_access.rb:3:1:3:4 | resp | -| http_to_file_access.rb:9:7:9:12 | script | http_to_file_access.rb:11:18:11:23 | script | -| http_to_file_access.rb:9:16:9:21 | call to params | http_to_file_access.rb:9:16:9:30 | ...[...] | -| http_to_file_access.rb:9:16:9:30 | ...[...] | http_to_file_access.rb:9:7:9:12 | script | +| http_to_file_access.rb:3:1:3:4 | resp | http_to_file_access.rb:5:12:5:15 | resp | provenance | | +| http_to_file_access.rb:3:8:3:52 | call to body | http_to_file_access.rb:3:1:3:4 | resp | provenance | | +| http_to_file_access.rb:9:7:9:12 | script | http_to_file_access.rb:11:18:11:23 | script | provenance | | +| http_to_file_access.rb:9:16:9:21 | call to params | http_to_file_access.rb:9:16:9:30 | ...[...] | provenance | | +| http_to_file_access.rb:9:16:9:30 | ...[...] | http_to_file_access.rb:9:7:9:12 | script | provenance | | nodes | http_to_file_access.rb:3:1:3:4 | resp | semmle.label | resp | | http_to_file_access.rb:3:8:3:52 | call to body | semmle.label | call to body | diff --git a/ruby/ql/test/query-tests/security/cwe-918/ServerSideRequestForgery.expected b/ruby/ql/test/query-tests/security/cwe-918/ServerSideRequestForgery.expected index 0145d9bddf51..7ca144f69edd 100644 --- a/ruby/ql/test/query-tests/security/cwe-918/ServerSideRequestForgery.expected +++ b/ruby/ql/test/query-tests/security/cwe-918/ServerSideRequestForgery.expected @@ -1,9 +1,9 @@ edges -| ServerSideRequestForgery.rb:10:9:10:28 | users_service_domain | ServerSideRequestForgery.rb:11:31:11:62 | "#{...}/logins" | -| ServerSideRequestForgery.rb:10:32:10:37 | call to params | ServerSideRequestForgery.rb:10:32:10:60 | ...[...] | -| ServerSideRequestForgery.rb:10:32:10:60 | ...[...] | ServerSideRequestForgery.rb:10:9:10:28 | users_service_domain | -| ServerSideRequestForgery.rb:15:33:15:38 | call to params | ServerSideRequestForgery.rb:15:33:15:44 | ...[...] | -| ServerSideRequestForgery.rb:20:45:20:50 | call to params | ServerSideRequestForgery.rb:20:45:20:56 | ...[...] | +| ServerSideRequestForgery.rb:10:9:10:28 | users_service_domain | ServerSideRequestForgery.rb:11:31:11:62 | "#{...}/logins" | provenance | | +| ServerSideRequestForgery.rb:10:32:10:37 | call to params | ServerSideRequestForgery.rb:10:32:10:60 | ...[...] | provenance | | +| ServerSideRequestForgery.rb:10:32:10:60 | ...[...] | ServerSideRequestForgery.rb:10:9:10:28 | users_service_domain | provenance | | +| ServerSideRequestForgery.rb:15:33:15:38 | call to params | ServerSideRequestForgery.rb:15:33:15:44 | ...[...] | provenance | | +| ServerSideRequestForgery.rb:20:45:20:50 | call to params | ServerSideRequestForgery.rb:20:45:20:56 | ...[...] | provenance | | nodes | ServerSideRequestForgery.rb:10:9:10:28 | users_service_domain | semmle.label | users_service_domain | | ServerSideRequestForgery.rb:10:32:10:37 | call to params | semmle.label | call to params | diff --git a/ruby/ql/test/query-tests/security/decompression-api/DecompressionApi.expected b/ruby/ql/test/query-tests/security/decompression-api/DecompressionApi.expected index dbcca414cf1f..20be59524bfa 100644 --- a/ruby/ql/test/query-tests/security/decompression-api/DecompressionApi.expected +++ b/ruby/ql/test/query-tests/security/decompression-api/DecompressionApi.expected @@ -1,8 +1,8 @@ edges -| decompression_api.rb:4:9:4:12 | path | decompression_api.rb:5:31:5:34 | path | -| decompression_api.rb:4:16:4:21 | call to params | decompression_api.rb:4:16:4:28 | ...[...] | -| decompression_api.rb:4:16:4:28 | ...[...] | decompression_api.rb:4:9:4:12 | path | -| decompression_api.rb:15:31:15:36 | call to params | decompression_api.rb:15:31:15:43 | ...[...] | +| decompression_api.rb:4:9:4:12 | path | decompression_api.rb:5:31:5:34 | path | provenance | | +| decompression_api.rb:4:16:4:21 | call to params | decompression_api.rb:4:16:4:28 | ...[...] | provenance | | +| decompression_api.rb:4:16:4:28 | ...[...] | decompression_api.rb:4:9:4:12 | path | provenance | | +| decompression_api.rb:15:31:15:36 | call to params | decompression_api.rb:15:31:15:43 | ...[...] | provenance | | nodes | decompression_api.rb:4:9:4:12 | path | semmle.label | path | | decompression_api.rb:4:16:4:21 | call to params | semmle.label | call to params | diff --git a/shared/dataflow/change-notes/2024-02-08-edges-provenance.md b/shared/dataflow/change-notes/2024-02-08-edges-provenance.md new file mode 100644 index 000000000000..4cf0fd39d4b7 --- /dev/null +++ b/shared/dataflow/change-notes/2024-02-08-edges-provenance.md @@ -0,0 +1,4 @@ +--- +category: breaking +--- +* The `edges` predicate contained in `PathGraph` now contains two additional columns for propagating model provenance information. This is primarily an internal change without any impact on any APIs, except for specialised queries making use of `MergePathGraph` in conjunction with custom `PathGraph` implementations. Such queries will need to be updated to reference the two new columns. This is expected to be very rare, as `MergePathGraph` is an advanced feature, but it is a breaking change for any such affected queries. diff --git a/shared/dataflow/codeql/dataflow/DataFlow.qll b/shared/dataflow/codeql/dataflow/DataFlow.qll index 856b68d249c2..1c9c900530fa 100644 --- a/shared/dataflow/codeql/dataflow/DataFlow.qll +++ b/shared/dataflow/codeql/dataflow/DataFlow.qll @@ -584,7 +584,7 @@ module DataFlowMake { signature module PathGraphSig { /** Holds if `(a,b)` is an edge in the graph of data flow path explanations. */ - predicate edges(PathNode a, PathNode b); + predicate edges(PathNode a, PathNode b, string key, string val); /** Holds if `n` is a node in the graph of data flow path explanations. */ predicate nodes(PathNode n, string key, string val); @@ -648,9 +648,9 @@ module DataFlowMake { */ module PathGraph implements PathGraphSig { /** Holds if `(a,b)` is an edge in the graph of data flow path explanations. */ - query predicate edges(PathNode a, PathNode b) { - Graph1::edges(a.asPathNode1(), b.asPathNode1()) or - Graph2::edges(a.asPathNode2(), b.asPathNode2()) + query predicate edges(PathNode a, PathNode b, string key, string val) { + Graph1::edges(a.asPathNode1(), b.asPathNode1(), key, val) or + Graph2::edges(a.asPathNode2(), b.asPathNode2(), key, val) } /** Holds if `n` is a node in the graph of data flow path explanations. */ @@ -719,7 +719,9 @@ module DataFlowMake { */ module PathGraph implements PathGraphSig { /** Holds if `(a,b)` is an edge in the graph of data flow path explanations. */ - query predicate edges(PathNode a, PathNode b) { Merged::PathGraph::edges(a, b) } + query predicate edges(PathNode a, PathNode b, string key, string val) { + Merged::PathGraph::edges(a, b, key, val) + } /** Holds if `n` is a node in the graph of data flow path explanations. */ query predicate nodes(PathNode n, string key, string val) { diff --git a/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll b/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll index eb45fe5fd2ea..ecaa75bdfffb 100644 --- a/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll +++ b/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll @@ -3724,7 +3724,11 @@ module MakeImpl { */ module PathGraph implements PathGraphSig { /** Holds if `(a,b)` is an edge in the graph of data flow path explanations. */ - query predicate edges(PathNode a, PathNode b) { a.getASuccessor() = b } + query predicate edges(PathNode a, PathNode b, string key, string val) { + a.getASuccessor() = b and + key = "provenance" and + val = "" + } /** Holds if `n` is a node in the graph of data flow path explanations. */ query predicate nodes(PathNode n, string key, string val) { diff --git a/swift/ql/test/library-tests/dataflow/dataflow/DataFlow.expected b/swift/ql/test/library-tests/dataflow/dataflow/DataFlow.expected index 7abf18a9063a..10e7d32b57b3 100644 --- a/swift/ql/test/library-tests/dataflow/dataflow/DataFlow.expected +++ b/swift/ql/test/library-tests/dataflow/dataflow/DataFlow.expected @@ -1,637 +1,637 @@ edges -| file://:0:0:0:0 | .wrappedValue | test.swift:949:15:949:15 | x | -| file://:0:0:0:0 | .wrappedValue | test.swift:951:15:951:15 | x | -| file://:0:0:0:0 | KeyPathComponent [some:0] | test.swift:663:13:663:29 | exit #keyPath(...) [some:0] | -| file://:0:0:0:0 | [post] self [wrappedValue] | file://:0:0:0:0 | self [wrappedValue] | -| file://:0:0:0:0 | self [a, x] | file://:0:0:0:0 | .a [x] | -| file://:0:0:0:0 | self [s, x] | file://:0:0:0:0 | .s [x] | -| file://:0:0:0:0 | self [str] | file://:0:0:0:0 | .str | -| file://:0:0:0:0 | self [v2, some:0] | file://:0:0:0:0 | .v2 [some:0] | -| file://:0:0:0:0 | self [v2] | file://:0:0:0:0 | .v2 | -| file://:0:0:0:0 | self [v3] | file://:0:0:0:0 | .v3 | -| file://:0:0:0:0 | self [v] | file://:0:0:0:0 | .v | -| file://:0:0:0:0 | self [wrappedValue] | test.swift:958:9:958:9 | self [wrappedValue] | -| file://:0:0:0:0 | self [x, some:0] | file://:0:0:0:0 | .x [some:0] | -| file://:0:0:0:0 | self [x] | file://:0:0:0:0 | .x | -| file://:0:0:0:0 | self [x] | file://:0:0:0:0 | .x | -| file://:0:0:0:0 | self [x] | file://:0:0:0:0 | .x | -| file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [v2] | -| file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [v3] | -| file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [v] | -| file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [wrappedValue] | -| file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [x] | -| file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [x] | -| file://:0:0:0:0 | value | test.swift:938:9:938:9 | newValue | -| file://:0:0:0:0 | value | test.swift:957:9:957:9 | value | -| file://:0:0:0:0 | value | test.swift:965:9:965:9 | newValue | -| file://:0:0:0:0 | value [some:0] | file://:0:0:0:0 | [post] self [v2, some:0] | -| file://:0:0:0:0 | value [some:0] | file://:0:0:0:0 | [post] self [x, some:0] | -| test.swift:6:19:6:26 | call to source() | test.swift:7:15:7:15 | t1 | -| test.swift:6:19:6:26 | call to source() | test.swift:9:15:9:15 | t1 | -| test.swift:6:19:6:26 | call to source() | test.swift:10:15:10:15 | t2 | -| test.swift:25:20:25:27 | call to source() | test.swift:29:18:29:21 | x | -| test.swift:26:26:26:33 | call to source() | test.swift:29:26:29:29 | y | -| test.swift:29:18:29:21 | x | test.swift:30:15:30:15 | x | -| test.swift:29:26:29:29 | y | test.swift:31:15:31:15 | y | -| test.swift:35:12:35:19 | call to source() | test.swift:39:15:39:29 | call to callee_source() | -| test.swift:43:19:43:26 | call to source() | test.swift:50:15:50:15 | t | -| test.swift:53:1:56:1 | arg[return] | test.swift:61:23:61:23 | [post] x | -| test.swift:54:11:54:18 | call to source() | test.swift:53:1:56:1 | arg[return] | -| test.swift:61:23:61:23 | [post] x | test.swift:62:15:62:15 | x | -| test.swift:65:16:65:28 | arg1 | test.swift:65:1:70:1 | arg2[return] | -| test.swift:73:18:73:25 | call to source() | test.swift:75:22:75:22 | x | -| test.swift:73:18:73:25 | call to source() | test.swift:76:15:76:15 | x | -| test.swift:75:22:75:22 | x | test.swift:65:16:65:28 | arg1 | -| test.swift:75:22:75:22 | x | test.swift:75:32:75:32 | [post] y | -| test.swift:75:32:75:32 | [post] y | test.swift:77:15:77:15 | y | -| test.swift:80:1:82:1 | arg[return] | test.swift:97:40:97:40 | [post] x | -| test.swift:81:11:81:18 | call to source() | test.swift:80:1:82:1 | arg[return] | -| test.swift:84:1:91:1 | arg[return] | test.swift:104:41:104:41 | [post] x | -| test.swift:86:15:86:22 | call to source() | test.swift:84:1:91:1 | arg[return] | -| test.swift:89:15:89:22 | call to source() | test.swift:84:1:91:1 | arg[return] | -| test.swift:97:40:97:40 | [post] x | test.swift:98:19:98:19 | x | -| test.swift:104:41:104:41 | [post] x | test.swift:105:19:105:19 | x | -| test.swift:109:9:109:14 | arg | test.swift:110:12:110:12 | arg | -| test.swift:113:14:113:19 | arg | test.swift:114:19:114:19 | arg | -| test.swift:113:14:113:19 | arg | test.swift:114:19:114:19 | arg | -| test.swift:114:19:114:19 | arg | test.swift:109:9:109:14 | arg | -| test.swift:114:19:114:19 | arg | test.swift:114:12:114:22 | call to ... | -| test.swift:114:19:114:19 | arg | test.swift:114:12:114:22 | call to ... | -| test.swift:114:19:114:19 | arg | test.swift:123:10:123:13 | i | -| test.swift:118:18:118:25 | call to source() | test.swift:119:31:119:31 | x | -| test.swift:119:18:119:44 | call to forward(arg:lambda:) | test.swift:120:15:120:15 | y | -| test.swift:119:31:119:31 | x | test.swift:113:14:113:19 | arg | -| test.swift:119:31:119:31 | x | test.swift:119:18:119:44 | call to forward(arg:lambda:) | -| test.swift:122:18:125:6 | call to forward(arg:lambda:) | test.swift:126:15:126:15 | z | -| test.swift:122:31:122:38 | call to source() | test.swift:113:14:113:19 | arg | -| test.swift:122:31:122:38 | call to source() | test.swift:122:18:125:6 | call to forward(arg:lambda:) | -| test.swift:123:10:123:13 | i | test.swift:124:16:124:16 | i | -| test.swift:142:10:142:13 | i | test.swift:143:16:143:16 | i | -| test.swift:145:23:145:30 | call to source() | test.swift:142:10:142:13 | i | -| test.swift:145:23:145:30 | call to source() | test.swift:145:15:145:31 | call to ... | -| test.swift:149:16:149:23 | call to source() | test.swift:151:15:151:28 | call to ... | -| test.swift:149:16:149:23 | call to source() | test.swift:159:16:159:29 | call to ... | -| test.swift:154:10:154:13 | i | test.swift:155:19:155:19 | i | -| test.swift:157:16:157:23 | call to source() | test.swift:154:10:154:13 | i | -| test.swift:159:16:159:29 | call to ... | test.swift:154:10:154:13 | i | -| test.swift:163:7:163:7 | self [x] | file://:0:0:0:0 | self [x] | -| test.swift:163:7:163:7 | value | file://:0:0:0:0 | value | -| test.swift:169:12:169:22 | value | test.swift:170:9:170:9 | value | -| test.swift:170:5:170:5 | [post] self [x] | test.swift:169:3:171:3 | self[return] [x] | -| test.swift:170:9:170:9 | value | test.swift:163:7:163:7 | value | -| test.swift:170:9:170:9 | value | test.swift:170:5:170:5 | [post] self [x] | -| test.swift:173:8:173:8 | self [x] | test.swift:174:12:174:12 | self [x] | -| test.swift:174:12:174:12 | self [x] | test.swift:163:7:163:7 | self [x] | -| test.swift:174:12:174:12 | self [x] | test.swift:174:12:174:12 | .x | -| test.swift:180:3:180:3 | [post] a [x] | test.swift:181:13:181:13 | a [x] | -| test.swift:180:9:180:16 | call to source() | test.swift:163:7:163:7 | value | -| test.swift:180:9:180:16 | call to source() | test.swift:180:3:180:3 | [post] a [x] | -| test.swift:181:13:181:13 | a [x] | test.swift:163:7:163:7 | self [x] | -| test.swift:181:13:181:13 | a [x] | test.swift:181:13:181:15 | .x | -| test.swift:185:7:185:7 | self [a, x] | file://:0:0:0:0 | self [a, x] | -| test.swift:194:3:194:3 | [post] b [a, x] | test.swift:195:13:195:13 | b [a, x] | -| test.swift:194:3:194:5 | [post] getter for .a [x] | test.swift:194:3:194:3 | [post] b [a, x] | -| test.swift:194:11:194:18 | call to source() | test.swift:163:7:163:7 | value | -| test.swift:194:11:194:18 | call to source() | test.swift:194:3:194:5 | [post] getter for .a [x] | -| test.swift:195:13:195:13 | b [a, x] | test.swift:185:7:185:7 | self [a, x] | -| test.swift:195:13:195:13 | b [a, x] | test.swift:195:13:195:15 | .a [x] | -| test.swift:195:13:195:15 | .a [x] | test.swift:163:7:163:7 | self [x] | -| test.swift:195:13:195:15 | .a [x] | test.swift:195:13:195:17 | .x | -| test.swift:200:3:200:3 | [post] a [x] | test.swift:201:13:201:13 | a [x] | -| test.swift:200:9:200:16 | call to source() | test.swift:169:12:169:22 | value | -| test.swift:200:9:200:16 | call to source() | test.swift:200:3:200:3 | [post] a [x] | -| test.swift:201:13:201:13 | a [x] | test.swift:163:7:163:7 | self [x] | -| test.swift:201:13:201:13 | a [x] | test.swift:201:13:201:15 | .x | -| test.swift:206:3:206:3 | [post] a [x] | test.swift:207:13:207:13 | a [x] | -| test.swift:206:9:206:16 | call to source() | test.swift:163:7:163:7 | value | -| test.swift:206:9:206:16 | call to source() | test.swift:206:3:206:3 | [post] a [x] | -| test.swift:207:13:207:13 | a [x] | test.swift:173:8:173:8 | self [x] | -| test.swift:207:13:207:13 | a [x] | test.swift:207:13:207:19 | call to get() | -| test.swift:212:3:212:3 | [post] a [x] | test.swift:213:13:213:13 | a [x] | -| test.swift:212:9:212:16 | call to source() | test.swift:169:12:169:22 | value | -| test.swift:212:9:212:16 | call to source() | test.swift:212:3:212:3 | [post] a [x] | -| test.swift:213:13:213:13 | a [x] | test.swift:173:8:173:8 | self [x] | -| test.swift:213:13:213:13 | a [x] | test.swift:213:13:213:19 | call to get() | -| test.swift:218:3:218:3 | [post] b [a, x] | test.swift:219:13:219:13 | b [a, x] | -| test.swift:218:3:218:5 | [post] getter for .a [x] | test.swift:218:3:218:3 | [post] b [a, x] | -| test.swift:218:11:218:18 | call to source() | test.swift:169:12:169:22 | value | -| test.swift:218:11:218:18 | call to source() | test.swift:218:3:218:5 | [post] getter for .a [x] | -| test.swift:219:13:219:13 | b [a, x] | test.swift:185:7:185:7 | self [a, x] | -| test.swift:219:13:219:13 | b [a, x] | test.swift:219:13:219:15 | .a [x] | -| test.swift:219:13:219:15 | .a [x] | test.swift:163:7:163:7 | self [x] | -| test.swift:219:13:219:15 | .a [x] | test.swift:219:13:219:17 | .x | -| test.swift:225:14:225:21 | call to source() | test.swift:235:13:235:15 | .source_value | -| test.swift:225:14:225:21 | call to source() | test.swift:238:13:238:15 | .source_value | -| test.swift:259:12:259:19 | call to source() | test.swift:259:12:259:19 | call to source() [some:0] | -| test.swift:259:12:259:19 | call to source() | test.swift:263:13:263:28 | call to optionalSource() | -| test.swift:259:12:259:19 | call to source() | test.swift:536:13:536:28 | call to optionalSource() | -| test.swift:259:12:259:19 | call to source() | test.swift:563:13:563:28 | call to optionalSource() | -| test.swift:259:12:259:19 | call to source() [some:0] | test.swift:263:13:263:28 | call to optionalSource() [some:0] | -| test.swift:259:12:259:19 | call to source() [some:0] | test.swift:536:13:536:28 | call to optionalSource() [some:0] | -| test.swift:259:12:259:19 | call to source() [some:0] | test.swift:563:13:563:28 | call to optionalSource() [some:0] | -| test.swift:263:13:263:28 | call to optionalSource() | test.swift:265:15:265:15 | x | -| test.swift:263:13:263:28 | call to optionalSource() | test.swift:267:15:267:16 | ...! | -| test.swift:263:13:263:28 | call to optionalSource() | test.swift:271:15:271:16 | ...? | -| test.swift:263:13:263:28 | call to optionalSource() | test.swift:274:15:274:20 | ... ??(_:_:) ... | -| test.swift:263:13:263:28 | call to optionalSource() | test.swift:275:15:275:27 | ... ??(_:_:) ... | -| test.swift:263:13:263:28 | call to optionalSource() | test.swift:279:15:279:31 | ... ? ... : ... | -| test.swift:263:13:263:28 | call to optionalSource() | test.swift:280:15:280:38 | ... ? ... : ... | -| test.swift:263:13:263:28 | call to optionalSource() | test.swift:285:19:285:19 | z | -| test.swift:263:13:263:28 | call to optionalSource() | test.swift:291:16:291:17 | ...? | -| test.swift:263:13:263:28 | call to optionalSource() | test.swift:300:15:300:15 | z1 | -| test.swift:263:13:263:28 | call to optionalSource() | test.swift:303:15:303:16 | ...! | -| test.swift:263:13:263:28 | call to optionalSource() [some:0] | test.swift:267:15:267:15 | x [some:0] | -| test.swift:263:13:263:28 | call to optionalSource() [some:0] | test.swift:279:26:279:26 | x [some:0] | -| test.swift:263:13:263:28 | call to optionalSource() [some:0] | test.swift:280:26:280:26 | x [some:0] | -| test.swift:263:13:263:28 | call to optionalSource() [some:0] | test.swift:284:8:284:12 | let ...? [some:0] | -| test.swift:263:13:263:28 | call to optionalSource() [some:0] | test.swift:291:16:291:17 | ...? [some:0] | -| test.swift:263:13:263:28 | call to optionalSource() [some:0] | test.swift:298:11:298:15 | let ...? [some:0] | -| test.swift:263:13:263:28 | call to optionalSource() [some:0] | test.swift:303:15:303:15 | x [some:0] | -| test.swift:263:13:263:28 | call to optionalSource() [some:0] | test.swift:306:13:306:24 | .some(...) [some:0] | -| test.swift:263:13:263:28 | call to optionalSource() [some:0] | test.swift:314:10:314:21 | .some(...) [some:0] | -| test.swift:267:15:267:15 | x [some:0] | test.swift:267:15:267:16 | ...! | -| test.swift:270:15:270:22 | call to source() | test.swift:270:15:270:31 | call to signum() | -| test.swift:271:15:271:16 | ...? | test.swift:271:15:271:25 | call to signum() | -| test.swift:271:15:271:25 | call to signum() | test.swift:271:15:271:25 | OptionalEvaluationExpr | -| test.swift:275:20:275:27 | call to source() | test.swift:275:15:275:27 | ... ??(_:_:) ... | -| test.swift:277:20:277:27 | call to source() | test.swift:277:15:277:27 | ... ??(_:_:) ... | -| test.swift:279:26:279:26 | x [some:0] | test.swift:279:26:279:27 | ...! | -| test.swift:279:26:279:27 | ...! | test.swift:279:15:279:31 | ... ? ... : ... | -| test.swift:280:26:280:26 | x [some:0] | test.swift:280:26:280:27 | ...! | -| test.swift:280:26:280:27 | ...! | test.swift:280:15:280:38 | ... ? ... : ... | -| test.swift:280:31:280:38 | call to source() | test.swift:280:15:280:38 | ... ? ... : ... | -| test.swift:282:31:282:38 | call to source() | test.swift:282:15:282:38 | ... ? ... : ... | -| test.swift:284:8:284:12 | let ...? [some:0] | test.swift:284:12:284:12 | z | -| test.swift:284:12:284:12 | z | test.swift:285:19:285:19 | z | -| test.swift:291:8:291:12 | let ...? [some:0] | test.swift:291:12:291:12 | z | -| test.swift:291:12:291:12 | z | test.swift:292:19:292:19 | z | -| test.swift:291:16:291:17 | ...? | test.swift:291:16:291:26 | call to signum() | -| test.swift:291:16:291:17 | ...? [some:0] | test.swift:291:16:291:26 | call to signum() [some:0] | -| test.swift:291:16:291:26 | call to signum() | test.swift:291:16:291:26 | call to signum() [some:0] | -| test.swift:291:16:291:26 | call to signum() | test.swift:292:19:292:19 | z | -| test.swift:291:16:291:26 | call to signum() [some:0] | test.swift:291:8:291:12 | let ...? [some:0] | -| test.swift:298:11:298:15 | let ...? [some:0] | test.swift:298:15:298:15 | z1 | -| test.swift:298:15:298:15 | z1 | test.swift:300:15:300:15 | z1 | -| test.swift:303:15:303:15 | x [some:0] | test.swift:303:15:303:16 | ...! | -| test.swift:303:15:303:16 | ...! | test.swift:303:15:303:25 | call to signum() | -| test.swift:306:13:306:24 | .some(...) [some:0] | test.swift:306:23:306:23 | z | -| test.swift:306:23:306:23 | z | test.swift:307:19:307:19 | z | -| test.swift:314:10:314:21 | .some(...) [some:0] | test.swift:314:20:314:20 | z | -| test.swift:314:20:314:20 | z | test.swift:315:19:315:19 | z | -| test.swift:331:14:331:26 | (...) [Tuple element at index 1] | test.swift:335:15:335:15 | t1 [Tuple element at index 1] | -| test.swift:331:18:331:25 | call to source() | test.swift:331:14:331:26 | (...) [Tuple element at index 1] | -| test.swift:335:15:335:15 | t1 [Tuple element at index 1] | test.swift:335:15:335:18 | .1 | -| test.swift:343:5:343:5 | [post] t1 [Tuple element at index 0] | test.swift:346:15:346:15 | t1 [Tuple element at index 0] | -| test.swift:343:12:343:19 | call to source() | test.swift:343:5:343:5 | [post] t1 [Tuple element at index 0] | -| test.swift:346:15:346:15 | t1 [Tuple element at index 0] | test.swift:346:15:346:18 | .0 | -| test.swift:351:14:351:45 | (...) [Tuple element at index 0] | test.swift:353:9:353:17 | (...) [Tuple element at index 0] | -| test.swift:351:14:351:45 | (...) [Tuple element at index 0] | test.swift:356:15:356:15 | t1 [Tuple element at index 0] | -| test.swift:351:14:351:45 | (...) [Tuple element at index 0] | test.swift:360:15:360:15 | t2 [Tuple element at index 0] | -| test.swift:351:14:351:45 | (...) [Tuple element at index 1] | test.swift:353:9:353:17 | (...) [Tuple element at index 1] | -| test.swift:351:14:351:45 | (...) [Tuple element at index 1] | test.swift:357:15:357:15 | t1 [Tuple element at index 1] | -| test.swift:351:14:351:45 | (...) [Tuple element at index 1] | test.swift:361:15:361:15 | t2 [Tuple element at index 1] | -| test.swift:351:18:351:25 | call to source() | test.swift:351:14:351:45 | (...) [Tuple element at index 0] | -| test.swift:351:31:351:38 | call to source() | test.swift:351:14:351:45 | (...) [Tuple element at index 1] | -| test.swift:353:9:353:17 | (...) [Tuple element at index 0] | test.swift:353:10:353:10 | a | -| test.swift:353:9:353:17 | (...) [Tuple element at index 1] | test.swift:353:13:353:13 | b | -| test.swift:353:10:353:10 | a | test.swift:363:15:363:15 | a | -| test.swift:353:13:353:13 | b | test.swift:364:15:364:15 | b | -| test.swift:356:15:356:15 | t1 [Tuple element at index 0] | test.swift:356:15:356:18 | .0 | -| test.swift:357:15:357:15 | t1 [Tuple element at index 1] | test.swift:357:15:357:18 | .1 | -| test.swift:360:15:360:15 | t2 [Tuple element at index 0] | test.swift:360:15:360:18 | .0 | -| test.swift:361:15:361:15 | t2 [Tuple element at index 1] | test.swift:361:15:361:18 | .1 | -| test.swift:368:22:368:36 | t [Tuple element at index 1] | test.swift:369:13:369:13 | t [Tuple element at index 1] | -| test.swift:369:13:369:13 | t [Tuple element at index 1] | test.swift:369:13:369:15 | .1 | -| test.swift:369:13:369:15 | .1 | test.swift:369:12:369:19 | (...) [Tuple element at index 0] | -| test.swift:375:14:375:26 | (...) [Tuple element at index 1] | test.swift:376:30:376:30 | t1 [Tuple element at index 1] | -| test.swift:375:14:375:26 | (...) [Tuple element at index 1] | test.swift:377:30:377:30 | t1 [Tuple element at index 1] | -| test.swift:375:14:375:26 | (...) [Tuple element at index 1] | test.swift:380:15:380:15 | t1 [Tuple element at index 1] | -| test.swift:375:18:375:25 | call to source() | test.swift:375:14:375:26 | (...) [Tuple element at index 1] | -| test.swift:376:14:376:32 | call to tupleShiftLeft1(_:) [Tuple element at index 0] | test.swift:381:15:381:15 | t2 [Tuple element at index 0] | -| test.swift:376:30:376:30 | t1 [Tuple element at index 1] | test.swift:368:22:368:36 | t [Tuple element at index 1] | -| test.swift:376:30:376:30 | t1 [Tuple element at index 1] | test.swift:376:14:376:32 | call to tupleShiftLeft1(_:) [Tuple element at index 0] | -| test.swift:377:14:377:32 | call to tupleShiftLeft2(_:) [Tuple element at index 0] | test.swift:383:15:383:15 | t3 [Tuple element at index 0] | -| test.swift:377:30:377:30 | t1 [Tuple element at index 1] | test.swift:377:14:377:32 | call to tupleShiftLeft2(_:) [Tuple element at index 0] | -| test.swift:380:15:380:15 | t1 [Tuple element at index 1] | test.swift:380:15:380:18 | .1 | -| test.swift:381:15:381:15 | t2 [Tuple element at index 0] | test.swift:381:15:381:18 | .0 | -| test.swift:383:15:383:15 | t3 [Tuple element at index 0] | test.swift:383:15:383:18 | .0 | -| test.swift:394:16:394:21 | v | test.swift:394:61:394:61 | v | -| test.swift:394:61:394:61 | v | test.swift:394:45:394:62 | call to ... [mySingle:0] | -| test.swift:396:18:396:23 | v | test.swift:396:59:396:59 | v | -| test.swift:396:59:396:59 | v | test.swift:396:45:396:60 | call to ... [some:0] | -| test.swift:422:9:422:27 | call to ... [mySingle:0] | test.swift:427:10:427:25 | .mySingle(...) [mySingle:0] | -| test.swift:422:9:422:27 | call to ... [mySingle:0] | test.swift:436:13:436:28 | .mySingle(...) [mySingle:0] | -| test.swift:422:19:422:26 | call to source() | test.swift:422:9:422:27 | call to ... [mySingle:0] | -| test.swift:427:10:427:25 | .mySingle(...) [mySingle:0] | test.swift:427:24:427:24 | a | -| test.swift:427:24:427:24 | a | test.swift:428:19:428:19 | a | -| test.swift:436:13:436:28 | .mySingle(...) [mySingle:0] | test.swift:436:27:436:27 | x | -| test.swift:436:27:436:27 | x | test.swift:437:19:437:19 | x | -| test.swift:444:9:444:34 | call to ... [myPair:1] | test.swift:451:10:451:30 | .myPair(...) [myPair:1] | -| test.swift:444:9:444:34 | call to ... [myPair:1] | test.swift:461:13:461:33 | .myPair(...) [myPair:1] | -| test.swift:444:9:444:34 | call to ... [myPair:1] | test.swift:466:33:466:33 | a [myPair:1] | -| test.swift:444:9:444:34 | call to ... [myPair:1] | test.swift:495:13:495:13 | a [myPair:1] | -| test.swift:444:26:444:33 | call to source() | test.swift:444:9:444:34 | call to ... [myPair:1] | -| test.swift:451:10:451:30 | .myPair(...) [myPair:1] | test.swift:451:29:451:29 | b | -| test.swift:451:29:451:29 | b | test.swift:453:19:453:19 | b | -| test.swift:461:13:461:33 | .myPair(...) [myPair:1] | test.swift:461:32:461:32 | y | -| test.swift:461:32:461:32 | y | test.swift:463:19:463:19 | y | -| test.swift:466:21:466:34 | call to ... [myCons:1, myPair:1] | test.swift:476:14:476:38 | .myCons(...) [myCons:1, myPair:1] | -| test.swift:466:21:466:34 | call to ... [myCons:1, myPair:1] | test.swift:491:17:491:41 | .myCons(...) [myCons:1, myPair:1] | -| test.swift:466:21:466:34 | call to ... [myCons:1, myPair:1] | test.swift:495:16:495:16 | b [myCons:1, myPair:1] | -| test.swift:466:33:466:33 | a [myPair:1] | test.swift:466:21:466:34 | call to ... [myCons:1, myPair:1] | -| test.swift:476:14:476:38 | .myCons(...) [myCons:1, myPair:1] | test.swift:476:25:476:37 | .myPair(...) [myPair:1] | -| test.swift:476:25:476:37 | .myPair(...) [myPair:1] | test.swift:476:36:476:36 | c | -| test.swift:476:36:476:36 | c | test.swift:479:19:479:19 | c | -| test.swift:487:13:487:39 | .myPair(...) [myPair:0] | test.swift:487:31:487:31 | x | -| test.swift:487:31:487:31 | x | test.swift:488:19:488:19 | x | -| test.swift:487:43:487:62 | call to ... [myPair:0] | test.swift:487:13:487:39 | .myPair(...) [myPair:0] | -| test.swift:487:51:487:58 | call to source() | test.swift:487:43:487:62 | call to ... [myPair:0] | -| test.swift:491:17:491:41 | .myCons(...) [myCons:1, myPair:1] | test.swift:491:28:491:40 | .myPair(...) [myPair:1] | -| test.swift:491:28:491:40 | .myPair(...) [myPair:1] | test.swift:491:39:491:39 | c | -| test.swift:491:39:491:39 | c | test.swift:492:19:492:19 | c | -| test.swift:495:12:495:17 | (...) [Tuple element at index 0, myPair:1] | test.swift:496:14:496:55 | (...) [Tuple element at index 0, myPair:1] | -| test.swift:495:12:495:17 | (...) [Tuple element at index 1, myCons:1, myPair:1] | test.swift:496:14:496:55 | (...) [Tuple element at index 1, myCons:1, myPair:1] | -| test.swift:495:13:495:13 | a [myPair:1] | test.swift:495:12:495:17 | (...) [Tuple element at index 0, myPair:1] | -| test.swift:495:16:495:16 | b [myCons:1, myPair:1] | test.swift:495:12:495:17 | (...) [Tuple element at index 1, myCons:1, myPair:1] | -| test.swift:496:14:496:55 | (...) [Tuple element at index 0, myPair:1] | test.swift:496:15:496:27 | .myPair(...) [myPair:1] | -| test.swift:496:14:496:55 | (...) [Tuple element at index 1, myCons:1, myPair:1] | test.swift:496:30:496:54 | .myCons(...) [myCons:1, myPair:1] | -| test.swift:496:15:496:27 | .myPair(...) [myPair:1] | test.swift:496:26:496:26 | b | -| test.swift:496:26:496:26 | b | test.swift:498:19:498:19 | b | -| test.swift:496:30:496:54 | .myCons(...) [myCons:1, myPair:1] | test.swift:496:41:496:53 | .myPair(...) [myPair:1] | -| test.swift:496:41:496:53 | .myPair(...) [myPair:1] | test.swift:496:52:496:52 | e | -| test.swift:496:52:496:52 | e | test.swift:501:19:501:19 | e | -| test.swift:507:14:507:38 | call to ... [mySingle:0] | test.swift:513:13:513:35 | .mySingle(...) [mySingle:0] | -| test.swift:507:30:507:37 | call to source() | test.swift:507:14:507:38 | call to ... [mySingle:0] | -| test.swift:509:14:509:32 | call to mkMyEnum1(_:) [mySingle:0] | test.swift:515:13:515:35 | .mySingle(...) [mySingle:0] | -| test.swift:509:24:509:31 | call to source() | test.swift:394:16:394:21 | v | -| test.swift:509:24:509:31 | call to source() | test.swift:509:14:509:32 | call to mkMyEnum1(_:) [mySingle:0] | -| test.swift:511:14:511:32 | call to mkMyEnum2(_:) [mySingle:0] | test.swift:517:13:517:35 | .mySingle(...) [mySingle:0] | -| test.swift:511:24:511:31 | call to source() | test.swift:511:14:511:32 | call to mkMyEnum2(_:) [mySingle:0] | -| test.swift:513:13:513:35 | .mySingle(...) [mySingle:0] | test.swift:513:33:513:33 | d2 | -| test.swift:513:33:513:33 | d2 | test.swift:513:54:513:54 | d2 | -| test.swift:515:13:515:35 | .mySingle(...) [mySingle:0] | test.swift:515:33:515:33 | d4 | -| test.swift:515:33:515:33 | d4 | test.swift:515:54:515:54 | d4 | -| test.swift:517:13:517:35 | .mySingle(...) [mySingle:0] | test.swift:517:33:517:33 | d6 | -| test.swift:517:33:517:33 | d6 | test.swift:517:54:517:54 | d6 | -| test.swift:520:14:520:36 | call to ... [some:0] | test.swift:526:15:526:15 | e2 [some:0] | -| test.swift:520:28:520:35 | call to source() | test.swift:520:14:520:36 | call to ... [some:0] | -| test.swift:522:14:522:34 | call to mkOptional1(_:) [some:0] | test.swift:528:15:528:15 | e4 [some:0] | -| test.swift:522:26:522:33 | call to source() | test.swift:396:18:396:23 | v | -| test.swift:522:26:522:33 | call to source() | test.swift:522:14:522:34 | call to mkOptional1(_:) [some:0] | -| test.swift:524:14:524:34 | call to mkOptional2(_:) [some:0] | test.swift:530:15:530:15 | e6 [some:0] | -| test.swift:524:26:524:33 | call to source() | test.swift:524:14:524:34 | call to mkOptional2(_:) [some:0] | -| test.swift:526:15:526:15 | e2 [some:0] | test.swift:526:15:526:17 | ...! | -| test.swift:528:15:528:15 | e4 [some:0] | test.swift:528:15:528:17 | ...! | -| test.swift:530:15:530:15 | e6 [some:0] | test.swift:530:15:530:17 | ...! | -| test.swift:536:13:536:28 | call to optionalSource() | test.swift:539:19:539:19 | a | -| test.swift:536:13:536:28 | call to optionalSource() [some:0] | test.swift:538:8:538:12 | let ...? [some:0] | -| test.swift:536:13:536:28 | call to optionalSource() [some:0] | test.swift:543:19:543:19 | x [some:0] | -| test.swift:538:8:538:12 | let ...? [some:0] | test.swift:538:12:538:12 | a | -| test.swift:538:12:538:12 | a | test.swift:539:19:539:19 | a | -| test.swift:543:18:543:23 | (...) [Tuple element at index 0, some:0] | test.swift:545:10:545:37 | (...) [Tuple element at index 0, some:0] | -| test.swift:543:19:543:19 | x [some:0] | test.swift:543:18:543:23 | (...) [Tuple element at index 0, some:0] | -| test.swift:545:10:545:37 | (...) [Tuple element at index 0, some:0] | test.swift:545:11:545:22 | .some(...) [some:0] | -| test.swift:545:11:545:22 | .some(...) [some:0] | test.swift:545:21:545:21 | a | -| test.swift:545:21:545:21 | a | test.swift:546:19:546:19 | a | -| test.swift:559:9:559:9 | self [x, some:0] | file://:0:0:0:0 | self [x, some:0] | -| test.swift:559:9:559:9 | self [x] | file://:0:0:0:0 | self [x] | -| test.swift:559:9:559:9 | value | file://:0:0:0:0 | value | -| test.swift:559:9:559:9 | value [some:0] | file://:0:0:0:0 | value [some:0] | -| test.swift:563:13:563:28 | call to optionalSource() | test.swift:565:12:565:12 | x | -| test.swift:563:13:563:28 | call to optionalSource() [some:0] | test.swift:565:12:565:12 | x [some:0] | -| test.swift:565:5:565:5 | [post] cx [x, some:0] | test.swift:569:20:569:20 | cx [x, some:0] | -| test.swift:565:5:565:5 | [post] cx [x] | test.swift:569:20:569:20 | cx [x] | -| test.swift:565:12:565:12 | x | test.swift:559:9:559:9 | value | -| test.swift:565:12:565:12 | x | test.swift:565:5:565:5 | [post] cx [x] | -| test.swift:565:12:565:12 | x [some:0] | test.swift:559:9:559:9 | value [some:0] | -| test.swift:565:12:565:12 | x [some:0] | test.swift:565:5:565:5 | [post] cx [x, some:0] | -| test.swift:569:11:569:15 | let ...? [some:0] | test.swift:569:15:569:15 | z1 | -| test.swift:569:15:569:15 | z1 | test.swift:570:15:570:15 | z1 | -| test.swift:569:20:569:20 | cx [x, some:0] | test.swift:559:9:559:9 | self [x, some:0] | -| test.swift:569:20:569:20 | cx [x, some:0] | test.swift:569:20:569:23 | .x [some:0] | -| test.swift:569:20:569:20 | cx [x] | test.swift:559:9:559:9 | self [x] | -| test.swift:569:20:569:20 | cx [x] | test.swift:569:20:569:23 | .x | -| test.swift:569:20:569:23 | .x | test.swift:570:15:570:15 | z1 | -| test.swift:569:20:569:23 | .x [some:0] | test.swift:569:11:569:15 | let ...? [some:0] | -| test.swift:576:14:576:21 | call to source() | test.swift:576:13:576:21 | call to +(_:) | -| test.swift:585:9:585:9 | self [str] | file://:0:0:0:0 | self [str] | -| test.swift:586:10:586:13 | s | test.swift:587:13:587:13 | s | -| test.swift:587:7:587:7 | [post] self [str] | test.swift:586:5:588:5 | self[return] [str] | -| test.swift:587:13:587:13 | s | test.swift:587:7:587:7 | [post] self [str] | -| test.swift:592:17:595:5 | self[return] [str] | test.swift:600:13:600:41 | call to MyClass.init(contentsOfFile:) [str] | -| test.swift:593:7:593:7 | [post] self [str] | test.swift:592:17:595:5 | self[return] [str] | -| test.swift:593:7:593:7 | [post] self [str] | test.swift:594:17:594:17 | self [str] | -| test.swift:593:20:593:28 | call to source3() | test.swift:586:10:586:13 | s | -| test.swift:593:20:593:28 | call to source3() | test.swift:593:7:593:7 | [post] self [str] | -| test.swift:594:17:594:17 | self [str] | test.swift:594:17:594:17 | .str | -| test.swift:599:13:599:33 | call to MyClass.init(s:) [str] | test.swift:585:9:585:9 | self [str] | -| test.swift:599:13:599:33 | call to MyClass.init(s:) [str] | test.swift:599:13:599:35 | .str | -| test.swift:599:24:599:32 | call to source3() | test.swift:586:10:586:13 | s | -| test.swift:599:24:599:32 | call to source3() | test.swift:599:13:599:33 | call to MyClass.init(s:) [str] | -| test.swift:600:13:600:41 | call to MyClass.init(contentsOfFile:) [str] | test.swift:585:9:585:9 | self [str] | -| test.swift:600:13:600:41 | call to MyClass.init(contentsOfFile:) [str] | test.swift:600:13:600:43 | .str | -| test.swift:615:7:615:7 | self [x] | file://:0:0:0:0 | self [x] | -| test.swift:617:8:617:11 | x | test.swift:618:14:618:14 | x | -| test.swift:618:5:618:5 | [post] self [x] | test.swift:617:3:619:3 | self[return] [x] | -| test.swift:618:14:618:14 | x | test.swift:618:5:618:5 | [post] self [x] | -| test.swift:623:11:623:24 | call to S.init(x:) [x] | test.swift:625:13:625:13 | s [x] | -| test.swift:623:11:623:24 | call to S.init(x:) [x] | test.swift:628:13:628:13 | s [x] | -| test.swift:623:16:623:23 | call to source() | test.swift:617:8:617:11 | x | -| test.swift:623:16:623:23 | call to source() | test.swift:623:11:623:24 | call to S.init(x:) [x] | -| test.swift:624:11:624:14 | enter #keyPath(...) [x] | test.swift:624:14:624:14 | KeyPathComponent | -| test.swift:624:14:624:14 | KeyPathComponent | test.swift:624:11:624:14 | exit #keyPath(...) | -| test.swift:625:13:625:13 | s [x] | test.swift:624:11:624:14 | enter #keyPath(...) [x] | -| test.swift:625:13:625:13 | s [x] | test.swift:625:13:625:25 | \\...[...] | -| test.swift:627:36:627:38 | enter #keyPath(...) [x] | test.swift:627:38:627:38 | KeyPathComponent | -| test.swift:627:38:627:38 | KeyPathComponent | test.swift:627:36:627:38 | exit #keyPath(...) | -| test.swift:628:13:628:13 | s [x] | test.swift:627:36:627:38 | enter #keyPath(...) [x] | -| test.swift:628:13:628:13 | s [x] | test.swift:628:13:628:32 | \\...[...] | -| test.swift:632:7:632:7 | self [s, x] | file://:0:0:0:0 | self [s, x] | -| test.swift:634:8:634:11 | s [x] | test.swift:635:14:635:14 | s [x] | -| test.swift:635:5:635:5 | [post] self [s, x] | test.swift:634:3:636:3 | self[return] [s, x] | -| test.swift:635:14:635:14 | s [x] | test.swift:635:5:635:5 | [post] self [s, x] | -| test.swift:640:11:640:24 | call to S.init(x:) [x] | test.swift:641:18:641:18 | s [x] | -| test.swift:640:16:640:23 | call to source() | test.swift:617:8:617:11 | x | -| test.swift:640:16:640:23 | call to source() | test.swift:640:11:640:24 | call to S.init(x:) [x] | -| test.swift:641:12:641:19 | call to S2.init(s:) [s, x] | test.swift:643:13:643:13 | s2 [s, x] | -| test.swift:641:18:641:18 | s [x] | test.swift:634:8:634:11 | s [x] | -| test.swift:641:18:641:18 | s [x] | test.swift:641:12:641:19 | call to S2.init(s:) [s, x] | -| test.swift:642:11:642:17 | enter #keyPath(...) [s, x] | test.swift:642:15:642:15 | KeyPathComponent [x] | -| test.swift:642:15:642:15 | KeyPathComponent [x] | test.swift:642:17:642:17 | KeyPathComponent | -| test.swift:642:17:642:17 | KeyPathComponent | test.swift:642:11:642:17 | exit #keyPath(...) | -| test.swift:643:13:643:13 | s2 [s, x] | test.swift:642:11:642:17 | enter #keyPath(...) [s, x] | -| test.swift:643:13:643:13 | s2 [s, x] | test.swift:643:13:643:26 | \\...[...] | -| test.swift:647:17:647:26 | [...] [Collection element] | test.swift:649:15:649:15 | array [Collection element] | -| test.swift:647:18:647:25 | call to source() | test.swift:647:17:647:26 | [...] [Collection element] | -| test.swift:648:13:648:22 | enter #keyPath(...) [Collection element] | test.swift:648:20:648:22 | KeyPathComponent | -| test.swift:648:20:648:22 | KeyPathComponent | test.swift:648:13:648:22 | exit #keyPath(...) | -| test.swift:649:15:649:15 | array [Collection element] | test.swift:648:13:648:22 | enter #keyPath(...) [Collection element] | -| test.swift:649:15:649:15 | array [Collection element] | test.swift:649:15:649:31 | \\...[...] | -| test.swift:655:8:655:12 | s [some:0, x] | test.swift:656:14:656:14 | s [some:0, x] | -| test.swift:656:5:656:5 | [post] self [s, some:0, x] | test.swift:655:3:657:3 | self[return] [s, some:0, x] | -| test.swift:656:14:656:14 | s [some:0, x] | test.swift:656:5:656:5 | [post] self [s, some:0, x] | -| test.swift:661:13:661:26 | call to S.init(x:) [x] | test.swift:662:29:662:29 | s [x] | -| test.swift:661:18:661:25 | call to source() | test.swift:617:8:617:11 | x | -| test.swift:661:18:661:25 | call to source() | test.swift:661:13:661:26 | call to S.init(x:) [x] | -| test.swift:662:14:662:30 | call to S2_Optional.init(s:) [s, some:0, x] | test.swift:664:15:664:15 | s2 [s, some:0, x] | -| test.swift:662:29:662:29 | s [some:0, x] | test.swift:655:8:655:12 | s [some:0, x] | -| test.swift:662:29:662:29 | s [some:0, x] | test.swift:662:14:662:30 | call to S2_Optional.init(s:) [s, some:0, x] | -| test.swift:662:29:662:29 | s [x] | test.swift:662:29:662:29 | s [some:0, x] | -| test.swift:663:13:663:29 | enter #keyPath(...) [s, some:0, x] | test.swift:663:26:663:26 | KeyPathComponent [some:0, x] | -| test.swift:663:26:663:26 | KeyPathComponent [some:0, x] | test.swift:663:27:663:27 | KeyPathComponent [x] | -| test.swift:663:27:663:27 | KeyPathComponent [x] | test.swift:663:29:663:29 | KeyPathComponent | -| test.swift:663:29:663:29 | KeyPathComponent | file://:0:0:0:0 | KeyPathComponent [some:0] | -| test.swift:664:15:664:15 | s2 [s, some:0, x] | test.swift:663:13:663:29 | enter #keyPath(...) [s, some:0, x] | -| test.swift:664:15:664:15 | s2 [s, some:0, x] | test.swift:664:15:664:28 | \\...[...] [some:0] | -| test.swift:664:15:664:28 | \\...[...] [some:0] | test.swift:664:15:664:29 | ...! | -| test.swift:668:13:668:20 | call to source() | test.swift:676:15:676:15 | y | -| test.swift:678:9:678:16 | call to source() | test.swift:680:11:680:11 | x | -| test.swift:678:9:678:16 | call to source() | test.swift:681:15:681:15 | x | -| test.swift:680:11:680:11 | x | test.swift:680:15:680:15 | [post] y | -| test.swift:680:15:680:15 | [post] y | test.swift:682:15:682:15 | y | -| test.swift:688:5:688:5 | [post] arr1 [Collection element] | test.swift:689:15:689:15 | arr1 [Collection element] | -| test.swift:688:15:688:22 | call to source() | test.swift:688:5:688:5 | [post] arr1 [Collection element] | -| test.swift:689:15:689:15 | arr1 [Collection element] | test.swift:689:15:689:21 | ...[...] | -| test.swift:692:16:692:25 | [...] [Collection element] | test.swift:693:15:693:15 | arr2 [Collection element] | -| test.swift:692:17:692:24 | call to source() | test.swift:692:16:692:25 | [...] [Collection element] | -| test.swift:693:15:693:15 | arr2 [Collection element] | test.swift:693:15:693:21 | ...[...] | -| test.swift:695:18:695:29 | [...] [Collection element, Collection element] | test.swift:697:15:697:15 | matrix [Collection element, Collection element] | -| test.swift:695:19:695:28 | [...] [Collection element] | test.swift:695:18:695:29 | [...] [Collection element, Collection element] | -| test.swift:695:20:695:27 | call to source() | test.swift:695:19:695:28 | [...] [Collection element] | -| test.swift:697:15:697:15 | matrix [Collection element, Collection element] | test.swift:697:15:697:23 | ...[...] [Collection element] | -| test.swift:697:15:697:23 | ...[...] [Collection element] | test.swift:697:15:697:26 | ...[...] | -| test.swift:700:5:700:5 | [post] matrix2 [Collection element, Collection element] | test.swift:701:15:701:15 | matrix2 [Collection element, Collection element] | -| test.swift:700:5:700:14 | [post] getter for ...[...] [Collection element] | test.swift:700:5:700:5 | [post] matrix2 [Collection element, Collection element] | -| test.swift:700:21:700:28 | call to source() | test.swift:700:5:700:14 | [post] getter for ...[...] [Collection element] | -| test.swift:701:15:701:15 | matrix2 [Collection element, Collection element] | test.swift:701:15:701:24 | ...[...] [Collection element] | -| test.swift:701:15:701:24 | ...[...] [Collection element] | test.swift:701:15:701:27 | ...[...] | -| test.swift:708:16:708:51 | call to Array.init(repeating:count:) [Collection element] | test.swift:709:15:709:15 | arr5 [Collection element] | -| test.swift:708:33:708:40 | call to source() | test.swift:708:16:708:51 | call to Array.init(repeating:count:) [Collection element] | -| test.swift:709:15:709:15 | arr5 [Collection element] | test.swift:709:15:709:21 | ...[...] | -| test.swift:712:5:712:5 | [post] arr6 [Collection element] | test.swift:713:15:713:15 | arr6 [Collection element] | -| test.swift:712:17:712:24 | call to source() | test.swift:712:5:712:5 | [post] arr6 [Collection element] | -| test.swift:713:15:713:15 | arr6 [Collection element] | test.swift:713:15:713:21 | ...[...] | -| test.swift:715:16:715:25 | [...] [Collection element] | test.swift:716:15:716:15 | arr7 [Collection element] | -| test.swift:715:17:715:24 | call to source() | test.swift:715:16:715:25 | [...] [Collection element] | -| test.swift:716:15:716:15 | arr7 [Collection element] | test.swift:716:15:716:34 | call to randomElement() [some:0] | -| test.swift:716:15:716:34 | call to randomElement() [some:0] | test.swift:716:15:716:35 | ...! | -| test.swift:722:5:722:5 | [post] set1 [Collection element] | test.swift:723:15:723:15 | set1 [Collection element] | -| test.swift:722:17:722:24 | call to source() | test.swift:722:5:722:5 | [post] set1 [Collection element] | -| test.swift:723:15:723:15 | set1 [Collection element] | test.swift:723:15:723:34 | call to randomElement() [some:0] | -| test.swift:723:15:723:34 | call to randomElement() [some:0] | test.swift:723:15:723:35 | ...! | -| test.swift:725:16:725:30 | call to Set.init(_:) [Collection element] | test.swift:726:15:726:15 | set2 [Collection element] | -| test.swift:725:20:725:29 | [...] [Collection element] | test.swift:725:16:725:30 | call to Set.init(_:) [Collection element] | -| test.swift:725:21:725:28 | call to source() | test.swift:725:20:725:29 | [...] [Collection element] | -| test.swift:726:15:726:15 | set2 [Collection element] | test.swift:726:15:726:34 | call to randomElement() [some:0] | -| test.swift:726:15:726:34 | call to randomElement() [some:0] | test.swift:726:15:726:35 | ...! | -| test.swift:731:9:731:9 | self [v2, some:0] | file://:0:0:0:0 | self [v2, some:0] | -| test.swift:731:9:731:9 | self [v2] | file://:0:0:0:0 | self [v2] | -| test.swift:731:9:731:9 | value | file://:0:0:0:0 | value | -| test.swift:731:9:731:9 | value [some:0] | file://:0:0:0:0 | value [some:0] | -| test.swift:732:9:732:9 | self [v3] | file://:0:0:0:0 | self [v3] | -| test.swift:732:9:732:9 | value | file://:0:0:0:0 | value | -| test.swift:742:5:742:5 | v1 [some:0] | test.swift:752:15:752:15 | v1 [some:0] | -| test.swift:742:11:742:18 | call to source() | test.swift:742:5:742:5 | v1 [some:0] | -| test.swift:743:10:743:17 | call to source() | test.swift:743:10:743:17 | call to source() [some:0] | -| test.swift:743:10:743:17 | call to source() | test.swift:753:15:753:17 | ...! | -| test.swift:743:10:743:17 | call to source() [some:0] | test.swift:753:15:753:15 | v2 [some:0] | -| test.swift:744:10:744:17 | call to source() | test.swift:754:15:754:15 | v3 | -| test.swift:746:5:746:5 | [post] mo1 [v2, some:0] | test.swift:747:5:747:5 | mo1 [v2, some:0] | -| test.swift:746:5:746:5 | [post] mo1 [v2] | test.swift:747:5:747:5 | mo1 [v2] | -| test.swift:746:14:746:21 | call to source() | test.swift:731:9:731:9 | value | -| test.swift:746:14:746:21 | call to source() | test.swift:746:5:746:5 | [post] mo1 [v2] | -| test.swift:746:14:746:21 | call to source() | test.swift:746:14:746:21 | call to source() [some:0] | -| test.swift:746:14:746:21 | call to source() [some:0] | test.swift:731:9:731:9 | value [some:0] | -| test.swift:746:14:746:21 | call to source() [some:0] | test.swift:746:5:746:5 | [post] mo1 [v2, some:0] | -| test.swift:747:5:747:5 | [post] mo1 [v3] | test.swift:757:15:757:15 | mo1 [v3] | -| test.swift:747:5:747:5 | mo1 [v2, some:0] | test.swift:756:15:756:15 | mo1 [v2, some:0] | -| test.swift:747:5:747:5 | mo1 [v2] | test.swift:756:15:756:15 | mo1 [v2] | -| test.swift:747:14:747:21 | call to source() | test.swift:732:9:732:9 | value | -| test.swift:747:14:747:21 | call to source() | test.swift:747:5:747:5 | [post] mo1 [v3] | -| test.swift:752:15:752:15 | v1 [some:0] | test.swift:752:15:752:17 | ...! | -| test.swift:753:15:753:15 | v2 [some:0] | test.swift:753:15:753:17 | ...! | -| test.swift:756:15:756:15 | mo1 [v2, some:0] | test.swift:731:9:731:9 | self [v2, some:0] | -| test.swift:756:15:756:15 | mo1 [v2, some:0] | test.swift:756:15:756:19 | .v2 [some:0] | -| test.swift:756:15:756:15 | mo1 [v2] | test.swift:731:9:731:9 | self [v2] | -| test.swift:756:15:756:15 | mo1 [v2] | test.swift:756:15:756:19 | .v2 | -| test.swift:756:15:756:19 | .v2 | test.swift:756:15:756:21 | ...! | -| test.swift:756:15:756:19 | .v2 [some:0] | test.swift:756:15:756:21 | ...! | -| test.swift:757:15:757:15 | mo1 [v3] | test.swift:732:9:732:9 | self [v3] | -| test.swift:757:15:757:15 | mo1 [v3] | test.swift:757:15:757:19 | .v3 | -| test.swift:764:13:764:26 | call to S.init(x:) [x] | test.swift:765:29:765:29 | s [x] | -| test.swift:764:18:764:25 | call to source() | test.swift:617:8:617:11 | x | -| test.swift:764:18:764:25 | call to source() | test.swift:764:13:764:26 | call to S.init(x:) [x] | -| test.swift:765:14:765:30 | call to S2_Optional.init(s:) [s, some:0, x] | test.swift:767:15:767:15 | s2 [s, some:0, x] | -| test.swift:765:29:765:29 | s [some:0, x] | test.swift:655:8:655:12 | s [some:0, x] | -| test.swift:765:29:765:29 | s [some:0, x] | test.swift:765:14:765:30 | call to S2_Optional.init(s:) [s, some:0, x] | -| test.swift:765:29:765:29 | s [x] | test.swift:765:29:765:29 | s [some:0, x] | -| test.swift:766:13:766:29 | enter #keyPath(...) [s, some:0, x] | test.swift:766:26:766:26 | KeyPathComponent [some:0, x] | -| test.swift:766:26:766:26 | KeyPathComponent [some:0, x] | test.swift:766:26:766:26 | KeyPathComponent [x] | -| test.swift:766:26:766:26 | KeyPathComponent [x] | test.swift:766:29:766:29 | KeyPathComponent | -| test.swift:766:29:766:29 | KeyPathComponent | test.swift:766:13:766:29 | exit #keyPath(...) | -| test.swift:767:15:767:15 | s2 [s, some:0, x] | test.swift:766:13:766:29 | enter #keyPath(...) [s, some:0, x] | -| test.swift:767:15:767:15 | s2 [s, some:0, x] | test.swift:767:15:767:28 | \\...[...] | -| test.swift:774:5:774:5 | [post] dict1 [Collection element, Tuple element at index 1] | test.swift:776:15:776:15 | dict1 [Collection element, Tuple element at index 1] | -| test.swift:774:5:774:12 | DictionarySubscriptNode [Tuple element at index 1] | test.swift:774:5:774:5 | [post] dict1 [Collection element, Tuple element at index 1] | -| test.swift:774:16:774:23 | call to source() | test.swift:774:5:774:12 | DictionarySubscriptNode [Tuple element at index 1] | -| test.swift:776:15:776:15 | dict1 [Collection element, Tuple element at index 1] | test.swift:776:15:776:22 | DictionarySubscriptNode [Tuple element at index 1] | -| test.swift:776:15:776:22 | DictionarySubscriptNode [Tuple element at index 1] | test.swift:776:15:776:22 | ...[...] | -| test.swift:778:17:778:29 | [...] [Collection element, Tuple element at index 0] | test.swift:781:25:781:25 | dict2 [Collection element, Tuple element at index 0] | -| test.swift:778:18:778:25 | call to source() | test.swift:778:18:778:28 | (...) [Tuple element at index 0] | -| test.swift:778:18:778:28 | (...) [Tuple element at index 0] | test.swift:778:17:778:29 | [...] [Collection element, Tuple element at index 0] | -| test.swift:781:5:781:5 | $generator [Collection element, Tuple element at index 0] | test.swift:781:5:781:5 | call to next() [some:0, Tuple element at index 0] | -| test.swift:781:5:781:5 | call to next() [some:0, Tuple element at index 0] | test.swift:781:9:781:20 | (...) [Tuple element at index 0] | -| test.swift:781:9:781:20 | (...) [Tuple element at index 0] | test.swift:781:10:781:10 | key | -| test.swift:781:10:781:10 | key | test.swift:782:19:782:19 | key | -| test.swift:781:25:781:25 | call to makeIterator() [Collection element, Tuple element at index 0] | test.swift:781:5:781:5 | $generator [Collection element, Tuple element at index 0] | -| test.swift:781:25:781:25 | dict2 [Collection element, Tuple element at index 0] | test.swift:781:25:781:25 | call to makeIterator() [Collection element, Tuple element at index 0] | -| test.swift:786:17:786:29 | [...] [Collection element, Tuple element at index 1] | test.swift:787:15:787:15 | dict3 [Collection element, Tuple element at index 1] | -| test.swift:786:17:786:29 | [...] [Collection element, Tuple element at index 1] | test.swift:789:5:789:5 | dict3 [Collection element, Tuple element at index 1] | -| test.swift:786:17:786:29 | [...] [Collection element, Tuple element at index 1] | test.swift:792:15:792:15 | dict3 [Collection element, Tuple element at index 1] | -| test.swift:786:17:786:29 | [...] [Collection element, Tuple element at index 1] | test.swift:794:25:794:25 | dict3 [Collection element, Tuple element at index 1] | -| test.swift:786:18:786:28 | (...) [Tuple element at index 1] | test.swift:786:17:786:29 | [...] [Collection element, Tuple element at index 1] | -| test.swift:786:21:786:28 | call to source() | test.swift:786:18:786:28 | (...) [Tuple element at index 1] | -| test.swift:787:15:787:15 | dict3 [Collection element, Tuple element at index 1] | test.swift:787:15:787:22 | DictionarySubscriptNode [Tuple element at index 1] | -| test.swift:787:15:787:22 | DictionarySubscriptNode [Tuple element at index 1] | test.swift:787:15:787:22 | ...[...] | -| test.swift:789:5:789:5 | [post] dict3 [Collection element, Tuple element at index 0] | test.swift:791:15:791:15 | dict3 [Collection element, Tuple element at index 0] | -| test.swift:789:5:789:5 | [post] dict3 [Collection element, Tuple element at index 0] | test.swift:794:25:794:25 | dict3 [Collection element, Tuple element at index 0] | -| test.swift:789:5:789:5 | [post] dict3 [Collection element, Tuple element at index 1] | test.swift:792:15:792:15 | dict3 [Collection element, Tuple element at index 1] | -| test.swift:789:5:789:5 | [post] dict3 [Collection element, Tuple element at index 1] | test.swift:794:25:794:25 | dict3 [Collection element, Tuple element at index 1] | -| test.swift:789:5:789:5 | dict3 [Collection element, Tuple element at index 1] | test.swift:789:5:789:19 | DictionarySubscriptNode [Tuple element at index 1] | -| test.swift:789:5:789:19 | DictionarySubscriptNode [Tuple element at index 0] | test.swift:789:5:789:5 | [post] dict3 [Collection element, Tuple element at index 0] | -| test.swift:789:5:789:19 | DictionarySubscriptNode [Tuple element at index 1] | test.swift:789:5:789:5 | [post] dict3 [Collection element, Tuple element at index 1] | -| test.swift:789:11:789:18 | call to source() | test.swift:789:5:789:19 | DictionarySubscriptNode [Tuple element at index 0] | -| test.swift:791:15:791:15 | dict3 [Collection element, Tuple element at index 0] | test.swift:791:15:791:35 | call to randomElement() [some:0, Tuple element at index 0] | -| test.swift:791:15:791:35 | call to randomElement() [some:0, Tuple element at index 0] | test.swift:791:15:791:36 | ...! [Tuple element at index 0] | -| test.swift:791:15:791:36 | ...! [Tuple element at index 0] | test.swift:791:15:791:38 | .0 | -| test.swift:792:15:792:15 | dict3 [Collection element, Tuple element at index 1] | test.swift:792:15:792:35 | call to randomElement() [some:0, Tuple element at index 1] | -| test.swift:792:15:792:35 | call to randomElement() [some:0, Tuple element at index 1] | test.swift:792:15:792:36 | ...! [Tuple element at index 1] | -| test.swift:792:15:792:36 | ...! [Tuple element at index 1] | test.swift:792:15:792:38 | .1 | -| test.swift:794:5:794:5 | $generator [Collection element, Tuple element at index 0] | test.swift:794:5:794:5 | call to next() [some:0, Tuple element at index 0] | -| test.swift:794:5:794:5 | $generator [Collection element, Tuple element at index 1] | test.swift:794:5:794:5 | call to next() [some:0, Tuple element at index 1] | -| test.swift:794:5:794:5 | call to next() [some:0, Tuple element at index 0] | test.swift:794:9:794:20 | (...) [Tuple element at index 0] | -| test.swift:794:5:794:5 | call to next() [some:0, Tuple element at index 1] | test.swift:794:9:794:20 | (...) [Tuple element at index 1] | -| test.swift:794:9:794:20 | (...) [Tuple element at index 0] | test.swift:794:10:794:10 | key | -| test.swift:794:9:794:20 | (...) [Tuple element at index 1] | test.swift:794:15:794:15 | value | -| test.swift:794:10:794:10 | key | test.swift:795:19:795:19 | key | -| test.swift:794:15:794:15 | value | test.swift:796:19:796:19 | value | -| test.swift:794:25:794:25 | call to makeIterator() [Collection element, Tuple element at index 0] | test.swift:794:5:794:5 | $generator [Collection element, Tuple element at index 0] | -| test.swift:794:25:794:25 | call to makeIterator() [Collection element, Tuple element at index 1] | test.swift:794:5:794:5 | $generator [Collection element, Tuple element at index 1] | -| test.swift:794:25:794:25 | dict3 [Collection element, Tuple element at index 0] | test.swift:794:25:794:25 | call to makeIterator() [Collection element, Tuple element at index 0] | -| test.swift:794:25:794:25 | dict3 [Collection element, Tuple element at index 1] | test.swift:794:25:794:25 | call to makeIterator() [Collection element, Tuple element at index 1] | -| test.swift:799:17:799:28 | [...] [Collection element, Tuple element at index 1] | test.swift:800:15:800:15 | dict4 [Collection element, Tuple element at index 1] | -| test.swift:799:17:799:28 | [...] [Collection element, Tuple element at index 1] | test.swift:801:15:801:15 | dict4 [Collection element, Tuple element at index 1] | -| test.swift:799:17:799:28 | [...] [Collection element, Tuple element at index 1] | test.swift:803:15:803:15 | dict4 [Collection element, Tuple element at index 1] | -| test.swift:799:18:799:27 | (...) [Tuple element at index 1] | test.swift:799:17:799:28 | [...] [Collection element, Tuple element at index 1] | -| test.swift:799:20:799:27 | call to source() | test.swift:799:18:799:27 | (...) [Tuple element at index 1] | -| test.swift:800:15:800:15 | [post] dict4 [Collection element, Tuple element at index 0] | test.swift:802:15:802:15 | dict4 [Collection element, Tuple element at index 0] | -| test.swift:800:15:800:15 | dict4 [Collection element, Tuple element at index 1] | test.swift:800:15:800:52 | call to updateValue(_:forKey:) [some:0] | -| test.swift:800:15:800:52 | call to updateValue(_:forKey:) [some:0] | test.swift:800:15:800:53 | ...! | -| test.swift:800:44:800:51 | call to source() | test.swift:800:15:800:15 | [post] dict4 [Collection element, Tuple element at index 0] | -| test.swift:801:15:801:15 | [post] dict4 [Collection element, Tuple element at index 1] | test.swift:803:15:803:15 | dict4 [Collection element, Tuple element at index 1] | -| test.swift:801:15:801:15 | dict4 [Collection element, Tuple element at index 1] | test.swift:801:15:801:52 | call to updateValue(_:forKey:) [some:0] | -| test.swift:801:15:801:52 | call to updateValue(_:forKey:) [some:0] | test.swift:801:15:801:53 | ...! | -| test.swift:801:33:801:40 | call to source() | test.swift:801:15:801:15 | [post] dict4 [Collection element, Tuple element at index 1] | -| test.swift:802:15:802:15 | dict4 [Collection element, Tuple element at index 0] | test.swift:802:15:802:35 | call to randomElement() [some:0, Tuple element at index 0] | -| test.swift:802:15:802:35 | call to randomElement() [some:0, Tuple element at index 0] | test.swift:802:15:802:36 | ...! [Tuple element at index 0] | -| test.swift:802:15:802:36 | ...! [Tuple element at index 0] | test.swift:802:15:802:38 | .0 | -| test.swift:803:15:803:15 | dict4 [Collection element, Tuple element at index 1] | test.swift:803:15:803:35 | call to randomElement() [some:0, Tuple element at index 1] | -| test.swift:803:15:803:35 | call to randomElement() [some:0, Tuple element at index 1] | test.swift:803:15:803:36 | ...! [Tuple element at index 1] | -| test.swift:803:15:803:36 | ...! [Tuple element at index 1] | test.swift:803:15:803:38 | .1 | -| test.swift:809:8:809:13 | v | test.swift:810:14:810:14 | v | -| test.swift:810:5:810:5 | [post] self [v] | test.swift:809:3:811:3 | self[return] [v] | -| test.swift:810:14:810:14 | v | test.swift:810:5:810:5 | [post] self [v] | -| test.swift:813:8:813:8 | self [v] | test.swift:813:31:813:31 | self [v] | -| test.swift:813:31:813:31 | self [v] | test.swift:813:31:813:31 | .v | -| test.swift:813:31:813:31 | self [v] | test.swift:815:7:815:7 | self [v] | -| test.swift:815:7:815:7 | self [v] | file://:0:0:0:0 | self [v] | -| test.swift:815:7:815:7 | value | file://:0:0:0:0 | value | -| test.swift:819:14:819:25 | call to S3.init(_:) [v] | test.swift:822:15:822:15 | s1 [v] | -| test.swift:819:14:819:25 | call to S3.init(_:) [v] | test.swift:824:15:824:15 | s1 [v] | -| test.swift:819:17:819:24 | call to source() | test.swift:809:8:809:13 | v | -| test.swift:819:17:819:24 | call to source() | test.swift:819:14:819:25 | call to S3.init(_:) [v] | -| test.swift:822:15:822:15 | s1 [v] | test.swift:815:7:815:7 | self [v] | -| test.swift:822:15:822:15 | s1 [v] | test.swift:822:15:822:18 | .v | -| test.swift:824:15:824:15 | s1 [v] | test.swift:813:8:813:8 | self [v] | -| test.swift:824:15:824:15 | s1 [v] | test.swift:824:15:824:23 | call to getv() | -| test.swift:828:5:828:5 | [post] s2 [v] | test.swift:831:15:831:15 | s2 [v] | -| test.swift:828:5:828:5 | [post] s2 [v] | test.swift:833:15:833:15 | s2 [v] | -| test.swift:828:12:828:19 | call to source() | test.swift:815:7:815:7 | value | -| test.swift:828:12:828:19 | call to source() | test.swift:828:5:828:5 | [post] s2 [v] | -| test.swift:831:15:831:15 | s2 [v] | test.swift:815:7:815:7 | self [v] | -| test.swift:831:15:831:15 | s2 [v] | test.swift:831:15:831:18 | .v | -| test.swift:833:15:833:15 | s2 [v] | test.swift:813:8:813:8 | self [v] | -| test.swift:833:15:833:15 | s2 [v] | test.swift:833:15:833:23 | call to getv() | -| test.swift:839:11:839:17 | [post] exit #keyPath(...) | test.swift:839:17:839:17 | [post] KeyPathComponent | -| test.swift:839:15:839:15 | [post] KeyPathComponent [x] | test.swift:839:11:839:17 | [post] enter #keyPath(...) [s, x] | -| test.swift:839:17:839:17 | [post] KeyPathComponent | test.swift:839:15:839:15 | [post] KeyPathComponent [x] | -| test.swift:840:3:840:3 | [post] s2 [s, x] | test.swift:841:13:841:13 | s2 [s, x] | -| test.swift:840:3:840:16 | \\...[...] | test.swift:839:11:839:17 | [post] exit #keyPath(...) | -| test.swift:840:3:840:16 | \\...[...] | test.swift:840:3:840:3 | [post] s2 [s, x] | -| test.swift:840:20:840:27 | call to source() | test.swift:840:3:840:16 | \\...[...] | -| test.swift:841:13:841:13 | s2 [s, x] | test.swift:632:7:632:7 | self [s, x] | -| test.swift:841:13:841:13 | s2 [s, x] | test.swift:841:13:841:16 | .s [x] | -| test.swift:841:13:841:16 | .s [x] | test.swift:615:7:615:7 | self [x] | -| test.swift:841:13:841:16 | .s [x] | test.swift:841:13:841:18 | .x | -| test.swift:844:19:844:28 | args [Collection element] | test.swift:846:15:846:15 | args [Collection element] | -| test.swift:846:15:846:15 | args [Collection element] | test.swift:846:15:846:21 | ...[...] | -| test.swift:849:19:849:24 | v | test.swift:850:15:850:15 | v | -| test.swift:856:29:856:40 | args [Collection element] | test.swift:859:15:859:15 | args [Collection element] | -| test.swift:856:29:856:40 | args [Collection element] | test.swift:860:15:860:15 | args [Collection element] | -| test.swift:856:29:856:40 | args [Collection element] | test.swift:862:16:862:16 | args [Collection element] | -| test.swift:856:29:856:40 | args [Collection element] | test.swift:867:15:867:15 | args [Collection element] | -| test.swift:859:15:859:15 | args [Collection element] | test.swift:859:15:859:21 | ...[...] | -| test.swift:860:15:860:15 | args [Collection element] | test.swift:860:15:860:21 | ...[...] | -| test.swift:862:5:862:5 | $arg$generator [Collection element] | test.swift:862:5:862:5 | call to next() [some:0] | -| test.swift:862:5:862:5 | call to next() [some:0] | test.swift:862:9:862:9 | arg | -| test.swift:862:9:862:9 | arg | test.swift:863:19:863:19 | arg | -| test.swift:862:16:862:16 | args [Collection element] | test.swift:862:16:862:16 | call to makeIterator() [Collection element] | -| test.swift:862:16:862:16 | call to makeIterator() [Collection element] | test.swift:862:5:862:5 | $arg$generator [Collection element] | -| test.swift:866:21:866:29 | enter #keyPath(...) [Collection element] | test.swift:866:27:866:29 | KeyPathComponent | -| test.swift:866:27:866:29 | KeyPathComponent | test.swift:866:21:866:29 | exit #keyPath(...) | -| test.swift:867:15:867:15 | args [Collection element] | test.swift:866:21:866:29 | enter #keyPath(...) [Collection element] | -| test.swift:867:15:867:15 | args [Collection element] | test.swift:867:15:867:38 | \\...[...] | -| test.swift:871:24:871:31 | [...] [Collection element] | test.swift:844:19:844:28 | args [Collection element] | -| test.swift:871:24:871:31 | [...] [Collection element] | test.swift:871:24:871:31 | [...] [Collection element] | -| test.swift:871:24:871:31 | call to source() | test.swift:871:24:871:31 | [...] [Collection element] | -| test.swift:872:18:872:25 | call to source() | test.swift:849:19:849:24 | v | -| test.swift:873:21:873:31 | [...] [Collection element] | test.swift:856:29:856:40 | args [Collection element] | -| test.swift:873:21:873:31 | [...] [Collection element] | test.swift:873:21:873:31 | [...] [Collection element] | -| test.swift:873:24:873:31 | call to source() | test.swift:873:21:873:31 | [...] [Collection element] | -| test.swift:877:16:877:30 | call to Set.init(_:) [Collection element] | test.swift:879:17:879:17 | set1 [Collection element] | -| test.swift:877:16:877:30 | call to Set.init(_:) [Collection element] | test.swift:883:21:883:21 | set1 [Collection element] | -| test.swift:877:20:877:29 | [...] [Collection element] | test.swift:877:16:877:30 | call to Set.init(_:) [Collection element] | -| test.swift:877:21:877:28 | call to source() | test.swift:877:20:877:29 | [...] [Collection element] | -| test.swift:879:5:879:5 | $elem$generator [Collection element] | test.swift:879:5:879:5 | call to next() [some:0] | -| test.swift:879:5:879:5 | call to next() [some:0] | test.swift:879:9:879:9 | elem | -| test.swift:879:9:879:9 | elem | test.swift:880:19:880:19 | elem | -| test.swift:879:17:879:17 | call to makeIterator() [Collection element] | test.swift:879:5:879:5 | $elem$generator [Collection element] | -| test.swift:879:17:879:17 | set1 [Collection element] | test.swift:879:17:879:17 | call to makeIterator() [Collection element] | -| test.swift:883:21:883:21 | set1 [Collection element] | test.swift:883:21:883:39 | call to makeIterator() [Collection element] | -| test.swift:883:21:883:39 | call to makeIterator() [Collection element] | test.swift:884:15:884:15 | generator [Collection element] | -| test.swift:884:15:884:15 | generator [Collection element] | test.swift:884:15:884:30 | call to next() [some:0] | -| test.swift:884:15:884:30 | call to next() [some:0] | test.swift:884:15:884:31 | ...! | -| test.swift:908:19:908:26 | call to source() | test.swift:904:13:904:18 | call to ... | -| test.swift:927:12:927:31 | call to source(_:) | test.swift:927:12:927:31 | OpenExistentialExpr | -| test.swift:929:12:929:57 | call to source(_:) | test.swift:929:12:929:57 | OpenExistentialExpr | -| test.swift:937:22:937:29 | call to source() | file://:0:0:0:0 | .wrappedValue | -| test.swift:938:9:938:9 | newValue | test.swift:938:25:938:25 | newValue | -| test.swift:941:10:941:24 | wrappedValue | test.swift:942:19:942:19 | wrappedValue | -| test.swift:943:29:943:36 | call to source() | test.swift:938:9:938:9 | newValue | -| test.swift:948:33:948:33 | value | file://:0:0:0:0 | value | -| test.swift:948:42:948:49 | call to source() | test.swift:941:10:941:24 | wrappedValue | -| test.swift:950:9:950:16 | call to source() | test.swift:948:33:948:33 | value | -| test.swift:957:9:957:9 | value | file://:0:0:0:0 | value | -| test.swift:958:9:958:9 | self [wrappedValue] | test.swift:959:23:959:23 | self [wrappedValue] | -| test.swift:959:23:959:23 | self [wrappedValue] | test.swift:959:23:959:23 | .wrappedValue | -| test.swift:965:9:965:9 | newValue | test.swift:967:28:967:28 | newValue | -| test.swift:967:28:967:28 | newValue | test.swift:957:9:957:9 | value | -| test.swift:971:10:971:24 | wrappedValue | test.swift:972:19:972:19 | wrappedValue | -| test.swift:978:34:978:34 | value | file://:0:0:0:0 | value | -| test.swift:980:9:980:16 | call to source() | test.swift:978:34:978:34 | value | -| test.swift:983:38:983:45 | call to source() | test.swift:971:10:971:24 | wrappedValue | -| test.swift:988:34:988:34 | value | file://:0:0:0:0 | value | -| test.swift:991:10:991:17 | call to source() | test.swift:988:34:988:34 | value | +| file://:0:0:0:0 | .wrappedValue | test.swift:949:15:949:15 | x | provenance | | +| file://:0:0:0:0 | .wrappedValue | test.swift:951:15:951:15 | x | provenance | | +| file://:0:0:0:0 | KeyPathComponent [some:0] | test.swift:663:13:663:29 | exit #keyPath(...) [some:0] | provenance | | +| file://:0:0:0:0 | [post] self [wrappedValue] | file://:0:0:0:0 | self [wrappedValue] | provenance | | +| file://:0:0:0:0 | self [a, x] | file://:0:0:0:0 | .a [x] | provenance | | +| file://:0:0:0:0 | self [s, x] | file://:0:0:0:0 | .s [x] | provenance | | +| file://:0:0:0:0 | self [str] | file://:0:0:0:0 | .str | provenance | | +| file://:0:0:0:0 | self [v2, some:0] | file://:0:0:0:0 | .v2 [some:0] | provenance | | +| file://:0:0:0:0 | self [v2] | file://:0:0:0:0 | .v2 | provenance | | +| file://:0:0:0:0 | self [v3] | file://:0:0:0:0 | .v3 | provenance | | +| file://:0:0:0:0 | self [v] | file://:0:0:0:0 | .v | provenance | | +| file://:0:0:0:0 | self [wrappedValue] | test.swift:958:9:958:9 | self [wrappedValue] | provenance | | +| file://:0:0:0:0 | self [x, some:0] | file://:0:0:0:0 | .x [some:0] | provenance | | +| file://:0:0:0:0 | self [x] | file://:0:0:0:0 | .x | provenance | | +| file://:0:0:0:0 | self [x] | file://:0:0:0:0 | .x | provenance | | +| file://:0:0:0:0 | self [x] | file://:0:0:0:0 | .x | provenance | | +| file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [v2] | provenance | | +| file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [v3] | provenance | | +| file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [v] | provenance | | +| file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [wrappedValue] | provenance | | +| file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [x] | provenance | | +| file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [x] | provenance | | +| file://:0:0:0:0 | value | test.swift:938:9:938:9 | newValue | provenance | | +| file://:0:0:0:0 | value | test.swift:957:9:957:9 | value | provenance | | +| file://:0:0:0:0 | value | test.swift:965:9:965:9 | newValue | provenance | | +| file://:0:0:0:0 | value [some:0] | file://:0:0:0:0 | [post] self [v2, some:0] | provenance | | +| file://:0:0:0:0 | value [some:0] | file://:0:0:0:0 | [post] self [x, some:0] | provenance | | +| test.swift:6:19:6:26 | call to source() | test.swift:7:15:7:15 | t1 | provenance | | +| test.swift:6:19:6:26 | call to source() | test.swift:9:15:9:15 | t1 | provenance | | +| test.swift:6:19:6:26 | call to source() | test.swift:10:15:10:15 | t2 | provenance | | +| test.swift:25:20:25:27 | call to source() | test.swift:29:18:29:21 | x | provenance | | +| test.swift:26:26:26:33 | call to source() | test.swift:29:26:29:29 | y | provenance | | +| test.swift:29:18:29:21 | x | test.swift:30:15:30:15 | x | provenance | | +| test.swift:29:26:29:29 | y | test.swift:31:15:31:15 | y | provenance | | +| test.swift:35:12:35:19 | call to source() | test.swift:39:15:39:29 | call to callee_source() | provenance | | +| test.swift:43:19:43:26 | call to source() | test.swift:50:15:50:15 | t | provenance | | +| test.swift:53:1:56:1 | arg[return] | test.swift:61:23:61:23 | [post] x | provenance | | +| test.swift:54:11:54:18 | call to source() | test.swift:53:1:56:1 | arg[return] | provenance | | +| test.swift:61:23:61:23 | [post] x | test.swift:62:15:62:15 | x | provenance | | +| test.swift:65:16:65:28 | arg1 | test.swift:65:1:70:1 | arg2[return] | provenance | | +| test.swift:73:18:73:25 | call to source() | test.swift:75:22:75:22 | x | provenance | | +| test.swift:73:18:73:25 | call to source() | test.swift:76:15:76:15 | x | provenance | | +| test.swift:75:22:75:22 | x | test.swift:65:16:65:28 | arg1 | provenance | | +| test.swift:75:22:75:22 | x | test.swift:75:32:75:32 | [post] y | provenance | | +| test.swift:75:32:75:32 | [post] y | test.swift:77:15:77:15 | y | provenance | | +| test.swift:80:1:82:1 | arg[return] | test.swift:97:40:97:40 | [post] x | provenance | | +| test.swift:81:11:81:18 | call to source() | test.swift:80:1:82:1 | arg[return] | provenance | | +| test.swift:84:1:91:1 | arg[return] | test.swift:104:41:104:41 | [post] x | provenance | | +| test.swift:86:15:86:22 | call to source() | test.swift:84:1:91:1 | arg[return] | provenance | | +| test.swift:89:15:89:22 | call to source() | test.swift:84:1:91:1 | arg[return] | provenance | | +| test.swift:97:40:97:40 | [post] x | test.swift:98:19:98:19 | x | provenance | | +| test.swift:104:41:104:41 | [post] x | test.swift:105:19:105:19 | x | provenance | | +| test.swift:109:9:109:14 | arg | test.swift:110:12:110:12 | arg | provenance | | +| test.swift:113:14:113:19 | arg | test.swift:114:19:114:19 | arg | provenance | | +| test.swift:113:14:113:19 | arg | test.swift:114:19:114:19 | arg | provenance | | +| test.swift:114:19:114:19 | arg | test.swift:109:9:109:14 | arg | provenance | | +| test.swift:114:19:114:19 | arg | test.swift:114:12:114:22 | call to ... | provenance | | +| test.swift:114:19:114:19 | arg | test.swift:114:12:114:22 | call to ... | provenance | | +| test.swift:114:19:114:19 | arg | test.swift:123:10:123:13 | i | provenance | | +| test.swift:118:18:118:25 | call to source() | test.swift:119:31:119:31 | x | provenance | | +| test.swift:119:18:119:44 | call to forward(arg:lambda:) | test.swift:120:15:120:15 | y | provenance | | +| test.swift:119:31:119:31 | x | test.swift:113:14:113:19 | arg | provenance | | +| test.swift:119:31:119:31 | x | test.swift:119:18:119:44 | call to forward(arg:lambda:) | provenance | | +| test.swift:122:18:125:6 | call to forward(arg:lambda:) | test.swift:126:15:126:15 | z | provenance | | +| test.swift:122:31:122:38 | call to source() | test.swift:113:14:113:19 | arg | provenance | | +| test.swift:122:31:122:38 | call to source() | test.swift:122:18:125:6 | call to forward(arg:lambda:) | provenance | | +| test.swift:123:10:123:13 | i | test.swift:124:16:124:16 | i | provenance | | +| test.swift:142:10:142:13 | i | test.swift:143:16:143:16 | i | provenance | | +| test.swift:145:23:145:30 | call to source() | test.swift:142:10:142:13 | i | provenance | | +| test.swift:145:23:145:30 | call to source() | test.swift:145:15:145:31 | call to ... | provenance | | +| test.swift:149:16:149:23 | call to source() | test.swift:151:15:151:28 | call to ... | provenance | | +| test.swift:149:16:149:23 | call to source() | test.swift:159:16:159:29 | call to ... | provenance | | +| test.swift:154:10:154:13 | i | test.swift:155:19:155:19 | i | provenance | | +| test.swift:157:16:157:23 | call to source() | test.swift:154:10:154:13 | i | provenance | | +| test.swift:159:16:159:29 | call to ... | test.swift:154:10:154:13 | i | provenance | | +| test.swift:163:7:163:7 | self [x] | file://:0:0:0:0 | self [x] | provenance | | +| test.swift:163:7:163:7 | value | file://:0:0:0:0 | value | provenance | | +| test.swift:169:12:169:22 | value | test.swift:170:9:170:9 | value | provenance | | +| test.swift:170:5:170:5 | [post] self [x] | test.swift:169:3:171:3 | self[return] [x] | provenance | | +| test.swift:170:9:170:9 | value | test.swift:163:7:163:7 | value | provenance | | +| test.swift:170:9:170:9 | value | test.swift:170:5:170:5 | [post] self [x] | provenance | | +| test.swift:173:8:173:8 | self [x] | test.swift:174:12:174:12 | self [x] | provenance | | +| test.swift:174:12:174:12 | self [x] | test.swift:163:7:163:7 | self [x] | provenance | | +| test.swift:174:12:174:12 | self [x] | test.swift:174:12:174:12 | .x | provenance | | +| test.swift:180:3:180:3 | [post] a [x] | test.swift:181:13:181:13 | a [x] | provenance | | +| test.swift:180:9:180:16 | call to source() | test.swift:163:7:163:7 | value | provenance | | +| test.swift:180:9:180:16 | call to source() | test.swift:180:3:180:3 | [post] a [x] | provenance | | +| test.swift:181:13:181:13 | a [x] | test.swift:163:7:163:7 | self [x] | provenance | | +| test.swift:181:13:181:13 | a [x] | test.swift:181:13:181:15 | .x | provenance | | +| test.swift:185:7:185:7 | self [a, x] | file://:0:0:0:0 | self [a, x] | provenance | | +| test.swift:194:3:194:3 | [post] b [a, x] | test.swift:195:13:195:13 | b [a, x] | provenance | | +| test.swift:194:3:194:5 | [post] getter for .a [x] | test.swift:194:3:194:3 | [post] b [a, x] | provenance | | +| test.swift:194:11:194:18 | call to source() | test.swift:163:7:163:7 | value | provenance | | +| test.swift:194:11:194:18 | call to source() | test.swift:194:3:194:5 | [post] getter for .a [x] | provenance | | +| test.swift:195:13:195:13 | b [a, x] | test.swift:185:7:185:7 | self [a, x] | provenance | | +| test.swift:195:13:195:13 | b [a, x] | test.swift:195:13:195:15 | .a [x] | provenance | | +| test.swift:195:13:195:15 | .a [x] | test.swift:163:7:163:7 | self [x] | provenance | | +| test.swift:195:13:195:15 | .a [x] | test.swift:195:13:195:17 | .x | provenance | | +| test.swift:200:3:200:3 | [post] a [x] | test.swift:201:13:201:13 | a [x] | provenance | | +| test.swift:200:9:200:16 | call to source() | test.swift:169:12:169:22 | value | provenance | | +| test.swift:200:9:200:16 | call to source() | test.swift:200:3:200:3 | [post] a [x] | provenance | | +| test.swift:201:13:201:13 | a [x] | test.swift:163:7:163:7 | self [x] | provenance | | +| test.swift:201:13:201:13 | a [x] | test.swift:201:13:201:15 | .x | provenance | | +| test.swift:206:3:206:3 | [post] a [x] | test.swift:207:13:207:13 | a [x] | provenance | | +| test.swift:206:9:206:16 | call to source() | test.swift:163:7:163:7 | value | provenance | | +| test.swift:206:9:206:16 | call to source() | test.swift:206:3:206:3 | [post] a [x] | provenance | | +| test.swift:207:13:207:13 | a [x] | test.swift:173:8:173:8 | self [x] | provenance | | +| test.swift:207:13:207:13 | a [x] | test.swift:207:13:207:19 | call to get() | provenance | | +| test.swift:212:3:212:3 | [post] a [x] | test.swift:213:13:213:13 | a [x] | provenance | | +| test.swift:212:9:212:16 | call to source() | test.swift:169:12:169:22 | value | provenance | | +| test.swift:212:9:212:16 | call to source() | test.swift:212:3:212:3 | [post] a [x] | provenance | | +| test.swift:213:13:213:13 | a [x] | test.swift:173:8:173:8 | self [x] | provenance | | +| test.swift:213:13:213:13 | a [x] | test.swift:213:13:213:19 | call to get() | provenance | | +| test.swift:218:3:218:3 | [post] b [a, x] | test.swift:219:13:219:13 | b [a, x] | provenance | | +| test.swift:218:3:218:5 | [post] getter for .a [x] | test.swift:218:3:218:3 | [post] b [a, x] | provenance | | +| test.swift:218:11:218:18 | call to source() | test.swift:169:12:169:22 | value | provenance | | +| test.swift:218:11:218:18 | call to source() | test.swift:218:3:218:5 | [post] getter for .a [x] | provenance | | +| test.swift:219:13:219:13 | b [a, x] | test.swift:185:7:185:7 | self [a, x] | provenance | | +| test.swift:219:13:219:13 | b [a, x] | test.swift:219:13:219:15 | .a [x] | provenance | | +| test.swift:219:13:219:15 | .a [x] | test.swift:163:7:163:7 | self [x] | provenance | | +| test.swift:219:13:219:15 | .a [x] | test.swift:219:13:219:17 | .x | provenance | | +| test.swift:225:14:225:21 | call to source() | test.swift:235:13:235:15 | .source_value | provenance | | +| test.swift:225:14:225:21 | call to source() | test.swift:238:13:238:15 | .source_value | provenance | | +| test.swift:259:12:259:19 | call to source() | test.swift:259:12:259:19 | call to source() [some:0] | provenance | | +| test.swift:259:12:259:19 | call to source() | test.swift:263:13:263:28 | call to optionalSource() | provenance | | +| test.swift:259:12:259:19 | call to source() | test.swift:536:13:536:28 | call to optionalSource() | provenance | | +| test.swift:259:12:259:19 | call to source() | test.swift:563:13:563:28 | call to optionalSource() | provenance | | +| test.swift:259:12:259:19 | call to source() [some:0] | test.swift:263:13:263:28 | call to optionalSource() [some:0] | provenance | | +| test.swift:259:12:259:19 | call to source() [some:0] | test.swift:536:13:536:28 | call to optionalSource() [some:0] | provenance | | +| test.swift:259:12:259:19 | call to source() [some:0] | test.swift:563:13:563:28 | call to optionalSource() [some:0] | provenance | | +| test.swift:263:13:263:28 | call to optionalSource() | test.swift:265:15:265:15 | x | provenance | | +| test.swift:263:13:263:28 | call to optionalSource() | test.swift:267:15:267:16 | ...! | provenance | | +| test.swift:263:13:263:28 | call to optionalSource() | test.swift:271:15:271:16 | ...? | provenance | | +| test.swift:263:13:263:28 | call to optionalSource() | test.swift:274:15:274:20 | ... ??(_:_:) ... | provenance | | +| test.swift:263:13:263:28 | call to optionalSource() | test.swift:275:15:275:27 | ... ??(_:_:) ... | provenance | | +| test.swift:263:13:263:28 | call to optionalSource() | test.swift:279:15:279:31 | ... ? ... : ... | provenance | | +| test.swift:263:13:263:28 | call to optionalSource() | test.swift:280:15:280:38 | ... ? ... : ... | provenance | | +| test.swift:263:13:263:28 | call to optionalSource() | test.swift:285:19:285:19 | z | provenance | | +| test.swift:263:13:263:28 | call to optionalSource() | test.swift:291:16:291:17 | ...? | provenance | | +| test.swift:263:13:263:28 | call to optionalSource() | test.swift:300:15:300:15 | z1 | provenance | | +| test.swift:263:13:263:28 | call to optionalSource() | test.swift:303:15:303:16 | ...! | provenance | | +| test.swift:263:13:263:28 | call to optionalSource() [some:0] | test.swift:267:15:267:15 | x [some:0] | provenance | | +| test.swift:263:13:263:28 | call to optionalSource() [some:0] | test.swift:279:26:279:26 | x [some:0] | provenance | | +| test.swift:263:13:263:28 | call to optionalSource() [some:0] | test.swift:280:26:280:26 | x [some:0] | provenance | | +| test.swift:263:13:263:28 | call to optionalSource() [some:0] | test.swift:284:8:284:12 | let ...? [some:0] | provenance | | +| test.swift:263:13:263:28 | call to optionalSource() [some:0] | test.swift:291:16:291:17 | ...? [some:0] | provenance | | +| test.swift:263:13:263:28 | call to optionalSource() [some:0] | test.swift:298:11:298:15 | let ...? [some:0] | provenance | | +| test.swift:263:13:263:28 | call to optionalSource() [some:0] | test.swift:303:15:303:15 | x [some:0] | provenance | | +| test.swift:263:13:263:28 | call to optionalSource() [some:0] | test.swift:306:13:306:24 | .some(...) [some:0] | provenance | | +| test.swift:263:13:263:28 | call to optionalSource() [some:0] | test.swift:314:10:314:21 | .some(...) [some:0] | provenance | | +| test.swift:267:15:267:15 | x [some:0] | test.swift:267:15:267:16 | ...! | provenance | | +| test.swift:270:15:270:22 | call to source() | test.swift:270:15:270:31 | call to signum() | provenance | | +| test.swift:271:15:271:16 | ...? | test.swift:271:15:271:25 | call to signum() | provenance | | +| test.swift:271:15:271:25 | call to signum() | test.swift:271:15:271:25 | OptionalEvaluationExpr | provenance | | +| test.swift:275:20:275:27 | call to source() | test.swift:275:15:275:27 | ... ??(_:_:) ... | provenance | | +| test.swift:277:20:277:27 | call to source() | test.swift:277:15:277:27 | ... ??(_:_:) ... | provenance | | +| test.swift:279:26:279:26 | x [some:0] | test.swift:279:26:279:27 | ...! | provenance | | +| test.swift:279:26:279:27 | ...! | test.swift:279:15:279:31 | ... ? ... : ... | provenance | | +| test.swift:280:26:280:26 | x [some:0] | test.swift:280:26:280:27 | ...! | provenance | | +| test.swift:280:26:280:27 | ...! | test.swift:280:15:280:38 | ... ? ... : ... | provenance | | +| test.swift:280:31:280:38 | call to source() | test.swift:280:15:280:38 | ... ? ... : ... | provenance | | +| test.swift:282:31:282:38 | call to source() | test.swift:282:15:282:38 | ... ? ... : ... | provenance | | +| test.swift:284:8:284:12 | let ...? [some:0] | test.swift:284:12:284:12 | z | provenance | | +| test.swift:284:12:284:12 | z | test.swift:285:19:285:19 | z | provenance | | +| test.swift:291:8:291:12 | let ...? [some:0] | test.swift:291:12:291:12 | z | provenance | | +| test.swift:291:12:291:12 | z | test.swift:292:19:292:19 | z | provenance | | +| test.swift:291:16:291:17 | ...? | test.swift:291:16:291:26 | call to signum() | provenance | | +| test.swift:291:16:291:17 | ...? [some:0] | test.swift:291:16:291:26 | call to signum() [some:0] | provenance | | +| test.swift:291:16:291:26 | call to signum() | test.swift:291:16:291:26 | call to signum() [some:0] | provenance | | +| test.swift:291:16:291:26 | call to signum() | test.swift:292:19:292:19 | z | provenance | | +| test.swift:291:16:291:26 | call to signum() [some:0] | test.swift:291:8:291:12 | let ...? [some:0] | provenance | | +| test.swift:298:11:298:15 | let ...? [some:0] | test.swift:298:15:298:15 | z1 | provenance | | +| test.swift:298:15:298:15 | z1 | test.swift:300:15:300:15 | z1 | provenance | | +| test.swift:303:15:303:15 | x [some:0] | test.swift:303:15:303:16 | ...! | provenance | | +| test.swift:303:15:303:16 | ...! | test.swift:303:15:303:25 | call to signum() | provenance | | +| test.swift:306:13:306:24 | .some(...) [some:0] | test.swift:306:23:306:23 | z | provenance | | +| test.swift:306:23:306:23 | z | test.swift:307:19:307:19 | z | provenance | | +| test.swift:314:10:314:21 | .some(...) [some:0] | test.swift:314:20:314:20 | z | provenance | | +| test.swift:314:20:314:20 | z | test.swift:315:19:315:19 | z | provenance | | +| test.swift:331:14:331:26 | (...) [Tuple element at index 1] | test.swift:335:15:335:15 | t1 [Tuple element at index 1] | provenance | | +| test.swift:331:18:331:25 | call to source() | test.swift:331:14:331:26 | (...) [Tuple element at index 1] | provenance | | +| test.swift:335:15:335:15 | t1 [Tuple element at index 1] | test.swift:335:15:335:18 | .1 | provenance | | +| test.swift:343:5:343:5 | [post] t1 [Tuple element at index 0] | test.swift:346:15:346:15 | t1 [Tuple element at index 0] | provenance | | +| test.swift:343:12:343:19 | call to source() | test.swift:343:5:343:5 | [post] t1 [Tuple element at index 0] | provenance | | +| test.swift:346:15:346:15 | t1 [Tuple element at index 0] | test.swift:346:15:346:18 | .0 | provenance | | +| test.swift:351:14:351:45 | (...) [Tuple element at index 0] | test.swift:353:9:353:17 | (...) [Tuple element at index 0] | provenance | | +| test.swift:351:14:351:45 | (...) [Tuple element at index 0] | test.swift:356:15:356:15 | t1 [Tuple element at index 0] | provenance | | +| test.swift:351:14:351:45 | (...) [Tuple element at index 0] | test.swift:360:15:360:15 | t2 [Tuple element at index 0] | provenance | | +| test.swift:351:14:351:45 | (...) [Tuple element at index 1] | test.swift:353:9:353:17 | (...) [Tuple element at index 1] | provenance | | +| test.swift:351:14:351:45 | (...) [Tuple element at index 1] | test.swift:357:15:357:15 | t1 [Tuple element at index 1] | provenance | | +| test.swift:351:14:351:45 | (...) [Tuple element at index 1] | test.swift:361:15:361:15 | t2 [Tuple element at index 1] | provenance | | +| test.swift:351:18:351:25 | call to source() | test.swift:351:14:351:45 | (...) [Tuple element at index 0] | provenance | | +| test.swift:351:31:351:38 | call to source() | test.swift:351:14:351:45 | (...) [Tuple element at index 1] | provenance | | +| test.swift:353:9:353:17 | (...) [Tuple element at index 0] | test.swift:353:10:353:10 | a | provenance | | +| test.swift:353:9:353:17 | (...) [Tuple element at index 1] | test.swift:353:13:353:13 | b | provenance | | +| test.swift:353:10:353:10 | a | test.swift:363:15:363:15 | a | provenance | | +| test.swift:353:13:353:13 | b | test.swift:364:15:364:15 | b | provenance | | +| test.swift:356:15:356:15 | t1 [Tuple element at index 0] | test.swift:356:15:356:18 | .0 | provenance | | +| test.swift:357:15:357:15 | t1 [Tuple element at index 1] | test.swift:357:15:357:18 | .1 | provenance | | +| test.swift:360:15:360:15 | t2 [Tuple element at index 0] | test.swift:360:15:360:18 | .0 | provenance | | +| test.swift:361:15:361:15 | t2 [Tuple element at index 1] | test.swift:361:15:361:18 | .1 | provenance | | +| test.swift:368:22:368:36 | t [Tuple element at index 1] | test.swift:369:13:369:13 | t [Tuple element at index 1] | provenance | | +| test.swift:369:13:369:13 | t [Tuple element at index 1] | test.swift:369:13:369:15 | .1 | provenance | | +| test.swift:369:13:369:15 | .1 | test.swift:369:12:369:19 | (...) [Tuple element at index 0] | provenance | | +| test.swift:375:14:375:26 | (...) [Tuple element at index 1] | test.swift:376:30:376:30 | t1 [Tuple element at index 1] | provenance | | +| test.swift:375:14:375:26 | (...) [Tuple element at index 1] | test.swift:377:30:377:30 | t1 [Tuple element at index 1] | provenance | | +| test.swift:375:14:375:26 | (...) [Tuple element at index 1] | test.swift:380:15:380:15 | t1 [Tuple element at index 1] | provenance | | +| test.swift:375:18:375:25 | call to source() | test.swift:375:14:375:26 | (...) [Tuple element at index 1] | provenance | | +| test.swift:376:14:376:32 | call to tupleShiftLeft1(_:) [Tuple element at index 0] | test.swift:381:15:381:15 | t2 [Tuple element at index 0] | provenance | | +| test.swift:376:30:376:30 | t1 [Tuple element at index 1] | test.swift:368:22:368:36 | t [Tuple element at index 1] | provenance | | +| test.swift:376:30:376:30 | t1 [Tuple element at index 1] | test.swift:376:14:376:32 | call to tupleShiftLeft1(_:) [Tuple element at index 0] | provenance | | +| test.swift:377:14:377:32 | call to tupleShiftLeft2(_:) [Tuple element at index 0] | test.swift:383:15:383:15 | t3 [Tuple element at index 0] | provenance | | +| test.swift:377:30:377:30 | t1 [Tuple element at index 1] | test.swift:377:14:377:32 | call to tupleShiftLeft2(_:) [Tuple element at index 0] | provenance | | +| test.swift:380:15:380:15 | t1 [Tuple element at index 1] | test.swift:380:15:380:18 | .1 | provenance | | +| test.swift:381:15:381:15 | t2 [Tuple element at index 0] | test.swift:381:15:381:18 | .0 | provenance | | +| test.swift:383:15:383:15 | t3 [Tuple element at index 0] | test.swift:383:15:383:18 | .0 | provenance | | +| test.swift:394:16:394:21 | v | test.swift:394:61:394:61 | v | provenance | | +| test.swift:394:61:394:61 | v | test.swift:394:45:394:62 | call to ... [mySingle:0] | provenance | | +| test.swift:396:18:396:23 | v | test.swift:396:59:396:59 | v | provenance | | +| test.swift:396:59:396:59 | v | test.swift:396:45:396:60 | call to ... [some:0] | provenance | | +| test.swift:422:9:422:27 | call to ... [mySingle:0] | test.swift:427:10:427:25 | .mySingle(...) [mySingle:0] | provenance | | +| test.swift:422:9:422:27 | call to ... [mySingle:0] | test.swift:436:13:436:28 | .mySingle(...) [mySingle:0] | provenance | | +| test.swift:422:19:422:26 | call to source() | test.swift:422:9:422:27 | call to ... [mySingle:0] | provenance | | +| test.swift:427:10:427:25 | .mySingle(...) [mySingle:0] | test.swift:427:24:427:24 | a | provenance | | +| test.swift:427:24:427:24 | a | test.swift:428:19:428:19 | a | provenance | | +| test.swift:436:13:436:28 | .mySingle(...) [mySingle:0] | test.swift:436:27:436:27 | x | provenance | | +| test.swift:436:27:436:27 | x | test.swift:437:19:437:19 | x | provenance | | +| test.swift:444:9:444:34 | call to ... [myPair:1] | test.swift:451:10:451:30 | .myPair(...) [myPair:1] | provenance | | +| test.swift:444:9:444:34 | call to ... [myPair:1] | test.swift:461:13:461:33 | .myPair(...) [myPair:1] | provenance | | +| test.swift:444:9:444:34 | call to ... [myPair:1] | test.swift:466:33:466:33 | a [myPair:1] | provenance | | +| test.swift:444:9:444:34 | call to ... [myPair:1] | test.swift:495:13:495:13 | a [myPair:1] | provenance | | +| test.swift:444:26:444:33 | call to source() | test.swift:444:9:444:34 | call to ... [myPair:1] | provenance | | +| test.swift:451:10:451:30 | .myPair(...) [myPair:1] | test.swift:451:29:451:29 | b | provenance | | +| test.swift:451:29:451:29 | b | test.swift:453:19:453:19 | b | provenance | | +| test.swift:461:13:461:33 | .myPair(...) [myPair:1] | test.swift:461:32:461:32 | y | provenance | | +| test.swift:461:32:461:32 | y | test.swift:463:19:463:19 | y | provenance | | +| test.swift:466:21:466:34 | call to ... [myCons:1, myPair:1] | test.swift:476:14:476:38 | .myCons(...) [myCons:1, myPair:1] | provenance | | +| test.swift:466:21:466:34 | call to ... [myCons:1, myPair:1] | test.swift:491:17:491:41 | .myCons(...) [myCons:1, myPair:1] | provenance | | +| test.swift:466:21:466:34 | call to ... [myCons:1, myPair:1] | test.swift:495:16:495:16 | b [myCons:1, myPair:1] | provenance | | +| test.swift:466:33:466:33 | a [myPair:1] | test.swift:466:21:466:34 | call to ... [myCons:1, myPair:1] | provenance | | +| test.swift:476:14:476:38 | .myCons(...) [myCons:1, myPair:1] | test.swift:476:25:476:37 | .myPair(...) [myPair:1] | provenance | | +| test.swift:476:25:476:37 | .myPair(...) [myPair:1] | test.swift:476:36:476:36 | c | provenance | | +| test.swift:476:36:476:36 | c | test.swift:479:19:479:19 | c | provenance | | +| test.swift:487:13:487:39 | .myPair(...) [myPair:0] | test.swift:487:31:487:31 | x | provenance | | +| test.swift:487:31:487:31 | x | test.swift:488:19:488:19 | x | provenance | | +| test.swift:487:43:487:62 | call to ... [myPair:0] | test.swift:487:13:487:39 | .myPair(...) [myPair:0] | provenance | | +| test.swift:487:51:487:58 | call to source() | test.swift:487:43:487:62 | call to ... [myPair:0] | provenance | | +| test.swift:491:17:491:41 | .myCons(...) [myCons:1, myPair:1] | test.swift:491:28:491:40 | .myPair(...) [myPair:1] | provenance | | +| test.swift:491:28:491:40 | .myPair(...) [myPair:1] | test.swift:491:39:491:39 | c | provenance | | +| test.swift:491:39:491:39 | c | test.swift:492:19:492:19 | c | provenance | | +| test.swift:495:12:495:17 | (...) [Tuple element at index 0, myPair:1] | test.swift:496:14:496:55 | (...) [Tuple element at index 0, myPair:1] | provenance | | +| test.swift:495:12:495:17 | (...) [Tuple element at index 1, myCons:1, myPair:1] | test.swift:496:14:496:55 | (...) [Tuple element at index 1, myCons:1, myPair:1] | provenance | | +| test.swift:495:13:495:13 | a [myPair:1] | test.swift:495:12:495:17 | (...) [Tuple element at index 0, myPair:1] | provenance | | +| test.swift:495:16:495:16 | b [myCons:1, myPair:1] | test.swift:495:12:495:17 | (...) [Tuple element at index 1, myCons:1, myPair:1] | provenance | | +| test.swift:496:14:496:55 | (...) [Tuple element at index 0, myPair:1] | test.swift:496:15:496:27 | .myPair(...) [myPair:1] | provenance | | +| test.swift:496:14:496:55 | (...) [Tuple element at index 1, myCons:1, myPair:1] | test.swift:496:30:496:54 | .myCons(...) [myCons:1, myPair:1] | provenance | | +| test.swift:496:15:496:27 | .myPair(...) [myPair:1] | test.swift:496:26:496:26 | b | provenance | | +| test.swift:496:26:496:26 | b | test.swift:498:19:498:19 | b | provenance | | +| test.swift:496:30:496:54 | .myCons(...) [myCons:1, myPair:1] | test.swift:496:41:496:53 | .myPair(...) [myPair:1] | provenance | | +| test.swift:496:41:496:53 | .myPair(...) [myPair:1] | test.swift:496:52:496:52 | e | provenance | | +| test.swift:496:52:496:52 | e | test.swift:501:19:501:19 | e | provenance | | +| test.swift:507:14:507:38 | call to ... [mySingle:0] | test.swift:513:13:513:35 | .mySingle(...) [mySingle:0] | provenance | | +| test.swift:507:30:507:37 | call to source() | test.swift:507:14:507:38 | call to ... [mySingle:0] | provenance | | +| test.swift:509:14:509:32 | call to mkMyEnum1(_:) [mySingle:0] | test.swift:515:13:515:35 | .mySingle(...) [mySingle:0] | provenance | | +| test.swift:509:24:509:31 | call to source() | test.swift:394:16:394:21 | v | provenance | | +| test.swift:509:24:509:31 | call to source() | test.swift:509:14:509:32 | call to mkMyEnum1(_:) [mySingle:0] | provenance | | +| test.swift:511:14:511:32 | call to mkMyEnum2(_:) [mySingle:0] | test.swift:517:13:517:35 | .mySingle(...) [mySingle:0] | provenance | | +| test.swift:511:24:511:31 | call to source() | test.swift:511:14:511:32 | call to mkMyEnum2(_:) [mySingle:0] | provenance | | +| test.swift:513:13:513:35 | .mySingle(...) [mySingle:0] | test.swift:513:33:513:33 | d2 | provenance | | +| test.swift:513:33:513:33 | d2 | test.swift:513:54:513:54 | d2 | provenance | | +| test.swift:515:13:515:35 | .mySingle(...) [mySingle:0] | test.swift:515:33:515:33 | d4 | provenance | | +| test.swift:515:33:515:33 | d4 | test.swift:515:54:515:54 | d4 | provenance | | +| test.swift:517:13:517:35 | .mySingle(...) [mySingle:0] | test.swift:517:33:517:33 | d6 | provenance | | +| test.swift:517:33:517:33 | d6 | test.swift:517:54:517:54 | d6 | provenance | | +| test.swift:520:14:520:36 | call to ... [some:0] | test.swift:526:15:526:15 | e2 [some:0] | provenance | | +| test.swift:520:28:520:35 | call to source() | test.swift:520:14:520:36 | call to ... [some:0] | provenance | | +| test.swift:522:14:522:34 | call to mkOptional1(_:) [some:0] | test.swift:528:15:528:15 | e4 [some:0] | provenance | | +| test.swift:522:26:522:33 | call to source() | test.swift:396:18:396:23 | v | provenance | | +| test.swift:522:26:522:33 | call to source() | test.swift:522:14:522:34 | call to mkOptional1(_:) [some:0] | provenance | | +| test.swift:524:14:524:34 | call to mkOptional2(_:) [some:0] | test.swift:530:15:530:15 | e6 [some:0] | provenance | | +| test.swift:524:26:524:33 | call to source() | test.swift:524:14:524:34 | call to mkOptional2(_:) [some:0] | provenance | | +| test.swift:526:15:526:15 | e2 [some:0] | test.swift:526:15:526:17 | ...! | provenance | | +| test.swift:528:15:528:15 | e4 [some:0] | test.swift:528:15:528:17 | ...! | provenance | | +| test.swift:530:15:530:15 | e6 [some:0] | test.swift:530:15:530:17 | ...! | provenance | | +| test.swift:536:13:536:28 | call to optionalSource() | test.swift:539:19:539:19 | a | provenance | | +| test.swift:536:13:536:28 | call to optionalSource() [some:0] | test.swift:538:8:538:12 | let ...? [some:0] | provenance | | +| test.swift:536:13:536:28 | call to optionalSource() [some:0] | test.swift:543:19:543:19 | x [some:0] | provenance | | +| test.swift:538:8:538:12 | let ...? [some:0] | test.swift:538:12:538:12 | a | provenance | | +| test.swift:538:12:538:12 | a | test.swift:539:19:539:19 | a | provenance | | +| test.swift:543:18:543:23 | (...) [Tuple element at index 0, some:0] | test.swift:545:10:545:37 | (...) [Tuple element at index 0, some:0] | provenance | | +| test.swift:543:19:543:19 | x [some:0] | test.swift:543:18:543:23 | (...) [Tuple element at index 0, some:0] | provenance | | +| test.swift:545:10:545:37 | (...) [Tuple element at index 0, some:0] | test.swift:545:11:545:22 | .some(...) [some:0] | provenance | | +| test.swift:545:11:545:22 | .some(...) [some:0] | test.swift:545:21:545:21 | a | provenance | | +| test.swift:545:21:545:21 | a | test.swift:546:19:546:19 | a | provenance | | +| test.swift:559:9:559:9 | self [x, some:0] | file://:0:0:0:0 | self [x, some:0] | provenance | | +| test.swift:559:9:559:9 | self [x] | file://:0:0:0:0 | self [x] | provenance | | +| test.swift:559:9:559:9 | value | file://:0:0:0:0 | value | provenance | | +| test.swift:559:9:559:9 | value [some:0] | file://:0:0:0:0 | value [some:0] | provenance | | +| test.swift:563:13:563:28 | call to optionalSource() | test.swift:565:12:565:12 | x | provenance | | +| test.swift:563:13:563:28 | call to optionalSource() [some:0] | test.swift:565:12:565:12 | x [some:0] | provenance | | +| test.swift:565:5:565:5 | [post] cx [x, some:0] | test.swift:569:20:569:20 | cx [x, some:0] | provenance | | +| test.swift:565:5:565:5 | [post] cx [x] | test.swift:569:20:569:20 | cx [x] | provenance | | +| test.swift:565:12:565:12 | x | test.swift:559:9:559:9 | value | provenance | | +| test.swift:565:12:565:12 | x | test.swift:565:5:565:5 | [post] cx [x] | provenance | | +| test.swift:565:12:565:12 | x [some:0] | test.swift:559:9:559:9 | value [some:0] | provenance | | +| test.swift:565:12:565:12 | x [some:0] | test.swift:565:5:565:5 | [post] cx [x, some:0] | provenance | | +| test.swift:569:11:569:15 | let ...? [some:0] | test.swift:569:15:569:15 | z1 | provenance | | +| test.swift:569:15:569:15 | z1 | test.swift:570:15:570:15 | z1 | provenance | | +| test.swift:569:20:569:20 | cx [x, some:0] | test.swift:559:9:559:9 | self [x, some:0] | provenance | | +| test.swift:569:20:569:20 | cx [x, some:0] | test.swift:569:20:569:23 | .x [some:0] | provenance | | +| test.swift:569:20:569:20 | cx [x] | test.swift:559:9:559:9 | self [x] | provenance | | +| test.swift:569:20:569:20 | cx [x] | test.swift:569:20:569:23 | .x | provenance | | +| test.swift:569:20:569:23 | .x | test.swift:570:15:570:15 | z1 | provenance | | +| test.swift:569:20:569:23 | .x [some:0] | test.swift:569:11:569:15 | let ...? [some:0] | provenance | | +| test.swift:576:14:576:21 | call to source() | test.swift:576:13:576:21 | call to +(_:) | provenance | | +| test.swift:585:9:585:9 | self [str] | file://:0:0:0:0 | self [str] | provenance | | +| test.swift:586:10:586:13 | s | test.swift:587:13:587:13 | s | provenance | | +| test.swift:587:7:587:7 | [post] self [str] | test.swift:586:5:588:5 | self[return] [str] | provenance | | +| test.swift:587:13:587:13 | s | test.swift:587:7:587:7 | [post] self [str] | provenance | | +| test.swift:592:17:595:5 | self[return] [str] | test.swift:600:13:600:41 | call to MyClass.init(contentsOfFile:) [str] | provenance | | +| test.swift:593:7:593:7 | [post] self [str] | test.swift:592:17:595:5 | self[return] [str] | provenance | | +| test.swift:593:7:593:7 | [post] self [str] | test.swift:594:17:594:17 | self [str] | provenance | | +| test.swift:593:20:593:28 | call to source3() | test.swift:586:10:586:13 | s | provenance | | +| test.swift:593:20:593:28 | call to source3() | test.swift:593:7:593:7 | [post] self [str] | provenance | | +| test.swift:594:17:594:17 | self [str] | test.swift:594:17:594:17 | .str | provenance | | +| test.swift:599:13:599:33 | call to MyClass.init(s:) [str] | test.swift:585:9:585:9 | self [str] | provenance | | +| test.swift:599:13:599:33 | call to MyClass.init(s:) [str] | test.swift:599:13:599:35 | .str | provenance | | +| test.swift:599:24:599:32 | call to source3() | test.swift:586:10:586:13 | s | provenance | | +| test.swift:599:24:599:32 | call to source3() | test.swift:599:13:599:33 | call to MyClass.init(s:) [str] | provenance | | +| test.swift:600:13:600:41 | call to MyClass.init(contentsOfFile:) [str] | test.swift:585:9:585:9 | self [str] | provenance | | +| test.swift:600:13:600:41 | call to MyClass.init(contentsOfFile:) [str] | test.swift:600:13:600:43 | .str | provenance | | +| test.swift:615:7:615:7 | self [x] | file://:0:0:0:0 | self [x] | provenance | | +| test.swift:617:8:617:11 | x | test.swift:618:14:618:14 | x | provenance | | +| test.swift:618:5:618:5 | [post] self [x] | test.swift:617:3:619:3 | self[return] [x] | provenance | | +| test.swift:618:14:618:14 | x | test.swift:618:5:618:5 | [post] self [x] | provenance | | +| test.swift:623:11:623:24 | call to S.init(x:) [x] | test.swift:625:13:625:13 | s [x] | provenance | | +| test.swift:623:11:623:24 | call to S.init(x:) [x] | test.swift:628:13:628:13 | s [x] | provenance | | +| test.swift:623:16:623:23 | call to source() | test.swift:617:8:617:11 | x | provenance | | +| test.swift:623:16:623:23 | call to source() | test.swift:623:11:623:24 | call to S.init(x:) [x] | provenance | | +| test.swift:624:11:624:14 | enter #keyPath(...) [x] | test.swift:624:14:624:14 | KeyPathComponent | provenance | | +| test.swift:624:14:624:14 | KeyPathComponent | test.swift:624:11:624:14 | exit #keyPath(...) | provenance | | +| test.swift:625:13:625:13 | s [x] | test.swift:624:11:624:14 | enter #keyPath(...) [x] | provenance | | +| test.swift:625:13:625:13 | s [x] | test.swift:625:13:625:25 | \\...[...] | provenance | | +| test.swift:627:36:627:38 | enter #keyPath(...) [x] | test.swift:627:38:627:38 | KeyPathComponent | provenance | | +| test.swift:627:38:627:38 | KeyPathComponent | test.swift:627:36:627:38 | exit #keyPath(...) | provenance | | +| test.swift:628:13:628:13 | s [x] | test.swift:627:36:627:38 | enter #keyPath(...) [x] | provenance | | +| test.swift:628:13:628:13 | s [x] | test.swift:628:13:628:32 | \\...[...] | provenance | | +| test.swift:632:7:632:7 | self [s, x] | file://:0:0:0:0 | self [s, x] | provenance | | +| test.swift:634:8:634:11 | s [x] | test.swift:635:14:635:14 | s [x] | provenance | | +| test.swift:635:5:635:5 | [post] self [s, x] | test.swift:634:3:636:3 | self[return] [s, x] | provenance | | +| test.swift:635:14:635:14 | s [x] | test.swift:635:5:635:5 | [post] self [s, x] | provenance | | +| test.swift:640:11:640:24 | call to S.init(x:) [x] | test.swift:641:18:641:18 | s [x] | provenance | | +| test.swift:640:16:640:23 | call to source() | test.swift:617:8:617:11 | x | provenance | | +| test.swift:640:16:640:23 | call to source() | test.swift:640:11:640:24 | call to S.init(x:) [x] | provenance | | +| test.swift:641:12:641:19 | call to S2.init(s:) [s, x] | test.swift:643:13:643:13 | s2 [s, x] | provenance | | +| test.swift:641:18:641:18 | s [x] | test.swift:634:8:634:11 | s [x] | provenance | | +| test.swift:641:18:641:18 | s [x] | test.swift:641:12:641:19 | call to S2.init(s:) [s, x] | provenance | | +| test.swift:642:11:642:17 | enter #keyPath(...) [s, x] | test.swift:642:15:642:15 | KeyPathComponent [x] | provenance | | +| test.swift:642:15:642:15 | KeyPathComponent [x] | test.swift:642:17:642:17 | KeyPathComponent | provenance | | +| test.swift:642:17:642:17 | KeyPathComponent | test.swift:642:11:642:17 | exit #keyPath(...) | provenance | | +| test.swift:643:13:643:13 | s2 [s, x] | test.swift:642:11:642:17 | enter #keyPath(...) [s, x] | provenance | | +| test.swift:643:13:643:13 | s2 [s, x] | test.swift:643:13:643:26 | \\...[...] | provenance | | +| test.swift:647:17:647:26 | [...] [Collection element] | test.swift:649:15:649:15 | array [Collection element] | provenance | | +| test.swift:647:18:647:25 | call to source() | test.swift:647:17:647:26 | [...] [Collection element] | provenance | | +| test.swift:648:13:648:22 | enter #keyPath(...) [Collection element] | test.swift:648:20:648:22 | KeyPathComponent | provenance | | +| test.swift:648:20:648:22 | KeyPathComponent | test.swift:648:13:648:22 | exit #keyPath(...) | provenance | | +| test.swift:649:15:649:15 | array [Collection element] | test.swift:648:13:648:22 | enter #keyPath(...) [Collection element] | provenance | | +| test.swift:649:15:649:15 | array [Collection element] | test.swift:649:15:649:31 | \\...[...] | provenance | | +| test.swift:655:8:655:12 | s [some:0, x] | test.swift:656:14:656:14 | s [some:0, x] | provenance | | +| test.swift:656:5:656:5 | [post] self [s, some:0, x] | test.swift:655:3:657:3 | self[return] [s, some:0, x] | provenance | | +| test.swift:656:14:656:14 | s [some:0, x] | test.swift:656:5:656:5 | [post] self [s, some:0, x] | provenance | | +| test.swift:661:13:661:26 | call to S.init(x:) [x] | test.swift:662:29:662:29 | s [x] | provenance | | +| test.swift:661:18:661:25 | call to source() | test.swift:617:8:617:11 | x | provenance | | +| test.swift:661:18:661:25 | call to source() | test.swift:661:13:661:26 | call to S.init(x:) [x] | provenance | | +| test.swift:662:14:662:30 | call to S2_Optional.init(s:) [s, some:0, x] | test.swift:664:15:664:15 | s2 [s, some:0, x] | provenance | | +| test.swift:662:29:662:29 | s [some:0, x] | test.swift:655:8:655:12 | s [some:0, x] | provenance | | +| test.swift:662:29:662:29 | s [some:0, x] | test.swift:662:14:662:30 | call to S2_Optional.init(s:) [s, some:0, x] | provenance | | +| test.swift:662:29:662:29 | s [x] | test.swift:662:29:662:29 | s [some:0, x] | provenance | | +| test.swift:663:13:663:29 | enter #keyPath(...) [s, some:0, x] | test.swift:663:26:663:26 | KeyPathComponent [some:0, x] | provenance | | +| test.swift:663:26:663:26 | KeyPathComponent [some:0, x] | test.swift:663:27:663:27 | KeyPathComponent [x] | provenance | | +| test.swift:663:27:663:27 | KeyPathComponent [x] | test.swift:663:29:663:29 | KeyPathComponent | provenance | | +| test.swift:663:29:663:29 | KeyPathComponent | file://:0:0:0:0 | KeyPathComponent [some:0] | provenance | | +| test.swift:664:15:664:15 | s2 [s, some:0, x] | test.swift:663:13:663:29 | enter #keyPath(...) [s, some:0, x] | provenance | | +| test.swift:664:15:664:15 | s2 [s, some:0, x] | test.swift:664:15:664:28 | \\...[...] [some:0] | provenance | | +| test.swift:664:15:664:28 | \\...[...] [some:0] | test.swift:664:15:664:29 | ...! | provenance | | +| test.swift:668:13:668:20 | call to source() | test.swift:676:15:676:15 | y | provenance | | +| test.swift:678:9:678:16 | call to source() | test.swift:680:11:680:11 | x | provenance | | +| test.swift:678:9:678:16 | call to source() | test.swift:681:15:681:15 | x | provenance | | +| test.swift:680:11:680:11 | x | test.swift:680:15:680:15 | [post] y | provenance | | +| test.swift:680:15:680:15 | [post] y | test.swift:682:15:682:15 | y | provenance | | +| test.swift:688:5:688:5 | [post] arr1 [Collection element] | test.swift:689:15:689:15 | arr1 [Collection element] | provenance | | +| test.swift:688:15:688:22 | call to source() | test.swift:688:5:688:5 | [post] arr1 [Collection element] | provenance | | +| test.swift:689:15:689:15 | arr1 [Collection element] | test.swift:689:15:689:21 | ...[...] | provenance | | +| test.swift:692:16:692:25 | [...] [Collection element] | test.swift:693:15:693:15 | arr2 [Collection element] | provenance | | +| test.swift:692:17:692:24 | call to source() | test.swift:692:16:692:25 | [...] [Collection element] | provenance | | +| test.swift:693:15:693:15 | arr2 [Collection element] | test.swift:693:15:693:21 | ...[...] | provenance | | +| test.swift:695:18:695:29 | [...] [Collection element, Collection element] | test.swift:697:15:697:15 | matrix [Collection element, Collection element] | provenance | | +| test.swift:695:19:695:28 | [...] [Collection element] | test.swift:695:18:695:29 | [...] [Collection element, Collection element] | provenance | | +| test.swift:695:20:695:27 | call to source() | test.swift:695:19:695:28 | [...] [Collection element] | provenance | | +| test.swift:697:15:697:15 | matrix [Collection element, Collection element] | test.swift:697:15:697:23 | ...[...] [Collection element] | provenance | | +| test.swift:697:15:697:23 | ...[...] [Collection element] | test.swift:697:15:697:26 | ...[...] | provenance | | +| test.swift:700:5:700:5 | [post] matrix2 [Collection element, Collection element] | test.swift:701:15:701:15 | matrix2 [Collection element, Collection element] | provenance | | +| test.swift:700:5:700:14 | [post] getter for ...[...] [Collection element] | test.swift:700:5:700:5 | [post] matrix2 [Collection element, Collection element] | provenance | | +| test.swift:700:21:700:28 | call to source() | test.swift:700:5:700:14 | [post] getter for ...[...] [Collection element] | provenance | | +| test.swift:701:15:701:15 | matrix2 [Collection element, Collection element] | test.swift:701:15:701:24 | ...[...] [Collection element] | provenance | | +| test.swift:701:15:701:24 | ...[...] [Collection element] | test.swift:701:15:701:27 | ...[...] | provenance | | +| test.swift:708:16:708:51 | call to Array.init(repeating:count:) [Collection element] | test.swift:709:15:709:15 | arr5 [Collection element] | provenance | | +| test.swift:708:33:708:40 | call to source() | test.swift:708:16:708:51 | call to Array.init(repeating:count:) [Collection element] | provenance | | +| test.swift:709:15:709:15 | arr5 [Collection element] | test.swift:709:15:709:21 | ...[...] | provenance | | +| test.swift:712:5:712:5 | [post] arr6 [Collection element] | test.swift:713:15:713:15 | arr6 [Collection element] | provenance | | +| test.swift:712:17:712:24 | call to source() | test.swift:712:5:712:5 | [post] arr6 [Collection element] | provenance | | +| test.swift:713:15:713:15 | arr6 [Collection element] | test.swift:713:15:713:21 | ...[...] | provenance | | +| test.swift:715:16:715:25 | [...] [Collection element] | test.swift:716:15:716:15 | arr7 [Collection element] | provenance | | +| test.swift:715:17:715:24 | call to source() | test.swift:715:16:715:25 | [...] [Collection element] | provenance | | +| test.swift:716:15:716:15 | arr7 [Collection element] | test.swift:716:15:716:34 | call to randomElement() [some:0] | provenance | | +| test.swift:716:15:716:34 | call to randomElement() [some:0] | test.swift:716:15:716:35 | ...! | provenance | | +| test.swift:722:5:722:5 | [post] set1 [Collection element] | test.swift:723:15:723:15 | set1 [Collection element] | provenance | | +| test.swift:722:17:722:24 | call to source() | test.swift:722:5:722:5 | [post] set1 [Collection element] | provenance | | +| test.swift:723:15:723:15 | set1 [Collection element] | test.swift:723:15:723:34 | call to randomElement() [some:0] | provenance | | +| test.swift:723:15:723:34 | call to randomElement() [some:0] | test.swift:723:15:723:35 | ...! | provenance | | +| test.swift:725:16:725:30 | call to Set.init(_:) [Collection element] | test.swift:726:15:726:15 | set2 [Collection element] | provenance | | +| test.swift:725:20:725:29 | [...] [Collection element] | test.swift:725:16:725:30 | call to Set.init(_:) [Collection element] | provenance | | +| test.swift:725:21:725:28 | call to source() | test.swift:725:20:725:29 | [...] [Collection element] | provenance | | +| test.swift:726:15:726:15 | set2 [Collection element] | test.swift:726:15:726:34 | call to randomElement() [some:0] | provenance | | +| test.swift:726:15:726:34 | call to randomElement() [some:0] | test.swift:726:15:726:35 | ...! | provenance | | +| test.swift:731:9:731:9 | self [v2, some:0] | file://:0:0:0:0 | self [v2, some:0] | provenance | | +| test.swift:731:9:731:9 | self [v2] | file://:0:0:0:0 | self [v2] | provenance | | +| test.swift:731:9:731:9 | value | file://:0:0:0:0 | value | provenance | | +| test.swift:731:9:731:9 | value [some:0] | file://:0:0:0:0 | value [some:0] | provenance | | +| test.swift:732:9:732:9 | self [v3] | file://:0:0:0:0 | self [v3] | provenance | | +| test.swift:732:9:732:9 | value | file://:0:0:0:0 | value | provenance | | +| test.swift:742:5:742:5 | v1 [some:0] | test.swift:752:15:752:15 | v1 [some:0] | provenance | | +| test.swift:742:11:742:18 | call to source() | test.swift:742:5:742:5 | v1 [some:0] | provenance | | +| test.swift:743:10:743:17 | call to source() | test.swift:743:10:743:17 | call to source() [some:0] | provenance | | +| test.swift:743:10:743:17 | call to source() | test.swift:753:15:753:17 | ...! | provenance | | +| test.swift:743:10:743:17 | call to source() [some:0] | test.swift:753:15:753:15 | v2 [some:0] | provenance | | +| test.swift:744:10:744:17 | call to source() | test.swift:754:15:754:15 | v3 | provenance | | +| test.swift:746:5:746:5 | [post] mo1 [v2, some:0] | test.swift:747:5:747:5 | mo1 [v2, some:0] | provenance | | +| test.swift:746:5:746:5 | [post] mo1 [v2] | test.swift:747:5:747:5 | mo1 [v2] | provenance | | +| test.swift:746:14:746:21 | call to source() | test.swift:731:9:731:9 | value | provenance | | +| test.swift:746:14:746:21 | call to source() | test.swift:746:5:746:5 | [post] mo1 [v2] | provenance | | +| test.swift:746:14:746:21 | call to source() | test.swift:746:14:746:21 | call to source() [some:0] | provenance | | +| test.swift:746:14:746:21 | call to source() [some:0] | test.swift:731:9:731:9 | value [some:0] | provenance | | +| test.swift:746:14:746:21 | call to source() [some:0] | test.swift:746:5:746:5 | [post] mo1 [v2, some:0] | provenance | | +| test.swift:747:5:747:5 | [post] mo1 [v3] | test.swift:757:15:757:15 | mo1 [v3] | provenance | | +| test.swift:747:5:747:5 | mo1 [v2, some:0] | test.swift:756:15:756:15 | mo1 [v2, some:0] | provenance | | +| test.swift:747:5:747:5 | mo1 [v2] | test.swift:756:15:756:15 | mo1 [v2] | provenance | | +| test.swift:747:14:747:21 | call to source() | test.swift:732:9:732:9 | value | provenance | | +| test.swift:747:14:747:21 | call to source() | test.swift:747:5:747:5 | [post] mo1 [v3] | provenance | | +| test.swift:752:15:752:15 | v1 [some:0] | test.swift:752:15:752:17 | ...! | provenance | | +| test.swift:753:15:753:15 | v2 [some:0] | test.swift:753:15:753:17 | ...! | provenance | | +| test.swift:756:15:756:15 | mo1 [v2, some:0] | test.swift:731:9:731:9 | self [v2, some:0] | provenance | | +| test.swift:756:15:756:15 | mo1 [v2, some:0] | test.swift:756:15:756:19 | .v2 [some:0] | provenance | | +| test.swift:756:15:756:15 | mo1 [v2] | test.swift:731:9:731:9 | self [v2] | provenance | | +| test.swift:756:15:756:15 | mo1 [v2] | test.swift:756:15:756:19 | .v2 | provenance | | +| test.swift:756:15:756:19 | .v2 | test.swift:756:15:756:21 | ...! | provenance | | +| test.swift:756:15:756:19 | .v2 [some:0] | test.swift:756:15:756:21 | ...! | provenance | | +| test.swift:757:15:757:15 | mo1 [v3] | test.swift:732:9:732:9 | self [v3] | provenance | | +| test.swift:757:15:757:15 | mo1 [v3] | test.swift:757:15:757:19 | .v3 | provenance | | +| test.swift:764:13:764:26 | call to S.init(x:) [x] | test.swift:765:29:765:29 | s [x] | provenance | | +| test.swift:764:18:764:25 | call to source() | test.swift:617:8:617:11 | x | provenance | | +| test.swift:764:18:764:25 | call to source() | test.swift:764:13:764:26 | call to S.init(x:) [x] | provenance | | +| test.swift:765:14:765:30 | call to S2_Optional.init(s:) [s, some:0, x] | test.swift:767:15:767:15 | s2 [s, some:0, x] | provenance | | +| test.swift:765:29:765:29 | s [some:0, x] | test.swift:655:8:655:12 | s [some:0, x] | provenance | | +| test.swift:765:29:765:29 | s [some:0, x] | test.swift:765:14:765:30 | call to S2_Optional.init(s:) [s, some:0, x] | provenance | | +| test.swift:765:29:765:29 | s [x] | test.swift:765:29:765:29 | s [some:0, x] | provenance | | +| test.swift:766:13:766:29 | enter #keyPath(...) [s, some:0, x] | test.swift:766:26:766:26 | KeyPathComponent [some:0, x] | provenance | | +| test.swift:766:26:766:26 | KeyPathComponent [some:0, x] | test.swift:766:26:766:26 | KeyPathComponent [x] | provenance | | +| test.swift:766:26:766:26 | KeyPathComponent [x] | test.swift:766:29:766:29 | KeyPathComponent | provenance | | +| test.swift:766:29:766:29 | KeyPathComponent | test.swift:766:13:766:29 | exit #keyPath(...) | provenance | | +| test.swift:767:15:767:15 | s2 [s, some:0, x] | test.swift:766:13:766:29 | enter #keyPath(...) [s, some:0, x] | provenance | | +| test.swift:767:15:767:15 | s2 [s, some:0, x] | test.swift:767:15:767:28 | \\...[...] | provenance | | +| test.swift:774:5:774:5 | [post] dict1 [Collection element, Tuple element at index 1] | test.swift:776:15:776:15 | dict1 [Collection element, Tuple element at index 1] | provenance | | +| test.swift:774:5:774:12 | DictionarySubscriptNode [Tuple element at index 1] | test.swift:774:5:774:5 | [post] dict1 [Collection element, Tuple element at index 1] | provenance | | +| test.swift:774:16:774:23 | call to source() | test.swift:774:5:774:12 | DictionarySubscriptNode [Tuple element at index 1] | provenance | | +| test.swift:776:15:776:15 | dict1 [Collection element, Tuple element at index 1] | test.swift:776:15:776:22 | DictionarySubscriptNode [Tuple element at index 1] | provenance | | +| test.swift:776:15:776:22 | DictionarySubscriptNode [Tuple element at index 1] | test.swift:776:15:776:22 | ...[...] | provenance | | +| test.swift:778:17:778:29 | [...] [Collection element, Tuple element at index 0] | test.swift:781:25:781:25 | dict2 [Collection element, Tuple element at index 0] | provenance | | +| test.swift:778:18:778:25 | call to source() | test.swift:778:18:778:28 | (...) [Tuple element at index 0] | provenance | | +| test.swift:778:18:778:28 | (...) [Tuple element at index 0] | test.swift:778:17:778:29 | [...] [Collection element, Tuple element at index 0] | provenance | | +| test.swift:781:5:781:5 | $generator [Collection element, Tuple element at index 0] | test.swift:781:5:781:5 | call to next() [some:0, Tuple element at index 0] | provenance | | +| test.swift:781:5:781:5 | call to next() [some:0, Tuple element at index 0] | test.swift:781:9:781:20 | (...) [Tuple element at index 0] | provenance | | +| test.swift:781:9:781:20 | (...) [Tuple element at index 0] | test.swift:781:10:781:10 | key | provenance | | +| test.swift:781:10:781:10 | key | test.swift:782:19:782:19 | key | provenance | | +| test.swift:781:25:781:25 | call to makeIterator() [Collection element, Tuple element at index 0] | test.swift:781:5:781:5 | $generator [Collection element, Tuple element at index 0] | provenance | | +| test.swift:781:25:781:25 | dict2 [Collection element, Tuple element at index 0] | test.swift:781:25:781:25 | call to makeIterator() [Collection element, Tuple element at index 0] | provenance | | +| test.swift:786:17:786:29 | [...] [Collection element, Tuple element at index 1] | test.swift:787:15:787:15 | dict3 [Collection element, Tuple element at index 1] | provenance | | +| test.swift:786:17:786:29 | [...] [Collection element, Tuple element at index 1] | test.swift:789:5:789:5 | dict3 [Collection element, Tuple element at index 1] | provenance | | +| test.swift:786:17:786:29 | [...] [Collection element, Tuple element at index 1] | test.swift:792:15:792:15 | dict3 [Collection element, Tuple element at index 1] | provenance | | +| test.swift:786:17:786:29 | [...] [Collection element, Tuple element at index 1] | test.swift:794:25:794:25 | dict3 [Collection element, Tuple element at index 1] | provenance | | +| test.swift:786:18:786:28 | (...) [Tuple element at index 1] | test.swift:786:17:786:29 | [...] [Collection element, Tuple element at index 1] | provenance | | +| test.swift:786:21:786:28 | call to source() | test.swift:786:18:786:28 | (...) [Tuple element at index 1] | provenance | | +| test.swift:787:15:787:15 | dict3 [Collection element, Tuple element at index 1] | test.swift:787:15:787:22 | DictionarySubscriptNode [Tuple element at index 1] | provenance | | +| test.swift:787:15:787:22 | DictionarySubscriptNode [Tuple element at index 1] | test.swift:787:15:787:22 | ...[...] | provenance | | +| test.swift:789:5:789:5 | [post] dict3 [Collection element, Tuple element at index 0] | test.swift:791:15:791:15 | dict3 [Collection element, Tuple element at index 0] | provenance | | +| test.swift:789:5:789:5 | [post] dict3 [Collection element, Tuple element at index 0] | test.swift:794:25:794:25 | dict3 [Collection element, Tuple element at index 0] | provenance | | +| test.swift:789:5:789:5 | [post] dict3 [Collection element, Tuple element at index 1] | test.swift:792:15:792:15 | dict3 [Collection element, Tuple element at index 1] | provenance | | +| test.swift:789:5:789:5 | [post] dict3 [Collection element, Tuple element at index 1] | test.swift:794:25:794:25 | dict3 [Collection element, Tuple element at index 1] | provenance | | +| test.swift:789:5:789:5 | dict3 [Collection element, Tuple element at index 1] | test.swift:789:5:789:19 | DictionarySubscriptNode [Tuple element at index 1] | provenance | | +| test.swift:789:5:789:19 | DictionarySubscriptNode [Tuple element at index 0] | test.swift:789:5:789:5 | [post] dict3 [Collection element, Tuple element at index 0] | provenance | | +| test.swift:789:5:789:19 | DictionarySubscriptNode [Tuple element at index 1] | test.swift:789:5:789:5 | [post] dict3 [Collection element, Tuple element at index 1] | provenance | | +| test.swift:789:11:789:18 | call to source() | test.swift:789:5:789:19 | DictionarySubscriptNode [Tuple element at index 0] | provenance | | +| test.swift:791:15:791:15 | dict3 [Collection element, Tuple element at index 0] | test.swift:791:15:791:35 | call to randomElement() [some:0, Tuple element at index 0] | provenance | | +| test.swift:791:15:791:35 | call to randomElement() [some:0, Tuple element at index 0] | test.swift:791:15:791:36 | ...! [Tuple element at index 0] | provenance | | +| test.swift:791:15:791:36 | ...! [Tuple element at index 0] | test.swift:791:15:791:38 | .0 | provenance | | +| test.swift:792:15:792:15 | dict3 [Collection element, Tuple element at index 1] | test.swift:792:15:792:35 | call to randomElement() [some:0, Tuple element at index 1] | provenance | | +| test.swift:792:15:792:35 | call to randomElement() [some:0, Tuple element at index 1] | test.swift:792:15:792:36 | ...! [Tuple element at index 1] | provenance | | +| test.swift:792:15:792:36 | ...! [Tuple element at index 1] | test.swift:792:15:792:38 | .1 | provenance | | +| test.swift:794:5:794:5 | $generator [Collection element, Tuple element at index 0] | test.swift:794:5:794:5 | call to next() [some:0, Tuple element at index 0] | provenance | | +| test.swift:794:5:794:5 | $generator [Collection element, Tuple element at index 1] | test.swift:794:5:794:5 | call to next() [some:0, Tuple element at index 1] | provenance | | +| test.swift:794:5:794:5 | call to next() [some:0, Tuple element at index 0] | test.swift:794:9:794:20 | (...) [Tuple element at index 0] | provenance | | +| test.swift:794:5:794:5 | call to next() [some:0, Tuple element at index 1] | test.swift:794:9:794:20 | (...) [Tuple element at index 1] | provenance | | +| test.swift:794:9:794:20 | (...) [Tuple element at index 0] | test.swift:794:10:794:10 | key | provenance | | +| test.swift:794:9:794:20 | (...) [Tuple element at index 1] | test.swift:794:15:794:15 | value | provenance | | +| test.swift:794:10:794:10 | key | test.swift:795:19:795:19 | key | provenance | | +| test.swift:794:15:794:15 | value | test.swift:796:19:796:19 | value | provenance | | +| test.swift:794:25:794:25 | call to makeIterator() [Collection element, Tuple element at index 0] | test.swift:794:5:794:5 | $generator [Collection element, Tuple element at index 0] | provenance | | +| test.swift:794:25:794:25 | call to makeIterator() [Collection element, Tuple element at index 1] | test.swift:794:5:794:5 | $generator [Collection element, Tuple element at index 1] | provenance | | +| test.swift:794:25:794:25 | dict3 [Collection element, Tuple element at index 0] | test.swift:794:25:794:25 | call to makeIterator() [Collection element, Tuple element at index 0] | provenance | | +| test.swift:794:25:794:25 | dict3 [Collection element, Tuple element at index 1] | test.swift:794:25:794:25 | call to makeIterator() [Collection element, Tuple element at index 1] | provenance | | +| test.swift:799:17:799:28 | [...] [Collection element, Tuple element at index 1] | test.swift:800:15:800:15 | dict4 [Collection element, Tuple element at index 1] | provenance | | +| test.swift:799:17:799:28 | [...] [Collection element, Tuple element at index 1] | test.swift:801:15:801:15 | dict4 [Collection element, Tuple element at index 1] | provenance | | +| test.swift:799:17:799:28 | [...] [Collection element, Tuple element at index 1] | test.swift:803:15:803:15 | dict4 [Collection element, Tuple element at index 1] | provenance | | +| test.swift:799:18:799:27 | (...) [Tuple element at index 1] | test.swift:799:17:799:28 | [...] [Collection element, Tuple element at index 1] | provenance | | +| test.swift:799:20:799:27 | call to source() | test.swift:799:18:799:27 | (...) [Tuple element at index 1] | provenance | | +| test.swift:800:15:800:15 | [post] dict4 [Collection element, Tuple element at index 0] | test.swift:802:15:802:15 | dict4 [Collection element, Tuple element at index 0] | provenance | | +| test.swift:800:15:800:15 | dict4 [Collection element, Tuple element at index 1] | test.swift:800:15:800:52 | call to updateValue(_:forKey:) [some:0] | provenance | | +| test.swift:800:15:800:52 | call to updateValue(_:forKey:) [some:0] | test.swift:800:15:800:53 | ...! | provenance | | +| test.swift:800:44:800:51 | call to source() | test.swift:800:15:800:15 | [post] dict4 [Collection element, Tuple element at index 0] | provenance | | +| test.swift:801:15:801:15 | [post] dict4 [Collection element, Tuple element at index 1] | test.swift:803:15:803:15 | dict4 [Collection element, Tuple element at index 1] | provenance | | +| test.swift:801:15:801:15 | dict4 [Collection element, Tuple element at index 1] | test.swift:801:15:801:52 | call to updateValue(_:forKey:) [some:0] | provenance | | +| test.swift:801:15:801:52 | call to updateValue(_:forKey:) [some:0] | test.swift:801:15:801:53 | ...! | provenance | | +| test.swift:801:33:801:40 | call to source() | test.swift:801:15:801:15 | [post] dict4 [Collection element, Tuple element at index 1] | provenance | | +| test.swift:802:15:802:15 | dict4 [Collection element, Tuple element at index 0] | test.swift:802:15:802:35 | call to randomElement() [some:0, Tuple element at index 0] | provenance | | +| test.swift:802:15:802:35 | call to randomElement() [some:0, Tuple element at index 0] | test.swift:802:15:802:36 | ...! [Tuple element at index 0] | provenance | | +| test.swift:802:15:802:36 | ...! [Tuple element at index 0] | test.swift:802:15:802:38 | .0 | provenance | | +| test.swift:803:15:803:15 | dict4 [Collection element, Tuple element at index 1] | test.swift:803:15:803:35 | call to randomElement() [some:0, Tuple element at index 1] | provenance | | +| test.swift:803:15:803:35 | call to randomElement() [some:0, Tuple element at index 1] | test.swift:803:15:803:36 | ...! [Tuple element at index 1] | provenance | | +| test.swift:803:15:803:36 | ...! [Tuple element at index 1] | test.swift:803:15:803:38 | .1 | provenance | | +| test.swift:809:8:809:13 | v | test.swift:810:14:810:14 | v | provenance | | +| test.swift:810:5:810:5 | [post] self [v] | test.swift:809:3:811:3 | self[return] [v] | provenance | | +| test.swift:810:14:810:14 | v | test.swift:810:5:810:5 | [post] self [v] | provenance | | +| test.swift:813:8:813:8 | self [v] | test.swift:813:31:813:31 | self [v] | provenance | | +| test.swift:813:31:813:31 | self [v] | test.swift:813:31:813:31 | .v | provenance | | +| test.swift:813:31:813:31 | self [v] | test.swift:815:7:815:7 | self [v] | provenance | | +| test.swift:815:7:815:7 | self [v] | file://:0:0:0:0 | self [v] | provenance | | +| test.swift:815:7:815:7 | value | file://:0:0:0:0 | value | provenance | | +| test.swift:819:14:819:25 | call to S3.init(_:) [v] | test.swift:822:15:822:15 | s1 [v] | provenance | | +| test.swift:819:14:819:25 | call to S3.init(_:) [v] | test.swift:824:15:824:15 | s1 [v] | provenance | | +| test.swift:819:17:819:24 | call to source() | test.swift:809:8:809:13 | v | provenance | | +| test.swift:819:17:819:24 | call to source() | test.swift:819:14:819:25 | call to S3.init(_:) [v] | provenance | | +| test.swift:822:15:822:15 | s1 [v] | test.swift:815:7:815:7 | self [v] | provenance | | +| test.swift:822:15:822:15 | s1 [v] | test.swift:822:15:822:18 | .v | provenance | | +| test.swift:824:15:824:15 | s1 [v] | test.swift:813:8:813:8 | self [v] | provenance | | +| test.swift:824:15:824:15 | s1 [v] | test.swift:824:15:824:23 | call to getv() | provenance | | +| test.swift:828:5:828:5 | [post] s2 [v] | test.swift:831:15:831:15 | s2 [v] | provenance | | +| test.swift:828:5:828:5 | [post] s2 [v] | test.swift:833:15:833:15 | s2 [v] | provenance | | +| test.swift:828:12:828:19 | call to source() | test.swift:815:7:815:7 | value | provenance | | +| test.swift:828:12:828:19 | call to source() | test.swift:828:5:828:5 | [post] s2 [v] | provenance | | +| test.swift:831:15:831:15 | s2 [v] | test.swift:815:7:815:7 | self [v] | provenance | | +| test.swift:831:15:831:15 | s2 [v] | test.swift:831:15:831:18 | .v | provenance | | +| test.swift:833:15:833:15 | s2 [v] | test.swift:813:8:813:8 | self [v] | provenance | | +| test.swift:833:15:833:15 | s2 [v] | test.swift:833:15:833:23 | call to getv() | provenance | | +| test.swift:839:11:839:17 | [post] exit #keyPath(...) | test.swift:839:17:839:17 | [post] KeyPathComponent | provenance | | +| test.swift:839:15:839:15 | [post] KeyPathComponent [x] | test.swift:839:11:839:17 | [post] enter #keyPath(...) [s, x] | provenance | | +| test.swift:839:17:839:17 | [post] KeyPathComponent | test.swift:839:15:839:15 | [post] KeyPathComponent [x] | provenance | | +| test.swift:840:3:840:3 | [post] s2 [s, x] | test.swift:841:13:841:13 | s2 [s, x] | provenance | | +| test.swift:840:3:840:16 | \\...[...] | test.swift:839:11:839:17 | [post] exit #keyPath(...) | provenance | | +| test.swift:840:3:840:16 | \\...[...] | test.swift:840:3:840:3 | [post] s2 [s, x] | provenance | | +| test.swift:840:20:840:27 | call to source() | test.swift:840:3:840:16 | \\...[...] | provenance | | +| test.swift:841:13:841:13 | s2 [s, x] | test.swift:632:7:632:7 | self [s, x] | provenance | | +| test.swift:841:13:841:13 | s2 [s, x] | test.swift:841:13:841:16 | .s [x] | provenance | | +| test.swift:841:13:841:16 | .s [x] | test.swift:615:7:615:7 | self [x] | provenance | | +| test.swift:841:13:841:16 | .s [x] | test.swift:841:13:841:18 | .x | provenance | | +| test.swift:844:19:844:28 | args [Collection element] | test.swift:846:15:846:15 | args [Collection element] | provenance | | +| test.swift:846:15:846:15 | args [Collection element] | test.swift:846:15:846:21 | ...[...] | provenance | | +| test.swift:849:19:849:24 | v | test.swift:850:15:850:15 | v | provenance | | +| test.swift:856:29:856:40 | args [Collection element] | test.swift:859:15:859:15 | args [Collection element] | provenance | | +| test.swift:856:29:856:40 | args [Collection element] | test.swift:860:15:860:15 | args [Collection element] | provenance | | +| test.swift:856:29:856:40 | args [Collection element] | test.swift:862:16:862:16 | args [Collection element] | provenance | | +| test.swift:856:29:856:40 | args [Collection element] | test.swift:867:15:867:15 | args [Collection element] | provenance | | +| test.swift:859:15:859:15 | args [Collection element] | test.swift:859:15:859:21 | ...[...] | provenance | | +| test.swift:860:15:860:15 | args [Collection element] | test.swift:860:15:860:21 | ...[...] | provenance | | +| test.swift:862:5:862:5 | $arg$generator [Collection element] | test.swift:862:5:862:5 | call to next() [some:0] | provenance | | +| test.swift:862:5:862:5 | call to next() [some:0] | test.swift:862:9:862:9 | arg | provenance | | +| test.swift:862:9:862:9 | arg | test.swift:863:19:863:19 | arg | provenance | | +| test.swift:862:16:862:16 | args [Collection element] | test.swift:862:16:862:16 | call to makeIterator() [Collection element] | provenance | | +| test.swift:862:16:862:16 | call to makeIterator() [Collection element] | test.swift:862:5:862:5 | $arg$generator [Collection element] | provenance | | +| test.swift:866:21:866:29 | enter #keyPath(...) [Collection element] | test.swift:866:27:866:29 | KeyPathComponent | provenance | | +| test.swift:866:27:866:29 | KeyPathComponent | test.swift:866:21:866:29 | exit #keyPath(...) | provenance | | +| test.swift:867:15:867:15 | args [Collection element] | test.swift:866:21:866:29 | enter #keyPath(...) [Collection element] | provenance | | +| test.swift:867:15:867:15 | args [Collection element] | test.swift:867:15:867:38 | \\...[...] | provenance | | +| test.swift:871:24:871:31 | [...] [Collection element] | test.swift:844:19:844:28 | args [Collection element] | provenance | | +| test.swift:871:24:871:31 | [...] [Collection element] | test.swift:871:24:871:31 | [...] [Collection element] | provenance | | +| test.swift:871:24:871:31 | call to source() | test.swift:871:24:871:31 | [...] [Collection element] | provenance | | +| test.swift:872:18:872:25 | call to source() | test.swift:849:19:849:24 | v | provenance | | +| test.swift:873:21:873:31 | [...] [Collection element] | test.swift:856:29:856:40 | args [Collection element] | provenance | | +| test.swift:873:21:873:31 | [...] [Collection element] | test.swift:873:21:873:31 | [...] [Collection element] | provenance | | +| test.swift:873:24:873:31 | call to source() | test.swift:873:21:873:31 | [...] [Collection element] | provenance | | +| test.swift:877:16:877:30 | call to Set.init(_:) [Collection element] | test.swift:879:17:879:17 | set1 [Collection element] | provenance | | +| test.swift:877:16:877:30 | call to Set.init(_:) [Collection element] | test.swift:883:21:883:21 | set1 [Collection element] | provenance | | +| test.swift:877:20:877:29 | [...] [Collection element] | test.swift:877:16:877:30 | call to Set.init(_:) [Collection element] | provenance | | +| test.swift:877:21:877:28 | call to source() | test.swift:877:20:877:29 | [...] [Collection element] | provenance | | +| test.swift:879:5:879:5 | $elem$generator [Collection element] | test.swift:879:5:879:5 | call to next() [some:0] | provenance | | +| test.swift:879:5:879:5 | call to next() [some:0] | test.swift:879:9:879:9 | elem | provenance | | +| test.swift:879:9:879:9 | elem | test.swift:880:19:880:19 | elem | provenance | | +| test.swift:879:17:879:17 | call to makeIterator() [Collection element] | test.swift:879:5:879:5 | $elem$generator [Collection element] | provenance | | +| test.swift:879:17:879:17 | set1 [Collection element] | test.swift:879:17:879:17 | call to makeIterator() [Collection element] | provenance | | +| test.swift:883:21:883:21 | set1 [Collection element] | test.swift:883:21:883:39 | call to makeIterator() [Collection element] | provenance | | +| test.swift:883:21:883:39 | call to makeIterator() [Collection element] | test.swift:884:15:884:15 | generator [Collection element] | provenance | | +| test.swift:884:15:884:15 | generator [Collection element] | test.swift:884:15:884:30 | call to next() [some:0] | provenance | | +| test.swift:884:15:884:30 | call to next() [some:0] | test.swift:884:15:884:31 | ...! | provenance | | +| test.swift:908:19:908:26 | call to source() | test.swift:904:13:904:18 | call to ... | provenance | | +| test.swift:927:12:927:31 | call to source(_:) | test.swift:927:12:927:31 | OpenExistentialExpr | provenance | | +| test.swift:929:12:929:57 | call to source(_:) | test.swift:929:12:929:57 | OpenExistentialExpr | provenance | | +| test.swift:937:22:937:29 | call to source() | file://:0:0:0:0 | .wrappedValue | provenance | | +| test.swift:938:9:938:9 | newValue | test.swift:938:25:938:25 | newValue | provenance | | +| test.swift:941:10:941:24 | wrappedValue | test.swift:942:19:942:19 | wrappedValue | provenance | | +| test.swift:943:29:943:36 | call to source() | test.swift:938:9:938:9 | newValue | provenance | | +| test.swift:948:33:948:33 | value | file://:0:0:0:0 | value | provenance | | +| test.swift:948:42:948:49 | call to source() | test.swift:941:10:941:24 | wrappedValue | provenance | | +| test.swift:950:9:950:16 | call to source() | test.swift:948:33:948:33 | value | provenance | | +| test.swift:957:9:957:9 | value | file://:0:0:0:0 | value | provenance | | +| test.swift:958:9:958:9 | self [wrappedValue] | test.swift:959:23:959:23 | self [wrappedValue] | provenance | | +| test.swift:959:23:959:23 | self [wrappedValue] | test.swift:959:23:959:23 | .wrappedValue | provenance | | +| test.swift:965:9:965:9 | newValue | test.swift:967:28:967:28 | newValue | provenance | | +| test.swift:967:28:967:28 | newValue | test.swift:957:9:957:9 | value | provenance | | +| test.swift:971:10:971:24 | wrappedValue | test.swift:972:19:972:19 | wrappedValue | provenance | | +| test.swift:978:34:978:34 | value | file://:0:0:0:0 | value | provenance | | +| test.swift:980:9:980:16 | call to source() | test.swift:978:34:978:34 | value | provenance | | +| test.swift:983:38:983:45 | call to source() | test.swift:971:10:971:24 | wrappedValue | provenance | | +| test.swift:988:34:988:34 | value | file://:0:0:0:0 | value | provenance | | +| test.swift:991:10:991:17 | call to source() | test.swift:988:34:988:34 | value | provenance | | nodes | file://:0:0:0:0 | .a [x] | semmle.label | .a [x] | | file://:0:0:0:0 | .s [x] | semmle.label | .s [x] | diff --git a/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected b/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected index 24d797088fc4..b0c6ed9c8bd0 100644 --- a/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected +++ b/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected @@ -1,220 +1,220 @@ edges -| conversions.swift:33:16:33:26 | call to sourceInt() | conversions.swift:33:12:33:27 | call to Self.init(_:) | -| conversions.swift:34:18:34:28 | call to sourceInt() | conversions.swift:34:12:34:29 | call to Self.init(_:) | -| conversions.swift:35:18:35:28 | call to sourceInt() | conversions.swift:35:12:35:29 | call to Float.init(_:) | -| conversions.swift:36:12:36:30 | call to String.init(_:) [Collection element] | conversions.swift:36:12:36:30 | call to String.init(_:) | -| conversions.swift:36:19:36:29 | call to sourceInt() | conversions.swift:36:12:36:30 | call to String.init(_:) | -| conversions.swift:36:19:36:29 | call to sourceInt() | conversions.swift:36:12:36:30 | call to String.init(_:) [Collection element] | -| conversions.swift:37:12:37:30 | call to String.init(_:) | conversions.swift:37:12:37:32 | .utf8 | -| conversions.swift:37:19:37:29 | call to sourceInt() | conversions.swift:37:12:37:30 | call to String.init(_:) | -| conversions.swift:39:12:39:30 | [...] [Collection element] | conversions.swift:40:12:40:12 | arr | -| conversions.swift:39:12:39:30 | [...] [Collection element] | conversions.swift:41:12:41:12 | arr [Collection element] | -| conversions.swift:39:12:39:30 | [...] [Collection element] | conversions.swift:41:12:41:17 | ...[...] | -| conversions.swift:39:12:39:30 | [...] [Collection element] | conversions.swift:42:20:42:20 | arr | -| conversions.swift:39:12:39:30 | [...] [Collection element] | conversions.swift:42:20:42:20 | arr [Collection element] | -| conversions.swift:39:12:39:30 | [...] [Collection element] | conversions.swift:43:20:43:20 | arr | -| conversions.swift:39:12:39:30 | [...] [Collection element] | conversions.swift:43:20:43:20 | arr [Collection element] | -| conversions.swift:39:19:39:29 | call to sourceInt() | conversions.swift:39:12:39:30 | [...] [Collection element] | -| conversions.swift:41:12:41:12 | arr [Collection element] | conversions.swift:41:12:41:17 | ...[...] | -| conversions.swift:42:12:42:23 | call to Array.init(_:) [Collection element] | conversions.swift:42:12:42:23 | call to Array.init(_:) | -| conversions.swift:42:20:42:20 | arr | conversions.swift:42:12:42:23 | call to Array.init(_:) [Collection element] | -| conversions.swift:42:20:42:20 | arr [Collection element] | conversions.swift:42:12:42:23 | call to Array.init(_:) [Collection element] | -| conversions.swift:43:12:43:23 | call to Array.init(_:) [Collection element] | conversions.swift:43:12:43:26 | ...[...] | -| conversions.swift:43:20:43:20 | arr | conversions.swift:43:12:43:23 | call to Array.init(_:) [Collection element] | -| conversions.swift:43:20:43:20 | arr [Collection element] | conversions.swift:43:12:43:23 | call to Array.init(_:) [Collection element] | -| conversions.swift:44:12:44:39 | call to Array.init(_:) [Collection element] | conversions.swift:44:12:44:39 | call to Array.init(_:) | -| conversions.swift:44:20:44:33 | call to sourceString() | conversions.swift:44:20:44:35 | .utf8 | -| conversions.swift:44:20:44:35 | .utf8 | conversions.swift:44:12:44:39 | call to Array.init(_:) [Collection element] | -| conversions.swift:45:12:45:39 | call to Array.init(_:) [Collection element] | conversions.swift:45:12:45:42 | ...[...] | -| conversions.swift:45:20:45:33 | call to sourceString() | conversions.swift:45:20:45:35 | .utf8 | -| conversions.swift:45:20:45:35 | .utf8 | conversions.swift:45:12:45:39 | call to Array.init(_:) [Collection element] | -| conversions.swift:47:13:47:23 | call to sourceInt() | conversions.swift:48:13:48:13 | v | -| conversions.swift:51:18:51:41 | call to numericCast(_:) | conversions.swift:52:12:52:12 | v2 | -| conversions.swift:51:30:51:40 | call to sourceInt() | conversions.swift:51:18:51:41 | call to numericCast(_:) | -| conversions.swift:54:17:54:57 | call to unsafeBitCast(_:to:) | conversions.swift:55:12:55:12 | v4 | -| conversions.swift:54:31:54:41 | call to sourceInt() | conversions.swift:54:17:54:57 | call to unsafeBitCast(_:to:) | -| conversions.swift:57:11:57:47 | call to Self.init(truncatingIfNeeded:) | conversions.swift:58:12:58:12 | v5 | -| conversions.swift:57:36:57:46 | call to sourceInt() | conversions.swift:57:11:57:47 | call to Self.init(truncatingIfNeeded:) | -| conversions.swift:60:11:60:39 | call to UInt.init(bitPattern:) | conversions.swift:61:12:61:12 | v6 | -| conversions.swift:60:28:60:38 | call to sourceInt() | conversions.swift:60:11:60:39 | call to UInt.init(bitPattern:) | -| conversions.swift:63:11:63:26 | call to abs(_:) | conversions.swift:64:12:64:12 | v7 | -| conversions.swift:63:15:63:25 | call to sourceInt() | conversions.swift:63:11:63:26 | call to abs(_:) | -| conversions.swift:69:28:69:38 | call to sourceInt() | conversions.swift:69:12:69:39 | call to advanced(by:) | -| conversions.swift:71:12:71:36 | call to Self.init(exactly:) [some:0] | conversions.swift:71:12:71:37 | ...! | -| conversions.swift:71:25:71:35 | call to sourceInt() | conversions.swift:71:12:71:36 | call to Self.init(exactly:) [some:0] | -| conversions.swift:72:12:72:39 | call to Self.init(exactly:) [some:0] | conversions.swift:72:12:72:40 | ...! | -| conversions.swift:72:28:72:38 | call to sourceInt() | conversions.swift:72:12:72:39 | call to Self.init(exactly:) [some:0] | -| conversions.swift:73:26:73:36 | call to sourceInt() | conversions.swift:73:12:73:37 | call to Self.init(clamping:) | -| conversions.swift:74:36:74:46 | call to sourceInt() | conversions.swift:74:12:74:47 | call to Self.init(truncatingIfNeeded:) | -| conversions.swift:75:12:75:41 | call to Self.init(_:radix:) [some:0] | conversions.swift:75:12:75:42 | ...! | -| conversions.swift:75:16:75:29 | call to sourceString() | conversions.swift:75:12:75:41 | call to Self.init(_:radix:) [some:0] | -| conversions.swift:77:30:77:40 | call to sourceInt() | conversions.swift:77:12:77:41 | call to Self.init(littleEndian:) | -| conversions.swift:78:27:78:37 | call to sourceInt() | conversions.swift:78:12:78:38 | call to Self.init(bigEndian:) | -| conversions.swift:79:12:79:22 | call to sourceInt() | conversions.swift:79:12:79:24 | .littleEndian | -| conversions.swift:80:12:80:22 | call to sourceInt() | conversions.swift:80:12:80:24 | .bigEndian | -| conversions.swift:109:18:109:30 | call to sourceFloat() | conversions.swift:109:12:109:31 | call to Float.init(_:) | -| conversions.swift:110:18:110:30 | call to sourceFloat() | conversions.swift:110:12:110:31 | call to UInt8.init(_:) | -| conversions.swift:111:12:111:32 | call to String.init(_:) [Collection element] | conversions.swift:111:12:111:32 | call to String.init(_:) | -| conversions.swift:111:19:111:31 | call to sourceFloat() | conversions.swift:111:12:111:32 | call to String.init(_:) | -| conversions.swift:111:19:111:31 | call to sourceFloat() | conversions.swift:111:12:111:32 | call to String.init(_:) [Collection element] | -| conversions.swift:112:12:112:32 | call to String.init(_:) | conversions.swift:112:12:112:34 | .utf8 | -| conversions.swift:112:19:112:31 | call to sourceFloat() | conversions.swift:112:12:112:32 | call to String.init(_:) | -| conversions.swift:113:12:113:34 | call to String.init(_:) [Collection element] | conversions.swift:113:12:113:34 | call to String.init(_:) | -| conversions.swift:113:19:113:33 | call to sourceFloat80() | conversions.swift:113:12:113:34 | call to String.init(_:) | -| conversions.swift:113:19:113:33 | call to sourceFloat80() | conversions.swift:113:12:113:34 | call to String.init(_:) [Collection element] | -| conversions.swift:114:12:114:34 | call to String.init(_:) | conversions.swift:114:12:114:36 | .utf8 | -| conversions.swift:114:19:114:33 | call to sourceFloat80() | conversions.swift:114:12:114:34 | call to String.init(_:) | -| conversions.swift:115:12:115:33 | call to String.init(_:) [Collection element] | conversions.swift:115:12:115:33 | call to String.init(_:) | -| conversions.swift:115:19:115:32 | call to sourceDouble() | conversions.swift:115:12:115:33 | call to String.init(_:) | -| conversions.swift:115:19:115:32 | call to sourceDouble() | conversions.swift:115:12:115:33 | call to String.init(_:) [Collection element] | -| conversions.swift:116:12:116:33 | call to String.init(_:) | conversions.swift:116:12:116:35 | .utf8 | -| conversions.swift:116:19:116:32 | call to sourceDouble() | conversions.swift:116:12:116:33 | call to String.init(_:) | -| conversions.swift:118:18:118:30 | call to sourceFloat() | conversions.swift:118:12:118:31 | call to Float.init(_:) | -| conversions.swift:119:41:119:51 | call to sourceInt() | conversions.swift:119:12:119:70 | call to Float.init(sign:exponent:significand:) | -| conversions.swift:120:57:120:69 | call to sourceFloat() | conversions.swift:120:12:120:70 | call to Float.init(sign:exponent:significand:) | -| conversions.swift:122:44:122:56 | call to sourceFloat() | conversions.swift:122:12:122:57 | call to Float.init(signOf:magnitudeOf:) | -| conversions.swift:124:12:124:24 | call to sourceFloat() | conversions.swift:124:12:124:26 | .exponent | -| conversions.swift:125:12:125:24 | call to sourceFloat() | conversions.swift:125:12:125:26 | .significand | -| conversions.swift:126:12:126:26 | call to sourceFloat80() | conversions.swift:126:12:126:28 | .exponent | -| conversions.swift:127:12:127:26 | call to sourceFloat80() | conversions.swift:127:12:127:28 | .significand | -| conversions.swift:128:12:128:25 | call to sourceDouble() | conversions.swift:128:12:128:27 | .exponent | -| conversions.swift:129:12:129:25 | call to sourceDouble() | conversions.swift:129:12:129:27 | .significand | -| conversions.swift:130:12:130:23 | call to sourceUInt() | conversions.swift:130:12:130:25 | .byteSwapped | -| conversions.swift:131:12:131:25 | call to sourceUInt64() | conversions.swift:131:12:131:27 | .byteSwapped | -| conversions.swift:136:12:136:33 | call to String.init(_:) [Collection element] | conversions.swift:136:12:136:33 | call to String.init(_:) | -| conversions.swift:136:19:136:32 | call to sourceString() | conversions.swift:136:12:136:33 | call to String.init(_:) | -| conversions.swift:136:19:136:32 | call to sourceString() | conversions.swift:136:12:136:33 | call to String.init(_:) [Collection element] | -| conversions.swift:144:12:144:35 | call to MyString.init(_:) | conversions.swift:144:12:144:35 | call to MyString.init(_:) [some:0] | -| conversions.swift:144:12:144:35 | call to MyString.init(_:) | conversions.swift:145:12:145:12 | ms2 | -| conversions.swift:144:12:144:35 | call to MyString.init(_:) | conversions.swift:146:12:146:16 | .description | -| conversions.swift:144:12:144:35 | call to MyString.init(_:) | conversions.swift:147:12:147:16 | .debugDescription | -| conversions.swift:144:12:144:35 | call to MyString.init(_:) [some:0] | conversions.swift:144:12:144:36 | ...! | -| conversions.swift:144:12:144:36 | ...! | conversions.swift:145:12:145:12 | ms2 | -| conversions.swift:144:12:144:36 | ...! | conversions.swift:146:12:146:16 | .description | -| conversions.swift:144:12:144:36 | ...! | conversions.swift:147:12:147:16 | .debugDescription | -| conversions.swift:144:21:144:34 | call to sourceString() | conversions.swift:144:12:144:35 | call to MyString.init(_:) | -| conversions.swift:152:31:152:44 | call to sourceString() | conversions.swift:153:12:153:12 | parent | -| conversions.swift:152:31:152:44 | call to sourceString() | conversions.swift:154:12:154:12 | parent | -| conversions.swift:152:31:152:44 | call to sourceString() | conversions.swift:156:40:156:40 | parent | -| conversions.swift:156:25:156:69 | call to unsafeDowncast(_:to:) | conversions.swift:157:12:157:12 | v3 | -| conversions.swift:156:25:156:69 | call to unsafeDowncast(_:to:) | conversions.swift:158:12:158:12 | v3 | -| conversions.swift:156:40:156:40 | parent | conversions.swift:156:25:156:69 | call to unsafeDowncast(_:to:) | -| conversions.swift:166:24:166:34 | call to sourceInt() | conversions.swift:166:12:166:35 | call to Self.init(_:) | -| conversions.swift:171:14:171:33 | call to sourceArray(_:) | conversions.swift:173:13:173:13 | arr1 | -| conversions.swift:171:14:171:33 | call to sourceArray(_:) | conversions.swift:175:13:175:19 | ...[...] | -| conversions.swift:171:14:171:33 | call to sourceArray(_:) | conversions.swift:178:25:178:25 | arr1 | -| conversions.swift:171:14:171:33 | call to sourceArray(_:) | conversions.swift:185:31:185:31 | arr1 | -| conversions.swift:172:14:172:26 | [...] [Collection element] | conversions.swift:174:13:174:13 | arr2 | -| conversions.swift:172:14:172:26 | [...] [Collection element] | conversions.swift:176:13:176:13 | arr2 [Collection element] | -| conversions.swift:172:14:172:26 | [...] [Collection element] | conversions.swift:176:13:176:19 | ...[...] | -| conversions.swift:172:14:172:26 | [...] [Collection element] | conversions.swift:179:25:179:25 | arr2 | -| conversions.swift:172:14:172:26 | [...] [Collection element] | conversions.swift:179:25:179:25 | arr2 [Collection element] | -| conversions.swift:172:14:172:26 | [...] [Collection element] | conversions.swift:186:31:186:31 | arr2 | -| conversions.swift:172:14:172:26 | [...] [Collection element] | conversions.swift:186:31:186:31 | arr2 [Collection element] | -| conversions.swift:172:15:172:25 | call to sourceInt() | conversions.swift:172:14:172:26 | [...] [Collection element] | -| conversions.swift:176:13:176:13 | arr2 [Collection element] | conversions.swift:176:13:176:19 | ...[...] | -| conversions.swift:178:19:178:29 | call to Array.init(_:) [Collection element] | conversions.swift:180:13:180:13 | arr1b | -| conversions.swift:178:19:178:29 | call to Array.init(_:) [Collection element] | conversions.swift:182:13:182:13 | arr1b [Collection element] | -| conversions.swift:178:19:178:29 | call to Array.init(_:) [Collection element] | conversions.swift:182:13:182:20 | ...[...] | -| conversions.swift:178:25:178:25 | arr1 | conversions.swift:178:19:178:29 | call to Array.init(_:) [Collection element] | -| conversions.swift:179:19:179:29 | call to Array.init(_:) [Collection element] | conversions.swift:181:13:181:13 | arr2b | -| conversions.swift:179:19:179:29 | call to Array.init(_:) [Collection element] | conversions.swift:183:13:183:13 | arr2b [Collection element] | -| conversions.swift:179:19:179:29 | call to Array.init(_:) [Collection element] | conversions.swift:183:13:183:20 | ...[...] | -| conversions.swift:179:25:179:25 | arr2 | conversions.swift:179:19:179:29 | call to Array.init(_:) [Collection element] | -| conversions.swift:179:25:179:25 | arr2 [Collection element] | conversions.swift:179:19:179:29 | call to Array.init(_:) [Collection element] | -| conversions.swift:182:13:182:13 | arr1b [Collection element] | conversions.swift:182:13:182:20 | ...[...] | -| conversions.swift:183:13:183:13 | arr2b [Collection element] | conversions.swift:183:13:183:20 | ...[...] | -| conversions.swift:185:15:185:35 | call to ContiguousArray.init(_:) [Collection element] | conversions.swift:187:13:187:13 | arr1c | -| conversions.swift:185:15:185:35 | call to ContiguousArray.init(_:) [Collection element] | conversions.swift:189:13:189:13 | arr1c [Collection element] | -| conversions.swift:185:15:185:35 | call to ContiguousArray.init(_:) [Collection element] | conversions.swift:189:13:189:20 | ...[...] | -| conversions.swift:185:31:185:31 | arr1 | conversions.swift:185:15:185:35 | call to ContiguousArray.init(_:) [Collection element] | -| conversions.swift:186:15:186:35 | call to ContiguousArray.init(_:) [Collection element] | conversions.swift:188:13:188:13 | arr2c | -| conversions.swift:186:15:186:35 | call to ContiguousArray.init(_:) [Collection element] | conversions.swift:190:13:190:13 | arr2c [Collection element] | -| conversions.swift:186:15:186:35 | call to ContiguousArray.init(_:) [Collection element] | conversions.swift:190:13:190:20 | ...[...] | -| conversions.swift:186:31:186:31 | arr2 | conversions.swift:186:15:186:35 | call to ContiguousArray.init(_:) [Collection element] | -| conversions.swift:186:31:186:31 | arr2 [Collection element] | conversions.swift:186:15:186:35 | call to ContiguousArray.init(_:) [Collection element] | -| conversions.swift:189:13:189:13 | arr1c [Collection element] | conversions.swift:189:13:189:20 | ...[...] | -| conversions.swift:190:13:190:13 | arr2c [Collection element] | conversions.swift:190:13:190:20 | ...[...] | -| file://:0:0:0:0 | self [first] | file://:0:0:0:0 | .first | -| file://:0:0:0:0 | self [second] | file://:0:0:0:0 | .second | -| file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [first] | -| file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [second] | -| simple.swift:12:17:12:24 | call to source() | simple.swift:12:13:12:24 | ... .+(_:_:) ... | -| simple.swift:13:13:13:20 | call to source() | simple.swift:13:13:13:24 | ... .+(_:_:) ... | -| simple.swift:14:17:14:24 | call to source() | simple.swift:14:13:14:24 | ... .-(_:_:) ... | -| simple.swift:15:13:15:20 | call to source() | simple.swift:15:13:15:24 | ... .-(_:_:) ... | -| simple.swift:16:17:16:24 | call to source() | simple.swift:16:13:16:24 | ... .*(_:_:) ... | -| simple.swift:17:13:17:20 | call to source() | simple.swift:17:13:17:24 | ... .*(_:_:) ... | -| simple.swift:18:19:18:26 | call to source() | simple.swift:18:13:18:26 | ... ./(_:_:) ... | -| simple.swift:19:13:19:20 | call to source() | simple.swift:19:13:19:24 | ... ./(_:_:) ... | -| simple.swift:20:19:20:26 | call to source() | simple.swift:20:13:20:26 | ... .%(_:_:) ... | -| simple.swift:21:13:21:20 | call to source() | simple.swift:21:13:21:24 | ... .%(_:_:) ... | -| simple.swift:23:14:23:21 | call to source() | simple.swift:23:13:23:21 | call to -(_:) | -| simple.swift:27:18:27:25 | call to source() | simple.swift:27:13:27:25 | ... .&+(_:_:) ... | -| simple.swift:28:13:28:20 | call to source() | simple.swift:28:13:28:25 | ... .&+(_:_:) ... | -| simple.swift:29:18:29:25 | call to source() | simple.swift:29:13:29:25 | ... .&-(_:_:) ... | -| simple.swift:30:13:30:20 | call to source() | simple.swift:30:13:30:25 | ... .&-(_:_:) ... | -| simple.swift:31:18:31:25 | call to source() | simple.swift:31:13:31:25 | ... .&*(_:_:) ... | -| simple.swift:32:13:32:20 | call to source() | simple.swift:32:13:32:25 | ... .&*(_:_:) ... | -| simple.swift:40:8:40:15 | call to source() | simple.swift:41:13:41:13 | a | -| simple.swift:40:8:40:15 | call to source() | simple.swift:43:13:43:13 | a | -| simple.swift:48:8:48:15 | call to source() | simple.swift:49:13:49:13 | b | -| simple.swift:48:8:48:15 | call to source() | simple.swift:51:13:51:13 | b | -| simple.swift:54:8:54:15 | call to source() | simple.swift:55:13:55:13 | c | -| simple.swift:54:8:54:15 | call to source() | simple.swift:57:13:57:13 | c | -| simple.swift:60:8:60:15 | call to source() | simple.swift:61:13:61:13 | d | -| simple.swift:60:8:60:15 | call to source() | simple.swift:63:13:63:13 | d | -| simple.swift:66:8:66:15 | call to source() | simple.swift:67:13:67:13 | e | -| simple.swift:66:8:66:15 | call to source() | simple.swift:69:13:69:13 | e | -| simple.swift:73:17:73:24 | call to source() | simple.swift:73:13:73:24 | ... .\|(_:_:) ... | -| simple.swift:74:13:74:20 | call to source() | simple.swift:74:13:74:24 | ... .\|(_:_:) ... | -| simple.swift:76:22:76:29 | call to source() | simple.swift:76:13:76:29 | ... .&(_:_:) ... | -| simple.swift:77:13:77:20 | call to source() | simple.swift:77:13:77:24 | ... .&(_:_:) ... | -| simple.swift:79:22:79:29 | call to source() | simple.swift:79:13:79:29 | ... .^(_:_:) ... | -| simple.swift:80:13:80:20 | call to source() | simple.swift:80:13:80:24 | ... .^(_:_:) ... | -| simple.swift:82:13:82:20 | call to source() | simple.swift:82:13:82:25 | ... .<<(_:_:) ... | -| simple.swift:83:13:83:20 | call to source() | simple.swift:83:13:83:26 | ... .&<<(_:_:) ... | -| simple.swift:84:13:84:20 | call to source() | simple.swift:84:13:84:25 | ... .>>(_:_:) ... | -| simple.swift:85:13:85:20 | call to source() | simple.swift:85:13:85:26 | ... .&>>(_:_:) ... | -| simple.swift:87:14:87:21 | call to source() | simple.swift:87:13:87:21 | call to ~(_:) | -| stringinterpolation.swift:6:6:6:6 | self [first] | file://:0:0:0:0 | self [first] | -| stringinterpolation.swift:6:6:6:6 | value | file://:0:0:0:0 | value | -| stringinterpolation.swift:7:6:7:6 | self [second] | file://:0:0:0:0 | self [second] | -| stringinterpolation.swift:7:6:7:6 | value | file://:0:0:0:0 | value | -| stringinterpolation.swift:11:36:11:44 | pair [first] | stringinterpolation.swift:13:36:13:36 | pair [first] | -| stringinterpolation.swift:13:3:13:3 | [post] self | stringinterpolation.swift:11:11:14:2 | self[return] | -| stringinterpolation.swift:13:36:13:36 | pair [first] | stringinterpolation.swift:6:6:6:6 | self [first] | -| stringinterpolation.swift:13:36:13:36 | pair [first] | stringinterpolation.swift:13:36:13:41 | .first | -| stringinterpolation.swift:13:36:13:41 | .first | stringinterpolation.swift:11:11:14:2 | self[return] | -| stringinterpolation.swift:13:36:13:41 | .first | stringinterpolation.swift:13:3:13:3 | [post] self | -| stringinterpolation.swift:19:2:19:2 | [post] p1 [first] | stringinterpolation.swift:20:2:20:2 | p1 [first] | -| stringinterpolation.swift:19:13:19:20 | call to source() | stringinterpolation.swift:6:6:6:6 | value | -| stringinterpolation.swift:19:13:19:20 | call to source() | stringinterpolation.swift:19:2:19:2 | [post] p1 [first] | -| stringinterpolation.swift:20:2:20:2 | p1 [first] | stringinterpolation.swift:22:21:22:21 | p1 [first] | -| stringinterpolation.swift:20:2:20:2 | p1 [first] | stringinterpolation.swift:24:21:24:21 | p1 [first] | -| stringinterpolation.swift:22:21:22:21 | p1 [first] | stringinterpolation.swift:6:6:6:6 | self [first] | -| stringinterpolation.swift:22:21:22:21 | p1 [first] | stringinterpolation.swift:22:21:22:24 | .first | -| stringinterpolation.swift:22:21:22:24 | .first | stringinterpolation.swift:22:12:22:12 | "..." | -| stringinterpolation.swift:24:20:24:20 | [post] $interpolation | stringinterpolation.swift:24:12:24:12 | "..." | -| stringinterpolation.swift:24:21:24:21 | p1 [first] | stringinterpolation.swift:11:36:11:44 | pair [first] | -| stringinterpolation.swift:24:21:24:21 | p1 [first] | stringinterpolation.swift:24:20:24:20 | [post] $interpolation | -| stringinterpolation.swift:28:2:28:2 | [post] p2 [second] | stringinterpolation.swift:31:21:31:21 | p2 [second] | -| stringinterpolation.swift:28:14:28:21 | call to source() | stringinterpolation.swift:7:6:7:6 | value | -| stringinterpolation.swift:28:14:28:21 | call to source() | stringinterpolation.swift:28:2:28:2 | [post] p2 [second] | -| stringinterpolation.swift:31:21:31:21 | p2 [second] | stringinterpolation.swift:7:6:7:6 | self [second] | -| stringinterpolation.swift:31:21:31:21 | p2 [second] | stringinterpolation.swift:31:21:31:24 | .second | -| stringinterpolation.swift:31:21:31:24 | .second | stringinterpolation.swift:31:12:31:12 | "..." | -| stringinterpolation.swift:36:10:36:17 | call to source() | stringinterpolation.swift:40:12:40:12 | "..." | -| stringinterpolation.swift:36:10:36:17 | call to source() | stringinterpolation.swift:41:12:41:12 | "..." | -| stringinterpolation.swift:36:10:36:17 | call to source() | stringinterpolation.swift:42:12:42:12 | "..." | -| subscript.swift:13:15:13:22 | call to source() | subscript.swift:13:15:13:25 | ...[...] | -| subscript.swift:14:15:14:23 | call to source2() | subscript.swift:14:15:14:26 | ...[...] | -| try.swift:9:17:9:24 | call to source() | try.swift:9:13:9:24 | try ... | -| try.swift:15:17:15:24 | call to source() | try.swift:15:12:15:24 | try! ... | -| try.swift:18:13:18:25 | try? ... [some:0] | try.swift:18:12:18:27 | ...! | -| try.swift:18:18:18:25 | call to source() | try.swift:18:12:18:27 | ...! | -| try.swift:18:18:18:25 | call to source() | try.swift:18:18:18:25 | call to source() [some:0] | -| try.swift:18:18:18:25 | call to source() [some:0] | try.swift:18:13:18:25 | try? ... [some:0] | +| conversions.swift:33:16:33:26 | call to sourceInt() | conversions.swift:33:12:33:27 | call to Self.init(_:) | provenance | | +| conversions.swift:34:18:34:28 | call to sourceInt() | conversions.swift:34:12:34:29 | call to Self.init(_:) | provenance | | +| conversions.swift:35:18:35:28 | call to sourceInt() | conversions.swift:35:12:35:29 | call to Float.init(_:) | provenance | | +| conversions.swift:36:12:36:30 | call to String.init(_:) [Collection element] | conversions.swift:36:12:36:30 | call to String.init(_:) | provenance | | +| conversions.swift:36:19:36:29 | call to sourceInt() | conversions.swift:36:12:36:30 | call to String.init(_:) | provenance | | +| conversions.swift:36:19:36:29 | call to sourceInt() | conversions.swift:36:12:36:30 | call to String.init(_:) [Collection element] | provenance | | +| conversions.swift:37:12:37:30 | call to String.init(_:) | conversions.swift:37:12:37:32 | .utf8 | provenance | | +| conversions.swift:37:19:37:29 | call to sourceInt() | conversions.swift:37:12:37:30 | call to String.init(_:) | provenance | | +| conversions.swift:39:12:39:30 | [...] [Collection element] | conversions.swift:40:12:40:12 | arr | provenance | | +| conversions.swift:39:12:39:30 | [...] [Collection element] | conversions.swift:41:12:41:12 | arr [Collection element] | provenance | | +| conversions.swift:39:12:39:30 | [...] [Collection element] | conversions.swift:41:12:41:17 | ...[...] | provenance | | +| conversions.swift:39:12:39:30 | [...] [Collection element] | conversions.swift:42:20:42:20 | arr | provenance | | +| conversions.swift:39:12:39:30 | [...] [Collection element] | conversions.swift:42:20:42:20 | arr [Collection element] | provenance | | +| conversions.swift:39:12:39:30 | [...] [Collection element] | conversions.swift:43:20:43:20 | arr | provenance | | +| conversions.swift:39:12:39:30 | [...] [Collection element] | conversions.swift:43:20:43:20 | arr [Collection element] | provenance | | +| conversions.swift:39:19:39:29 | call to sourceInt() | conversions.swift:39:12:39:30 | [...] [Collection element] | provenance | | +| conversions.swift:41:12:41:12 | arr [Collection element] | conversions.swift:41:12:41:17 | ...[...] | provenance | | +| conversions.swift:42:12:42:23 | call to Array.init(_:) [Collection element] | conversions.swift:42:12:42:23 | call to Array.init(_:) | provenance | | +| conversions.swift:42:20:42:20 | arr | conversions.swift:42:12:42:23 | call to Array.init(_:) [Collection element] | provenance | | +| conversions.swift:42:20:42:20 | arr [Collection element] | conversions.swift:42:12:42:23 | call to Array.init(_:) [Collection element] | provenance | | +| conversions.swift:43:12:43:23 | call to Array.init(_:) [Collection element] | conversions.swift:43:12:43:26 | ...[...] | provenance | | +| conversions.swift:43:20:43:20 | arr | conversions.swift:43:12:43:23 | call to Array.init(_:) [Collection element] | provenance | | +| conversions.swift:43:20:43:20 | arr [Collection element] | conversions.swift:43:12:43:23 | call to Array.init(_:) [Collection element] | provenance | | +| conversions.swift:44:12:44:39 | call to Array.init(_:) [Collection element] | conversions.swift:44:12:44:39 | call to Array.init(_:) | provenance | | +| conversions.swift:44:20:44:33 | call to sourceString() | conversions.swift:44:20:44:35 | .utf8 | provenance | | +| conversions.swift:44:20:44:35 | .utf8 | conversions.swift:44:12:44:39 | call to Array.init(_:) [Collection element] | provenance | | +| conversions.swift:45:12:45:39 | call to Array.init(_:) [Collection element] | conversions.swift:45:12:45:42 | ...[...] | provenance | | +| conversions.swift:45:20:45:33 | call to sourceString() | conversions.swift:45:20:45:35 | .utf8 | provenance | | +| conversions.swift:45:20:45:35 | .utf8 | conversions.swift:45:12:45:39 | call to Array.init(_:) [Collection element] | provenance | | +| conversions.swift:47:13:47:23 | call to sourceInt() | conversions.swift:48:13:48:13 | v | provenance | | +| conversions.swift:51:18:51:41 | call to numericCast(_:) | conversions.swift:52:12:52:12 | v2 | provenance | | +| conversions.swift:51:30:51:40 | call to sourceInt() | conversions.swift:51:18:51:41 | call to numericCast(_:) | provenance | | +| conversions.swift:54:17:54:57 | call to unsafeBitCast(_:to:) | conversions.swift:55:12:55:12 | v4 | provenance | | +| conversions.swift:54:31:54:41 | call to sourceInt() | conversions.swift:54:17:54:57 | call to unsafeBitCast(_:to:) | provenance | | +| conversions.swift:57:11:57:47 | call to Self.init(truncatingIfNeeded:) | conversions.swift:58:12:58:12 | v5 | provenance | | +| conversions.swift:57:36:57:46 | call to sourceInt() | conversions.swift:57:11:57:47 | call to Self.init(truncatingIfNeeded:) | provenance | | +| conversions.swift:60:11:60:39 | call to UInt.init(bitPattern:) | conversions.swift:61:12:61:12 | v6 | provenance | | +| conversions.swift:60:28:60:38 | call to sourceInt() | conversions.swift:60:11:60:39 | call to UInt.init(bitPattern:) | provenance | | +| conversions.swift:63:11:63:26 | call to abs(_:) | conversions.swift:64:12:64:12 | v7 | provenance | | +| conversions.swift:63:15:63:25 | call to sourceInt() | conversions.swift:63:11:63:26 | call to abs(_:) | provenance | | +| conversions.swift:69:28:69:38 | call to sourceInt() | conversions.swift:69:12:69:39 | call to advanced(by:) | provenance | | +| conversions.swift:71:12:71:36 | call to Self.init(exactly:) [some:0] | conversions.swift:71:12:71:37 | ...! | provenance | | +| conversions.swift:71:25:71:35 | call to sourceInt() | conversions.swift:71:12:71:36 | call to Self.init(exactly:) [some:0] | provenance | | +| conversions.swift:72:12:72:39 | call to Self.init(exactly:) [some:0] | conversions.swift:72:12:72:40 | ...! | provenance | | +| conversions.swift:72:28:72:38 | call to sourceInt() | conversions.swift:72:12:72:39 | call to Self.init(exactly:) [some:0] | provenance | | +| conversions.swift:73:26:73:36 | call to sourceInt() | conversions.swift:73:12:73:37 | call to Self.init(clamping:) | provenance | | +| conversions.swift:74:36:74:46 | call to sourceInt() | conversions.swift:74:12:74:47 | call to Self.init(truncatingIfNeeded:) | provenance | | +| conversions.swift:75:12:75:41 | call to Self.init(_:radix:) [some:0] | conversions.swift:75:12:75:42 | ...! | provenance | | +| conversions.swift:75:16:75:29 | call to sourceString() | conversions.swift:75:12:75:41 | call to Self.init(_:radix:) [some:0] | provenance | | +| conversions.swift:77:30:77:40 | call to sourceInt() | conversions.swift:77:12:77:41 | call to Self.init(littleEndian:) | provenance | | +| conversions.swift:78:27:78:37 | call to sourceInt() | conversions.swift:78:12:78:38 | call to Self.init(bigEndian:) | provenance | | +| conversions.swift:79:12:79:22 | call to sourceInt() | conversions.swift:79:12:79:24 | .littleEndian | provenance | | +| conversions.swift:80:12:80:22 | call to sourceInt() | conversions.swift:80:12:80:24 | .bigEndian | provenance | | +| conversions.swift:109:18:109:30 | call to sourceFloat() | conversions.swift:109:12:109:31 | call to Float.init(_:) | provenance | | +| conversions.swift:110:18:110:30 | call to sourceFloat() | conversions.swift:110:12:110:31 | call to UInt8.init(_:) | provenance | | +| conversions.swift:111:12:111:32 | call to String.init(_:) [Collection element] | conversions.swift:111:12:111:32 | call to String.init(_:) | provenance | | +| conversions.swift:111:19:111:31 | call to sourceFloat() | conversions.swift:111:12:111:32 | call to String.init(_:) | provenance | | +| conversions.swift:111:19:111:31 | call to sourceFloat() | conversions.swift:111:12:111:32 | call to String.init(_:) [Collection element] | provenance | | +| conversions.swift:112:12:112:32 | call to String.init(_:) | conversions.swift:112:12:112:34 | .utf8 | provenance | | +| conversions.swift:112:19:112:31 | call to sourceFloat() | conversions.swift:112:12:112:32 | call to String.init(_:) | provenance | | +| conversions.swift:113:12:113:34 | call to String.init(_:) [Collection element] | conversions.swift:113:12:113:34 | call to String.init(_:) | provenance | | +| conversions.swift:113:19:113:33 | call to sourceFloat80() | conversions.swift:113:12:113:34 | call to String.init(_:) | provenance | | +| conversions.swift:113:19:113:33 | call to sourceFloat80() | conversions.swift:113:12:113:34 | call to String.init(_:) [Collection element] | provenance | | +| conversions.swift:114:12:114:34 | call to String.init(_:) | conversions.swift:114:12:114:36 | .utf8 | provenance | | +| conversions.swift:114:19:114:33 | call to sourceFloat80() | conversions.swift:114:12:114:34 | call to String.init(_:) | provenance | | +| conversions.swift:115:12:115:33 | call to String.init(_:) [Collection element] | conversions.swift:115:12:115:33 | call to String.init(_:) | provenance | | +| conversions.swift:115:19:115:32 | call to sourceDouble() | conversions.swift:115:12:115:33 | call to String.init(_:) | provenance | | +| conversions.swift:115:19:115:32 | call to sourceDouble() | conversions.swift:115:12:115:33 | call to String.init(_:) [Collection element] | provenance | | +| conversions.swift:116:12:116:33 | call to String.init(_:) | conversions.swift:116:12:116:35 | .utf8 | provenance | | +| conversions.swift:116:19:116:32 | call to sourceDouble() | conversions.swift:116:12:116:33 | call to String.init(_:) | provenance | | +| conversions.swift:118:18:118:30 | call to sourceFloat() | conversions.swift:118:12:118:31 | call to Float.init(_:) | provenance | | +| conversions.swift:119:41:119:51 | call to sourceInt() | conversions.swift:119:12:119:70 | call to Float.init(sign:exponent:significand:) | provenance | | +| conversions.swift:120:57:120:69 | call to sourceFloat() | conversions.swift:120:12:120:70 | call to Float.init(sign:exponent:significand:) | provenance | | +| conversions.swift:122:44:122:56 | call to sourceFloat() | conversions.swift:122:12:122:57 | call to Float.init(signOf:magnitudeOf:) | provenance | | +| conversions.swift:124:12:124:24 | call to sourceFloat() | conversions.swift:124:12:124:26 | .exponent | provenance | | +| conversions.swift:125:12:125:24 | call to sourceFloat() | conversions.swift:125:12:125:26 | .significand | provenance | | +| conversions.swift:126:12:126:26 | call to sourceFloat80() | conversions.swift:126:12:126:28 | .exponent | provenance | | +| conversions.swift:127:12:127:26 | call to sourceFloat80() | conversions.swift:127:12:127:28 | .significand | provenance | | +| conversions.swift:128:12:128:25 | call to sourceDouble() | conversions.swift:128:12:128:27 | .exponent | provenance | | +| conversions.swift:129:12:129:25 | call to sourceDouble() | conversions.swift:129:12:129:27 | .significand | provenance | | +| conversions.swift:130:12:130:23 | call to sourceUInt() | conversions.swift:130:12:130:25 | .byteSwapped | provenance | | +| conversions.swift:131:12:131:25 | call to sourceUInt64() | conversions.swift:131:12:131:27 | .byteSwapped | provenance | | +| conversions.swift:136:12:136:33 | call to String.init(_:) [Collection element] | conversions.swift:136:12:136:33 | call to String.init(_:) | provenance | | +| conversions.swift:136:19:136:32 | call to sourceString() | conversions.swift:136:12:136:33 | call to String.init(_:) | provenance | | +| conversions.swift:136:19:136:32 | call to sourceString() | conversions.swift:136:12:136:33 | call to String.init(_:) [Collection element] | provenance | | +| conversions.swift:144:12:144:35 | call to MyString.init(_:) | conversions.swift:144:12:144:35 | call to MyString.init(_:) [some:0] | provenance | | +| conversions.swift:144:12:144:35 | call to MyString.init(_:) | conversions.swift:145:12:145:12 | ms2 | provenance | | +| conversions.swift:144:12:144:35 | call to MyString.init(_:) | conversions.swift:146:12:146:16 | .description | provenance | | +| conversions.swift:144:12:144:35 | call to MyString.init(_:) | conversions.swift:147:12:147:16 | .debugDescription | provenance | | +| conversions.swift:144:12:144:35 | call to MyString.init(_:) [some:0] | conversions.swift:144:12:144:36 | ...! | provenance | | +| conversions.swift:144:12:144:36 | ...! | conversions.swift:145:12:145:12 | ms2 | provenance | | +| conversions.swift:144:12:144:36 | ...! | conversions.swift:146:12:146:16 | .description | provenance | | +| conversions.swift:144:12:144:36 | ...! | conversions.swift:147:12:147:16 | .debugDescription | provenance | | +| conversions.swift:144:21:144:34 | call to sourceString() | conversions.swift:144:12:144:35 | call to MyString.init(_:) | provenance | | +| conversions.swift:152:31:152:44 | call to sourceString() | conversions.swift:153:12:153:12 | parent | provenance | | +| conversions.swift:152:31:152:44 | call to sourceString() | conversions.swift:154:12:154:12 | parent | provenance | | +| conversions.swift:152:31:152:44 | call to sourceString() | conversions.swift:156:40:156:40 | parent | provenance | | +| conversions.swift:156:25:156:69 | call to unsafeDowncast(_:to:) | conversions.swift:157:12:157:12 | v3 | provenance | | +| conversions.swift:156:25:156:69 | call to unsafeDowncast(_:to:) | conversions.swift:158:12:158:12 | v3 | provenance | | +| conversions.swift:156:40:156:40 | parent | conversions.swift:156:25:156:69 | call to unsafeDowncast(_:to:) | provenance | | +| conversions.swift:166:24:166:34 | call to sourceInt() | conversions.swift:166:12:166:35 | call to Self.init(_:) | provenance | | +| conversions.swift:171:14:171:33 | call to sourceArray(_:) | conversions.swift:173:13:173:13 | arr1 | provenance | | +| conversions.swift:171:14:171:33 | call to sourceArray(_:) | conversions.swift:175:13:175:19 | ...[...] | provenance | | +| conversions.swift:171:14:171:33 | call to sourceArray(_:) | conversions.swift:178:25:178:25 | arr1 | provenance | | +| conversions.swift:171:14:171:33 | call to sourceArray(_:) | conversions.swift:185:31:185:31 | arr1 | provenance | | +| conversions.swift:172:14:172:26 | [...] [Collection element] | conversions.swift:174:13:174:13 | arr2 | provenance | | +| conversions.swift:172:14:172:26 | [...] [Collection element] | conversions.swift:176:13:176:13 | arr2 [Collection element] | provenance | | +| conversions.swift:172:14:172:26 | [...] [Collection element] | conversions.swift:176:13:176:19 | ...[...] | provenance | | +| conversions.swift:172:14:172:26 | [...] [Collection element] | conversions.swift:179:25:179:25 | arr2 | provenance | | +| conversions.swift:172:14:172:26 | [...] [Collection element] | conversions.swift:179:25:179:25 | arr2 [Collection element] | provenance | | +| conversions.swift:172:14:172:26 | [...] [Collection element] | conversions.swift:186:31:186:31 | arr2 | provenance | | +| conversions.swift:172:14:172:26 | [...] [Collection element] | conversions.swift:186:31:186:31 | arr2 [Collection element] | provenance | | +| conversions.swift:172:15:172:25 | call to sourceInt() | conversions.swift:172:14:172:26 | [...] [Collection element] | provenance | | +| conversions.swift:176:13:176:13 | arr2 [Collection element] | conversions.swift:176:13:176:19 | ...[...] | provenance | | +| conversions.swift:178:19:178:29 | call to Array.init(_:) [Collection element] | conversions.swift:180:13:180:13 | arr1b | provenance | | +| conversions.swift:178:19:178:29 | call to Array.init(_:) [Collection element] | conversions.swift:182:13:182:13 | arr1b [Collection element] | provenance | | +| conversions.swift:178:19:178:29 | call to Array.init(_:) [Collection element] | conversions.swift:182:13:182:20 | ...[...] | provenance | | +| conversions.swift:178:25:178:25 | arr1 | conversions.swift:178:19:178:29 | call to Array.init(_:) [Collection element] | provenance | | +| conversions.swift:179:19:179:29 | call to Array.init(_:) [Collection element] | conversions.swift:181:13:181:13 | arr2b | provenance | | +| conversions.swift:179:19:179:29 | call to Array.init(_:) [Collection element] | conversions.swift:183:13:183:13 | arr2b [Collection element] | provenance | | +| conversions.swift:179:19:179:29 | call to Array.init(_:) [Collection element] | conversions.swift:183:13:183:20 | ...[...] | provenance | | +| conversions.swift:179:25:179:25 | arr2 | conversions.swift:179:19:179:29 | call to Array.init(_:) [Collection element] | provenance | | +| conversions.swift:179:25:179:25 | arr2 [Collection element] | conversions.swift:179:19:179:29 | call to Array.init(_:) [Collection element] | provenance | | +| conversions.swift:182:13:182:13 | arr1b [Collection element] | conversions.swift:182:13:182:20 | ...[...] | provenance | | +| conversions.swift:183:13:183:13 | arr2b [Collection element] | conversions.swift:183:13:183:20 | ...[...] | provenance | | +| conversions.swift:185:15:185:35 | call to ContiguousArray.init(_:) [Collection element] | conversions.swift:187:13:187:13 | arr1c | provenance | | +| conversions.swift:185:15:185:35 | call to ContiguousArray.init(_:) [Collection element] | conversions.swift:189:13:189:13 | arr1c [Collection element] | provenance | | +| conversions.swift:185:15:185:35 | call to ContiguousArray.init(_:) [Collection element] | conversions.swift:189:13:189:20 | ...[...] | provenance | | +| conversions.swift:185:31:185:31 | arr1 | conversions.swift:185:15:185:35 | call to ContiguousArray.init(_:) [Collection element] | provenance | | +| conversions.swift:186:15:186:35 | call to ContiguousArray.init(_:) [Collection element] | conversions.swift:188:13:188:13 | arr2c | provenance | | +| conversions.swift:186:15:186:35 | call to ContiguousArray.init(_:) [Collection element] | conversions.swift:190:13:190:13 | arr2c [Collection element] | provenance | | +| conversions.swift:186:15:186:35 | call to ContiguousArray.init(_:) [Collection element] | conversions.swift:190:13:190:20 | ...[...] | provenance | | +| conversions.swift:186:31:186:31 | arr2 | conversions.swift:186:15:186:35 | call to ContiguousArray.init(_:) [Collection element] | provenance | | +| conversions.swift:186:31:186:31 | arr2 [Collection element] | conversions.swift:186:15:186:35 | call to ContiguousArray.init(_:) [Collection element] | provenance | | +| conversions.swift:189:13:189:13 | arr1c [Collection element] | conversions.swift:189:13:189:20 | ...[...] | provenance | | +| conversions.swift:190:13:190:13 | arr2c [Collection element] | conversions.swift:190:13:190:20 | ...[...] | provenance | | +| file://:0:0:0:0 | self [first] | file://:0:0:0:0 | .first | provenance | | +| file://:0:0:0:0 | self [second] | file://:0:0:0:0 | .second | provenance | | +| file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [first] | provenance | | +| file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [second] | provenance | | +| simple.swift:12:17:12:24 | call to source() | simple.swift:12:13:12:24 | ... .+(_:_:) ... | provenance | | +| simple.swift:13:13:13:20 | call to source() | simple.swift:13:13:13:24 | ... .+(_:_:) ... | provenance | | +| simple.swift:14:17:14:24 | call to source() | simple.swift:14:13:14:24 | ... .-(_:_:) ... | provenance | | +| simple.swift:15:13:15:20 | call to source() | simple.swift:15:13:15:24 | ... .-(_:_:) ... | provenance | | +| simple.swift:16:17:16:24 | call to source() | simple.swift:16:13:16:24 | ... .*(_:_:) ... | provenance | | +| simple.swift:17:13:17:20 | call to source() | simple.swift:17:13:17:24 | ... .*(_:_:) ... | provenance | | +| simple.swift:18:19:18:26 | call to source() | simple.swift:18:13:18:26 | ... ./(_:_:) ... | provenance | | +| simple.swift:19:13:19:20 | call to source() | simple.swift:19:13:19:24 | ... ./(_:_:) ... | provenance | | +| simple.swift:20:19:20:26 | call to source() | simple.swift:20:13:20:26 | ... .%(_:_:) ... | provenance | | +| simple.swift:21:13:21:20 | call to source() | simple.swift:21:13:21:24 | ... .%(_:_:) ... | provenance | | +| simple.swift:23:14:23:21 | call to source() | simple.swift:23:13:23:21 | call to -(_:) | provenance | | +| simple.swift:27:18:27:25 | call to source() | simple.swift:27:13:27:25 | ... .&+(_:_:) ... | provenance | | +| simple.swift:28:13:28:20 | call to source() | simple.swift:28:13:28:25 | ... .&+(_:_:) ... | provenance | | +| simple.swift:29:18:29:25 | call to source() | simple.swift:29:13:29:25 | ... .&-(_:_:) ... | provenance | | +| simple.swift:30:13:30:20 | call to source() | simple.swift:30:13:30:25 | ... .&-(_:_:) ... | provenance | | +| simple.swift:31:18:31:25 | call to source() | simple.swift:31:13:31:25 | ... .&*(_:_:) ... | provenance | | +| simple.swift:32:13:32:20 | call to source() | simple.swift:32:13:32:25 | ... .&*(_:_:) ... | provenance | | +| simple.swift:40:8:40:15 | call to source() | simple.swift:41:13:41:13 | a | provenance | | +| simple.swift:40:8:40:15 | call to source() | simple.swift:43:13:43:13 | a | provenance | | +| simple.swift:48:8:48:15 | call to source() | simple.swift:49:13:49:13 | b | provenance | | +| simple.swift:48:8:48:15 | call to source() | simple.swift:51:13:51:13 | b | provenance | | +| simple.swift:54:8:54:15 | call to source() | simple.swift:55:13:55:13 | c | provenance | | +| simple.swift:54:8:54:15 | call to source() | simple.swift:57:13:57:13 | c | provenance | | +| simple.swift:60:8:60:15 | call to source() | simple.swift:61:13:61:13 | d | provenance | | +| simple.swift:60:8:60:15 | call to source() | simple.swift:63:13:63:13 | d | provenance | | +| simple.swift:66:8:66:15 | call to source() | simple.swift:67:13:67:13 | e | provenance | | +| simple.swift:66:8:66:15 | call to source() | simple.swift:69:13:69:13 | e | provenance | | +| simple.swift:73:17:73:24 | call to source() | simple.swift:73:13:73:24 | ... .\|(_:_:) ... | provenance | | +| simple.swift:74:13:74:20 | call to source() | simple.swift:74:13:74:24 | ... .\|(_:_:) ... | provenance | | +| simple.swift:76:22:76:29 | call to source() | simple.swift:76:13:76:29 | ... .&(_:_:) ... | provenance | | +| simple.swift:77:13:77:20 | call to source() | simple.swift:77:13:77:24 | ... .&(_:_:) ... | provenance | | +| simple.swift:79:22:79:29 | call to source() | simple.swift:79:13:79:29 | ... .^(_:_:) ... | provenance | | +| simple.swift:80:13:80:20 | call to source() | simple.swift:80:13:80:24 | ... .^(_:_:) ... | provenance | | +| simple.swift:82:13:82:20 | call to source() | simple.swift:82:13:82:25 | ... .<<(_:_:) ... | provenance | | +| simple.swift:83:13:83:20 | call to source() | simple.swift:83:13:83:26 | ... .&<<(_:_:) ... | provenance | | +| simple.swift:84:13:84:20 | call to source() | simple.swift:84:13:84:25 | ... .>>(_:_:) ... | provenance | | +| simple.swift:85:13:85:20 | call to source() | simple.swift:85:13:85:26 | ... .&>>(_:_:) ... | provenance | | +| simple.swift:87:14:87:21 | call to source() | simple.swift:87:13:87:21 | call to ~(_:) | provenance | | +| stringinterpolation.swift:6:6:6:6 | self [first] | file://:0:0:0:0 | self [first] | provenance | | +| stringinterpolation.swift:6:6:6:6 | value | file://:0:0:0:0 | value | provenance | | +| stringinterpolation.swift:7:6:7:6 | self [second] | file://:0:0:0:0 | self [second] | provenance | | +| stringinterpolation.swift:7:6:7:6 | value | file://:0:0:0:0 | value | provenance | | +| stringinterpolation.swift:11:36:11:44 | pair [first] | stringinterpolation.swift:13:36:13:36 | pair [first] | provenance | | +| stringinterpolation.swift:13:3:13:3 | [post] self | stringinterpolation.swift:11:11:14:2 | self[return] | provenance | | +| stringinterpolation.swift:13:36:13:36 | pair [first] | stringinterpolation.swift:6:6:6:6 | self [first] | provenance | | +| stringinterpolation.swift:13:36:13:36 | pair [first] | stringinterpolation.swift:13:36:13:41 | .first | provenance | | +| stringinterpolation.swift:13:36:13:41 | .first | stringinterpolation.swift:11:11:14:2 | self[return] | provenance | | +| stringinterpolation.swift:13:36:13:41 | .first | stringinterpolation.swift:13:3:13:3 | [post] self | provenance | | +| stringinterpolation.swift:19:2:19:2 | [post] p1 [first] | stringinterpolation.swift:20:2:20:2 | p1 [first] | provenance | | +| stringinterpolation.swift:19:13:19:20 | call to source() | stringinterpolation.swift:6:6:6:6 | value | provenance | | +| stringinterpolation.swift:19:13:19:20 | call to source() | stringinterpolation.swift:19:2:19:2 | [post] p1 [first] | provenance | | +| stringinterpolation.swift:20:2:20:2 | p1 [first] | stringinterpolation.swift:22:21:22:21 | p1 [first] | provenance | | +| stringinterpolation.swift:20:2:20:2 | p1 [first] | stringinterpolation.swift:24:21:24:21 | p1 [first] | provenance | | +| stringinterpolation.swift:22:21:22:21 | p1 [first] | stringinterpolation.swift:6:6:6:6 | self [first] | provenance | | +| stringinterpolation.swift:22:21:22:21 | p1 [first] | stringinterpolation.swift:22:21:22:24 | .first | provenance | | +| stringinterpolation.swift:22:21:22:24 | .first | stringinterpolation.swift:22:12:22:12 | "..." | provenance | | +| stringinterpolation.swift:24:20:24:20 | [post] $interpolation | stringinterpolation.swift:24:12:24:12 | "..." | provenance | | +| stringinterpolation.swift:24:21:24:21 | p1 [first] | stringinterpolation.swift:11:36:11:44 | pair [first] | provenance | | +| stringinterpolation.swift:24:21:24:21 | p1 [first] | stringinterpolation.swift:24:20:24:20 | [post] $interpolation | provenance | | +| stringinterpolation.swift:28:2:28:2 | [post] p2 [second] | stringinterpolation.swift:31:21:31:21 | p2 [second] | provenance | | +| stringinterpolation.swift:28:14:28:21 | call to source() | stringinterpolation.swift:7:6:7:6 | value | provenance | | +| stringinterpolation.swift:28:14:28:21 | call to source() | stringinterpolation.swift:28:2:28:2 | [post] p2 [second] | provenance | | +| stringinterpolation.swift:31:21:31:21 | p2 [second] | stringinterpolation.swift:7:6:7:6 | self [second] | provenance | | +| stringinterpolation.swift:31:21:31:21 | p2 [second] | stringinterpolation.swift:31:21:31:24 | .second | provenance | | +| stringinterpolation.swift:31:21:31:24 | .second | stringinterpolation.swift:31:12:31:12 | "..." | provenance | | +| stringinterpolation.swift:36:10:36:17 | call to source() | stringinterpolation.swift:40:12:40:12 | "..." | provenance | | +| stringinterpolation.swift:36:10:36:17 | call to source() | stringinterpolation.swift:41:12:41:12 | "..." | provenance | | +| stringinterpolation.swift:36:10:36:17 | call to source() | stringinterpolation.swift:42:12:42:12 | "..." | provenance | | +| subscript.swift:13:15:13:22 | call to source() | subscript.swift:13:15:13:25 | ...[...] | provenance | | +| subscript.swift:14:15:14:23 | call to source2() | subscript.swift:14:15:14:26 | ...[...] | provenance | | +| try.swift:9:17:9:24 | call to source() | try.swift:9:13:9:24 | try ... | provenance | | +| try.swift:15:17:15:24 | call to source() | try.swift:15:12:15:24 | try! ... | provenance | | +| try.swift:18:13:18:25 | try? ... [some:0] | try.swift:18:12:18:27 | ...! | provenance | | +| try.swift:18:18:18:25 | call to source() | try.swift:18:12:18:27 | ...! | provenance | | +| try.swift:18:18:18:25 | call to source() | try.swift:18:18:18:25 | call to source() [some:0] | provenance | | +| try.swift:18:18:18:25 | call to source() [some:0] | try.swift:18:13:18:25 | try? ... [some:0] | provenance | | nodes | conversions.swift:32:12:32:22 | call to sourceInt() | semmle.label | call to sourceInt() | | conversions.swift:33:12:33:27 | call to Self.init(_:) | semmle.label | call to Self.init(_:) | diff --git a/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.expected b/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.expected index b6c8f60bbc15..9f783f1ea66e 100644 --- a/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.expected +++ b/swift/ql/test/query-tests/Security/CWE-078/CommandInjection.expected @@ -1,184 +1,184 @@ edges -| CommandInjection.swift:58:22:58:33 | command | CommandInjection.swift:62:16:62:16 | command | -| CommandInjection.swift:58:22:58:33 | command [some:0] | CommandInjection.swift:62:16:62:16 | command [some:0] | -| CommandInjection.swift:62:16:62:16 | command | CommandInjection.swift:62:16:62:16 | command [some:0] | -| CommandInjection.swift:69:8:69:12 | let ...? [some:0, some:0] | CommandInjection.swift:69:12:69:12 | userControlledString [some:0] | -| CommandInjection.swift:69:8:69:12 | let ...? [some:0] | CommandInjection.swift:69:12:69:12 | userControlledString | -| CommandInjection.swift:69:12:69:12 | userControlledString | CommandInjection.swift:75:27:75:27 | userControlledString | -| CommandInjection.swift:69:12:69:12 | userControlledString | CommandInjection.swift:78:43:78:43 | userControlledString | -| CommandInjection.swift:69:12:69:12 | userControlledString [some:0] | CommandInjection.swift:78:43:78:43 | userControlledString [some:0] | -| CommandInjection.swift:69:40:69:94 | call to String.init(contentsOf:) | CommandInjection.swift:69:40:69:94 | call to String.init(contentsOf:) [some:0] | -| CommandInjection.swift:69:40:69:94 | call to String.init(contentsOf:) | CommandInjection.swift:75:27:75:27 | userControlledString | -| CommandInjection.swift:69:40:69:94 | call to String.init(contentsOf:) | CommandInjection.swift:78:43:78:43 | userControlledString | -| CommandInjection.swift:69:40:69:94 | call to String.init(contentsOf:) [some:0, some:0] | CommandInjection.swift:69:8:69:12 | let ...? [some:0, some:0] | -| CommandInjection.swift:69:40:69:94 | call to String.init(contentsOf:) [some:0] | CommandInjection.swift:69:8:69:12 | let ...? [some:0] | -| CommandInjection.swift:69:40:69:94 | call to String.init(contentsOf:) [some:0] | CommandInjection.swift:69:40:69:94 | call to String.init(contentsOf:) [some:0, some:0] | -| CommandInjection.swift:69:40:69:94 | call to String.init(contentsOf:) [some:0] | CommandInjection.swift:78:43:78:43 | userControlledString [some:0] | -| CommandInjection.swift:75:2:75:2 | [post] task1 [arguments, Collection element] | CommandInjection.swift:75:2:75:2 | [post] task1 | -| CommandInjection.swift:75:20:75:47 | [...] [Collection element] | CommandInjection.swift:75:2:75:2 | [post] task1 [arguments, Collection element] | -| CommandInjection.swift:75:27:75:27 | userControlledString | CommandInjection.swift:75:20:75:47 | [...] [Collection element] | -| CommandInjection.swift:78:5:78:9 | let ...? [some:0] | CommandInjection.swift:78:9:78:9 | validatedString | -| CommandInjection.swift:78:9:78:9 | validatedString | CommandInjection.swift:81:31:81:31 | validatedString | -| CommandInjection.swift:78:27:78:63 | call to validateCommand(_:) | CommandInjection.swift:81:31:81:31 | validatedString | -| CommandInjection.swift:78:27:78:63 | call to validateCommand(_:) [some:0] | CommandInjection.swift:78:5:78:9 | let ...? [some:0] | -| CommandInjection.swift:78:43:78:43 | userControlledString | CommandInjection.swift:58:22:58:33 | command | -| CommandInjection.swift:78:43:78:43 | userControlledString | CommandInjection.swift:78:27:78:63 | call to validateCommand(_:) | -| CommandInjection.swift:78:43:78:43 | userControlledString | CommandInjection.swift:78:27:78:63 | call to validateCommand(_:) [some:0] | -| CommandInjection.swift:78:43:78:43 | userControlledString [some:0] | CommandInjection.swift:58:22:58:33 | command [some:0] | -| CommandInjection.swift:78:43:78:43 | userControlledString [some:0] | CommandInjection.swift:78:27:78:63 | call to validateCommand(_:) [some:0] | -| CommandInjection.swift:81:6:81:6 | [post] task2 [arguments, Collection element] | CommandInjection.swift:81:6:81:6 | [post] task2 | -| CommandInjection.swift:81:24:81:46 | [...] [Collection element] | CommandInjection.swift:81:6:81:6 | [post] task2 [arguments, Collection element] | -| CommandInjection.swift:81:31:81:31 | validatedString | CommandInjection.swift:81:24:81:46 | [...] [Collection element] | -| CommandInjection.swift:93:20:93:40 | arguments [Collection element] | CommandInjection.swift:94:20:94:20 | arguments [Collection element] | -| CommandInjection.swift:94:3:94:3 | [post] self [arguments, Collection element] | CommandInjection.swift:94:3:94:3 | [post] self | -| CommandInjection.swift:94:20:94:20 | arguments [Collection element] | CommandInjection.swift:94:3:94:3 | [post] self [arguments, Collection element] | -| CommandInjection.swift:99:8:99:12 | let ...? [some:0] | CommandInjection.swift:99:12:99:12 | userControlledString | -| CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:114:36:114:36 | userControlledString | -| CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:115:28:115:28 | userControlledString | -| CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:119:45:119:45 | userControlledString | -| CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:120:36:120:36 | userControlledString | -| CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:121:28:121:36 | ... .+(_:_:) ... | -| CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:125:46:125:46 | userControlledString | -| CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:126:22:126:22 | userControlledString | -| CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:130:45:130:45 | userControlledString | -| CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:131:36:131:36 | userControlledString | -| CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:132:21:132:21 | userControlledString | -| CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:133:22:133:22 | userControlledString | -| CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:134:24:134:24 | userControlledString | -| CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:144:42:144:42 | userControlledString | -| CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:145:75:145:75 | userControlledString | -| CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:148:35:148:35 | userControlledString | -| CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:149:70:149:70 | userControlledString | -| CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:154:53:154:53 | userControlledString | -| CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:157:52:157:52 | userControlledString | -| CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:158:33:158:33 | userControlledString | -| CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:160:57:160:57 | userControlledString | -| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) [some:0] | -| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:114:36:114:36 | userControlledString | -| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:115:28:115:28 | userControlledString | -| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:119:45:119:45 | userControlledString | -| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:120:36:120:36 | userControlledString | -| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:121:28:121:36 | ... .+(_:_:) ... | -| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:125:46:125:46 | userControlledString | -| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:126:22:126:22 | userControlledString | -| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:130:45:130:45 | userControlledString | -| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:131:36:131:36 | userControlledString | -| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:132:21:132:21 | userControlledString | -| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:133:22:133:22 | userControlledString | -| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:134:24:134:24 | userControlledString | -| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:144:42:144:42 | userControlledString | -| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:145:75:145:75 | userControlledString | -| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:148:35:148:35 | userControlledString | -| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:149:70:149:70 | userControlledString | -| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:154:53:154:53 | userControlledString | -| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:157:52:157:52 | userControlledString | -| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:158:33:158:33 | userControlledString | -| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:160:57:160:57 | userControlledString | -| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) [some:0] | CommandInjection.swift:99:8:99:12 | let ...? [some:0] | -| CommandInjection.swift:114:2:114:2 | [post] task3 [executableURL] | CommandInjection.swift:114:2:114:2 | [post] task3 | -| CommandInjection.swift:114:24:114:56 | call to URL.init(string:) [some:0] | CommandInjection.swift:114:24:114:57 | ...! | -| CommandInjection.swift:114:24:114:57 | ...! | CommandInjection.swift:114:2:114:2 | [post] task3 [executableURL] | -| CommandInjection.swift:114:36:114:36 | userControlledString | CommandInjection.swift:114:24:114:56 | call to URL.init(string:) [some:0] | -| CommandInjection.swift:115:2:115:2 | [post] task3 [arguments, Collection element] | CommandInjection.swift:115:2:115:2 | [post] task3 | -| CommandInjection.swift:115:20:115:48 | [...] [Collection element] | CommandInjection.swift:115:2:115:2 | [post] task3 [arguments, Collection element] | -| CommandInjection.swift:115:28:115:28 | userControlledString | CommandInjection.swift:115:20:115:48 | [...] [Collection element] | -| CommandInjection.swift:119:2:119:2 | [post] task4 [executableURL] | CommandInjection.swift:119:2:119:2 | [post] task4 | -| CommandInjection.swift:119:24:119:65 | call to URL.init(fileURLWithPath:) | CommandInjection.swift:119:2:119:2 | [post] task4 [executableURL] | -| CommandInjection.swift:119:45:119:45 | userControlledString | CommandInjection.swift:119:24:119:65 | call to URL.init(fileURLWithPath:) | -| CommandInjection.swift:120:2:120:2 | [post] task4 [executableURL] | CommandInjection.swift:120:2:120:2 | [post] task4 | -| CommandInjection.swift:120:24:120:56 | call to URL.init(string:) [some:0] | CommandInjection.swift:120:24:120:57 | ...! | -| CommandInjection.swift:120:24:120:57 | ...! | CommandInjection.swift:120:2:120:2 | [post] task4 [executableURL] | -| CommandInjection.swift:120:36:120:36 | userControlledString | CommandInjection.swift:120:24:120:56 | call to URL.init(string:) [some:0] | -| CommandInjection.swift:121:2:121:2 | [post] task4 [arguments, Collection element] | CommandInjection.swift:121:2:121:2 | [post] task4 | -| CommandInjection.swift:121:20:121:56 | [...] [Collection element] | CommandInjection.swift:121:2:121:2 | [post] task4 [arguments, Collection element] | -| CommandInjection.swift:121:28:121:36 | ... .+(_:_:) ... | CommandInjection.swift:121:20:121:56 | [...] [Collection element] | -| CommandInjection.swift:125:2:125:7 | [post] ...? [executableURL] | CommandInjection.swift:125:2:125:7 | [post] ...? | -| CommandInjection.swift:125:25:125:66 | call to URL.init(fileURLWithPath:) | CommandInjection.swift:125:2:125:7 | [post] ...? [executableURL] | -| CommandInjection.swift:125:46:125:46 | userControlledString | CommandInjection.swift:125:25:125:66 | call to URL.init(fileURLWithPath:) | -| CommandInjection.swift:126:2:126:7 | [post] ...? [arguments, Collection element] | CommandInjection.swift:126:2:126:7 | [post] ...? | -| CommandInjection.swift:126:21:126:42 | [...] [Collection element] | CommandInjection.swift:126:2:126:7 | [post] ...? [arguments, Collection element] | -| CommandInjection.swift:126:22:126:22 | userControlledString | CommandInjection.swift:126:21:126:42 | [...] [Collection element] | -| CommandInjection.swift:130:2:130:2 | [post] task6 [executableURL] | CommandInjection.swift:130:2:130:2 | [post] task6 | -| CommandInjection.swift:130:24:130:65 | call to URL.init(fileURLWithPath:) | CommandInjection.swift:130:2:130:2 | [post] task6 [executableURL] | -| CommandInjection.swift:130:45:130:45 | userControlledString | CommandInjection.swift:130:24:130:65 | call to URL.init(fileURLWithPath:) | -| CommandInjection.swift:131:2:131:2 | [post] task6 [executableURL] | CommandInjection.swift:131:2:131:2 | [post] task6 | -| CommandInjection.swift:131:24:131:56 | call to URL.init(string:) [some:0] | CommandInjection.swift:131:24:131:57 | ...! | -| CommandInjection.swift:131:24:131:57 | ...! | CommandInjection.swift:131:2:131:2 | [post] task6 [executableURL] | -| CommandInjection.swift:131:36:131:36 | userControlledString | CommandInjection.swift:131:24:131:56 | call to URL.init(string:) [some:0] | -| CommandInjection.swift:132:2:132:2 | [post] task6 [arguments, Collection element] | CommandInjection.swift:132:2:132:2 | [post] task6 | -| CommandInjection.swift:132:20:132:41 | [...] [Collection element] | CommandInjection.swift:132:2:132:2 | [post] task6 [arguments, Collection element] | -| CommandInjection.swift:132:21:132:21 | userControlledString | CommandInjection.swift:132:20:132:41 | [...] [Collection element] | -| CommandInjection.swift:133:21:133:42 | [...] [Collection element] | CommandInjection.swift:93:20:93:40 | arguments [Collection element] | -| CommandInjection.swift:133:22:133:22 | userControlledString | CommandInjection.swift:133:21:133:42 | [...] [Collection element] | -| CommandInjection.swift:134:24:134:24 | userControlledString | CommandInjection.swift:144:42:144:42 | userControlledString | -| CommandInjection.swift:134:24:134:24 | userControlledString | CommandInjection.swift:145:75:145:75 | userControlledString | -| CommandInjection.swift:134:24:134:24 | userControlledString | CommandInjection.swift:148:35:148:35 | userControlledString | -| CommandInjection.swift:134:24:134:24 | userControlledString | CommandInjection.swift:149:70:149:70 | userControlledString | -| CommandInjection.swift:134:24:134:24 | userControlledString | CommandInjection.swift:154:53:154:53 | userControlledString | -| CommandInjection.swift:134:24:134:24 | userControlledString | CommandInjection.swift:157:52:157:52 | userControlledString | -| CommandInjection.swift:134:24:134:24 | userControlledString | CommandInjection.swift:158:33:158:33 | userControlledString | -| CommandInjection.swift:134:24:134:24 | userControlledString | CommandInjection.swift:160:57:160:57 | userControlledString | -| CommandInjection.swift:145:67:145:95 | [...] [Collection element] | CommandInjection.swift:145:67:145:95 | [...] | -| CommandInjection.swift:145:75:145:75 | userControlledString | CommandInjection.swift:145:67:145:95 | [...] [Collection element] | -| CommandInjection.swift:148:23:148:55 | call to URL.init(string:) [some:0] | CommandInjection.swift:148:23:148:56 | ...! | -| CommandInjection.swift:148:35:148:35 | userControlledString | CommandInjection.swift:148:23:148:55 | call to URL.init(string:) [some:0] | -| CommandInjection.swift:149:62:149:90 | [...] [Collection element] | CommandInjection.swift:149:62:149:90 | [...] | -| CommandInjection.swift:149:70:149:70 | userControlledString | CommandInjection.swift:149:62:149:90 | [...] [Collection element] | -| CommandInjection.swift:154:41:154:73 | call to URL.init(string:) [some:0] | CommandInjection.swift:154:41:154:74 | ...! | -| CommandInjection.swift:154:53:154:53 | userControlledString | CommandInjection.swift:154:41:154:73 | call to URL.init(string:) [some:0] | -| CommandInjection.swift:157:40:157:72 | call to URL.init(string:) [some:0] | CommandInjection.swift:157:40:157:73 | ...! | -| CommandInjection.swift:157:40:157:72 | call to URL.init(string:) [some:0] | CommandInjection.swift:157:40:157:73 | ...! | -| CommandInjection.swift:157:40:157:73 | ...! | file://:0:0:0:0 | url | -| CommandInjection.swift:157:52:157:52 | userControlledString | CommandInjection.swift:157:40:157:72 | call to URL.init(string:) [some:0] | -| CommandInjection.swift:158:32:158:53 | [...] [Collection element] | CommandInjection.swift:158:32:158:53 | [...] | -| CommandInjection.swift:158:33:158:33 | userControlledString | CommandInjection.swift:158:32:158:53 | [...] [Collection element] | -| CommandInjection.swift:160:45:160:77 | call to URL.init(string:) [some:0] | CommandInjection.swift:160:45:160:78 | ...! | -| CommandInjection.swift:160:45:160:77 | call to URL.init(string:) [some:0] | CommandInjection.swift:160:45:160:78 | ...! | -| CommandInjection.swift:160:45:160:78 | ...! | file://:0:0:0:0 | url | -| CommandInjection.swift:160:57:160:57 | userControlledString | CommandInjection.swift:160:45:160:77 | call to URL.init(string:) [some:0] | -| CommandInjection.swift:174:3:174:3 | newValue [Collection element] | CommandInjection.swift:175:19:175:19 | newValue [Collection element] | -| CommandInjection.swift:174:3:174:3 | newValue [Collection element] | CommandInjection.swift:176:20:176:20 | newValue [Collection element] | -| CommandInjection.swift:174:3:174:3 | newValue [Collection element] | CommandInjection.swift:177:19:177:19 | newValue [Collection element] | -| CommandInjection.swift:175:4:175:4 | [post] getter for .p1 [arguments, Collection element] | CommandInjection.swift:175:4:175:4 | [post] getter for .p1 | -| CommandInjection.swift:175:19:175:19 | newValue [Collection element] | CommandInjection.swift:175:4:175:4 | [post] getter for .p1 [arguments, Collection element] | -| CommandInjection.swift:176:4:176:6 | [post] ...! [arguments, Collection element] | CommandInjection.swift:176:4:176:6 | [post] ...! | -| CommandInjection.swift:176:20:176:20 | newValue [Collection element] | CommandInjection.swift:176:4:176:6 | [post] ...! [arguments, Collection element] | -| CommandInjection.swift:177:4:177:4 | [post] ...! [arguments, Collection element] | CommandInjection.swift:177:4:177:4 | [post] ...! | -| CommandInjection.swift:177:19:177:19 | newValue [Collection element] | CommandInjection.swift:177:4:177:4 | [post] ...! [arguments, Collection element] | -| CommandInjection.swift:182:9:182:13 | let ...? [some:0] | CommandInjection.swift:182:13:182:13 | userControlledString | -| CommandInjection.swift:182:13:182:13 | userControlledString | CommandInjection.swift:186:19:186:19 | userControlledString | -| CommandInjection.swift:182:13:182:13 | userControlledString | CommandInjection.swift:192:31:192:31 | userControlledString | -| CommandInjection.swift:182:41:182:95 | call to String.init(contentsOf:) | CommandInjection.swift:182:41:182:95 | call to String.init(contentsOf:) [some:0] | -| CommandInjection.swift:182:41:182:95 | call to String.init(contentsOf:) | CommandInjection.swift:186:19:186:19 | userControlledString | -| CommandInjection.swift:182:41:182:95 | call to String.init(contentsOf:) | CommandInjection.swift:192:31:192:31 | userControlledString | -| CommandInjection.swift:182:41:182:95 | call to String.init(contentsOf:) [some:0] | CommandInjection.swift:182:9:182:13 | let ...? [some:0] | -| CommandInjection.swift:186:18:186:39 | [...] [Collection element] | CommandInjection.swift:188:18:188:18 | tainted1 [Collection element] | -| CommandInjection.swift:186:18:186:39 | [...] [Collection element] | CommandInjection.swift:189:19:189:19 | tainted1 [Collection element] | -| CommandInjection.swift:186:18:186:39 | [...] [Collection element] | CommandInjection.swift:190:18:190:18 | tainted1 [Collection element] | -| CommandInjection.swift:186:19:186:19 | userControlledString | CommandInjection.swift:186:18:186:39 | [...] [Collection element] | -| CommandInjection.swift:188:3:188:3 | [post] getter for .p1 [arguments, Collection element] | CommandInjection.swift:188:3:188:3 | [post] getter for .p1 | -| CommandInjection.swift:188:18:188:18 | tainted1 [Collection element] | CommandInjection.swift:188:3:188:3 | [post] getter for .p1 [arguments, Collection element] | -| CommandInjection.swift:188:18:188:18 | tainted1 [Collection element] | CommandInjection.swift:189:19:189:19 | tainted1 [Collection element] | -| CommandInjection.swift:188:18:188:18 | tainted1 [Collection element] | CommandInjection.swift:190:18:190:18 | tainted1 [Collection element] | -| CommandInjection.swift:189:3:189:5 | [post] ...! [arguments, Collection element] | CommandInjection.swift:189:3:189:5 | [post] ...! | -| CommandInjection.swift:189:19:189:19 | tainted1 [Collection element] | CommandInjection.swift:189:3:189:5 | [post] ...! [arguments, Collection element] | -| CommandInjection.swift:189:19:189:19 | tainted1 [Collection element] | CommandInjection.swift:190:18:190:18 | tainted1 [Collection element] | -| CommandInjection.swift:190:3:190:3 | [post] ...! [arguments, Collection element] | CommandInjection.swift:190:3:190:3 | [post] ...! | -| CommandInjection.swift:190:18:190:18 | tainted1 [Collection element] | CommandInjection.swift:190:3:190:3 | [post] ...! [arguments, Collection element] | -| CommandInjection.swift:192:30:192:51 | [...] [Collection element] | CommandInjection.swift:194:18:194:18 | tainted2 [Collection element] | -| CommandInjection.swift:192:30:192:51 | [...] [Collection element] | CommandInjection.swift:195:19:195:19 | tainted2 [Collection element] | -| CommandInjection.swift:192:30:192:51 | [...] [Collection element] | CommandInjection.swift:196:18:196:18 | tainted2 [Collection element] | -| CommandInjection.swift:192:30:192:51 | [...] [Collection element] | CommandInjection.swift:198:13:198:13 | tainted2 [Collection element] | -| CommandInjection.swift:192:31:192:31 | userControlledString | CommandInjection.swift:192:30:192:51 | [...] [Collection element] | -| CommandInjection.swift:194:3:194:3 | [post] getter for .p1 [arguments, Collection element] | CommandInjection.swift:194:3:194:3 | [post] getter for .p1 | -| CommandInjection.swift:194:18:194:18 | tainted2 [Collection element] | CommandInjection.swift:194:3:194:3 | [post] getter for .p1 [arguments, Collection element] | -| CommandInjection.swift:195:3:195:5 | [post] ...! [arguments, Collection element] | CommandInjection.swift:195:3:195:5 | [post] ...! | -| CommandInjection.swift:195:19:195:19 | tainted2 [Collection element] | CommandInjection.swift:195:3:195:5 | [post] ...! [arguments, Collection element] | -| CommandInjection.swift:196:3:196:3 | [post] ...! [arguments, Collection element] | CommandInjection.swift:196:3:196:3 | [post] ...! | -| CommandInjection.swift:196:18:196:18 | tainted2 [Collection element] | CommandInjection.swift:196:3:196:3 | [post] ...! [arguments, Collection element] | -| CommandInjection.swift:198:13:198:13 | tainted2 [Collection element] | CommandInjection.swift:174:3:174:3 | newValue [Collection element] | -| file://:0:0:0:0 | url | file://:0:0:0:0 | url | -| file://:0:0:0:0 | url | file://:0:0:0:0 | url | +| CommandInjection.swift:58:22:58:33 | command | CommandInjection.swift:62:16:62:16 | command | provenance | | +| CommandInjection.swift:58:22:58:33 | command [some:0] | CommandInjection.swift:62:16:62:16 | command [some:0] | provenance | | +| CommandInjection.swift:62:16:62:16 | command | CommandInjection.swift:62:16:62:16 | command [some:0] | provenance | | +| CommandInjection.swift:69:8:69:12 | let ...? [some:0, some:0] | CommandInjection.swift:69:12:69:12 | userControlledString [some:0] | provenance | | +| CommandInjection.swift:69:8:69:12 | let ...? [some:0] | CommandInjection.swift:69:12:69:12 | userControlledString | provenance | | +| CommandInjection.swift:69:12:69:12 | userControlledString | CommandInjection.swift:75:27:75:27 | userControlledString | provenance | | +| CommandInjection.swift:69:12:69:12 | userControlledString | CommandInjection.swift:78:43:78:43 | userControlledString | provenance | | +| CommandInjection.swift:69:12:69:12 | userControlledString [some:0] | CommandInjection.swift:78:43:78:43 | userControlledString [some:0] | provenance | | +| CommandInjection.swift:69:40:69:94 | call to String.init(contentsOf:) | CommandInjection.swift:69:40:69:94 | call to String.init(contentsOf:) [some:0] | provenance | | +| CommandInjection.swift:69:40:69:94 | call to String.init(contentsOf:) | CommandInjection.swift:75:27:75:27 | userControlledString | provenance | | +| CommandInjection.swift:69:40:69:94 | call to String.init(contentsOf:) | CommandInjection.swift:78:43:78:43 | userControlledString | provenance | | +| CommandInjection.swift:69:40:69:94 | call to String.init(contentsOf:) [some:0, some:0] | CommandInjection.swift:69:8:69:12 | let ...? [some:0, some:0] | provenance | | +| CommandInjection.swift:69:40:69:94 | call to String.init(contentsOf:) [some:0] | CommandInjection.swift:69:8:69:12 | let ...? [some:0] | provenance | | +| CommandInjection.swift:69:40:69:94 | call to String.init(contentsOf:) [some:0] | CommandInjection.swift:69:40:69:94 | call to String.init(contentsOf:) [some:0, some:0] | provenance | | +| CommandInjection.swift:69:40:69:94 | call to String.init(contentsOf:) [some:0] | CommandInjection.swift:78:43:78:43 | userControlledString [some:0] | provenance | | +| CommandInjection.swift:75:2:75:2 | [post] task1 [arguments, Collection element] | CommandInjection.swift:75:2:75:2 | [post] task1 | provenance | | +| CommandInjection.swift:75:20:75:47 | [...] [Collection element] | CommandInjection.swift:75:2:75:2 | [post] task1 [arguments, Collection element] | provenance | | +| CommandInjection.swift:75:27:75:27 | userControlledString | CommandInjection.swift:75:20:75:47 | [...] [Collection element] | provenance | | +| CommandInjection.swift:78:5:78:9 | let ...? [some:0] | CommandInjection.swift:78:9:78:9 | validatedString | provenance | | +| CommandInjection.swift:78:9:78:9 | validatedString | CommandInjection.swift:81:31:81:31 | validatedString | provenance | | +| CommandInjection.swift:78:27:78:63 | call to validateCommand(_:) | CommandInjection.swift:81:31:81:31 | validatedString | provenance | | +| CommandInjection.swift:78:27:78:63 | call to validateCommand(_:) [some:0] | CommandInjection.swift:78:5:78:9 | let ...? [some:0] | provenance | | +| CommandInjection.swift:78:43:78:43 | userControlledString | CommandInjection.swift:58:22:58:33 | command | provenance | | +| CommandInjection.swift:78:43:78:43 | userControlledString | CommandInjection.swift:78:27:78:63 | call to validateCommand(_:) | provenance | | +| CommandInjection.swift:78:43:78:43 | userControlledString | CommandInjection.swift:78:27:78:63 | call to validateCommand(_:) [some:0] | provenance | | +| CommandInjection.swift:78:43:78:43 | userControlledString [some:0] | CommandInjection.swift:58:22:58:33 | command [some:0] | provenance | | +| CommandInjection.swift:78:43:78:43 | userControlledString [some:0] | CommandInjection.swift:78:27:78:63 | call to validateCommand(_:) [some:0] | provenance | | +| CommandInjection.swift:81:6:81:6 | [post] task2 [arguments, Collection element] | CommandInjection.swift:81:6:81:6 | [post] task2 | provenance | | +| CommandInjection.swift:81:24:81:46 | [...] [Collection element] | CommandInjection.swift:81:6:81:6 | [post] task2 [arguments, Collection element] | provenance | | +| CommandInjection.swift:81:31:81:31 | validatedString | CommandInjection.swift:81:24:81:46 | [...] [Collection element] | provenance | | +| CommandInjection.swift:93:20:93:40 | arguments [Collection element] | CommandInjection.swift:94:20:94:20 | arguments [Collection element] | provenance | | +| CommandInjection.swift:94:3:94:3 | [post] self [arguments, Collection element] | CommandInjection.swift:94:3:94:3 | [post] self | provenance | | +| CommandInjection.swift:94:20:94:20 | arguments [Collection element] | CommandInjection.swift:94:3:94:3 | [post] self [arguments, Collection element] | provenance | | +| CommandInjection.swift:99:8:99:12 | let ...? [some:0] | CommandInjection.swift:99:12:99:12 | userControlledString | provenance | | +| CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:114:36:114:36 | userControlledString | provenance | | +| CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:115:28:115:28 | userControlledString | provenance | | +| CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:119:45:119:45 | userControlledString | provenance | | +| CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:120:36:120:36 | userControlledString | provenance | | +| CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:121:28:121:36 | ... .+(_:_:) ... | provenance | | +| CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:125:46:125:46 | userControlledString | provenance | | +| CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:126:22:126:22 | userControlledString | provenance | | +| CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:130:45:130:45 | userControlledString | provenance | | +| CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:131:36:131:36 | userControlledString | provenance | | +| CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:132:21:132:21 | userControlledString | provenance | | +| CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:133:22:133:22 | userControlledString | provenance | | +| CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:134:24:134:24 | userControlledString | provenance | | +| CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:144:42:144:42 | userControlledString | provenance | | +| CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:145:75:145:75 | userControlledString | provenance | | +| CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:148:35:148:35 | userControlledString | provenance | | +| CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:149:70:149:70 | userControlledString | provenance | | +| CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:154:53:154:53 | userControlledString | provenance | | +| CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:157:52:157:52 | userControlledString | provenance | | +| CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:158:33:158:33 | userControlledString | provenance | | +| CommandInjection.swift:99:12:99:12 | userControlledString | CommandInjection.swift:160:57:160:57 | userControlledString | provenance | | +| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) [some:0] | provenance | | +| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:114:36:114:36 | userControlledString | provenance | | +| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:115:28:115:28 | userControlledString | provenance | | +| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:119:45:119:45 | userControlledString | provenance | | +| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:120:36:120:36 | userControlledString | provenance | | +| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:121:28:121:36 | ... .+(_:_:) ... | provenance | | +| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:125:46:125:46 | userControlledString | provenance | | +| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:126:22:126:22 | userControlledString | provenance | | +| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:130:45:130:45 | userControlledString | provenance | | +| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:131:36:131:36 | userControlledString | provenance | | +| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:132:21:132:21 | userControlledString | provenance | | +| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:133:22:133:22 | userControlledString | provenance | | +| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:134:24:134:24 | userControlledString | provenance | | +| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:144:42:144:42 | userControlledString | provenance | | +| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:145:75:145:75 | userControlledString | provenance | | +| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:148:35:148:35 | userControlledString | provenance | | +| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:149:70:149:70 | userControlledString | provenance | | +| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:154:53:154:53 | userControlledString | provenance | | +| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:157:52:157:52 | userControlledString | provenance | | +| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:158:33:158:33 | userControlledString | provenance | | +| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) | CommandInjection.swift:160:57:160:57 | userControlledString | provenance | | +| CommandInjection.swift:99:40:99:94 | call to String.init(contentsOf:) [some:0] | CommandInjection.swift:99:8:99:12 | let ...? [some:0] | provenance | | +| CommandInjection.swift:114:2:114:2 | [post] task3 [executableURL] | CommandInjection.swift:114:2:114:2 | [post] task3 | provenance | | +| CommandInjection.swift:114:24:114:56 | call to URL.init(string:) [some:0] | CommandInjection.swift:114:24:114:57 | ...! | provenance | | +| CommandInjection.swift:114:24:114:57 | ...! | CommandInjection.swift:114:2:114:2 | [post] task3 [executableURL] | provenance | | +| CommandInjection.swift:114:36:114:36 | userControlledString | CommandInjection.swift:114:24:114:56 | call to URL.init(string:) [some:0] | provenance | | +| CommandInjection.swift:115:2:115:2 | [post] task3 [arguments, Collection element] | CommandInjection.swift:115:2:115:2 | [post] task3 | provenance | | +| CommandInjection.swift:115:20:115:48 | [...] [Collection element] | CommandInjection.swift:115:2:115:2 | [post] task3 [arguments, Collection element] | provenance | | +| CommandInjection.swift:115:28:115:28 | userControlledString | CommandInjection.swift:115:20:115:48 | [...] [Collection element] | provenance | | +| CommandInjection.swift:119:2:119:2 | [post] task4 [executableURL] | CommandInjection.swift:119:2:119:2 | [post] task4 | provenance | | +| CommandInjection.swift:119:24:119:65 | call to URL.init(fileURLWithPath:) | CommandInjection.swift:119:2:119:2 | [post] task4 [executableURL] | provenance | | +| CommandInjection.swift:119:45:119:45 | userControlledString | CommandInjection.swift:119:24:119:65 | call to URL.init(fileURLWithPath:) | provenance | | +| CommandInjection.swift:120:2:120:2 | [post] task4 [executableURL] | CommandInjection.swift:120:2:120:2 | [post] task4 | provenance | | +| CommandInjection.swift:120:24:120:56 | call to URL.init(string:) [some:0] | CommandInjection.swift:120:24:120:57 | ...! | provenance | | +| CommandInjection.swift:120:24:120:57 | ...! | CommandInjection.swift:120:2:120:2 | [post] task4 [executableURL] | provenance | | +| CommandInjection.swift:120:36:120:36 | userControlledString | CommandInjection.swift:120:24:120:56 | call to URL.init(string:) [some:0] | provenance | | +| CommandInjection.swift:121:2:121:2 | [post] task4 [arguments, Collection element] | CommandInjection.swift:121:2:121:2 | [post] task4 | provenance | | +| CommandInjection.swift:121:20:121:56 | [...] [Collection element] | CommandInjection.swift:121:2:121:2 | [post] task4 [arguments, Collection element] | provenance | | +| CommandInjection.swift:121:28:121:36 | ... .+(_:_:) ... | CommandInjection.swift:121:20:121:56 | [...] [Collection element] | provenance | | +| CommandInjection.swift:125:2:125:7 | [post] ...? [executableURL] | CommandInjection.swift:125:2:125:7 | [post] ...? | provenance | | +| CommandInjection.swift:125:25:125:66 | call to URL.init(fileURLWithPath:) | CommandInjection.swift:125:2:125:7 | [post] ...? [executableURL] | provenance | | +| CommandInjection.swift:125:46:125:46 | userControlledString | CommandInjection.swift:125:25:125:66 | call to URL.init(fileURLWithPath:) | provenance | | +| CommandInjection.swift:126:2:126:7 | [post] ...? [arguments, Collection element] | CommandInjection.swift:126:2:126:7 | [post] ...? | provenance | | +| CommandInjection.swift:126:21:126:42 | [...] [Collection element] | CommandInjection.swift:126:2:126:7 | [post] ...? [arguments, Collection element] | provenance | | +| CommandInjection.swift:126:22:126:22 | userControlledString | CommandInjection.swift:126:21:126:42 | [...] [Collection element] | provenance | | +| CommandInjection.swift:130:2:130:2 | [post] task6 [executableURL] | CommandInjection.swift:130:2:130:2 | [post] task6 | provenance | | +| CommandInjection.swift:130:24:130:65 | call to URL.init(fileURLWithPath:) | CommandInjection.swift:130:2:130:2 | [post] task6 [executableURL] | provenance | | +| CommandInjection.swift:130:45:130:45 | userControlledString | CommandInjection.swift:130:24:130:65 | call to URL.init(fileURLWithPath:) | provenance | | +| CommandInjection.swift:131:2:131:2 | [post] task6 [executableURL] | CommandInjection.swift:131:2:131:2 | [post] task6 | provenance | | +| CommandInjection.swift:131:24:131:56 | call to URL.init(string:) [some:0] | CommandInjection.swift:131:24:131:57 | ...! | provenance | | +| CommandInjection.swift:131:24:131:57 | ...! | CommandInjection.swift:131:2:131:2 | [post] task6 [executableURL] | provenance | | +| CommandInjection.swift:131:36:131:36 | userControlledString | CommandInjection.swift:131:24:131:56 | call to URL.init(string:) [some:0] | provenance | | +| CommandInjection.swift:132:2:132:2 | [post] task6 [arguments, Collection element] | CommandInjection.swift:132:2:132:2 | [post] task6 | provenance | | +| CommandInjection.swift:132:20:132:41 | [...] [Collection element] | CommandInjection.swift:132:2:132:2 | [post] task6 [arguments, Collection element] | provenance | | +| CommandInjection.swift:132:21:132:21 | userControlledString | CommandInjection.swift:132:20:132:41 | [...] [Collection element] | provenance | | +| CommandInjection.swift:133:21:133:42 | [...] [Collection element] | CommandInjection.swift:93:20:93:40 | arguments [Collection element] | provenance | | +| CommandInjection.swift:133:22:133:22 | userControlledString | CommandInjection.swift:133:21:133:42 | [...] [Collection element] | provenance | | +| CommandInjection.swift:134:24:134:24 | userControlledString | CommandInjection.swift:144:42:144:42 | userControlledString | provenance | | +| CommandInjection.swift:134:24:134:24 | userControlledString | CommandInjection.swift:145:75:145:75 | userControlledString | provenance | | +| CommandInjection.swift:134:24:134:24 | userControlledString | CommandInjection.swift:148:35:148:35 | userControlledString | provenance | | +| CommandInjection.swift:134:24:134:24 | userControlledString | CommandInjection.swift:149:70:149:70 | userControlledString | provenance | | +| CommandInjection.swift:134:24:134:24 | userControlledString | CommandInjection.swift:154:53:154:53 | userControlledString | provenance | | +| CommandInjection.swift:134:24:134:24 | userControlledString | CommandInjection.swift:157:52:157:52 | userControlledString | provenance | | +| CommandInjection.swift:134:24:134:24 | userControlledString | CommandInjection.swift:158:33:158:33 | userControlledString | provenance | | +| CommandInjection.swift:134:24:134:24 | userControlledString | CommandInjection.swift:160:57:160:57 | userControlledString | provenance | | +| CommandInjection.swift:145:67:145:95 | [...] [Collection element] | CommandInjection.swift:145:67:145:95 | [...] | provenance | | +| CommandInjection.swift:145:75:145:75 | userControlledString | CommandInjection.swift:145:67:145:95 | [...] [Collection element] | provenance | | +| CommandInjection.swift:148:23:148:55 | call to URL.init(string:) [some:0] | CommandInjection.swift:148:23:148:56 | ...! | provenance | | +| CommandInjection.swift:148:35:148:35 | userControlledString | CommandInjection.swift:148:23:148:55 | call to URL.init(string:) [some:0] | provenance | | +| CommandInjection.swift:149:62:149:90 | [...] [Collection element] | CommandInjection.swift:149:62:149:90 | [...] | provenance | | +| CommandInjection.swift:149:70:149:70 | userControlledString | CommandInjection.swift:149:62:149:90 | [...] [Collection element] | provenance | | +| CommandInjection.swift:154:41:154:73 | call to URL.init(string:) [some:0] | CommandInjection.swift:154:41:154:74 | ...! | provenance | | +| CommandInjection.swift:154:53:154:53 | userControlledString | CommandInjection.swift:154:41:154:73 | call to URL.init(string:) [some:0] | provenance | | +| CommandInjection.swift:157:40:157:72 | call to URL.init(string:) [some:0] | CommandInjection.swift:157:40:157:73 | ...! | provenance | | +| CommandInjection.swift:157:40:157:72 | call to URL.init(string:) [some:0] | CommandInjection.swift:157:40:157:73 | ...! | provenance | | +| CommandInjection.swift:157:40:157:73 | ...! | file://:0:0:0:0 | url | provenance | | +| CommandInjection.swift:157:52:157:52 | userControlledString | CommandInjection.swift:157:40:157:72 | call to URL.init(string:) [some:0] | provenance | | +| CommandInjection.swift:158:32:158:53 | [...] [Collection element] | CommandInjection.swift:158:32:158:53 | [...] | provenance | | +| CommandInjection.swift:158:33:158:33 | userControlledString | CommandInjection.swift:158:32:158:53 | [...] [Collection element] | provenance | | +| CommandInjection.swift:160:45:160:77 | call to URL.init(string:) [some:0] | CommandInjection.swift:160:45:160:78 | ...! | provenance | | +| CommandInjection.swift:160:45:160:77 | call to URL.init(string:) [some:0] | CommandInjection.swift:160:45:160:78 | ...! | provenance | | +| CommandInjection.swift:160:45:160:78 | ...! | file://:0:0:0:0 | url | provenance | | +| CommandInjection.swift:160:57:160:57 | userControlledString | CommandInjection.swift:160:45:160:77 | call to URL.init(string:) [some:0] | provenance | | +| CommandInjection.swift:174:3:174:3 | newValue [Collection element] | CommandInjection.swift:175:19:175:19 | newValue [Collection element] | provenance | | +| CommandInjection.swift:174:3:174:3 | newValue [Collection element] | CommandInjection.swift:176:20:176:20 | newValue [Collection element] | provenance | | +| CommandInjection.swift:174:3:174:3 | newValue [Collection element] | CommandInjection.swift:177:19:177:19 | newValue [Collection element] | provenance | | +| CommandInjection.swift:175:4:175:4 | [post] getter for .p1 [arguments, Collection element] | CommandInjection.swift:175:4:175:4 | [post] getter for .p1 | provenance | | +| CommandInjection.swift:175:19:175:19 | newValue [Collection element] | CommandInjection.swift:175:4:175:4 | [post] getter for .p1 [arguments, Collection element] | provenance | | +| CommandInjection.swift:176:4:176:6 | [post] ...! [arguments, Collection element] | CommandInjection.swift:176:4:176:6 | [post] ...! | provenance | | +| CommandInjection.swift:176:20:176:20 | newValue [Collection element] | CommandInjection.swift:176:4:176:6 | [post] ...! [arguments, Collection element] | provenance | | +| CommandInjection.swift:177:4:177:4 | [post] ...! [arguments, Collection element] | CommandInjection.swift:177:4:177:4 | [post] ...! | provenance | | +| CommandInjection.swift:177:19:177:19 | newValue [Collection element] | CommandInjection.swift:177:4:177:4 | [post] ...! [arguments, Collection element] | provenance | | +| CommandInjection.swift:182:9:182:13 | let ...? [some:0] | CommandInjection.swift:182:13:182:13 | userControlledString | provenance | | +| CommandInjection.swift:182:13:182:13 | userControlledString | CommandInjection.swift:186:19:186:19 | userControlledString | provenance | | +| CommandInjection.swift:182:13:182:13 | userControlledString | CommandInjection.swift:192:31:192:31 | userControlledString | provenance | | +| CommandInjection.swift:182:41:182:95 | call to String.init(contentsOf:) | CommandInjection.swift:182:41:182:95 | call to String.init(contentsOf:) [some:0] | provenance | | +| CommandInjection.swift:182:41:182:95 | call to String.init(contentsOf:) | CommandInjection.swift:186:19:186:19 | userControlledString | provenance | | +| CommandInjection.swift:182:41:182:95 | call to String.init(contentsOf:) | CommandInjection.swift:192:31:192:31 | userControlledString | provenance | | +| CommandInjection.swift:182:41:182:95 | call to String.init(contentsOf:) [some:0] | CommandInjection.swift:182:9:182:13 | let ...? [some:0] | provenance | | +| CommandInjection.swift:186:18:186:39 | [...] [Collection element] | CommandInjection.swift:188:18:188:18 | tainted1 [Collection element] | provenance | | +| CommandInjection.swift:186:18:186:39 | [...] [Collection element] | CommandInjection.swift:189:19:189:19 | tainted1 [Collection element] | provenance | | +| CommandInjection.swift:186:18:186:39 | [...] [Collection element] | CommandInjection.swift:190:18:190:18 | tainted1 [Collection element] | provenance | | +| CommandInjection.swift:186:19:186:19 | userControlledString | CommandInjection.swift:186:18:186:39 | [...] [Collection element] | provenance | | +| CommandInjection.swift:188:3:188:3 | [post] getter for .p1 [arguments, Collection element] | CommandInjection.swift:188:3:188:3 | [post] getter for .p1 | provenance | | +| CommandInjection.swift:188:18:188:18 | tainted1 [Collection element] | CommandInjection.swift:188:3:188:3 | [post] getter for .p1 [arguments, Collection element] | provenance | | +| CommandInjection.swift:188:18:188:18 | tainted1 [Collection element] | CommandInjection.swift:189:19:189:19 | tainted1 [Collection element] | provenance | | +| CommandInjection.swift:188:18:188:18 | tainted1 [Collection element] | CommandInjection.swift:190:18:190:18 | tainted1 [Collection element] | provenance | | +| CommandInjection.swift:189:3:189:5 | [post] ...! [arguments, Collection element] | CommandInjection.swift:189:3:189:5 | [post] ...! | provenance | | +| CommandInjection.swift:189:19:189:19 | tainted1 [Collection element] | CommandInjection.swift:189:3:189:5 | [post] ...! [arguments, Collection element] | provenance | | +| CommandInjection.swift:189:19:189:19 | tainted1 [Collection element] | CommandInjection.swift:190:18:190:18 | tainted1 [Collection element] | provenance | | +| CommandInjection.swift:190:3:190:3 | [post] ...! [arguments, Collection element] | CommandInjection.swift:190:3:190:3 | [post] ...! | provenance | | +| CommandInjection.swift:190:18:190:18 | tainted1 [Collection element] | CommandInjection.swift:190:3:190:3 | [post] ...! [arguments, Collection element] | provenance | | +| CommandInjection.swift:192:30:192:51 | [...] [Collection element] | CommandInjection.swift:194:18:194:18 | tainted2 [Collection element] | provenance | | +| CommandInjection.swift:192:30:192:51 | [...] [Collection element] | CommandInjection.swift:195:19:195:19 | tainted2 [Collection element] | provenance | | +| CommandInjection.swift:192:30:192:51 | [...] [Collection element] | CommandInjection.swift:196:18:196:18 | tainted2 [Collection element] | provenance | | +| CommandInjection.swift:192:30:192:51 | [...] [Collection element] | CommandInjection.swift:198:13:198:13 | tainted2 [Collection element] | provenance | | +| CommandInjection.swift:192:31:192:31 | userControlledString | CommandInjection.swift:192:30:192:51 | [...] [Collection element] | provenance | | +| CommandInjection.swift:194:3:194:3 | [post] getter for .p1 [arguments, Collection element] | CommandInjection.swift:194:3:194:3 | [post] getter for .p1 | provenance | | +| CommandInjection.swift:194:18:194:18 | tainted2 [Collection element] | CommandInjection.swift:194:3:194:3 | [post] getter for .p1 [arguments, Collection element] | provenance | | +| CommandInjection.swift:195:3:195:5 | [post] ...! [arguments, Collection element] | CommandInjection.swift:195:3:195:5 | [post] ...! | provenance | | +| CommandInjection.swift:195:19:195:19 | tainted2 [Collection element] | CommandInjection.swift:195:3:195:5 | [post] ...! [arguments, Collection element] | provenance | | +| CommandInjection.swift:196:3:196:3 | [post] ...! [arguments, Collection element] | CommandInjection.swift:196:3:196:3 | [post] ...! | provenance | | +| CommandInjection.swift:196:18:196:18 | tainted2 [Collection element] | CommandInjection.swift:196:3:196:3 | [post] ...! [arguments, Collection element] | provenance | | +| CommandInjection.swift:198:13:198:13 | tainted2 [Collection element] | CommandInjection.swift:174:3:174:3 | newValue [Collection element] | provenance | | +| file://:0:0:0:0 | url | file://:0:0:0:0 | url | provenance | | +| file://:0:0:0:0 | url | file://:0:0:0:0 | url | provenance | | nodes | CommandInjection.swift:58:22:58:33 | command | semmle.label | command | | CommandInjection.swift:58:22:58:33 | command [some:0] | semmle.label | command [some:0] | diff --git a/swift/ql/test/query-tests/Security/CWE-079/UnsafeWebViewFetch.expected b/swift/ql/test/query-tests/Security/CWE-079/UnsafeWebViewFetch.expected index 66356d313493..c2fefc171e64 100644 --- a/swift/ql/test/query-tests/Security/CWE-079/UnsafeWebViewFetch.expected +++ b/swift/ql/test/query-tests/Security/CWE-079/UnsafeWebViewFetch.expected @@ -1,69 +1,69 @@ edges -| UnsafeWebViewFetch.swift:94:10:94:37 | try ... | UnsafeWebViewFetch.swift:117:21:117:35 | call to getRemoteData() | -| UnsafeWebViewFetch.swift:94:10:94:37 | try ... | UnsafeWebViewFetch.swift:120:25:120:39 | call to getRemoteData() | -| UnsafeWebViewFetch.swift:94:10:94:37 | try ... | UnsafeWebViewFetch.swift:164:21:164:35 | call to getRemoteData() | -| UnsafeWebViewFetch.swift:94:10:94:37 | try ... | UnsafeWebViewFetch.swift:167:25:167:39 | call to getRemoteData() | -| UnsafeWebViewFetch.swift:94:10:94:37 | try ... | UnsafeWebViewFetch.swift:206:17:206:31 | call to getRemoteData() | -| UnsafeWebViewFetch.swift:94:14:94:37 | call to String.init(contentsOf:) | UnsafeWebViewFetch.swift:94:10:94:37 | try ... | -| UnsafeWebViewFetch.swift:103:30:103:84 | call to String.init(contentsOf:) | UnsafeWebViewFetch.swift:103:25:103:84 | try! ... | -| UnsafeWebViewFetch.swift:105:18:105:72 | call to String.init(contentsOf:) | UnsafeWebViewFetch.swift:106:25:106:25 | data | -| UnsafeWebViewFetch.swift:109:30:109:53 | call to String.init(contentsOf:) | UnsafeWebViewFetch.swift:109:25:109:53 | try! ... | -| UnsafeWebViewFetch.swift:117:21:117:35 | call to getRemoteData() | UnsafeWebViewFetch.swift:121:25:121:25 | remoteString | -| UnsafeWebViewFetch.swift:117:21:117:35 | call to getRemoteData() | UnsafeWebViewFetch.swift:124:25:124:51 | ... .+(_:_:) ... | -| UnsafeWebViewFetch.swift:117:21:117:35 | call to getRemoteData() | UnsafeWebViewFetch.swift:127:25:127:25 | "..." | -| UnsafeWebViewFetch.swift:117:21:117:35 | call to getRemoteData() | UnsafeWebViewFetch.swift:131:30:131:30 | remoteString | -| UnsafeWebViewFetch.swift:117:21:117:35 | call to getRemoteData() | UnsafeWebViewFetch.swift:135:25:135:25 | remoteString | -| UnsafeWebViewFetch.swift:117:21:117:35 | call to getRemoteData() | UnsafeWebViewFetch.swift:137:25:137:25 | remoteString | -| UnsafeWebViewFetch.swift:117:21:117:35 | call to getRemoteData() | UnsafeWebViewFetch.swift:139:25:139:25 | remoteString | -| UnsafeWebViewFetch.swift:117:21:117:35 | call to getRemoteData() | UnsafeWebViewFetch.swift:141:25:141:25 | remoteString | -| UnsafeWebViewFetch.swift:117:21:117:35 | call to getRemoteData() | UnsafeWebViewFetch.swift:150:24:150:37 | .utf8 | -| UnsafeWebViewFetch.swift:131:18:131:42 | call to URL.init(string:) [some:0] | UnsafeWebViewFetch.swift:132:52:132:52 | remoteURL [some:0] | -| UnsafeWebViewFetch.swift:131:18:131:42 | call to URL.init(string:) [some:0] | UnsafeWebViewFetch.swift:138:47:138:47 | remoteURL [some:0] | -| UnsafeWebViewFetch.swift:131:18:131:42 | call to URL.init(string:) [some:0] | UnsafeWebViewFetch.swift:139:48:139:48 | remoteURL [some:0] | -| UnsafeWebViewFetch.swift:131:18:131:42 | call to URL.init(string:) [some:0] | UnsafeWebViewFetch.swift:153:85:153:85 | remoteURL [some:0] | -| UnsafeWebViewFetch.swift:131:18:131:42 | call to URL.init(string:) [some:0] | UnsafeWebViewFetch.swift:154:86:154:86 | remoteURL [some:0] | -| UnsafeWebViewFetch.swift:131:30:131:30 | remoteString | UnsafeWebViewFetch.swift:131:18:131:42 | call to URL.init(string:) [some:0] | -| UnsafeWebViewFetch.swift:132:19:132:61 | call to URL.init(string:relativeTo:) [some:0] | UnsafeWebViewFetch.swift:140:47:140:47 | remoteURL2 [some:0] | -| UnsafeWebViewFetch.swift:132:19:132:61 | call to URL.init(string:relativeTo:) [some:0] | UnsafeWebViewFetch.swift:141:48:141:48 | remoteURL2 [some:0] | -| UnsafeWebViewFetch.swift:132:52:132:52 | remoteURL [some:0] | UnsafeWebViewFetch.swift:132:19:132:61 | call to URL.init(string:relativeTo:) [some:0] | -| UnsafeWebViewFetch.swift:138:47:138:47 | remoteURL [some:0] | UnsafeWebViewFetch.swift:138:47:138:56 | ...! | -| UnsafeWebViewFetch.swift:139:48:139:48 | remoteURL [some:0] | UnsafeWebViewFetch.swift:139:48:139:57 | ...! | -| UnsafeWebViewFetch.swift:140:47:140:47 | remoteURL2 [some:0] | UnsafeWebViewFetch.swift:140:47:140:57 | ...! | -| UnsafeWebViewFetch.swift:141:48:141:48 | remoteURL2 [some:0] | UnsafeWebViewFetch.swift:141:48:141:58 | ...! | -| UnsafeWebViewFetch.swift:150:19:150:41 | call to Data.init(_:) | UnsafeWebViewFetch.swift:152:15:152:15 | remoteData | -| UnsafeWebViewFetch.swift:150:19:150:41 | call to Data.init(_:) | UnsafeWebViewFetch.swift:154:15:154:15 | remoteData | -| UnsafeWebViewFetch.swift:150:24:150:37 | .utf8 | UnsafeWebViewFetch.swift:150:19:150:41 | call to Data.init(_:) | -| UnsafeWebViewFetch.swift:153:85:153:85 | remoteURL [some:0] | UnsafeWebViewFetch.swift:153:85:153:94 | ...! | -| UnsafeWebViewFetch.swift:154:86:154:86 | remoteURL [some:0] | UnsafeWebViewFetch.swift:154:86:154:95 | ...! | -| UnsafeWebViewFetch.swift:164:21:164:35 | call to getRemoteData() | UnsafeWebViewFetch.swift:168:25:168:25 | remoteString | -| UnsafeWebViewFetch.swift:164:21:164:35 | call to getRemoteData() | UnsafeWebViewFetch.swift:171:25:171:51 | ... .+(_:_:) ... | -| UnsafeWebViewFetch.swift:164:21:164:35 | call to getRemoteData() | UnsafeWebViewFetch.swift:174:25:174:25 | "..." | -| UnsafeWebViewFetch.swift:164:21:164:35 | call to getRemoteData() | UnsafeWebViewFetch.swift:178:30:178:30 | remoteString | -| UnsafeWebViewFetch.swift:164:21:164:35 | call to getRemoteData() | UnsafeWebViewFetch.swift:182:25:182:25 | remoteString | -| UnsafeWebViewFetch.swift:164:21:164:35 | call to getRemoteData() | UnsafeWebViewFetch.swift:184:25:184:25 | remoteString | -| UnsafeWebViewFetch.swift:164:21:164:35 | call to getRemoteData() | UnsafeWebViewFetch.swift:186:25:186:25 | remoteString | -| UnsafeWebViewFetch.swift:164:21:164:35 | call to getRemoteData() | UnsafeWebViewFetch.swift:188:25:188:25 | remoteString | -| UnsafeWebViewFetch.swift:164:21:164:35 | call to getRemoteData() | UnsafeWebViewFetch.swift:197:24:197:37 | .utf8 | -| UnsafeWebViewFetch.swift:178:18:178:42 | call to URL.init(string:) [some:0] | UnsafeWebViewFetch.swift:179:52:179:52 | remoteURL [some:0] | -| UnsafeWebViewFetch.swift:178:18:178:42 | call to URL.init(string:) [some:0] | UnsafeWebViewFetch.swift:185:47:185:47 | remoteURL [some:0] | -| UnsafeWebViewFetch.swift:178:18:178:42 | call to URL.init(string:) [some:0] | UnsafeWebViewFetch.swift:186:48:186:48 | remoteURL [some:0] | -| UnsafeWebViewFetch.swift:178:18:178:42 | call to URL.init(string:) [some:0] | UnsafeWebViewFetch.swift:200:90:200:90 | remoteURL [some:0] | -| UnsafeWebViewFetch.swift:178:18:178:42 | call to URL.init(string:) [some:0] | UnsafeWebViewFetch.swift:201:91:201:91 | remoteURL [some:0] | -| UnsafeWebViewFetch.swift:178:30:178:30 | remoteString | UnsafeWebViewFetch.swift:178:18:178:42 | call to URL.init(string:) [some:0] | -| UnsafeWebViewFetch.swift:179:19:179:61 | call to URL.init(string:relativeTo:) [some:0] | UnsafeWebViewFetch.swift:187:47:187:47 | remoteURL2 [some:0] | -| UnsafeWebViewFetch.swift:179:19:179:61 | call to URL.init(string:relativeTo:) [some:0] | UnsafeWebViewFetch.swift:188:48:188:48 | remoteURL2 [some:0] | -| UnsafeWebViewFetch.swift:179:52:179:52 | remoteURL [some:0] | UnsafeWebViewFetch.swift:179:19:179:61 | call to URL.init(string:relativeTo:) [some:0] | -| UnsafeWebViewFetch.swift:185:47:185:47 | remoteURL [some:0] | UnsafeWebViewFetch.swift:185:47:185:56 | ...! | -| UnsafeWebViewFetch.swift:186:48:186:48 | remoteURL [some:0] | UnsafeWebViewFetch.swift:186:48:186:57 | ...! | -| UnsafeWebViewFetch.swift:187:47:187:47 | remoteURL2 [some:0] | UnsafeWebViewFetch.swift:187:47:187:57 | ...! | -| UnsafeWebViewFetch.swift:188:48:188:48 | remoteURL2 [some:0] | UnsafeWebViewFetch.swift:188:48:188:58 | ...! | -| UnsafeWebViewFetch.swift:197:19:197:41 | call to Data.init(_:) | UnsafeWebViewFetch.swift:199:15:199:15 | remoteData | -| UnsafeWebViewFetch.swift:197:19:197:41 | call to Data.init(_:) | UnsafeWebViewFetch.swift:201:15:201:15 | remoteData | -| UnsafeWebViewFetch.swift:197:24:197:37 | .utf8 | UnsafeWebViewFetch.swift:197:19:197:41 | call to Data.init(_:) | -| UnsafeWebViewFetch.swift:200:90:200:90 | remoteURL [some:0] | UnsafeWebViewFetch.swift:200:90:200:99 | ...! | -| UnsafeWebViewFetch.swift:201:91:201:91 | remoteURL [some:0] | UnsafeWebViewFetch.swift:201:91:201:100 | ...! | -| UnsafeWebViewFetch.swift:206:17:206:31 | call to getRemoteData() | UnsafeWebViewFetch.swift:210:25:210:25 | htmlData | -| UnsafeWebViewFetch.swift:206:17:206:31 | call to getRemoteData() | UnsafeWebViewFetch.swift:211:25:211:25 | htmlData | +| UnsafeWebViewFetch.swift:94:10:94:37 | try ... | UnsafeWebViewFetch.swift:117:21:117:35 | call to getRemoteData() | provenance | | +| UnsafeWebViewFetch.swift:94:10:94:37 | try ... | UnsafeWebViewFetch.swift:120:25:120:39 | call to getRemoteData() | provenance | | +| UnsafeWebViewFetch.swift:94:10:94:37 | try ... | UnsafeWebViewFetch.swift:164:21:164:35 | call to getRemoteData() | provenance | | +| UnsafeWebViewFetch.swift:94:10:94:37 | try ... | UnsafeWebViewFetch.swift:167:25:167:39 | call to getRemoteData() | provenance | | +| UnsafeWebViewFetch.swift:94:10:94:37 | try ... | UnsafeWebViewFetch.swift:206:17:206:31 | call to getRemoteData() | provenance | | +| UnsafeWebViewFetch.swift:94:14:94:37 | call to String.init(contentsOf:) | UnsafeWebViewFetch.swift:94:10:94:37 | try ... | provenance | | +| UnsafeWebViewFetch.swift:103:30:103:84 | call to String.init(contentsOf:) | UnsafeWebViewFetch.swift:103:25:103:84 | try! ... | provenance | | +| UnsafeWebViewFetch.swift:105:18:105:72 | call to String.init(contentsOf:) | UnsafeWebViewFetch.swift:106:25:106:25 | data | provenance | | +| UnsafeWebViewFetch.swift:109:30:109:53 | call to String.init(contentsOf:) | UnsafeWebViewFetch.swift:109:25:109:53 | try! ... | provenance | | +| UnsafeWebViewFetch.swift:117:21:117:35 | call to getRemoteData() | UnsafeWebViewFetch.swift:121:25:121:25 | remoteString | provenance | | +| UnsafeWebViewFetch.swift:117:21:117:35 | call to getRemoteData() | UnsafeWebViewFetch.swift:124:25:124:51 | ... .+(_:_:) ... | provenance | | +| UnsafeWebViewFetch.swift:117:21:117:35 | call to getRemoteData() | UnsafeWebViewFetch.swift:127:25:127:25 | "..." | provenance | | +| UnsafeWebViewFetch.swift:117:21:117:35 | call to getRemoteData() | UnsafeWebViewFetch.swift:131:30:131:30 | remoteString | provenance | | +| UnsafeWebViewFetch.swift:117:21:117:35 | call to getRemoteData() | UnsafeWebViewFetch.swift:135:25:135:25 | remoteString | provenance | | +| UnsafeWebViewFetch.swift:117:21:117:35 | call to getRemoteData() | UnsafeWebViewFetch.swift:137:25:137:25 | remoteString | provenance | | +| UnsafeWebViewFetch.swift:117:21:117:35 | call to getRemoteData() | UnsafeWebViewFetch.swift:139:25:139:25 | remoteString | provenance | | +| UnsafeWebViewFetch.swift:117:21:117:35 | call to getRemoteData() | UnsafeWebViewFetch.swift:141:25:141:25 | remoteString | provenance | | +| UnsafeWebViewFetch.swift:117:21:117:35 | call to getRemoteData() | UnsafeWebViewFetch.swift:150:24:150:37 | .utf8 | provenance | | +| UnsafeWebViewFetch.swift:131:18:131:42 | call to URL.init(string:) [some:0] | UnsafeWebViewFetch.swift:132:52:132:52 | remoteURL [some:0] | provenance | | +| UnsafeWebViewFetch.swift:131:18:131:42 | call to URL.init(string:) [some:0] | UnsafeWebViewFetch.swift:138:47:138:47 | remoteURL [some:0] | provenance | | +| UnsafeWebViewFetch.swift:131:18:131:42 | call to URL.init(string:) [some:0] | UnsafeWebViewFetch.swift:139:48:139:48 | remoteURL [some:0] | provenance | | +| UnsafeWebViewFetch.swift:131:18:131:42 | call to URL.init(string:) [some:0] | UnsafeWebViewFetch.swift:153:85:153:85 | remoteURL [some:0] | provenance | | +| UnsafeWebViewFetch.swift:131:18:131:42 | call to URL.init(string:) [some:0] | UnsafeWebViewFetch.swift:154:86:154:86 | remoteURL [some:0] | provenance | | +| UnsafeWebViewFetch.swift:131:30:131:30 | remoteString | UnsafeWebViewFetch.swift:131:18:131:42 | call to URL.init(string:) [some:0] | provenance | | +| UnsafeWebViewFetch.swift:132:19:132:61 | call to URL.init(string:relativeTo:) [some:0] | UnsafeWebViewFetch.swift:140:47:140:47 | remoteURL2 [some:0] | provenance | | +| UnsafeWebViewFetch.swift:132:19:132:61 | call to URL.init(string:relativeTo:) [some:0] | UnsafeWebViewFetch.swift:141:48:141:48 | remoteURL2 [some:0] | provenance | | +| UnsafeWebViewFetch.swift:132:52:132:52 | remoteURL [some:0] | UnsafeWebViewFetch.swift:132:19:132:61 | call to URL.init(string:relativeTo:) [some:0] | provenance | | +| UnsafeWebViewFetch.swift:138:47:138:47 | remoteURL [some:0] | UnsafeWebViewFetch.swift:138:47:138:56 | ...! | provenance | | +| UnsafeWebViewFetch.swift:139:48:139:48 | remoteURL [some:0] | UnsafeWebViewFetch.swift:139:48:139:57 | ...! | provenance | | +| UnsafeWebViewFetch.swift:140:47:140:47 | remoteURL2 [some:0] | UnsafeWebViewFetch.swift:140:47:140:57 | ...! | provenance | | +| UnsafeWebViewFetch.swift:141:48:141:48 | remoteURL2 [some:0] | UnsafeWebViewFetch.swift:141:48:141:58 | ...! | provenance | | +| UnsafeWebViewFetch.swift:150:19:150:41 | call to Data.init(_:) | UnsafeWebViewFetch.swift:152:15:152:15 | remoteData | provenance | | +| UnsafeWebViewFetch.swift:150:19:150:41 | call to Data.init(_:) | UnsafeWebViewFetch.swift:154:15:154:15 | remoteData | provenance | | +| UnsafeWebViewFetch.swift:150:24:150:37 | .utf8 | UnsafeWebViewFetch.swift:150:19:150:41 | call to Data.init(_:) | provenance | | +| UnsafeWebViewFetch.swift:153:85:153:85 | remoteURL [some:0] | UnsafeWebViewFetch.swift:153:85:153:94 | ...! | provenance | | +| UnsafeWebViewFetch.swift:154:86:154:86 | remoteURL [some:0] | UnsafeWebViewFetch.swift:154:86:154:95 | ...! | provenance | | +| UnsafeWebViewFetch.swift:164:21:164:35 | call to getRemoteData() | UnsafeWebViewFetch.swift:168:25:168:25 | remoteString | provenance | | +| UnsafeWebViewFetch.swift:164:21:164:35 | call to getRemoteData() | UnsafeWebViewFetch.swift:171:25:171:51 | ... .+(_:_:) ... | provenance | | +| UnsafeWebViewFetch.swift:164:21:164:35 | call to getRemoteData() | UnsafeWebViewFetch.swift:174:25:174:25 | "..." | provenance | | +| UnsafeWebViewFetch.swift:164:21:164:35 | call to getRemoteData() | UnsafeWebViewFetch.swift:178:30:178:30 | remoteString | provenance | | +| UnsafeWebViewFetch.swift:164:21:164:35 | call to getRemoteData() | UnsafeWebViewFetch.swift:182:25:182:25 | remoteString | provenance | | +| UnsafeWebViewFetch.swift:164:21:164:35 | call to getRemoteData() | UnsafeWebViewFetch.swift:184:25:184:25 | remoteString | provenance | | +| UnsafeWebViewFetch.swift:164:21:164:35 | call to getRemoteData() | UnsafeWebViewFetch.swift:186:25:186:25 | remoteString | provenance | | +| UnsafeWebViewFetch.swift:164:21:164:35 | call to getRemoteData() | UnsafeWebViewFetch.swift:188:25:188:25 | remoteString | provenance | | +| UnsafeWebViewFetch.swift:164:21:164:35 | call to getRemoteData() | UnsafeWebViewFetch.swift:197:24:197:37 | .utf8 | provenance | | +| UnsafeWebViewFetch.swift:178:18:178:42 | call to URL.init(string:) [some:0] | UnsafeWebViewFetch.swift:179:52:179:52 | remoteURL [some:0] | provenance | | +| UnsafeWebViewFetch.swift:178:18:178:42 | call to URL.init(string:) [some:0] | UnsafeWebViewFetch.swift:185:47:185:47 | remoteURL [some:0] | provenance | | +| UnsafeWebViewFetch.swift:178:18:178:42 | call to URL.init(string:) [some:0] | UnsafeWebViewFetch.swift:186:48:186:48 | remoteURL [some:0] | provenance | | +| UnsafeWebViewFetch.swift:178:18:178:42 | call to URL.init(string:) [some:0] | UnsafeWebViewFetch.swift:200:90:200:90 | remoteURL [some:0] | provenance | | +| UnsafeWebViewFetch.swift:178:18:178:42 | call to URL.init(string:) [some:0] | UnsafeWebViewFetch.swift:201:91:201:91 | remoteURL [some:0] | provenance | | +| UnsafeWebViewFetch.swift:178:30:178:30 | remoteString | UnsafeWebViewFetch.swift:178:18:178:42 | call to URL.init(string:) [some:0] | provenance | | +| UnsafeWebViewFetch.swift:179:19:179:61 | call to URL.init(string:relativeTo:) [some:0] | UnsafeWebViewFetch.swift:187:47:187:47 | remoteURL2 [some:0] | provenance | | +| UnsafeWebViewFetch.swift:179:19:179:61 | call to URL.init(string:relativeTo:) [some:0] | UnsafeWebViewFetch.swift:188:48:188:48 | remoteURL2 [some:0] | provenance | | +| UnsafeWebViewFetch.swift:179:52:179:52 | remoteURL [some:0] | UnsafeWebViewFetch.swift:179:19:179:61 | call to URL.init(string:relativeTo:) [some:0] | provenance | | +| UnsafeWebViewFetch.swift:185:47:185:47 | remoteURL [some:0] | UnsafeWebViewFetch.swift:185:47:185:56 | ...! | provenance | | +| UnsafeWebViewFetch.swift:186:48:186:48 | remoteURL [some:0] | UnsafeWebViewFetch.swift:186:48:186:57 | ...! | provenance | | +| UnsafeWebViewFetch.swift:187:47:187:47 | remoteURL2 [some:0] | UnsafeWebViewFetch.swift:187:47:187:57 | ...! | provenance | | +| UnsafeWebViewFetch.swift:188:48:188:48 | remoteURL2 [some:0] | UnsafeWebViewFetch.swift:188:48:188:58 | ...! | provenance | | +| UnsafeWebViewFetch.swift:197:19:197:41 | call to Data.init(_:) | UnsafeWebViewFetch.swift:199:15:199:15 | remoteData | provenance | | +| UnsafeWebViewFetch.swift:197:19:197:41 | call to Data.init(_:) | UnsafeWebViewFetch.swift:201:15:201:15 | remoteData | provenance | | +| UnsafeWebViewFetch.swift:197:24:197:37 | .utf8 | UnsafeWebViewFetch.swift:197:19:197:41 | call to Data.init(_:) | provenance | | +| UnsafeWebViewFetch.swift:200:90:200:90 | remoteURL [some:0] | UnsafeWebViewFetch.swift:200:90:200:99 | ...! | provenance | | +| UnsafeWebViewFetch.swift:201:91:201:91 | remoteURL [some:0] | UnsafeWebViewFetch.swift:201:91:201:100 | ...! | provenance | | +| UnsafeWebViewFetch.swift:206:17:206:31 | call to getRemoteData() | UnsafeWebViewFetch.swift:210:25:210:25 | htmlData | provenance | | +| UnsafeWebViewFetch.swift:206:17:206:31 | call to getRemoteData() | UnsafeWebViewFetch.swift:211:25:211:25 | htmlData | provenance | | nodes | UnsafeWebViewFetch.swift:94:10:94:37 | try ... | semmle.label | try ... | | UnsafeWebViewFetch.swift:94:14:94:37 | call to String.init(contentsOf:) | semmle.label | call to String.init(contentsOf:) | diff --git a/swift/ql/test/query-tests/Security/CWE-089/SqlInjection.expected b/swift/ql/test/query-tests/Security/CWE-089/SqlInjection.expected index 52d6268367f0..36ebcd04a6ee 100644 --- a/swift/ql/test/query-tests/Security/CWE-089/SqlInjection.expected +++ b/swift/ql/test/query-tests/Security/CWE-089/SqlInjection.expected @@ -1,122 +1,122 @@ edges -| GRDB.swift:104:25:104:79 | call to String.init(contentsOf:) | GRDB.swift:106:41:106:41 | remoteString | -| GRDB.swift:104:25:104:79 | call to String.init(contentsOf:) | GRDB.swift:108:41:108:41 | remoteString | -| GRDB.swift:104:25:104:79 | call to String.init(contentsOf:) | GRDB.swift:111:43:111:43 | remoteString | -| GRDB.swift:104:25:104:79 | call to String.init(contentsOf:) | GRDB.swift:114:51:114:51 | remoteString | -| GRDB.swift:104:25:104:79 | call to String.init(contentsOf:) | GRDB.swift:117:27:117:27 | remoteString | -| GRDB.swift:104:25:104:79 | call to String.init(contentsOf:) | GRDB.swift:119:27:119:27 | remoteString | -| GRDB.swift:104:25:104:79 | call to String.init(contentsOf:) | GRDB.swift:122:41:122:41 | remoteString | -| GRDB.swift:104:25:104:79 | call to String.init(contentsOf:) | GRDB.swift:124:41:124:41 | remoteString | -| GRDB.swift:130:26:130:80 | call to String.init(contentsOf:) | GRDB.swift:132:39:132:39 | remoteString | -| GRDB.swift:130:26:130:80 | call to String.init(contentsOf:) | GRDB.swift:135:46:135:46 | remoteString | -| GRDB.swift:130:26:130:80 | call to String.init(contentsOf:) | GRDB.swift:138:56:138:56 | remoteString | -| GRDB.swift:130:26:130:80 | call to String.init(contentsOf:) | GRDB.swift:141:45:141:45 | remoteString | -| GRDB.swift:130:26:130:80 | call to String.init(contentsOf:) | GRDB.swift:144:29:144:29 | remoteString | -| GRDB.swift:130:26:130:80 | call to String.init(contentsOf:) | GRDB.swift:145:29:145:29 | remoteString | -| GRDB.swift:130:26:130:80 | call to String.init(contentsOf:) | GRDB.swift:146:29:146:29 | remoteString | -| GRDB.swift:130:26:130:80 | call to String.init(contentsOf:) | GRDB.swift:147:29:147:29 | remoteString | -| GRDB.swift:130:26:130:80 | call to String.init(contentsOf:) | GRDB.swift:148:29:148:29 | remoteString | -| GRDB.swift:130:26:130:80 | call to String.init(contentsOf:) | GRDB.swift:149:29:149:29 | remoteString | -| GRDB.swift:130:26:130:80 | call to String.init(contentsOf:) | GRDB.swift:150:29:150:29 | remoteString | -| GRDB.swift:130:26:130:80 | call to String.init(contentsOf:) | GRDB.swift:151:29:151:29 | remoteString | -| GRDB.swift:164:26:164:80 | call to String.init(contentsOf:) | GRDB.swift:166:32:166:32 | remoteString | -| GRDB.swift:164:26:164:80 | call to String.init(contentsOf:) | GRDB.swift:167:39:167:39 | remoteString | -| GRDB.swift:164:26:164:80 | call to String.init(contentsOf:) | GRDB.swift:168:49:168:49 | remoteString | -| GRDB.swift:164:26:164:80 | call to String.init(contentsOf:) | GRDB.swift:169:38:169:38 | remoteString | -| GRDB.swift:164:26:164:80 | call to String.init(contentsOf:) | GRDB.swift:170:22:170:22 | remoteString | -| GRDB.swift:164:26:164:80 | call to String.init(contentsOf:) | GRDB.swift:172:22:172:22 | remoteString | -| GRDB.swift:185:26:185:80 | call to String.init(contentsOf:) | GRDB.swift:187:33:187:33 | remoteString | -| GRDB.swift:185:26:185:80 | call to String.init(contentsOf:) | GRDB.swift:190:32:190:32 | remoteString | -| GRDB.swift:185:26:185:80 | call to String.init(contentsOf:) | GRDB.swift:193:37:193:37 | remoteString | -| GRDB.swift:199:26:199:80 | call to String.init(contentsOf:) | GRDB.swift:201:36:201:36 | remoteString | -| GRDB.swift:207:26:207:80 | call to String.init(contentsOf:) | GRDB.swift:209:41:209:41 | remoteString | -| GRDB.swift:207:26:207:80 | call to String.init(contentsOf:) | GRDB.swift:210:44:210:44 | remoteString | -| GRDB.swift:207:26:207:80 | call to String.init(contentsOf:) | GRDB.swift:211:47:211:47 | remoteString | -| GRDB.swift:207:26:207:80 | call to String.init(contentsOf:) | GRDB.swift:212:47:212:47 | remoteString | -| GRDB.swift:222:26:222:80 | call to String.init(contentsOf:) | GRDB.swift:224:37:224:37 | remoteString | -| GRDB.swift:222:26:222:80 | call to String.init(contentsOf:) | GRDB.swift:225:37:225:37 | remoteString | -| GRDB.swift:222:26:222:80 | call to String.init(contentsOf:) | GRDB.swift:229:37:229:37 | remoteString | -| GRDB.swift:222:26:222:80 | call to String.init(contentsOf:) | GRDB.swift:230:37:230:37 | remoteString | -| GRDB.swift:222:26:222:80 | call to String.init(contentsOf:) | GRDB.swift:234:36:234:36 | remoteString | -| GRDB.swift:222:26:222:80 | call to String.init(contentsOf:) | GRDB.swift:235:36:235:36 | remoteString | -| GRDB.swift:242:26:242:80 | call to String.init(contentsOf:) | GRDB.swift:244:38:244:38 | remoteString | -| GRDB.swift:250:26:250:80 | call to String.init(contentsOf:) | GRDB.swift:252:32:252:32 | remoteString | -| GRDB.swift:250:26:250:80 | call to String.init(contentsOf:) | GRDB.swift:253:32:253:32 | remoteString | -| GRDB.swift:250:26:250:80 | call to String.init(contentsOf:) | GRDB.swift:254:32:254:32 | remoteString | -| GRDB.swift:250:26:250:80 | call to String.init(contentsOf:) | GRDB.swift:255:32:255:32 | remoteString | -| GRDB.swift:250:26:250:80 | call to String.init(contentsOf:) | GRDB.swift:261:29:261:29 | remoteString | -| GRDB.swift:250:26:250:80 | call to String.init(contentsOf:) | GRDB.swift:262:29:262:29 | remoteString | -| GRDB.swift:250:26:250:80 | call to String.init(contentsOf:) | GRDB.swift:263:29:263:29 | remoteString | -| GRDB.swift:250:26:250:80 | call to String.init(contentsOf:) | GRDB.swift:264:29:264:29 | remoteString | -| GRDB.swift:250:26:250:80 | call to String.init(contentsOf:) | GRDB.swift:270:29:270:29 | remoteString | -| GRDB.swift:250:26:250:80 | call to String.init(contentsOf:) | GRDB.swift:271:29:271:29 | remoteString | -| GRDB.swift:250:26:250:80 | call to String.init(contentsOf:) | GRDB.swift:272:29:272:29 | remoteString | -| GRDB.swift:250:26:250:80 | call to String.init(contentsOf:) | GRDB.swift:273:29:273:29 | remoteString | -| GRDB.swift:250:26:250:80 | call to String.init(contentsOf:) | GRDB.swift:279:29:279:29 | remoteString | -| GRDB.swift:250:26:250:80 | call to String.init(contentsOf:) | GRDB.swift:280:29:280:29 | remoteString | -| GRDB.swift:250:26:250:80 | call to String.init(contentsOf:) | GRDB.swift:281:29:281:29 | remoteString | -| GRDB.swift:250:26:250:80 | call to String.init(contentsOf:) | GRDB.swift:282:29:282:29 | remoteString | -| GRDB.swift:291:26:291:80 | call to String.init(contentsOf:) | GRDB.swift:293:53:293:53 | remoteString | -| GRDB.swift:291:26:291:80 | call to String.init(contentsOf:) | GRDB.swift:294:53:294:53 | remoteString | -| GRDB.swift:291:26:291:80 | call to String.init(contentsOf:) | GRDB.swift:295:53:295:53 | remoteString | -| GRDB.swift:291:26:291:80 | call to String.init(contentsOf:) | GRDB.swift:296:53:296:53 | remoteString | -| GRDB.swift:291:26:291:80 | call to String.init(contentsOf:) | GRDB.swift:302:50:302:50 | remoteString | -| GRDB.swift:291:26:291:80 | call to String.init(contentsOf:) | GRDB.swift:303:50:303:50 | remoteString | -| GRDB.swift:291:26:291:80 | call to String.init(contentsOf:) | GRDB.swift:304:50:304:50 | remoteString | -| GRDB.swift:291:26:291:80 | call to String.init(contentsOf:) | GRDB.swift:305:50:305:50 | remoteString | -| GRDB.swift:291:26:291:80 | call to String.init(contentsOf:) | GRDB.swift:311:50:311:50 | remoteString | -| GRDB.swift:291:26:291:80 | call to String.init(contentsOf:) | GRDB.swift:312:50:312:50 | remoteString | -| GRDB.swift:291:26:291:80 | call to String.init(contentsOf:) | GRDB.swift:313:50:313:50 | remoteString | -| GRDB.swift:291:26:291:80 | call to String.init(contentsOf:) | GRDB.swift:314:50:314:50 | remoteString | -| GRDB.swift:291:26:291:80 | call to String.init(contentsOf:) | GRDB.swift:320:50:320:50 | remoteString | -| GRDB.swift:291:26:291:80 | call to String.init(contentsOf:) | GRDB.swift:321:50:321:50 | remoteString | -| GRDB.swift:291:26:291:80 | call to String.init(contentsOf:) | GRDB.swift:322:50:322:50 | remoteString | -| GRDB.swift:291:26:291:80 | call to String.init(contentsOf:) | GRDB.swift:323:50:323:50 | remoteString | -| GRDB.swift:332:26:332:80 | call to String.init(contentsOf:) | GRDB.swift:334:57:334:57 | remoteString | -| GRDB.swift:332:26:332:80 | call to String.init(contentsOf:) | GRDB.swift:335:57:335:57 | remoteString | -| GRDB.swift:342:26:342:80 | call to String.init(contentsOf:) | GRDB.swift:344:51:344:51 | remoteString | -| GRDB.swift:342:26:342:80 | call to String.init(contentsOf:) | GRDB.swift:345:51:345:51 | remoteString | -| GRDB.swift:342:26:342:80 | call to String.init(contentsOf:) | GRDB.swift:346:66:346:66 | remoteString | -| GRDB.swift:342:26:342:80 | call to String.init(contentsOf:) | GRDB.swift:347:66:347:66 | remoteString | -| GRDB.swift:342:26:342:80 | call to String.init(contentsOf:) | GRDB.swift:348:69:348:69 | remoteString | -| GRDB.swift:342:26:342:80 | call to String.init(contentsOf:) | GRDB.swift:349:84:349:84 | remoteString | -| GRDB.swift:342:26:342:80 | call to String.init(contentsOf:) | GRDB.swift:350:69:350:69 | remoteString | -| GRDB.swift:342:26:342:80 | call to String.init(contentsOf:) | GRDB.swift:351:84:351:84 | remoteString | -| SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:73:17:73:17 | unsafeQuery1 | -| SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:74:17:74:17 | unsafeQuery2 | -| SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:75:17:75:17 | unsafeQuery3 | -| SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:83:29:83:29 | unsafeQuery3 | -| SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:95:32:95:32 | remoteString | -| SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:100:29:100:29 | unsafeQuery1 | -| SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:103:29:103:29 | unsafeQuery1 | -| SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:106:29:106:29 | unsafeQuery1 | -| SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:109:13:109:13 | unsafeQuery1 | -| SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:111:13:111:13 | unsafeQuery1 | -| SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:113:13:113:13 | unsafeQuery1 | -| SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:115:16:115:16 | unsafeQuery1 | -| SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:117:16:117:16 | unsafeQuery1 | -| SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:119:16:119:16 | unsafeQuery1 | -| SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:132:20:132:20 | remoteString | -| other.swift:46:25:46:79 | call to String.init(contentsOf:) | other.swift:50:22:50:22 | remoteString | -| other.swift:46:25:46:79 | call to String.init(contentsOf:) | other.swift:52:14:52:14 | remoteString | -| other.swift:46:25:46:79 | call to String.init(contentsOf:) | other.swift:53:14:53:14 | remoteString | -| other.swift:46:25:46:79 | call to String.init(contentsOf:) | other.swift:54:31:54:31 | remoteString | -| other.swift:46:25:46:79 | call to String.init(contentsOf:) | other.swift:55:14:55:14 | remoteString | -| other.swift:46:25:46:79 | call to String.init(contentsOf:) | other.swift:57:16:57:16 | remoteString | -| other.swift:54:31:54:31 | remoteString | other.swift:54:14:54:43 | call to NSString.init(string:) | -| sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:133:33:133:33 | unsafeQuery1 | -| sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:134:33:134:33 | unsafeQuery2 | -| sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:135:33:135:33 | unsafeQuery3 | -| sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:145:26:145:26 | unsafeQuery3 | -| sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:175:29:175:29 | unsafeQuery3 | -| sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:183:29:183:29 | unsafeQuery3 | -| sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:189:13:189:13 | unsafeQuery3 | -| sqlite3_c_api.swift:189:13:189:13 | unsafeQuery3 | sqlite3_c_api.swift:189:13:189:58 | call to data(using:allowLossyConversion:) | -| sqlite3_c_api.swift:189:13:189:58 | call to data(using:allowLossyConversion:) | sqlite3_c_api.swift:190:2:190:2 | data | -| sqlite3_c_api.swift:190:2:190:2 | data | sqlite3_c_api.swift:190:21:190:21 | [post] buffer | -| sqlite3_c_api.swift:190:21:190:21 | [post] buffer | sqlite3_c_api.swift:194:28:194:28 | buffer | -| sqlite3_c_api.swift:190:21:190:21 | [post] buffer | sqlite3_c_api.swift:202:31:202:31 | buffer | -| sqlite3_c_api.swift:190:21:190:21 | [post] buffer | sqlite3_c_api.swift:210:31:210:31 | buffer | +| GRDB.swift:104:25:104:79 | call to String.init(contentsOf:) | GRDB.swift:106:41:106:41 | remoteString | provenance | | +| GRDB.swift:104:25:104:79 | call to String.init(contentsOf:) | GRDB.swift:108:41:108:41 | remoteString | provenance | | +| GRDB.swift:104:25:104:79 | call to String.init(contentsOf:) | GRDB.swift:111:43:111:43 | remoteString | provenance | | +| GRDB.swift:104:25:104:79 | call to String.init(contentsOf:) | GRDB.swift:114:51:114:51 | remoteString | provenance | | +| GRDB.swift:104:25:104:79 | call to String.init(contentsOf:) | GRDB.swift:117:27:117:27 | remoteString | provenance | | +| GRDB.swift:104:25:104:79 | call to String.init(contentsOf:) | GRDB.swift:119:27:119:27 | remoteString | provenance | | +| GRDB.swift:104:25:104:79 | call to String.init(contentsOf:) | GRDB.swift:122:41:122:41 | remoteString | provenance | | +| GRDB.swift:104:25:104:79 | call to String.init(contentsOf:) | GRDB.swift:124:41:124:41 | remoteString | provenance | | +| GRDB.swift:130:26:130:80 | call to String.init(contentsOf:) | GRDB.swift:132:39:132:39 | remoteString | provenance | | +| GRDB.swift:130:26:130:80 | call to String.init(contentsOf:) | GRDB.swift:135:46:135:46 | remoteString | provenance | | +| GRDB.swift:130:26:130:80 | call to String.init(contentsOf:) | GRDB.swift:138:56:138:56 | remoteString | provenance | | +| GRDB.swift:130:26:130:80 | call to String.init(contentsOf:) | GRDB.swift:141:45:141:45 | remoteString | provenance | | +| GRDB.swift:130:26:130:80 | call to String.init(contentsOf:) | GRDB.swift:144:29:144:29 | remoteString | provenance | | +| GRDB.swift:130:26:130:80 | call to String.init(contentsOf:) | GRDB.swift:145:29:145:29 | remoteString | provenance | | +| GRDB.swift:130:26:130:80 | call to String.init(contentsOf:) | GRDB.swift:146:29:146:29 | remoteString | provenance | | +| GRDB.swift:130:26:130:80 | call to String.init(contentsOf:) | GRDB.swift:147:29:147:29 | remoteString | provenance | | +| GRDB.swift:130:26:130:80 | call to String.init(contentsOf:) | GRDB.swift:148:29:148:29 | remoteString | provenance | | +| GRDB.swift:130:26:130:80 | call to String.init(contentsOf:) | GRDB.swift:149:29:149:29 | remoteString | provenance | | +| GRDB.swift:130:26:130:80 | call to String.init(contentsOf:) | GRDB.swift:150:29:150:29 | remoteString | provenance | | +| GRDB.swift:130:26:130:80 | call to String.init(contentsOf:) | GRDB.swift:151:29:151:29 | remoteString | provenance | | +| GRDB.swift:164:26:164:80 | call to String.init(contentsOf:) | GRDB.swift:166:32:166:32 | remoteString | provenance | | +| GRDB.swift:164:26:164:80 | call to String.init(contentsOf:) | GRDB.swift:167:39:167:39 | remoteString | provenance | | +| GRDB.swift:164:26:164:80 | call to String.init(contentsOf:) | GRDB.swift:168:49:168:49 | remoteString | provenance | | +| GRDB.swift:164:26:164:80 | call to String.init(contentsOf:) | GRDB.swift:169:38:169:38 | remoteString | provenance | | +| GRDB.swift:164:26:164:80 | call to String.init(contentsOf:) | GRDB.swift:170:22:170:22 | remoteString | provenance | | +| GRDB.swift:164:26:164:80 | call to String.init(contentsOf:) | GRDB.swift:172:22:172:22 | remoteString | provenance | | +| GRDB.swift:185:26:185:80 | call to String.init(contentsOf:) | GRDB.swift:187:33:187:33 | remoteString | provenance | | +| GRDB.swift:185:26:185:80 | call to String.init(contentsOf:) | GRDB.swift:190:32:190:32 | remoteString | provenance | | +| GRDB.swift:185:26:185:80 | call to String.init(contentsOf:) | GRDB.swift:193:37:193:37 | remoteString | provenance | | +| GRDB.swift:199:26:199:80 | call to String.init(contentsOf:) | GRDB.swift:201:36:201:36 | remoteString | provenance | | +| GRDB.swift:207:26:207:80 | call to String.init(contentsOf:) | GRDB.swift:209:41:209:41 | remoteString | provenance | | +| GRDB.swift:207:26:207:80 | call to String.init(contentsOf:) | GRDB.swift:210:44:210:44 | remoteString | provenance | | +| GRDB.swift:207:26:207:80 | call to String.init(contentsOf:) | GRDB.swift:211:47:211:47 | remoteString | provenance | | +| GRDB.swift:207:26:207:80 | call to String.init(contentsOf:) | GRDB.swift:212:47:212:47 | remoteString | provenance | | +| GRDB.swift:222:26:222:80 | call to String.init(contentsOf:) | GRDB.swift:224:37:224:37 | remoteString | provenance | | +| GRDB.swift:222:26:222:80 | call to String.init(contentsOf:) | GRDB.swift:225:37:225:37 | remoteString | provenance | | +| GRDB.swift:222:26:222:80 | call to String.init(contentsOf:) | GRDB.swift:229:37:229:37 | remoteString | provenance | | +| GRDB.swift:222:26:222:80 | call to String.init(contentsOf:) | GRDB.swift:230:37:230:37 | remoteString | provenance | | +| GRDB.swift:222:26:222:80 | call to String.init(contentsOf:) | GRDB.swift:234:36:234:36 | remoteString | provenance | | +| GRDB.swift:222:26:222:80 | call to String.init(contentsOf:) | GRDB.swift:235:36:235:36 | remoteString | provenance | | +| GRDB.swift:242:26:242:80 | call to String.init(contentsOf:) | GRDB.swift:244:38:244:38 | remoteString | provenance | | +| GRDB.swift:250:26:250:80 | call to String.init(contentsOf:) | GRDB.swift:252:32:252:32 | remoteString | provenance | | +| GRDB.swift:250:26:250:80 | call to String.init(contentsOf:) | GRDB.swift:253:32:253:32 | remoteString | provenance | | +| GRDB.swift:250:26:250:80 | call to String.init(contentsOf:) | GRDB.swift:254:32:254:32 | remoteString | provenance | | +| GRDB.swift:250:26:250:80 | call to String.init(contentsOf:) | GRDB.swift:255:32:255:32 | remoteString | provenance | | +| GRDB.swift:250:26:250:80 | call to String.init(contentsOf:) | GRDB.swift:261:29:261:29 | remoteString | provenance | | +| GRDB.swift:250:26:250:80 | call to String.init(contentsOf:) | GRDB.swift:262:29:262:29 | remoteString | provenance | | +| GRDB.swift:250:26:250:80 | call to String.init(contentsOf:) | GRDB.swift:263:29:263:29 | remoteString | provenance | | +| GRDB.swift:250:26:250:80 | call to String.init(contentsOf:) | GRDB.swift:264:29:264:29 | remoteString | provenance | | +| GRDB.swift:250:26:250:80 | call to String.init(contentsOf:) | GRDB.swift:270:29:270:29 | remoteString | provenance | | +| GRDB.swift:250:26:250:80 | call to String.init(contentsOf:) | GRDB.swift:271:29:271:29 | remoteString | provenance | | +| GRDB.swift:250:26:250:80 | call to String.init(contentsOf:) | GRDB.swift:272:29:272:29 | remoteString | provenance | | +| GRDB.swift:250:26:250:80 | call to String.init(contentsOf:) | GRDB.swift:273:29:273:29 | remoteString | provenance | | +| GRDB.swift:250:26:250:80 | call to String.init(contentsOf:) | GRDB.swift:279:29:279:29 | remoteString | provenance | | +| GRDB.swift:250:26:250:80 | call to String.init(contentsOf:) | GRDB.swift:280:29:280:29 | remoteString | provenance | | +| GRDB.swift:250:26:250:80 | call to String.init(contentsOf:) | GRDB.swift:281:29:281:29 | remoteString | provenance | | +| GRDB.swift:250:26:250:80 | call to String.init(contentsOf:) | GRDB.swift:282:29:282:29 | remoteString | provenance | | +| GRDB.swift:291:26:291:80 | call to String.init(contentsOf:) | GRDB.swift:293:53:293:53 | remoteString | provenance | | +| GRDB.swift:291:26:291:80 | call to String.init(contentsOf:) | GRDB.swift:294:53:294:53 | remoteString | provenance | | +| GRDB.swift:291:26:291:80 | call to String.init(contentsOf:) | GRDB.swift:295:53:295:53 | remoteString | provenance | | +| GRDB.swift:291:26:291:80 | call to String.init(contentsOf:) | GRDB.swift:296:53:296:53 | remoteString | provenance | | +| GRDB.swift:291:26:291:80 | call to String.init(contentsOf:) | GRDB.swift:302:50:302:50 | remoteString | provenance | | +| GRDB.swift:291:26:291:80 | call to String.init(contentsOf:) | GRDB.swift:303:50:303:50 | remoteString | provenance | | +| GRDB.swift:291:26:291:80 | call to String.init(contentsOf:) | GRDB.swift:304:50:304:50 | remoteString | provenance | | +| GRDB.swift:291:26:291:80 | call to String.init(contentsOf:) | GRDB.swift:305:50:305:50 | remoteString | provenance | | +| GRDB.swift:291:26:291:80 | call to String.init(contentsOf:) | GRDB.swift:311:50:311:50 | remoteString | provenance | | +| GRDB.swift:291:26:291:80 | call to String.init(contentsOf:) | GRDB.swift:312:50:312:50 | remoteString | provenance | | +| GRDB.swift:291:26:291:80 | call to String.init(contentsOf:) | GRDB.swift:313:50:313:50 | remoteString | provenance | | +| GRDB.swift:291:26:291:80 | call to String.init(contentsOf:) | GRDB.swift:314:50:314:50 | remoteString | provenance | | +| GRDB.swift:291:26:291:80 | call to String.init(contentsOf:) | GRDB.swift:320:50:320:50 | remoteString | provenance | | +| GRDB.swift:291:26:291:80 | call to String.init(contentsOf:) | GRDB.swift:321:50:321:50 | remoteString | provenance | | +| GRDB.swift:291:26:291:80 | call to String.init(contentsOf:) | GRDB.swift:322:50:322:50 | remoteString | provenance | | +| GRDB.swift:291:26:291:80 | call to String.init(contentsOf:) | GRDB.swift:323:50:323:50 | remoteString | provenance | | +| GRDB.swift:332:26:332:80 | call to String.init(contentsOf:) | GRDB.swift:334:57:334:57 | remoteString | provenance | | +| GRDB.swift:332:26:332:80 | call to String.init(contentsOf:) | GRDB.swift:335:57:335:57 | remoteString | provenance | | +| GRDB.swift:342:26:342:80 | call to String.init(contentsOf:) | GRDB.swift:344:51:344:51 | remoteString | provenance | | +| GRDB.swift:342:26:342:80 | call to String.init(contentsOf:) | GRDB.swift:345:51:345:51 | remoteString | provenance | | +| GRDB.swift:342:26:342:80 | call to String.init(contentsOf:) | GRDB.swift:346:66:346:66 | remoteString | provenance | | +| GRDB.swift:342:26:342:80 | call to String.init(contentsOf:) | GRDB.swift:347:66:347:66 | remoteString | provenance | | +| GRDB.swift:342:26:342:80 | call to String.init(contentsOf:) | GRDB.swift:348:69:348:69 | remoteString | provenance | | +| GRDB.swift:342:26:342:80 | call to String.init(contentsOf:) | GRDB.swift:349:84:349:84 | remoteString | provenance | | +| GRDB.swift:342:26:342:80 | call to String.init(contentsOf:) | GRDB.swift:350:69:350:69 | remoteString | provenance | | +| GRDB.swift:342:26:342:80 | call to String.init(contentsOf:) | GRDB.swift:351:84:351:84 | remoteString | provenance | | +| SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:73:17:73:17 | unsafeQuery1 | provenance | | +| SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:74:17:74:17 | unsafeQuery2 | provenance | | +| SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:75:17:75:17 | unsafeQuery3 | provenance | | +| SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:83:29:83:29 | unsafeQuery3 | provenance | | +| SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:95:32:95:32 | remoteString | provenance | | +| SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:100:29:100:29 | unsafeQuery1 | provenance | | +| SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:103:29:103:29 | unsafeQuery1 | provenance | | +| SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:106:29:106:29 | unsafeQuery1 | provenance | | +| SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:109:13:109:13 | unsafeQuery1 | provenance | | +| SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:111:13:111:13 | unsafeQuery1 | provenance | | +| SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:113:13:113:13 | unsafeQuery1 | provenance | | +| SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:115:16:115:16 | unsafeQuery1 | provenance | | +| SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:117:16:117:16 | unsafeQuery1 | provenance | | +| SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:119:16:119:16 | unsafeQuery1 | provenance | | +| SQLite.swift:62:25:62:79 | call to String.init(contentsOf:) | SQLite.swift:132:20:132:20 | remoteString | provenance | | +| other.swift:46:25:46:79 | call to String.init(contentsOf:) | other.swift:50:22:50:22 | remoteString | provenance | | +| other.swift:46:25:46:79 | call to String.init(contentsOf:) | other.swift:52:14:52:14 | remoteString | provenance | | +| other.swift:46:25:46:79 | call to String.init(contentsOf:) | other.swift:53:14:53:14 | remoteString | provenance | | +| other.swift:46:25:46:79 | call to String.init(contentsOf:) | other.swift:54:31:54:31 | remoteString | provenance | | +| other.swift:46:25:46:79 | call to String.init(contentsOf:) | other.swift:55:14:55:14 | remoteString | provenance | | +| other.swift:46:25:46:79 | call to String.init(contentsOf:) | other.swift:57:16:57:16 | remoteString | provenance | | +| other.swift:54:31:54:31 | remoteString | other.swift:54:14:54:43 | call to NSString.init(string:) | provenance | | +| sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:133:33:133:33 | unsafeQuery1 | provenance | | +| sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:134:33:134:33 | unsafeQuery2 | provenance | | +| sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:135:33:135:33 | unsafeQuery3 | provenance | | +| sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:145:26:145:26 | unsafeQuery3 | provenance | | +| sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:175:29:175:29 | unsafeQuery3 | provenance | | +| sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:183:29:183:29 | unsafeQuery3 | provenance | | +| sqlite3_c_api.swift:122:26:122:80 | call to String.init(contentsOf:) | sqlite3_c_api.swift:189:13:189:13 | unsafeQuery3 | provenance | | +| sqlite3_c_api.swift:189:13:189:13 | unsafeQuery3 | sqlite3_c_api.swift:189:13:189:58 | call to data(using:allowLossyConversion:) | provenance | | +| sqlite3_c_api.swift:189:13:189:58 | call to data(using:allowLossyConversion:) | sqlite3_c_api.swift:190:2:190:2 | data | provenance | | +| sqlite3_c_api.swift:190:2:190:2 | data | sqlite3_c_api.swift:190:21:190:21 | [post] buffer | provenance | | +| sqlite3_c_api.swift:190:21:190:21 | [post] buffer | sqlite3_c_api.swift:194:28:194:28 | buffer | provenance | | +| sqlite3_c_api.swift:190:21:190:21 | [post] buffer | sqlite3_c_api.swift:202:31:202:31 | buffer | provenance | | +| sqlite3_c_api.swift:190:21:190:21 | [post] buffer | sqlite3_c_api.swift:210:31:210:31 | buffer | provenance | | nodes | GRDB.swift:104:25:104:79 | call to String.init(contentsOf:) | semmle.label | call to String.init(contentsOf:) | | GRDB.swift:106:41:106:41 | remoteString | semmle.label | remoteString | diff --git a/swift/ql/test/query-tests/Security/CWE-094/UnsafeJsEval.expected b/swift/ql/test/query-tests/Security/CWE-094/UnsafeJsEval.expected index 65c4c5eb2c1a..f048e06cb850 100644 --- a/swift/ql/test/query-tests/Security/CWE-094/UnsafeJsEval.expected +++ b/swift/ql/test/query-tests/Security/CWE-094/UnsafeJsEval.expected @@ -1,58 +1,58 @@ edges -| UnsafeJsEval.swift:204:7:204:66 | try! ... | UnsafeJsEval.swift:265:13:265:13 | string | -| UnsafeJsEval.swift:204:7:204:66 | try! ... | UnsafeJsEval.swift:268:13:268:13 | string | -| UnsafeJsEval.swift:204:7:204:66 | try! ... | UnsafeJsEval.swift:276:13:276:13 | string | -| UnsafeJsEval.swift:204:7:204:66 | try! ... | UnsafeJsEval.swift:279:13:279:13 | string | -| UnsafeJsEval.swift:204:7:204:66 | try! ... | UnsafeJsEval.swift:285:13:285:13 | string | -| UnsafeJsEval.swift:204:7:204:66 | try! ... | UnsafeJsEval.swift:299:13:299:13 | string | -| UnsafeJsEval.swift:204:12:204:66 | call to String.init(contentsOf:) | UnsafeJsEval.swift:204:7:204:66 | try! ... | -| UnsafeJsEval.swift:205:7:205:35 | try! ... | UnsafeJsEval.swift:265:13:265:13 | string | -| UnsafeJsEval.swift:205:7:205:35 | try! ... | UnsafeJsEval.swift:268:13:268:13 | string | -| UnsafeJsEval.swift:205:7:205:35 | try! ... | UnsafeJsEval.swift:276:13:276:13 | string | -| UnsafeJsEval.swift:205:7:205:35 | try! ... | UnsafeJsEval.swift:279:13:279:13 | string | -| UnsafeJsEval.swift:205:7:205:35 | try! ... | UnsafeJsEval.swift:285:13:285:13 | string | -| UnsafeJsEval.swift:205:7:205:35 | try! ... | UnsafeJsEval.swift:299:13:299:13 | string | -| UnsafeJsEval.swift:205:12:205:35 | call to String.init(contentsOf:) | UnsafeJsEval.swift:205:7:205:35 | try! ... | -| UnsafeJsEval.swift:208:7:208:58 | ... .+(_:_:) ... | UnsafeJsEval.swift:265:13:265:13 | string | -| UnsafeJsEval.swift:208:7:208:58 | ... .+(_:_:) ... | UnsafeJsEval.swift:268:13:268:13 | string | -| UnsafeJsEval.swift:208:7:208:58 | ... .+(_:_:) ... | UnsafeJsEval.swift:276:13:276:13 | string | -| UnsafeJsEval.swift:208:7:208:58 | ... .+(_:_:) ... | UnsafeJsEval.swift:279:13:279:13 | string | -| UnsafeJsEval.swift:208:7:208:58 | ... .+(_:_:) ... | UnsafeJsEval.swift:285:13:285:13 | string | -| UnsafeJsEval.swift:208:7:208:58 | ... .+(_:_:) ... | UnsafeJsEval.swift:299:13:299:13 | string | -| UnsafeJsEval.swift:208:30:208:53 | call to String.init(contentsOf:) | UnsafeJsEval.swift:208:7:208:58 | ... .+(_:_:) ... | -| UnsafeJsEval.swift:211:19:211:60 | call to Data.init(_:) | UnsafeJsEval.swift:214:24:214:24 | remoteData | -| UnsafeJsEval.swift:211:24:211:56 | .utf8 | UnsafeJsEval.swift:211:19:211:60 | call to Data.init(_:) | -| UnsafeJsEval.swift:211:30:211:53 | call to String.init(contentsOf:) | UnsafeJsEval.swift:211:24:211:56 | .utf8 | -| UnsafeJsEval.swift:214:7:214:49 | call to String.init(decoding:as:) | UnsafeJsEval.swift:265:13:265:13 | string | -| UnsafeJsEval.swift:214:7:214:49 | call to String.init(decoding:as:) | UnsafeJsEval.swift:268:13:268:13 | string | -| UnsafeJsEval.swift:214:7:214:49 | call to String.init(decoding:as:) | UnsafeJsEval.swift:276:13:276:13 | string | -| UnsafeJsEval.swift:214:7:214:49 | call to String.init(decoding:as:) | UnsafeJsEval.swift:279:13:279:13 | string | -| UnsafeJsEval.swift:214:7:214:49 | call to String.init(decoding:as:) | UnsafeJsEval.swift:285:13:285:13 | string | -| UnsafeJsEval.swift:214:7:214:49 | call to String.init(decoding:as:) | UnsafeJsEval.swift:299:13:299:13 | string | -| UnsafeJsEval.swift:214:24:214:24 | remoteData | UnsafeJsEval.swift:214:7:214:49 | call to String.init(decoding:as:) | -| UnsafeJsEval.swift:265:13:265:13 | string | UnsafeJsEval.swift:266:43:266:43 | string | -| UnsafeJsEval.swift:266:43:266:43 | string | UnsafeJsEval.swift:266:22:266:107 | call to WKUserScript.init(source:injectionTime:forMainFrameOnly:) | -| UnsafeJsEval.swift:268:13:268:13 | string | UnsafeJsEval.swift:269:43:269:43 | string | -| UnsafeJsEval.swift:269:43:269:43 | string | UnsafeJsEval.swift:269:22:269:124 | call to WKUserScript.init(source:injectionTime:forMainFrameOnly:in:) | -| UnsafeJsEval.swift:276:13:276:13 | string | UnsafeJsEval.swift:277:26:277:26 | string | -| UnsafeJsEval.swift:279:13:279:13 | string | UnsafeJsEval.swift:280:26:280:26 | string | -| UnsafeJsEval.swift:285:13:285:13 | string | UnsafeJsEval.swift:286:3:286:10 | .utf16 | -| UnsafeJsEval.swift:286:3:286:10 | .utf16 | UnsafeJsEval.swift:286:51:286:51 | stringBytes [Collection element] | -| UnsafeJsEval.swift:286:51:286:51 | stringBytes [Collection element] | UnsafeJsEval.swift:287:60:287:60 | stringBytes [Collection element] | -| UnsafeJsEval.swift:287:16:287:98 | call to JSStringRetain(_:) | UnsafeJsEval.swift:291:17:291:17 | jsstr | -| UnsafeJsEval.swift:287:31:287:97 | call to JSStringCreateWithCharacters(_:_:) | UnsafeJsEval.swift:287:16:287:98 | call to JSStringRetain(_:) | -| UnsafeJsEval.swift:287:60:287:60 | stringBytes | UnsafeJsEval.swift:287:60:287:72 | .baseAddress | -| UnsafeJsEval.swift:287:60:287:60 | stringBytes [Collection element] | UnsafeJsEval.swift:287:60:287:60 | stringBytes | -| UnsafeJsEval.swift:287:60:287:72 | .baseAddress | UnsafeJsEval.swift:287:31:287:97 | call to JSStringCreateWithCharacters(_:_:) | -| UnsafeJsEval.swift:299:13:299:13 | string | UnsafeJsEval.swift:300:3:300:10 | .utf8CString | -| UnsafeJsEval.swift:300:3:300:10 | .utf8CString | UnsafeJsEval.swift:300:48:300:48 | stringBytes [Collection element] | -| UnsafeJsEval.swift:300:48:300:48 | stringBytes [Collection element] | UnsafeJsEval.swift:301:61:301:61 | stringBytes [Collection element] | -| UnsafeJsEval.swift:301:16:301:85 | call to JSStringRetain(_:) | UnsafeJsEval.swift:305:17:305:17 | jsstr | -| UnsafeJsEval.swift:301:31:301:84 | call to JSStringCreateWithUTF8CString(_:) | UnsafeJsEval.swift:301:16:301:85 | call to JSStringRetain(_:) | -| UnsafeJsEval.swift:301:61:301:61 | stringBytes | UnsafeJsEval.swift:301:61:301:73 | .baseAddress | -| UnsafeJsEval.swift:301:61:301:61 | stringBytes [Collection element] | UnsafeJsEval.swift:301:61:301:61 | stringBytes | -| UnsafeJsEval.swift:301:61:301:73 | .baseAddress | UnsafeJsEval.swift:301:31:301:84 | call to JSStringCreateWithUTF8CString(_:) | -| UnsafeJsEval.swift:318:24:318:87 | call to String.init(contentsOf:) | UnsafeJsEval.swift:320:44:320:74 | ... .+(_:_:) ... | +| UnsafeJsEval.swift:204:7:204:66 | try! ... | UnsafeJsEval.swift:265:13:265:13 | string | provenance | | +| UnsafeJsEval.swift:204:7:204:66 | try! ... | UnsafeJsEval.swift:268:13:268:13 | string | provenance | | +| UnsafeJsEval.swift:204:7:204:66 | try! ... | UnsafeJsEval.swift:276:13:276:13 | string | provenance | | +| UnsafeJsEval.swift:204:7:204:66 | try! ... | UnsafeJsEval.swift:279:13:279:13 | string | provenance | | +| UnsafeJsEval.swift:204:7:204:66 | try! ... | UnsafeJsEval.swift:285:13:285:13 | string | provenance | | +| UnsafeJsEval.swift:204:7:204:66 | try! ... | UnsafeJsEval.swift:299:13:299:13 | string | provenance | | +| UnsafeJsEval.swift:204:12:204:66 | call to String.init(contentsOf:) | UnsafeJsEval.swift:204:7:204:66 | try! ... | provenance | | +| UnsafeJsEval.swift:205:7:205:35 | try! ... | UnsafeJsEval.swift:265:13:265:13 | string | provenance | | +| UnsafeJsEval.swift:205:7:205:35 | try! ... | UnsafeJsEval.swift:268:13:268:13 | string | provenance | | +| UnsafeJsEval.swift:205:7:205:35 | try! ... | UnsafeJsEval.swift:276:13:276:13 | string | provenance | | +| UnsafeJsEval.swift:205:7:205:35 | try! ... | UnsafeJsEval.swift:279:13:279:13 | string | provenance | | +| UnsafeJsEval.swift:205:7:205:35 | try! ... | UnsafeJsEval.swift:285:13:285:13 | string | provenance | | +| UnsafeJsEval.swift:205:7:205:35 | try! ... | UnsafeJsEval.swift:299:13:299:13 | string | provenance | | +| UnsafeJsEval.swift:205:12:205:35 | call to String.init(contentsOf:) | UnsafeJsEval.swift:205:7:205:35 | try! ... | provenance | | +| UnsafeJsEval.swift:208:7:208:58 | ... .+(_:_:) ... | UnsafeJsEval.swift:265:13:265:13 | string | provenance | | +| UnsafeJsEval.swift:208:7:208:58 | ... .+(_:_:) ... | UnsafeJsEval.swift:268:13:268:13 | string | provenance | | +| UnsafeJsEval.swift:208:7:208:58 | ... .+(_:_:) ... | UnsafeJsEval.swift:276:13:276:13 | string | provenance | | +| UnsafeJsEval.swift:208:7:208:58 | ... .+(_:_:) ... | UnsafeJsEval.swift:279:13:279:13 | string | provenance | | +| UnsafeJsEval.swift:208:7:208:58 | ... .+(_:_:) ... | UnsafeJsEval.swift:285:13:285:13 | string | provenance | | +| UnsafeJsEval.swift:208:7:208:58 | ... .+(_:_:) ... | UnsafeJsEval.swift:299:13:299:13 | string | provenance | | +| UnsafeJsEval.swift:208:30:208:53 | call to String.init(contentsOf:) | UnsafeJsEval.swift:208:7:208:58 | ... .+(_:_:) ... | provenance | | +| UnsafeJsEval.swift:211:19:211:60 | call to Data.init(_:) | UnsafeJsEval.swift:214:24:214:24 | remoteData | provenance | | +| UnsafeJsEval.swift:211:24:211:56 | .utf8 | UnsafeJsEval.swift:211:19:211:60 | call to Data.init(_:) | provenance | | +| UnsafeJsEval.swift:211:30:211:53 | call to String.init(contentsOf:) | UnsafeJsEval.swift:211:24:211:56 | .utf8 | provenance | | +| UnsafeJsEval.swift:214:7:214:49 | call to String.init(decoding:as:) | UnsafeJsEval.swift:265:13:265:13 | string | provenance | | +| UnsafeJsEval.swift:214:7:214:49 | call to String.init(decoding:as:) | UnsafeJsEval.swift:268:13:268:13 | string | provenance | | +| UnsafeJsEval.swift:214:7:214:49 | call to String.init(decoding:as:) | UnsafeJsEval.swift:276:13:276:13 | string | provenance | | +| UnsafeJsEval.swift:214:7:214:49 | call to String.init(decoding:as:) | UnsafeJsEval.swift:279:13:279:13 | string | provenance | | +| UnsafeJsEval.swift:214:7:214:49 | call to String.init(decoding:as:) | UnsafeJsEval.swift:285:13:285:13 | string | provenance | | +| UnsafeJsEval.swift:214:7:214:49 | call to String.init(decoding:as:) | UnsafeJsEval.swift:299:13:299:13 | string | provenance | | +| UnsafeJsEval.swift:214:24:214:24 | remoteData | UnsafeJsEval.swift:214:7:214:49 | call to String.init(decoding:as:) | provenance | | +| UnsafeJsEval.swift:265:13:265:13 | string | UnsafeJsEval.swift:266:43:266:43 | string | provenance | | +| UnsafeJsEval.swift:266:43:266:43 | string | UnsafeJsEval.swift:266:22:266:107 | call to WKUserScript.init(source:injectionTime:forMainFrameOnly:) | provenance | | +| UnsafeJsEval.swift:268:13:268:13 | string | UnsafeJsEval.swift:269:43:269:43 | string | provenance | | +| UnsafeJsEval.swift:269:43:269:43 | string | UnsafeJsEval.swift:269:22:269:124 | call to WKUserScript.init(source:injectionTime:forMainFrameOnly:in:) | provenance | | +| UnsafeJsEval.swift:276:13:276:13 | string | UnsafeJsEval.swift:277:26:277:26 | string | provenance | | +| UnsafeJsEval.swift:279:13:279:13 | string | UnsafeJsEval.swift:280:26:280:26 | string | provenance | | +| UnsafeJsEval.swift:285:13:285:13 | string | UnsafeJsEval.swift:286:3:286:10 | .utf16 | provenance | | +| UnsafeJsEval.swift:286:3:286:10 | .utf16 | UnsafeJsEval.swift:286:51:286:51 | stringBytes [Collection element] | provenance | | +| UnsafeJsEval.swift:286:51:286:51 | stringBytes [Collection element] | UnsafeJsEval.swift:287:60:287:60 | stringBytes [Collection element] | provenance | | +| UnsafeJsEval.swift:287:16:287:98 | call to JSStringRetain(_:) | UnsafeJsEval.swift:291:17:291:17 | jsstr | provenance | | +| UnsafeJsEval.swift:287:31:287:97 | call to JSStringCreateWithCharacters(_:_:) | UnsafeJsEval.swift:287:16:287:98 | call to JSStringRetain(_:) | provenance | | +| UnsafeJsEval.swift:287:60:287:60 | stringBytes | UnsafeJsEval.swift:287:60:287:72 | .baseAddress | provenance | | +| UnsafeJsEval.swift:287:60:287:60 | stringBytes [Collection element] | UnsafeJsEval.swift:287:60:287:60 | stringBytes | provenance | | +| UnsafeJsEval.swift:287:60:287:72 | .baseAddress | UnsafeJsEval.swift:287:31:287:97 | call to JSStringCreateWithCharacters(_:_:) | provenance | | +| UnsafeJsEval.swift:299:13:299:13 | string | UnsafeJsEval.swift:300:3:300:10 | .utf8CString | provenance | | +| UnsafeJsEval.swift:300:3:300:10 | .utf8CString | UnsafeJsEval.swift:300:48:300:48 | stringBytes [Collection element] | provenance | | +| UnsafeJsEval.swift:300:48:300:48 | stringBytes [Collection element] | UnsafeJsEval.swift:301:61:301:61 | stringBytes [Collection element] | provenance | | +| UnsafeJsEval.swift:301:16:301:85 | call to JSStringRetain(_:) | UnsafeJsEval.swift:305:17:305:17 | jsstr | provenance | | +| UnsafeJsEval.swift:301:31:301:84 | call to JSStringCreateWithUTF8CString(_:) | UnsafeJsEval.swift:301:16:301:85 | call to JSStringRetain(_:) | provenance | | +| UnsafeJsEval.swift:301:61:301:61 | stringBytes | UnsafeJsEval.swift:301:61:301:73 | .baseAddress | provenance | | +| UnsafeJsEval.swift:301:61:301:61 | stringBytes [Collection element] | UnsafeJsEval.swift:301:61:301:61 | stringBytes | provenance | | +| UnsafeJsEval.swift:301:61:301:73 | .baseAddress | UnsafeJsEval.swift:301:31:301:84 | call to JSStringCreateWithUTF8CString(_:) | provenance | | +| UnsafeJsEval.swift:318:24:318:87 | call to String.init(contentsOf:) | UnsafeJsEval.swift:320:44:320:74 | ... .+(_:_:) ... | provenance | | nodes | UnsafeJsEval.swift:204:7:204:66 | try! ... | semmle.label | try! ... | | UnsafeJsEval.swift:204:12:204:66 | call to String.init(contentsOf:) | semmle.label | call to String.init(contentsOf:) | diff --git a/swift/ql/test/query-tests/Security/CWE-1204/StaticInitializationVector.expected b/swift/ql/test/query-tests/Security/CWE-1204/StaticInitializationVector.expected index 74adec1c6051..02fdbe6a6a48 100644 --- a/swift/ql/test/query-tests/Security/CWE-1204/StaticInitializationVector.expected +++ b/swift/ql/test/query-tests/Security/CWE-1204/StaticInitializationVector.expected @@ -1,44 +1,44 @@ edges -| rncryptor.swift:60:19:60:25 | call to Data.init(_:) | rncryptor.swift:68:104:68:104 | myConstIV1 | -| rncryptor.swift:60:19:60:25 | call to Data.init(_:) | rncryptor.swift:77:125:77:125 | myConstIV1 | -| rncryptor.swift:60:24:60:24 | 0 | rncryptor.swift:60:19:60:25 | call to Data.init(_:) | -| rncryptor.swift:61:19:61:27 | call to Data.init(_:) | rncryptor.swift:70:104:70:104 | myConstIV2 | -| rncryptor.swift:61:19:61:27 | call to Data.init(_:) | rncryptor.swift:79:133:79:133 | myConstIV2 | -| rncryptor.swift:61:24:61:24 | 123 | rncryptor.swift:61:19:61:27 | call to Data.init(_:) | -| rncryptor.swift:62:19:62:35 | call to Data.init(_:) | rncryptor.swift:72:84:72:84 | myConstIV3 | -| rncryptor.swift:62:19:62:35 | call to Data.init(_:) | rncryptor.swift:81:105:81:105 | myConstIV3 | -| rncryptor.swift:62:24:62:34 | [...] | rncryptor.swift:62:19:62:35 | call to Data.init(_:) | -| rncryptor.swift:63:19:63:28 | call to Data.init(_:) | rncryptor.swift:74:84:74:84 | myConstIV4 | -| rncryptor.swift:63:19:63:28 | call to Data.init(_:) | rncryptor.swift:83:113:83:113 | myConstIV4 | -| rncryptor.swift:63:24:63:24 | iv | rncryptor.swift:63:19:63:28 | call to Data.init(_:) | -| test.swift:53:19:53:34 | iv | test.swift:54:17:54:17 | iv | -| test.swift:85:3:85:3 | this string is constant | test.swift:89:10:89:28 | call to getConstantString() | -| test.swift:85:3:85:3 | this string is constant | test.swift:101:17:101:35 | call to getConstantString() | -| test.swift:89:2:89:34 | call to Array.init(_:) [Collection element] | test.swift:100:12:100:29 | call to getConstantArray() [Collection element] | -| test.swift:89:10:89:28 | call to getConstantString() | test.swift:89:10:89:30 | .utf8 | -| test.swift:89:10:89:30 | .utf8 | test.swift:89:2:89:34 | call to Array.init(_:) [Collection element] | -| test.swift:99:25:99:120 | [...] | test.swift:128:33:128:33 | iv | -| test.swift:99:25:99:120 | [...] | test.swift:135:22:135:22 | iv | -| test.swift:99:25:99:120 | [...] | test.swift:139:22:139:22 | iv | -| test.swift:99:25:99:120 | [...] | test.swift:140:22:140:22 | iv | -| test.swift:99:25:99:120 | [...] | test.swift:145:22:145:22 | iv | -| test.swift:99:25:99:120 | [...] | test.swift:146:22:146:22 | iv | -| test.swift:99:25:99:120 | [...] | test.swift:147:22:147:22 | iv | -| test.swift:99:25:99:120 | [...] | test.swift:147:22:147:22 | iv | -| test.swift:99:25:99:120 | [...] | test.swift:153:22:153:22 | iv | -| test.swift:99:25:99:120 | [...] | test.swift:157:24:157:24 | iv | -| test.swift:99:25:99:120 | [...] | test.swift:161:22:161:22 | iv | -| test.swift:99:25:99:120 | [...] | test.swift:162:22:162:22 | iv | -| test.swift:99:25:99:120 | [...] | test.swift:167:22:167:22 | iv | -| test.swift:99:25:99:120 | [...] | test.swift:168:22:168:22 | iv | -| test.swift:100:12:100:29 | call to getConstantArray() [Collection element] | test.swift:129:33:129:33 | iv2 | -| test.swift:101:17:101:35 | call to getConstantString() | test.swift:112:36:112:36 | ivString | -| test.swift:101:17:101:35 | call to getConstantString() | test.swift:113:36:113:36 | ivString | -| test.swift:101:17:101:35 | call to getConstantString() | test.swift:118:41:118:41 | ivString | -| test.swift:101:17:101:35 | call to getConstantString() | test.swift:122:41:122:41 | ivString | -| test.swift:101:17:101:35 | call to getConstantString() | test.swift:123:41:123:41 | ivString | -| test.swift:101:17:101:35 | call to getConstantString() | test.swift:130:39:130:39 | ivString | -| test.swift:147:22:147:22 | iv | test.swift:53:19:53:34 | iv | +| rncryptor.swift:60:19:60:25 | call to Data.init(_:) | rncryptor.swift:68:104:68:104 | myConstIV1 | provenance | | +| rncryptor.swift:60:19:60:25 | call to Data.init(_:) | rncryptor.swift:77:125:77:125 | myConstIV1 | provenance | | +| rncryptor.swift:60:24:60:24 | 0 | rncryptor.swift:60:19:60:25 | call to Data.init(_:) | provenance | | +| rncryptor.swift:61:19:61:27 | call to Data.init(_:) | rncryptor.swift:70:104:70:104 | myConstIV2 | provenance | | +| rncryptor.swift:61:19:61:27 | call to Data.init(_:) | rncryptor.swift:79:133:79:133 | myConstIV2 | provenance | | +| rncryptor.swift:61:24:61:24 | 123 | rncryptor.swift:61:19:61:27 | call to Data.init(_:) | provenance | | +| rncryptor.swift:62:19:62:35 | call to Data.init(_:) | rncryptor.swift:72:84:72:84 | myConstIV3 | provenance | | +| rncryptor.swift:62:19:62:35 | call to Data.init(_:) | rncryptor.swift:81:105:81:105 | myConstIV3 | provenance | | +| rncryptor.swift:62:24:62:34 | [...] | rncryptor.swift:62:19:62:35 | call to Data.init(_:) | provenance | | +| rncryptor.swift:63:19:63:28 | call to Data.init(_:) | rncryptor.swift:74:84:74:84 | myConstIV4 | provenance | | +| rncryptor.swift:63:19:63:28 | call to Data.init(_:) | rncryptor.swift:83:113:83:113 | myConstIV4 | provenance | | +| rncryptor.swift:63:24:63:24 | iv | rncryptor.swift:63:19:63:28 | call to Data.init(_:) | provenance | | +| test.swift:53:19:53:34 | iv | test.swift:54:17:54:17 | iv | provenance | | +| test.swift:85:3:85:3 | this string is constant | test.swift:89:10:89:28 | call to getConstantString() | provenance | | +| test.swift:85:3:85:3 | this string is constant | test.swift:101:17:101:35 | call to getConstantString() | provenance | | +| test.swift:89:2:89:34 | call to Array.init(_:) [Collection element] | test.swift:100:12:100:29 | call to getConstantArray() [Collection element] | provenance | | +| test.swift:89:10:89:28 | call to getConstantString() | test.swift:89:10:89:30 | .utf8 | provenance | | +| test.swift:89:10:89:30 | .utf8 | test.swift:89:2:89:34 | call to Array.init(_:) [Collection element] | provenance | | +| test.swift:99:25:99:120 | [...] | test.swift:128:33:128:33 | iv | provenance | | +| test.swift:99:25:99:120 | [...] | test.swift:135:22:135:22 | iv | provenance | | +| test.swift:99:25:99:120 | [...] | test.swift:139:22:139:22 | iv | provenance | | +| test.swift:99:25:99:120 | [...] | test.swift:140:22:140:22 | iv | provenance | | +| test.swift:99:25:99:120 | [...] | test.swift:145:22:145:22 | iv | provenance | | +| test.swift:99:25:99:120 | [...] | test.swift:146:22:146:22 | iv | provenance | | +| test.swift:99:25:99:120 | [...] | test.swift:147:22:147:22 | iv | provenance | | +| test.swift:99:25:99:120 | [...] | test.swift:147:22:147:22 | iv | provenance | | +| test.swift:99:25:99:120 | [...] | test.swift:153:22:153:22 | iv | provenance | | +| test.swift:99:25:99:120 | [...] | test.swift:157:24:157:24 | iv | provenance | | +| test.swift:99:25:99:120 | [...] | test.swift:161:22:161:22 | iv | provenance | | +| test.swift:99:25:99:120 | [...] | test.swift:162:22:162:22 | iv | provenance | | +| test.swift:99:25:99:120 | [...] | test.swift:167:22:167:22 | iv | provenance | | +| test.swift:99:25:99:120 | [...] | test.swift:168:22:168:22 | iv | provenance | | +| test.swift:100:12:100:29 | call to getConstantArray() [Collection element] | test.swift:129:33:129:33 | iv2 | provenance | | +| test.swift:101:17:101:35 | call to getConstantString() | test.swift:112:36:112:36 | ivString | provenance | | +| test.swift:101:17:101:35 | call to getConstantString() | test.swift:113:36:113:36 | ivString | provenance | | +| test.swift:101:17:101:35 | call to getConstantString() | test.swift:118:41:118:41 | ivString | provenance | | +| test.swift:101:17:101:35 | call to getConstantString() | test.swift:122:41:122:41 | ivString | provenance | | +| test.swift:101:17:101:35 | call to getConstantString() | test.swift:123:41:123:41 | ivString | provenance | | +| test.swift:101:17:101:35 | call to getConstantString() | test.swift:130:39:130:39 | ivString | provenance | | +| test.swift:147:22:147:22 | iv | test.swift:53:19:53:34 | iv | provenance | | nodes | rncryptor.swift:60:19:60:25 | call to Data.init(_:) | semmle.label | call to Data.init(_:) | | rncryptor.swift:60:24:60:24 | 0 | semmle.label | 0 | diff --git a/swift/ql/test/query-tests/Security/CWE-134/UncontrolledFormatString.expected b/swift/ql/test/query-tests/Security/CWE-134/UncontrolledFormatString.expected index 56dd3f6e3c3c..94dd27a82c2f 100644 --- a/swift/ql/test/query-tests/Security/CWE-134/UncontrolledFormatString.expected +++ b/swift/ql/test/query-tests/Security/CWE-134/UncontrolledFormatString.expected @@ -1,39 +1,39 @@ edges -| UncontrolledFormatString.swift:77:12:77:22 | format | UncontrolledFormatString.swift:78:22:80:5 | format | -| UncontrolledFormatString.swift:78:22:80:5 | format | UncontrolledFormatString.swift:78:22:80:5 | { ... } [format] | -| UncontrolledFormatString.swift:78:22:80:5 | { ... } [format] | UncontrolledFormatString.swift:79:16:79:16 | this [format] | -| UncontrolledFormatString.swift:79:16:79:16 | this [format] | UncontrolledFormatString.swift:79:16:79:16 | format | -| UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:97:24:97:24 | tainted | -| UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:100:24:100:24 | tainted | -| UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:101:24:101:24 | tainted | -| UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:103:24:103:24 | tainted | -| UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:104:24:104:24 | tainted | -| UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:105:24:105:24 | tainted | -| UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:106:42:106:42 | tainted | -| UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:108:43:108:43 | tainted | -| UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:109:57:109:57 | tainted | -| UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:111:50:111:50 | tainted | -| UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:112:64:112:64 | tainted | -| UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:115:11:115:11 | tainted | -| UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:116:11:116:11 | tainted | -| UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:116:11:116:11 | tainted | -| UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:118:61:118:61 | tainted | -| UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:130:39:130:39 | tainted | -| UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:135:37:135:37 | tainted | -| UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:139:5:139:5 | tainted | -| UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:154:26:154:26 | tainted | -| UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:156:32:156:32 | tainted | -| UncontrolledFormatString.swift:108:43:108:43 | tainted | UncontrolledFormatString.swift:108:26:108:50 | call to NSString.init(string:) | -| UncontrolledFormatString.swift:109:57:109:57 | tainted | UncontrolledFormatString.swift:109:40:109:64 | call to NSString.init(string:) | -| UncontrolledFormatString.swift:111:50:111:50 | tainted | UncontrolledFormatString.swift:111:33:111:57 | call to NSString.init(string:) | -| UncontrolledFormatString.swift:112:64:112:64 | tainted | UncontrolledFormatString.swift:112:47:112:71 | call to NSString.init(string:) | -| UncontrolledFormatString.swift:116:11:116:11 | tainted | UncontrolledFormatString.swift:77:12:77:22 | format | -| UncontrolledFormatString.swift:135:37:135:37 | tainted | UncontrolledFormatString.swift:135:20:135:44 | call to NSString.init(string:) | -| UncontrolledFormatString.swift:139:5:139:5 | tainted | UncontrolledFormatString.swift:140:9:140:9 | cstr [Collection element] | -| UncontrolledFormatString.swift:140:9:140:9 | cstr [Collection element] | UncontrolledFormatString.swift:141:24:141:24 | cstr | -| UncontrolledFormatString.swift:140:9:140:9 | cstr [Collection element] | UncontrolledFormatString.swift:143:21:143:21 | cstr | -| UncontrolledFormatString.swift:140:9:140:9 | cstr [Collection element] | UncontrolledFormatString.swift:145:27:145:27 | cstr | -| UncontrolledFormatString.swift:140:9:140:9 | cstr [Collection element] | UncontrolledFormatString.swift:147:35:147:35 | cstr | +| UncontrolledFormatString.swift:77:12:77:22 | format | UncontrolledFormatString.swift:78:22:80:5 | format | provenance | | +| UncontrolledFormatString.swift:78:22:80:5 | format | UncontrolledFormatString.swift:78:22:80:5 | { ... } [format] | provenance | | +| UncontrolledFormatString.swift:78:22:80:5 | { ... } [format] | UncontrolledFormatString.swift:79:16:79:16 | this [format] | provenance | | +| UncontrolledFormatString.swift:79:16:79:16 | this [format] | UncontrolledFormatString.swift:79:16:79:16 | format | provenance | | +| UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:97:24:97:24 | tainted | provenance | | +| UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:100:24:100:24 | tainted | provenance | | +| UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:101:24:101:24 | tainted | provenance | | +| UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:103:24:103:24 | tainted | provenance | | +| UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:104:24:104:24 | tainted | provenance | | +| UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:105:24:105:24 | tainted | provenance | | +| UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:106:42:106:42 | tainted | provenance | | +| UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:108:43:108:43 | tainted | provenance | | +| UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:109:57:109:57 | tainted | provenance | | +| UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:111:50:111:50 | tainted | provenance | | +| UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:112:64:112:64 | tainted | provenance | | +| UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:115:11:115:11 | tainted | provenance | | +| UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:116:11:116:11 | tainted | provenance | | +| UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:116:11:116:11 | tainted | provenance | | +| UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:118:61:118:61 | tainted | provenance | | +| UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:130:39:130:39 | tainted | provenance | | +| UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:135:37:135:37 | tainted | provenance | | +| UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:139:5:139:5 | tainted | provenance | | +| UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:154:26:154:26 | tainted | provenance | | +| UncontrolledFormatString.swift:91:24:91:77 | call to String.init(contentsOf:) | UncontrolledFormatString.swift:156:32:156:32 | tainted | provenance | | +| UncontrolledFormatString.swift:108:43:108:43 | tainted | UncontrolledFormatString.swift:108:26:108:50 | call to NSString.init(string:) | provenance | | +| UncontrolledFormatString.swift:109:57:109:57 | tainted | UncontrolledFormatString.swift:109:40:109:64 | call to NSString.init(string:) | provenance | | +| UncontrolledFormatString.swift:111:50:111:50 | tainted | UncontrolledFormatString.swift:111:33:111:57 | call to NSString.init(string:) | provenance | | +| UncontrolledFormatString.swift:112:64:112:64 | tainted | UncontrolledFormatString.swift:112:47:112:71 | call to NSString.init(string:) | provenance | | +| UncontrolledFormatString.swift:116:11:116:11 | tainted | UncontrolledFormatString.swift:77:12:77:22 | format | provenance | | +| UncontrolledFormatString.swift:135:37:135:37 | tainted | UncontrolledFormatString.swift:135:20:135:44 | call to NSString.init(string:) | provenance | | +| UncontrolledFormatString.swift:139:5:139:5 | tainted | UncontrolledFormatString.swift:140:9:140:9 | cstr [Collection element] | provenance | | +| UncontrolledFormatString.swift:140:9:140:9 | cstr [Collection element] | UncontrolledFormatString.swift:141:24:141:24 | cstr | provenance | | +| UncontrolledFormatString.swift:140:9:140:9 | cstr [Collection element] | UncontrolledFormatString.swift:143:21:143:21 | cstr | provenance | | +| UncontrolledFormatString.swift:140:9:140:9 | cstr [Collection element] | UncontrolledFormatString.swift:145:27:145:27 | cstr | provenance | | +| UncontrolledFormatString.swift:140:9:140:9 | cstr [Collection element] | UncontrolledFormatString.swift:147:35:147:35 | cstr | provenance | | nodes | UncontrolledFormatString.swift:77:12:77:22 | format | semmle.label | format | | UncontrolledFormatString.swift:78:22:80:5 | format | semmle.label | format | diff --git a/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.expected b/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.expected index 0fa5e727fcbd..83405f7cf61f 100644 --- a/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.expected +++ b/swift/ql/test/query-tests/Security/CWE-135/StringLengthConflation.expected @@ -1,46 +1,46 @@ edges -| StringLengthConflation2.swift:35:36:35:38 | .count | StringLengthConflation2.swift:35:36:35:46 | ... .-(_:_:) ... | -| StringLengthConflation2.swift:37:34:37:36 | .count | StringLengthConflation2.swift:37:34:37:44 | ... .-(_:_:) ... | -| StringLengthConflation.swift:60:47:60:50 | .length | StringLengthConflation.swift:60:47:60:59 | ... ./(_:_:) ... | -| StringLengthConflation.swift:66:33:66:36 | .length | StringLengthConflation.swift:66:33:66:45 | ... ./(_:_:) ... | -| StringLengthConflation.swift:96:28:96:31 | .length | StringLengthConflation.swift:96:28:96:40 | ... .-(_:_:) ... | -| StringLengthConflation.swift:100:27:100:30 | .length | StringLengthConflation.swift:100:27:100:39 | ... .-(_:_:) ... | -| StringLengthConflation.swift:104:25:104:28 | .length | StringLengthConflation.swift:104:25:104:37 | ... .-(_:_:) ... | -| StringLengthConflation.swift:108:25:108:28 | .length | StringLengthConflation.swift:108:25:108:37 | ... .-(_:_:) ... | -| StringLengthConflation.swift:114:23:114:26 | .length | StringLengthConflation.swift:114:23:114:35 | ... .-(_:_:) ... | -| StringLengthConflation.swift:120:22:120:25 | .length | StringLengthConflation.swift:120:22:120:34 | ... .-(_:_:) ... | -| StringLengthConflation.swift:125:34:125:36 | .count | StringLengthConflation.swift:125:34:125:44 | ... .-(_:_:) ... | -| StringLengthConflation.swift:126:36:126:38 | .count | StringLengthConflation.swift:126:36:126:46 | ... .-(_:_:) ... | -| StringLengthConflation.swift:131:36:131:38 | .count | StringLengthConflation.swift:131:36:131:46 | ... .-(_:_:) ... | -| StringLengthConflation.swift:132:38:132:40 | .count | StringLengthConflation.swift:132:38:132:48 | ... .-(_:_:) ... | -| StringLengthConflation.swift:137:34:137:36 | .count | StringLengthConflation.swift:137:34:137:44 | ... .-(_:_:) ... | -| StringLengthConflation.swift:138:36:138:38 | .count | StringLengthConflation.swift:138:36:138:46 | ... .-(_:_:) ... | -| StringLengthConflation.swift:144:28:144:30 | .count | StringLengthConflation.swift:144:28:144:38 | ... .-(_:_:) ... | -| StringLengthConflation.swift:168:29:168:36 | .count | StringLengthConflation.swift:168:29:168:44 | ... .-(_:_:) ... | -| StringLengthConflation.swift:169:29:169:37 | .count | StringLengthConflation.swift:169:29:169:45 | ... .-(_:_:) ... | -| StringLengthConflation.swift:170:29:170:46 | .count | StringLengthConflation.swift:170:29:170:54 | ... .-(_:_:) ... | -| StringLengthConflation.swift:171:29:171:32 | .length | StringLengthConflation.swift:171:29:171:41 | ... .-(_:_:) ... | -| StringLengthConflation.swift:172:29:172:33 | .length | StringLengthConflation.swift:172:29:172:42 | ... .-(_:_:) ... | -| StringLengthConflation.swift:173:35:173:37 | .count | StringLengthConflation.swift:173:35:173:45 | ... .-(_:_:) ... | -| StringLengthConflation.swift:174:35:174:42 | .count | StringLengthConflation.swift:174:35:174:50 | ... .-(_:_:) ... | -| StringLengthConflation.swift:175:35:175:43 | .count | StringLengthConflation.swift:175:35:175:51 | ... .-(_:_:) ... | -| StringLengthConflation.swift:177:35:177:38 | .length | StringLengthConflation.swift:177:35:177:47 | ... .-(_:_:) ... | -| StringLengthConflation.swift:178:35:178:39 | .length | StringLengthConflation.swift:178:35:178:48 | ... .-(_:_:) ... | -| StringLengthConflation.swift:179:37:179:39 | .count | StringLengthConflation.swift:179:37:179:47 | ... .-(_:_:) ... | -| StringLengthConflation.swift:181:37:181:39 | .count | StringLengthConflation.swift:181:37:181:47 | ... .-(_:_:) ... | -| file://:0:0:0:0 | .length | StringLengthConflation.swift:53:43:53:46 | .length | -| file://:0:0:0:0 | .length | StringLengthConflation.swift:60:47:60:50 | .length | -| file://:0:0:0:0 | .length | StringLengthConflation.swift:66:33:66:36 | .length | -| file://:0:0:0:0 | .length | StringLengthConflation.swift:96:28:96:31 | .length | -| file://:0:0:0:0 | .length | StringLengthConflation.swift:100:27:100:30 | .length | -| file://:0:0:0:0 | .length | StringLengthConflation.swift:104:25:104:28 | .length | -| file://:0:0:0:0 | .length | StringLengthConflation.swift:108:25:108:28 | .length | -| file://:0:0:0:0 | .length | StringLengthConflation.swift:114:23:114:26 | .length | -| file://:0:0:0:0 | .length | StringLengthConflation.swift:120:22:120:25 | .length | -| file://:0:0:0:0 | .length | StringLengthConflation.swift:171:29:171:32 | .length | -| file://:0:0:0:0 | .length | StringLengthConflation.swift:172:29:172:33 | .length | -| file://:0:0:0:0 | .length | StringLengthConflation.swift:177:35:177:38 | .length | -| file://:0:0:0:0 | .length | StringLengthConflation.swift:178:35:178:39 | .length | +| StringLengthConflation2.swift:35:36:35:38 | .count | StringLengthConflation2.swift:35:36:35:46 | ... .-(_:_:) ... | provenance | | +| StringLengthConflation2.swift:37:34:37:36 | .count | StringLengthConflation2.swift:37:34:37:44 | ... .-(_:_:) ... | provenance | | +| StringLengthConflation.swift:60:47:60:50 | .length | StringLengthConflation.swift:60:47:60:59 | ... ./(_:_:) ... | provenance | | +| StringLengthConflation.swift:66:33:66:36 | .length | StringLengthConflation.swift:66:33:66:45 | ... ./(_:_:) ... | provenance | | +| StringLengthConflation.swift:96:28:96:31 | .length | StringLengthConflation.swift:96:28:96:40 | ... .-(_:_:) ... | provenance | | +| StringLengthConflation.swift:100:27:100:30 | .length | StringLengthConflation.swift:100:27:100:39 | ... .-(_:_:) ... | provenance | | +| StringLengthConflation.swift:104:25:104:28 | .length | StringLengthConflation.swift:104:25:104:37 | ... .-(_:_:) ... | provenance | | +| StringLengthConflation.swift:108:25:108:28 | .length | StringLengthConflation.swift:108:25:108:37 | ... .-(_:_:) ... | provenance | | +| StringLengthConflation.swift:114:23:114:26 | .length | StringLengthConflation.swift:114:23:114:35 | ... .-(_:_:) ... | provenance | | +| StringLengthConflation.swift:120:22:120:25 | .length | StringLengthConflation.swift:120:22:120:34 | ... .-(_:_:) ... | provenance | | +| StringLengthConflation.swift:125:34:125:36 | .count | StringLengthConflation.swift:125:34:125:44 | ... .-(_:_:) ... | provenance | | +| StringLengthConflation.swift:126:36:126:38 | .count | StringLengthConflation.swift:126:36:126:46 | ... .-(_:_:) ... | provenance | | +| StringLengthConflation.swift:131:36:131:38 | .count | StringLengthConflation.swift:131:36:131:46 | ... .-(_:_:) ... | provenance | | +| StringLengthConflation.swift:132:38:132:40 | .count | StringLengthConflation.swift:132:38:132:48 | ... .-(_:_:) ... | provenance | | +| StringLengthConflation.swift:137:34:137:36 | .count | StringLengthConflation.swift:137:34:137:44 | ... .-(_:_:) ... | provenance | | +| StringLengthConflation.swift:138:36:138:38 | .count | StringLengthConflation.swift:138:36:138:46 | ... .-(_:_:) ... | provenance | | +| StringLengthConflation.swift:144:28:144:30 | .count | StringLengthConflation.swift:144:28:144:38 | ... .-(_:_:) ... | provenance | | +| StringLengthConflation.swift:168:29:168:36 | .count | StringLengthConflation.swift:168:29:168:44 | ... .-(_:_:) ... | provenance | | +| StringLengthConflation.swift:169:29:169:37 | .count | StringLengthConflation.swift:169:29:169:45 | ... .-(_:_:) ... | provenance | | +| StringLengthConflation.swift:170:29:170:46 | .count | StringLengthConflation.swift:170:29:170:54 | ... .-(_:_:) ... | provenance | | +| StringLengthConflation.swift:171:29:171:32 | .length | StringLengthConflation.swift:171:29:171:41 | ... .-(_:_:) ... | provenance | | +| StringLengthConflation.swift:172:29:172:33 | .length | StringLengthConflation.swift:172:29:172:42 | ... .-(_:_:) ... | provenance | | +| StringLengthConflation.swift:173:35:173:37 | .count | StringLengthConflation.swift:173:35:173:45 | ... .-(_:_:) ... | provenance | | +| StringLengthConflation.swift:174:35:174:42 | .count | StringLengthConflation.swift:174:35:174:50 | ... .-(_:_:) ... | provenance | | +| StringLengthConflation.swift:175:35:175:43 | .count | StringLengthConflation.swift:175:35:175:51 | ... .-(_:_:) ... | provenance | | +| StringLengthConflation.swift:177:35:177:38 | .length | StringLengthConflation.swift:177:35:177:47 | ... .-(_:_:) ... | provenance | | +| StringLengthConflation.swift:178:35:178:39 | .length | StringLengthConflation.swift:178:35:178:48 | ... .-(_:_:) ... | provenance | | +| StringLengthConflation.swift:179:37:179:39 | .count | StringLengthConflation.swift:179:37:179:47 | ... .-(_:_:) ... | provenance | | +| StringLengthConflation.swift:181:37:181:39 | .count | StringLengthConflation.swift:181:37:181:47 | ... .-(_:_:) ... | provenance | | +| file://:0:0:0:0 | .length | StringLengthConflation.swift:53:43:53:46 | .length | provenance | | +| file://:0:0:0:0 | .length | StringLengthConflation.swift:60:47:60:50 | .length | provenance | | +| file://:0:0:0:0 | .length | StringLengthConflation.swift:66:33:66:36 | .length | provenance | | +| file://:0:0:0:0 | .length | StringLengthConflation.swift:96:28:96:31 | .length | provenance | | +| file://:0:0:0:0 | .length | StringLengthConflation.swift:100:27:100:30 | .length | provenance | | +| file://:0:0:0:0 | .length | StringLengthConflation.swift:104:25:104:28 | .length | provenance | | +| file://:0:0:0:0 | .length | StringLengthConflation.swift:108:25:108:28 | .length | provenance | | +| file://:0:0:0:0 | .length | StringLengthConflation.swift:114:23:114:26 | .length | provenance | | +| file://:0:0:0:0 | .length | StringLengthConflation.swift:120:22:120:25 | .length | provenance | | +| file://:0:0:0:0 | .length | StringLengthConflation.swift:171:29:171:32 | .length | provenance | | +| file://:0:0:0:0 | .length | StringLengthConflation.swift:172:29:172:33 | .length | provenance | | +| file://:0:0:0:0 | .length | StringLengthConflation.swift:177:35:177:38 | .length | provenance | | +| file://:0:0:0:0 | .length | StringLengthConflation.swift:178:35:178:39 | .length | provenance | | nodes | StringLengthConflation2.swift:35:36:35:38 | .count | semmle.label | .count | | StringLengthConflation2.swift:35:36:35:46 | ... .-(_:_:) ... | semmle.label | ... .-(_:_:) ... | diff --git a/swift/ql/test/query-tests/Security/CWE-259/ConstantPassword.expected b/swift/ql/test/query-tests/Security/CWE-259/ConstantPassword.expected index 11c1950f3a97..0c1e98bfe7c6 100644 --- a/swift/ql/test/query-tests/Security/CWE-259/ConstantPassword.expected +++ b/swift/ql/test/query-tests/Security/CWE-259/ConstantPassword.expected @@ -1,34 +1,34 @@ edges -| rncryptor.swift:69:24:69:24 | abc123 | rncryptor.swift:77:89:77:89 | myConstPassword | -| rncryptor.swift:69:24:69:24 | abc123 | rncryptor.swift:78:56:78:56 | myConstPassword | -| rncryptor.swift:69:24:69:24 | abc123 | rncryptor.swift:80:89:80:89 | myMaybePassword | -| rncryptor.swift:69:24:69:24 | abc123 | rncryptor.swift:81:56:81:56 | myMaybePassword | -| rncryptor.swift:69:24:69:24 | abc123 | rncryptor.swift:91:39:91:39 | myConstPassword | -| rncryptor.swift:69:24:69:24 | abc123 | rncryptor.swift:92:37:92:37 | myConstPassword | -| rncryptor.swift:69:24:69:24 | abc123 | rncryptor.swift:93:39:93:39 | myConstPassword | -| rncryptor.swift:69:24:69:24 | abc123 | rncryptor.swift:94:37:94:37 | myConstPassword | -| rncryptor.swift:69:24:69:24 | abc123 | rncryptor.swift:96:68:96:68 | myConstPassword | -| rncryptor.swift:69:24:69:24 | abc123 | rncryptor.swift:97:68:97:68 | myConstPassword | -| rncryptor.swift:69:24:69:24 | abc123 | rncryptor.swift:98:68:98:68 | myConstPassword | -| rncryptor.swift:69:24:69:24 | abc123 | rncryptor.swift:100:89:100:89 | myConstPassword | -| rncryptor.swift:69:24:69:24 | abc123 | rncryptor.swift:101:97:101:97 | myConstPassword | -| rncryptor.swift:69:24:69:24 | abc123 | rncryptor.swift:102:89:102:89 | myConstPassword | -| rncryptor.swift:69:24:69:24 | abc123 | rncryptor.swift:103:97:103:97 | myConstPassword | -| rncryptor.swift:69:24:69:24 | abc123 | rncryptor.swift:105:32:105:32 | myConstPassword | -| rncryptor.swift:69:24:69:24 | abc123 | rncryptor.swift:107:61:107:61 | myConstPassword | -| rncryptor.swift:69:24:69:24 | abc123 | rncryptor.swift:108:97:108:97 | myConstPassword | -| test.swift:29:3:29:3 | this string is constant | test.swift:33:10:33:28 | call to getConstantString() | -| test.swift:33:2:33:34 | call to Array.init(_:) [Collection element] | test.swift:44:31:44:48 | call to getConstantArray() [Collection element] | -| test.swift:33:10:33:28 | call to getConstantString() | test.swift:33:10:33:30 | .utf8 | -| test.swift:33:10:33:30 | .utf8 | test.swift:33:2:33:34 | call to Array.init(_:) [Collection element] | -| test.swift:43:39:43:134 | [...] | test.swift:51:30:51:30 | constantPassword | -| test.swift:43:39:43:134 | [...] | test.swift:56:40:56:40 | constantPassword | -| test.swift:43:39:43:134 | [...] | test.swift:62:40:62:40 | constantPassword | -| test.swift:43:39:43:134 | [...] | test.swift:67:34:67:34 | constantPassword | -| test.swift:44:31:44:48 | call to getConstantArray() [Collection element] | test.swift:52:30:52:30 | constantStringPassword | -| test.swift:44:31:44:48 | call to getConstantArray() [Collection element] | test.swift:57:40:57:40 | constantStringPassword | -| test.swift:44:31:44:48 | call to getConstantArray() [Collection element] | test.swift:63:40:63:40 | constantStringPassword | -| test.swift:44:31:44:48 | call to getConstantArray() [Collection element] | test.swift:68:34:68:34 | constantStringPassword | +| rncryptor.swift:69:24:69:24 | abc123 | rncryptor.swift:77:89:77:89 | myConstPassword | provenance | | +| rncryptor.swift:69:24:69:24 | abc123 | rncryptor.swift:78:56:78:56 | myConstPassword | provenance | | +| rncryptor.swift:69:24:69:24 | abc123 | rncryptor.swift:80:89:80:89 | myMaybePassword | provenance | | +| rncryptor.swift:69:24:69:24 | abc123 | rncryptor.swift:81:56:81:56 | myMaybePassword | provenance | | +| rncryptor.swift:69:24:69:24 | abc123 | rncryptor.swift:91:39:91:39 | myConstPassword | provenance | | +| rncryptor.swift:69:24:69:24 | abc123 | rncryptor.swift:92:37:92:37 | myConstPassword | provenance | | +| rncryptor.swift:69:24:69:24 | abc123 | rncryptor.swift:93:39:93:39 | myConstPassword | provenance | | +| rncryptor.swift:69:24:69:24 | abc123 | rncryptor.swift:94:37:94:37 | myConstPassword | provenance | | +| rncryptor.swift:69:24:69:24 | abc123 | rncryptor.swift:96:68:96:68 | myConstPassword | provenance | | +| rncryptor.swift:69:24:69:24 | abc123 | rncryptor.swift:97:68:97:68 | myConstPassword | provenance | | +| rncryptor.swift:69:24:69:24 | abc123 | rncryptor.swift:98:68:98:68 | myConstPassword | provenance | | +| rncryptor.swift:69:24:69:24 | abc123 | rncryptor.swift:100:89:100:89 | myConstPassword | provenance | | +| rncryptor.swift:69:24:69:24 | abc123 | rncryptor.swift:101:97:101:97 | myConstPassword | provenance | | +| rncryptor.swift:69:24:69:24 | abc123 | rncryptor.swift:102:89:102:89 | myConstPassword | provenance | | +| rncryptor.swift:69:24:69:24 | abc123 | rncryptor.swift:103:97:103:97 | myConstPassword | provenance | | +| rncryptor.swift:69:24:69:24 | abc123 | rncryptor.swift:105:32:105:32 | myConstPassword | provenance | | +| rncryptor.swift:69:24:69:24 | abc123 | rncryptor.swift:107:61:107:61 | myConstPassword | provenance | | +| rncryptor.swift:69:24:69:24 | abc123 | rncryptor.swift:108:97:108:97 | myConstPassword | provenance | | +| test.swift:29:3:29:3 | this string is constant | test.swift:33:10:33:28 | call to getConstantString() | provenance | | +| test.swift:33:2:33:34 | call to Array.init(_:) [Collection element] | test.swift:44:31:44:48 | call to getConstantArray() [Collection element] | provenance | | +| test.swift:33:10:33:28 | call to getConstantString() | test.swift:33:10:33:30 | .utf8 | provenance | | +| test.swift:33:10:33:30 | .utf8 | test.swift:33:2:33:34 | call to Array.init(_:) [Collection element] | provenance | | +| test.swift:43:39:43:134 | [...] | test.swift:51:30:51:30 | constantPassword | provenance | | +| test.swift:43:39:43:134 | [...] | test.swift:56:40:56:40 | constantPassword | provenance | | +| test.swift:43:39:43:134 | [...] | test.swift:62:40:62:40 | constantPassword | provenance | | +| test.swift:43:39:43:134 | [...] | test.swift:67:34:67:34 | constantPassword | provenance | | +| test.swift:44:31:44:48 | call to getConstantArray() [Collection element] | test.swift:52:30:52:30 | constantStringPassword | provenance | | +| test.swift:44:31:44:48 | call to getConstantArray() [Collection element] | test.swift:57:40:57:40 | constantStringPassword | provenance | | +| test.swift:44:31:44:48 | call to getConstantArray() [Collection element] | test.swift:63:40:63:40 | constantStringPassword | provenance | | +| test.swift:44:31:44:48 | call to getConstantArray() [Collection element] | test.swift:68:34:68:34 | constantStringPassword | provenance | | nodes | rncryptor.swift:69:24:69:24 | abc123 | semmle.label | abc123 | | rncryptor.swift:77:89:77:89 | myConstPassword | semmle.label | myConstPassword | diff --git a/swift/ql/test/query-tests/Security/CWE-311/CleartextStorageDatabase.expected b/swift/ql/test/query-tests/Security/CWE-311/CleartextStorageDatabase.expected index dca833fff7f6..d3d3e9ec03e6 100644 --- a/swift/ql/test/query-tests/Security/CWE-311/CleartextStorageDatabase.expected +++ b/swift/ql/test/query-tests/Security/CWE-311/CleartextStorageDatabase.expected @@ -1,315 +1,315 @@ edges -| SQLite.swift:119:70:119:70 | mobilePhoneNumber | SQLite.swift:123:17:123:17 | insertQuery | -| SQLite.swift:119:70:119:70 | mobilePhoneNumber | SQLite.swift:127:21:127:21 | insertQuery | -| SQLite.swift:119:70:119:70 | mobilePhoneNumber | SQLite.swift:131:17:131:17 | insertQuery | -| SQLite.swift:119:70:119:70 | mobilePhoneNumber | SQLite.swift:135:20:135:20 | insertQuery | -| SQLite.swift:119:70:119:70 | mobilePhoneNumber | SQLite.swift:139:24:139:24 | insertQuery | -| SQLite.swift:120:50:120:50 | mobilePhoneNumber | SQLite.swift:124:17:124:17 | updateQuery | -| SQLite.swift:120:50:120:50 | mobilePhoneNumber | SQLite.swift:128:21:128:21 | updateQuery | -| SQLite.swift:120:50:120:50 | mobilePhoneNumber | SQLite.swift:132:17:132:17 | updateQuery | -| SQLite.swift:120:50:120:50 | mobilePhoneNumber | SQLite.swift:136:20:136:20 | updateQuery | -| SQLite.swift:120:50:120:50 | mobilePhoneNumber | SQLite.swift:140:24:140:24 | updateQuery | -| SQLite.swift:147:32:147:32 | [...] [Collection element] | SQLite.swift:147:32:147:32 | [...] | -| SQLite.swift:147:32:147:32 | mobilePhoneNumber | SQLite.swift:147:32:147:32 | [...] [Collection element] | -| SQLite.swift:148:28:148:28 | [...] [Collection element] | SQLite.swift:148:28:148:28 | [...] | -| SQLite.swift:148:28:148:28 | mobilePhoneNumber | SQLite.swift:148:28:148:28 | [...] [Collection element] | -| SQLite.swift:149:31:149:31 | [...] [Collection element] | SQLite.swift:149:31:149:31 | [...] | -| SQLite.swift:149:31:149:31 | mobilePhoneNumber | SQLite.swift:149:31:149:31 | [...] [Collection element] | -| SQLite.swift:152:21:152:21 | [...] [Collection element] | SQLite.swift:152:21:152:21 | [...] | -| SQLite.swift:152:21:152:21 | mobilePhoneNumber | SQLite.swift:152:21:152:21 | [...] [Collection element] | -| SQLite.swift:153:20:153:20 | [...] [Collection element] | SQLite.swift:153:20:153:20 | [...] | -| SQLite.swift:153:20:153:20 | mobilePhoneNumber | SQLite.swift:153:20:153:20 | [...] [Collection element] | -| SQLite.swift:154:23:154:23 | [...] [Collection element] | SQLite.swift:154:23:154:23 | [...] | -| SQLite.swift:154:23:154:23 | mobilePhoneNumber | SQLite.swift:154:23:154:23 | [...] [Collection element] | -| SQLite.swift:158:32:158:54 | [...] [Collection element] | SQLite.swift:158:32:158:54 | [...] | -| SQLite.swift:158:33:158:33 | mobilePhoneNumber | SQLite.swift:158:32:158:54 | [...] [Collection element] | -| SQLite.swift:159:28:159:50 | [...] [Collection element] | SQLite.swift:159:28:159:50 | [...] | -| SQLite.swift:159:29:159:29 | mobilePhoneNumber | SQLite.swift:159:28:159:50 | [...] [Collection element] | -| SQLite.swift:160:31:160:53 | [...] [Collection element] | SQLite.swift:160:31:160:53 | [...] | -| SQLite.swift:160:32:160:32 | mobilePhoneNumber | SQLite.swift:160:31:160:53 | [...] [Collection element] | -| SQLite.swift:163:21:163:43 | [...] [Collection element] | SQLite.swift:163:21:163:43 | [...] | -| SQLite.swift:163:22:163:22 | mobilePhoneNumber | SQLite.swift:163:21:163:43 | [...] [Collection element] | -| SQLite.swift:164:20:164:42 | [...] [Collection element] | SQLite.swift:164:20:164:42 | [...] | -| SQLite.swift:164:21:164:21 | mobilePhoneNumber | SQLite.swift:164:20:164:42 | [...] [Collection element] | -| SQLite.swift:165:23:165:45 | [...] [Collection element] | SQLite.swift:165:23:165:45 | [...] | -| SQLite.swift:165:24:165:24 | mobilePhoneNumber | SQLite.swift:165:23:165:45 | [...] [Collection element] | -| SQLite.swift:169:32:169:70 | [...] [Collection element, Tuple element at index 1] | SQLite.swift:169:32:169:70 | [...] | -| SQLite.swift:169:43:169:53 | (...) [Tuple element at index 1] | SQLite.swift:169:32:169:70 | [...] [Collection element, Tuple element at index 1] | -| SQLite.swift:169:53:169:53 | mobilePhoneNumber | SQLite.swift:169:43:169:53 | (...) [Tuple element at index 1] | -| SQLite.swift:170:28:170:66 | [...] [Collection element, Tuple element at index 1] | SQLite.swift:170:28:170:66 | [...] | -| SQLite.swift:170:39:170:49 | (...) [Tuple element at index 1] | SQLite.swift:170:28:170:66 | [...] [Collection element, Tuple element at index 1] | -| SQLite.swift:170:49:170:49 | mobilePhoneNumber | SQLite.swift:170:39:170:49 | (...) [Tuple element at index 1] | -| SQLite.swift:171:31:171:69 | [...] [Collection element, Tuple element at index 1] | SQLite.swift:171:31:171:69 | [...] | -| SQLite.swift:171:42:171:52 | (...) [Tuple element at index 1] | SQLite.swift:171:31:171:69 | [...] [Collection element, Tuple element at index 1] | -| SQLite.swift:171:52:171:52 | mobilePhoneNumber | SQLite.swift:171:42:171:52 | (...) [Tuple element at index 1] | -| SQLite.swift:174:21:174:59 | [...] [Collection element, Tuple element at index 1] | SQLite.swift:174:21:174:59 | [...] | -| SQLite.swift:174:32:174:42 | (...) [Tuple element at index 1] | SQLite.swift:174:21:174:59 | [...] [Collection element, Tuple element at index 1] | -| SQLite.swift:174:42:174:42 | mobilePhoneNumber | SQLite.swift:174:32:174:42 | (...) [Tuple element at index 1] | -| SQLite.swift:175:20:175:58 | [...] [Collection element, Tuple element at index 1] | SQLite.swift:175:20:175:58 | [...] | -| SQLite.swift:175:31:175:41 | (...) [Tuple element at index 1] | SQLite.swift:175:20:175:58 | [...] [Collection element, Tuple element at index 1] | -| SQLite.swift:175:41:175:41 | mobilePhoneNumber | SQLite.swift:175:31:175:41 | (...) [Tuple element at index 1] | -| SQLite.swift:176:23:176:61 | [...] [Collection element, Tuple element at index 1] | SQLite.swift:176:23:176:61 | [...] | -| SQLite.swift:176:34:176:44 | (...) [Tuple element at index 1] | SQLite.swift:176:23:176:61 | [...] [Collection element, Tuple element at index 1] | -| SQLite.swift:176:44:176:44 | mobilePhoneNumber | SQLite.swift:176:34:176:44 | (...) [Tuple element at index 1] | -| SQLite.swift:186:40:186:54 | ... <-(_:_:) ... | SQLite.swift:186:40:186:54 | [...] [Collection element] | -| SQLite.swift:186:40:186:54 | [...] [Collection element] | SQLite.swift:186:40:186:54 | [...] | -| SQLite.swift:186:54:186:54 | mobilePhoneNumber | SQLite.swift:186:40:186:54 | ... <-(_:_:) ... | -| SQLite.swift:189:26:189:40 | ... <-(_:_:) ... | SQLite.swift:189:26:189:40 | [...] [Collection element] | -| SQLite.swift:189:26:189:40 | [...] [Collection element] | SQLite.swift:189:26:189:40 | [...] | -| SQLite.swift:189:40:189:40 | mobilePhoneNumber | SQLite.swift:189:26:189:40 | ... <-(_:_:) ... | -| SQLite.swift:191:27:191:41 | ... <-(_:_:) ... | SQLite.swift:191:27:191:41 | [...] [Collection element] | -| SQLite.swift:191:27:191:41 | [...] [Collection element] | SQLite.swift:191:27:191:41 | [...] | -| SQLite.swift:191:41:191:41 | mobilePhoneNumber | SQLite.swift:191:27:191:41 | ... <-(_:_:) ... | -| SQLite.swift:193:26:193:89 | ... <-(_:_:) ... | SQLite.swift:193:26:193:89 | [...] [Collection element] | -| SQLite.swift:193:26:193:89 | [...] [Collection element] | SQLite.swift:193:26:193:89 | [...] | -| SQLite.swift:193:40:193:89 | call to replace(_:with:) | SQLite.swift:193:26:193:89 | ... <-(_:_:) ... | -| SQLite.swift:193:72:193:72 | mobilePhoneNumber | SQLite.swift:193:40:193:89 | call to replace(_:with:) | -| SQLite.swift:197:16:197:50 | [...] [Collection element, Collection element] | SQLite.swift:199:30:199:30 | badMany | -| SQLite.swift:197:16:197:50 | [...] [Collection element, Collection element] | SQLite.swift:201:54:201:54 | badMany | -| SQLite.swift:197:17:197:49 | [...] [Collection element] | SQLite.swift:197:16:197:50 | [...] [Collection element, Collection element] | -| SQLite.swift:197:18:197:32 | ... <-(_:_:) ... | SQLite.swift:197:17:197:49 | [...] [Collection element] | -| SQLite.swift:197:32:197:32 | mobilePhoneNumber | SQLite.swift:197:18:197:32 | ... <-(_:_:) ... | -| file://:0:0:0:0 | self | file://:0:0:0:0 | .value | -| file://:0:0:0:0 | self | file://:0:0:0:0 | .value2 | -| file://:0:0:0:0 | self [value] | file://:0:0:0:0 | .value | -| file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [data] | -| file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [data] | -| file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [notStoredBankAccountNumber] | -| file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [password] | -| file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [value] | -| sqlite3_c_api.swift:42:69:42:69 | medicalNotes | sqlite3_c_api.swift:46:27:46:27 | insertQuery | -| sqlite3_c_api.swift:43:49:43:49 | medicalNotes | sqlite3_c_api.swift:47:27:47:27 | updateQuery | -| testCoreData2.swift:23:13:23:13 | value | file://:0:0:0:0 | value | -| testCoreData2.swift:37:2:37:2 | [post] obj [myValue] | testCoreData2.swift:37:2:37:2 | [post] obj | -| testCoreData2.swift:37:16:37:16 | bankAccountNo | testCoreData2.swift:37:2:37:2 | [post] obj [myValue] | -| testCoreData2.swift:39:2:39:2 | [post] obj [myBankAccountNumber] | testCoreData2.swift:39:2:39:2 | [post] obj | -| testCoreData2.swift:39:28:39:28 | bankAccountNo | testCoreData2.swift:39:2:39:2 | [post] obj [myBankAccountNumber] | -| testCoreData2.swift:41:2:41:2 | [post] obj [myBankAccountNumber2] | testCoreData2.swift:41:2:41:2 | [post] obj | -| testCoreData2.swift:41:29:41:29 | bankAccountNo | testCoreData2.swift:41:2:41:2 | [post] obj [myBankAccountNumber2] | -| testCoreData2.swift:43:2:43:2 | [post] obj [notStoredBankAccountNumber] | testCoreData2.swift:43:2:43:2 | [post] obj | -| testCoreData2.swift:43:35:43:35 | bankAccountNo | testCoreData2.swift:23:13:23:13 | value | -| testCoreData2.swift:43:35:43:35 | bankAccountNo | testCoreData2.swift:43:2:43:2 | [post] obj [notStoredBankAccountNumber] | -| testCoreData2.swift:46:2:46:10 | [post] ...? [myValue] | testCoreData2.swift:46:2:46:10 | [post] ...? | -| testCoreData2.swift:46:22:46:22 | bankAccountNo | testCoreData2.swift:46:2:46:10 | [post] ...? [myValue] | -| testCoreData2.swift:48:2:48:10 | [post] ...? [myBankAccountNumber] | testCoreData2.swift:48:2:48:10 | [post] ...? | -| testCoreData2.swift:48:34:48:34 | bankAccountNo | testCoreData2.swift:48:2:48:10 | [post] ...? [myBankAccountNumber] | -| testCoreData2.swift:50:2:50:10 | [post] ...? [myBankAccountNumber2] | testCoreData2.swift:50:2:50:10 | [post] ...? | -| testCoreData2.swift:50:35:50:35 | bankAccountNo | testCoreData2.swift:50:2:50:10 | [post] ...? [myBankAccountNumber2] | -| testCoreData2.swift:52:2:52:10 | [post] ...? [notStoredBankAccountNumber] | testCoreData2.swift:52:2:52:10 | [post] ...? | -| testCoreData2.swift:52:41:52:41 | bankAccountNo | testCoreData2.swift:23:13:23:13 | value | -| testCoreData2.swift:52:41:52:41 | bankAccountNo | testCoreData2.swift:52:2:52:10 | [post] ...? [notStoredBankAccountNumber] | -| testCoreData2.swift:57:3:57:3 | [post] obj [myBankAccountNumber] | testCoreData2.swift:57:3:57:3 | [post] obj | -| testCoreData2.swift:57:29:57:29 | bankAccountNo | testCoreData2.swift:57:3:57:3 | [post] obj [myBankAccountNumber] | -| testCoreData2.swift:60:4:60:4 | [post] obj [myBankAccountNumber] | testCoreData2.swift:60:4:60:4 | [post] obj | -| testCoreData2.swift:60:30:60:30 | bankAccountNo | testCoreData2.swift:60:4:60:4 | [post] obj [myBankAccountNumber] | -| testCoreData2.swift:62:4:62:4 | [post] obj [myBankAccountNumber] | testCoreData2.swift:62:4:62:4 | [post] obj | -| testCoreData2.swift:62:30:62:30 | bankAccountNo | testCoreData2.swift:62:4:62:4 | [post] obj [myBankAccountNumber] | -| testCoreData2.swift:65:3:65:3 | [post] obj [myBankAccountNumber] | testCoreData2.swift:65:3:65:3 | [post] obj | -| testCoreData2.swift:65:29:65:29 | bankAccountNo | testCoreData2.swift:65:3:65:3 | [post] obj [myBankAccountNumber] | -| testCoreData2.swift:70:9:70:9 | self | file://:0:0:0:0 | self | -| testCoreData2.swift:70:9:70:9 | self [value] | file://:0:0:0:0 | self [value] | -| testCoreData2.swift:70:9:70:9 | value | file://:0:0:0:0 | value | -| testCoreData2.swift:71:9:71:9 | self | file://:0:0:0:0 | self | -| testCoreData2.swift:79:2:79:2 | [post] dbObj [myValue] | testCoreData2.swift:79:2:79:2 | [post] dbObj | -| testCoreData2.swift:79:18:79:28 | .bankAccountNo | testCoreData2.swift:79:2:79:2 | [post] dbObj [myValue] | -| testCoreData2.swift:80:2:80:2 | [post] dbObj [myValue] | testCoreData2.swift:80:2:80:2 | [post] dbObj | -| testCoreData2.swift:80:18:80:28 | ...! | testCoreData2.swift:80:2:80:2 | [post] dbObj [myValue] | -| testCoreData2.swift:80:18:80:28 | .bankAccountNo2 | testCoreData2.swift:80:18:80:28 | ...! | -| testCoreData2.swift:82:2:82:2 | [post] dbObj [myValue] | testCoreData2.swift:82:2:82:2 | [post] dbObj | -| testCoreData2.swift:82:18:82:18 | bankAccountNo | testCoreData2.swift:70:9:70:9 | self | -| testCoreData2.swift:82:18:82:18 | bankAccountNo | testCoreData2.swift:82:18:82:32 | .value | -| testCoreData2.swift:82:18:82:32 | .value | testCoreData2.swift:82:2:82:2 | [post] dbObj [myValue] | -| testCoreData2.swift:83:2:83:2 | [post] dbObj [myValue] | testCoreData2.swift:83:2:83:2 | [post] dbObj | -| testCoreData2.swift:83:18:83:18 | bankAccountNo | testCoreData2.swift:71:9:71:9 | self | -| testCoreData2.swift:83:18:83:18 | bankAccountNo | testCoreData2.swift:83:18:83:32 | .value2 | -| testCoreData2.swift:83:18:83:32 | ...! | testCoreData2.swift:83:2:83:2 | [post] dbObj [myValue] | -| testCoreData2.swift:83:18:83:32 | .value2 | testCoreData2.swift:83:18:83:32 | ...! | -| testCoreData2.swift:84:2:84:2 | [post] dbObj [myValue] | testCoreData2.swift:84:2:84:2 | [post] dbObj | -| testCoreData2.swift:84:18:84:18 | ...! | testCoreData2.swift:70:9:70:9 | self | -| testCoreData2.swift:84:18:84:18 | ...! | testCoreData2.swift:84:18:84:33 | .value | -| testCoreData2.swift:84:18:84:18 | bankAccountNo2 | testCoreData2.swift:84:18:84:18 | ...! | -| testCoreData2.swift:84:18:84:33 | .value | testCoreData2.swift:84:2:84:2 | [post] dbObj [myValue] | -| testCoreData2.swift:85:2:85:2 | [post] dbObj [myValue] | testCoreData2.swift:85:2:85:2 | [post] dbObj | -| testCoreData2.swift:85:18:85:18 | ...! | testCoreData2.swift:71:9:71:9 | self | -| testCoreData2.swift:85:18:85:18 | ...! | testCoreData2.swift:85:18:85:33 | .value2 | -| testCoreData2.swift:85:18:85:18 | bankAccountNo2 | testCoreData2.swift:85:18:85:18 | ...! | -| testCoreData2.swift:85:18:85:33 | ...! | testCoreData2.swift:85:2:85:2 | [post] dbObj [myValue] | -| testCoreData2.swift:85:18:85:33 | .value2 | testCoreData2.swift:85:18:85:33 | ...! | -| testCoreData2.swift:87:2:87:10 | [post] ...? [myValue] | testCoreData2.swift:87:2:87:10 | [post] ...? | -| testCoreData2.swift:87:22:87:32 | .bankAccountNo | testCoreData2.swift:87:2:87:10 | [post] ...? [myValue] | -| testCoreData2.swift:88:2:88:10 | [post] ...? [myValue] | testCoreData2.swift:88:2:88:10 | [post] ...? | -| testCoreData2.swift:88:22:88:22 | bankAccountNo | testCoreData2.swift:70:9:70:9 | self | -| testCoreData2.swift:88:22:88:22 | bankAccountNo | testCoreData2.swift:88:22:88:36 | .value | -| testCoreData2.swift:88:22:88:36 | .value | testCoreData2.swift:88:2:88:10 | [post] ...? [myValue] | -| testCoreData2.swift:89:2:89:10 | [post] ...? [myValue] | testCoreData2.swift:89:2:89:10 | [post] ...? | -| testCoreData2.swift:89:22:89:22 | ...! | testCoreData2.swift:71:9:71:9 | self | -| testCoreData2.swift:89:22:89:22 | ...! | testCoreData2.swift:89:22:89:37 | .value2 | -| testCoreData2.swift:89:22:89:22 | bankAccountNo2 | testCoreData2.swift:89:22:89:22 | ...! | -| testCoreData2.swift:89:22:89:37 | ...! | testCoreData2.swift:89:2:89:10 | [post] ...? [myValue] | -| testCoreData2.swift:89:22:89:37 | .value2 | testCoreData2.swift:89:22:89:37 | ...! | -| testCoreData2.swift:91:10:91:10 | bankAccountNo | testCoreData2.swift:92:10:92:10 | a | -| testCoreData2.swift:92:10:92:10 | a | testCoreData2.swift:70:9:70:9 | self | -| testCoreData2.swift:92:10:92:10 | a | testCoreData2.swift:92:10:92:12 | .value | -| testCoreData2.swift:92:10:92:12 | .value | testCoreData2.swift:93:18:93:18 | b | -| testCoreData2.swift:93:2:93:2 | [post] dbObj [myValue] | testCoreData2.swift:93:2:93:2 | [post] dbObj | -| testCoreData2.swift:93:18:93:18 | b | testCoreData2.swift:93:2:93:2 | [post] dbObj [myValue] | -| testCoreData2.swift:95:10:95:10 | bankAccountNo | testCoreData2.swift:97:12:97:12 | c | -| testCoreData2.swift:97:2:97:2 | [post] d [value] | testCoreData2.swift:98:18:98:18 | d [value] | -| testCoreData2.swift:97:12:97:12 | c | testCoreData2.swift:70:9:70:9 | self | -| testCoreData2.swift:97:12:97:12 | c | testCoreData2.swift:97:12:97:14 | .value | -| testCoreData2.swift:97:12:97:14 | .value | testCoreData2.swift:70:9:70:9 | value | -| testCoreData2.swift:97:12:97:14 | .value | testCoreData2.swift:97:2:97:2 | [post] d [value] | -| testCoreData2.swift:98:2:98:2 | [post] dbObj [myValue] | testCoreData2.swift:98:2:98:2 | [post] dbObj | -| testCoreData2.swift:98:18:98:18 | d [value] | testCoreData2.swift:70:9:70:9 | self [value] | -| testCoreData2.swift:98:18:98:18 | d [value] | testCoreData2.swift:98:18:98:20 | .value | -| testCoreData2.swift:98:18:98:20 | .value | testCoreData2.swift:98:2:98:2 | [post] dbObj [myValue] | -| testCoreData2.swift:101:10:101:10 | bankAccountNo | testCoreData2.swift:103:13:103:13 | e | -| testCoreData2.swift:103:13:103:13 | e | testCoreData2.swift:70:9:70:9 | self | -| testCoreData2.swift:103:13:103:13 | e | testCoreData2.swift:104:18:104:18 | e | -| testCoreData2.swift:104:2:104:2 | [post] dbObj [myValue] | testCoreData2.swift:104:2:104:2 | [post] dbObj | -| testCoreData2.swift:104:18:104:18 | e | testCoreData2.swift:70:9:70:9 | self | -| testCoreData2.swift:104:18:104:18 | e | testCoreData2.swift:104:18:104:20 | .value | -| testCoreData2.swift:104:18:104:18 | e | testCoreData2.swift:105:18:105:18 | e | -| testCoreData2.swift:104:18:104:20 | .value | testCoreData2.swift:104:2:104:2 | [post] dbObj [myValue] | -| testCoreData2.swift:105:2:105:2 | [post] dbObj [myValue] | testCoreData2.swift:105:2:105:2 | [post] dbObj | -| testCoreData2.swift:105:18:105:18 | e | testCoreData2.swift:71:9:71:9 | self | -| testCoreData2.swift:105:18:105:18 | e | testCoreData2.swift:105:18:105:20 | .value2 | -| testCoreData2.swift:105:18:105:20 | ...! | testCoreData2.swift:105:2:105:2 | [post] dbObj [myValue] | -| testCoreData2.swift:105:18:105:20 | .value2 | testCoreData2.swift:105:18:105:20 | ...! | -| testCoreData.swift:18:19:18:26 | value | testCoreData.swift:19:12:19:12 | value | -| testCoreData.swift:31:3:31:3 | newValue | testCoreData.swift:32:13:32:13 | newValue | -| testCoreData.swift:61:25:61:25 | password | testCoreData.swift:18:19:18:26 | value | -| testCoreData.swift:64:2:64:2 | [post] obj [myValue] | testCoreData.swift:64:2:64:2 | [post] obj | -| testCoreData.swift:64:16:64:16 | password | testCoreData.swift:31:3:31:3 | newValue | -| testCoreData.swift:64:16:64:16 | password | testCoreData.swift:64:2:64:2 | [post] obj [myValue] | -| testCoreData.swift:77:24:77:24 | x | testCoreData.swift:78:15:78:15 | x | -| testCoreData.swift:80:10:80:22 | call to getPassword() | testCoreData.swift:81:15:81:15 | y | -| testCoreData.swift:91:10:91:10 | passwd | testCoreData.swift:95:15:95:15 | x | -| testCoreData.swift:92:10:92:10 | passwd | testCoreData.swift:96:15:96:15 | y | -| testCoreData.swift:93:10:93:10 | passwd | testCoreData.swift:97:15:97:15 | z | -| testGRDB.swift:73:56:73:65 | [...] [Collection element] | testGRDB.swift:73:56:73:65 | [...] | -| testGRDB.swift:73:57:73:57 | password | testGRDB.swift:73:56:73:65 | [...] [Collection element] | -| testGRDB.swift:76:42:76:51 | [...] [Collection element] | testGRDB.swift:76:42:76:51 | [...] | -| testGRDB.swift:76:43:76:43 | password | testGRDB.swift:76:42:76:51 | [...] [Collection element] | -| testGRDB.swift:81:44:81:53 | [...] [Collection element] | testGRDB.swift:81:44:81:53 | [...] | -| testGRDB.swift:81:45:81:45 | password | testGRDB.swift:81:44:81:53 | [...] [Collection element] | -| testGRDB.swift:83:44:83:53 | [...] [Collection element] | testGRDB.swift:83:44:83:53 | [...] | -| testGRDB.swift:83:45:83:45 | password | testGRDB.swift:83:44:83:53 | [...] [Collection element] | -| testGRDB.swift:85:44:85:53 | [...] [Collection element] | testGRDB.swift:85:44:85:53 | [...] | -| testGRDB.swift:85:45:85:45 | password | testGRDB.swift:85:44:85:53 | [...] [Collection element] | -| testGRDB.swift:87:44:87:53 | [...] [Collection element] | testGRDB.swift:87:44:87:53 | [...] | -| testGRDB.swift:87:45:87:45 | password | testGRDB.swift:87:44:87:53 | [...] [Collection element] | -| testGRDB.swift:92:37:92:46 | [...] [Collection element] | testGRDB.swift:92:37:92:46 | [...] | -| testGRDB.swift:92:38:92:38 | password | testGRDB.swift:92:37:92:46 | [...] [Collection element] | -| testGRDB.swift:95:36:95:45 | [...] [Collection element] | testGRDB.swift:95:36:95:45 | [...] | -| testGRDB.swift:95:37:95:37 | password | testGRDB.swift:95:36:95:45 | [...] [Collection element] | -| testGRDB.swift:100:72:100:81 | [...] [Collection element] | testGRDB.swift:100:72:100:81 | [...] | -| testGRDB.swift:100:73:100:73 | password | testGRDB.swift:100:72:100:81 | [...] [Collection element] | -| testGRDB.swift:101:72:101:81 | [...] [Collection element] | testGRDB.swift:101:72:101:81 | [...] | -| testGRDB.swift:101:73:101:73 | password | testGRDB.swift:101:72:101:81 | [...] [Collection element] | -| testGRDB.swift:107:52:107:61 | [...] [Collection element] | testGRDB.swift:107:52:107:61 | [...] | -| testGRDB.swift:107:53:107:53 | password | testGRDB.swift:107:52:107:61 | [...] [Collection element] | -| testGRDB.swift:109:52:109:61 | [...] [Collection element] | testGRDB.swift:109:52:109:61 | [...] | -| testGRDB.swift:109:53:109:53 | password | testGRDB.swift:109:52:109:61 | [...] [Collection element] | -| testGRDB.swift:111:51:111:60 | [...] [Collection element] | testGRDB.swift:111:51:111:60 | [...] | -| testGRDB.swift:111:52:111:52 | password | testGRDB.swift:111:51:111:60 | [...] [Collection element] | -| testGRDB.swift:116:47:116:56 | [...] [Collection element] | testGRDB.swift:116:47:116:56 | [...] | -| testGRDB.swift:116:48:116:48 | password | testGRDB.swift:116:47:116:56 | [...] [Collection element] | -| testGRDB.swift:118:47:118:56 | [...] [Collection element] | testGRDB.swift:118:47:118:56 | [...] | -| testGRDB.swift:118:48:118:48 | password | testGRDB.swift:118:47:118:56 | [...] [Collection element] | -| testGRDB.swift:121:44:121:53 | [...] [Collection element] | testGRDB.swift:121:44:121:53 | [...] | -| testGRDB.swift:121:45:121:45 | password | testGRDB.swift:121:44:121:53 | [...] [Collection element] | -| testGRDB.swift:123:44:123:53 | [...] [Collection element] | testGRDB.swift:123:44:123:53 | [...] | -| testGRDB.swift:123:45:123:45 | password | testGRDB.swift:123:44:123:53 | [...] [Collection element] | -| testGRDB.swift:126:44:126:53 | [...] [Collection element] | testGRDB.swift:126:44:126:53 | [...] | -| testGRDB.swift:126:45:126:45 | password | testGRDB.swift:126:44:126:53 | [...] [Collection element] | -| testGRDB.swift:128:44:128:53 | [...] [Collection element] | testGRDB.swift:128:44:128:53 | [...] | -| testGRDB.swift:128:45:128:45 | password | testGRDB.swift:128:44:128:53 | [...] [Collection element] | -| testGRDB.swift:131:44:131:53 | [...] [Collection element] | testGRDB.swift:131:44:131:53 | [...] | -| testGRDB.swift:131:45:131:45 | password | testGRDB.swift:131:44:131:53 | [...] [Collection element] | -| testGRDB.swift:133:44:133:53 | [...] [Collection element] | testGRDB.swift:133:44:133:53 | [...] | -| testGRDB.swift:133:45:133:45 | password | testGRDB.swift:133:44:133:53 | [...] [Collection element] | -| testGRDB.swift:138:68:138:77 | [...] [Collection element] | testGRDB.swift:138:68:138:77 | [...] | -| testGRDB.swift:138:69:138:69 | password | testGRDB.swift:138:68:138:77 | [...] [Collection element] | -| testGRDB.swift:140:68:140:77 | [...] [Collection element] | testGRDB.swift:140:68:140:77 | [...] | -| testGRDB.swift:140:69:140:69 | password | testGRDB.swift:140:68:140:77 | [...] [Collection element] | -| testGRDB.swift:143:65:143:74 | [...] [Collection element] | testGRDB.swift:143:65:143:74 | [...] | -| testGRDB.swift:143:66:143:66 | password | testGRDB.swift:143:65:143:74 | [...] [Collection element] | -| testGRDB.swift:145:65:145:74 | [...] [Collection element] | testGRDB.swift:145:65:145:74 | [...] | -| testGRDB.swift:145:66:145:66 | password | testGRDB.swift:145:65:145:74 | [...] [Collection element] | -| testGRDB.swift:148:65:148:74 | [...] [Collection element] | testGRDB.swift:148:65:148:74 | [...] | -| testGRDB.swift:148:66:148:66 | password | testGRDB.swift:148:65:148:74 | [...] [Collection element] | -| testGRDB.swift:150:65:150:74 | [...] [Collection element] | testGRDB.swift:150:65:150:74 | [...] | -| testGRDB.swift:150:66:150:66 | password | testGRDB.swift:150:65:150:74 | [...] [Collection element] | -| testGRDB.swift:153:65:153:74 | [...] [Collection element] | testGRDB.swift:153:65:153:74 | [...] | -| testGRDB.swift:153:66:153:66 | password | testGRDB.swift:153:65:153:74 | [...] [Collection element] | -| testGRDB.swift:155:65:155:74 | [...] [Collection element] | testGRDB.swift:155:65:155:74 | [...] | -| testGRDB.swift:155:66:155:66 | password | testGRDB.swift:155:65:155:74 | [...] [Collection element] | -| testGRDB.swift:160:59:160:68 | [...] [Collection element] | testGRDB.swift:160:59:160:68 | [...] | -| testGRDB.swift:160:60:160:60 | password | testGRDB.swift:160:59:160:68 | [...] [Collection element] | -| testGRDB.swift:161:50:161:59 | [...] [Collection element] | testGRDB.swift:161:50:161:59 | [...] | -| testGRDB.swift:161:51:161:51 | password | testGRDB.swift:161:50:161:59 | [...] [Collection element] | -| testGRDB.swift:164:59:164:68 | [...] [Collection element] | testGRDB.swift:164:59:164:68 | [...] | -| testGRDB.swift:164:60:164:60 | password | testGRDB.swift:164:59:164:68 | [...] [Collection element] | -| testGRDB.swift:165:50:165:59 | [...] [Collection element] | testGRDB.swift:165:50:165:59 | [...] | -| testGRDB.swift:165:51:165:51 | password | testGRDB.swift:165:50:165:59 | [...] [Collection element] | -| testGRDB.swift:169:56:169:65 | [...] [Collection element] | testGRDB.swift:169:56:169:65 | [...] | -| testGRDB.swift:169:57:169:57 | password | testGRDB.swift:169:56:169:65 | [...] [Collection element] | -| testGRDB.swift:170:47:170:56 | [...] [Collection element] | testGRDB.swift:170:47:170:56 | [...] | -| testGRDB.swift:170:48:170:48 | password | testGRDB.swift:170:47:170:56 | [...] [Collection element] | -| testGRDB.swift:173:56:173:65 | [...] [Collection element] | testGRDB.swift:173:56:173:65 | [...] | -| testGRDB.swift:173:57:173:57 | password | testGRDB.swift:173:56:173:65 | [...] [Collection element] | -| testGRDB.swift:174:47:174:56 | [...] [Collection element] | testGRDB.swift:174:47:174:56 | [...] | -| testGRDB.swift:174:48:174:48 | password | testGRDB.swift:174:47:174:56 | [...] [Collection element] | -| testGRDB.swift:178:56:178:65 | [...] [Collection element] | testGRDB.swift:178:56:178:65 | [...] | -| testGRDB.swift:178:57:178:57 | password | testGRDB.swift:178:56:178:65 | [...] [Collection element] | -| testGRDB.swift:179:47:179:56 | [...] [Collection element] | testGRDB.swift:179:47:179:56 | [...] | -| testGRDB.swift:179:48:179:48 | password | testGRDB.swift:179:47:179:56 | [...] [Collection element] | -| testGRDB.swift:182:56:182:65 | [...] [Collection element] | testGRDB.swift:182:56:182:65 | [...] | -| testGRDB.swift:182:57:182:57 | password | testGRDB.swift:182:56:182:65 | [...] [Collection element] | -| testGRDB.swift:183:47:183:56 | [...] [Collection element] | testGRDB.swift:183:47:183:56 | [...] | -| testGRDB.swift:183:48:183:48 | password | testGRDB.swift:183:47:183:56 | [...] [Collection element] | -| testGRDB.swift:187:56:187:65 | [...] [Collection element] | testGRDB.swift:187:56:187:65 | [...] | -| testGRDB.swift:187:57:187:57 | password | testGRDB.swift:187:56:187:65 | [...] [Collection element] | -| testGRDB.swift:188:47:188:56 | [...] [Collection element] | testGRDB.swift:188:47:188:56 | [...] | -| testGRDB.swift:188:48:188:48 | password | testGRDB.swift:188:47:188:56 | [...] [Collection element] | -| testGRDB.swift:191:56:191:65 | [...] [Collection element] | testGRDB.swift:191:56:191:65 | [...] | -| testGRDB.swift:191:57:191:57 | password | testGRDB.swift:191:56:191:65 | [...] [Collection element] | -| testGRDB.swift:192:47:192:56 | [...] [Collection element] | testGRDB.swift:192:47:192:56 | [...] | -| testGRDB.swift:192:48:192:48 | password | testGRDB.swift:192:47:192:56 | [...] [Collection element] | -| testGRDB.swift:198:29:198:38 | [...] [Collection element] | testGRDB.swift:198:29:198:38 | [...] | -| testGRDB.swift:198:30:198:30 | password | testGRDB.swift:198:29:198:38 | [...] [Collection element] | -| testGRDB.swift:201:23:201:32 | [...] [Collection element] | testGRDB.swift:201:23:201:32 | [...] | -| testGRDB.swift:201:24:201:24 | password | testGRDB.swift:201:23:201:32 | [...] [Collection element] | -| testGRDB.swift:206:66:206:75 | [...] [Collection element] | testGRDB.swift:206:66:206:75 | [...] | -| testGRDB.swift:206:67:206:67 | password | testGRDB.swift:206:66:206:75 | [...] [Collection element] | -| testGRDB.swift:208:80:208:89 | [...] [Collection element] | testGRDB.swift:208:80:208:89 | [...] | -| testGRDB.swift:208:81:208:81 | password | testGRDB.swift:208:80:208:89 | [...] [Collection element] | -| testGRDB.swift:210:84:210:93 | [...] [Collection element] | testGRDB.swift:210:84:210:93 | [...] | -| testGRDB.swift:210:85:210:85 | password | testGRDB.swift:210:84:210:93 | [...] [Collection element] | -| testGRDB.swift:212:98:212:107 | [...] [Collection element] | testGRDB.swift:212:98:212:107 | [...] | -| testGRDB.swift:212:99:212:99 | password | testGRDB.swift:212:98:212:107 | [...] [Collection element] | -| testRealm2.swift:13:6:13:6 | value | file://:0:0:0:0 | value | -| testRealm2.swift:18:2:18:2 | [post] o [data] | testRealm2.swift:18:2:18:2 | [post] o | -| testRealm2.swift:18:11:18:11 | myPassword | testRealm2.swift:13:6:13:6 | value | -| testRealm2.swift:18:11:18:11 | myPassword | testRealm2.swift:18:2:18:2 | [post] o [data] | -| testRealm.swift:27:6:27:6 | value | file://:0:0:0:0 | value | -| testRealm.swift:34:6:34:6 | value | file://:0:0:0:0 | value | -| testRealm.swift:41:2:41:2 | [post] a [data] | testRealm.swift:41:2:41:2 | [post] a | -| testRealm.swift:41:11:41:11 | myPassword | testRealm.swift:27:6:27:6 | value | -| testRealm.swift:41:11:41:11 | myPassword | testRealm.swift:41:2:41:2 | [post] a [data] | -| testRealm.swift:49:2:49:2 | [post] c [data] | testRealm.swift:49:2:49:2 | [post] c | -| testRealm.swift:49:11:49:11 | myPassword | testRealm.swift:27:6:27:6 | value | -| testRealm.swift:49:11:49:11 | myPassword | testRealm.swift:49:2:49:2 | [post] c [data] | -| testRealm.swift:59:2:59:3 | [post] ...! [data] | testRealm.swift:59:2:59:3 | [post] ...! | -| testRealm.swift:59:12:59:12 | myPassword | testRealm.swift:27:6:27:6 | value | -| testRealm.swift:59:12:59:12 | myPassword | testRealm.swift:59:2:59:3 | [post] ...! [data] | -| testRealm.swift:66:2:66:2 | [post] g [data] | testRealm.swift:66:2:66:2 | [post] g | -| testRealm.swift:66:11:66:11 | myPassword | testRealm.swift:27:6:27:6 | value | -| testRealm.swift:66:11:66:11 | myPassword | testRealm.swift:66:2:66:2 | [post] g [data] | -| testRealm.swift:73:2:73:2 | [post] h [password] | testRealm.swift:73:2:73:2 | [post] h | -| testRealm.swift:73:15:73:15 | myPassword | testRealm.swift:34:6:34:6 | value | -| testRealm.swift:73:15:73:15 | myPassword | testRealm.swift:73:2:73:2 | [post] h [password] | +| SQLite.swift:119:70:119:70 | mobilePhoneNumber | SQLite.swift:123:17:123:17 | insertQuery | provenance | | +| SQLite.swift:119:70:119:70 | mobilePhoneNumber | SQLite.swift:127:21:127:21 | insertQuery | provenance | | +| SQLite.swift:119:70:119:70 | mobilePhoneNumber | SQLite.swift:131:17:131:17 | insertQuery | provenance | | +| SQLite.swift:119:70:119:70 | mobilePhoneNumber | SQLite.swift:135:20:135:20 | insertQuery | provenance | | +| SQLite.swift:119:70:119:70 | mobilePhoneNumber | SQLite.swift:139:24:139:24 | insertQuery | provenance | | +| SQLite.swift:120:50:120:50 | mobilePhoneNumber | SQLite.swift:124:17:124:17 | updateQuery | provenance | | +| SQLite.swift:120:50:120:50 | mobilePhoneNumber | SQLite.swift:128:21:128:21 | updateQuery | provenance | | +| SQLite.swift:120:50:120:50 | mobilePhoneNumber | SQLite.swift:132:17:132:17 | updateQuery | provenance | | +| SQLite.swift:120:50:120:50 | mobilePhoneNumber | SQLite.swift:136:20:136:20 | updateQuery | provenance | | +| SQLite.swift:120:50:120:50 | mobilePhoneNumber | SQLite.swift:140:24:140:24 | updateQuery | provenance | | +| SQLite.swift:147:32:147:32 | [...] [Collection element] | SQLite.swift:147:32:147:32 | [...] | provenance | | +| SQLite.swift:147:32:147:32 | mobilePhoneNumber | SQLite.swift:147:32:147:32 | [...] [Collection element] | provenance | | +| SQLite.swift:148:28:148:28 | [...] [Collection element] | SQLite.swift:148:28:148:28 | [...] | provenance | | +| SQLite.swift:148:28:148:28 | mobilePhoneNumber | SQLite.swift:148:28:148:28 | [...] [Collection element] | provenance | | +| SQLite.swift:149:31:149:31 | [...] [Collection element] | SQLite.swift:149:31:149:31 | [...] | provenance | | +| SQLite.swift:149:31:149:31 | mobilePhoneNumber | SQLite.swift:149:31:149:31 | [...] [Collection element] | provenance | | +| SQLite.swift:152:21:152:21 | [...] [Collection element] | SQLite.swift:152:21:152:21 | [...] | provenance | | +| SQLite.swift:152:21:152:21 | mobilePhoneNumber | SQLite.swift:152:21:152:21 | [...] [Collection element] | provenance | | +| SQLite.swift:153:20:153:20 | [...] [Collection element] | SQLite.swift:153:20:153:20 | [...] | provenance | | +| SQLite.swift:153:20:153:20 | mobilePhoneNumber | SQLite.swift:153:20:153:20 | [...] [Collection element] | provenance | | +| SQLite.swift:154:23:154:23 | [...] [Collection element] | SQLite.swift:154:23:154:23 | [...] | provenance | | +| SQLite.swift:154:23:154:23 | mobilePhoneNumber | SQLite.swift:154:23:154:23 | [...] [Collection element] | provenance | | +| SQLite.swift:158:32:158:54 | [...] [Collection element] | SQLite.swift:158:32:158:54 | [...] | provenance | | +| SQLite.swift:158:33:158:33 | mobilePhoneNumber | SQLite.swift:158:32:158:54 | [...] [Collection element] | provenance | | +| SQLite.swift:159:28:159:50 | [...] [Collection element] | SQLite.swift:159:28:159:50 | [...] | provenance | | +| SQLite.swift:159:29:159:29 | mobilePhoneNumber | SQLite.swift:159:28:159:50 | [...] [Collection element] | provenance | | +| SQLite.swift:160:31:160:53 | [...] [Collection element] | SQLite.swift:160:31:160:53 | [...] | provenance | | +| SQLite.swift:160:32:160:32 | mobilePhoneNumber | SQLite.swift:160:31:160:53 | [...] [Collection element] | provenance | | +| SQLite.swift:163:21:163:43 | [...] [Collection element] | SQLite.swift:163:21:163:43 | [...] | provenance | | +| SQLite.swift:163:22:163:22 | mobilePhoneNumber | SQLite.swift:163:21:163:43 | [...] [Collection element] | provenance | | +| SQLite.swift:164:20:164:42 | [...] [Collection element] | SQLite.swift:164:20:164:42 | [...] | provenance | | +| SQLite.swift:164:21:164:21 | mobilePhoneNumber | SQLite.swift:164:20:164:42 | [...] [Collection element] | provenance | | +| SQLite.swift:165:23:165:45 | [...] [Collection element] | SQLite.swift:165:23:165:45 | [...] | provenance | | +| SQLite.swift:165:24:165:24 | mobilePhoneNumber | SQLite.swift:165:23:165:45 | [...] [Collection element] | provenance | | +| SQLite.swift:169:32:169:70 | [...] [Collection element, Tuple element at index 1] | SQLite.swift:169:32:169:70 | [...] | provenance | | +| SQLite.swift:169:43:169:53 | (...) [Tuple element at index 1] | SQLite.swift:169:32:169:70 | [...] [Collection element, Tuple element at index 1] | provenance | | +| SQLite.swift:169:53:169:53 | mobilePhoneNumber | SQLite.swift:169:43:169:53 | (...) [Tuple element at index 1] | provenance | | +| SQLite.swift:170:28:170:66 | [...] [Collection element, Tuple element at index 1] | SQLite.swift:170:28:170:66 | [...] | provenance | | +| SQLite.swift:170:39:170:49 | (...) [Tuple element at index 1] | SQLite.swift:170:28:170:66 | [...] [Collection element, Tuple element at index 1] | provenance | | +| SQLite.swift:170:49:170:49 | mobilePhoneNumber | SQLite.swift:170:39:170:49 | (...) [Tuple element at index 1] | provenance | | +| SQLite.swift:171:31:171:69 | [...] [Collection element, Tuple element at index 1] | SQLite.swift:171:31:171:69 | [...] | provenance | | +| SQLite.swift:171:42:171:52 | (...) [Tuple element at index 1] | SQLite.swift:171:31:171:69 | [...] [Collection element, Tuple element at index 1] | provenance | | +| SQLite.swift:171:52:171:52 | mobilePhoneNumber | SQLite.swift:171:42:171:52 | (...) [Tuple element at index 1] | provenance | | +| SQLite.swift:174:21:174:59 | [...] [Collection element, Tuple element at index 1] | SQLite.swift:174:21:174:59 | [...] | provenance | | +| SQLite.swift:174:32:174:42 | (...) [Tuple element at index 1] | SQLite.swift:174:21:174:59 | [...] [Collection element, Tuple element at index 1] | provenance | | +| SQLite.swift:174:42:174:42 | mobilePhoneNumber | SQLite.swift:174:32:174:42 | (...) [Tuple element at index 1] | provenance | | +| SQLite.swift:175:20:175:58 | [...] [Collection element, Tuple element at index 1] | SQLite.swift:175:20:175:58 | [...] | provenance | | +| SQLite.swift:175:31:175:41 | (...) [Tuple element at index 1] | SQLite.swift:175:20:175:58 | [...] [Collection element, Tuple element at index 1] | provenance | | +| SQLite.swift:175:41:175:41 | mobilePhoneNumber | SQLite.swift:175:31:175:41 | (...) [Tuple element at index 1] | provenance | | +| SQLite.swift:176:23:176:61 | [...] [Collection element, Tuple element at index 1] | SQLite.swift:176:23:176:61 | [...] | provenance | | +| SQLite.swift:176:34:176:44 | (...) [Tuple element at index 1] | SQLite.swift:176:23:176:61 | [...] [Collection element, Tuple element at index 1] | provenance | | +| SQLite.swift:176:44:176:44 | mobilePhoneNumber | SQLite.swift:176:34:176:44 | (...) [Tuple element at index 1] | provenance | | +| SQLite.swift:186:40:186:54 | ... <-(_:_:) ... | SQLite.swift:186:40:186:54 | [...] [Collection element] | provenance | | +| SQLite.swift:186:40:186:54 | [...] [Collection element] | SQLite.swift:186:40:186:54 | [...] | provenance | | +| SQLite.swift:186:54:186:54 | mobilePhoneNumber | SQLite.swift:186:40:186:54 | ... <-(_:_:) ... | provenance | | +| SQLite.swift:189:26:189:40 | ... <-(_:_:) ... | SQLite.swift:189:26:189:40 | [...] [Collection element] | provenance | | +| SQLite.swift:189:26:189:40 | [...] [Collection element] | SQLite.swift:189:26:189:40 | [...] | provenance | | +| SQLite.swift:189:40:189:40 | mobilePhoneNumber | SQLite.swift:189:26:189:40 | ... <-(_:_:) ... | provenance | | +| SQLite.swift:191:27:191:41 | ... <-(_:_:) ... | SQLite.swift:191:27:191:41 | [...] [Collection element] | provenance | | +| SQLite.swift:191:27:191:41 | [...] [Collection element] | SQLite.swift:191:27:191:41 | [...] | provenance | | +| SQLite.swift:191:41:191:41 | mobilePhoneNumber | SQLite.swift:191:27:191:41 | ... <-(_:_:) ... | provenance | | +| SQLite.swift:193:26:193:89 | ... <-(_:_:) ... | SQLite.swift:193:26:193:89 | [...] [Collection element] | provenance | | +| SQLite.swift:193:26:193:89 | [...] [Collection element] | SQLite.swift:193:26:193:89 | [...] | provenance | | +| SQLite.swift:193:40:193:89 | call to replace(_:with:) | SQLite.swift:193:26:193:89 | ... <-(_:_:) ... | provenance | | +| SQLite.swift:193:72:193:72 | mobilePhoneNumber | SQLite.swift:193:40:193:89 | call to replace(_:with:) | provenance | | +| SQLite.swift:197:16:197:50 | [...] [Collection element, Collection element] | SQLite.swift:199:30:199:30 | badMany | provenance | | +| SQLite.swift:197:16:197:50 | [...] [Collection element, Collection element] | SQLite.swift:201:54:201:54 | badMany | provenance | | +| SQLite.swift:197:17:197:49 | [...] [Collection element] | SQLite.swift:197:16:197:50 | [...] [Collection element, Collection element] | provenance | | +| SQLite.swift:197:18:197:32 | ... <-(_:_:) ... | SQLite.swift:197:17:197:49 | [...] [Collection element] | provenance | | +| SQLite.swift:197:32:197:32 | mobilePhoneNumber | SQLite.swift:197:18:197:32 | ... <-(_:_:) ... | provenance | | +| file://:0:0:0:0 | self | file://:0:0:0:0 | .value | provenance | | +| file://:0:0:0:0 | self | file://:0:0:0:0 | .value2 | provenance | | +| file://:0:0:0:0 | self [value] | file://:0:0:0:0 | .value | provenance | | +| file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [data] | provenance | | +| file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [data] | provenance | | +| file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [notStoredBankAccountNumber] | provenance | | +| file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [password] | provenance | | +| file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [value] | provenance | | +| sqlite3_c_api.swift:42:69:42:69 | medicalNotes | sqlite3_c_api.swift:46:27:46:27 | insertQuery | provenance | | +| sqlite3_c_api.swift:43:49:43:49 | medicalNotes | sqlite3_c_api.swift:47:27:47:27 | updateQuery | provenance | | +| testCoreData2.swift:23:13:23:13 | value | file://:0:0:0:0 | value | provenance | | +| testCoreData2.swift:37:2:37:2 | [post] obj [myValue] | testCoreData2.swift:37:2:37:2 | [post] obj | provenance | | +| testCoreData2.swift:37:16:37:16 | bankAccountNo | testCoreData2.swift:37:2:37:2 | [post] obj [myValue] | provenance | | +| testCoreData2.swift:39:2:39:2 | [post] obj [myBankAccountNumber] | testCoreData2.swift:39:2:39:2 | [post] obj | provenance | | +| testCoreData2.swift:39:28:39:28 | bankAccountNo | testCoreData2.swift:39:2:39:2 | [post] obj [myBankAccountNumber] | provenance | | +| testCoreData2.swift:41:2:41:2 | [post] obj [myBankAccountNumber2] | testCoreData2.swift:41:2:41:2 | [post] obj | provenance | | +| testCoreData2.swift:41:29:41:29 | bankAccountNo | testCoreData2.swift:41:2:41:2 | [post] obj [myBankAccountNumber2] | provenance | | +| testCoreData2.swift:43:2:43:2 | [post] obj [notStoredBankAccountNumber] | testCoreData2.swift:43:2:43:2 | [post] obj | provenance | | +| testCoreData2.swift:43:35:43:35 | bankAccountNo | testCoreData2.swift:23:13:23:13 | value | provenance | | +| testCoreData2.swift:43:35:43:35 | bankAccountNo | testCoreData2.swift:43:2:43:2 | [post] obj [notStoredBankAccountNumber] | provenance | | +| testCoreData2.swift:46:2:46:10 | [post] ...? [myValue] | testCoreData2.swift:46:2:46:10 | [post] ...? | provenance | | +| testCoreData2.swift:46:22:46:22 | bankAccountNo | testCoreData2.swift:46:2:46:10 | [post] ...? [myValue] | provenance | | +| testCoreData2.swift:48:2:48:10 | [post] ...? [myBankAccountNumber] | testCoreData2.swift:48:2:48:10 | [post] ...? | provenance | | +| testCoreData2.swift:48:34:48:34 | bankAccountNo | testCoreData2.swift:48:2:48:10 | [post] ...? [myBankAccountNumber] | provenance | | +| testCoreData2.swift:50:2:50:10 | [post] ...? [myBankAccountNumber2] | testCoreData2.swift:50:2:50:10 | [post] ...? | provenance | | +| testCoreData2.swift:50:35:50:35 | bankAccountNo | testCoreData2.swift:50:2:50:10 | [post] ...? [myBankAccountNumber2] | provenance | | +| testCoreData2.swift:52:2:52:10 | [post] ...? [notStoredBankAccountNumber] | testCoreData2.swift:52:2:52:10 | [post] ...? | provenance | | +| testCoreData2.swift:52:41:52:41 | bankAccountNo | testCoreData2.swift:23:13:23:13 | value | provenance | | +| testCoreData2.swift:52:41:52:41 | bankAccountNo | testCoreData2.swift:52:2:52:10 | [post] ...? [notStoredBankAccountNumber] | provenance | | +| testCoreData2.swift:57:3:57:3 | [post] obj [myBankAccountNumber] | testCoreData2.swift:57:3:57:3 | [post] obj | provenance | | +| testCoreData2.swift:57:29:57:29 | bankAccountNo | testCoreData2.swift:57:3:57:3 | [post] obj [myBankAccountNumber] | provenance | | +| testCoreData2.swift:60:4:60:4 | [post] obj [myBankAccountNumber] | testCoreData2.swift:60:4:60:4 | [post] obj | provenance | | +| testCoreData2.swift:60:30:60:30 | bankAccountNo | testCoreData2.swift:60:4:60:4 | [post] obj [myBankAccountNumber] | provenance | | +| testCoreData2.swift:62:4:62:4 | [post] obj [myBankAccountNumber] | testCoreData2.swift:62:4:62:4 | [post] obj | provenance | | +| testCoreData2.swift:62:30:62:30 | bankAccountNo | testCoreData2.swift:62:4:62:4 | [post] obj [myBankAccountNumber] | provenance | | +| testCoreData2.swift:65:3:65:3 | [post] obj [myBankAccountNumber] | testCoreData2.swift:65:3:65:3 | [post] obj | provenance | | +| testCoreData2.swift:65:29:65:29 | bankAccountNo | testCoreData2.swift:65:3:65:3 | [post] obj [myBankAccountNumber] | provenance | | +| testCoreData2.swift:70:9:70:9 | self | file://:0:0:0:0 | self | provenance | | +| testCoreData2.swift:70:9:70:9 | self [value] | file://:0:0:0:0 | self [value] | provenance | | +| testCoreData2.swift:70:9:70:9 | value | file://:0:0:0:0 | value | provenance | | +| testCoreData2.swift:71:9:71:9 | self | file://:0:0:0:0 | self | provenance | | +| testCoreData2.swift:79:2:79:2 | [post] dbObj [myValue] | testCoreData2.swift:79:2:79:2 | [post] dbObj | provenance | | +| testCoreData2.swift:79:18:79:28 | .bankAccountNo | testCoreData2.swift:79:2:79:2 | [post] dbObj [myValue] | provenance | | +| testCoreData2.swift:80:2:80:2 | [post] dbObj [myValue] | testCoreData2.swift:80:2:80:2 | [post] dbObj | provenance | | +| testCoreData2.swift:80:18:80:28 | ...! | testCoreData2.swift:80:2:80:2 | [post] dbObj [myValue] | provenance | | +| testCoreData2.swift:80:18:80:28 | .bankAccountNo2 | testCoreData2.swift:80:18:80:28 | ...! | provenance | | +| testCoreData2.swift:82:2:82:2 | [post] dbObj [myValue] | testCoreData2.swift:82:2:82:2 | [post] dbObj | provenance | | +| testCoreData2.swift:82:18:82:18 | bankAccountNo | testCoreData2.swift:70:9:70:9 | self | provenance | | +| testCoreData2.swift:82:18:82:18 | bankAccountNo | testCoreData2.swift:82:18:82:32 | .value | provenance | | +| testCoreData2.swift:82:18:82:32 | .value | testCoreData2.swift:82:2:82:2 | [post] dbObj [myValue] | provenance | | +| testCoreData2.swift:83:2:83:2 | [post] dbObj [myValue] | testCoreData2.swift:83:2:83:2 | [post] dbObj | provenance | | +| testCoreData2.swift:83:18:83:18 | bankAccountNo | testCoreData2.swift:71:9:71:9 | self | provenance | | +| testCoreData2.swift:83:18:83:18 | bankAccountNo | testCoreData2.swift:83:18:83:32 | .value2 | provenance | | +| testCoreData2.swift:83:18:83:32 | ...! | testCoreData2.swift:83:2:83:2 | [post] dbObj [myValue] | provenance | | +| testCoreData2.swift:83:18:83:32 | .value2 | testCoreData2.swift:83:18:83:32 | ...! | provenance | | +| testCoreData2.swift:84:2:84:2 | [post] dbObj [myValue] | testCoreData2.swift:84:2:84:2 | [post] dbObj | provenance | | +| testCoreData2.swift:84:18:84:18 | ...! | testCoreData2.swift:70:9:70:9 | self | provenance | | +| testCoreData2.swift:84:18:84:18 | ...! | testCoreData2.swift:84:18:84:33 | .value | provenance | | +| testCoreData2.swift:84:18:84:18 | bankAccountNo2 | testCoreData2.swift:84:18:84:18 | ...! | provenance | | +| testCoreData2.swift:84:18:84:33 | .value | testCoreData2.swift:84:2:84:2 | [post] dbObj [myValue] | provenance | | +| testCoreData2.swift:85:2:85:2 | [post] dbObj [myValue] | testCoreData2.swift:85:2:85:2 | [post] dbObj | provenance | | +| testCoreData2.swift:85:18:85:18 | ...! | testCoreData2.swift:71:9:71:9 | self | provenance | | +| testCoreData2.swift:85:18:85:18 | ...! | testCoreData2.swift:85:18:85:33 | .value2 | provenance | | +| testCoreData2.swift:85:18:85:18 | bankAccountNo2 | testCoreData2.swift:85:18:85:18 | ...! | provenance | | +| testCoreData2.swift:85:18:85:33 | ...! | testCoreData2.swift:85:2:85:2 | [post] dbObj [myValue] | provenance | | +| testCoreData2.swift:85:18:85:33 | .value2 | testCoreData2.swift:85:18:85:33 | ...! | provenance | | +| testCoreData2.swift:87:2:87:10 | [post] ...? [myValue] | testCoreData2.swift:87:2:87:10 | [post] ...? | provenance | | +| testCoreData2.swift:87:22:87:32 | .bankAccountNo | testCoreData2.swift:87:2:87:10 | [post] ...? [myValue] | provenance | | +| testCoreData2.swift:88:2:88:10 | [post] ...? [myValue] | testCoreData2.swift:88:2:88:10 | [post] ...? | provenance | | +| testCoreData2.swift:88:22:88:22 | bankAccountNo | testCoreData2.swift:70:9:70:9 | self | provenance | | +| testCoreData2.swift:88:22:88:22 | bankAccountNo | testCoreData2.swift:88:22:88:36 | .value | provenance | | +| testCoreData2.swift:88:22:88:36 | .value | testCoreData2.swift:88:2:88:10 | [post] ...? [myValue] | provenance | | +| testCoreData2.swift:89:2:89:10 | [post] ...? [myValue] | testCoreData2.swift:89:2:89:10 | [post] ...? | provenance | | +| testCoreData2.swift:89:22:89:22 | ...! | testCoreData2.swift:71:9:71:9 | self | provenance | | +| testCoreData2.swift:89:22:89:22 | ...! | testCoreData2.swift:89:22:89:37 | .value2 | provenance | | +| testCoreData2.swift:89:22:89:22 | bankAccountNo2 | testCoreData2.swift:89:22:89:22 | ...! | provenance | | +| testCoreData2.swift:89:22:89:37 | ...! | testCoreData2.swift:89:2:89:10 | [post] ...? [myValue] | provenance | | +| testCoreData2.swift:89:22:89:37 | .value2 | testCoreData2.swift:89:22:89:37 | ...! | provenance | | +| testCoreData2.swift:91:10:91:10 | bankAccountNo | testCoreData2.swift:92:10:92:10 | a | provenance | | +| testCoreData2.swift:92:10:92:10 | a | testCoreData2.swift:70:9:70:9 | self | provenance | | +| testCoreData2.swift:92:10:92:10 | a | testCoreData2.swift:92:10:92:12 | .value | provenance | | +| testCoreData2.swift:92:10:92:12 | .value | testCoreData2.swift:93:18:93:18 | b | provenance | | +| testCoreData2.swift:93:2:93:2 | [post] dbObj [myValue] | testCoreData2.swift:93:2:93:2 | [post] dbObj | provenance | | +| testCoreData2.swift:93:18:93:18 | b | testCoreData2.swift:93:2:93:2 | [post] dbObj [myValue] | provenance | | +| testCoreData2.swift:95:10:95:10 | bankAccountNo | testCoreData2.swift:97:12:97:12 | c | provenance | | +| testCoreData2.swift:97:2:97:2 | [post] d [value] | testCoreData2.swift:98:18:98:18 | d [value] | provenance | | +| testCoreData2.swift:97:12:97:12 | c | testCoreData2.swift:70:9:70:9 | self | provenance | | +| testCoreData2.swift:97:12:97:12 | c | testCoreData2.swift:97:12:97:14 | .value | provenance | | +| testCoreData2.swift:97:12:97:14 | .value | testCoreData2.swift:70:9:70:9 | value | provenance | | +| testCoreData2.swift:97:12:97:14 | .value | testCoreData2.swift:97:2:97:2 | [post] d [value] | provenance | | +| testCoreData2.swift:98:2:98:2 | [post] dbObj [myValue] | testCoreData2.swift:98:2:98:2 | [post] dbObj | provenance | | +| testCoreData2.swift:98:18:98:18 | d [value] | testCoreData2.swift:70:9:70:9 | self [value] | provenance | | +| testCoreData2.swift:98:18:98:18 | d [value] | testCoreData2.swift:98:18:98:20 | .value | provenance | | +| testCoreData2.swift:98:18:98:20 | .value | testCoreData2.swift:98:2:98:2 | [post] dbObj [myValue] | provenance | | +| testCoreData2.swift:101:10:101:10 | bankAccountNo | testCoreData2.swift:103:13:103:13 | e | provenance | | +| testCoreData2.swift:103:13:103:13 | e | testCoreData2.swift:70:9:70:9 | self | provenance | | +| testCoreData2.swift:103:13:103:13 | e | testCoreData2.swift:104:18:104:18 | e | provenance | | +| testCoreData2.swift:104:2:104:2 | [post] dbObj [myValue] | testCoreData2.swift:104:2:104:2 | [post] dbObj | provenance | | +| testCoreData2.swift:104:18:104:18 | e | testCoreData2.swift:70:9:70:9 | self | provenance | | +| testCoreData2.swift:104:18:104:18 | e | testCoreData2.swift:104:18:104:20 | .value | provenance | | +| testCoreData2.swift:104:18:104:18 | e | testCoreData2.swift:105:18:105:18 | e | provenance | | +| testCoreData2.swift:104:18:104:20 | .value | testCoreData2.swift:104:2:104:2 | [post] dbObj [myValue] | provenance | | +| testCoreData2.swift:105:2:105:2 | [post] dbObj [myValue] | testCoreData2.swift:105:2:105:2 | [post] dbObj | provenance | | +| testCoreData2.swift:105:18:105:18 | e | testCoreData2.swift:71:9:71:9 | self | provenance | | +| testCoreData2.swift:105:18:105:18 | e | testCoreData2.swift:105:18:105:20 | .value2 | provenance | | +| testCoreData2.swift:105:18:105:20 | ...! | testCoreData2.swift:105:2:105:2 | [post] dbObj [myValue] | provenance | | +| testCoreData2.swift:105:18:105:20 | .value2 | testCoreData2.swift:105:18:105:20 | ...! | provenance | | +| testCoreData.swift:18:19:18:26 | value | testCoreData.swift:19:12:19:12 | value | provenance | | +| testCoreData.swift:31:3:31:3 | newValue | testCoreData.swift:32:13:32:13 | newValue | provenance | | +| testCoreData.swift:61:25:61:25 | password | testCoreData.swift:18:19:18:26 | value | provenance | | +| testCoreData.swift:64:2:64:2 | [post] obj [myValue] | testCoreData.swift:64:2:64:2 | [post] obj | provenance | | +| testCoreData.swift:64:16:64:16 | password | testCoreData.swift:31:3:31:3 | newValue | provenance | | +| testCoreData.swift:64:16:64:16 | password | testCoreData.swift:64:2:64:2 | [post] obj [myValue] | provenance | | +| testCoreData.swift:77:24:77:24 | x | testCoreData.swift:78:15:78:15 | x | provenance | | +| testCoreData.swift:80:10:80:22 | call to getPassword() | testCoreData.swift:81:15:81:15 | y | provenance | | +| testCoreData.swift:91:10:91:10 | passwd | testCoreData.swift:95:15:95:15 | x | provenance | | +| testCoreData.swift:92:10:92:10 | passwd | testCoreData.swift:96:15:96:15 | y | provenance | | +| testCoreData.swift:93:10:93:10 | passwd | testCoreData.swift:97:15:97:15 | z | provenance | | +| testGRDB.swift:73:56:73:65 | [...] [Collection element] | testGRDB.swift:73:56:73:65 | [...] | provenance | | +| testGRDB.swift:73:57:73:57 | password | testGRDB.swift:73:56:73:65 | [...] [Collection element] | provenance | | +| testGRDB.swift:76:42:76:51 | [...] [Collection element] | testGRDB.swift:76:42:76:51 | [...] | provenance | | +| testGRDB.swift:76:43:76:43 | password | testGRDB.swift:76:42:76:51 | [...] [Collection element] | provenance | | +| testGRDB.swift:81:44:81:53 | [...] [Collection element] | testGRDB.swift:81:44:81:53 | [...] | provenance | | +| testGRDB.swift:81:45:81:45 | password | testGRDB.swift:81:44:81:53 | [...] [Collection element] | provenance | | +| testGRDB.swift:83:44:83:53 | [...] [Collection element] | testGRDB.swift:83:44:83:53 | [...] | provenance | | +| testGRDB.swift:83:45:83:45 | password | testGRDB.swift:83:44:83:53 | [...] [Collection element] | provenance | | +| testGRDB.swift:85:44:85:53 | [...] [Collection element] | testGRDB.swift:85:44:85:53 | [...] | provenance | | +| testGRDB.swift:85:45:85:45 | password | testGRDB.swift:85:44:85:53 | [...] [Collection element] | provenance | | +| testGRDB.swift:87:44:87:53 | [...] [Collection element] | testGRDB.swift:87:44:87:53 | [...] | provenance | | +| testGRDB.swift:87:45:87:45 | password | testGRDB.swift:87:44:87:53 | [...] [Collection element] | provenance | | +| testGRDB.swift:92:37:92:46 | [...] [Collection element] | testGRDB.swift:92:37:92:46 | [...] | provenance | | +| testGRDB.swift:92:38:92:38 | password | testGRDB.swift:92:37:92:46 | [...] [Collection element] | provenance | | +| testGRDB.swift:95:36:95:45 | [...] [Collection element] | testGRDB.swift:95:36:95:45 | [...] | provenance | | +| testGRDB.swift:95:37:95:37 | password | testGRDB.swift:95:36:95:45 | [...] [Collection element] | provenance | | +| testGRDB.swift:100:72:100:81 | [...] [Collection element] | testGRDB.swift:100:72:100:81 | [...] | provenance | | +| testGRDB.swift:100:73:100:73 | password | testGRDB.swift:100:72:100:81 | [...] [Collection element] | provenance | | +| testGRDB.swift:101:72:101:81 | [...] [Collection element] | testGRDB.swift:101:72:101:81 | [...] | provenance | | +| testGRDB.swift:101:73:101:73 | password | testGRDB.swift:101:72:101:81 | [...] [Collection element] | provenance | | +| testGRDB.swift:107:52:107:61 | [...] [Collection element] | testGRDB.swift:107:52:107:61 | [...] | provenance | | +| testGRDB.swift:107:53:107:53 | password | testGRDB.swift:107:52:107:61 | [...] [Collection element] | provenance | | +| testGRDB.swift:109:52:109:61 | [...] [Collection element] | testGRDB.swift:109:52:109:61 | [...] | provenance | | +| testGRDB.swift:109:53:109:53 | password | testGRDB.swift:109:52:109:61 | [...] [Collection element] | provenance | | +| testGRDB.swift:111:51:111:60 | [...] [Collection element] | testGRDB.swift:111:51:111:60 | [...] | provenance | | +| testGRDB.swift:111:52:111:52 | password | testGRDB.swift:111:51:111:60 | [...] [Collection element] | provenance | | +| testGRDB.swift:116:47:116:56 | [...] [Collection element] | testGRDB.swift:116:47:116:56 | [...] | provenance | | +| testGRDB.swift:116:48:116:48 | password | testGRDB.swift:116:47:116:56 | [...] [Collection element] | provenance | | +| testGRDB.swift:118:47:118:56 | [...] [Collection element] | testGRDB.swift:118:47:118:56 | [...] | provenance | | +| testGRDB.swift:118:48:118:48 | password | testGRDB.swift:118:47:118:56 | [...] [Collection element] | provenance | | +| testGRDB.swift:121:44:121:53 | [...] [Collection element] | testGRDB.swift:121:44:121:53 | [...] | provenance | | +| testGRDB.swift:121:45:121:45 | password | testGRDB.swift:121:44:121:53 | [...] [Collection element] | provenance | | +| testGRDB.swift:123:44:123:53 | [...] [Collection element] | testGRDB.swift:123:44:123:53 | [...] | provenance | | +| testGRDB.swift:123:45:123:45 | password | testGRDB.swift:123:44:123:53 | [...] [Collection element] | provenance | | +| testGRDB.swift:126:44:126:53 | [...] [Collection element] | testGRDB.swift:126:44:126:53 | [...] | provenance | | +| testGRDB.swift:126:45:126:45 | password | testGRDB.swift:126:44:126:53 | [...] [Collection element] | provenance | | +| testGRDB.swift:128:44:128:53 | [...] [Collection element] | testGRDB.swift:128:44:128:53 | [...] | provenance | | +| testGRDB.swift:128:45:128:45 | password | testGRDB.swift:128:44:128:53 | [...] [Collection element] | provenance | | +| testGRDB.swift:131:44:131:53 | [...] [Collection element] | testGRDB.swift:131:44:131:53 | [...] | provenance | | +| testGRDB.swift:131:45:131:45 | password | testGRDB.swift:131:44:131:53 | [...] [Collection element] | provenance | | +| testGRDB.swift:133:44:133:53 | [...] [Collection element] | testGRDB.swift:133:44:133:53 | [...] | provenance | | +| testGRDB.swift:133:45:133:45 | password | testGRDB.swift:133:44:133:53 | [...] [Collection element] | provenance | | +| testGRDB.swift:138:68:138:77 | [...] [Collection element] | testGRDB.swift:138:68:138:77 | [...] | provenance | | +| testGRDB.swift:138:69:138:69 | password | testGRDB.swift:138:68:138:77 | [...] [Collection element] | provenance | | +| testGRDB.swift:140:68:140:77 | [...] [Collection element] | testGRDB.swift:140:68:140:77 | [...] | provenance | | +| testGRDB.swift:140:69:140:69 | password | testGRDB.swift:140:68:140:77 | [...] [Collection element] | provenance | | +| testGRDB.swift:143:65:143:74 | [...] [Collection element] | testGRDB.swift:143:65:143:74 | [...] | provenance | | +| testGRDB.swift:143:66:143:66 | password | testGRDB.swift:143:65:143:74 | [...] [Collection element] | provenance | | +| testGRDB.swift:145:65:145:74 | [...] [Collection element] | testGRDB.swift:145:65:145:74 | [...] | provenance | | +| testGRDB.swift:145:66:145:66 | password | testGRDB.swift:145:65:145:74 | [...] [Collection element] | provenance | | +| testGRDB.swift:148:65:148:74 | [...] [Collection element] | testGRDB.swift:148:65:148:74 | [...] | provenance | | +| testGRDB.swift:148:66:148:66 | password | testGRDB.swift:148:65:148:74 | [...] [Collection element] | provenance | | +| testGRDB.swift:150:65:150:74 | [...] [Collection element] | testGRDB.swift:150:65:150:74 | [...] | provenance | | +| testGRDB.swift:150:66:150:66 | password | testGRDB.swift:150:65:150:74 | [...] [Collection element] | provenance | | +| testGRDB.swift:153:65:153:74 | [...] [Collection element] | testGRDB.swift:153:65:153:74 | [...] | provenance | | +| testGRDB.swift:153:66:153:66 | password | testGRDB.swift:153:65:153:74 | [...] [Collection element] | provenance | | +| testGRDB.swift:155:65:155:74 | [...] [Collection element] | testGRDB.swift:155:65:155:74 | [...] | provenance | | +| testGRDB.swift:155:66:155:66 | password | testGRDB.swift:155:65:155:74 | [...] [Collection element] | provenance | | +| testGRDB.swift:160:59:160:68 | [...] [Collection element] | testGRDB.swift:160:59:160:68 | [...] | provenance | | +| testGRDB.swift:160:60:160:60 | password | testGRDB.swift:160:59:160:68 | [...] [Collection element] | provenance | | +| testGRDB.swift:161:50:161:59 | [...] [Collection element] | testGRDB.swift:161:50:161:59 | [...] | provenance | | +| testGRDB.swift:161:51:161:51 | password | testGRDB.swift:161:50:161:59 | [...] [Collection element] | provenance | | +| testGRDB.swift:164:59:164:68 | [...] [Collection element] | testGRDB.swift:164:59:164:68 | [...] | provenance | | +| testGRDB.swift:164:60:164:60 | password | testGRDB.swift:164:59:164:68 | [...] [Collection element] | provenance | | +| testGRDB.swift:165:50:165:59 | [...] [Collection element] | testGRDB.swift:165:50:165:59 | [...] | provenance | | +| testGRDB.swift:165:51:165:51 | password | testGRDB.swift:165:50:165:59 | [...] [Collection element] | provenance | | +| testGRDB.swift:169:56:169:65 | [...] [Collection element] | testGRDB.swift:169:56:169:65 | [...] | provenance | | +| testGRDB.swift:169:57:169:57 | password | testGRDB.swift:169:56:169:65 | [...] [Collection element] | provenance | | +| testGRDB.swift:170:47:170:56 | [...] [Collection element] | testGRDB.swift:170:47:170:56 | [...] | provenance | | +| testGRDB.swift:170:48:170:48 | password | testGRDB.swift:170:47:170:56 | [...] [Collection element] | provenance | | +| testGRDB.swift:173:56:173:65 | [...] [Collection element] | testGRDB.swift:173:56:173:65 | [...] | provenance | | +| testGRDB.swift:173:57:173:57 | password | testGRDB.swift:173:56:173:65 | [...] [Collection element] | provenance | | +| testGRDB.swift:174:47:174:56 | [...] [Collection element] | testGRDB.swift:174:47:174:56 | [...] | provenance | | +| testGRDB.swift:174:48:174:48 | password | testGRDB.swift:174:47:174:56 | [...] [Collection element] | provenance | | +| testGRDB.swift:178:56:178:65 | [...] [Collection element] | testGRDB.swift:178:56:178:65 | [...] | provenance | | +| testGRDB.swift:178:57:178:57 | password | testGRDB.swift:178:56:178:65 | [...] [Collection element] | provenance | | +| testGRDB.swift:179:47:179:56 | [...] [Collection element] | testGRDB.swift:179:47:179:56 | [...] | provenance | | +| testGRDB.swift:179:48:179:48 | password | testGRDB.swift:179:47:179:56 | [...] [Collection element] | provenance | | +| testGRDB.swift:182:56:182:65 | [...] [Collection element] | testGRDB.swift:182:56:182:65 | [...] | provenance | | +| testGRDB.swift:182:57:182:57 | password | testGRDB.swift:182:56:182:65 | [...] [Collection element] | provenance | | +| testGRDB.swift:183:47:183:56 | [...] [Collection element] | testGRDB.swift:183:47:183:56 | [...] | provenance | | +| testGRDB.swift:183:48:183:48 | password | testGRDB.swift:183:47:183:56 | [...] [Collection element] | provenance | | +| testGRDB.swift:187:56:187:65 | [...] [Collection element] | testGRDB.swift:187:56:187:65 | [...] | provenance | | +| testGRDB.swift:187:57:187:57 | password | testGRDB.swift:187:56:187:65 | [...] [Collection element] | provenance | | +| testGRDB.swift:188:47:188:56 | [...] [Collection element] | testGRDB.swift:188:47:188:56 | [...] | provenance | | +| testGRDB.swift:188:48:188:48 | password | testGRDB.swift:188:47:188:56 | [...] [Collection element] | provenance | | +| testGRDB.swift:191:56:191:65 | [...] [Collection element] | testGRDB.swift:191:56:191:65 | [...] | provenance | | +| testGRDB.swift:191:57:191:57 | password | testGRDB.swift:191:56:191:65 | [...] [Collection element] | provenance | | +| testGRDB.swift:192:47:192:56 | [...] [Collection element] | testGRDB.swift:192:47:192:56 | [...] | provenance | | +| testGRDB.swift:192:48:192:48 | password | testGRDB.swift:192:47:192:56 | [...] [Collection element] | provenance | | +| testGRDB.swift:198:29:198:38 | [...] [Collection element] | testGRDB.swift:198:29:198:38 | [...] | provenance | | +| testGRDB.swift:198:30:198:30 | password | testGRDB.swift:198:29:198:38 | [...] [Collection element] | provenance | | +| testGRDB.swift:201:23:201:32 | [...] [Collection element] | testGRDB.swift:201:23:201:32 | [...] | provenance | | +| testGRDB.swift:201:24:201:24 | password | testGRDB.swift:201:23:201:32 | [...] [Collection element] | provenance | | +| testGRDB.swift:206:66:206:75 | [...] [Collection element] | testGRDB.swift:206:66:206:75 | [...] | provenance | | +| testGRDB.swift:206:67:206:67 | password | testGRDB.swift:206:66:206:75 | [...] [Collection element] | provenance | | +| testGRDB.swift:208:80:208:89 | [...] [Collection element] | testGRDB.swift:208:80:208:89 | [...] | provenance | | +| testGRDB.swift:208:81:208:81 | password | testGRDB.swift:208:80:208:89 | [...] [Collection element] | provenance | | +| testGRDB.swift:210:84:210:93 | [...] [Collection element] | testGRDB.swift:210:84:210:93 | [...] | provenance | | +| testGRDB.swift:210:85:210:85 | password | testGRDB.swift:210:84:210:93 | [...] [Collection element] | provenance | | +| testGRDB.swift:212:98:212:107 | [...] [Collection element] | testGRDB.swift:212:98:212:107 | [...] | provenance | | +| testGRDB.swift:212:99:212:99 | password | testGRDB.swift:212:98:212:107 | [...] [Collection element] | provenance | | +| testRealm2.swift:13:6:13:6 | value | file://:0:0:0:0 | value | provenance | | +| testRealm2.swift:18:2:18:2 | [post] o [data] | testRealm2.swift:18:2:18:2 | [post] o | provenance | | +| testRealm2.swift:18:11:18:11 | myPassword | testRealm2.swift:13:6:13:6 | value | provenance | | +| testRealm2.swift:18:11:18:11 | myPassword | testRealm2.swift:18:2:18:2 | [post] o [data] | provenance | | +| testRealm.swift:27:6:27:6 | value | file://:0:0:0:0 | value | provenance | | +| testRealm.swift:34:6:34:6 | value | file://:0:0:0:0 | value | provenance | | +| testRealm.swift:41:2:41:2 | [post] a [data] | testRealm.swift:41:2:41:2 | [post] a | provenance | | +| testRealm.swift:41:11:41:11 | myPassword | testRealm.swift:27:6:27:6 | value | provenance | | +| testRealm.swift:41:11:41:11 | myPassword | testRealm.swift:41:2:41:2 | [post] a [data] | provenance | | +| testRealm.swift:49:2:49:2 | [post] c [data] | testRealm.swift:49:2:49:2 | [post] c | provenance | | +| testRealm.swift:49:11:49:11 | myPassword | testRealm.swift:27:6:27:6 | value | provenance | | +| testRealm.swift:49:11:49:11 | myPassword | testRealm.swift:49:2:49:2 | [post] c [data] | provenance | | +| testRealm.swift:59:2:59:3 | [post] ...! [data] | testRealm.swift:59:2:59:3 | [post] ...! | provenance | | +| testRealm.swift:59:12:59:12 | myPassword | testRealm.swift:27:6:27:6 | value | provenance | | +| testRealm.swift:59:12:59:12 | myPassword | testRealm.swift:59:2:59:3 | [post] ...! [data] | provenance | | +| testRealm.swift:66:2:66:2 | [post] g [data] | testRealm.swift:66:2:66:2 | [post] g | provenance | | +| testRealm.swift:66:11:66:11 | myPassword | testRealm.swift:27:6:27:6 | value | provenance | | +| testRealm.swift:66:11:66:11 | myPassword | testRealm.swift:66:2:66:2 | [post] g [data] | provenance | | +| testRealm.swift:73:2:73:2 | [post] h [password] | testRealm.swift:73:2:73:2 | [post] h | provenance | | +| testRealm.swift:73:15:73:15 | myPassword | testRealm.swift:34:6:34:6 | value | provenance | | +| testRealm.swift:73:15:73:15 | myPassword | testRealm.swift:73:2:73:2 | [post] h [password] | provenance | | nodes | SQLite.swift:119:70:119:70 | mobilePhoneNumber | semmle.label | mobilePhoneNumber | | SQLite.swift:120:50:120:50 | mobilePhoneNumber | semmle.label | mobilePhoneNumber | diff --git a/swift/ql/test/query-tests/Security/CWE-311/CleartextTransmission.expected b/swift/ql/test/query-tests/Security/CWE-311/CleartextTransmission.expected index d5139193e2ce..0b3d8336874d 100644 --- a/swift/ql/test/query-tests/Security/CWE-311/CleartextTransmission.expected +++ b/swift/ql/test/query-tests/Security/CWE-311/CleartextTransmission.expected @@ -1,37 +1,37 @@ edges -| file://:0:0:0:0 | self | file://:0:0:0:0 | .value | -| testAlamofire.swift:150:45:150:45 | password | testAlamofire.swift:150:13:150:45 | ... .+(_:_:) ... | -| testAlamofire.swift:152:51:152:51 | password | testAlamofire.swift:152:19:152:51 | ... .+(_:_:) ... | -| testAlamofire.swift:154:38:154:38 | email | testAlamofire.swift:154:14:154:46 | ... .+(_:_:) ... | -| testSend.swift:33:14:33:32 | call to Data.init(_:) | testSend.swift:37:19:37:19 | data2 | -| testSend.swift:33:19:33:19 | passwordPlain | testSend.swift:33:14:33:32 | call to Data.init(_:) | -| testSend.swift:41:10:41:18 | data | testSend.swift:41:45:41:45 | data | -| testSend.swift:58:13:58:13 | password | testSend.swift:65:27:65:27 | str1 | -| testSend.swift:59:13:59:13 | password | testSend.swift:66:27:66:27 | str2 | -| testSend.swift:60:13:60:25 | call to pad(_:) | testSend.swift:67:27:67:27 | str3 | -| testSend.swift:60:17:60:17 | password | testSend.swift:41:10:41:18 | data | -| testSend.swift:60:17:60:17 | password | testSend.swift:60:13:60:25 | call to pad(_:) | -| testSend.swift:86:7:86:7 | self | file://:0:0:0:0 | self | -| testSend.swift:94:27:94:30 | .password | testSend.swift:86:7:86:7 | self | -| testSend.swift:94:27:94:30 | .password | testSend.swift:94:27:94:39 | .value | -| testURL.swift:39:50:39:50 | passwd | testURL.swift:39:18:39:50 | ... .+(_:_:) ... | -| testURL.swift:41:51:41:51 | account_no | testURL.swift:41:18:41:51 | ... .+(_:_:) ... | -| testURL.swift:42:51:42:51 | credit_card_no | testURL.swift:42:18:42:51 | ... .+(_:_:) ... | -| testURL.swift:50:51:50:51 | e_mail | testURL.swift:50:18:50:51 | ... .+(_:_:) ... | -| testURL.swift:52:53:52:53 | a_homeaddr_z | testURL.swift:52:18:52:53 | ... .+(_:_:) ... | -| testURL.swift:54:51:54:51 | resident_ID | testURL.swift:54:18:54:51 | ... .+(_:_:) ... | -| testURL.swift:73:52:73:67 | call to get_secret_key() | testURL.swift:73:18:73:67 | ... .+(_:_:) ... | -| testURL.swift:75:53:75:69 | call to get_cert_string() | testURL.swift:75:18:75:69 | ... .+(_:_:) ... | -| testURL.swift:96:51:96:51 | certificate | testURL.swift:96:18:96:18 | "..." | -| testURL.swift:104:16:104:57 | call to SecKeyCopyExternalRepresentation(_:_:) | testURL.swift:105:19:105:53 | call to String.init(data:encoding:) | -| testURL.swift:104:16:104:57 | call to SecKeyCopyExternalRepresentation(_:_:) | testURL.swift:105:32:105:32 | data | -| testURL.swift:104:16:104:57 | call to SecKeyCopyExternalRepresentation(_:_:) | testURL.swift:106:20:106:20 | "..." | -| testURL.swift:105:6:105:10 | let ...? [some:0] | testURL.swift:105:10:105:10 | string | -| testURL.swift:105:10:105:10 | string | testURL.swift:106:20:106:20 | "..." | -| testURL.swift:105:19:105:53 | call to String.init(data:encoding:) | testURL.swift:105:19:105:53 | call to String.init(data:encoding:) [some:0] | -| testURL.swift:105:19:105:53 | call to String.init(data:encoding:) | testURL.swift:106:20:106:20 | "..." | -| testURL.swift:105:19:105:53 | call to String.init(data:encoding:) [some:0] | testURL.swift:105:6:105:10 | let ...? [some:0] | -| testURL.swift:105:32:105:32 | data | testURL.swift:105:19:105:53 | call to String.init(data:encoding:) [some:0] | +| file://:0:0:0:0 | self | file://:0:0:0:0 | .value | provenance | | +| testAlamofire.swift:150:45:150:45 | password | testAlamofire.swift:150:13:150:45 | ... .+(_:_:) ... | provenance | | +| testAlamofire.swift:152:51:152:51 | password | testAlamofire.swift:152:19:152:51 | ... .+(_:_:) ... | provenance | | +| testAlamofire.swift:154:38:154:38 | email | testAlamofire.swift:154:14:154:46 | ... .+(_:_:) ... | provenance | | +| testSend.swift:33:14:33:32 | call to Data.init(_:) | testSend.swift:37:19:37:19 | data2 | provenance | | +| testSend.swift:33:19:33:19 | passwordPlain | testSend.swift:33:14:33:32 | call to Data.init(_:) | provenance | | +| testSend.swift:41:10:41:18 | data | testSend.swift:41:45:41:45 | data | provenance | | +| testSend.swift:58:13:58:13 | password | testSend.swift:65:27:65:27 | str1 | provenance | | +| testSend.swift:59:13:59:13 | password | testSend.swift:66:27:66:27 | str2 | provenance | | +| testSend.swift:60:13:60:25 | call to pad(_:) | testSend.swift:67:27:67:27 | str3 | provenance | | +| testSend.swift:60:17:60:17 | password | testSend.swift:41:10:41:18 | data | provenance | | +| testSend.swift:60:17:60:17 | password | testSend.swift:60:13:60:25 | call to pad(_:) | provenance | | +| testSend.swift:86:7:86:7 | self | file://:0:0:0:0 | self | provenance | | +| testSend.swift:94:27:94:30 | .password | testSend.swift:86:7:86:7 | self | provenance | | +| testSend.swift:94:27:94:30 | .password | testSend.swift:94:27:94:39 | .value | provenance | | +| testURL.swift:39:50:39:50 | passwd | testURL.swift:39:18:39:50 | ... .+(_:_:) ... | provenance | | +| testURL.swift:41:51:41:51 | account_no | testURL.swift:41:18:41:51 | ... .+(_:_:) ... | provenance | | +| testURL.swift:42:51:42:51 | credit_card_no | testURL.swift:42:18:42:51 | ... .+(_:_:) ... | provenance | | +| testURL.swift:50:51:50:51 | e_mail | testURL.swift:50:18:50:51 | ... .+(_:_:) ... | provenance | | +| testURL.swift:52:53:52:53 | a_homeaddr_z | testURL.swift:52:18:52:53 | ... .+(_:_:) ... | provenance | | +| testURL.swift:54:51:54:51 | resident_ID | testURL.swift:54:18:54:51 | ... .+(_:_:) ... | provenance | | +| testURL.swift:73:52:73:67 | call to get_secret_key() | testURL.swift:73:18:73:67 | ... .+(_:_:) ... | provenance | | +| testURL.swift:75:53:75:69 | call to get_cert_string() | testURL.swift:75:18:75:69 | ... .+(_:_:) ... | provenance | | +| testURL.swift:96:51:96:51 | certificate | testURL.swift:96:18:96:18 | "..." | provenance | | +| testURL.swift:104:16:104:57 | call to SecKeyCopyExternalRepresentation(_:_:) | testURL.swift:105:19:105:53 | call to String.init(data:encoding:) | provenance | | +| testURL.swift:104:16:104:57 | call to SecKeyCopyExternalRepresentation(_:_:) | testURL.swift:105:32:105:32 | data | provenance | | +| testURL.swift:104:16:104:57 | call to SecKeyCopyExternalRepresentation(_:_:) | testURL.swift:106:20:106:20 | "..." | provenance | | +| testURL.swift:105:6:105:10 | let ...? [some:0] | testURL.swift:105:10:105:10 | string | provenance | | +| testURL.swift:105:10:105:10 | string | testURL.swift:106:20:106:20 | "..." | provenance | | +| testURL.swift:105:19:105:53 | call to String.init(data:encoding:) | testURL.swift:105:19:105:53 | call to String.init(data:encoding:) [some:0] | provenance | | +| testURL.swift:105:19:105:53 | call to String.init(data:encoding:) | testURL.swift:106:20:106:20 | "..." | provenance | | +| testURL.swift:105:19:105:53 | call to String.init(data:encoding:) [some:0] | testURL.swift:105:6:105:10 | let ...? [some:0] | provenance | | +| testURL.swift:105:32:105:32 | data | testURL.swift:105:19:105:53 | call to String.init(data:encoding:) [some:0] | provenance | | nodes | file://:0:0:0:0 | .value | semmle.label | .value | | file://:0:0:0:0 | self | semmle.label | self | diff --git a/swift/ql/test/query-tests/Security/CWE-312/CleartextStoragePreferences.expected b/swift/ql/test/query-tests/Security/CWE-312/CleartextStoragePreferences.expected index 69865237e183..4c78d468cf0a 100644 --- a/swift/ql/test/query-tests/Security/CWE-312/CleartextStoragePreferences.expected +++ b/swift/ql/test/query-tests/Security/CWE-312/CleartextStoragePreferences.expected @@ -1,18 +1,18 @@ edges -| file://:0:0:0:0 | self | file://:0:0:0:0 | .value | -| testNSUbiquitousKeyValueStore.swift:41:24:41:24 | x | testNSUbiquitousKeyValueStore.swift:42:40:42:40 | x | -| testNSUbiquitousKeyValueStore.swift:44:10:44:22 | call to getPassword() | testNSUbiquitousKeyValueStore.swift:45:40:45:40 | y | -| testNSUbiquitousKeyValueStore.swift:55:10:55:10 | passwd | testNSUbiquitousKeyValueStore.swift:59:40:59:40 | x | -| testNSUbiquitousKeyValueStore.swift:56:10:56:10 | passwd | testNSUbiquitousKeyValueStore.swift:60:40:60:40 | y | -| testNSUbiquitousKeyValueStore.swift:57:10:57:10 | passwd | testNSUbiquitousKeyValueStore.swift:61:40:61:40 | z | -| testUserDefaults.swift:41:24:41:24 | x | testUserDefaults.swift:42:28:42:28 | x | -| testUserDefaults.swift:44:10:44:22 | call to getPassword() | testUserDefaults.swift:45:28:45:28 | y | -| testUserDefaults.swift:55:10:55:10 | passwd | testUserDefaults.swift:59:28:59:28 | x | -| testUserDefaults.swift:56:10:56:10 | passwd | testUserDefaults.swift:60:28:60:28 | y | -| testUserDefaults.swift:57:10:57:10 | passwd | testUserDefaults.swift:61:28:61:28 | z | -| testUserDefaults.swift:74:7:74:7 | self | file://:0:0:0:0 | self | -| testUserDefaults.swift:82:28:82:31 | .password | testUserDefaults.swift:74:7:74:7 | self | -| testUserDefaults.swift:82:28:82:31 | .password | testUserDefaults.swift:82:28:82:40 | .value | +| file://:0:0:0:0 | self | file://:0:0:0:0 | .value | provenance | | +| testNSUbiquitousKeyValueStore.swift:41:24:41:24 | x | testNSUbiquitousKeyValueStore.swift:42:40:42:40 | x | provenance | | +| testNSUbiquitousKeyValueStore.swift:44:10:44:22 | call to getPassword() | testNSUbiquitousKeyValueStore.swift:45:40:45:40 | y | provenance | | +| testNSUbiquitousKeyValueStore.swift:55:10:55:10 | passwd | testNSUbiquitousKeyValueStore.swift:59:40:59:40 | x | provenance | | +| testNSUbiquitousKeyValueStore.swift:56:10:56:10 | passwd | testNSUbiquitousKeyValueStore.swift:60:40:60:40 | y | provenance | | +| testNSUbiquitousKeyValueStore.swift:57:10:57:10 | passwd | testNSUbiquitousKeyValueStore.swift:61:40:61:40 | z | provenance | | +| testUserDefaults.swift:41:24:41:24 | x | testUserDefaults.swift:42:28:42:28 | x | provenance | | +| testUserDefaults.swift:44:10:44:22 | call to getPassword() | testUserDefaults.swift:45:28:45:28 | y | provenance | | +| testUserDefaults.swift:55:10:55:10 | passwd | testUserDefaults.swift:59:28:59:28 | x | provenance | | +| testUserDefaults.swift:56:10:56:10 | passwd | testUserDefaults.swift:60:28:60:28 | y | provenance | | +| testUserDefaults.swift:57:10:57:10 | passwd | testUserDefaults.swift:61:28:61:28 | z | provenance | | +| testUserDefaults.swift:74:7:74:7 | self | file://:0:0:0:0 | self | provenance | | +| testUserDefaults.swift:82:28:82:31 | .password | testUserDefaults.swift:74:7:74:7 | self | provenance | | +| testUserDefaults.swift:82:28:82:31 | .password | testUserDefaults.swift:82:28:82:40 | .value | provenance | | nodes | file://:0:0:0:0 | .value | semmle.label | .value | | file://:0:0:0:0 | self | semmle.label | self | diff --git a/swift/ql/test/query-tests/Security/CWE-321/HardcodedEncryptionKey.expected b/swift/ql/test/query-tests/Security/CWE-321/HardcodedEncryptionKey.expected index a2cd88cd3f88..733a7c42c9ed 100644 --- a/swift/ql/test/query-tests/Security/CWE-321/HardcodedEncryptionKey.expected +++ b/swift/ql/test/query-tests/Security/CWE-321/HardcodedEncryptionKey.expected @@ -1,74 +1,74 @@ edges -| SQLite.swift:54:25:54:33 | [...] | SQLite.swift:54:13:54:34 | call to Blob.init(bytes:) | -| cryptoswift.swift:76:3:76:3 | this string is constant | cryptoswift.swift:80:10:80:28 | call to getConstantString() | -| cryptoswift.swift:76:3:76:3 | this string is constant | cryptoswift.swift:92:18:92:36 | call to getConstantString() | -| cryptoswift.swift:80:2:80:34 | call to Array.init(_:) [Collection element] | cryptoswift.swift:91:13:91:30 | call to getConstantArray() [Collection element] | -| cryptoswift.swift:80:10:80:28 | call to getConstantString() | cryptoswift.swift:80:10:80:30 | .utf8 | -| cryptoswift.swift:80:10:80:30 | .utf8 | cryptoswift.swift:80:2:80:34 | call to Array.init(_:) [Collection element] | -| cryptoswift.swift:90:26:90:121 | [...] | cryptoswift.swift:117:22:117:22 | key | -| cryptoswift.swift:90:26:90:121 | [...] | cryptoswift.swift:118:22:118:22 | key | -| cryptoswift.swift:90:26:90:121 | [...] | cryptoswift.swift:128:26:128:26 | key | -| cryptoswift.swift:90:26:90:121 | [...] | cryptoswift.swift:135:25:135:25 | key | -| cryptoswift.swift:90:26:90:121 | [...] | cryptoswift.swift:140:25:140:25 | key | -| cryptoswift.swift:90:26:90:121 | [...] | cryptoswift.swift:145:26:145:26 | key | -| cryptoswift.swift:90:26:90:121 | [...] | cryptoswift.swift:150:26:150:26 | key | -| cryptoswift.swift:90:26:90:121 | [...] | cryptoswift.swift:151:26:151:26 | key | -| cryptoswift.swift:90:26:90:121 | [...] | cryptoswift.swift:161:24:161:24 | key | -| cryptoswift.swift:90:26:90:121 | [...] | cryptoswift.swift:163:24:163:24 | key | -| cryptoswift.swift:91:13:91:30 | call to getConstantArray() [Collection element] | cryptoswift.swift:106:21:106:21 | key2 | -| cryptoswift.swift:91:13:91:30 | call to getConstantArray() [Collection element] | cryptoswift.swift:107:21:107:21 | key2 | -| cryptoswift.swift:92:18:92:36 | call to getConstantString() | cryptoswift.swift:108:21:108:21 | keyString | -| cryptoswift.swift:92:18:92:36 | call to getConstantString() | cryptoswift.swift:109:21:109:21 | keyString | -| cryptoswift.swift:92:18:92:36 | call to getConstantString() | cryptoswift.swift:119:22:119:22 | keyString | -| cryptoswift.swift:92:18:92:36 | call to getConstantString() | cryptoswift.swift:120:22:120:22 | keyString | -| cryptoswift.swift:92:18:92:36 | call to getConstantString() | cryptoswift.swift:129:26:129:26 | keyString | -| cryptoswift.swift:92:18:92:36 | call to getConstantString() | cryptoswift.swift:152:26:152:26 | keyString | -| cryptoswift.swift:92:18:92:36 | call to getConstantString() | cryptoswift.swift:153:26:153:26 | keyString | -| cryptoswift.swift:92:18:92:36 | call to getConstantString() | cryptoswift.swift:162:24:162:24 | keyString | -| cryptoswift.swift:92:18:92:36 | call to getConstantString() | cryptoswift.swift:164:24:164:24 | keyString | -| file://:0:0:0:0 | [post] self [encryptionKey] | file://:0:0:0:0 | [post] self | -| file://:0:0:0:0 | [post] self [encryptionKey] | file://:0:0:0:0 | [post] self | -| file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [encryptionKey] | -| grdb.swift:21:20:21:20 | abc123 | grdb.swift:27:23:27:23 | constString | -| grdb.swift:21:20:21:20 | abc123 | grdb.swift:31:26:31:26 | constString | -| grdb.swift:22:33:22:50 | [...] | grdb.swift:23:23:23:23 | constArray | -| grdb.swift:23:18:23:33 | call to Data.init(_:) | grdb.swift:29:23:29:23 | constData | -| grdb.swift:23:18:23:33 | call to Data.init(_:) | grdb.swift:33:26:33:26 | constData | -| grdb.swift:23:23:23:23 | constArray | grdb.swift:23:18:23:33 | call to Data.init(_:) | -| misc.swift:30:7:30:7 | value | file://:0:0:0:0 | value | -| misc.swift:46:19:46:38 | call to Data.init(_:) | misc.swift:49:41:49:41 | myConstKey | -| misc.swift:46:19:46:38 | call to Data.init(_:) | misc.swift:53:25:53:25 | myConstKey | -| misc.swift:46:19:46:38 | call to Data.init(_:) | misc.swift:57:41:57:41 | myConstKey | -| misc.swift:46:24:46:24 | abcdef123456 | misc.swift:46:19:46:38 | call to Data.init(_:) | -| misc.swift:53:2:53:2 | [post] config [encryptionKey] | misc.swift:53:2:53:2 | [post] config | -| misc.swift:53:25:53:25 | myConstKey | misc.swift:30:7:30:7 | value | -| misc.swift:53:25:53:25 | myConstKey | misc.swift:53:2:53:2 | [post] config | -| misc.swift:53:25:53:25 | myConstKey | misc.swift:53:2:53:2 | [post] config [encryptionKey] | -| misc.swift:57:2:57:18 | [post] getter for .config [encryptionKey] | misc.swift:57:2:57:18 | [post] getter for .config | -| misc.swift:57:41:57:41 | myConstKey | misc.swift:30:7:30:7 | value | -| misc.swift:57:41:57:41 | myConstKey | misc.swift:57:2:57:18 | [post] getter for .config | -| misc.swift:57:41:57:41 | myConstKey | misc.swift:57:2:57:18 | [post] getter for .config [encryptionKey] | -| rncryptor.swift:60:19:60:38 | call to Data.init(_:) | rncryptor.swift:65:73:65:73 | myConstKey | -| rncryptor.swift:60:19:60:38 | call to Data.init(_:) | rncryptor.swift:66:73:66:73 | myConstKey | -| rncryptor.swift:60:19:60:38 | call to Data.init(_:) | rncryptor.swift:67:73:67:73 | myConstKey | -| rncryptor.swift:60:19:60:38 | call to Data.init(_:) | rncryptor.swift:68:73:68:73 | myConstKey | -| rncryptor.swift:60:19:60:38 | call to Data.init(_:) | rncryptor.swift:70:94:70:94 | myConstKey | -| rncryptor.swift:60:19:60:38 | call to Data.init(_:) | rncryptor.swift:71:102:71:102 | myConstKey | -| rncryptor.swift:60:19:60:38 | call to Data.init(_:) | rncryptor.swift:72:94:72:94 | myConstKey | -| rncryptor.swift:60:19:60:38 | call to Data.init(_:) | rncryptor.swift:73:102:73:102 | myConstKey | -| rncryptor.swift:60:19:60:38 | call to Data.init(_:) | rncryptor.swift:75:37:75:37 | myConstKey | -| rncryptor.swift:60:19:60:38 | call to Data.init(_:) | rncryptor.swift:76:37:76:37 | myConstKey | -| rncryptor.swift:60:19:60:38 | call to Data.init(_:) | rncryptor.swift:78:66:78:66 | myConstKey | -| rncryptor.swift:60:19:60:38 | call to Data.init(_:) | rncryptor.swift:79:66:79:66 | myConstKey | -| rncryptor.swift:60:19:60:38 | call to Data.init(_:) | rncryptor.swift:80:94:80:94 | myConstKey | -| rncryptor.swift:60:19:60:38 | call to Data.init(_:) | rncryptor.swift:81:102:81:102 | myConstKey | -| rncryptor.swift:60:19:60:38 | call to Data.init(_:) | rncryptor.swift:83:92:83:92 | myConstKey | -| rncryptor.swift:60:24:60:24 | abcdef123456 | rncryptor.swift:60:19:60:38 | call to Data.init(_:) | -| sqlite3_c_api.swift:41:19:41:38 | call to Data.init(_:) | sqlite3_c_api.swift:48:2:48:2 | myConstKey | -| sqlite3_c_api.swift:41:24:41:24 | abcdef123456 | sqlite3_c_api.swift:41:19:41:38 | call to Data.init(_:) | -| sqlite3_c_api.swift:48:2:48:2 | myConstKey | sqlite3_c_api.swift:48:31:48:31 | buffer [Collection element] | -| sqlite3_c_api.swift:48:31:48:31 | buffer [Collection element] | sqlite3_c_api.swift:49:36:49:36 | buffer | -| sqlite3_c_api.swift:48:31:48:31 | buffer [Collection element] | sqlite3_c_api.swift:50:38:50:38 | buffer | +| SQLite.swift:54:25:54:33 | [...] | SQLite.swift:54:13:54:34 | call to Blob.init(bytes:) | provenance | | +| cryptoswift.swift:76:3:76:3 | this string is constant | cryptoswift.swift:80:10:80:28 | call to getConstantString() | provenance | | +| cryptoswift.swift:76:3:76:3 | this string is constant | cryptoswift.swift:92:18:92:36 | call to getConstantString() | provenance | | +| cryptoswift.swift:80:2:80:34 | call to Array.init(_:) [Collection element] | cryptoswift.swift:91:13:91:30 | call to getConstantArray() [Collection element] | provenance | | +| cryptoswift.swift:80:10:80:28 | call to getConstantString() | cryptoswift.swift:80:10:80:30 | .utf8 | provenance | | +| cryptoswift.swift:80:10:80:30 | .utf8 | cryptoswift.swift:80:2:80:34 | call to Array.init(_:) [Collection element] | provenance | | +| cryptoswift.swift:90:26:90:121 | [...] | cryptoswift.swift:117:22:117:22 | key | provenance | | +| cryptoswift.swift:90:26:90:121 | [...] | cryptoswift.swift:118:22:118:22 | key | provenance | | +| cryptoswift.swift:90:26:90:121 | [...] | cryptoswift.swift:128:26:128:26 | key | provenance | | +| cryptoswift.swift:90:26:90:121 | [...] | cryptoswift.swift:135:25:135:25 | key | provenance | | +| cryptoswift.swift:90:26:90:121 | [...] | cryptoswift.swift:140:25:140:25 | key | provenance | | +| cryptoswift.swift:90:26:90:121 | [...] | cryptoswift.swift:145:26:145:26 | key | provenance | | +| cryptoswift.swift:90:26:90:121 | [...] | cryptoswift.swift:150:26:150:26 | key | provenance | | +| cryptoswift.swift:90:26:90:121 | [...] | cryptoswift.swift:151:26:151:26 | key | provenance | | +| cryptoswift.swift:90:26:90:121 | [...] | cryptoswift.swift:161:24:161:24 | key | provenance | | +| cryptoswift.swift:90:26:90:121 | [...] | cryptoswift.swift:163:24:163:24 | key | provenance | | +| cryptoswift.swift:91:13:91:30 | call to getConstantArray() [Collection element] | cryptoswift.swift:106:21:106:21 | key2 | provenance | | +| cryptoswift.swift:91:13:91:30 | call to getConstantArray() [Collection element] | cryptoswift.swift:107:21:107:21 | key2 | provenance | | +| cryptoswift.swift:92:18:92:36 | call to getConstantString() | cryptoswift.swift:108:21:108:21 | keyString | provenance | | +| cryptoswift.swift:92:18:92:36 | call to getConstantString() | cryptoswift.swift:109:21:109:21 | keyString | provenance | | +| cryptoswift.swift:92:18:92:36 | call to getConstantString() | cryptoswift.swift:119:22:119:22 | keyString | provenance | | +| cryptoswift.swift:92:18:92:36 | call to getConstantString() | cryptoswift.swift:120:22:120:22 | keyString | provenance | | +| cryptoswift.swift:92:18:92:36 | call to getConstantString() | cryptoswift.swift:129:26:129:26 | keyString | provenance | | +| cryptoswift.swift:92:18:92:36 | call to getConstantString() | cryptoswift.swift:152:26:152:26 | keyString | provenance | | +| cryptoswift.swift:92:18:92:36 | call to getConstantString() | cryptoswift.swift:153:26:153:26 | keyString | provenance | | +| cryptoswift.swift:92:18:92:36 | call to getConstantString() | cryptoswift.swift:162:24:162:24 | keyString | provenance | | +| cryptoswift.swift:92:18:92:36 | call to getConstantString() | cryptoswift.swift:164:24:164:24 | keyString | provenance | | +| file://:0:0:0:0 | [post] self [encryptionKey] | file://:0:0:0:0 | [post] self | provenance | | +| file://:0:0:0:0 | [post] self [encryptionKey] | file://:0:0:0:0 | [post] self | provenance | | +| file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [encryptionKey] | provenance | | +| grdb.swift:21:20:21:20 | abc123 | grdb.swift:27:23:27:23 | constString | provenance | | +| grdb.swift:21:20:21:20 | abc123 | grdb.swift:31:26:31:26 | constString | provenance | | +| grdb.swift:22:33:22:50 | [...] | grdb.swift:23:23:23:23 | constArray | provenance | | +| grdb.swift:23:18:23:33 | call to Data.init(_:) | grdb.swift:29:23:29:23 | constData | provenance | | +| grdb.swift:23:18:23:33 | call to Data.init(_:) | grdb.swift:33:26:33:26 | constData | provenance | | +| grdb.swift:23:23:23:23 | constArray | grdb.swift:23:18:23:33 | call to Data.init(_:) | provenance | | +| misc.swift:30:7:30:7 | value | file://:0:0:0:0 | value | provenance | | +| misc.swift:46:19:46:38 | call to Data.init(_:) | misc.swift:49:41:49:41 | myConstKey | provenance | | +| misc.swift:46:19:46:38 | call to Data.init(_:) | misc.swift:53:25:53:25 | myConstKey | provenance | | +| misc.swift:46:19:46:38 | call to Data.init(_:) | misc.swift:57:41:57:41 | myConstKey | provenance | | +| misc.swift:46:24:46:24 | abcdef123456 | misc.swift:46:19:46:38 | call to Data.init(_:) | provenance | | +| misc.swift:53:2:53:2 | [post] config [encryptionKey] | misc.swift:53:2:53:2 | [post] config | provenance | | +| misc.swift:53:25:53:25 | myConstKey | misc.swift:30:7:30:7 | value | provenance | | +| misc.swift:53:25:53:25 | myConstKey | misc.swift:53:2:53:2 | [post] config | provenance | | +| misc.swift:53:25:53:25 | myConstKey | misc.swift:53:2:53:2 | [post] config [encryptionKey] | provenance | | +| misc.swift:57:2:57:18 | [post] getter for .config [encryptionKey] | misc.swift:57:2:57:18 | [post] getter for .config | provenance | | +| misc.swift:57:41:57:41 | myConstKey | misc.swift:30:7:30:7 | value | provenance | | +| misc.swift:57:41:57:41 | myConstKey | misc.swift:57:2:57:18 | [post] getter for .config | provenance | | +| misc.swift:57:41:57:41 | myConstKey | misc.swift:57:2:57:18 | [post] getter for .config [encryptionKey] | provenance | | +| rncryptor.swift:60:19:60:38 | call to Data.init(_:) | rncryptor.swift:65:73:65:73 | myConstKey | provenance | | +| rncryptor.swift:60:19:60:38 | call to Data.init(_:) | rncryptor.swift:66:73:66:73 | myConstKey | provenance | | +| rncryptor.swift:60:19:60:38 | call to Data.init(_:) | rncryptor.swift:67:73:67:73 | myConstKey | provenance | | +| rncryptor.swift:60:19:60:38 | call to Data.init(_:) | rncryptor.swift:68:73:68:73 | myConstKey | provenance | | +| rncryptor.swift:60:19:60:38 | call to Data.init(_:) | rncryptor.swift:70:94:70:94 | myConstKey | provenance | | +| rncryptor.swift:60:19:60:38 | call to Data.init(_:) | rncryptor.swift:71:102:71:102 | myConstKey | provenance | | +| rncryptor.swift:60:19:60:38 | call to Data.init(_:) | rncryptor.swift:72:94:72:94 | myConstKey | provenance | | +| rncryptor.swift:60:19:60:38 | call to Data.init(_:) | rncryptor.swift:73:102:73:102 | myConstKey | provenance | | +| rncryptor.swift:60:19:60:38 | call to Data.init(_:) | rncryptor.swift:75:37:75:37 | myConstKey | provenance | | +| rncryptor.swift:60:19:60:38 | call to Data.init(_:) | rncryptor.swift:76:37:76:37 | myConstKey | provenance | | +| rncryptor.swift:60:19:60:38 | call to Data.init(_:) | rncryptor.swift:78:66:78:66 | myConstKey | provenance | | +| rncryptor.swift:60:19:60:38 | call to Data.init(_:) | rncryptor.swift:79:66:79:66 | myConstKey | provenance | | +| rncryptor.swift:60:19:60:38 | call to Data.init(_:) | rncryptor.swift:80:94:80:94 | myConstKey | provenance | | +| rncryptor.swift:60:19:60:38 | call to Data.init(_:) | rncryptor.swift:81:102:81:102 | myConstKey | provenance | | +| rncryptor.swift:60:19:60:38 | call to Data.init(_:) | rncryptor.swift:83:92:83:92 | myConstKey | provenance | | +| rncryptor.swift:60:24:60:24 | abcdef123456 | rncryptor.swift:60:19:60:38 | call to Data.init(_:) | provenance | | +| sqlite3_c_api.swift:41:19:41:38 | call to Data.init(_:) | sqlite3_c_api.swift:48:2:48:2 | myConstKey | provenance | | +| sqlite3_c_api.swift:41:24:41:24 | abcdef123456 | sqlite3_c_api.swift:41:19:41:38 | call to Data.init(_:) | provenance | | +| sqlite3_c_api.swift:48:2:48:2 | myConstKey | sqlite3_c_api.swift:48:31:48:31 | buffer [Collection element] | provenance | | +| sqlite3_c_api.swift:48:31:48:31 | buffer [Collection element] | sqlite3_c_api.swift:49:36:49:36 | buffer | provenance | | +| sqlite3_c_api.swift:48:31:48:31 | buffer [Collection element] | sqlite3_c_api.swift:50:38:50:38 | buffer | provenance | | nodes | SQLite.swift:43:13:43:13 | hardcoded_key | semmle.label | hardcoded_key | | SQLite.swift:45:23:45:23 | hardcoded_key | semmle.label | hardcoded_key | diff --git a/swift/ql/test/query-tests/Security/CWE-327/ECBEncryption.expected b/swift/ql/test/query-tests/Security/CWE-327/ECBEncryption.expected index 38c377b3926b..dce2964652cf 100644 --- a/swift/ql/test/query-tests/Security/CWE-327/ECBEncryption.expected +++ b/swift/ql/test/query-tests/Security/CWE-327/ECBEncryption.expected @@ -1,10 +1,10 @@ edges -| test.swift:34:9:34:13 | call to ECB.init() | test.swift:54:37:54:53 | call to getECBBlockMode() | -| test.swift:34:9:34:13 | call to ECB.init() | test.swift:55:37:55:53 | call to getECBBlockMode() | -| test.swift:34:9:34:13 | call to ECB.init() | test.swift:67:42:67:58 | call to getECBBlockMode() | -| test.swift:45:12:45:16 | call to ECB.init() | test.swift:50:37:50:37 | ecb | -| test.swift:45:12:45:16 | call to ECB.init() | test.swift:51:37:51:37 | ecb | -| test.swift:45:12:45:16 | call to ECB.init() | test.swift:65:42:65:42 | ecb | +| test.swift:34:9:34:13 | call to ECB.init() | test.swift:54:37:54:53 | call to getECBBlockMode() | provenance | | +| test.swift:34:9:34:13 | call to ECB.init() | test.swift:55:37:55:53 | call to getECBBlockMode() | provenance | | +| test.swift:34:9:34:13 | call to ECB.init() | test.swift:67:42:67:58 | call to getECBBlockMode() | provenance | | +| test.swift:45:12:45:16 | call to ECB.init() | test.swift:50:37:50:37 | ecb | provenance | | +| test.swift:45:12:45:16 | call to ECB.init() | test.swift:51:37:51:37 | ecb | provenance | | +| test.swift:45:12:45:16 | call to ECB.init() | test.swift:65:42:65:42 | ecb | provenance | | nodes | test.swift:34:9:34:13 | call to ECB.init() | semmle.label | call to ECB.init() | | test.swift:45:12:45:16 | call to ECB.init() | semmle.label | call to ECB.init() | diff --git a/swift/ql/test/query-tests/Security/CWE-328/WeakPasswordHashing.expected b/swift/ql/test/query-tests/Security/CWE-328/WeakPasswordHashing.expected index e33e8ca7b26b..46f3d211ccd7 100644 --- a/swift/ql/test/query-tests/Security/CWE-328/WeakPasswordHashing.expected +++ b/swift/ql/test/query-tests/Security/CWE-328/WeakPasswordHashing.expected @@ -1,6 +1,6 @@ edges -| testCryptoKit.swift:193:38:193:38 | passwordString | testCryptoKit.swift:193:38:193:53 | .utf8 | -| testCryptoKit.swift:193:38:193:53 | .utf8 | testCryptoKit.swift:193:33:193:57 | call to Data.init(_:) | +| testCryptoKit.swift:193:38:193:38 | passwordString | testCryptoKit.swift:193:38:193:53 | .utf8 | provenance | | +| testCryptoKit.swift:193:38:193:53 | .utf8 | testCryptoKit.swift:193:33:193:57 | call to Data.init(_:) | provenance | | nodes | testCryptoKit.swift:65:47:65:47 | passwd | semmle.label | passwd | | testCryptoKit.swift:71:44:71:44 | passwd | semmle.label | passwd | diff --git a/swift/ql/test/query-tests/Security/CWE-730/RegexInjection.expected b/swift/ql/test/query-tests/Security/CWE-730/RegexInjection.expected index b2f31c7de1b9..1a26f9211971 100644 --- a/swift/ql/test/query-tests/Security/CWE-730/RegexInjection.expected +++ b/swift/ql/test/query-tests/Security/CWE-730/RegexInjection.expected @@ -1,27 +1,27 @@ edges -| tests.swift:95:22:95:46 | call to String.init(contentsOf:) | tests.swift:101:16:101:16 | taintedString | -| tests.swift:95:22:95:46 | call to String.init(contentsOf:) | tests.swift:104:16:104:40 | ... .+(_:_:) ... | -| tests.swift:95:22:95:46 | call to String.init(contentsOf:) | tests.swift:106:16:106:16 | "..." | -| tests.swift:95:22:95:46 | call to String.init(contentsOf:) | tests.swift:109:16:109:39 | ... ? ... : ... | -| tests.swift:95:22:95:46 | call to String.init(contentsOf:) | tests.swift:110:16:110:37 | ... ? ... : ... | -| tests.swift:95:22:95:46 | call to String.init(contentsOf:) | tests.swift:113:24:113:24 | taintedString | -| tests.swift:95:22:95:46 | call to String.init(contentsOf:) | tests.swift:114:45:114:45 | taintedString | -| tests.swift:95:22:95:46 | call to String.init(contentsOf:) | tests.swift:120:19:120:19 | taintedString | -| tests.swift:95:22:95:46 | call to String.init(contentsOf:) | tests.swift:126:40:126:40 | taintedString | -| tests.swift:95:22:95:46 | call to String.init(contentsOf:) | tests.swift:131:39:131:39 | taintedString | -| tests.swift:95:22:95:46 | call to String.init(contentsOf:) | tests.swift:137:40:137:40 | taintedString | -| tests.swift:95:22:95:46 | call to String.init(contentsOf:) | tests.swift:144:16:144:16 | remoteInput | -| tests.swift:95:22:95:46 | call to String.init(contentsOf:) | tests.swift:147:39:147:39 | regexStr | -| tests.swift:95:22:95:46 | call to String.init(contentsOf:) | tests.swift:162:17:162:17 | taintedString | -| tests.swift:95:22:95:46 | call to String.init(contentsOf:) | tests.swift:164:17:164:17 | taintedString | -| tests.swift:95:22:95:46 | call to String.init(contentsOf:) | tests.swift:167:17:167:17 | taintedString | -| tests.swift:95:22:95:46 | call to String.init(contentsOf:) | tests.swift:170:17:170:17 | taintedString | -| tests.swift:95:22:95:46 | call to String.init(contentsOf:) | tests.swift:173:17:173:17 | taintedString | -| tests.swift:95:22:95:46 | call to String.init(contentsOf:) | tests.swift:176:17:176:17 | taintedString | -| tests.swift:95:22:95:46 | call to String.init(contentsOf:) | tests.swift:179:17:179:17 | taintedString | -| tests.swift:95:22:95:46 | call to String.init(contentsOf:) | tests.swift:182:17:182:17 | taintedString | -| tests.swift:95:22:95:46 | call to String.init(contentsOf:) | tests.swift:185:17:185:17 | taintedString | -| tests.swift:95:22:95:46 | call to String.init(contentsOf:) | tests.swift:190:21:190:21 | taintedString | +| tests.swift:95:22:95:46 | call to String.init(contentsOf:) | tests.swift:101:16:101:16 | taintedString | provenance | | +| tests.swift:95:22:95:46 | call to String.init(contentsOf:) | tests.swift:104:16:104:40 | ... .+(_:_:) ... | provenance | | +| tests.swift:95:22:95:46 | call to String.init(contentsOf:) | tests.swift:106:16:106:16 | "..." | provenance | | +| tests.swift:95:22:95:46 | call to String.init(contentsOf:) | tests.swift:109:16:109:39 | ... ? ... : ... | provenance | | +| tests.swift:95:22:95:46 | call to String.init(contentsOf:) | tests.swift:110:16:110:37 | ... ? ... : ... | provenance | | +| tests.swift:95:22:95:46 | call to String.init(contentsOf:) | tests.swift:113:24:113:24 | taintedString | provenance | | +| tests.swift:95:22:95:46 | call to String.init(contentsOf:) | tests.swift:114:45:114:45 | taintedString | provenance | | +| tests.swift:95:22:95:46 | call to String.init(contentsOf:) | tests.swift:120:19:120:19 | taintedString | provenance | | +| tests.swift:95:22:95:46 | call to String.init(contentsOf:) | tests.swift:126:40:126:40 | taintedString | provenance | | +| tests.swift:95:22:95:46 | call to String.init(contentsOf:) | tests.swift:131:39:131:39 | taintedString | provenance | | +| tests.swift:95:22:95:46 | call to String.init(contentsOf:) | tests.swift:137:40:137:40 | taintedString | provenance | | +| tests.swift:95:22:95:46 | call to String.init(contentsOf:) | tests.swift:144:16:144:16 | remoteInput | provenance | | +| tests.swift:95:22:95:46 | call to String.init(contentsOf:) | tests.swift:147:39:147:39 | regexStr | provenance | | +| tests.swift:95:22:95:46 | call to String.init(contentsOf:) | tests.swift:162:17:162:17 | taintedString | provenance | | +| tests.swift:95:22:95:46 | call to String.init(contentsOf:) | tests.swift:164:17:164:17 | taintedString | provenance | | +| tests.swift:95:22:95:46 | call to String.init(contentsOf:) | tests.swift:167:17:167:17 | taintedString | provenance | | +| tests.swift:95:22:95:46 | call to String.init(contentsOf:) | tests.swift:170:17:170:17 | taintedString | provenance | | +| tests.swift:95:22:95:46 | call to String.init(contentsOf:) | tests.swift:173:17:173:17 | taintedString | provenance | | +| tests.swift:95:22:95:46 | call to String.init(contentsOf:) | tests.swift:176:17:176:17 | taintedString | provenance | | +| tests.swift:95:22:95:46 | call to String.init(contentsOf:) | tests.swift:179:17:179:17 | taintedString | provenance | | +| tests.swift:95:22:95:46 | call to String.init(contentsOf:) | tests.swift:182:17:182:17 | taintedString | provenance | | +| tests.swift:95:22:95:46 | call to String.init(contentsOf:) | tests.swift:185:17:185:17 | taintedString | provenance | | +| tests.swift:95:22:95:46 | call to String.init(contentsOf:) | tests.swift:190:21:190:21 | taintedString | provenance | | nodes | tests.swift:95:22:95:46 | call to String.init(contentsOf:) | semmle.label | call to String.init(contentsOf:) | | tests.swift:101:16:101:16 | taintedString | semmle.label | taintedString | diff --git a/swift/ql/test/query-tests/Security/CWE-757/InsecureTLS.expected b/swift/ql/test/query-tests/Security/CWE-757/InsecureTLS.expected index fb030f5e39b3..9c82519faa98 100644 --- a/swift/ql/test/query-tests/Security/CWE-757/InsecureTLS.expected +++ b/swift/ql/test/query-tests/Security/CWE-757/InsecureTLS.expected @@ -1,77 +1,77 @@ edges -| InsecureTLS.swift:19:7:19:7 | value | file://:0:0:0:0 | value | -| InsecureTLS.swift:20:7:20:7 | value | file://:0:0:0:0 | value | -| InsecureTLS.swift:22:7:22:7 | value | file://:0:0:0:0 | value | -| InsecureTLS.swift:23:7:23:7 | value | file://:0:0:0:0 | value | -| InsecureTLS.swift:40:3:40:3 | [post] config [tlsMinimumSupportedProtocolVersion] | InsecureTLS.swift:40:3:40:3 | [post] config | -| InsecureTLS.swift:40:47:40:70 | .TLSv10 | InsecureTLS.swift:19:7:19:7 | value | -| InsecureTLS.swift:40:47:40:70 | .TLSv10 | InsecureTLS.swift:40:3:40:3 | [post] config | -| InsecureTLS.swift:40:47:40:70 | .TLSv10 | InsecureTLS.swift:40:3:40:3 | [post] config [tlsMinimumSupportedProtocolVersion] | -| InsecureTLS.swift:45:3:45:3 | [post] config [tlsMinimumSupportedProtocolVersion] | InsecureTLS.swift:45:3:45:3 | [post] config | -| InsecureTLS.swift:45:47:45:70 | .TLSv11 | InsecureTLS.swift:19:7:19:7 | value | -| InsecureTLS.swift:45:47:45:70 | .TLSv11 | InsecureTLS.swift:45:3:45:3 | [post] config | -| InsecureTLS.swift:45:47:45:70 | .TLSv11 | InsecureTLS.swift:45:3:45:3 | [post] config [tlsMinimumSupportedProtocolVersion] | -| InsecureTLS.swift:57:3:57:3 | [post] config [tlsMaximumSupportedProtocolVersion] | InsecureTLS.swift:57:3:57:3 | [post] config | -| InsecureTLS.swift:57:47:57:70 | .TLSv10 | InsecureTLS.swift:20:7:20:7 | value | -| InsecureTLS.swift:57:47:57:70 | .TLSv10 | InsecureTLS.swift:57:3:57:3 | [post] config | -| InsecureTLS.swift:57:47:57:70 | .TLSv10 | InsecureTLS.swift:57:3:57:3 | [post] config [tlsMaximumSupportedProtocolVersion] | -| InsecureTLS.swift:64:3:64:3 | [post] config [tlsMinimumSupportedProtocol] | InsecureTLS.swift:64:3:64:3 | [post] config | -| InsecureTLS.swift:64:40:64:52 | .tlsProtocol10 | InsecureTLS.swift:22:7:22:7 | value | -| InsecureTLS.swift:64:40:64:52 | .tlsProtocol10 | InsecureTLS.swift:64:3:64:3 | [post] config | -| InsecureTLS.swift:64:40:64:52 | .tlsProtocol10 | InsecureTLS.swift:64:3:64:3 | [post] config [tlsMinimumSupportedProtocol] | -| InsecureTLS.swift:76:3:76:3 | [post] config [tlsMaximumSupportedProtocol] | InsecureTLS.swift:76:3:76:3 | [post] config | -| InsecureTLS.swift:76:40:76:52 | .tlsProtocol10 | InsecureTLS.swift:23:7:23:7 | value | -| InsecureTLS.swift:76:40:76:52 | .tlsProtocol10 | InsecureTLS.swift:76:3:76:3 | [post] config | -| InsecureTLS.swift:76:40:76:52 | .tlsProtocol10 | InsecureTLS.swift:76:3:76:3 | [post] config [tlsMaximumSupportedProtocol] | -| InsecureTLS.swift:102:10:102:33 | .TLSv10 | InsecureTLS.swift:111:47:111:64 | call to getBadTLSVersion() | -| InsecureTLS.swift:111:3:111:3 | [post] config [tlsMinimumSupportedProtocolVersion] | InsecureTLS.swift:111:3:111:3 | [post] config | -| InsecureTLS.swift:111:47:111:64 | call to getBadTLSVersion() | InsecureTLS.swift:19:7:19:7 | value | -| InsecureTLS.swift:111:47:111:64 | call to getBadTLSVersion() | InsecureTLS.swift:111:3:111:3 | [post] config | -| InsecureTLS.swift:111:47:111:64 | call to getBadTLSVersion() | InsecureTLS.swift:111:3:111:3 | [post] config [tlsMinimumSupportedProtocolVersion] | -| InsecureTLS.swift:121:55:121:66 | version | InsecureTLS.swift:122:47:122:47 | version | -| InsecureTLS.swift:122:3:122:3 | [post] config [tlsMinimumSupportedProtocolVersion] | InsecureTLS.swift:122:3:122:3 | [post] config | -| InsecureTLS.swift:122:47:122:47 | version | InsecureTLS.swift:19:7:19:7 | value | -| InsecureTLS.swift:122:47:122:47 | version | InsecureTLS.swift:122:3:122:3 | [post] config | -| InsecureTLS.swift:122:47:122:47 | version | InsecureTLS.swift:122:3:122:3 | [post] config [tlsMinimumSupportedProtocolVersion] | -| InsecureTLS.swift:127:25:127:48 | .TLSv11 | InsecureTLS.swift:121:55:121:66 | version | -| InsecureTLS.swift:158:7:158:7 | self [TLSVersion] | file://:0:0:0:0 | self [TLSVersion] | -| InsecureTLS.swift:158:7:158:7 | value | file://:0:0:0:0 | value | -| InsecureTLS.swift:163:3:163:3 | [post] def [TLSVersion] | InsecureTLS.swift:165:47:165:47 | def [TLSVersion] | -| InsecureTLS.swift:163:20:163:43 | .TLSv10 | InsecureTLS.swift:158:7:158:7 | value | -| InsecureTLS.swift:163:20:163:43 | .TLSv10 | InsecureTLS.swift:163:3:163:3 | [post] def [TLSVersion] | -| InsecureTLS.swift:165:3:165:3 | [post] config [tlsMinimumSupportedProtocolVersion] | InsecureTLS.swift:165:3:165:3 | [post] config | -| InsecureTLS.swift:165:47:165:47 | def [TLSVersion] | InsecureTLS.swift:158:7:158:7 | self [TLSVersion] | -| InsecureTLS.swift:165:47:165:47 | def [TLSVersion] | InsecureTLS.swift:165:47:165:51 | .TLSVersion | -| InsecureTLS.swift:165:47:165:51 | .TLSVersion | InsecureTLS.swift:19:7:19:7 | value | -| InsecureTLS.swift:165:47:165:51 | .TLSVersion | InsecureTLS.swift:165:3:165:3 | [post] config | -| InsecureTLS.swift:165:47:165:51 | .TLSVersion | InsecureTLS.swift:165:3:165:3 | [post] config [tlsMinimumSupportedProtocolVersion] | -| InsecureTLS.swift:181:3:181:9 | [post] getter for .config [tlsMinimumSupportedProtocolVersion] | InsecureTLS.swift:181:3:181:9 | [post] getter for .config | -| InsecureTLS.swift:181:53:181:76 | .TLSv10 | InsecureTLS.swift:19:7:19:7 | value | -| InsecureTLS.swift:181:53:181:76 | .TLSv10 | InsecureTLS.swift:181:3:181:9 | [post] getter for .config | -| InsecureTLS.swift:181:53:181:76 | .TLSv10 | InsecureTLS.swift:181:3:181:9 | [post] getter for .config [tlsMinimumSupportedProtocolVersion] | -| InsecureTLS.swift:185:20:185:36 | withMinVersion | InsecureTLS.swift:187:42:187:42 | withMinVersion | -| InsecureTLS.swift:187:5:187:5 | [post] self [tlsMinimumSupportedProtocolVersion] | InsecureTLS.swift:187:5:187:5 | [post] self | -| InsecureTLS.swift:187:42:187:42 | withMinVersion | InsecureTLS.swift:187:5:187:5 | [post] self [tlsMinimumSupportedProtocolVersion] | -| InsecureTLS.swift:193:51:193:74 | .TLSv10 | InsecureTLS.swift:185:20:185:36 | withMinVersion | -| InsecureTLS.swift:196:56:196:63 | value | InsecureTLS.swift:196:1:198:1 | version[return] | -| InsecureTLS.swift:202:24:202:24 | [post] config [tlsMinimumSupportedProtocolVersion] | InsecureTLS.swift:202:24:202:24 | [post] config | -| InsecureTLS.swift:202:24:202:31 | [post] getter for .tlsMinimumSupportedProtocolVersion | InsecureTLS.swift:202:24:202:24 | [post] config [tlsMinimumSupportedProtocolVersion] | -| InsecureTLS.swift:202:74:202:97 | .TLSv10 | InsecureTLS.swift:196:56:196:63 | value | -| InsecureTLS.swift:202:74:202:97 | .TLSv10 | InsecureTLS.swift:202:24:202:31 | [post] getter for .tlsMinimumSupportedProtocolVersion | -| file://:0:0:0:0 | [post] self [tlsMaximumSupportedProtocolVersion] | file://:0:0:0:0 | [post] self | -| file://:0:0:0:0 | [post] self [tlsMaximumSupportedProtocolVersion] | file://:0:0:0:0 | [post] self | -| file://:0:0:0:0 | [post] self [tlsMaximumSupportedProtocol] | file://:0:0:0:0 | [post] self | -| file://:0:0:0:0 | [post] self [tlsMaximumSupportedProtocol] | file://:0:0:0:0 | [post] self | -| file://:0:0:0:0 | [post] self [tlsMinimumSupportedProtocolVersion] | file://:0:0:0:0 | [post] self | -| file://:0:0:0:0 | [post] self [tlsMinimumSupportedProtocolVersion] | file://:0:0:0:0 | [post] self | -| file://:0:0:0:0 | [post] self [tlsMinimumSupportedProtocol] | file://:0:0:0:0 | [post] self | -| file://:0:0:0:0 | [post] self [tlsMinimumSupportedProtocol] | file://:0:0:0:0 | [post] self | -| file://:0:0:0:0 | self [TLSVersion] | file://:0:0:0:0 | .TLSVersion | -| file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [TLSVersion] | -| file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [tlsMaximumSupportedProtocolVersion] | -| file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [tlsMaximumSupportedProtocol] | -| file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [tlsMinimumSupportedProtocolVersion] | -| file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [tlsMinimumSupportedProtocol] | +| InsecureTLS.swift:19:7:19:7 | value | file://:0:0:0:0 | value | provenance | | +| InsecureTLS.swift:20:7:20:7 | value | file://:0:0:0:0 | value | provenance | | +| InsecureTLS.swift:22:7:22:7 | value | file://:0:0:0:0 | value | provenance | | +| InsecureTLS.swift:23:7:23:7 | value | file://:0:0:0:0 | value | provenance | | +| InsecureTLS.swift:40:3:40:3 | [post] config [tlsMinimumSupportedProtocolVersion] | InsecureTLS.swift:40:3:40:3 | [post] config | provenance | | +| InsecureTLS.swift:40:47:40:70 | .TLSv10 | InsecureTLS.swift:19:7:19:7 | value | provenance | | +| InsecureTLS.swift:40:47:40:70 | .TLSv10 | InsecureTLS.swift:40:3:40:3 | [post] config | provenance | | +| InsecureTLS.swift:40:47:40:70 | .TLSv10 | InsecureTLS.swift:40:3:40:3 | [post] config [tlsMinimumSupportedProtocolVersion] | provenance | | +| InsecureTLS.swift:45:3:45:3 | [post] config [tlsMinimumSupportedProtocolVersion] | InsecureTLS.swift:45:3:45:3 | [post] config | provenance | | +| InsecureTLS.swift:45:47:45:70 | .TLSv11 | InsecureTLS.swift:19:7:19:7 | value | provenance | | +| InsecureTLS.swift:45:47:45:70 | .TLSv11 | InsecureTLS.swift:45:3:45:3 | [post] config | provenance | | +| InsecureTLS.swift:45:47:45:70 | .TLSv11 | InsecureTLS.swift:45:3:45:3 | [post] config [tlsMinimumSupportedProtocolVersion] | provenance | | +| InsecureTLS.swift:57:3:57:3 | [post] config [tlsMaximumSupportedProtocolVersion] | InsecureTLS.swift:57:3:57:3 | [post] config | provenance | | +| InsecureTLS.swift:57:47:57:70 | .TLSv10 | InsecureTLS.swift:20:7:20:7 | value | provenance | | +| InsecureTLS.swift:57:47:57:70 | .TLSv10 | InsecureTLS.swift:57:3:57:3 | [post] config | provenance | | +| InsecureTLS.swift:57:47:57:70 | .TLSv10 | InsecureTLS.swift:57:3:57:3 | [post] config [tlsMaximumSupportedProtocolVersion] | provenance | | +| InsecureTLS.swift:64:3:64:3 | [post] config [tlsMinimumSupportedProtocol] | InsecureTLS.swift:64:3:64:3 | [post] config | provenance | | +| InsecureTLS.swift:64:40:64:52 | .tlsProtocol10 | InsecureTLS.swift:22:7:22:7 | value | provenance | | +| InsecureTLS.swift:64:40:64:52 | .tlsProtocol10 | InsecureTLS.swift:64:3:64:3 | [post] config | provenance | | +| InsecureTLS.swift:64:40:64:52 | .tlsProtocol10 | InsecureTLS.swift:64:3:64:3 | [post] config [tlsMinimumSupportedProtocol] | provenance | | +| InsecureTLS.swift:76:3:76:3 | [post] config [tlsMaximumSupportedProtocol] | InsecureTLS.swift:76:3:76:3 | [post] config | provenance | | +| InsecureTLS.swift:76:40:76:52 | .tlsProtocol10 | InsecureTLS.swift:23:7:23:7 | value | provenance | | +| InsecureTLS.swift:76:40:76:52 | .tlsProtocol10 | InsecureTLS.swift:76:3:76:3 | [post] config | provenance | | +| InsecureTLS.swift:76:40:76:52 | .tlsProtocol10 | InsecureTLS.swift:76:3:76:3 | [post] config [tlsMaximumSupportedProtocol] | provenance | | +| InsecureTLS.swift:102:10:102:33 | .TLSv10 | InsecureTLS.swift:111:47:111:64 | call to getBadTLSVersion() | provenance | | +| InsecureTLS.swift:111:3:111:3 | [post] config [tlsMinimumSupportedProtocolVersion] | InsecureTLS.swift:111:3:111:3 | [post] config | provenance | | +| InsecureTLS.swift:111:47:111:64 | call to getBadTLSVersion() | InsecureTLS.swift:19:7:19:7 | value | provenance | | +| InsecureTLS.swift:111:47:111:64 | call to getBadTLSVersion() | InsecureTLS.swift:111:3:111:3 | [post] config | provenance | | +| InsecureTLS.swift:111:47:111:64 | call to getBadTLSVersion() | InsecureTLS.swift:111:3:111:3 | [post] config [tlsMinimumSupportedProtocolVersion] | provenance | | +| InsecureTLS.swift:121:55:121:66 | version | InsecureTLS.swift:122:47:122:47 | version | provenance | | +| InsecureTLS.swift:122:3:122:3 | [post] config [tlsMinimumSupportedProtocolVersion] | InsecureTLS.swift:122:3:122:3 | [post] config | provenance | | +| InsecureTLS.swift:122:47:122:47 | version | InsecureTLS.swift:19:7:19:7 | value | provenance | | +| InsecureTLS.swift:122:47:122:47 | version | InsecureTLS.swift:122:3:122:3 | [post] config | provenance | | +| InsecureTLS.swift:122:47:122:47 | version | InsecureTLS.swift:122:3:122:3 | [post] config [tlsMinimumSupportedProtocolVersion] | provenance | | +| InsecureTLS.swift:127:25:127:48 | .TLSv11 | InsecureTLS.swift:121:55:121:66 | version | provenance | | +| InsecureTLS.swift:158:7:158:7 | self [TLSVersion] | file://:0:0:0:0 | self [TLSVersion] | provenance | | +| InsecureTLS.swift:158:7:158:7 | value | file://:0:0:0:0 | value | provenance | | +| InsecureTLS.swift:163:3:163:3 | [post] def [TLSVersion] | InsecureTLS.swift:165:47:165:47 | def [TLSVersion] | provenance | | +| InsecureTLS.swift:163:20:163:43 | .TLSv10 | InsecureTLS.swift:158:7:158:7 | value | provenance | | +| InsecureTLS.swift:163:20:163:43 | .TLSv10 | InsecureTLS.swift:163:3:163:3 | [post] def [TLSVersion] | provenance | | +| InsecureTLS.swift:165:3:165:3 | [post] config [tlsMinimumSupportedProtocolVersion] | InsecureTLS.swift:165:3:165:3 | [post] config | provenance | | +| InsecureTLS.swift:165:47:165:47 | def [TLSVersion] | InsecureTLS.swift:158:7:158:7 | self [TLSVersion] | provenance | | +| InsecureTLS.swift:165:47:165:47 | def [TLSVersion] | InsecureTLS.swift:165:47:165:51 | .TLSVersion | provenance | | +| InsecureTLS.swift:165:47:165:51 | .TLSVersion | InsecureTLS.swift:19:7:19:7 | value | provenance | | +| InsecureTLS.swift:165:47:165:51 | .TLSVersion | InsecureTLS.swift:165:3:165:3 | [post] config | provenance | | +| InsecureTLS.swift:165:47:165:51 | .TLSVersion | InsecureTLS.swift:165:3:165:3 | [post] config [tlsMinimumSupportedProtocolVersion] | provenance | | +| InsecureTLS.swift:181:3:181:9 | [post] getter for .config [tlsMinimumSupportedProtocolVersion] | InsecureTLS.swift:181:3:181:9 | [post] getter for .config | provenance | | +| InsecureTLS.swift:181:53:181:76 | .TLSv10 | InsecureTLS.swift:19:7:19:7 | value | provenance | | +| InsecureTLS.swift:181:53:181:76 | .TLSv10 | InsecureTLS.swift:181:3:181:9 | [post] getter for .config | provenance | | +| InsecureTLS.swift:181:53:181:76 | .TLSv10 | InsecureTLS.swift:181:3:181:9 | [post] getter for .config [tlsMinimumSupportedProtocolVersion] | provenance | | +| InsecureTLS.swift:185:20:185:36 | withMinVersion | InsecureTLS.swift:187:42:187:42 | withMinVersion | provenance | | +| InsecureTLS.swift:187:5:187:5 | [post] self [tlsMinimumSupportedProtocolVersion] | InsecureTLS.swift:187:5:187:5 | [post] self | provenance | | +| InsecureTLS.swift:187:42:187:42 | withMinVersion | InsecureTLS.swift:187:5:187:5 | [post] self [tlsMinimumSupportedProtocolVersion] | provenance | | +| InsecureTLS.swift:193:51:193:74 | .TLSv10 | InsecureTLS.swift:185:20:185:36 | withMinVersion | provenance | | +| InsecureTLS.swift:196:56:196:63 | value | InsecureTLS.swift:196:1:198:1 | version[return] | provenance | | +| InsecureTLS.swift:202:24:202:24 | [post] config [tlsMinimumSupportedProtocolVersion] | InsecureTLS.swift:202:24:202:24 | [post] config | provenance | | +| InsecureTLS.swift:202:24:202:31 | [post] getter for .tlsMinimumSupportedProtocolVersion | InsecureTLS.swift:202:24:202:24 | [post] config [tlsMinimumSupportedProtocolVersion] | provenance | | +| InsecureTLS.swift:202:74:202:97 | .TLSv10 | InsecureTLS.swift:196:56:196:63 | value | provenance | | +| InsecureTLS.swift:202:74:202:97 | .TLSv10 | InsecureTLS.swift:202:24:202:31 | [post] getter for .tlsMinimumSupportedProtocolVersion | provenance | | +| file://:0:0:0:0 | [post] self [tlsMaximumSupportedProtocolVersion] | file://:0:0:0:0 | [post] self | provenance | | +| file://:0:0:0:0 | [post] self [tlsMaximumSupportedProtocolVersion] | file://:0:0:0:0 | [post] self | provenance | | +| file://:0:0:0:0 | [post] self [tlsMaximumSupportedProtocol] | file://:0:0:0:0 | [post] self | provenance | | +| file://:0:0:0:0 | [post] self [tlsMaximumSupportedProtocol] | file://:0:0:0:0 | [post] self | provenance | | +| file://:0:0:0:0 | [post] self [tlsMinimumSupportedProtocolVersion] | file://:0:0:0:0 | [post] self | provenance | | +| file://:0:0:0:0 | [post] self [tlsMinimumSupportedProtocolVersion] | file://:0:0:0:0 | [post] self | provenance | | +| file://:0:0:0:0 | [post] self [tlsMinimumSupportedProtocol] | file://:0:0:0:0 | [post] self | provenance | | +| file://:0:0:0:0 | [post] self [tlsMinimumSupportedProtocol] | file://:0:0:0:0 | [post] self | provenance | | +| file://:0:0:0:0 | self [TLSVersion] | file://:0:0:0:0 | .TLSVersion | provenance | | +| file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [TLSVersion] | provenance | | +| file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [tlsMaximumSupportedProtocolVersion] | provenance | | +| file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [tlsMaximumSupportedProtocol] | provenance | | +| file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [tlsMinimumSupportedProtocolVersion] | provenance | | +| file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [tlsMinimumSupportedProtocol] | provenance | | nodes | InsecureTLS.swift:19:7:19:7 | value | semmle.label | value | | InsecureTLS.swift:20:7:20:7 | value | semmle.label | value | diff --git a/swift/ql/test/query-tests/Security/CWE-760/ConstantSalt.expected b/swift/ql/test/query-tests/Security/CWE-760/ConstantSalt.expected index 033d4481780d..2d89675b482e 100644 --- a/swift/ql/test/query-tests/Security/CWE-760/ConstantSalt.expected +++ b/swift/ql/test/query-tests/Security/CWE-760/ConstantSalt.expected @@ -1,28 +1,28 @@ edges -| rncryptor.swift:59:24:59:43 | call to Data.init(_:) | rncryptor.swift:63:57:63:57 | myConstantSalt1 | -| rncryptor.swift:59:24:59:43 | call to Data.init(_:) | rncryptor.swift:68:106:68:106 | myConstantSalt1 | -| rncryptor.swift:59:24:59:43 | call to Data.init(_:) | rncryptor.swift:71:106:71:106 | myConstantSalt1 | -| rncryptor.swift:59:24:59:43 | call to Data.init(_:) | rncryptor.swift:75:127:75:127 | myConstantSalt1 | -| rncryptor.swift:59:24:59:43 | call to Data.init(_:) | rncryptor.swift:78:135:78:135 | myConstantSalt1 | -| rncryptor.swift:59:29:59:29 | abcdef123456 | rncryptor.swift:59:24:59:43 | call to Data.init(_:) | -| rncryptor.swift:60:24:60:30 | call to Data.init(_:) | rncryptor.swift:65:55:65:55 | myConstantSalt2 | -| rncryptor.swift:60:24:60:30 | call to Data.init(_:) | rncryptor.swift:69:131:69:131 | myConstantSalt2 | -| rncryptor.swift:60:24:60:30 | call to Data.init(_:) | rncryptor.swift:72:131:72:131 | myConstantSalt2 | -| rncryptor.swift:60:24:60:30 | call to Data.init(_:) | rncryptor.swift:76:152:76:152 | myConstantSalt2 | -| rncryptor.swift:60:24:60:30 | call to Data.init(_:) | rncryptor.swift:79:160:79:160 | myConstantSalt2 | -| rncryptor.swift:60:29:60:29 | 0 | rncryptor.swift:60:24:60:30 | call to Data.init(_:) | -| test.swift:29:3:29:3 | this string is constant | test.swift:33:10:33:28 | call to getConstantString() | -| test.swift:33:2:33:34 | call to Array.init(_:) [Collection element] | test.swift:44:27:44:44 | call to getConstantArray() [Collection element] | -| test.swift:33:10:33:28 | call to getConstantString() | test.swift:33:10:33:30 | .utf8 | -| test.swift:33:10:33:30 | .utf8 | test.swift:33:2:33:34 | call to Array.init(_:) [Collection element] | -| test.swift:43:35:43:130 | [...] | test.swift:51:49:51:49 | constantSalt | -| test.swift:43:35:43:130 | [...] | test.swift:56:59:56:59 | constantSalt | -| test.swift:43:35:43:130 | [...] | test.swift:62:59:62:59 | constantSalt | -| test.swift:43:35:43:130 | [...] | test.swift:67:53:67:53 | constantSalt | -| test.swift:44:27:44:44 | call to getConstantArray() [Collection element] | test.swift:52:49:52:49 | constantStringSalt | -| test.swift:44:27:44:44 | call to getConstantArray() [Collection element] | test.swift:57:59:57:59 | constantStringSalt | -| test.swift:44:27:44:44 | call to getConstantArray() [Collection element] | test.swift:63:59:63:59 | constantStringSalt | -| test.swift:44:27:44:44 | call to getConstantArray() [Collection element] | test.swift:68:53:68:53 | constantStringSalt | +| rncryptor.swift:59:24:59:43 | call to Data.init(_:) | rncryptor.swift:63:57:63:57 | myConstantSalt1 | provenance | | +| rncryptor.swift:59:24:59:43 | call to Data.init(_:) | rncryptor.swift:68:106:68:106 | myConstantSalt1 | provenance | | +| rncryptor.swift:59:24:59:43 | call to Data.init(_:) | rncryptor.swift:71:106:71:106 | myConstantSalt1 | provenance | | +| rncryptor.swift:59:24:59:43 | call to Data.init(_:) | rncryptor.swift:75:127:75:127 | myConstantSalt1 | provenance | | +| rncryptor.swift:59:24:59:43 | call to Data.init(_:) | rncryptor.swift:78:135:78:135 | myConstantSalt1 | provenance | | +| rncryptor.swift:59:29:59:29 | abcdef123456 | rncryptor.swift:59:24:59:43 | call to Data.init(_:) | provenance | | +| rncryptor.swift:60:24:60:30 | call to Data.init(_:) | rncryptor.swift:65:55:65:55 | myConstantSalt2 | provenance | | +| rncryptor.swift:60:24:60:30 | call to Data.init(_:) | rncryptor.swift:69:131:69:131 | myConstantSalt2 | provenance | | +| rncryptor.swift:60:24:60:30 | call to Data.init(_:) | rncryptor.swift:72:131:72:131 | myConstantSalt2 | provenance | | +| rncryptor.swift:60:24:60:30 | call to Data.init(_:) | rncryptor.swift:76:152:76:152 | myConstantSalt2 | provenance | | +| rncryptor.swift:60:24:60:30 | call to Data.init(_:) | rncryptor.swift:79:160:79:160 | myConstantSalt2 | provenance | | +| rncryptor.swift:60:29:60:29 | 0 | rncryptor.swift:60:24:60:30 | call to Data.init(_:) | provenance | | +| test.swift:29:3:29:3 | this string is constant | test.swift:33:10:33:28 | call to getConstantString() | provenance | | +| test.swift:33:2:33:34 | call to Array.init(_:) [Collection element] | test.swift:44:27:44:44 | call to getConstantArray() [Collection element] | provenance | | +| test.swift:33:10:33:28 | call to getConstantString() | test.swift:33:10:33:30 | .utf8 | provenance | | +| test.swift:33:10:33:30 | .utf8 | test.swift:33:2:33:34 | call to Array.init(_:) [Collection element] | provenance | | +| test.swift:43:35:43:130 | [...] | test.swift:51:49:51:49 | constantSalt | provenance | | +| test.swift:43:35:43:130 | [...] | test.swift:56:59:56:59 | constantSalt | provenance | | +| test.swift:43:35:43:130 | [...] | test.swift:62:59:62:59 | constantSalt | provenance | | +| test.swift:43:35:43:130 | [...] | test.swift:67:53:67:53 | constantSalt | provenance | | +| test.swift:44:27:44:44 | call to getConstantArray() [Collection element] | test.swift:52:49:52:49 | constantStringSalt | provenance | | +| test.swift:44:27:44:44 | call to getConstantArray() [Collection element] | test.swift:57:59:57:59 | constantStringSalt | provenance | | +| test.swift:44:27:44:44 | call to getConstantArray() [Collection element] | test.swift:63:59:63:59 | constantStringSalt | provenance | | +| test.swift:44:27:44:44 | call to getConstantArray() [Collection element] | test.swift:68:53:68:53 | constantStringSalt | provenance | | nodes | rncryptor.swift:59:24:59:43 | call to Data.init(_:) | semmle.label | call to Data.init(_:) | | rncryptor.swift:59:29:59:29 | abcdef123456 | semmle.label | abcdef123456 | diff --git a/swift/ql/test/query-tests/Security/CWE-916/InsufficientHashIterations.expected b/swift/ql/test/query-tests/Security/CWE-916/InsufficientHashIterations.expected index 1cba5d580609..aff512f05123 100644 --- a/swift/ql/test/query-tests/Security/CWE-916/InsufficientHashIterations.expected +++ b/swift/ql/test/query-tests/Security/CWE-916/InsufficientHashIterations.expected @@ -1,7 +1,7 @@ edges -| test.swift:20:45:20:45 | 99999 | test.swift:33:22:33:43 | call to getLowIterationCount() | -| test.swift:33:22:33:43 | call to getLowIterationCount() | test.swift:37:84:37:84 | lowIterations | -| test.swift:33:22:33:43 | call to getLowIterationCount() | test.swift:44:84:44:84 | lowIterations | +| test.swift:20:45:20:45 | 99999 | test.swift:33:22:33:43 | call to getLowIterationCount() | provenance | | +| test.swift:33:22:33:43 | call to getLowIterationCount() | test.swift:37:84:37:84 | lowIterations | provenance | | +| test.swift:33:22:33:43 | call to getLowIterationCount() | test.swift:44:84:44:84 | lowIterations | provenance | | nodes | test.swift:20:45:20:45 | 99999 | semmle.label | 99999 | | test.swift:33:22:33:43 | call to getLowIterationCount() | semmle.label | call to getLowIterationCount() |