C++: Field flow through conflated ChiInstructions#3670
C++: Field flow through conflated ChiInstructions#3670MathiasVP wants to merge 8 commits intogithub:masterfrom
Conversation
|
Removing the restriction on non-conflatedness on the flow from Unfortunately, when we remove the non-conflatedness only from the |
|
Sadly removing the non-conflatedness restriction in only a few places results in another false positive on php in cpp-differences, and without removing the restriction in several places we don't get any new true positives "for free". If we are to continue along the route of allowing field flow through conflated chi instructions I think we need to start doing type pruning. I'm closing this PR until we have a more clear idea about what we need to do. |
Allowing field flow through ChiInstructions that are conflated into
{AllAliasedMemory}gives us quite a few good results in qltest (see the comments in https://github.com/github/codeql-c-analysis-team/issues/64#issuecomment-640606009).It does, however, also opens the door for some false positives. I've added one such false positive in
simple.cpp.The question now is: how many false positives will this actually result in. I've started a CPP-difference to check for this: https://jenkins.internal.semmle.com/job/Changes/job/CPP-Differences/1187/
One option (as suggested by @jbj) if we get a lot of false positives is to start using the type pruning feature from the shared dataflow library.