-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Rust: regenerate models #19748
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Rust: regenerate models #19748
Conversation
Models are regenerated with the fix from #19744 which corrects the order of generation.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Regenerates Rust models after correcting the order of generation (CodeQL PR 19744) and updates the CWE-770 test suite to account for one newly introduced false positive.
- Annotates the
shrink
call inmain.rs
as a spurious alert. - Inserts corresponding expected entries in the test’s
.expected
file.
Reviewed Changes
Copilot reviewed 20 out of 20 changed files in this pull request and generated no comments.
File | Description |
---|---|
rust/ql/test/query-tests/security/CWE-770/main.rs | Added // $ SPURIOUS comment on the shrink call to mark a FP. |
rust/ql/test/query-tests/security/CWE-770/UncontrolledAllocationSize.expected | Added new expected lines for the spurious shrink alert and re-numbered model sinks/summaries. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM (not that I've manually checked all the models!)
@@ -210,7 +210,7 @@ unsafe fn test_system_alloc(v: usize) { | |||
let _ = std::alloc::System.grow_zeroed(m4, l4, l2).unwrap(); // $ Alert[rust/uncontrolled-allocation-size]=arg1 | |||
} | |||
} else { | |||
let _ = std::alloc::System.shrink(m4, l4, l2).unwrap(); | |||
let _ = std::alloc::System.shrink(m4, l4, l2).unwrap(); // $ SPURIOUS: Alert[rust/uncontrolled-allocation-size]=arg1 - FP |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the model generator is right to generate flow for this, shrink
is causing an allocation to happen and the new size l2
is user controlled. The reason this is a FP is because we know a shrink
can only reduce the size of the allocation so the allocation is bounded - this can't be the source of a problem.
I think the right answer is to introduce a barrier. I can do this as follow-up to your PR.
Models are regenerated with the fix from #19744 which corrects the order of generation.
Notice the one new FP in the tests though.