Jonas Jensen
e7283afa3e
Merge pull request #2531 from dbartol/dbartol/MissingToString
...
C++: Fix `toString()` predicates that don't hold
2019-12-18 19:09:48 +01:00
Dave Bartolomeo
240823019a
Merge remote-tracking branch 'upstream/master' into dbartol/MissingToString
2019-12-17 11:50:36 -07:00
Max Schaefer
a17b615ae5
C++/Python: Deprecate XMLFile.getPath and XMLFile.getFolder.
...
Both can be expressed using predicates inherited from `File`.
2019-12-17 10:15:43 +00:00
Max Schaefer
47c1fc7358
C++/Python: Fix XMLFile.getPath and XMLFile.getFolder.
...
Previously, the former returned the file's stem (that is, basename without extension), and the latter never held.
2019-12-17 10:15:43 +00:00
Max Schaefer
bccdf59631
C++: Remove an unecessary unresolveElement.
...
As far as I can see, `@file` is not a `@usertype`, so this shouldn't be needed.
2019-12-17 10:15:43 +00:00
Max Schaefer
923e36ba4f
C++/Java/JavaScript/Python: Make qldoc consistent.
2019-12-17 10:15:43 +00:00
Max Schaefer
a2fe678464
C++/Java/JavaScript/Python: Unify imports in XML.qll.
2019-12-17 10:15:43 +00:00
Jonas Jensen
9193a81e1a
Merge pull request #2534 from geoffw0/xml
...
C++: Fix characteristic predicate of `XMLParent`.
2019-12-17 10:57:40 +01:00
Dave Bartolomeo
60c40adf31
C++: Fix formatting
2019-12-16 10:00:54 -07:00
Jonas Jensen
8b1892d900
Merge pull request #2533 from m00nbsd/master
...
Add NetBSD/Solaris allocation functions.
2019-12-16 14:42:12 +01:00
Geoffrey White
f990634481
C++: Fix the XMLParent Constructor.
2019-12-16 11:07:16 +00:00
Jonas Jensen
5cea452123
Merge pull request #2491 from rdmarsh2/rdmarsh/cpp/ir-taintedIncludingGlobalVars
...
C++: handle global vars in DefaultTaintTracking
2019-12-16 11:00:34 +01:00
m00nbsd
f7484171c9
Add NetBSD/Solaris allocation functions.
...
* kmem_{z}alloc is used by Solaris and NetBSD
* pool_{cache_}get is used by NetBSD
2019-12-16 10:32:18 +01:00
Dave Bartolomeo
914288d3c5
C++: Fix toString() predicates that don't hold
2019-12-13 17:06:05 -07: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
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
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
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
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
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
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
Dave Bartolomeo
521fbb125e
C++/C#: Fix formatting
2019-11-25 11:12:23 -07:00
semmle-qlci
d58a6b02bf
Merge pull request #2396 from hvitved/dataflow/erased-type-class
...
Approved by aschackmull, jbj
2019-11-25 15:22:13 +00:00
Geoffrey White
1d26d4c5e4
Merge pull request #2404 from jbj/signed-overflow-macro
...
C++: Fix SignedOverflowCheck.ql performance
2019-11-25 15:15:57 +00:00
Tom Hvitved
a26efdf4c1
Java/C++/C#: Rename DataFlowErasedType back to DataFlowType
2019-11-25 11:43:58 +01:00