Mathias Vorreiter Pedersen
09df318e9e
C++: Also track flow out of indirect sources.
2023-02-27 14:57:35 +00:00
Mathias Vorreiter Pedersen
a806569b5f
C++: The next commit is going to track flow out of both direct and indirect sources. This means we'll get a lot of duplication since there'll be flow from indirect source -> indirect sink and direct source -> direct sink (which both map to the same expressions). This commit changes the testing so that we only report a duplication when they're at different locations.
2023-02-27 14:57:35 +00:00
Mathias Vorreiter Pedersen
5a8b900394
C++: Properly track smart pointer wrappers.
2023-02-27 14:57:35 +00:00
Mathias Vorreiter Pedersen
64abf5b163
C++: Add conflation into DefaultTaintTracking.
2023-02-27 14:57:35 +00:00
Mathias Vorreiter Pedersen
b951bf0f8f
C++: Remove conflation from taint-tracking.
2023-02-27 14:57:35 +00:00
Mathias Vorreiter Pedersen
7437de2909
C++: Fix issue where 'getEnclosingCallable' didn't exist for some globals.
2023-02-27 14:06:13 +00:00
Mathias Vorreiter Pedersen
7a81f06e84
C++: Accept test changes.
2023-02-14 09:01:51 +00:00
Mathias Vorreiter Pedersen
748a345e7f
C++: Add a test to reveal missing or spurious types on dataflow nodes.
2023-02-14 08:58:29 +00:00
Jeroen Ketema
996eb6c63c
C++: Fix Ql-for-QL warnings
2023-02-13 09:22:31 +01:00
Mathias Vorreiter Pedersen
378484ec01
Merge pull request #12149 from MathiasVP/fewer-flowthroughs
...
C++: Fix spurious flow-through
2023-02-10 18:45:46 +00:00
Mathias Vorreiter Pedersen
168202dbf7
Update cpp/ql/test/library-tests/dataflow/dataflow-tests/has-parameter-flow-out.ql
...
Co-authored-by: Jeroen Ketema <93738568+jketema@users.noreply.github.com >
2023-02-10 16:36:40 +00:00
Mathias Vorreiter Pedersen
9a8b3bad31
C++: Respond to PR reviews.
2023-02-10 13:56:19 +00:00
Jeroen Ketema
ecdeb9a970
C++: Revert semmle.code.cpp.dataflow to its old state
...
While here make sure all queries and tests use IR dataflow when appropriate.
2023-02-10 14:21:44 +01:00
Mathias Vorreiter Pedersen
5bd7589109
C++: Fix spurious flow though and accept test changes.
2023-02-10 12:42:40 +00:00
Mathias Vorreiter Pedersen
faf9fd6253
C++: Add a testcase (and a new test) to test flow through functions.
2023-02-10 12:40:29 +00:00
Jeroen Ketema
ffbaef8771
C++: Update for test changes
2023-02-10 11:23:19 +01:00
Jeroen Ketema
8f15abc285
Merge pull request #12146 from jketema/global-indirect
...
C++: Do not mark global indirect flow as spurious in dataflow tests
2023-02-10 10:21:04 +01:00
Jeroen Ketema
350fb89ebf
C++: Also mention all locations in the AST case
2023-02-10 09:49:24 +01:00
Mathias Vorreiter Pedersen
4719fd5235
C++: Accept more test changes.
2023-02-10 08:38:46 +00:00
Jeroen Ketema
12930c68fb
C++: Do not mark global indirect flow as spurious in dataflow tests
2023-02-10 09:29:27 +01:00
Mathias Vorreiter Pedersen
6b851d0529
C++: Fix an inconsistency with too many out nodes.
2023-02-09 16:55:19 +00:00
Mathias Vorreiter Pedersen
7439de37a3
C++: Add a new test that demonstrates multiple out nodes.
2023-02-09 16:23:32 +00:00
Mathias Vorreiter Pedersen
946e301ed6
Merge pull request #12079 from rdmarsh2/rdmarsh2/use-use-taint-test-reads
...
C++: allow read steps at the sink in IR taint test
2023-02-08 15:08:00 +00:00
Mathias Vorreiter Pedersen
825628675e
C++: Only allow implicit reads of fields that exist on the sink node's type.
2023-02-08 13:08:22 +00:00
Mathias Vorreiter Pedersen
316eecc064
C++: Accept test changes.
2023-02-06 09:09:00 +00:00
Mathias Vorreiter Pedersen
559c799309
C++: Also recognize iterators obtained via a function that doesn't receive the container as a qualiifer.
2023-02-03 21:43:21 +00:00
Mathias Vorreiter Pedersen
77250af444
Merge pull request #12050 from MathiasVP/flow-out-of-iterators-3
2023-02-03 18:43:37 +00:00
Mathias Vorreiter Pedersen
09a7573163
C++: Add comments to the new FP.
2023-02-03 17:09:19 +00:00
Mathias Vorreiter Pedersen
ae774a6b95
C++: Add a test with an indirect source.
2023-02-03 16:59:54 +00:00
Robert Marsh
ad8e82ac65
C++: allow read steps at the sink in IR taint test
2023-02-03 11:38:49 -05:00
Mathias Vorreiter Pedersen
968fff29ac
Merge branch 'mathiasvp/replace-ast-with-ir-use-usedataflow' into flow-out-of-iterators-3
2023-02-02 09:12:02 +00:00
Mathias Vorreiter Pedersen
eb31160ae0
C++: Accept test changes.
2023-02-01 13:42:03 +00:00
Mathias Vorreiter Pedersen
702b10ff96
Merge branch 'mathiasvp/replace-ast-with-ir-use-usedataflow' into global-flow
2023-02-01 13:37:10 +00:00
Jeroen Ketema
24891c3f43
C++: Fix missing subpaths when displaying dataflow paths
2023-01-31 10:57:06 +01:00
Mathias Vorreiter Pedersen
1b45c5f96a
C++: Accept test changes.
2023-01-30 09:13:42 +00:00
Mathias Vorreiter Pedersen
2b47e150c6
C++: Accept test changes.
2023-01-27 11:44:17 +00:00
Robert Marsh
3648f26cca
Merge remote-tracking branch 'origin/mathiasvp/replace-ast-with-ir-use-usedataflow' into global-flow
...
Resolved trivial conflicts.
2023-01-26 11:58:53 -05:00
Mathias Vorreiter Pedersen
bfe9ae22ad
Merge branch 'main' into mathiasvp/replace-ast-with-ir-use-usedataflow
2023-01-26 13:03:49 +00:00
Mathias Vorreiter Pedersen
13baa5b60b
C++: Add iterator typedefs to properly instantiate 'int_iterator_by_trait' and 'insert_iterator_by_trait'.
2023-01-26 11:43:33 +00:00
Mathias Vorreiter Pedersen
ec297fb838
C++: Accept more test changes.
2023-01-24 11:59:14 +00:00
Mathias Vorreiter Pedersen
510211a4c7
C++: Add testcase with looping behavior in C/C++ def-use flow.
2023-01-24 09:44:30 +00:00
Mathias Vorreiter Pedersen
ecbcee5bc8
Merge pull request #11945 from MathiasVP/refactor-param-out-nodes-2
2023-01-23 21:21:13 +00:00
Mathias Vorreiter Pedersen
79b77b01fd
Merge branch 'main' into mathiasvp/replace-ast-with-ir-use-usedataflow
2023-01-23 15:49:36 +00:00
Mathias Vorreiter Pedersen
a217017859
C++: Add testcase with looping behavior in C/C++ use-use flow.
2023-01-23 14:29:39 +00:00
Mathias Vorreiter Pedersen
9dbea539ed
Merge branch 'mathiasvp/replace-ast-with-ir-use-usedataflow' into refactor-param-out-nodes-2
2023-01-23 10:51:46 +00:00
Mathias Vorreiter Pedersen
da6bbbbc5e
C++: Accept test changes.
2023-01-21 01:43:23 +00:00
Jeroen Ketema
f628152be1
C++: In dataflow use the AST representation of IR Instructions and Operands
2023-01-20 10:39:50 +01:00
Mathias Vorreiter Pedersen
e26e83b8df
Merge pull request #11728 from github/rdmarsh2/parameterize-range-analysis
...
C++: Parameterize the semantic range analysis
2023-01-18 14:22:35 +00:00
Jeroen Ketema
ee19c3d80f
C++: Rename identically named classes in syntax-zoo
...
Conceptually the test that comprises the whole of `syntax-zoo` forms one
single binary. To this binary ODR applies. There were two class definitions
`Foo` in `syntax-zoo`, violating ODR. Rename those classes to have different
names.
2023-01-17 19:02:40 +01:00
Jeroen Ketema
06767c6760
C++: Split bad_asts.cpp IR test into two files
...
The statements from `errorExpr` - which does not parse correctly - affected the
tuples that were being generated for the other code in `bad_asts.cpp` due to
the way the front-end handles parse errors. This did not affect the test
results, but was also not the intention of the test. Split off `errorExpr` into
a separate file.
2023-01-17 18:57:29 +01:00