Nora Dimitrijević
ea9e8e7ddb
Swift: fix bad join order in Pattern.getImmediateMatchingExpr
...
On Signal-iOS, this snippet:
```codeql
class Pattern extends Generated::Pattern {
...
Expr getImmediateMatchingExpr() {
...
exists(PatternBindingDecl v, int i |
v.getPattern(i) = this and
result = v.getInit(i)
)
...
}
...
}
```
Had the following join order:
```
33926 ~0% {3} r8 = SCAN PatternBindingDecl#ab5153b9::Generated::PatternBindingDecl::getImmediateInit#1#dispred#fff OUTPUT In.1, In.0, In.2
2565045964 ~0% {4} r9 = JOIN r8 WITH pattern_binding_decl_patterns_102#join_rhs ON FIRST 1 OUTPUT Lhs.1, Rhs.1, Lhs.2, Rhs.2
33926 ~0% {2} r10 = JOIN r9 WITH Synth#5f134a93::Synth::convertPatternBindingDeclToRaw#1#ff ON FIRST 2 OUTPUT Lhs.3, Lhs.2
33926 ~2% {2} r11 = JOIN r10 WITH Synth#5f134a93::Synth::convertPatternFromRaw#1#ff ON FIRST 1 OUTPUT Rhs.1, Lhs.1
33926 ~1% {2} r12 = JOIN r11 WITH Element#e67432df::Generated::Element::resolve#ff ON FIRST 1 OUTPUT Lhs.1, Rhs.1
33926 ~4% {2} r13 = JOIN r12 WITH Element#e67432df::Generated::Element::resolve#ff ON FIRST 1 OUTPUT Lhs.1, Rhs.1
```
After applying `pragma[only_bind_out]` to `this`:
```
198815 ~1% {2} r4 = SCAN Synth#5f134a93::Synth::TPattern#f OUTPUT In.0, In.0
198815 ~0% {2} r5 = JOIN r4 WITH Element#e67432df::Generated::Element::resolve#ff_10#join_rhs ON FIRST 1 OUTPUT Rhs.1, Lhs.1
75626 ~0% {3} r6 = JOIN r5 WITH PatternBindingDecl#ab5153b9::Generated::PatternBindingDecl::getImmediatePattern#1#dispred#fff_201#join_rhs ON FIRST 1 OUTPUT Rhs.1, Rhs.2, Lhs.1
33926 ~1% {2} r7 = JOIN r6 WITH PatternBindingDecl#ab5153b9::Generated::PatternBindingDecl::getImmediateInit#1#dispred#fff ON FIRST 2 OUTPUT Rhs.2, Lhs.2
33926 ~4% {2} r8 = JOIN r7 WITH Element#e67432df::Generated::Element::resolve#ff ON FIRST 1 OUTPUT Lhs.1, Rhs.1
```
2023-03-28 14:57:05 +02:00
Jeroen Ketema
3b8ad087eb
Make imports of codeql.util.Unit private
2023-03-28 14:14:13 +02:00
Anders Schack-Mulligen
d406b051fc
Dataflow: Remove accidentally exposed predicates.
2023-03-28 10:04:21 +02:00
Nora Dimitrijević
239e14b71a
Swift: fix QLdoc check for EnumElementExpr.qll
2023-03-27 23:48:37 +02:00
Nora Dimitrijević
41b283c07c
Swift: add .some enum content to init? calls
...
Again, this is hacky; we don't distinguish rigorously between an
optional value and its content (similar to how it was before enum
content flow).
2023-03-27 23:01:25 +02:00
Nora Dimitrijević
03122d76ce
Swift: fix a bunch of MISSING dataflow test cases
...
Optional content flow through constructors remains.
2023-03-27 23:01:25 +02:00
Nora Dimitrijević
6a127264af
Swift: distinguish between Pattern.get(Immediate)IdentityPreservingEnclosingPattern
2023-03-27 23:01:25 +02:00
Nora Dimitrijević
7dc793855b
Swift: introduce Node.asPattern()
2023-03-27 23:01:24 +02:00
Nora Dimitrijević
a715ebe826
Swift: distinguish Pattern.get(Immediate)EnclosingPattern
2023-03-27 23:01:24 +02:00
Nora Dimitrijević
9353549629
Swift: fixes responding to comments
2023-03-27 23:01:24 +02:00
Nora Dimitrijević
052a008926
Swift: Content-based dataflow through case let
2023-03-27 23:01:24 +02:00
Nora Dimitrijević
5c795632db
Swift: add Pattern.getEnclosingPattern()
2023-03-27 23:01:24 +02:00
Nora Dimitrijević
c2e9ffab63
Swift: add EnumElementExpr + Pattern.getMatchingExpr()
2023-03-27 23:01:24 +02:00
Nora Dimitrijević
5419e65e01
Swift: add NamedPattern.getVarDecl()
2023-03-27 23:01:24 +02:00
Nora Dimitrijević
feb8243d5f
Swift: move BindingPattern to the hidden AST
2023-03-27 23:01:24 +02:00
Geoffrey White
28998ccafe
Merge pull request #12471 from geoffw0/dbsinks2
...
Swift: Better sinks for swift/cleartext-storage-database
2023-03-27 12:51:13 +01:00
Jeroen Ketema
977f15f8a4
Merge pull request #12649 from jketema/unit
...
Replace all definitions of `Unit` by `import codeql.util.Unit`
2023-03-27 08:49:50 +02:00
Geoffrey White
c158f8331a
Swift: Fix regression.
2023-03-24 14:04:10 +00:00
Anders Schack-Mulligen
85511ba19d
Dataflow: Sync
2023-03-24 12:42:06 +01:00
Jeroen Ketema
a87a9438c7
Replace all definitions of Unit by import codeql.util.Unit
2023-03-24 10:39:34 +01:00
Anders Schack-Mulligen
9d88f01c82
Merge pull request #12645 from aschackmull/dataflow/renaming
...
Dataflow: Rename Make to Global and hasFlow to flow
2023-03-24 08:48:31 +01:00
Anders Schack-Mulligen
d440bc2d0c
Dataflow: Sync.
2023-03-23 13:40:23 +01:00
Anders Schack-Mulligen
2761aa73ca
Dataflow: Sync.
2023-03-23 13:06:19 +01:00
Geoffrey White
de5cf84bd5
Swift: Address check failures.
2023-03-23 11:08:49 +00:00
Geoffrey White
a5bb93402c
Swift: Replace sources with (extendable) CSV.
2023-03-23 10:52:58 +00:00
Geoffrey White
e266132f0a
Swift: Replace sinks with (extendable) CSV.
2023-03-23 10:45:29 +00:00
Geoffrey White
4c0d02a87d
Swift: Standardize the sources, sinks etc.
2023-03-23 10:39:03 +00:00
Geoffrey White
dfcad7fa84
Swift: Split the query into the usual three files.
2023-03-23 10:39:03 +00:00
Kasper Svendsen
ce6be1f636
Dataflow: Instantiate stage 1 access paths with proper unit type
2023-03-23 08:32:16 +01:00
Anders Schack-Mulligen
b2d436ccc1
Merge pull request #12533 from aschackmull/java/misc-perf
...
Java/dataflow: Misc performance fixes
2023-03-22 08:39:43 +01:00
Ed Minnix
0408e9dc2d
Fix formatting of TypeDecl.qll
2023-03-21 15:28:16 -04:00
Geoffrey White
6a2a351929
Merge pull request #12619 from geoffw0/fullname
...
Swift: Fix for TypeDecl.getFullName with extensions
2023-03-21 18:02:16 +00:00
Geoffrey White
91c324ea4f
Swift: Fix for getFullName.
2023-03-21 15:11:02 +00:00
Anders Schack-Mulligen
0d6dd7d25a
DataFlow: Sync.
2023-03-21 14:27:25 +01:00
Anders Schack-Mulligen
3876e4335f
Merge pull request #12420 from kaspersv/kaspersv/dataflow-remove-alias-preds
...
Dataflow: Remove revFlowAlias and revFlowApAlias predicates
2023-03-20 16:30:15 +01:00
Michael Nebel
17b3383043
Merge pull request #12556 from michaelnebel/java/argumentthis
...
Java: Argument[-1] -> Argument[this]
2023-03-20 15:59:59 +01:00
Kasper Svendsen
1d2f1b6ae6
Address comments
2023-03-20 13:34:14 +01:00
Kasper Svendsen
e0e3a1d621
Dataflow: remove revFlowApAlias trick
2023-03-20 13:04:13 +01:00
Geoffrey White
166902bfa0
Swift: Remove the special case for bitwise operations in the XXE query (but upgrade that bit of the query to taint flow as appears to be intended).
2023-03-20 11:18:17 +00:00
Michael Nebel
37484a415f
Sync files.
2023-03-20 09:38:40 +01:00
Kasper Svendsen
9630feb5e4
Dataflow: Remove revFlowAlias trick
2023-03-20 09:04:35 +01:00
Paolo Tranquilli
a131966066
Swift: make SuccessfullyExtractedFiles.ql more precise
...
This is done by adding a `isSuccessfullyExtracted` predicate that is
filled for primary files at the very end of the extractor invocation if
the frontend was performed successfully. If for example the extractor
crashes this will therefore not be filled.
The upgrade script is written so that `SuccessfullyExtractedFiles.ql`
on an upgraded script will give exactly the same results as before it.
2023-03-20 08:34:34 +01:00
Paolo Tranquilli
86b61d712c
Merge pull request #12565 from github/redsun82/swift-remove-labels-from-function-type
...
Swift: remove parameter labels from function types
2023-03-17 13:49:37 +01:00
Paolo Tranquilli
f2dff092dc
Swift: remove parameter labels from function types
...
As discussed [in this accepted proposal][1], parameter labels do not
take part any more in making up a function type, so we need to not
extract them any more to avoid DB inconsistencies.
These were unused in the library, which makes the upgrade and downgrade
scripts have full compatibility.
[1]: 9c53790a13/proposals/0111-remove-arg-label-type-significance.md
2023-03-17 10:22:02 +01:00
Michael Nebel
3fea9e4d0b
Sync files.
2023-03-16 14:12:29 +01:00
Geoffrey White
7feab09ea9
Swift: Specialize the additional taint step a bit more.
2023-03-16 08:57:31 +00:00
Tom Hvitved
9f798902bd
Data flow: Add consistency check for DataFlowCall::getEnclosingCallable
2023-03-16 08:40:53 +01:00
Tom Hvitved
a6e9d111a5
Merge pull request #12534 from hvitved/swift/summary-call-encl-callable
...
Swift: Fix `SummaryCall::getEnclosingCallable`
2023-03-15 14:35:00 +01:00
Tom Hvitved
96639c594f
Swift: Fix SummaryCall::getEnclosingCallable
2023-03-15 13:58:12 +01:00
Geoffrey White
a391c01d36
Swift: Fix result type of NominalType.getABaseType.
2023-03-14 17:36:30 +00:00