Commit Graph

5228 Commits

Author SHA1 Message Date
Mark Shannon
91efce92bd Python: Fix 2 typos. 2019-06-14 11:49:15 +01:00
semmle-qlci
8a43fdc806 Merge pull request #1448 from xiemaisi/js/fix-access-paths-perf-regression
Approved by esben-semmle
2019-06-13 10:13:27 +01:00
semmle-qlci
913544600a Merge pull request #1449 from xiemaisi/js/fix-http-response-sink-perf-regression
Approved by esben-semmle
2019-06-12 21:36:23 +01:00
Taus
e1b61d3163 Merge pull request #1423 from markshannon/python-extend-api
Python: Extend the object API.
2019-06-12 17:24:20 +02:00
Max Schaefer
60964efce5 JavaScript: Avoid bad context pushing in ReflectedXss::HttpResponseSink. 2019-06-12 16:20:35 +01:00
Mark Shannon
97294e16e0 Python: Update tests to account for improved API. 2019-06-12 15:00:20 +01:00
Mark Shannon
3b31b9cf58 Python: Extend object API. Clearly differentiate between what an object is called, and what it is named. 2019-06-12 14:59:39 +01:00
Anders Schack-Mulligen
cc70817a61 Merge pull request #1437 from jbj/bb-shortestDistances
C++: use shortestDistances in PrimitiveBasicBlocks
2019-06-12 11:31:07 +02:00
Taus
83cbad9a9d Merge pull request #1442 from markshannon/python-fixup-six-test-results
Python: fixup test results for https://github.com/Semmle/ql/pull/1433
2019-06-11 17:35:30 +02:00
Mark Shannon
0c02d3deef Python: Fix up expected test results for six test. 2019-06-11 15:44:44 +01:00
semmle-qlci
821d8c9dd2 Merge pull request #1436 from yh-semmle/java-android-manifest
Approved by aschackmull
2019-06-11 14:04:21 +01:00
Jonas Jensen
32122e86b0 C++: use plain recursion in PrimitiveBasicBlocks
It's sometimes faster but sometimes up to 2x slower to use plain
recursion here. On the other hand, plain recursion won't run out of Java
heap space, and it won't make unrelated computation slower by forcing
all RAM data out to disk.
2019-06-11 14:30:21 +02:00
Taus
d14d31c26e Merge pull request #1410 from markshannon/python-no-methodcall-defs-in-tests
Python ESSA: Remove method-callsite definitions when call is in a test defining a pi-node.
2019-06-11 11:17:16 +02:00
Jonas Jensen
16b151745b C++: use shortestDistances in PrimitiveBasicBlocks
The use of transitive closure for BB index calculation has been the
cause of an out-of-memory error. This commit switches the calculation to
use the `shortestDistances` HOP, which still has the problem that the
result needs to fit in RAM, but at least the RAM requirements are sure
to be linear in the size of the result. The `shortestDistances` HOP is
already used for BB index calculation for the C++ IR and for C#.

We could guard even better against OOM by switching the calculation to
use manual recursion, but that would undo the much-needed performance
improvements we got from #123.

This change improves performance on Wireshark, which is notorious for
having long basic blocks. When I benchmarked `shortestDistances`
for #123, it was slower than TC. With the current evaluator, it looks
like `shortestDistances` is faster. Performance before was:

    PrimitiveBasicBlocks::Cached::getMemberIndex#ff ................... 9.7s (executed 8027 times)
    #PrimitiveBasicBlocks::Cached::member_step#ffPlus ................. 6.6s
    PrimitiveBasicBlocks::Cached::primitive_basic_block_entry_node#f .. 3.5s
    PrimitiveBasicBlocks::Cached::primitive_basic_block_member#fff .... 2.3s

Performance with this commit is:

    PrimitiveBasicBlocks::Cached::primitive_basic_block_entry_node#f ................................................................... 3.5s
    shortestDistances@PrimitiveBasicBlocks::Cached::primitive_basic_block_entry_node#1@PrimitiveBasicBlocks::Cached::member_step#2#fff . 3s
    PrimitiveBasicBlocks::Cached::primitive_basic_block_member#fff ..................................................................... 963ms
2019-06-11 09:44:50 +02:00
semmle-qlci
61f7c78fa9 Merge pull request #1421 from xiemaisi/js/data-flow-tutorial-tests
Approved by esben-semmle
2019-06-11 07:55:47 +01:00
Mark Shannon
831850fad9 Merge pull request #1435 from aeyerstaylor/python-points-to-performance
Python: Improve points-to performance on large databases.
2019-06-10 18:11:53 +01:00
yh-semmle
8e6b62a301 Java: add QL library for modeling Android components 2019-06-10 13:00:03 -04:00
yh-semmle
0fb323b5ff Java: add QL library for modeling AndroidManifest.xml files 2019-06-10 12:59:47 -04:00
alexet
f04bc26684 Python: Improve points-to performance on large databases. 2019-06-10 17:12:45 +01:00
Mark Shannon
28741dda07 Merge pull request #1433 from aeyerstaylor/faster-python
Python: Improve performance of submodule name computation.
2019-06-10 15:30:09 +01:00
alexet
e66c132bae Python: Improve performance of submodule name computation. 2019-06-10 12:07:31 +01:00
yh-semmle
9c7995961d Merge pull request #1426 from felicity-semmle/1.21/support
Update support info for 1.21
2019-06-10 06:58:20 -04:00
Mark Shannon
dd5cf392de Merge pull request #1430 from felicity-semmle/1.21/python-change-notes
LGTM 1.21: Finalize Python change notes
2019-06-10 11:48:27 +01:00
Felicity Chapman
9b9f257e0a Add a link to a new query on LGTM.com 2019-06-10 11:35:19 +01:00
Felicity Chapman
b242b84764 Remove boilerplate text and fix table formatting 2019-06-10 11:32:34 +01:00
Mark Shannon
0f0dc81291 Python ESSA: Remove method-callsite definitions when call is in a test defining a pi-node. 2019-06-10 11:23:15 +01:00
Felicity Chapman
54a0772821 Merge pull request #1429 from markshannon/python-points-to-change-note
Backport of https://github.com/Semmle/ql/pull/1425
2019-06-10 11:17:03 +01:00
Max Schaefer
b32a037ff2 JavaScript: Refactor a few access path computation predicates. 2019-06-10 11:15:52 +01:00
Mark Shannon
b7141ad998 Python: Clarify change note. 2019-06-10 11:13:25 +01:00
Mark Shannon
ec0c1dc70e Python: Change note for new points-to implementation. 2019-06-10 11:13:25 +01:00
Arthur Baars
f7620aec37 Merge pull request #1424 from markshannon/python-points-to-varargs
Backport of #1391
2019-06-07 19:54:56 +02:00
Felicity Chapman
6bfbd77326 Update description of C# 8 support 2019-06-07 17:51:13 +01:00
Felicity Chapman
74ea09a36e Merge pull request #1418 from markshannon/extractor-change-notes
Add missing extractor change notes for 1.21.
2019-06-07 16:02:25 +01:00
Jonas Jensen
de4c20e7ca Merge pull request #1413 from felicity-semmle/1.21/cpp-change-notes
QL1.21: Finalize change notes for C/C++
2019-06-07 07:58:32 -07:00
Felicity Chapman
9fb31c65d9 Update support info for 1.21 2019-06-07 15:51:26 +01:00
Mark Shannon
2fab40111b Fix typo in qldoc. 2019-06-07 15:31:17 +01:00
Mark Shannon
cd793091ca Python points-to: Make sure that vararg tuples are only assigned to vararg parameters. 2019-06-07 15:31:17 +01:00
Mark Shannon
de39f9208b Python: Clarify and document points-to and object model for calls involving starargs. 2019-06-07 15:31:17 +01:00
Mark Shannon
9e537a76dc Python points-to: Handle varargs in caller 2019-06-07 15:31:17 +01:00
Mark Shannon
468975b0e5 Python points-to: Handle varargs in callee. 2019-06-07 15:31:17 +01:00
Felicity Chapman
1a97936d5c Further corrections 2019-06-07 15:21:45 +01:00
Mark Shannon
80909687d3 Python extractor change notes: Rephrase for clarity. 2019-06-07 15:09:22 +01:00
Max Schaefer
394e306e05 Merge pull request #1420 from felicity-semmle/1.21/javascript-change-notes
QL 1.21: javascript change notes - rc/1.21 branch
2019-06-07 14:43:31 +01:00
Max Schaefer
398ee0c133 JavaScript: Add tests for data-flow tutorial. 2019-06-07 14:33:26 +01:00
Calum Grant
5e3b625f65 Merge pull request #1414 from felicity-semmle/1.21/csharp-change-notes
QL 1.21: Finalize change notes for C#
2019-06-07 14:27:38 +01:00
Felicity Chapman
da9b9edde2 Remove redundant sentence 2019-06-07 12:03:19 +01:00
Mark Shannon
da04086385 Add missing extractor change notes for 1.21. 2019-06-07 12:01:28 +01:00
Felicity Chapman
fe38417765 Update for feedback 2019-06-07 11:54:22 +01:00
Felicity Chapman
53ea76ba48 Update for feedback 2019-06-07 10:51:19 +01:00
Felicity Chapman
e589d12d78 Update change-notes/1.21/analysis-javascript.md
Co-Authored-By: Max Schaefer <max@semmle.com>
2019-06-07 10:25:56 +01:00