Skip to content

Commit c5457d3

Browse files
committed
Add (failing) test for MaD barrier guard
1 parent 2f0d328 commit c5457d3

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ edges
44
| main.rs:21:13:21:21 | source(...) | main.rs:21:9:21:9 | s | provenance | |
55
| main.rs:32:9:32:9 | s | main.rs:33:10:33:10 | s | provenance | |
66
| main.rs:32:13:32:21 | source(...) | main.rs:32:9:32:9 | s | provenance | |
7+
| main.rs:44:9:44:9 | s | main.rs:46:14:46:14 | s | provenance | |
8+
| main.rs:44:13:44:21 | source(...) | main.rs:44:9:44:9 | s | provenance | |
79
nodes
810
| main.rs:17:10:17:18 | source(...) | semmle.label | source(...) |
911
| main.rs:21:9:21:9 | s | semmle.label | s |
@@ -12,9 +14,13 @@ nodes
1214
| main.rs:32:9:32:9 | s | semmle.label | s |
1315
| main.rs:32:13:32:21 | source(...) | semmle.label | source(...) |
1416
| main.rs:33:10:33:10 | s | semmle.label | s |
17+
| main.rs:44:9:44:9 | s | semmle.label | s |
18+
| main.rs:44:13:44:21 | source(...) | semmle.label | source(...) |
19+
| main.rs:46:14:46:14 | s | semmle.label | s |
1520
subpaths
1621
testFailures
1722
#select
1823
| main.rs:17:10:17:18 | source(...) | main.rs:17:10:17:18 | source(...) | main.rs:17:10:17:18 | source(...) | $@ | main.rs:17:10:17:18 | source(...) | source(...) |
1924
| main.rs:22:10:22:10 | s | main.rs:21:13:21:21 | source(...) | main.rs:22:10:22:10 | s | $@ | main.rs:21:13:21:21 | source(...) | source(...) |
2025
| main.rs:33:10:33:10 | s | main.rs:32:13:32:21 | source(...) | main.rs:33:10:33:10 | s | $@ | main.rs:32:13:32:21 | source(...) | source(...) |
26+
| main.rs:46:14:46:14 | s | main.rs:44:13:44:21 | source(...) | main.rs:46:14:46:14 | s | $@ | main.rs:44:13:44:21 | source(...) | source(...) |

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

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,3 +32,17 @@ fn main() {
3232
let s = source(1);
3333
sink(s); // $ hasValueFlow=1
3434
}
35+
36+
fn verify_safe(s: &str) -> bool {
37+
match s {
38+
"dangerous" => false,
39+
_ => true,
40+
}
41+
}
42+
43+
fn with_barrier_guard() {
44+
let s = source(1);
45+
if verify_safe(s) {
46+
sink(s); // $ SPURIOUS: hasValueFlow=1
47+
}
48+
}

0 commit comments

Comments
 (0)