Skip to content

Commit ec0b90f

Browse files
committed
Rust: Simplify with the Copilot suggestions.
1 parent 96a06be commit ec0b90f

File tree

2 files changed

+78
-80
lines changed

2 files changed

+78
-80
lines changed

rust/ql/test/query-tests/security/CWE-117/LogInjection.expected

Lines changed: 76 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,15 @@
99
| main.rs:30:5:30:9 | ...::log | main.rs:8:29:8:37 | ...::args | main.rs:30:5:30:9 | ...::log | Log entry depends on a $@. | main.rs:8:29:8:37 | ...::args | user-provided value |
1010
| main.rs:30:5:30:9 | ...::log | main.rs:11:23:11:44 | ...::get | main.rs:30:5:30:9 | ...::log | Log entry depends on a $@. | main.rs:11:23:11:44 | ...::get | user-provided value |
1111
| main.rs:66:5:66:9 | ...::log | main.rs:8:29:8:37 | ...::args | main.rs:66:5:66:9 | ...::log | Log entry depends on a $@. | main.rs:8:29:8:37 | ...::args | user-provided value |
12-
| main.rs:114:9:114:13 | ...::log | main.rs:111:25:111:38 | ...::args | main.rs:114:9:114:13 | ...::log | Log entry depends on a $@. | main.rs:111:25:111:38 | ...::args | user-provided value |
13-
| main.rs:115:9:115:13 | ...::log | main.rs:111:25:111:38 | ...::args | main.rs:115:9:115:13 | ...::log | Log entry depends on a $@. | main.rs:111:25:111:38 | ...::args | user-provided value |
14-
| main.rs:116:9:116:14 | ...::log | main.rs:111:25:111:38 | ...::args | main.rs:116:9:116:14 | ...::log | Log entry depends on a $@. | main.rs:111:25:111:38 | ...::args | user-provided value |
15-
| main.rs:117:9:117:14 | ...::log | main.rs:111:25:111:38 | ...::args | main.rs:117:9:117:14 | ...::log | Log entry depends on a $@. | main.rs:111:25:111:38 | ...::args | user-provided value |
16-
| main.rs:118:9:118:14 | ...::log | main.rs:111:25:111:38 | ...::args | main.rs:118:9:118:14 | ...::log | Log entry depends on a $@. | main.rs:111:25:111:38 | ...::args | user-provided value |
17-
| main.rs:121:9:121:13 | ...::log | main.rs:111:25:111:38 | ...::args | main.rs:121:9:121:13 | ...::log | Log entry depends on a $@. | main.rs:111:25:111:38 | ...::args | user-provided value |
18-
| main.rs:132:9:132:16 | ...::_print | main.rs:129:25:129:37 | ...::var | main.rs:132:9:132:16 | ...::_print | Log entry depends on a $@. | main.rs:129:25:129:37 | ...::var | user-provided value |
19-
| main.rs:133:9:133:17 | ...::_eprint | main.rs:129:25:129:37 | ...::var | main.rs:133:9:133:17 | ...::_eprint | Log entry depends on a $@. | main.rs:129:25:129:37 | ...::var | user-provided value |
20-
| main.rs:145:9:145:16 | ...::_print | main.rs:152:28:152:30 | get | main.rs:145:9:145:16 | ...::_print | Log entry depends on a $@. | main.rs:152:28:152:30 | get | user-provided value |
12+
| main.rs:112:9:112:13 | ...::log | main.rs:109:25:109:38 | ...::args | main.rs:112:9:112:13 | ...::log | Log entry depends on a $@. | main.rs:109:25:109:38 | ...::args | user-provided value |
13+
| main.rs:113:9:113:13 | ...::log | main.rs:109:25:109:38 | ...::args | main.rs:113:9:113:13 | ...::log | Log entry depends on a $@. | main.rs:109:25:109:38 | ...::args | user-provided value |
14+
| main.rs:114:9:114:14 | ...::log | main.rs:109:25:109:38 | ...::args | main.rs:114:9:114:14 | ...::log | Log entry depends on a $@. | main.rs:109:25:109:38 | ...::args | user-provided value |
15+
| main.rs:115:9:115:14 | ...::log | main.rs:109:25:109:38 | ...::args | main.rs:115:9:115:14 | ...::log | Log entry depends on a $@. | main.rs:109:25:109:38 | ...::args | user-provided value |
16+
| main.rs:116:9:116:14 | ...::log | main.rs:109:25:109:38 | ...::args | main.rs:116:9:116:14 | ...::log | Log entry depends on a $@. | main.rs:109:25:109:38 | ...::args | user-provided value |
17+
| main.rs:119:9:119:13 | ...::log | main.rs:109:25:109:38 | ...::args | main.rs:119:9:119:13 | ...::log | Log entry depends on a $@. | main.rs:109:25:109:38 | ...::args | user-provided value |
18+
| main.rs:130:9:130:16 | ...::_print | main.rs:127:25:127:37 | ...::var | main.rs:130:9:130:16 | ...::_print | Log entry depends on a $@. | main.rs:127:25:127:37 | ...::var | user-provided value |
19+
| main.rs:131:9:131:17 | ...::_eprint | main.rs:127:25:127:37 | ...::var | main.rs:131:9:131:17 | ...::_eprint | Log entry depends on a $@. | main.rs:127:25:127:37 | ...::var | user-provided value |
20+
| main.rs:143:9:143:16 | ...::_print | main.rs:150:28:150:30 | get | main.rs:143:9:143:16 | ...::_print | Log entry depends on a $@. | main.rs:150:28:150:30 | get | user-provided value |
2121
edges
2222
| main.rs:8:9:8:12 | args [element] | main.rs:9:20:9:23 | args [element] | provenance | |
2323
| main.rs:8:29:8:37 | ...::args | main.rs:8:29:8:39 | ...::args(...) [element] | provenance | Src:MaD:6 |
@@ -72,39 +72,39 @@ edges
7272
| main.rs:66:11:66:41 | MacroExpr | main.rs:66:5:66:9 | ...::log | provenance | MaD:1 Sink:MaD:1 |
7373
| main.rs:66:28:66:36 | user_info [UserInfo] | main.rs:66:28:66:41 | user_info.name | provenance | |
7474
| main.rs:66:28:66:41 | user_info.name | main.rs:66:11:66:41 | MacroExpr | provenance | |
75-
| main.rs:111:13:111:21 | user_data | main.rs:114:15:114:35 | MacroExpr | provenance | |
76-
| main.rs:111:13:111:21 | user_data | main.rs:115:15:115:38 | MacroExpr | provenance | |
77-
| main.rs:111:13:111:21 | user_data | main.rs:116:16:116:37 | MacroExpr | provenance | |
78-
| main.rs:111:13:111:21 | user_data | main.rs:117:16:117:37 | MacroExpr | provenance | |
79-
| main.rs:111:13:111:21 | user_data | main.rs:118:16:118:37 | MacroExpr | provenance | |
80-
| main.rs:111:13:111:21 | user_data | main.rs:121:15:121:75 | MacroExpr | provenance | |
81-
| main.rs:111:25:111:38 | ...::args | main.rs:111:25:111:40 | ...::args(...) [element] | provenance | Src:MaD:6 |
82-
| main.rs:111:25:111:40 | ...::args(...) [element] | main.rs:111:25:111:47 | ... .nth(...) [Some] | provenance | MaD:11 |
83-
| main.rs:111:25:111:47 | ... .nth(...) [Some] | main.rs:111:25:111:67 | ... .unwrap_or_default() | provenance | MaD:17 |
84-
| main.rs:111:25:111:67 | ... .unwrap_or_default() | main.rs:111:13:111:21 | user_data | provenance | |
85-
| main.rs:114:15:114:35 | MacroExpr | main.rs:114:9:114:13 | ...::log | provenance | MaD:1 Sink:MaD:1 |
86-
| main.rs:115:15:115:38 | MacroExpr | main.rs:115:9:115:13 | ...::log | provenance | MaD:1 Sink:MaD:1 |
75+
| main.rs:109:13:109:21 | user_data | main.rs:112:15:112:35 | MacroExpr | provenance | |
76+
| main.rs:109:13:109:21 | user_data | main.rs:113:15:113:38 | MacroExpr | provenance | |
77+
| main.rs:109:13:109:21 | user_data | main.rs:114:16:114:37 | MacroExpr | provenance | |
78+
| main.rs:109:13:109:21 | user_data | main.rs:115:16:115:37 | MacroExpr | provenance | |
79+
| main.rs:109:13:109:21 | user_data | main.rs:116:16:116:37 | MacroExpr | provenance | |
80+
| main.rs:109:13:109:21 | user_data | main.rs:119:15:119:75 | MacroExpr | provenance | |
81+
| main.rs:109:25:109:38 | ...::args | main.rs:109:25:109:40 | ...::args(...) [element] | provenance | Src:MaD:6 |
82+
| main.rs:109:25:109:40 | ...::args(...) [element] | main.rs:109:25:109:47 | ... .nth(...) [Some] | provenance | MaD:11 |
83+
| main.rs:109:25:109:47 | ... .nth(...) [Some] | main.rs:109:25:109:67 | ... .unwrap_or_default() | provenance | MaD:17 |
84+
| main.rs:109:25:109:67 | ... .unwrap_or_default() | main.rs:109:13:109:21 | user_data | provenance | |
85+
| main.rs:112:15:112:35 | MacroExpr | main.rs:112:9:112:13 | ...::log | provenance | MaD:1 Sink:MaD:1 |
86+
| main.rs:113:15:113:38 | MacroExpr | main.rs:113:9:113:13 | ...::log | provenance | MaD:1 Sink:MaD:1 |
87+
| main.rs:114:16:114:37 | MacroExpr | main.rs:114:9:114:14 | ...::log | provenance | MaD:1 Sink:MaD:1 |
88+
| main.rs:115:16:115:37 | MacroExpr | main.rs:115:9:115:14 | ...::log | provenance | MaD:1 Sink:MaD:1 |
8789
| main.rs:116:16:116:37 | MacroExpr | main.rs:116:9:116:14 | ...::log | provenance | MaD:1 Sink:MaD:1 |
88-
| main.rs:117:16:117:37 | MacroExpr | main.rs:117:9:117:14 | ...::log | provenance | MaD:1 Sink:MaD:1 |
89-
| main.rs:118:16:118:37 | MacroExpr | main.rs:118:9:118:14 | ...::log | provenance | MaD:1 Sink:MaD:1 |
90-
| main.rs:121:15:121:75 | MacroExpr | main.rs:121:9:121:13 | ...::log | provenance | MaD:1 Sink:MaD:1 |
91-
| main.rs:129:13:129:21 | user_data | main.rs:132:18:132:38 | MacroExpr | provenance | |
92-
| main.rs:129:13:129:21 | user_data | main.rs:133:19:133:49 | MacroExpr | provenance | |
93-
| main.rs:129:25:129:37 | ...::var | main.rs:129:25:129:45 | ...::var(...) [Ok] | provenance | Src:MaD:7 |
94-
| main.rs:129:25:129:45 | ...::var(...) [Ok] | main.rs:129:25:129:65 | ... .unwrap_or_default() | provenance | MaD:20 |
95-
| main.rs:129:25:129:65 | ... .unwrap_or_default() | main.rs:129:13:129:21 | user_data | provenance | |
96-
| main.rs:132:18:132:38 | MacroExpr | main.rs:132:9:132:16 | ...::_print | provenance | MaD:3 Sink:MaD:3 |
97-
| main.rs:133:19:133:49 | MacroExpr | main.rs:133:9:133:17 | ...::_eprint | provenance | MaD:2 Sink:MaD:2 |
98-
| main.rs:142:32:142:59 | ...: Option::<...> | main.rs:143:22:143:27 | o_path | provenance | |
99-
| main.rs:143:13:143:18 | m_path | main.rs:145:26:145:31 | m_path | provenance | |
100-
| main.rs:143:22:143:27 | o_path | main.rs:143:22:143:38 | o_path.map(...) | provenance | MaD:14 |
101-
| main.rs:143:22:143:27 | o_path | main.rs:143:34:143:34 | ... | provenance | MaD:14 |
102-
| main.rs:143:22:143:38 | o_path.map(...) | main.rs:143:13:143:18 | m_path | provenance | |
103-
| main.rs:143:34:143:34 | ... | main.rs:143:37:143:37 | x | provenance | |
104-
| main.rs:145:18:145:40 | MacroExpr | main.rs:145:9:145:16 | ...::_print | provenance | MaD:3 Sink:MaD:3 |
105-
| main.rs:145:26:145:31 | m_path | main.rs:145:26:145:40 | m_path.unwrap() | provenance | MaD:15 |
106-
| main.rs:145:26:145:40 | m_path.unwrap() | main.rs:145:18:145:40 | MacroExpr | provenance | |
107-
| main.rs:152:28:152:30 | get | main.rs:142:32:142:59 | ...: Option::<...> | provenance | Src:MaD:4 |
90+
| main.rs:119:15:119:75 | MacroExpr | main.rs:119:9:119:13 | ...::log | provenance | MaD:1 Sink:MaD:1 |
91+
| main.rs:127:13:127:21 | user_data | main.rs:130:18:130:38 | MacroExpr | provenance | |
92+
| main.rs:127:13:127:21 | user_data | main.rs:131:19:131:49 | MacroExpr | provenance | |
93+
| main.rs:127:25:127:37 | ...::var | main.rs:127:25:127:45 | ...::var(...) [Ok] | provenance | Src:MaD:7 |
94+
| main.rs:127:25:127:45 | ...::var(...) [Ok] | main.rs:127:25:127:65 | ... .unwrap_or_default() | provenance | MaD:20 |
95+
| main.rs:127:25:127:65 | ... .unwrap_or_default() | main.rs:127:13:127:21 | user_data | provenance | |
96+
| main.rs:130:18:130:38 | MacroExpr | main.rs:130:9:130:16 | ...::_print | provenance | MaD:3 Sink:MaD:3 |
97+
| main.rs:131:19:131:49 | MacroExpr | main.rs:131:9:131:17 | ...::_eprint | provenance | MaD:2 Sink:MaD:2 |
98+
| main.rs:140:32:140:59 | ...: Option::<...> | main.rs:141:22:141:27 | o_path | provenance | |
99+
| main.rs:141:13:141:18 | m_path | main.rs:143:26:143:31 | m_path | provenance | |
100+
| main.rs:141:22:141:27 | o_path | main.rs:141:22:141:38 | o_path.map(...) | provenance | MaD:14 |
101+
| main.rs:141:22:141:27 | o_path | main.rs:141:34:141:34 | ... | provenance | MaD:14 |
102+
| main.rs:141:22:141:38 | o_path.map(...) | main.rs:141:13:141:18 | m_path | provenance | |
103+
| main.rs:141:34:141:34 | ... | main.rs:141:37:141:37 | x | provenance | |
104+
| main.rs:143:18:143:40 | MacroExpr | main.rs:143:9:143:16 | ...::_print | provenance | MaD:3 Sink:MaD:3 |
105+
| main.rs:143:26:143:31 | m_path | main.rs:143:26:143:40 | m_path.unwrap() | provenance | MaD:15 |
106+
| main.rs:143:26:143:40 | m_path.unwrap() | main.rs:143:18:143:40 | MacroExpr | provenance | |
107+
| main.rs:150:28:150:30 | get | main.rs:140:32:140:59 | ...: Option::<...> | provenance | Src:MaD:4 |
108108
models
109109
| 1 | Sink: log::__private_api::log; Argument[0]; log-injection |
110110
| 2 | Sink: std::io::stdio::_eprint; Argument[0]; log-injection |
@@ -185,41 +185,41 @@ nodes
185185
| main.rs:66:11:66:41 | MacroExpr | semmle.label | MacroExpr |
186186
| main.rs:66:28:66:36 | user_info [UserInfo] | semmle.label | user_info [UserInfo] |
187187
| main.rs:66:28:66:41 | user_info.name | semmle.label | user_info.name |
188-
| main.rs:111:13:111:21 | user_data | semmle.label | user_data |
189-
| main.rs:111:25:111:38 | ...::args | semmle.label | ...::args |
190-
| main.rs:111:25:111:40 | ...::args(...) [element] | semmle.label | ...::args(...) [element] |
191-
| main.rs:111:25:111:47 | ... .nth(...) [Some] | semmle.label | ... .nth(...) [Some] |
192-
| main.rs:111:25:111:67 | ... .unwrap_or_default() | semmle.label | ... .unwrap_or_default() |
193-
| main.rs:114:9:114:13 | ...::log | semmle.label | ...::log |
194-
| main.rs:114:15:114:35 | MacroExpr | semmle.label | MacroExpr |
195-
| main.rs:115:9:115:13 | ...::log | semmle.label | ...::log |
196-
| main.rs:115:15:115:38 | MacroExpr | semmle.label | MacroExpr |
188+
| main.rs:109:13:109:21 | user_data | semmle.label | user_data |
189+
| main.rs:109:25:109:38 | ...::args | semmle.label | ...::args |
190+
| main.rs:109:25:109:40 | ...::args(...) [element] | semmle.label | ...::args(...) [element] |
191+
| main.rs:109:25:109:47 | ... .nth(...) [Some] | semmle.label | ... .nth(...) [Some] |
192+
| main.rs:109:25:109:67 | ... .unwrap_or_default() | semmle.label | ... .unwrap_or_default() |
193+
| main.rs:112:9:112:13 | ...::log | semmle.label | ...::log |
194+
| main.rs:112:15:112:35 | MacroExpr | semmle.label | MacroExpr |
195+
| main.rs:113:9:113:13 | ...::log | semmle.label | ...::log |
196+
| main.rs:113:15:113:38 | MacroExpr | semmle.label | MacroExpr |
197+
| main.rs:114:9:114:14 | ...::log | semmle.label | ...::log |
198+
| main.rs:114:16:114:37 | MacroExpr | semmle.label | MacroExpr |
199+
| main.rs:115:9:115:14 | ...::log | semmle.label | ...::log |
200+
| main.rs:115:16:115:37 | MacroExpr | semmle.label | MacroExpr |
197201
| main.rs:116:9:116:14 | ...::log | semmle.label | ...::log |
198202
| main.rs:116:16:116:37 | MacroExpr | semmle.label | MacroExpr |
199-
| main.rs:117:9:117:14 | ...::log | semmle.label | ...::log |
200-
| main.rs:117:16:117:37 | MacroExpr | semmle.label | MacroExpr |
201-
| main.rs:118:9:118:14 | ...::log | semmle.label | ...::log |
202-
| main.rs:118:16:118:37 | MacroExpr | semmle.label | MacroExpr |
203-
| main.rs:121:9:121:13 | ...::log | semmle.label | ...::log |
204-
| main.rs:121:15:121:75 | MacroExpr | semmle.label | MacroExpr |
205-
| main.rs:129:13:129:21 | user_data | semmle.label | user_data |
206-
| main.rs:129:25:129:37 | ...::var | semmle.label | ...::var |
207-
| main.rs:129:25:129:45 | ...::var(...) [Ok] | semmle.label | ...::var(...) [Ok] |
208-
| main.rs:129:25:129:65 | ... .unwrap_or_default() | semmle.label | ... .unwrap_or_default() |
209-
| main.rs:132:9:132:16 | ...::_print | semmle.label | ...::_print |
210-
| main.rs:132:18:132:38 | MacroExpr | semmle.label | MacroExpr |
211-
| main.rs:133:9:133:17 | ...::_eprint | semmle.label | ...::_eprint |
212-
| main.rs:133:19:133:49 | MacroExpr | semmle.label | MacroExpr |
213-
| main.rs:142:32:142:59 | ...: Option::<...> | semmle.label | ...: Option::<...> |
214-
| main.rs:143:13:143:18 | m_path | semmle.label | m_path |
215-
| main.rs:143:22:143:27 | o_path | semmle.label | o_path |
216-
| main.rs:143:22:143:38 | o_path.map(...) | semmle.label | o_path.map(...) |
217-
| main.rs:143:34:143:34 | ... | semmle.label | ... |
218-
| main.rs:143:37:143:37 | x | semmle.label | x |
219-
| main.rs:145:9:145:16 | ...::_print | semmle.label | ...::_print |
220-
| main.rs:145:18:145:40 | MacroExpr | semmle.label | MacroExpr |
221-
| main.rs:145:26:145:31 | m_path | semmle.label | m_path |
222-
| main.rs:145:26:145:40 | m_path.unwrap() | semmle.label | m_path.unwrap() |
223-
| main.rs:152:28:152:30 | get | semmle.label | get |
203+
| main.rs:119:9:119:13 | ...::log | semmle.label | ...::log |
204+
| main.rs:119:15:119:75 | MacroExpr | semmle.label | MacroExpr |
205+
| main.rs:127:13:127:21 | user_data | semmle.label | user_data |
206+
| main.rs:127:25:127:37 | ...::var | semmle.label | ...::var |
207+
| main.rs:127:25:127:45 | ...::var(...) [Ok] | semmle.label | ...::var(...) [Ok] |
208+
| main.rs:127:25:127:65 | ... .unwrap_or_default() | semmle.label | ... .unwrap_or_default() |
209+
| main.rs:130:9:130:16 | ...::_print | semmle.label | ...::_print |
210+
| main.rs:130:18:130:38 | MacroExpr | semmle.label | MacroExpr |
211+
| main.rs:131:9:131:17 | ...::_eprint | semmle.label | ...::_eprint |
212+
| main.rs:131:19:131:49 | MacroExpr | semmle.label | MacroExpr |
213+
| main.rs:140:32:140:59 | ...: Option::<...> | semmle.label | ...: Option::<...> |
214+
| main.rs:141:13:141:18 | m_path | semmle.label | m_path |
215+
| main.rs:141:22:141:27 | o_path | semmle.label | o_path |
216+
| main.rs:141:22:141:38 | o_path.map(...) | semmle.label | o_path.map(...) |
217+
| main.rs:141:34:141:34 | ... | semmle.label | ... |
218+
| main.rs:141:37:141:37 | x | semmle.label | x |
219+
| main.rs:143:9:143:16 | ...::_print | semmle.label | ...::_print |
220+
| main.rs:143:18:143:40 | MacroExpr | semmle.label | MacroExpr |
221+
| main.rs:143:26:143:31 | m_path | semmle.label | m_path |
222+
| main.rs:143:26:143:40 | m_path.unwrap() | semmle.label | m_path.unwrap() |
223+
| main.rs:150:28:150:30 | get | semmle.label | get |
224224
subpaths
225-
| main.rs:143:22:143:27 | o_path | main.rs:143:34:143:34 | ... | main.rs:143:37:143:37 | x | main.rs:143:22:143:38 | o_path.map(...) |
225+
| main.rs:141:22:141:27 | o_path | main.rs:141:34:141:34 | ... | main.rs:141:37:141:37 | x | main.rs:141:22:141:38 | o_path.map(...) |

rust/ql/test/query-tests/security/CWE-117/main.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -101,8 +101,6 @@ fn test_indirect_flows(data: &str) {
101101
}
102102
}
103103

104-
extern crate alloc;
105-
106104
// Additional test patterns for different logging scenarios
107105
mod additional_tests {
108106
use log::*;
@@ -135,8 +133,8 @@ mod additional_tests {
135133
}
136134

137135
mod axum_tests {
138-
use axum::extract::{Json, Path, Query, Request};
139-
use axum::routing::{get, post, put, MethodFilter};
136+
use axum::extract::Path;
137+
use axum::routing::get;
140138
use axum::Router;
141139

142140
async fn my_axum_handler_1(o_path: Option<Path<String>>) -> &'static str {

0 commit comments

Comments
 (0)