Skip to content

Commit 6a137d8

Browse files
committed
Rust: Test direct calls to std::fmt::format and alloc::fmt::format.
1 parent bebb9f5 commit 6a137d8

2 files changed

Lines changed: 23 additions & 5 deletions

File tree

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

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ edges
3939
| main.rs:65:16:65:16 | s | main.rs:65:16:65:25 | s.as_str() | provenance | MaD:6 |
4040
| main.rs:69:9:69:9 | s | main.rs:71:34:71:61 | MacroExpr | provenance | |
4141
| main.rs:69:9:69:9 | s | main.rs:74:34:74:59 | MacroExpr | provenance | |
42+
| main.rs:69:9:69:9 | s | main.rs:81:39:81:64 | MacroExpr | provenance | |
43+
| main.rs:69:9:69:9 | s | main.rs:84:41:84:66 | MacroExpr | provenance | |
4244
| main.rs:69:13:69:22 | source(...) | main.rs:69:9:69:9 | s | provenance | |
4345
| main.rs:71:9:71:18 | formatted1 | main.rs:72:10:72:19 | formatted1 | provenance | |
4446
| main.rs:71:22:71:62 | ...::format(...) | main.rs:71:9:71:18 | formatted1 | provenance | |
@@ -51,6 +53,12 @@ edges
5153
| main.rs:78:9:78:18 | formatted3 | main.rs:79:10:79:19 | formatted3 | provenance | |
5254
| main.rs:78:22:78:75 | ...::format(...) | main.rs:78:9:78:18 | formatted3 | provenance | |
5355
| main.rs:78:34:78:74 | MacroExpr | main.rs:78:22:78:75 | ...::format(...) | provenance | MaD:7 |
56+
| main.rs:81:9:81:18 | formatted4 | main.rs:82:10:82:19 | formatted4 | provenance | |
57+
| main.rs:81:22:81:65 | ...::format(...) | main.rs:81:9:81:18 | formatted4 | provenance | |
58+
| main.rs:81:39:81:64 | MacroExpr | main.rs:81:22:81:65 | ...::format(...) | provenance | MaD:7 |
59+
| main.rs:84:9:84:18 | formatted5 | main.rs:85:10:85:19 | formatted5 | provenance | |
60+
| main.rs:84:22:84:67 | ...::format(...) | main.rs:84:9:84:18 | formatted5 | provenance | |
61+
| main.rs:84:41:84:66 | MacroExpr | main.rs:84:22:84:67 | ...::format(...) | provenance | MaD:7 |
5462
| main.rs:89:9:89:10 | s1 | main.rs:93:18:93:25 | MacroExpr | provenance | |
5563
| main.rs:89:9:89:10 | s1 | main.rs:94:18:94:32 | MacroExpr | provenance | |
5664
| main.rs:89:14:89:23 | source(...) | main.rs:89:9:89:10 | s1 | provenance | |
@@ -113,6 +121,14 @@ nodes
113121
| main.rs:78:22:78:75 | ...::format(...) | semmle.label | ...::format(...) |
114122
| main.rs:78:34:78:74 | MacroExpr | semmle.label | MacroExpr |
115123
| main.rs:79:10:79:19 | formatted3 | semmle.label | formatted3 |
124+
| main.rs:81:9:81:18 | formatted4 | semmle.label | formatted4 |
125+
| main.rs:81:22:81:65 | ...::format(...) | semmle.label | ...::format(...) |
126+
| main.rs:81:39:81:64 | MacroExpr | semmle.label | MacroExpr |
127+
| main.rs:82:10:82:19 | formatted4 | semmle.label | formatted4 |
128+
| main.rs:84:9:84:18 | formatted5 | semmle.label | formatted5 |
129+
| main.rs:84:22:84:67 | ...::format(...) | semmle.label | ...::format(...) |
130+
| main.rs:84:41:84:66 | MacroExpr | semmle.label | MacroExpr |
131+
| main.rs:85:10:85:19 | formatted5 | semmle.label | formatted5 |
116132
| main.rs:89:9:89:10 | s1 | semmle.label | s1 |
117133
| main.rs:89:14:89:23 | source(...) | semmle.label | source(...) |
118134
| main.rs:93:10:93:26 | MacroExpr | semmle.label | MacroExpr |
@@ -137,5 +153,7 @@ testFailures
137153
| main.rs:72:10:72:19 | formatted1 | main.rs:69:13:69:22 | source(...) | main.rs:72:10:72:19 | formatted1 | $@ | main.rs:69:13:69:22 | source(...) | source(...) |
138154
| main.rs:75:10:75:19 | formatted2 | main.rs:69:13:69:22 | source(...) | main.rs:75:10:75:19 | formatted2 | $@ | main.rs:69:13:69:22 | source(...) | source(...) |
139155
| main.rs:79:10:79:19 | formatted3 | main.rs:77:17:77:32 | source_usize(...) | main.rs:79:10:79:19 | formatted3 | $@ | main.rs:77:17:77:32 | source_usize(...) | source_usize(...) |
156+
| main.rs:82:10:82:19 | formatted4 | main.rs:69:13:69:22 | source(...) | main.rs:82:10:82:19 | formatted4 | $@ | main.rs:69:13:69:22 | source(...) | source(...) |
157+
| main.rs:85:10:85:19 | formatted5 | main.rs:69:13:69:22 | source(...) | main.rs:85:10:85:19 | formatted5 | $@ | main.rs:69:13:69:22 | source(...) | source(...) |
140158
| main.rs:93:10:93:26 | MacroExpr | main.rs:89:14:89:23 | source(...) | main.rs:93:10:93:26 | MacroExpr | $@ | main.rs:89:14:89:23 | source(...) | source(...) |
141159
| main.rs:94:10:94:33 | MacroExpr | main.rs:89:14:89:23 | source(...) | main.rs:94:10:94:33 | MacroExpr | $@ | main.rs:89:14:89:23 | source(...) | source(...) |

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use std::fmt;
2-
2+
extern crate alloc;
33

44
// Taint tests for strings
55

@@ -78,11 +78,11 @@ fn format_args_built_in() {
7878
let formatted3 = fmt::format(format_args!("Hello {:width$}!", "World"));
7979
sink(formatted3); // $ hasTaintFlow=10
8080

81+
let formatted4 = std::fmt::format(format_args!("Hello {s}!"));
82+
sink(formatted4); // $ hasTaintFlow=88
8183

82-
83-
84-
85-
84+
let formatted5 = alloc::fmt::format(format_args!("Hello {s}!"));
85+
sink(formatted5); // $ hasTaintFlow=88
8686
}
8787

8888
fn format_macro() {

0 commit comments

Comments
 (0)