-
Notifications
You must be signed in to change notification settings - Fork 1.7k
C++: Use-use flow in experimental
#10366
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
C++: Use-use flow in experimental
#10366
Conversation
as tainted (instead of the pointee), or vice versa. Because of existing dataflow pointer/pointee conflation we never noticed that, but since this PR removes those imprecisions we now need to update these models.
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.
Found 21 potential problems in the proposed changes. Check the Files changed tab for more details.
1d8d042
to
6dcfe03
Compare
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.
Found 22 potential problems in the proposed changes. Check the Files changed tab for more details.
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.
Found 22 potential problems in the proposed changes. Check the Files changed tab for more details.
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.
(reviewing just the changes to models)
Some of these deserve a bit of discussion, though I understand they're motivated by test regressions so its very likely you're right or at least partly right in each case.
cpp/ql/lib/semmle/code/cpp/models/implementations/StdString.qll
Outdated
Show resolved
Hide resolved
cpp/ql/lib/semmle/code/cpp/models/interfaces/FunctionInputsAndOutputs.qll
Show resolved
Hide resolved
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.
Found 22 potential problems in the proposed changes. Check the Files changed tab for more details.
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'm happy with the changes to models / everything outside of experimental now. I haven't reviewed the changes within experimental in any detail, but I understand it to be a modified version of the dataflow library that's been reviewed elsewhere, and will be under examination in experimental
. I can't see anything scary in the DCA run.
👍
Thanks a lot! Yeah, all of the code in experimental has already been thoroughly reviewed in the initial PR. So this should be pretty safe |
Due to the performance regressions on #10190 we've decided to put the new use-use dataflow code in the experimental directory so that we can use it while we're working on experimental buffer-overflow queries.
The first commit just copies over all the already-reviewed code from #10190 (along with a couple of copies of the dataflow library). So it doesn't really require any deep reviewing (since it's already received a lot of awesome 👀s!).
The last two commits are required changes to non-experimental code that should hopefully be semantically equivalent from the point of view of the existing non-experimental dataflow library.