Skip to content

Commit a1980d4

Browse files
committed
Rust: Make sources more accurate (Option / Result contents).
1 parent 78d0c5c commit a1980d4

File tree

2 files changed

+8
-8
lines changed

2 files changed

+8
-8
lines changed

rust/ql/lib/codeql/rust/frameworks/stdlib/env.model.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ extensions:
55
data:
66
- ["lang:std", "crate::env::args", "ReturnValue", "command-line-source", "manual"]
77
- ["lang:std", "crate::env::args_os", "ReturnValue", "command-line-source", "manual"]
8-
- ["lang:std", "crate::env::current_dir", "ReturnValue", "command-line-source", "manual"]
9-
- ["lang:std", "crate::env::current_exe", "ReturnValue", "command-line-source", "manual"]
10-
- ["lang:std", "crate::env::home_dir", "ReturnValue", "command-line-source", "manual"]
11-
- ["lang:std", "crate::env::var", "ReturnValue", "environment-source", "manual"]
12-
- ["lang:std", "crate::env::var_os", "ReturnValue", "environment-source", "manual"]
8+
- ["lang:std", "crate::env::current_dir", "ReturnValue.Variant[crate::result::Result::Ok(0)]", "command-line-source", "manual"]
9+
- ["lang:std", "crate::env::current_exe", "ReturnValue.Variant[crate::result::Result::Ok(0)]", "command-line-source", "manual"]
10+
- ["lang:std", "crate::env::home_dir", "ReturnValue.Variant[crate::option::Option::Some(0)]", "command-line-source", "manual"]
11+
- ["lang:std", "crate::env::var", "ReturnValue.Variant[crate::result::Result::Ok(0)]", "environment-source", "manual"]
12+
- ["lang:std", "crate::env::var_os", "ReturnValue.Variant[crate::option::Option::Some(0)]", "environment-source", "manual"]
1313
- ["lang:std", "crate::env::vars", "ReturnValue", "environment-source", "manual"]
1414
- ["lang:std", "crate::env::vars_os", "ReturnValue", "environment-source", "manual"]

rust/ql/test/library-tests/dataflow/sources/test.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@ fn sink<T>(_: T) { }
55
// --- tests ---
66

77
fn test_env_vars() {
8-
sink(std::env::var("HOME")); // $ Alert[rust/summary/taint-sources] hasTaintFlow="HOME"
9-
sink(std::env::var_os("PATH")); // $ Alert[rust/summary/taint-sources] hasTaintFlow="PATH"
8+
sink(std::env::var("HOME")); // $ Alert[rust/summary/taint-sources] MISSING: hasTaintFlow
9+
sink(std::env::var_os("PATH")); // $ Alert[rust/summary/taint-sources] MISSING: hasTaintFlow
1010

1111
let var1 = std::env::var("HOME").expect("HOME not set"); // $ Alert[rust/summary/taint-sources]
1212
let var2 = std::env::var_os("PATH").unwrap(); // $ Alert[rust/summary/taint-sources]
1313

1414
sink(var1); // $ MISSING: hasTaintFlow
15-
sink(var2); // $ MISSING: hasTaintFlow
15+
sink(var2); // $ hasTaintFlow="PATH"
1616

1717
for (key, value) in std::env::vars() { // $ Alert[rust/summary/taint-sources]
1818
sink(key); // $ MISSING: hasTaintFlow

0 commit comments

Comments
 (0)