Anders Schack-Mulligen
38aba7bfc1
Java: Fix qltest.
2019-10-07 15:51:42 +02:00
Cornelius Riemenschneider
9ef61bd43c
Address more parts of Anders review.
2019-10-07 15:19:20 +02:00
Cornelius Riemenschneider
0f5dd5d7c7
Add one more test with a more complicated guard.
2019-10-07 15:14:42 +02:00
Cornelius Riemenschneider
d79eaffd3a
Prune unreachable paths in the Java dataflow library based on call context.
...
We now detect patterns like
f(bool cond){
if(cond)
then A
else B
and prune branches for calls like f(true) or f(false).
This pruning is done both in the local (bigstep) flow graph
as well as in the inter-procedural dataflow graph.
2019-10-07 15:10:54 +02:00
Cornelius Riemenschneider
dba93b30e7
Add tests exhibiting false positives in the dataflow library, where call context is not used to prune branches.
2019-10-07 14:59:55 +02:00
Tom Hvitved
7f6e253425
Java: Update expected test output
2019-10-04 11:09:44 +02:00
Anders Schack-Mulligen
f87cb4d6ac
Java/C++/C#: Address review comments and fix test.
2019-10-02 14:32:17 +02:00
Jonas Jensen
a98992f0f9
C#/C++/Java: distinguish toString of nil from cons
2019-09-02 14:22:03 +02:00
Jonas Jensen
cdede8744f
C#/C++/Java: Prettier PartialAccessPath.toString
2019-09-02 14:05:50 +02:00
Jonas Jensen
c3bc9f8575
C#/C++/Java: Unbreak partial data flow support
...
Partial data flow had a semantic merge conflict with this branch. The
problem is that partial data flow doesn't (and shouldn't) cause the
initial pruning steps to run, but the length-2 access paths depend on
the `consCand` information that comes from that initial pruning. The
solution is to restore the old `AccessPath` class, now called
`PartialAccessPath` for use only by partial data flow.
With this change, partial data flow will in some cases allow more field
flow than non-partial data flow.
2019-09-02 14:02:39 +02:00
Jonas Jensen
6c96a8d339
Java: Accept test changes
...
Note: the results in `partial` have regressed and will need to be fixed
in a follow-up commit.
2019-09-02 13:14:17 +02:00
Anders Schack-Mulligen
8a318ce4e7
Java: Extend test with graph.
2019-08-30 14:35:21 +02:00
Anders Schack-Mulligen
6582734733
Java: Add test.
2019-08-30 14:32:55 +02:00
Anders Schack-Mulligen
6ff4fe38ec
Java/C++/C#: Add field flow support for stores in nested fields.
2019-08-19 14:41:06 +02:00
Anders Schack-Mulligen
f8804943ee
Java: Change in/out barriers to be explicit in the configuration.
2019-08-05 12:05:12 +02:00
Anders Schack-Mulligen
d3c5644229
Java: Add support for in/out barriers on sources and sinks.
2019-07-26 11:52:55 +02:00
Anders Schack-Mulligen
3024b5cb9e
Java: Bugfix for flow through methods with taintstep and upcast.
2019-07-22 15:39:30 +02:00
Anders Schack-Mulligen
a29f615da0
Java: Add additional taint steps through collections.
2019-01-28 14:34:09 +01:00
Anders Schack-Mulligen
46bebc898a
Java: Add test.
2018-11-09 13:36:05 +01:00
Anders Schack-Mulligen
dd5a8f0c14
Java: Autoformat most queries.
2018-10-11 11:31:37 +02:00
Pavel Avgustinov
846c9d5860
Migrate Java code to separate QL repo.
2018-08-30 10:48:05 +01:00