Geoffrey White
49b5d9283f
CPP: Reduce precision of FeatureEnvy.ql.
2019-12-13 08:40:59 +00:00
Geoffrey White
896ec9de72
CPP: Reduce precision of InappropriateIntimacy.ql.
2019-12-13 08:40:58 +00:00
Geoffrey White
acb011de04
CPP: Reduce precision of JapaneseEraDate.ql.
2019-12-13 08:40:58 +00:00
Robert Marsh
57d891e3b4
C++: autoformat
2019-12-12 11:03:18 -08:00
james
f6029bd55c
Merge branch 'rc/1.23' into mergeback-123-ql
2019-12-12 15:05:28 +00:00
Geoffrey White
73446ea610
Merge pull request #2511 from jbj/isInCycle-raw-only
...
C++: Compute isInCycle only for raw IR
2019-12-12 14:22:00 +00:00
Jonas Jensen
fd48dcf63e
C++: Get rid of a fastTC and noopt in IR
...
The `getAChild*` fastTC was causing OOM on a `make allyesconfig` Linux
database with 8GB RAM, and I've observed it to be slow on other
databases too.
2019-12-12 09:31:39 +01:00
Jonas Jensen
66876d0f63
C++: Compute isInCycle only for raw IR
...
On wireshark/wireshark, `isInCycle` ran into a low-memory loop on the
`aliased_ssa` stage. It shouldn't be necessary to detect cycles after
the `raw` stage, so this commit moves cycle detection into the
`Construction` modules and makes it a no-op in `SSAConstruction.qll`.
2019-12-10 16:03:39 +01:00
Jonas Jensen
7c151644f5
C++: Fix getTempVariable join order in IR
...
This join order seems to have broken so it took forever on
wireshark/wireshark.
2019-12-10 13:43:36 +01:00
Robert Marsh
18e7eff43c
C++: autoformat
2019-12-09 13:47:38 -08:00
Robert Marsh
b9f8c39fe2
C++: respond to PR comments
2019-12-09 10:55:56 -08:00
Jonas Jensen
9bbebfc01f
C++: Add new queries to C suite too
2019-12-09 17:00:33 +01:00
Jonas Jensen
ff7b6e2ce7
C++: Add new queries in 1.23 to legacy suites
...
I didn't add `JapaneseEraDate.ql` since it's not displayed on LGTM by
default.
2019-12-09 15:36:51 +01:00
Henning Makholm
6bdf186d1e
C tests: generalize arguments tests
...
With the coming `codeql test` support, the `predefined_macros` file will not
necessarily be located under a `tools` directory. Change the test to hide more
of its actual path, so it will work in both cases.
2019-12-06 01:21:17 +01:00
Robert Marsh
28fb3d606a
C++: add fread and printf alias models
2019-12-05 12:14:33 -08:00
Robert Marsh
52a74718da
C++: Move sources into DefaultTaintTracking
2019-12-05 12:14:25 -08:00
Robert Marsh
39b400ca69
C++: Add DefinitionByReferenceNode to IR dataflow
2019-12-05 11:56:57 -08:00
Robert Marsh
055c1d0efa
Merge pull request #2488 from geoffw0/speedup2
...
CPP: Speed up SensitiveExprs.qll
2019-12-04 14:09:32 -08:00
Robert Marsh
420a0bb74c
C++: handle namespace vars in DefautlTaintTracking
2019-12-04 13:16:12 -08:00
Dave Bartolomeo
cbb6797ca8
Merge from master and resolve conflicts
2019-12-04 10:14:52 -07:00
Dave Bartolomeo
50dc5e2ba3
Merge pull request #2438 from rdmarsh2/rdmarsh/ir-line-number-ids
...
C++/C#: use line numbers for instruction IDs
2019-12-03 18:48:28 -08:00
Robert Marsh
d99a90bfea
C++: handle global vars in DefaultTaintTracking
2019-12-03 16:08:43 -08:00
Robert Marsh
722cc91eae
C++: make getLineRank private
2019-12-03 10:53:08 -08:00
Jonas Jensen
57917bec17
Merge pull request #2480 from hvitved/dataflow/performance-tweaks
...
Data flow: Various performance tweaks
2019-12-03 18:44:11 +01:00
Geoffrey White
8ddf877756
CPP: Autoformat.
2019-12-03 12:17:37 +00:00
Geoffrey White
cc43e1116b
CPP: Do the logic at the target, rather than the access, as there are likely fewer.
2019-12-03 10:52:40 +00:00
Geoffrey White
20eb39d37e
CPP: Bypass some of the complexity in 'toString'.
2019-12-03 10:44:59 +00:00
Geoffrey White
6e6c1693f4
CPP: Speed up SensitiveExprs.qll 'suspicious' and 'nonSuspicious' mechanism.
2019-12-03 10:43:36 +00:00
Geoffrey White
b752a6c8ed
Merge pull request #2381 from jbj/StackVariable
...
C++: Add StackVariable class, preferred over LocalScopeVariable
2019-12-03 10:35:16 +00:00
Geoffrey White
2faae4dcb1
CPP: Autoformat.
2019-12-03 09:00:43 +00:00
Dave Bartolomeo
acc3d23877
Clarify comment
2019-12-02 11:53:43 -08:00
Tom Hvitved
b3990c5a1d
Data flow: Revert reordering changes in flowStore and flowRead
2019-12-02 14:25:59 +01:00
Tom Hvitved
5baa133e6c
Data flow: Sync files
2019-12-02 13:41:17 +01:00
Jonas Jensen
5b24b1efc3
Merge remote-tracking branch 'upstream/rc/1.23' into mergeback-20191202
...
Conflicts solved:
javascript/extractor/src/com/semmle/js/extractor/Main.java
javascript/ql/test/query-tests/Statements/UseOfReturnlessFunction/tst.js
2019-12-02 09:57:34 +01:00
Anders Schack-Mulligen
333d0a69d2
Java/C++/C#: Bugfix for field flow through reverse read.
2019-11-29 09:38:24 +01:00
Geoffrey White
3477c4a8fb
Update cpp/ql/src/semmle/code/cpp/commons/Alloc.qll
...
Co-Authored-By: Jonas Jensen <jbj@github.com >
2019-11-28 17:30:36 +00:00
Geoffrey White
aae9f88413
CPP: Model 'alloca'.
2019-11-28 17:27:37 +00:00
Jonas Jensen
763b18cd11
Merge remote-tracking branch 'upstream/master' into StackVariable
...
Conflicts:
change-notes/1.24/analysis-cpp.md
cpp/ql/src/Security/CWE/CWE-131/NoSpaceForZeroTerminator.ql
2019-11-28 17:51:20 +01:00
Jonas Jensen
d816701e07
Revert "C++: Use StackVariable in Nullness.qll"
...
It looks like allowing statics in `Nullness.qll` is fine since it's a
"may be null" analysis rather than a "must be null" analysis.
This reverts commit f5b9837e19 .
2019-11-28 17:44:42 +01:00
Jonas Jensen
d22df24cab
Merge pull request #2467 from geoffw0/speedup1
...
CPP: Speed up isCompiledAsC.
2019-11-28 17:31:27 +01:00
Geoffrey White
b1c992e85f
CPP: Speed up isCompiledAsC (x3).
2019-11-28 11:28:38 +00:00
Dave Bartolomeo
aa6bd07971
Merge remote-tracking branch 'upstream/master' into dbartol/May-Must
2019-11-26 14:07:13 -07:00
Robert Marsh
e368d5dda0
C++: simplify getDisplayOrderInBlock
2019-11-26 16:02:30 -05:00
Jonas Jensen
c05cc77a91
Merge pull request #2421 from dbartol/dbartol/IndirectAlias
...
C++/C#: Cleanup in preparation for indirect alias analysis
2019-11-26 21:59:17 +01:00
Dave Bartolomeo
f3b4140948
C++/C#: Consistent handling of "may" vs. "must" memory accesses
...
In the IR, some memory accesses are "must" accesses (the entire memory location is always read or written), and some are "may" accesses (some, all, or none of the bits in the location are written). We previously had to special case specific "may" accesses in a few places. This change regularizes our handling of "may" accesses.
The `MemoryAccessKind` enumeration now describes only the extent of the access (the set of locations potentially accessed), but does not distinguish "must" from "may". The new predicates `Operand.hasMayMemoryAccess()` and `Instruction.hasResultMayMemoryAccess()` hold when the access is a "may" access.
Unaliased SSA now correctly ignores variables that are ever accessed via a "may" access.
Aliased SSA now distinguishes `MemoryLocation`s for "may" and "must" accesses. I've refactored `getOverlap()` into the core `getExtentOverlap()`, which considers only the extent, but not the "may" vs. "must", and `getOverlap()`, which tweaks the result of `getExtentOverlap()` based on "may" vs. "must" and read-only locations.
When determining the overlap between a `Phi` operand and its definition, we now use the result of the defining `Chi` instruction, if one exists. This gives exact definitions for `Phi` operands for virtual variables.
2019-11-26 12:13:07 -07:00
Dave Bartolomeo
4e1ee7a998
C++/C#: Fix formatting
2019-11-26 10:48:24 -07:00
Jonas Jensen
b1745f588c
Merge pull request #2402 from geoffw0/nospace
...
CPP: Make NoSpaceForZeroTerminator.ql more conservative.
2019-11-26 13:36:05 +01:00
Robert Marsh
60b384a6e5
C++/C#: use line numbers for instruction IDs
...
This should reduce the number of merge conflicts in the IR tests resulting
from instruction ID changes due to inserting or removing instructions
2019-11-25 18:27:59 -05:00
Dave Bartolomeo
7d48220a76
C++/C#: Make QLDoc conform to style guide
2019-11-25 11:26:45 -07:00
Dave Bartolomeo
44c1c5a7ab
C++: Update points_to.ql test to use new bit offset format
2019-11-25 11:13:02 -07:00