Skip to content

Commit c06f340

Browse files
committed
Rust: Make str / String models consistent.
1 parent bfe9cdf commit c06f340

File tree

3 files changed

+9
-5
lines changed

3 files changed

+9
-5
lines changed

rust/ql/lib/codeql/rust/frameworks/stdlib/lang-alloc.model.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ extensions:
99
- ["lang:alloc", "<crate::string::String>::as_str", "Argument[self]", "ReturnValue", "taint", "manual"]
1010
- ["lang:alloc", "<crate::string::String>::as_bytes", "Argument[self]", "ReturnValue", "taint", "manual"]
1111
- ["lang:alloc", "<_ as crate::string::ToString>::to_string", "Argument[self]", "ReturnValue", "taint", "manual"]
12+
- ["lang:alloc", "<crate::string::String>::parse", "Argument[self]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "taint", "manual"]
13+
- ["lang:alloc", "<crate::string::String>::trim", "Argument[self]", "ReturnValue.Reference", "taint", "manual"]
1214
- addsTo:
1315
pack: codeql/rust-all
1416
extensible: sourceModel

rust/ql/lib/codeql/rust/frameworks/stdlib/lang-core.model.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,11 @@ extensions:
2525
- ["lang:core", "crate::ptr::write_unaligned", "Argument[1]", "Argument[0].Reference", "value", "manual"]
2626
- ["lang:core", "crate::ptr::write_volatile", "Argument[1]", "Argument[0].Reference", "value", "manual"]
2727
# Str
28+
- ["lang:core", "<str>::as_str", "Argument[self]", "ReturnValue", "taint", "manual"]
29+
- ["lang:core", "<str>::as_bytes", "Argument[self]", "ReturnValue", "taint", "manual"]
30+
- ["lang:core", "<str>::to_string", "Argument[self]", "ReturnValue", "taint", "manual"]
2831
- ["lang:core", "<str>::parse", "Argument[self]", "ReturnValue.Field[crate::result::Result::Ok(0)]", "taint", "manual"]
2932
- ["lang:core", "<str>::trim", "Argument[self]", "ReturnValue.Reference", "taint", "manual"]
30-
- ["lang:core", "<str>::as_bytes", "Argument[self]", "ReturnValue.Reference", "taint", "manual"]
3133
- addsTo:
3234
pack: codeql/rust-all
3335
extensible: sourceModel

rust/ql/test/query-tests/security/CWE-328/WeakSensitiveDataHashing.expected

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,13 @@ edges
3030
| test.rs:77:35:77:42 | password | test.rs:77:9:77:33 | ...::new_with_prefix | provenance | MaD:2 Sink:MaD:2 |
3131
| test.rs:81:26:81:33 | password | test.rs:81:26:81:40 | password.trim() [&ref] | provenance | MaD:5 |
3232
| test.rs:81:26:81:40 | password.trim() [&ref] | test.rs:81:9:81:24 | ...::digest | provenance | MaD:1 Sink:MaD:1 |
33-
| test.rs:83:26:83:33 | password | test.rs:83:26:83:44 | password.as_bytes() [&ref] | provenance | MaD:4 |
34-
| test.rs:83:26:83:44 | password.as_bytes() [&ref] | test.rs:83:9:83:24 | ...::digest | provenance | MaD:1 Sink:MaD:1 |
33+
| test.rs:83:26:83:33 | password | test.rs:83:26:83:44 | password.as_bytes() | provenance | MaD:4 |
34+
| test.rs:83:26:83:44 | password.as_bytes() | test.rs:83:9:83:24 | ...::digest | provenance | MaD:1 Sink:MaD:1 |
3535
models
3636
| 1 | Sink: repo:https://github.com/RustCrypto/traits:digest; <_ as crate::digest::Digest>::digest; hasher-input; Argument[0] |
3737
| 2 | Sink: repo:https://github.com/RustCrypto/traits:digest; <_ as crate::digest::Digest>::new_with_prefix; hasher-input; Argument[0] |
3838
| 3 | Sink: repo:https://github.com/stainless-steel/md5:md5; crate::compute; hasher-input; Argument[0] |
39-
| 4 | Summary: lang:core; <str>::as_bytes; Argument[self]; ReturnValue.Reference; taint |
39+
| 4 | Summary: lang:core; <str>::as_bytes; Argument[self]; ReturnValue; taint |
4040
| 5 | Summary: lang:core; <str>::trim; Argument[self]; ReturnValue.Reference; taint |
4141
nodes
4242
| test.rs:14:9:14:24 | ...::digest | semmle.label | ...::digest |
@@ -70,5 +70,5 @@ nodes
7070
| test.rs:81:26:81:40 | password.trim() [&ref] | semmle.label | password.trim() [&ref] |
7171
| test.rs:83:9:83:24 | ...::digest | semmle.label | ...::digest |
7272
| test.rs:83:26:83:33 | password | semmle.label | password |
73-
| test.rs:83:26:83:44 | password.as_bytes() [&ref] | semmle.label | password.as_bytes() [&ref] |
73+
| test.rs:83:26:83:44 | password.as_bytes() | semmle.label | password.as_bytes() |
7474
subpaths

0 commit comments

Comments
 (0)