Commit Graph

5006 Commits

Author SHA1 Message Date
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
772a51508f C++: Update test comment 2020-09-21 16:19:41 -07:00
Robert Marsh
9e3bfe1968 C++: Fix iterator flow context sensitivity 2020-09-21 16:17:16 -07:00
Robert Marsh
913881b17b C++: Add test for iterator false positive 2020-09-21 16:15:24 -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
73cd5ceb80 C++: Accept tests. Due to the removal of overlap between the reads steps there are fewer repeated edges in path explanations. 2020-09-21 14:17:49 +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
49dd576352 C++: Add more tests 2020-09-21 10:59:16 +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
12be90a6af C++: remove unneeded cast 2020-09-18 15:00:01 -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
53da751b15 C++: Accept tests 2020-09-18 17:12:27 +02: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
Mathias Vorreiter Pedersen
b4edbe4773 Merge pull request #4298 from MathiasVP/field-conflation-with-array-content
C++: Add test demonstrating field conflation after merging #4230
2020-09-18 15:16:33 +02:00
Jonas Jensen
6463a94258 Merge pull request #4297 from github/igfoo/compileTimeConstantInt
C++: Improve `compileTimeConstantInt`
2020-09-18 13:58:16 +02:00
Mathias Vorreiter Pedersen
b40941b89c C++: Add test demonstrating field conflation after merging #4230 2020-09-18 13:23:23 +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
Robert Marsh
f73ff988e0 C++: improve cast and ptr handling in taint test 2020-09-17 16:55:36 -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
Geoffrey White
2c15e6f934 C++: Add test cases. 2020-09-17 13:43:07 +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
4d6125841d C++: Clean up multiply defined functions. 2020-09-17 11:48:26 +01: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
44c5233459 C++: accept test output 2020-09-16 12:49:15 -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
Mathias Vorreiter Pedersen
3520b86771 C++: Accept test changes. 2020-09-16 14:51:11 +02: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