Commit Graph

5738 Commits

Author SHA1 Message Date
Geoffrey White
0caa17ab10 C++: Test the new methods. 2020-07-06 18:47:56 +01:00
Geoffrey White
52e501c41d C++: Extend the 'swap' taint tests with methods that do not have recognizable signatures (copy/move assignment). 2020-07-06 18:44:37 +01:00
dilanbhalla
25bfc3a168 fixed references and used autoformat 2020-07-01 09:23:36 -07:00
Jonas Jensen
50cd759718 Merge pull request #3733 from geoffw0/models5
C++: Constructor and assignment models
2020-07-01 13:58:27 +02:00
Anders Schack-Mulligen
38b73ff684 Merge pull request #3854 from hvitved/dataflow/node-type-interface
Data flow: Replace `getErasedRepr()` and `Node::getTypeBound()` with `getNodeType()`
2020-07-01 11:37:19 +02:00
dilanbhalla
e1130a2bfa moved privatedata to experimental 2020-06-30 17:58:24 -07:00
dilanbhalla
3fdd11a9b5 scanf fixes, still need to update qhelp file 2020-06-30 17:22:29 -07:00
dilanbhalla
f462156cdf private data file/buffer write 2020-06-30 12:09:50 -07:00
Geoffrey White
8bdcc47a50 C++: Add a test. 2020-06-30 17:46:08 +01:00
Tom Hvitved
de3dc734ff C++: Follow-up changes 2020-06-30 17:44:16 +02:00
Geoffrey White
3016798101 Merge branch 'master' into copymove 2020-06-30 16:20:41 +01:00
Geoffrey White
c57c016ced C++: Go the other way. 2020-06-30 16:16:00 +01:00
Jonas Jensen
63de58c557 Merge pull request #3819 from dbartol/codeql-c-analysis-team/40/2
C++: More IR QLDoc (including `Opcode.qll`)
2020-06-30 17:09:15 +02:00
Matthew Gretton-Dann
ab876b8b78 Merge pull request #3814 from nickrolfe/71-this
C++: add MemberFunction::getTypeOfThis()
2020-06-30 13:31:14 +01:00
Nick Rolfe
4b6908c5bf C++: test template classes with MemberFunction::getTypeOfThis() 2020-06-29 18:05:58 +01:00
Mathias Vorreiter Pedersen
5fbf30590e C++: Accept test changes. 2020-06-28 20:21:51 +02:00
Mathias Vorreiter Pedersen
9c0f877172 C++: Keep old instruction -> instruction flow in simpleInstructionLocalFlowStep. This means we don't have to add general operand -> instruction to the simpleLocalFlowStep relation, which seems to add a 10% performance regression. 2020-06-28 11:28:43 +02:00
Dave Bartolomeo
5f290520ab C++: Accept test diffs due to opcode rename 2020-06-26 13:45:41 -04:00
Nick Rolfe
0ae5fb0357 C++: auto-format test query 2020-06-26 15:35:55 +01:00
Nick Rolfe
309a8e60c8 C++: add more test cases for the type of this 2020-06-26 14:20:46 +01:00
Nick Rolfe
9e9d69238a C++: add test for MemberFunction::getTypeOfThis() 2020-06-26 14:20:46 +01:00
Nick Rolfe
133838dbf3 C++: update tests to expect type of this 2020-06-26 14:20:45 +01:00
Jonas Jensen
c1b26d71c3 C++: getCanonicalQLClass -> getAPrimaryQlClass
Also updated the QLDoc for `getAPrimaryQlClass` to match the Go version.
2020-06-26 13:20:36 +02:00
Geoffrey White
168f9404f0 Merge branch 'master' into models5 2020-06-25 17:42:08 +01:00
Geoffrey White
edc5d5d128 C++: Add a test of MissingNullTest. 2020-06-25 11:04:06 +01:00
Robert Marsh
fb6e578618 C++: move IR range analysis to experimental 2020-06-24 12:50:14 -07:00
Mathias Vorreiter Pedersen
8c6753a3cc C++: Accept consistency tests. 2020-06-24 21:13:38 +02:00
dilanbhalla
0552f9b0cc memory unsafe scan functions 2020-06-24 11:47:34 -07:00
Mathias Vorreiter Pedersen
5190c26635 C++: Accept tests. 2020-06-24 18:28:41 +02:00
Geoffrey White
dd19ee47a1 C++: Clean up ConversionConstructor. 2020-06-23 11:22:59 +01:00
Jonas Jensen
5a5df4de26 Revert "Merge pull request #3419 from MathiasVP/flat-structs"
There was unfortunately a semantic merge conflict between #3419 and
 #3587 that caused a performance regression on (at least) OpenJDK.

This reverts commit 982fb38807, reversing
changes made to b841cacb83.
2020-06-22 14:09:06 +02:00
Geoffrey White
104298e09a Merge branch 'master' into models5 2020-06-22 10:59:15 +01:00
Geoffrey White
eebaf0f330 C++: Modify the tests so that ConversionConstructors are tested; we don't want the general case for Constructors any more. 2020-06-19 10:15:01 +01:00
Geoffrey White
35487ff109 Merge branch 'master' into stringtest 2020-06-17 19:00:26 +01:00
Geoffrey White
174fdadbf5 Merge branch 'master' into stringtest 2020-06-17 18:24:30 +01:00
Geoffrey White
833f5b0cf3 C++: Add flow through assignment operators. 2020-06-17 15:47:37 +01:00
Geoffrey White
b9a65581ce C++: Some constructors should have dataflow instead of taint. 2020-06-17 15:47:37 +01:00
Geoffrey White
031c9b98f1 C++: General taint flow through constructors. 2020-06-17 15:47:37 +01:00
Geoffrey White
30151c99d7 C++: Remove the std::string Constructor model. 2020-06-17 15:43:58 +01:00
Geoffrey White
d565cfc58e C++: Add a test of default constructors etc. 2020-06-17 15:41:36 +01:00
Geoffrey White
c196ea24b2 C++: Add taint tests of class constructors and assignment. 2020-06-17 15:41:00 +01:00
Geoffrey White
ea9e9a7a26 C++: Add taint tests of std::string constructors and assignment. 2020-06-17 15:41:00 +01:00
Robert Marsh
ef940e815f C++: Add comment for false positives in swap tests 2020-06-16 11:46:14 -07:00
Robert Marsh
0c99b3644c C++: remove false negative comments in swap tests 2020-06-16 11:33:26 -07:00
Robert Marsh
1c9b6f0a48 Merge branch 'master' into ir-this-parameter-2
Accept test changes - dataflow changes are all positive
2020-06-16 11:28:49 -07:00
Robert Marsh
ab327b989d Merge pull request #3713 from MathiasVP/flow-diff-test
C++: Add test for differences between AST and IR field flow
2020-06-16 09:09:46 -07:00
Jonas Jensen
e5e373cff2 Merge pull request #3673 from MathiasVP/assign-op-using-swap
C++: Add tests for taint through swap
2020-06-16 15:43:52 +02:00
Mathias Vorreiter Pedersen
c30d1a618e C++: Add charpred to partial definition node classes in qltest 2020-06-16 09:55:37 +02:00
Dave Bartolomeo
fecffab8e7 C++: Fix consistency error
`TTranslatedAllocationSideEffects` wasn't limiting itself to functions that actually have IR, so it was getting used even in template definitions.
2020-06-15 10:47:00 -04:00
Dave Bartolomeo
8cbc7e8654 C++/C#: Improve consistency failure result messages
Some of our IR consistency failure query predicates already produced results in the schema as an `@kind problem` query, including `$@` replacements for the enclosing `IRFunction` to make it easier to figure out which function to dump when debugging. This change moves the rest of the query predicates in `IRConsistency.qll` to do the same. In addition, it wraps each call to `getEnclosingIRFunction()` to return an `OptionalIRFunction`, which can be either a real `IRFunction` or a placeholder in case `getEnclosingIRFunction()` returned no results. This exposes a couple new consistency failures in `syntax-zoo`, which will be fixed in a subsequent commit.

This change also deals with consistency failures when the enclosing `IRFunction` has more than one `Function` or `Location`. For multiple `Function`s, we concatenate the function names. For multiple `Location`s, we pick the first one in lexicographical order. This changes the number of results produced in the existing tests, but does't change the actual number of problems.
2020-06-15 10:46:46 -04:00