diff --git a/rust/ql/test/library-tests/dataflow/taint/TaintFlowStep.expected b/rust/ql/test/library-tests/dataflow/taint/TaintFlowStep.expected index dfd91b81506..d3f838b794d 100644 --- a/rust/ql/test/library-tests/dataflow/taint/TaintFlowStep.expected +++ b/rust/ql/test/library-tests/dataflow/taint/TaintFlowStep.expected @@ -1,43 +1,43 @@ | main.rs:8:20:8:20 | s | main.rs:8:14:8:20 | FormatArgsExpr | -| main.rs:16:5:16:5 | [post] b [implicit borrow] | main.rs:16:5:16:5 | [SSA] b | -| main.rs:20:5:20:5 | [post] c [implicit borrow] | main.rs:20:5:20:5 | [SSA] c | -| main.rs:31:13:31:13 | a | main.rs:31:13:31:19 | a as u8 | -| main.rs:32:10:32:10 | b | main.rs:32:10:32:17 | b as i64 | -| main.rs:32:10:32:17 | [post] b as i64 | main.rs:32:10:32:10 | [post] b | -| main.rs:37:23:37:23 | i | main.rs:37:17:37:23 | FormatArgsExpr | -| main.rs:41:24:41:24 | s | main.rs:41:18:41:24 | FormatArgsExpr | -| main.rs:46:23:46:23 | [post] s [implicit borrow] | main.rs:46:23:46:23 | [post] s | -| main.rs:46:23:46:23 | s | main.rs:46:23:46:29 | s[...] | -| main.rs:46:23:46:29 | s[...] [pre-dereferenced] | main.rs:46:23:46:29 | s[...] | -| main.rs:57:24:57:24 | i | main.rs:57:18:57:24 | FormatArgsExpr | -| main.rs:62:14:62:16 | [post] arr [implicit borrow] | main.rs:62:14:62:16 | [post] arr | -| main.rs:62:14:62:19 | arr[1] [pre-dereferenced] | main.rs:62:14:62:19 | arr[1] | -| main.rs:72:24:72:24 | [post] s [implicit borrow] | main.rs:72:24:72:24 | [post] s | -| main.rs:72:24:72:27 | s[1] | main.rs:72:18:72:27 | FormatArgsExpr | -| main.rs:72:24:72:27 | s[1] [pre-dereferenced] | main.rs:72:24:72:27 | s[1] | -| main.rs:77:9:77:12 | [post] arr2 [implicit borrow] | main.rs:77:9:77:12 | [post] arr2 | -| main.rs:77:9:77:15 | arr2[1] [pre-dereferenced] | main.rs:77:9:77:15 | arr2[1] | -| main.rs:98:14:98:47 | TupleExpr | main.rs:98:14:98:49 | ... .0 | -| main.rs:99:14:99:47 | TupleExpr | main.rs:99:14:99:49 | ... .1 | -| main.rs:102:14:102:28 | source_tuple(...) | main.rs:102:14:102:30 | ... .0 | -| main.rs:103:14:103:28 | source_tuple(...) | main.rs:103:14:103:30 | ... .1 | -| main.rs:106:14:106:83 | TupleExpr | main.rs:106:14:106:85 | ... .0 | -| main.rs:107:14:107:83 | TupleExpr | main.rs:107:14:107:85 | ... .0 | -| main.rs:107:14:107:85 | ... .0 | main.rs:107:14:107:87 | ... .0 | -| main.rs:108:14:108:83 | TupleExpr | main.rs:108:14:108:85 | ... .0 | -| main.rs:108:14:108:85 | ... .0 | main.rs:108:14:108:87 | ... .1 | -| main.rs:109:14:109:83 | TupleExpr | main.rs:109:14:109:85 | ... .1 | -| main.rs:110:14:110:83 | TupleExpr | main.rs:110:14:110:85 | ... .1 | -| main.rs:110:14:110:85 | ... .1 | main.rs:110:14:110:87 | ... .0 | -| main.rs:111:14:111:83 | TupleExpr | main.rs:111:14:111:85 | ... .1 | -| main.rs:111:14:111:85 | ... .1 | main.rs:111:14:111:87 | ... .1 | -| main.rs:114:14:114:64 | TupleExpr | main.rs:114:14:114:66 | ... .0 | -| main.rs:115:14:115:64 | TupleExpr | main.rs:115:14:115:66 | ... .0 | -| main.rs:115:14:115:66 | ... .0 | main.rs:115:14:115:68 | ... .0 | -| main.rs:116:14:116:64 | TupleExpr | main.rs:116:14:116:66 | ... .0 | -| main.rs:116:14:116:66 | ... .0 | main.rs:116:14:116:68 | ... .1 | -| main.rs:117:14:117:64 | TupleExpr | main.rs:117:14:117:66 | ... .1 | -| main.rs:118:14:118:64 | TupleExpr | main.rs:118:14:118:66 | ... .1 | -| main.rs:118:14:118:66 | ... .1 | main.rs:118:14:118:68 | ... .0 | -| main.rs:119:14:119:64 | TupleExpr | main.rs:119:14:119:66 | ... .1 | -| main.rs:119:14:119:66 | ... .1 | main.rs:119:14:119:68 | ... .1 | +| main.rs:17:5:17:5 | [post] b [implicit borrow] | main.rs:17:5:17:5 | [SSA] b | +| main.rs:21:5:21:5 | [post] c [implicit borrow] | main.rs:21:5:21:5 | [SSA] c | +| main.rs:46:13:46:13 | a | main.rs:46:13:46:19 | a as u8 | +| main.rs:47:10:47:10 | b | main.rs:47:10:47:17 | b as i64 | +| main.rs:47:10:47:17 | [post] b as i64 | main.rs:47:10:47:10 | [post] b | +| main.rs:52:23:52:23 | i | main.rs:52:17:52:23 | FormatArgsExpr | +| main.rs:56:24:56:24 | s | main.rs:56:18:56:24 | FormatArgsExpr | +| main.rs:61:23:61:23 | [post] s [implicit borrow] | main.rs:61:23:61:23 | [post] s | +| main.rs:61:23:61:23 | s | main.rs:61:23:61:29 | s[...] | +| main.rs:61:23:61:29 | s[...] [pre-dereferenced] | main.rs:61:23:61:29 | s[...] | +| main.rs:72:24:72:24 | i | main.rs:72:18:72:24 | FormatArgsExpr | +| main.rs:77:14:77:16 | [post] arr [implicit borrow] | main.rs:77:14:77:16 | [post] arr | +| main.rs:77:14:77:19 | arr[1] [pre-dereferenced] | main.rs:77:14:77:19 | arr[1] | +| main.rs:87:24:87:24 | [post] s [implicit borrow] | main.rs:87:24:87:24 | [post] s | +| main.rs:87:24:87:27 | s[1] | main.rs:87:18:87:27 | FormatArgsExpr | +| main.rs:87:24:87:27 | s[1] [pre-dereferenced] | main.rs:87:24:87:27 | s[1] | +| main.rs:92:9:92:12 | [post] arr2 [implicit borrow] | main.rs:92:9:92:12 | [post] arr2 | +| main.rs:92:9:92:15 | arr2[1] [pre-dereferenced] | main.rs:92:9:92:15 | arr2[1] | +| main.rs:113:14:113:47 | TupleExpr | main.rs:113:14:113:49 | ... .0 | +| main.rs:114:14:114:47 | TupleExpr | main.rs:114:14:114:49 | ... .1 | +| main.rs:117:14:117:28 | source_tuple(...) | main.rs:117:14:117:30 | ... .0 | +| main.rs:118:14:118:28 | source_tuple(...) | main.rs:118:14:118:30 | ... .1 | +| main.rs:121:14:121:83 | TupleExpr | main.rs:121:14:121:85 | ... .0 | +| main.rs:122:14:122:83 | TupleExpr | main.rs:122:14:122:85 | ... .0 | +| main.rs:122:14:122:85 | ... .0 | main.rs:122:14:122:87 | ... .0 | +| main.rs:123:14:123:83 | TupleExpr | main.rs:123:14:123:85 | ... .0 | +| main.rs:123:14:123:85 | ... .0 | main.rs:123:14:123:87 | ... .1 | +| main.rs:124:14:124:83 | TupleExpr | main.rs:124:14:124:85 | ... .1 | +| main.rs:125:14:125:83 | TupleExpr | main.rs:125:14:125:85 | ... .1 | +| main.rs:125:14:125:85 | ... .1 | main.rs:125:14:125:87 | ... .0 | +| main.rs:126:14:126:83 | TupleExpr | main.rs:126:14:126:85 | ... .1 | +| main.rs:126:14:126:85 | ... .1 | main.rs:126:14:126:87 | ... .1 | +| main.rs:129:14:129:64 | TupleExpr | main.rs:129:14:129:66 | ... .0 | +| main.rs:130:14:130:64 | TupleExpr | main.rs:130:14:130:66 | ... .0 | +| main.rs:130:14:130:66 | ... .0 | main.rs:130:14:130:68 | ... .0 | +| main.rs:131:14:131:64 | TupleExpr | main.rs:131:14:131:66 | ... .0 | +| main.rs:131:14:131:66 | ... .0 | main.rs:131:14:131:68 | ... .1 | +| main.rs:132:14:132:64 | TupleExpr | main.rs:132:14:132:66 | ... .1 | +| main.rs:133:14:133:64 | TupleExpr | main.rs:133:14:133:66 | ... .1 | +| main.rs:133:14:133:66 | ... .1 | main.rs:133:14:133:68 | ... .0 | +| main.rs:134:14:134:64 | TupleExpr | main.rs:134:14:134:66 | ... .1 | +| main.rs:134:14:134:66 | ... .1 | main.rs:134:14:134:68 | ... .1 | diff --git a/rust/ql/test/library-tests/dataflow/taint/inline-taint-flow.expected b/rust/ql/test/library-tests/dataflow/taint/inline-taint-flow.expected index 53a6a4e01a0..ff182738a8e 100644 --- a/rust/ql/test/library-tests/dataflow/taint/inline-taint-flow.expected +++ b/rust/ql/test/library-tests/dataflow/taint/inline-taint-flow.expected @@ -9,118 +9,118 @@ edges | main.rs:12:9:12:9 | a | main.rs:13:10:13:10 | a | provenance | | | main.rs:12:13:12:22 | source(...) | main.rs:12:9:12:9 | a | provenance | | | main.rs:13:10:13:10 | a | main.rs:13:10:13:14 | ... + ... | provenance | MaD:1 | -| main.rs:15:9:15:13 | mut b | main.rs:16:5:16:5 | b | provenance | | -| main.rs:15:17:15:26 | source(...) | main.rs:15:9:15:13 | mut b | provenance | | -| main.rs:16:5:16:5 | b | main.rs:17:10:17:10 | b | provenance | MaD:4 | -| main.rs:20:10:20:19 | source(...) | main.rs:21:10:21:10 | c | provenance | MaD:2 | -| main.rs:20:10:20:19 | source(...) | main.rs:21:10:21:10 | c | provenance | MaD:3 | -| main.rs:25:9:25:9 | a | main.rs:26:11:26:11 | a | provenance | | -| main.rs:25:13:25:22 | source(...) | main.rs:25:9:25:9 | a | provenance | | -| main.rs:26:11:26:11 | a | main.rs:26:10:26:11 | - ... | provenance | MaD:5 | -| main.rs:30:9:30:9 | a | main.rs:31:9:31:9 | b | provenance | | -| main.rs:30:13:30:22 | source(...) | main.rs:30:9:30:9 | a | provenance | | -| main.rs:31:9:31:9 | b | main.rs:32:10:32:17 | b as i64 | provenance | | -| main.rs:45:13:45:13 | s | main.rs:46:23:46:23 | s | provenance | | -| main.rs:45:13:45:13 | s | main.rs:46:23:46:29 | s[...] | provenance | | -| main.rs:45:17:45:26 | source(...) | main.rs:45:13:45:13 | s | provenance | | -| main.rs:46:13:46:18 | sliced [&ref] | main.rs:47:14:47:19 | sliced | provenance | | -| main.rs:46:22:46:29 | &... [&ref] | main.rs:46:13:46:18 | sliced [&ref] | provenance | | -| main.rs:46:23:46:23 | s | main.rs:46:23:46:29 | s[...] | provenance | MaD:6 | -| main.rs:46:23:46:29 | s[...] | main.rs:46:22:46:29 | &... [&ref] | provenance | | -| main.rs:61:13:61:15 | arr | main.rs:62:14:62:16 | arr | provenance | | -| main.rs:61:19:61:28 | source(...) | main.rs:61:13:61:15 | arr | provenance | | -| main.rs:62:14:62:16 | arr | main.rs:62:14:62:19 | arr[1] | provenance | MaD:6 | -| main.rs:77:9:77:12 | [post] arr2 [element] | main.rs:78:14:78:17 | arr2 | provenance | | -| main.rs:77:19:77:28 | source(...) | main.rs:77:9:77:12 | [post] arr2 [element] | provenance | | -| main.rs:98:14:98:47 | TupleExpr [tuple.0] | main.rs:98:14:98:49 | ... .0 | provenance | | -| main.rs:98:15:98:30 | source_string(...) | main.rs:98:14:98:47 | TupleExpr [tuple.0] | provenance | | -| main.rs:102:14:102:28 | source_tuple(...) | main.rs:102:14:102:30 | ... .0 | provenance | | -| main.rs:103:14:103:28 | source_tuple(...) | main.rs:103:14:103:30 | ... .1 | provenance | | -| main.rs:108:14:108:83 | TupleExpr [tuple.0, tuple.1] | main.rs:108:14:108:85 | ... .0 [tuple.1] | provenance | | -| main.rs:108:14:108:85 | ... .0 [tuple.1] | main.rs:108:14:108:87 | ... .1 | provenance | | -| main.rs:108:15:108:48 | TupleExpr [tuple.1] | main.rs:108:14:108:83 | TupleExpr [tuple.0, tuple.1] | provenance | | -| main.rs:108:32:108:47 | source_string(...) | main.rs:108:15:108:48 | TupleExpr [tuple.1] | provenance | | -| main.rs:114:14:114:64 | TupleExpr [tuple.0] | main.rs:114:14:114:66 | ... .0 | provenance | | -| main.rs:114:15:114:29 | source_tuple(...) | main.rs:114:14:114:64 | TupleExpr [tuple.0] | provenance | | -| main.rs:115:14:115:64 | TupleExpr [tuple.0] | main.rs:115:14:115:66 | ... .0 | provenance | | -| main.rs:115:14:115:66 | ... .0 | main.rs:115:14:115:68 | ... .0 | provenance | | -| main.rs:115:15:115:29 | source_tuple(...) | main.rs:115:14:115:64 | TupleExpr [tuple.0] | provenance | | -| main.rs:116:14:116:64 | TupleExpr [tuple.0] | main.rs:116:14:116:66 | ... .0 | provenance | | -| main.rs:116:14:116:66 | ... .0 | main.rs:116:14:116:68 | ... .1 | provenance | | -| main.rs:116:15:116:29 | source_tuple(...) | main.rs:116:14:116:64 | TupleExpr [tuple.0] | provenance | | +| main.rs:16:9:16:13 | mut b | main.rs:17:5:17:5 | b | provenance | | +| main.rs:16:17:16:26 | source(...) | main.rs:16:9:16:13 | mut b | provenance | | +| main.rs:17:5:17:5 | b | main.rs:18:10:18:10 | b | provenance | MaD:4 | +| main.rs:21:10:21:19 | source(...) | main.rs:22:10:22:10 | c | provenance | MaD:2 | +| main.rs:21:10:21:19 | source(...) | main.rs:22:10:22:10 | c | provenance | MaD:3 | +| main.rs:26:9:26:9 | a | main.rs:27:11:27:11 | a | provenance | | +| main.rs:26:13:26:22 | source(...) | main.rs:26:9:26:9 | a | provenance | | +| main.rs:27:11:27:11 | a | main.rs:27:10:27:11 | - ... | provenance | MaD:5 | +| main.rs:45:9:45:9 | a | main.rs:46:9:46:9 | b | provenance | | +| main.rs:45:13:45:22 | source(...) | main.rs:45:9:45:9 | a | provenance | | +| main.rs:46:9:46:9 | b | main.rs:47:10:47:17 | b as i64 | provenance | | +| main.rs:60:13:60:13 | s | main.rs:61:23:61:23 | s | provenance | | +| main.rs:60:13:60:13 | s | main.rs:61:23:61:29 | s[...] | provenance | | +| main.rs:60:17:60:26 | source(...) | main.rs:60:13:60:13 | s | provenance | | +| main.rs:61:13:61:18 | sliced [&ref] | main.rs:62:14:62:19 | sliced | provenance | | +| main.rs:61:22:61:29 | &... [&ref] | main.rs:61:13:61:18 | sliced [&ref] | provenance | | +| main.rs:61:23:61:23 | s | main.rs:61:23:61:29 | s[...] | provenance | MaD:6 | +| main.rs:61:23:61:29 | s[...] | main.rs:61:22:61:29 | &... [&ref] | provenance | | +| main.rs:76:13:76:15 | arr | main.rs:77:14:77:16 | arr | provenance | | +| main.rs:76:19:76:28 | source(...) | main.rs:76:13:76:15 | arr | provenance | | +| main.rs:77:14:77:16 | arr | main.rs:77:14:77:19 | arr[1] | provenance | MaD:6 | +| main.rs:92:9:92:12 | [post] arr2 [element] | main.rs:93:14:93:17 | arr2 | provenance | | +| main.rs:92:19:92:28 | source(...) | main.rs:92:9:92:12 | [post] arr2 [element] | provenance | | +| main.rs:113:14:113:47 | TupleExpr [tuple.0] | main.rs:113:14:113:49 | ... .0 | provenance | | +| main.rs:113:15:113:30 | source_string(...) | main.rs:113:14:113:47 | TupleExpr [tuple.0] | provenance | | +| main.rs:117:14:117:28 | source_tuple(...) | main.rs:117:14:117:30 | ... .0 | provenance | | +| main.rs:118:14:118:28 | source_tuple(...) | main.rs:118:14:118:30 | ... .1 | provenance | | +| main.rs:123:14:123:83 | TupleExpr [tuple.0, tuple.1] | main.rs:123:14:123:85 | ... .0 [tuple.1] | provenance | | +| main.rs:123:14:123:85 | ... .0 [tuple.1] | main.rs:123:14:123:87 | ... .1 | provenance | | +| main.rs:123:15:123:48 | TupleExpr [tuple.1] | main.rs:123:14:123:83 | TupleExpr [tuple.0, tuple.1] | provenance | | +| main.rs:123:32:123:47 | source_string(...) | main.rs:123:15:123:48 | TupleExpr [tuple.1] | provenance | | +| main.rs:129:14:129:64 | TupleExpr [tuple.0] | main.rs:129:14:129:66 | ... .0 | provenance | | +| main.rs:129:15:129:29 | source_tuple(...) | main.rs:129:14:129:64 | TupleExpr [tuple.0] | provenance | | +| main.rs:130:14:130:64 | TupleExpr [tuple.0] | main.rs:130:14:130:66 | ... .0 | provenance | | +| main.rs:130:14:130:66 | ... .0 | main.rs:130:14:130:68 | ... .0 | provenance | | +| main.rs:130:15:130:29 | source_tuple(...) | main.rs:130:14:130:64 | TupleExpr [tuple.0] | provenance | | +| main.rs:131:14:131:64 | TupleExpr [tuple.0] | main.rs:131:14:131:66 | ... .0 | provenance | | +| main.rs:131:14:131:66 | ... .0 | main.rs:131:14:131:68 | ... .1 | provenance | | +| main.rs:131:15:131:29 | source_tuple(...) | main.rs:131:14:131:64 | TupleExpr [tuple.0] | provenance | | nodes | main.rs:12:9:12:9 | a | semmle.label | a | | main.rs:12:13:12:22 | source(...) | semmle.label | source(...) | | main.rs:13:10:13:10 | a | semmle.label | a | | main.rs:13:10:13:14 | ... + ... | semmle.label | ... + ... | -| main.rs:15:9:15:13 | mut b | semmle.label | mut b | -| main.rs:15:17:15:26 | source(...) | semmle.label | source(...) | -| main.rs:16:5:16:5 | b | semmle.label | b | -| main.rs:17:10:17:10 | b | semmle.label | b | -| main.rs:20:10:20:19 | source(...) | semmle.label | source(...) | -| main.rs:21:10:21:10 | c | semmle.label | c | -| main.rs:25:9:25:9 | a | semmle.label | a | -| main.rs:25:13:25:22 | source(...) | semmle.label | source(...) | -| main.rs:26:10:26:11 | - ... | semmle.label | - ... | -| main.rs:26:11:26:11 | a | semmle.label | a | -| main.rs:30:9:30:9 | a | semmle.label | a | -| main.rs:30:13:30:22 | source(...) | semmle.label | source(...) | -| main.rs:31:9:31:9 | b | semmle.label | b | -| main.rs:32:10:32:17 | b as i64 | semmle.label | b as i64 | -| main.rs:45:13:45:13 | s | semmle.label | s | -| main.rs:45:17:45:26 | source(...) | semmle.label | source(...) | -| main.rs:46:13:46:18 | sliced [&ref] | semmle.label | sliced [&ref] | -| main.rs:46:22:46:29 | &... [&ref] | semmle.label | &... [&ref] | -| main.rs:46:23:46:23 | s | semmle.label | s | -| main.rs:46:23:46:29 | s[...] | semmle.label | s[...] | -| main.rs:47:14:47:19 | sliced | semmle.label | sliced | -| main.rs:61:13:61:15 | arr | semmle.label | arr | -| main.rs:61:19:61:28 | source(...) | semmle.label | source(...) | -| main.rs:62:14:62:16 | arr | semmle.label | arr | -| main.rs:62:14:62:19 | arr[1] | semmle.label | arr[1] | -| main.rs:77:9:77:12 | [post] arr2 [element] | semmle.label | [post] arr2 [element] | -| main.rs:77:19:77:28 | source(...) | semmle.label | source(...) | -| main.rs:78:14:78:17 | arr2 | semmle.label | arr2 | -| main.rs:98:14:98:47 | TupleExpr [tuple.0] | semmle.label | TupleExpr [tuple.0] | -| main.rs:98:14:98:49 | ... .0 | semmle.label | ... .0 | -| main.rs:98:15:98:30 | source_string(...) | semmle.label | source_string(...) | -| main.rs:101:14:101:28 | source_tuple(...) | semmle.label | source_tuple(...) | -| main.rs:102:14:102:28 | source_tuple(...) | semmle.label | source_tuple(...) | -| main.rs:102:14:102:30 | ... .0 | semmle.label | ... .0 | -| main.rs:103:14:103:28 | source_tuple(...) | semmle.label | source_tuple(...) | -| main.rs:103:14:103:30 | ... .1 | semmle.label | ... .1 | -| main.rs:108:14:108:83 | TupleExpr [tuple.0, tuple.1] | semmle.label | TupleExpr [tuple.0, tuple.1] | -| main.rs:108:14:108:85 | ... .0 [tuple.1] | semmle.label | ... .0 [tuple.1] | -| main.rs:108:14:108:87 | ... .1 | semmle.label | ... .1 | -| main.rs:108:15:108:48 | TupleExpr [tuple.1] | semmle.label | TupleExpr [tuple.1] | -| main.rs:108:32:108:47 | source_string(...) | semmle.label | source_string(...) | -| main.rs:114:14:114:64 | TupleExpr [tuple.0] | semmle.label | TupleExpr [tuple.0] | -| main.rs:114:14:114:66 | ... .0 | semmle.label | ... .0 | -| main.rs:114:15:114:29 | source_tuple(...) | semmle.label | source_tuple(...) | -| main.rs:115:14:115:64 | TupleExpr [tuple.0] | semmle.label | TupleExpr [tuple.0] | -| main.rs:115:14:115:66 | ... .0 | semmle.label | ... .0 | -| main.rs:115:14:115:68 | ... .0 | semmle.label | ... .0 | -| main.rs:115:15:115:29 | source_tuple(...) | semmle.label | source_tuple(...) | -| main.rs:116:14:116:64 | TupleExpr [tuple.0] | semmle.label | TupleExpr [tuple.0] | -| main.rs:116:14:116:66 | ... .0 | semmle.label | ... .0 | -| main.rs:116:14:116:68 | ... .1 | semmle.label | ... .1 | -| main.rs:116:15:116:29 | source_tuple(...) | semmle.label | source_tuple(...) | +| main.rs:16:9:16:13 | mut b | semmle.label | mut b | +| main.rs:16:17:16:26 | source(...) | semmle.label | source(...) | +| main.rs:17:5:17:5 | b | semmle.label | b | +| main.rs:18:10:18:10 | b | semmle.label | b | +| main.rs:21:10:21:19 | source(...) | semmle.label | source(...) | +| main.rs:22:10:22:10 | c | semmle.label | c | +| main.rs:26:9:26:9 | a | semmle.label | a | +| main.rs:26:13:26:22 | source(...) | semmle.label | source(...) | +| main.rs:27:10:27:11 | - ... | semmle.label | - ... | +| main.rs:27:11:27:11 | a | semmle.label | a | +| main.rs:45:9:45:9 | a | semmle.label | a | +| main.rs:45:13:45:22 | source(...) | semmle.label | source(...) | +| main.rs:46:9:46:9 | b | semmle.label | b | +| main.rs:47:10:47:17 | b as i64 | semmle.label | b as i64 | +| main.rs:60:13:60:13 | s | semmle.label | s | +| main.rs:60:17:60:26 | source(...) | semmle.label | source(...) | +| main.rs:61:13:61:18 | sliced [&ref] | semmle.label | sliced [&ref] | +| main.rs:61:22:61:29 | &... [&ref] | semmle.label | &... [&ref] | +| main.rs:61:23:61:23 | s | semmle.label | s | +| main.rs:61:23:61:29 | s[...] | semmle.label | s[...] | +| main.rs:62:14:62:19 | sliced | semmle.label | sliced | +| main.rs:76:13:76:15 | arr | semmle.label | arr | +| main.rs:76:19:76:28 | source(...) | semmle.label | source(...) | +| main.rs:77:14:77:16 | arr | semmle.label | arr | +| main.rs:77:14:77:19 | arr[1] | semmle.label | arr[1] | +| main.rs:92:9:92:12 | [post] arr2 [element] | semmle.label | [post] arr2 [element] | +| main.rs:92:19:92:28 | source(...) | semmle.label | source(...) | +| main.rs:93:14:93:17 | arr2 | semmle.label | arr2 | +| main.rs:113:14:113:47 | TupleExpr [tuple.0] | semmle.label | TupleExpr [tuple.0] | +| main.rs:113:14:113:49 | ... .0 | semmle.label | ... .0 | +| main.rs:113:15:113:30 | source_string(...) | semmle.label | source_string(...) | +| main.rs:116:14:116:28 | source_tuple(...) | semmle.label | source_tuple(...) | +| main.rs:117:14:117:28 | source_tuple(...) | semmle.label | source_tuple(...) | +| main.rs:117:14:117:30 | ... .0 | semmle.label | ... .0 | +| main.rs:118:14:118:28 | source_tuple(...) | semmle.label | source_tuple(...) | +| main.rs:118:14:118:30 | ... .1 | semmle.label | ... .1 | +| main.rs:123:14:123:83 | TupleExpr [tuple.0, tuple.1] | semmle.label | TupleExpr [tuple.0, tuple.1] | +| main.rs:123:14:123:85 | ... .0 [tuple.1] | semmle.label | ... .0 [tuple.1] | +| main.rs:123:14:123:87 | ... .1 | semmle.label | ... .1 | +| main.rs:123:15:123:48 | TupleExpr [tuple.1] | semmle.label | TupleExpr [tuple.1] | +| main.rs:123:32:123:47 | source_string(...) | semmle.label | source_string(...) | +| main.rs:129:14:129:64 | TupleExpr [tuple.0] | semmle.label | TupleExpr [tuple.0] | +| main.rs:129:14:129:66 | ... .0 | semmle.label | ... .0 | +| main.rs:129:15:129:29 | source_tuple(...) | semmle.label | source_tuple(...) | +| main.rs:130:14:130:64 | TupleExpr [tuple.0] | semmle.label | TupleExpr [tuple.0] | +| main.rs:130:14:130:66 | ... .0 | semmle.label | ... .0 | +| main.rs:130:14:130:68 | ... .0 | semmle.label | ... .0 | +| main.rs:130:15:130:29 | source_tuple(...) | semmle.label | source_tuple(...) | +| main.rs:131:14:131:64 | TupleExpr [tuple.0] | semmle.label | TupleExpr [tuple.0] | +| main.rs:131:14:131:66 | ... .0 | semmle.label | ... .0 | +| main.rs:131:14:131:68 | ... .1 | semmle.label | ... .1 | +| main.rs:131:15:131:29 | source_tuple(...) | semmle.label | source_tuple(...) | subpaths testFailures #select | main.rs:13:10:13:14 | ... + ... | main.rs:12:13:12:22 | source(...) | main.rs:13:10:13:14 | ... + ... | $@ | main.rs:12:13:12:22 | source(...) | source(...) | -| main.rs:17:10:17:10 | b | main.rs:15:17:15:26 | source(...) | main.rs:17:10:17:10 | b | $@ | main.rs:15:17:15:26 | source(...) | source(...) | -| main.rs:21:10:21:10 | c | main.rs:20:10:20:19 | source(...) | main.rs:21:10:21:10 | c | $@ | main.rs:20:10:20:19 | source(...) | source(...) | -| main.rs:26:10:26:11 | - ... | main.rs:25:13:25:22 | source(...) | main.rs:26:10:26:11 | - ... | $@ | main.rs:25:13:25:22 | source(...) | source(...) | -| main.rs:32:10:32:17 | b as i64 | main.rs:30:13:30:22 | source(...) | main.rs:32:10:32:17 | b as i64 | $@ | main.rs:30:13:30:22 | source(...) | source(...) | -| main.rs:47:14:47:19 | sliced | main.rs:45:17:45:26 | source(...) | main.rs:47:14:47:19 | sliced | $@ | main.rs:45:17:45:26 | source(...) | source(...) | -| main.rs:62:14:62:19 | arr[1] | main.rs:61:19:61:28 | source(...) | main.rs:62:14:62:19 | arr[1] | $@ | main.rs:61:19:61:28 | source(...) | source(...) | -| main.rs:78:14:78:17 | arr2 | main.rs:77:19:77:28 | source(...) | main.rs:78:14:78:17 | arr2 | $@ | main.rs:77:19:77:28 | source(...) | source(...) | -| main.rs:98:14:98:49 | ... .0 | main.rs:98:15:98:30 | source_string(...) | main.rs:98:14:98:49 | ... .0 | $@ | main.rs:98:15:98:30 | source_string(...) | source_string(...) | -| main.rs:101:14:101:28 | source_tuple(...) | main.rs:101:14:101:28 | source_tuple(...) | main.rs:101:14:101:28 | source_tuple(...) | $@ | main.rs:101:14:101:28 | source_tuple(...) | source_tuple(...) | -| main.rs:102:14:102:30 | ... .0 | main.rs:102:14:102:28 | source_tuple(...) | main.rs:102:14:102:30 | ... .0 | $@ | main.rs:102:14:102:28 | source_tuple(...) | source_tuple(...) | -| main.rs:103:14:103:30 | ... .1 | main.rs:103:14:103:28 | source_tuple(...) | main.rs:103:14:103:30 | ... .1 | $@ | main.rs:103:14:103:28 | source_tuple(...) | source_tuple(...) | -| main.rs:108:14:108:87 | ... .1 | main.rs:108:32:108:47 | source_string(...) | main.rs:108:14:108:87 | ... .1 | $@ | main.rs:108:32:108:47 | source_string(...) | source_string(...) | -| main.rs:114:14:114:66 | ... .0 | main.rs:114:15:114:29 | source_tuple(...) | main.rs:114:14:114:66 | ... .0 | $@ | main.rs:114:15:114:29 | source_tuple(...) | source_tuple(...) | -| main.rs:115:14:115:68 | ... .0 | main.rs:115:15:115:29 | source_tuple(...) | main.rs:115:14:115:68 | ... .0 | $@ | main.rs:115:15:115:29 | source_tuple(...) | source_tuple(...) | -| main.rs:116:14:116:68 | ... .1 | main.rs:116:15:116:29 | source_tuple(...) | main.rs:116:14:116:68 | ... .1 | $@ | main.rs:116:15:116:29 | source_tuple(...) | source_tuple(...) | +| main.rs:18:10:18:10 | b | main.rs:16:17:16:26 | source(...) | main.rs:18:10:18:10 | b | $@ | main.rs:16:17:16:26 | source(...) | source(...) | +| main.rs:22:10:22:10 | c | main.rs:21:10:21:19 | source(...) | main.rs:22:10:22:10 | c | $@ | main.rs:21:10:21:19 | source(...) | source(...) | +| main.rs:27:10:27:11 | - ... | main.rs:26:13:26:22 | source(...) | main.rs:27:10:27:11 | - ... | $@ | main.rs:26:13:26:22 | source(...) | source(...) | +| main.rs:47:10:47:17 | b as i64 | main.rs:45:13:45:22 | source(...) | main.rs:47:10:47:17 | b as i64 | $@ | main.rs:45:13:45:22 | source(...) | source(...) | +| main.rs:62:14:62:19 | sliced | main.rs:60:17:60:26 | source(...) | main.rs:62:14:62:19 | sliced | $@ | main.rs:60:17:60:26 | source(...) | source(...) | +| main.rs:77:14:77:19 | arr[1] | main.rs:76:19:76:28 | source(...) | main.rs:77:14:77:19 | arr[1] | $@ | main.rs:76:19:76:28 | source(...) | source(...) | +| main.rs:93:14:93:17 | arr2 | main.rs:92:19:92:28 | source(...) | main.rs:93:14:93:17 | arr2 | $@ | main.rs:92:19:92:28 | source(...) | source(...) | +| main.rs:113:14:113:49 | ... .0 | main.rs:113:15:113:30 | source_string(...) | main.rs:113:14:113:49 | ... .0 | $@ | main.rs:113:15:113:30 | source_string(...) | source_string(...) | +| main.rs:116:14:116:28 | source_tuple(...) | main.rs:116:14:116:28 | source_tuple(...) | main.rs:116:14:116:28 | source_tuple(...) | $@ | main.rs:116:14:116:28 | source_tuple(...) | source_tuple(...) | +| main.rs:117:14:117:30 | ... .0 | main.rs:117:14:117:28 | source_tuple(...) | main.rs:117:14:117:30 | ... .0 | $@ | main.rs:117:14:117:28 | source_tuple(...) | source_tuple(...) | +| main.rs:118:14:118:30 | ... .1 | main.rs:118:14:118:28 | source_tuple(...) | main.rs:118:14:118:30 | ... .1 | $@ | main.rs:118:14:118:28 | source_tuple(...) | source_tuple(...) | +| main.rs:123:14:123:87 | ... .1 | main.rs:123:32:123:47 | source_string(...) | main.rs:123:14:123:87 | ... .1 | $@ | main.rs:123:32:123:47 | source_string(...) | source_string(...) | +| main.rs:129:14:129:66 | ... .0 | main.rs:129:15:129:29 | source_tuple(...) | main.rs:129:14:129:66 | ... .0 | $@ | main.rs:129:15:129:29 | source_tuple(...) | source_tuple(...) | +| main.rs:130:14:130:68 | ... .0 | main.rs:130:15:130:29 | source_tuple(...) | main.rs:130:14:130:68 | ... .0 | $@ | main.rs:130:15:130:29 | source_tuple(...) | source_tuple(...) | +| main.rs:131:14:131:68 | ... .1 | main.rs:131:15:131:29 | source_tuple(...) | main.rs:131:14:131:68 | ... .1 | $@ | main.rs:131:15:131:29 | source_tuple(...) | source_tuple(...) | diff --git a/rust/ql/test/library-tests/dataflow/taint/main.rs b/rust/ql/test/library-tests/dataflow/taint/main.rs index e7c23d38e98..506c6e5eb3c 100644 --- a/rust/ql/test/library-tests/dataflow/taint/main.rs +++ b/rust/ql/test/library-tests/dataflow/taint/main.rs @@ -12,6 +12,7 @@ fn addition() { let a = source(42); sink(a + 1); // $ hasTaintFlow=42 + let mut b = source(58); b += 2; sink(b); // $ hasTaintFlow=58 @@ -26,6 +27,20 @@ fn negation() { sink(-a); // $ hasTaintFlow=17 } + + + + + + + + + + + + + + fn cast() { let a = source(77); let b = a as u8;