Jonas Jensen
c4d2163321
Merge pull request #2673 from aschackmull/ql/autoformat-comparisonterm
...
Java/C++/C#: Autoformat comparison terms
2020-01-30 08:47:50 +01:00
Robert Marsh
71d87be773
C++: add flow through partial loads in DTT
2020-01-29 17:51:42 -08:00
Dave Bartolomeo
6249446ba0
Merge remote-tracking branch 'upstream/master' into dbartol/Indirections
2020-01-29 17:29:44 -07:00
Robert Marsh
1472101613
Merge branch 'master' into rdmarsh/cpp/ir-flow-through-outparams
2020-01-29 14:44:29 -08:00
Robert Marsh
74ea9bcdf4
C++: fix merge issue
2020-01-29 14:37:41 -08:00
Robert Marsh
1a458aa450
C++: IR dataflow edges through outparams
2020-01-29 14:37:41 -08:00
Dave Bartolomeo
46c414b53f
C++: Document regular expressions in InlineExpectationsTest
2020-01-29 13:24:55 -07:00
Dave Bartolomeo
1277881294
C++: Document InlineExpectationsTest
2020-01-29 13:07:34 -07:00
Robert Marsh
37570c7750
Merge pull request #2676 from jbj/dataflow-partial-chi
...
C++: data flow through partial chi operands where type is known
2020-01-29 13:44:06 -05:00
Jonas Jensen
52d2bebd1c
C++: Taint through most partial chi operands
...
This changes the flow to be taint rather than data flow, and it extends
it to include chi instructions with unknown type as long as they're not
for the `AliasedVirtualVariable`.
We're losing three good test results because these tests are not
affected by `DefaultTaintTracking.qll`. The taint step added here can
later be ported to `TaintTrackingUtil.qll` to recover these results, but
we probably want a better API than transitive-closure search through
instructions before doing that.
2020-01-29 18:02:03 +01:00
Geoffrey White
f673791fe8
Merge pull request #2717 from jbj/DefaultTaintTracking-memcpy
...
C++: Add taint from gets through memcpy
2020-01-29 16:28:45 +00:00
Jonas Jensen
0436caecdc
C++: Always use the old library for the diff test
...
This change ensures that the diff test will show the difference between
the old and the new library even after we switch the default
implementation of `security.TaintTracking` to be the new one.
2020-01-29 16:03:35 +01:00
Jonas Jensen
4a77f2b53c
Merge remote-tracking branch 'upstream/master' into ir-crement-load
...
Update test output to fix semantic merge conflict.
2020-01-29 15:56:05 +01:00
Jonas Jensen
9b651ea92c
C++: Fix mapping of sources from Expr to Node
...
The code contained the remains of how `isUserInput` in `Security.qll`
used to be ported to IR. It's wrong to use that port since many queries
call `userInput` directly to get the "cause" string.
2020-01-29 15:50:08 +01:00
Jonas Jensen
7bed6ad63b
C++: Add taint from gets through memcpy
2020-01-29 15:42:43 +01:00
Jonas Jensen
d7e8ea7cc5
Merge pull request #2641 from marcrepo/master
...
Documentation update for Issue #2623
2020-01-29 13:37:00 +01:00
Jonas Jensen
386e8e87d1
Merge pull request #2645 from geoffw0/typo
...
CPP: Fix typo.
2020-01-29 13:35:55 +01:00
Anders Schack-Mulligen
0d4b2e4bf7
C#/C++: Autoformat post rebase.
2020-01-29 13:16:46 +01:00
Anders Schack-Mulligen
96e4a57edd
C++: Autoformat.
2020-01-29 13:11:50 +01:00
Jonas Jensen
02cb8e9cc7
Merge remote-tracking branch 'upstream/master' into dataflow-partial-chi
...
Conflicts:
cpp/ql/src/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll
cpp/ql/test/library-tests/dataflow/DefaultTaintTracking/tainted.expected
2020-01-29 13:03:40 +01:00
Jonas Jensen
27b5902258
Merge pull request #2707 from geoffw0/taint-format
...
C++: Add TaintFunction model to FormattingFunction
2020-01-29 08:20:34 +01:00
Dave Bartolomeo
60a0eff4d7
Merge remote-tracking branch 'upstream/master' into dbartol/Indirections
2020-01-28 12:06:43 -07:00
Dave Bartolomeo
542579de7f
C++: Accept dataflow test changes due to new alias analysis
2020-01-28 10:58:27 -07:00
Dave Bartolomeo
dda32359fa
C++: Accept IR dump test results changes due to new alias analysis
2020-01-28 10:58:05 -07:00
Dave Bartolomeo
7013bc6bf4
C++: Update escape analysis tests to new API
2020-01-28 10:57:07 -07:00
Dave Bartolomeo
bb9485d548
C++: Update points_to tests to use new framework
2020-01-28 10:56:49 -07:00
Dave Bartolomeo
af9d90cf46
C++: New test framework that allows expected results as comments in source code
2020-01-28 10:56:13 -07:00
Dave Bartolomeo
976b564b68
C++: Update AliasedSSA to use Allocation instead of IRVariable
...
This introduces a new type of `MemoryLocation`: `EntireAllocationMemoryLocation`, representing an entire contiguous allocation whose size is not known. This is used to model the memory accesses on `InitializeIndirection` and `ReturnIndirection`.
2020-01-28 10:55:24 -07:00
Dave Bartolomeo
165a45d9b5
C++/C#: Update SimpleSSA to use Allocation instead of IRVariable
2020-01-28 10:53:18 -07:00
Dave Bartolomeo
1bbc875442
C++/C#: Parameterize alias analysis based on AliasConfiguration
...
Instead of tracking `IRVariable`s directly, alias analysis now tracks instances of the `Allocation` type provided by its `Configuration` parameter. For unaliased SSA, an `Allocation` is just an `IRAutomaticVariable`. For aliased SSA, an `Allocation` is either an `IRVariable` or the memory pointed to by an indirect parameter.
2020-01-28 10:51:21 -07:00
Dave Bartolomeo
b15dd82732
C++/C#: Share alias analysis between C++ and C#
2020-01-28 10:47:37 -07:00
Dave Bartolomeo
1b1fded535
C++/C#: Add new MemoryAccessKind to represent entire allocation
2020-01-28 10:41:53 -07:00
Mathias Vorreiter Pedersen
c1091a03d0
C++: Accept output
2020-01-28 17:38:35 +01:00
Mathias Vorreiter Pedersen
46ce228bce
C++: Add instruction for CheckedConvertOrNull and handle it in alias analysis and data flow
2020-01-28 17:36:17 +01:00
Mathias Vorreiter Pedersen
928b0c50d2
C++: Add test demonstrating false negative when using dynamic_cast
2020-01-28 17:31:53 +01:00
Geoffrey White
f02ffcbbd2
C++: Modify ParameterIndex to account for varargs.
2020-01-28 14:53:18 +00:00
Geoffrey White
d66f608d41
C++: Taint from FormattingFunction varargs.
2020-01-28 14:53:18 +00:00
Geoffrey White
8b215c155e
C++: Correct a few test comments.
2020-01-28 14:51:46 +00:00
Geoffrey White
b1f66ae825
C++: Fix warnings.
2020-01-28 14:51:46 +00:00
Mathias Vorreiter Pedersen
287af2bdec
C++: Fix annotations in testcase file
2020-01-28 13:51:36 +01:00
Geoffrey White
01dc3661b7
C++: Autoformat.
2020-01-28 12:17:56 +00:00
Mathias Vorreiter Pedersen
611d9553dd
C++: Fix formatting
2020-01-28 10:22:33 +01:00
Mathias Vorreiter Pedersen
130911ad44
C++: Accept new output in already existing test
2020-01-28 10:00:52 +01:00
Mathias Vorreiter Pedersen
fd79e7991d
C++: Add tests demonstrating differences between AST virtual dispatch analysis and IR virtual dispatch analysis
2020-01-28 10:00:21 +01:00
Geoffrey White
30580e97dc
C++: Add a TaintFunction model to FormattingFunction.
2020-01-28 08:46:46 +00:00
Geoffrey White
1d46971bb7
C++: Add an ArrayFunction model to FormattingFunction.
2020-01-28 08:46:46 +00:00
Geoffrey White
06f5720cd5
C++: Add taint tests of formatting functions.
2020-01-28 08:46:46 +00:00
Robert Marsh
1b9e375341
C++: Move getACallArgumentOrIndirection
2020-01-27 16:44:41 -08:00
Robert Marsh
fd807d46d6
C++: IR dataflow through modeled functions
2020-01-27 16:38:07 -08:00
Robert Marsh
a9bcc1dcc6
Merge pull request #2667 from dbartol/dbartol/NoEscape
...
C++/C#: Make escape analysis unsound by default
2020-01-27 19:17:33 -05:00