Jonas Jensen
8065bf15ad
C++: Per-variable overrides
...
Without these changes, there was no way to tell which variables were
overridden by a given instance of `SimpleRangeAnalysisDefinition`. All
four overrides are needed because they fit into different mutual
recursions of the `SimpleRangeAnalysis` implementation.
2020-09-22 15:53:22 +02:00
Jonas Jensen
7dce4d0a6e
C++: Rename: name the file the same as the class
2020-09-22 15:48:36 +02:00
Jonas Jensen
ee211b02fb
Merge remote-tracking branch 'lcartey/cpp/range-analysis-custom-defs' into range-analysis-custom-defs
2020-09-22 13:27:56 +02:00
Jonas Jensen
269b7101c0
Merge pull request #4273 from lcartey/cpp/custom-range-analysis-override
...
C++: Support overriding existing simple range analysis bounds
2020-09-22 13:15:05 +02:00
Jonas Jensen
e86bc0c6ac
C++: Autoformat fixup
2020-09-22 11:53:05 +02:00
Jonas Jensen
5cbf498a2d
Merge pull request #4302 from MathiasVP/fix-field-conflation-after-4230
...
C++: Fix field conflation after #4230
2020-09-22 10:23:17 +02:00
Robert Marsh
9e3bfe1968
C++: Fix iterator flow context sensitivity
2020-09-21 16:17:16 -07:00
Robert Marsh
947ad02db9
C++: autoformat
2020-09-21 11:38:57 -07:00
Mathias Vorreiter Pedersen
873e871620
C++: Handle more cases in arrayReadStep.
2020-09-21 14:35:37 +02:00
Mathias Vorreiter Pedersen
62d42f20d9
C++: use(x) is no longer an array read.
2020-09-21 12:46:03 +02:00
Mathias Vorreiter Pedersen
c560c7584c
C++: Add QLDoc for BufferMayWriteSideEffectFieldStoreQualifierNode
2020-09-21 11:08:06 +02:00
Mathias Vorreiter Pedersen
6dd7675a97
Update cpp/ql/src/semmle/code/cpp/ir/dataflow/internal/DataFlowPrivate.qll
...
Co-authored-by: Jonas Jensen <jbj@github.com >
2020-09-21 09:31:30 +02:00
Robert Marsh
6b3557ec58
C++: cache localAdditionalTaintStep
2020-09-18 15:42:14 -07:00
Robert Marsh
bc3e74f7d6
Merge branch 'main' into rdmarsh2/cpp/ir-qualifier-flow
...
Fix test conflicts
2020-09-18 15:40:43 -07:00
Robert Marsh
c179a07fc7
C++: fix constructor models
2020-09-18 14:43:39 -07:00
Robert Marsh
bd7f5a41d1
C++: autoformat
2020-09-18 14:19:29 -07:00
Robert Marsh
b84bf5e9bb
C++: QLDoc for IteratorPartialDefinitionNode
2020-09-18 14:18:38 -07:00
Robert Marsh
107e9770da
C++: remove accidentally committed test code
2020-09-18 14:12:33 -07:00
Mathias Vorreiter Pedersen
b6b17fe95e
C++: Add a read and store step that replace ArrayContent with FieldContent when we realize that the target of a store is a field.
2020-09-18 17:12:09 +02:00
Jonas Jensen
6463a94258
Merge pull request #4297 from github/igfoo/compileTimeConstantInt
...
C++: Improve `compileTimeConstantInt`
2020-09-18 13:58:16 +02:00
Jonas Jensen
c67605f15c
Merge pull request #4230 from MathiasVP/mathiasvp/array-field-flow
...
C++: Replace `field -> object` taint rule with `ArrayContent` dataflow
2020-09-18 10:56:51 +02:00
Mathias Vorreiter Pedersen
8c615ece8a
Merge pull request #4292 from MathiasVP/mathiasvp/cache-simpleLocalFlowStep
...
C++: Cache simpleLocalFlowStep instead of simpleInstructionLocalFlowStep
2020-09-18 10:18:21 +02:00
Mathias Vorreiter Pedersen
3ef6e8a580
Merge pull request #4283 from geoffw0/stringstream4
...
C++: Model getline
2020-09-18 10:17:47 +02:00
Robert Marsh
3a83cc71fe
C++: use qualifier flow in more models
2020-09-17 18:03:02 -07:00
Robert Marsh
556ace004f
C++: use qualifiers in string constructor model
2020-09-17 17:39:50 -07:00
Robert Marsh
6b7b64d7be
C++: IR data and taint flow through qualifiers
2020-09-17 17:10:11 -07:00
Mathias Vorreiter Pedersen
c6ff805a07
C++: Cache simpleLocalFlowStep instead of simpleInstructionLocalFlowStep
2020-09-17 21:13:02 +02:00
Mathias Vorreiter Pedersen
8e1d9e0996
C++: Fix bad join order introduced by #4270
2020-09-17 19:23:01 +02:00
Ian Lynagh
c7b6374e55
C++: Improve compileTimeConstantInt
...
It is possible for the frontend to make
(bool)e
where e has a constant value 0, but the (implicit) cast has no constant
value. This was causing us to not understand assume(0) correctly.
Now compileTimeConstantInt will handle casts itself if necessary.
2020-09-17 14:51:50 +01:00
Geoffrey White
5cc11f1c44
C++: Additional model for 'this' flow through chains.
2020-09-17 14:12:30 +01:00
Geoffrey White
73399cb5f7
C++: Model GetLine.
2020-09-17 14:05:43 +01:00
Mathias Vorreiter Pedersen
63afe1da78
Merge pull request #4276 from geoffw0/stringstream3
...
C++: More stringstream models.
2020-09-17 14:19:52 +02:00
Geoffrey White
c17ae3ad6c
C++: Correct dataflow for return (*this).
2020-09-17 11:34:10 +01:00
Robert Marsh
691d0f3fb2
Merge branch 'main' into rdmarsh2/cpp/output-iterators-1
...
Fix merge conflict in test expectations
2020-09-16 13:52:59 -07:00
Robert Marsh
086d074a26
C++: make PartialDefinition abstract
2020-09-16 12:48:38 -07:00
Robert Marsh
fa0e27b2de
C++: move interprocedural iterator flow to taint
2020-09-16 12:34:52 -07:00
Geoffrey White
86404af501
Merge pull request #4270 from MathiasVP/mathiasvp/single-field-flow-fix-cwe190test
...
C++: Use underlying type when checking whether a type is a single-field struct.
2020-09-16 17:21:07 +01:00
Geoffrey White
f1a9547b38
C++: Split off putback.
2020-09-16 16:44:39 +01:00
Geoffrey White
c4de071a4c
C++: Flow through swap.
2020-09-16 13:39:07 +01:00
Geoffrey White
eb7bd6e176
C++: Flow through putback.
2020-09-16 13:39:07 +01:00
Geoffrey White
7cc60a30a6
C++: Flow through get, peek, read, readsome.
2020-09-16 13:36:41 +01:00
Geoffrey White
56390c1aef
C++: Flow through operator>>.
2020-09-16 13:32:13 +01:00
Mathias Vorreiter Pedersen
3026eb4b85
Revert "C++: Remove the same rule in TaintTrackingUtil.qll as 78b24b76a0 removed from DefaultTaintTracking.qll"
...
This reverts commit 0b97a4a182 .
2020-09-16 14:26:01 +02:00
Mathias Vorreiter Pedersen
92d81edae6
Revert "C++: Remove the problematic taint tracking rule. It seems like we get the flows from dataflow already now."
...
This reverts commit 78b24b76a0 .
2020-09-16 14:25:42 +02:00
Mathias Vorreiter Pedersen
0b97a4a182
C++: Remove the same rule in TaintTrackingUtil.qll as 78b24b76a0 removed from DefaultTaintTracking.qll
2020-09-16 10:54:23 +02:00
Mathias Vorreiter Pedersen
7b456d6162
Merge branch 'main' into mathiasvp/array-field-flow
2020-09-16 10:45:31 +02:00
Mathias Vorreiter Pedersen
c8a3baf356
Merge pull request #4272 from jbj/dataflow-partial-access
...
C++: Add AST flow through arrays
2020-09-16 09:29:39 +02:00
Ian Lynagh
56388b57bd
C++: Update stats for new coroutines* tables
2020-09-15 15:36:19 +01:00
Ian Lynagh
99c4bc5175
C++: Add coroutine metadata tables
2020-09-15 15:36:19 +01:00
Mathias Vorreiter Pedersen
50ad4cfec4
C++: Add comments to {Array,Pointer}StoreNode and arrayStoreStepChi.
2020-09-15 16:03:21 +02:00