Tom Hvitved
83050d96f8
C++: Stub implementations for clearsContent()
2020-06-23 10:55:12 +02:00
Tom Hvitved
c057e82efa
Data flow: Sync files
2020-06-23 10:55:11 +02:00
Jonas Jensen
3747bd98f3
Merge pull request #3694 from geoffw0/models
...
C++: Extend the GetsFunction and SystemFunction models.
2020-06-23 10:15:32 +02:00
Mathias Vorreiter Pedersen
55ce5ce47a
Merge pull request #3754 from jbj/revert-flat-structs
...
C++: Revert #3419 to fix OpenJDK performance
2020-06-23 08:58:08 +02:00
Robert Marsh
c1eb712841
C++: QLDoc for data and taint models
2020-06-22 17:25:55 -07:00
Robert Marsh
231b85cb11
C++: File-level QLDoc for publicly imported models
2020-06-22 11:43:43 -07:00
Geoffrey White
466f36c7e1
C++: Autoformat.
2020-06-22 16:04:32 +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
Tom Hvitved
72e6c9c2b1
Data flow: Use accessPathLimit() in partial flow as well
2020-06-22 10:08:51 +02:00
Pavel Avgustinov
00f1e57d0c
Update cpp-security-extended.qls
2020-06-19 20:16:24 +01:00
Jonas Jensen
81d8dc15cd
Merge pull request #3693 from geoffw0/stringtest
...
C++: Add tests of char* -> std::string -> char* conversions.
2020-06-19 21:12:33 +02:00
Jonas Jensen
09d7ed092b
Merge pull request #3612 from dbartol/github/codeql-c-analysis-team/69_union
...
C++: Share `TInstruction` across IR stages
2020-06-19 16:03:11 +02:00
Geoffrey White
c18e0aa21a
C++: Add a TODO comment.
2020-06-19 14:30:56 +01:00
Geoffrey White
ab8d1ea723
C++: Model ConversionConstructor instead of all Constructors.
2020-06-19 10:55:10 +01:00
Anders Schack-Mulligen
8107fbadc2
Merge pull request #3456 from hvitved/dataflow/precise-field-types
...
Data flow: Track precise types during field flow
2020-06-19 11:50:10 +02:00
Geoffrey White
3f4ebd285f
C++: Move models into models dir.
2020-06-19 10:26:07 +01:00
Geoffrey White
e0651b2c19
Merge remote-tracking branch 'upstream/master' into models5
2020-06-19 10:15:25 +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
03c6d7a7e5
Merge pull request #3654 from jbj/controlsBlock-perf
...
C++: Speed up IRGuardCondition::controlsBlock
2020-06-17 17:53:10 +01:00
Anders Schack-Mulligen
74eab3cbc0
Dataflow: Fix qltest.
2020-06-17 17:23:35 +02:00
Anders Schack-Mulligen
cedfaf6aaf
Dataflow: autoformat
2020-06-17 17:09:55 +02:00
Anders Schack-Mulligen
543ab71dfe
Dataflow: minor review fixes.
2020-06-17 17:03:22 +02:00
Geoffrey White
33fab08975
C++: Autoformat.
2020-06-17 15:53:05 +01:00
Dave Bartolomeo
687d6d2643
C++: Replace TRawInstruction() calls
...
Replace most direct calls to `TRawInstruction()` with calls to `getInstructionTranslatedElement()` and `getInstructionTag()`, matching existing practice. One tiny RA diff in an inconsequential join order in `getInstructionVariable`.
2020-06-17 10:52:32 -04: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
Dave Bartolomeo
c1016743a5
C++: Remove instructionOrigin()
...
This noopt predicate is no longer necessary. It's equivalent to `instruction = TRawInstruction(element, tag)`, which is already materialized and has a more favorable column order anyway.
2020-06-17 10:25:59 -04:00
Dave Bartolomeo
e85cc0b0c6
C++: Stop caching raw IR construction predicates
...
These predicates are only used within the new single IR stage, so there's no need to cache them beyond that. RA diffs are trivial. Where previously many of the predicate on `Instruction` were inline wrappers around cached predicates from `IRConstruction`, now the predicates from `IRConstruction` get inlined into the `Instruction` predicates, and the `Instruction` predicates get materialized. The net amount of work is the same, but now it's not getting cached unnecessarily.
2020-06-17 09:47:48 -04:00
Anders Schack-Mulligen
d28b5ace63
Dataflow: Sync.
2020-06-17 15:40:48 +02:00
Mathias Vorreiter Pedersen
01abaf373a
Merge pull request #3728 from geoffw0/memberfunctions
...
C++: Split MemberFunction.qll from Function.qll.
2020-06-17 14:54:33 +02:00
Geoffrey White
7edaade175
C++: Improve QLDoc.
2020-06-17 12:11:42 +01:00
Geoffrey White
0a9ec70c31
C++: Autoformat.
2020-06-17 11:54:50 +01:00
Geoffrey White
f3e24963cb
C++: Update QLDoc.
2020-06-17 10:27:34 +01:00
Jonas Jensen
e0ba23d2c7
C++: @precision high for tainted-format-string*
...
I think these queries have excellent results on lgtm.com. Many of the
results come from projects that use `sprintf` like it's a templating
engine, trusting that values from `argv` or `getenv` contain the correct
number of `%s`. I think we want to flag that.
The structure of the change note is modeled after 91af51cf46 .
2020-06-17 09:03:13 +02:00
Dave Bartolomeo
8e977dc6bf
C++/C#: Move overrides of IRType::getByteSize() into leaf classes
...
See https://github.com/github/codeql/pull/2272 . I've added code comments in all of the places that future me will be tempted to hoist these overrides.
2020-06-16 16:48:42 -04:00
Dave Bartolomeo
24c3110989
Merge from master
2020-06-16 16:37:38 -04: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
Geoffrey White
3d75d287a9
C++: Split MemberFunction.qll from Function.qll.
2020-06-16 17:40:46 +01: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