mirror of
https://github.com/github/codeql.git
synced 2026-04-26 17:25:19 +02:00
Rust: Update variable name in examples.
This commit is contained in:
@@ -7,12 +7,12 @@ fn get_pointer() -> *const i64 {
|
||||
|
||||
fn example() {
|
||||
let ptr = get_pointer();
|
||||
let val;
|
||||
let dereferenced_ptr;
|
||||
|
||||
// ...
|
||||
|
||||
unsafe {
|
||||
val = *ptr; // BAD: dereferences `ptr` after the lifetime of `val` has ended
|
||||
dereferenced_ptr = *ptr; // BAD: dereferences `ptr` after the lifetime of `val` has ended
|
||||
}
|
||||
|
||||
// ...
|
||||
|
||||
@@ -7,11 +7,11 @@ fn get_box() -> Box<i64> {
|
||||
|
||||
fn example() {
|
||||
let ptr = get_box();
|
||||
let val;
|
||||
let dereferenced_ptr;
|
||||
|
||||
// ...
|
||||
|
||||
val = *ptr; // GOOD
|
||||
dereferenced_ptr = *ptr; // GOOD
|
||||
|
||||
// ...
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
| lifetime.rs:667:14:667:17 | ref1 | lifetime.rs:654:31:654:35 | &str1 | lifetime.rs:667:14:667:17 | ref1 | Access of a pointer to $@ after its lifetime has ended. | lifetime.rs:653:8:653:11 | str1 | str1 |
|
||||
| lifetime.rs:667:14:667:17 | ref1 | lifetime.rs:655:11:655:25 | &raw const str2 | lifetime.rs:667:14:667:17 | ref1 | Access of a pointer to $@ after its lifetime has ended. | lifetime.rs:651:7:651:10 | str2 | str2 |
|
||||
| lifetime.rs:789:12:789:13 | p1 | lifetime.rs:781:9:781:19 | &my_local10 | lifetime.rs:789:12:789:13 | p1 | Access of a pointer to $@ after its lifetime has ended. | lifetime.rs:779:6:779:15 | my_local10 | my_local10 |
|
||||
| lifetime.rs:808:10:808:12 | ptr | lifetime.rs:798:9:798:12 | &val | lifetime.rs:808:10:808:12 | ptr | Access of a pointer to $@ after its lifetime has ended. | lifetime.rs:796:6:796:8 | val | val |
|
||||
| lifetime.rs:808:23:808:25 | ptr | lifetime.rs:798:9:798:12 | &val | lifetime.rs:808:23:808:25 | ptr | Access of a pointer to $@ after its lifetime has ended. | lifetime.rs:796:6:796:8 | val | val |
|
||||
edges
|
||||
| deallocation.rs:148:6:148:7 | p1 | deallocation.rs:151:14:151:15 | p1 | provenance | |
|
||||
| deallocation.rs:148:6:148:7 | p1 | deallocation.rs:158:14:158:15 | p1 | provenance | |
|
||||
@@ -201,7 +201,7 @@ edges
|
||||
| lifetime.rs:785:11:785:41 | get_local_for_unsafe_function(...) | lifetime.rs:785:6:785:7 | p1 | provenance | |
|
||||
| lifetime.rs:798:2:798:12 | return ... | lifetime.rs:802:12:802:24 | get_pointer(...) | provenance | |
|
||||
| lifetime.rs:798:9:798:12 | &val | lifetime.rs:798:2:798:12 | return ... | provenance | |
|
||||
| lifetime.rs:802:6:802:8 | ptr | lifetime.rs:808:10:808:12 | ptr | provenance | |
|
||||
| lifetime.rs:802:6:802:8 | ptr | lifetime.rs:808:23:808:25 | ptr | provenance | |
|
||||
| lifetime.rs:802:12:802:24 | get_pointer(...) | lifetime.rs:802:6:802:8 | ptr | provenance | |
|
||||
models
|
||||
| 1 | Summary: lang:core; crate::ptr::from_ref; Argument[0]; ReturnValue; value |
|
||||
@@ -418,5 +418,5 @@ nodes
|
||||
| lifetime.rs:798:9:798:12 | &val | semmle.label | &val |
|
||||
| lifetime.rs:802:6:802:8 | ptr | semmle.label | ptr |
|
||||
| lifetime.rs:802:12:802:24 | get_pointer(...) | semmle.label | get_pointer(...) |
|
||||
| lifetime.rs:808:10:808:12 | ptr | semmle.label | ptr |
|
||||
| lifetime.rs:808:23:808:25 | ptr | semmle.label | ptr |
|
||||
subpaths
|
||||
|
||||
@@ -800,15 +800,15 @@ fn get_pointer() -> *const i64 {
|
||||
|
||||
pub fn test_lifetimes_example_bad() {
|
||||
let ptr = get_pointer();
|
||||
let val;
|
||||
let dereferenced_ptr;
|
||||
|
||||
use_the_stack();
|
||||
|
||||
unsafe {
|
||||
val = *ptr; // $ Alert[rust/access-after-lifetime-ended]=val
|
||||
dereferenced_ptr = *ptr; // $ Alert[rust/access-after-lifetime-ended]=val
|
||||
}
|
||||
|
||||
println!(" val = {val} (!)"); // corrupt in practice
|
||||
println!(" val = {dereferenced_ptr} (!)"); // corrupt in practice
|
||||
}
|
||||
|
||||
fn get_box() -> Box<i64> {
|
||||
@@ -819,11 +819,11 @@ fn get_box() -> Box<i64> {
|
||||
|
||||
pub fn test_lifetimes_example_good() {
|
||||
let ptr = get_box();
|
||||
let val;
|
||||
let dereferenced_ptr;
|
||||
|
||||
use_the_stack();
|
||||
|
||||
val = *ptr; // GOOD
|
||||
dereferenced_ptr = *ptr; // GOOD
|
||||
|
||||
println!(" val = {val}");
|
||||
println!(" val = {dereferenced_ptr}");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user