Skip to content

Commit e8ef58d

Browse files
committed
Rust: Fix an issue with identifying sources and sinks in the test.
1 parent f8d0a0d commit e8ef58d

File tree

3 files changed

+41
-6
lines changed

3 files changed

+41
-6
lines changed

rust/ql/lib/utils/test/InlineFlowTest.qll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ private import internal.InlineExpectationsTestImpl as InlineExpectationsTestImpl
1919
*/
2020
bindingset[name]
2121
private predicate callTargetName(CallExpr call, string name) {
22-
call.getFunction().(PathExpr).toString().matches(name + "%")
22+
call.getFunction().(PathExpr).getPath().getText().matches(name + "%")
2323
}
2424

2525
private module FlowTestImpl implements InputSig<Location, RustDataFlow> {

rust/ql/test/library-tests/dataflow/taint/inline-taint-flow.expected

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,20 +132,35 @@ edges
132132
| main.rs:175:21:175:29 | source(...) | main.rs:175:5:175:5 | [post] a | provenance | MaD:19 |
133133
| main.rs:178:10:178:18 | source(...) | main.rs:178:10:178:24 | ... .neg() | provenance | MaD:9 |
134134
| main.rs:179:10:179:18 | source(...) | main.rs:179:10:179:24 | ... .not() | provenance | MaD:20 |
135+
| main.rs:199:13:199:17 | mut a [Wrapping] | main.rs:201:21:201:21 | a [Wrapping] | provenance | |
136+
| main.rs:199:13:199:17 | mut a [Wrapping] | main.rs:206:21:206:21 | a [Wrapping] | provenance | |
137+
| main.rs:199:36:199:61 | Wrapping(...) [Wrapping] | main.rs:199:13:199:17 | mut a [Wrapping] | provenance | |
138+
| main.rs:199:45:199:60 | ...::source(...) | main.rs:199:36:199:61 | Wrapping(...) [Wrapping] | provenance | |
139+
| main.rs:201:21:201:21 | a [Wrapping] | main.rs:201:21:201:23 | a.0 | provenance | |
135140
| main.rs:203:9:203:9 | [post] a | main.rs:204:9:204:9 | a | provenance | |
136141
| main.rs:203:9:203:9 | [post] a | main.rs:205:14:205:14 | a | provenance | |
142+
| main.rs:203:9:203:9 | [post] a | main.rs:206:21:206:23 | a.0 | provenance | |
137143
| main.rs:203:22:203:30 | source(...) | main.rs:203:9:203:9 | [post] a | provenance | MaD:3 |
138144
| main.rs:203:22:203:30 | source(...) | main.rs:203:9:203:9 | [post] a | provenance | MaD:4 |
139145
| main.rs:204:9:204:9 | [post] a | main.rs:205:14:205:14 | a | provenance | |
146+
| main.rs:204:9:204:9 | [post] a | main.rs:206:21:206:23 | a.0 | provenance | |
140147
| main.rs:204:9:204:9 | a | main.rs:204:9:204:9 | [post] a | provenance | MaD:4 |
148+
| main.rs:206:21:206:21 | a [Wrapping] | main.rs:206:21:206:23 | a.0 | provenance | |
141149
| main.rs:208:9:208:9 | a | main.rs:209:9:209:9 | a | provenance | |
142150
| main.rs:208:13:208:21 | source(...) | main.rs:208:9:208:9 | a | provenance | |
143151
| main.rs:209:9:209:9 | a | main.rs:210:9:210:9 | a | provenance | MaD:4 |
144152
| main.rs:209:14:209:22 | source(...) | main.rs:210:9:210:9 | a | provenance | MaD:3 |
145153
| main.rs:209:14:209:22 | source(...) | main.rs:210:9:210:9 | a | provenance | MaD:4 |
146154
| main.rs:210:9:210:9 | a | main.rs:211:14:211:14 | a | provenance | MaD:4 |
155+
| main.rs:210:9:210:9 | a | main.rs:212:21:212:23 | a.0 | provenance | MaD:4 |
147156
| main.rs:221:15:221:30 | source_usize(...) | main.rs:222:14:222:14 | a | provenance | MaD:23 |
148157
| main.rs:221:15:221:30 | source_usize(...) | main.rs:222:14:222:14 | a | provenance | MaD:24 |
158+
| main.rs:221:15:221:30 | source_usize(...) | main.rs:223:21:223:23 | a.0 | provenance | MaD:23 |
159+
| main.rs:221:15:221:30 | source_usize(...) | main.rs:223:21:223:23 | a.0 | provenance | MaD:24 |
160+
| main.rs:241:13:241:14 | v8 | main.rs:242:21:242:24 | v8.0 | provenance | |
161+
| main.rs:241:18:241:37 | ... << ... | main.rs:241:13:241:14 | v8 | provenance | |
162+
| main.rs:241:23:241:37 | source_usize(...) | main.rs:241:18:241:37 | ... << ... | provenance | MaD:21 |
163+
| main.rs:241:23:241:37 | source_usize(...) | main.rs:241:18:241:37 | ... << ... | provenance | MaD:22 |
149164
nodes
150165
| main.rs:12:9:12:9 | a | semmle.label | a |
151166
| main.rs:12:13:12:22 | source(...) | semmle.label | source(...) |
@@ -270,19 +285,32 @@ nodes
270285
| main.rs:178:10:178:24 | ... .neg() | semmle.label | ... .neg() |
271286
| main.rs:179:10:179:18 | source(...) | semmle.label | source(...) |
272287
| main.rs:179:10:179:24 | ... .not() | semmle.label | ... .not() |
288+
| main.rs:199:13:199:17 | mut a [Wrapping] | semmle.label | mut a [Wrapping] |
289+
| main.rs:199:36:199:61 | Wrapping(...) [Wrapping] | semmle.label | Wrapping(...) [Wrapping] |
290+
| main.rs:199:45:199:60 | ...::source(...) | semmle.label | ...::source(...) |
291+
| main.rs:201:21:201:21 | a [Wrapping] | semmle.label | a [Wrapping] |
292+
| main.rs:201:21:201:23 | a.0 | semmle.label | a.0 |
273293
| main.rs:203:9:203:9 | [post] a | semmle.label | [post] a |
274294
| main.rs:203:22:203:30 | source(...) | semmle.label | source(...) |
275295
| main.rs:204:9:204:9 | [post] a | semmle.label | [post] a |
276296
| main.rs:204:9:204:9 | a | semmle.label | a |
277297
| main.rs:205:14:205:14 | a | semmle.label | a |
298+
| main.rs:206:21:206:21 | a [Wrapping] | semmle.label | a [Wrapping] |
299+
| main.rs:206:21:206:23 | a.0 | semmle.label | a.0 |
278300
| main.rs:208:9:208:9 | a | semmle.label | a |
279301
| main.rs:208:13:208:21 | source(...) | semmle.label | source(...) |
280302
| main.rs:209:9:209:9 | a | semmle.label | a |
281303
| main.rs:209:14:209:22 | source(...) | semmle.label | source(...) |
282304
| main.rs:210:9:210:9 | a | semmle.label | a |
283305
| main.rs:211:14:211:14 | a | semmle.label | a |
306+
| main.rs:212:21:212:23 | a.0 | semmle.label | a.0 |
284307
| main.rs:221:15:221:30 | source_usize(...) | semmle.label | source_usize(...) |
285308
| main.rs:222:14:222:14 | a | semmle.label | a |
309+
| main.rs:223:21:223:23 | a.0 | semmle.label | a.0 |
310+
| main.rs:241:13:241:14 | v8 | semmle.label | v8 |
311+
| main.rs:241:18:241:37 | ... << ... | semmle.label | ... << ... |
312+
| main.rs:241:23:241:37 | source_usize(...) | semmle.label | source_usize(...) |
313+
| main.rs:242:21:242:24 | v8.0 | semmle.label | v8.0 |
286314
subpaths
287315
testFailures
288316
#select
@@ -334,7 +362,14 @@ testFailures
334362
| main.rs:176:10:176:10 | a | main.rs:175:21:175:29 | source(...) | main.rs:176:10:176:10 | a | $@ | main.rs:175:21:175:29 | source(...) | source(...) |
335363
| main.rs:178:10:178:24 | ... .neg() | main.rs:178:10:178:18 | source(...) | main.rs:178:10:178:24 | ... .neg() | $@ | main.rs:178:10:178:18 | source(...) | source(...) |
336364
| main.rs:179:10:179:24 | ... .not() | main.rs:179:10:179:18 | source(...) | main.rs:179:10:179:24 | ... .not() | $@ | main.rs:179:10:179:18 | source(...) | source(...) |
365+
| main.rs:201:21:201:23 | a.0 | main.rs:199:45:199:60 | ...::source(...) | main.rs:201:21:201:23 | a.0 | $@ | main.rs:199:45:199:60 | ...::source(...) | ...::source(...) |
337366
| main.rs:205:14:205:14 | a | main.rs:203:22:203:30 | source(...) | main.rs:205:14:205:14 | a | $@ | main.rs:203:22:203:30 | source(...) | source(...) |
367+
| main.rs:206:21:206:23 | a.0 | main.rs:199:45:199:60 | ...::source(...) | main.rs:206:21:206:23 | a.0 | $@ | main.rs:199:45:199:60 | ...::source(...) | ...::source(...) |
368+
| main.rs:206:21:206:23 | a.0 | main.rs:203:22:203:30 | source(...) | main.rs:206:21:206:23 | a.0 | $@ | main.rs:203:22:203:30 | source(...) | source(...) |
338369
| main.rs:211:14:211:14 | a | main.rs:208:13:208:21 | source(...) | main.rs:211:14:211:14 | a | $@ | main.rs:208:13:208:21 | source(...) | source(...) |
339370
| main.rs:211:14:211:14 | a | main.rs:209:14:209:22 | source(...) | main.rs:211:14:211:14 | a | $@ | main.rs:209:14:209:22 | source(...) | source(...) |
371+
| main.rs:212:21:212:23 | a.0 | main.rs:208:13:208:21 | source(...) | main.rs:212:21:212:23 | a.0 | $@ | main.rs:208:13:208:21 | source(...) | source(...) |
372+
| main.rs:212:21:212:23 | a.0 | main.rs:209:14:209:22 | source(...) | main.rs:212:21:212:23 | a.0 | $@ | main.rs:209:14:209:22 | source(...) | source(...) |
340373
| main.rs:222:14:222:14 | a | main.rs:221:15:221:30 | source_usize(...) | main.rs:222:14:222:14 | a | $@ | main.rs:221:15:221:30 | source_usize(...) | source_usize(...) |
374+
| main.rs:223:21:223:23 | a.0 | main.rs:221:15:221:30 | source_usize(...) | main.rs:223:21:223:23 | a.0 | $@ | main.rs:221:15:221:30 | source_usize(...) | source_usize(...) |
375+
| main.rs:242:21:242:24 | v8.0 | main.rs:241:23:241:37 | source_usize(...) | main.rs:242:21:242:24 | v8.0 | $@ | main.rs:241:23:241:37 | source_usize(...) | source_usize(...) |

rust/ql/test/library-tests/dataflow/taint/main.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -198,18 +198,18 @@ mod wrapping {
198198
pub fn wrapping() {
199199
let mut a: Wrapping<i64> = Wrapping(crate::source(1));
200200
sink(a); // $ MISSING: hasTaintFlow=1
201-
crate::sink(a.0); // $ MISSING: hasTaintFlow=1
201+
crate::sink(a.0); // $ hasValueFlow=1
202202

203203
a.add_assign(source(2));
204204
a.add_assign(Wrapping(crate::source(3)));
205205
sink(a); // $ hasTaintFlow=2 MISSING: hasTaintFlow=1 hasTaintFlow=3
206-
crate::sink(a.0); // $ MISSING: hasTaintFlow=1 hasTaintFlow=2 hasTaintFlow=3
206+
crate::sink(a.0); // $ hasValueFlow=1 hasTaintFlow=2 MISSING: hasTaintFlow=3
207207

208208
a = source(4);
209209
a += source(5);
210210
a += std::num::Wrapping(crate::source(6));
211211
sink(a); // $ hasTaintFlow=4 hasTaintFlow=5 MISSING: hasTaintFlow=6
212-
crate::sink(a.0); // $ MISSING: hasTaintFlow=4 hasTaintFlow=5 hasTaintFlow=6
212+
crate::sink(a.0); // $ hasTaintFlow=4 hasTaintFlow=5 MISSING: hasTaintFlow=6
213213

214214
a = source(7);
215215
a &= source(8);
@@ -220,7 +220,7 @@ mod wrapping {
220220
a = source(10);
221221
a <<= source_usize(11);
222222
sink(a); // $ hasTaintFlow=11 MISSING: hasTaintFlow=10
223-
crate::sink(a.0); // $ MISSING: hasTaintFlow=10 hasTaintFlow=11
223+
crate::sink(a.0); // $ hasTaintFlow=11 MISSING: hasTaintFlow=10
224224

225225
let b: Wrapping<i64> = Wrapping(crate::source(1));
226226
let c: Wrapping<i64> = Wrapping(crate::source(2));
@@ -239,7 +239,7 @@ mod wrapping {
239239
let v7 = b & c;
240240
crate::sink(v7.0); // $ MISSING: hasTaintFlow=1 hasTaintFlow=2
241241
let v8 = b << source_usize(3);
242-
crate::sink(v8.0); // $ MISSING: hasTaintFlow=1 hasTaintFlow=3
242+
crate::sink(v8.0); // $ hasTaintFlow=3 MISSING: hasTaintFlow=1
243243
}
244244
}
245245

0 commit comments

Comments
 (0)