Skip to content

Commit c2ee421

Browse files
committed
Rust: Add more models.
1 parent dcd016f commit c2ee421

3 files changed

Lines changed: 30 additions & 2 deletions

File tree

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
extensions:
2+
- addsTo:
3+
pack: codeql/rust-all
4+
extensible: sourceModel
5+
data:
6+
# Alloc
7+
- ["repo:https://github.com/rust-lang/libc:libc", "::free", "Argument[0]", "pointer-invalidate", "manual"]

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,9 @@ 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+
- addsTo:
13+
pack: codeql/rust-all
14+
extensible: sourceModel
15+
data:
16+
# Alloc
17+
- ["lang:alloc", "crate::alloc::dealloc", "Argument[0]", "pointer-invalidate", "manual"]

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

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ extensions:
1717
- ["lang:core", "<crate::slice::iter::Iter as crate::iter::traits::iterator::Iterator>::collect", "Argument[self].Element", "ReturnValue.Element", "value", "manual"]
1818
- ["lang:core", "<crate::slice::iter::Iter as crate::iter::traits::iterator::Iterator>::map", "Argument[self].Element", "Argument[0].Parameter[0]", "value", "manual"]
1919
- ["lang:core", "<crate::slice::iter::Iter as crate::iter::traits::iterator::Iterator>::for_each", "Argument[self].Element", "Argument[0].Parameter[0]", "value", "manual"]
20-
# ptr
20+
# Ptr
2121
- ["lang:core", "crate::ptr::read", "Argument[0].Reference", "ReturnValue", "value", "manual"]
2222
- ["lang:core", "crate::ptr::read_unaligned", "Argument[0].Reference", "ReturnValue", "value", "manual"]
2323
- ["lang:core", "crate::ptr::read_volatile", "Argument[0].Reference", "ReturnValue", "value", "manual"]
@@ -30,7 +30,22 @@ extensions:
3030
pack: codeql/rust-all
3131
extensible: sourceModel
3232
data:
33-
# Alloc
33+
# Mem
34+
- ["lang:core", "crate::mem::drop", "Argument[0]", "pointer-invalidate", "manual"]
35+
# Ptr
36+
- ["lang:core", "crate::ptr::drop_in_place", "Argument[0]", "pointer-invalidate", "manual"]
3437
- ["lang:core", "crate::ptr::dangling", "ReturnValue", "pointer-invalidate", "manual"]
3538
- ["lang:core", "crate::ptr::dangling_mut", "ReturnValue", "pointer-invalidate", "manual"]
3639
- ["lang:core", "crate::ptr::null", "ReturnValue", "pointer-invalidate", "manual"]
40+
- addsTo:
41+
pack: codeql/rust-all
42+
extensible: sinkModel
43+
data:
44+
# Ptr
45+
- ["lang:core", "crate::ptr::read", "Argument[0]", "pointer-access", "manual"]
46+
- ["lang:core", "crate::ptr::read_unaligned", "Argument[0]", "pointer-access", "manual"]
47+
- ["lang:core", "crate::ptr::read_volatile", "Argument[0]", "pointer-access", "manual"]
48+
- ["lang:core", "crate::ptr::write", "Argument[0]", "pointer-access", "manual"]
49+
- ["lang:core", "crate::ptr::write_bytes", "Argument[0]", "pointer-access", "manual"]
50+
- ["lang:core", "crate::ptr::write_unaligned", "Argument[0]", "pointer-access", "manual"]
51+
- ["lang:core", "crate::ptr::write_volatile", "Argument[0]", "pointer-access", "manual"]

0 commit comments

Comments
 (0)