Commit Graph

29908 Commits

Author SHA1 Message Date
Robert Marsh
09321ee062 C++: refactor escape analysis for performance 2019-03-07 13:14:51 -08:00
Robert Marsh
6f76c13385 C++: fix unused variable warning 2019-03-07 13:14:50 -08:00
Robert Marsh
726f38c802 C++: refactor alias analysis for performance 2019-03-07 13:14:50 -08:00
Robert Marsh
c70bd285de C++: assume arguments to virtual functions escape 2019-03-07 13:14:49 -08:00
Robert Marsh
2c94a8887d C++: test for virtual functions in escape analysis 2019-03-07 13:14:49 -08:00
Robert Marsh
6089172554 C++: escape analysis for this parameters 2019-03-07 13:14:49 -08:00
Robert Marsh
466e110338 C++: add new interprocedural escape analysis 2019-03-07 13:14:48 -08:00
Robert Marsh
bd39698528 C++: test changes for interproc escape analysis 2019-03-07 13:14:48 -08:00
Calum Grant
f6828fa5e5 Merge pull request #1053 from hvitved/csharp/dispatch-tweak
C#: `Dispatch.qll` performance tweaks
2019-03-07 16:21:29 +00:00
semmle-qlci
9dccd9f62c Merge pull request #1050 from asger-semmle/prototype-instance-methods
Approved by xiemaisi
2019-03-07 16:10:29 +00:00
Max Schaefer
b85f44643a Merge pull request #1049 from asger-semmle/js-type-tracking
JS: Add TypeTracking library
2019-03-07 16:09:19 +00:00
calum
fe4cdfdae0 C#: Minimise the test further. 2019-03-07 15:46:36 +00:00
calum
b358f87570 C#: Improve performance. 2019-03-07 14:56:07 +00:00
Mark Shannon
ef1c08e351 Python: Fix up OsGuard class. 2019-03-07 14:21:03 +00:00
calum
6cf2aee2ce C#: Fix failed CIL test. 2019-03-07 12:58:50 +00:00
Asger F
56977b80a0 JS: update comment 2019-03-07 11:35:41 +00:00
Asger F
d4566af271 JS: update test output 2019-03-07 11:27:07 +00:00
Tom Hvitved
397cc56a6f C#: Cache DataFlow::Node::getLocation() 2019-03-07 12:16:12 +01:00
Tom Hvitved
e6f7632d4c C#: Introduce data flow return nodes
Before this change,

```
flowOutOfCallableStep(CallNode call, ReturnNode ret, OutNode out, CallContext cc)
```

would compute all combinations of call sites `call` and returned expressions `ret`
up front.

Now, we instead introduce explicit return nodes, so each callable has exactly
one return node (as well as one for each `out`/`ref` parameter). There is then
local flow from a returned expression to the relevant return node, and
`flowOutOfCallableStep()` computes combinations of call sites and return nodes.

Not only does this result in better performance, it also makes `flowOutOfCallableStep()`
symmetric to `flowIntoCallableStep()`, where each argument is mapped to a parameter,
and not to all reads of that parameter.
2019-03-07 12:16:06 +01:00
Tom Hvitved
e6630cda6b C#: Use explicit recursion in data flow predicate 2019-03-07 12:16:01 +01:00
Tom Hvitved
738d1117f2 C#: Avoid recomputing flowThroughCallableLibraryOutRef() between queries 2019-03-07 12:15:53 +01:00
Tom Hvitved
397ff84898 C#: Cache Ssa::ExplicitDefinition::getADefinition() 2019-03-07 12:15:44 +01:00
calum
173fbc806c C#: Fix extractor to avoid the recursive eval of TypeArgumentList and update test results. 2019-03-07 09:44:18 +00:00
Raul Garcia
492ec9eb59 Update .gitignore 2019-03-06 17:13:25 -08:00
Raul Garcia
2e0c337a94 2n part of ICryptoTransform.
Detecting potential unsafe usage (object shared across multiple threads) on variables captured by Lambda
2019-03-06 17:12:33 -08:00
Robert Marsh
0efb110512 C++: docs for AllocaInLoop 2019-03-06 09:35:17 -08:00
Mark Shannon
7aef32e63f Python: Add basic taint-tracking configuration. Should help avoid cross-talk between flows and brings the interface closer to that of the other languages. 2019-03-06 15:48:03 +00:00
Calum Grant
c087394917 Merge pull request #1030 from hvitved/csharp/structural-comparison
C#: Speedup structural comparison library
2019-03-06 15:47:44 +00:00
Jonas Jensen
57732ee6f9 Merge pull request #1008 from geoffw0/wprintf
CPP: Clean up and fix FormattingFunction, FormatLiteral
2019-03-06 15:08:29 +00:00
calum
3c6ef8dbf7 C#: Refactor additionalJumpStep for performance. 2019-03-06 15:04:39 +00:00
Taus
2f77cde63f Merge pull request #1042 from markshannon/python-ignore-dead-objects
Python: Ignore dead entities from library trap files.
2019-03-06 15:47:56 +01:00
Asger F
f21871d275 JS: relax instantiation requirement for .prototype field 2019-03-06 14:31:37 +00:00
Asger F
96f1d91150 JS: Add a new test 2019-03-06 14:31:37 +00:00
Tom Hvitved
7825642954 C#: Dispatch.qll performance tweaks 2019-03-06 14:54:36 +01:00
Tom Hvitved
d0c442a950 C#: Use explicit recursion in TupleExpr::isReadAccess() 2019-03-06 14:54:25 +01:00
Max Schaefer
48c0949705 Merge pull request #1036 from asger-semmle/hide-implicit-ssa-defs
JS: Omit uninteresting nodes from path explanations
2019-03-06 13:30:11 +00:00
semmle-qlci
420b14b1e7 Merge pull request #1029 from jcreedcmu/jcreed/surgery
Approved by xiemaisi
2019-03-06 13:27:21 +00:00
Asger F
732ddbcbbd JS: Mark API as experimental 2019-03-06 13:04:34 +00:00
Asger F
81476cff0b JS: Expand test case with call/return matching for backtracking 2019-03-06 12:58:52 +00:00
Asger F
3422fa328d JS: Add test 2019-03-06 12:50:59 +00:00
Asger F
e6a1374218 JS: Make separate type for back-tracking types 2019-03-06 12:50:50 +00:00
Calum Grant
4bdcfec674 Merge pull request #990 from hvitved/csharp/cfg/get-a-thrown-exception
C#: Reduce size of `getAThrownException()`
2019-03-06 12:31:00 +00:00
Asger F
0b2c94684d JS: Add TypeTracker library 2019-03-06 11:52:28 +00:00
Geoffrey White
693937367d Merge pull request #1047 from jbj/dataflow-StmtExpr
C++: Data flow through StmtExpr
2019-03-06 10:33:12 +00:00
Geoffrey White
2bac7f1516 CPP: Deprecate old mechanisms FormattingFunction.isWideCharDefault and FormatLiteral.isWideCharDefault. 2019-03-06 10:23:46 +00:00
Geoffrey White
5b8a6c8335 CPP: Remove no longer used FormatLiteral.getEffectiveCharConversionChar. 2019-03-06 10:23:45 +00:00
Geoffrey White
e1447787e3 CPP: Remove dubious case from FormatLiteral.getMaxConvertedLength. 2019-03-06 10:23:45 +00:00
Geoffrey White
1b71accbfe CPP: Fix a bug in FormattingFunction.getDefaultCharType. 2019-03-06 10:23:45 +00:00
Geoffrey White
e59b3c28e4 CPP: Modernize FormatLiteral.getConversionType1b. 2019-03-06 10:23:45 +00:00
Geoffrey White
ac708a569e CPP: Clean up formatting in FormatLiteral.getEffectiveCharConversionChar somewhat. 2019-03-06 10:23:45 +00:00