Chuan-kai Lin
da3e5479df
Merge pull request #20165 from github/release-prep/2.22.3
...
Release preparation for version 2.22.3
2025-08-04 09:19:35 -07:00
Chuan-kai Lin
4df1c12876
Minor CHANGELOG updates
2025-08-04 09:09:25 -07:00
github-actions[bot]
fd82aeb1f8
Release preparation for version 2.22.3
2025-08-04 15:47:57 +00:00
Tom Hvitved
65bf76e3ed
Merge pull request #20161 from hvitved/rust/fix-bad-joins
...
Rust: Fix two bad joins introduced by magic
2025-08-04 17:32:54 +02:00
Geoffrey White
8b5603cf71
Merge pull request #20160 from geoffw0/exec
...
Rust: Add type inference test cases resembling missing call targets in SQLx.
2025-08-04 16:03:12 +01:00
Geoffrey White
6925d4e564
Merge pull request #20129 from codeqlhelper/main
...
C++: Static variables are initialized to zero or null by compiler
2025-08-04 13:23:45 +01:00
Tom Hvitved
125a4b9b10
Rust: Fix two bad joins introduced by magic
...
```
Evaluated relational algebra for predicate TypeInference::closureParameterPath/2#9d0bf423#bbf@ba08cc1s with tuple counts:
565067 ~172652% {2} r1 = JOIN `Callable::Callable.getParam/1#dispred#ce0254b3_01#count_range` WITH `Callable::Generated::Callable.getNumberOfParams/0#dispred#abb45996` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
24684 ~11784% {3} | JOIN WITH Type::TTupleTypeParameter#5ca17706 ON FIRST 2 OUTPUT Rhs.2, Lhs.1, Lhs.0
2970 ~1391% {3} | JOIN WITH `TypeInference::TypePath::singleton/1#ee45de3b` ON FIRST 1 OUTPUT Lhs.1, Lhs.2, Rhs.1
664 ~242% {4} | JOIN WITH `Stdlib::FnOnceTrait.getTypeParam/0#dispred#93f20bbc` CARTESIAN PRODUCT OUTPUT Rhs.1, Lhs.0, Lhs.1, Lhs.2
303 ~49% {4} | JOIN WITH Type::TDynTraitTypeParameter#e16268df ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.2, Lhs.3
198 ~0% {8} | JOIN WITH `TypeInference::TypePath::singleton/1#ee45de3b` ON FIRST 1 OUTPUT Lhs.1, Lhs.2, _, _, Rhs.1, Lhs.3, _, _
{4} | REWRITE WITH Out.2 := (In.4 ++ In.5), Tmp.3 := (In.4 ++ In.5), Tmp.6 := "[0-9]+", Tmp.7 := "", Out.3 := regexpReplaceAll(Tmp.3,Tmp.6,Tmp.7) KEEPING 4
198 ~0% {6} | SCAN OUTPUT In.0, In.1, In.2, _, In.3, _
{4} | REWRITE WITH Out.3 := length(In.4), Tmp.5 := 10, TEST Out.3 <= Tmp.5 KEEPING 4
198 ~0% {3} | SCAN OUTPUT In.1, In.0, In.2
877984 ~1444714% {1} r2 = SCAN `CallExprBase::CallExprBase.getArg/1#dispred#d775f13d` OUTPUT In.1
299888 ~83707% {3} | JOIN WITH Type::TTupleTypeParameter#5ca17706_102#join_rhs ON FIRST 1 OUTPUT Rhs.1, Lhs.0, Rhs.2
515462762 ~59140% {4} | JOIN WITH `CallExprBase::Generated::CallExprBase.getNumberOfArgs/0#dispred#0975fe12_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.0, Lhs.2
9429188 ~25728933% {3} | JOIN WITH TypeInference::InvokedClosureExpr#24e5dacb_1#join_rhs ON FIRST 1 OUTPUT Lhs.3, Lhs.1, Lhs.2
53669 ~142315% {3} | JOIN WITH `TypeInference::TypePath::singleton/1#ee45de3b` ON FIRST 1 OUTPUT Lhs.1, Lhs.2, Rhs.1
4003 ~10522% {4} | JOIN WITH `Stdlib::FnOnceTrait.getTypeParam/0#dispred#93f20bbc` CARTESIAN PRODUCT OUTPUT Rhs.1, Lhs.0, Lhs.1, Lhs.2
370 ~910% {4} | JOIN WITH Type::TDynTraitTypeParameter#e16268df ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.2, Lhs.3
148 ~293% {8} | JOIN WITH `TypeInference::TypePath::singleton/1#ee45de3b` ON FIRST 1 OUTPUT Lhs.1, Lhs.2, _, _, Rhs.1, Lhs.3, _, _
{4} | REWRITE WITH Out.2 := (In.4 ++ In.5), Tmp.3 := (In.4 ++ In.5), Tmp.6 := "[0-9]+", Tmp.7 := "", Out.3 := regexpReplaceAll(Tmp.3,Tmp.6,Tmp.7) KEEPING 4
148 ~316% {6} | SCAN OUTPUT In.0, In.1, In.2, _, In.3, _
{4} | REWRITE WITH Out.3 := length(In.4), Tmp.5 := 10, TEST Out.3 <= Tmp.5 KEEPING 4
148 ~293% {3} | SCAN OUTPUT In.1, In.0, In.2
346 ~75% {3} r3 = r1 UNION r2
return r3
```
and
```
Evaluated relational algebra for predicate TypeInference::fnParameterPath/2#4dea2880#bbf@d56000vi with tuple counts:
1 ~0% {1} r1 = SCAN `Stdlib::FnOnceTrait.getTypeParam/0#dispred#93f20bbc` OUTPUT In.1
1 ~0% {1} | JOIN WITH Type::TTypeParamTypeParameter#868c69a5 ON FIRST 1 OUTPUT Rhs.1
1 ~0% {1} | JOIN WITH `TypeInference::TypePath::singleton/1#ee45de3b` ON FIRST 1 OUTPUT Rhs.1
877984 ~1350201% {2} | JOIN WITH `ArgList::Generated::ArgList.getArg/1#dispred#b07adc80` CARTESIAN PRODUCT OUTPUT Rhs.1, Lhs.0
321252 ~90755% {4} | JOIN WITH Type::TTupleTypeParameter#5ca17706_102#join_rhs ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.0, Rhs.2
553043191 ~65412% {5} | JOIN WITH `CallExprBase::Generated::CallExprBase.getNumberOfArgs/0#dispred#0975fe12_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.2, Lhs.0, Lhs.3
10089088 ~26772053% {4} | JOIN WITH TypeInference::InvokedClosureExpr#24e5dacb_1#join_rhs ON FIRST 1 OUTPUT Lhs.4, Lhs.1, Lhs.2, Lhs.3
57729 ~157423% {8} | JOIN WITH `TypeInference::TypePath::singleton/1#ee45de3b` ON FIRST 1 OUTPUT Lhs.2, Lhs.3, _, _, Lhs.1, Rhs.1, _, _
{4} | REWRITE WITH Out.2 := (In.4 ++ In.5), Tmp.3 := (In.4 ++ In.5), Tmp.6 := "[0-9]+", Tmp.7 := "", Out.3 := regexpReplaceAll(Tmp.3,Tmp.6,Tmp.7) KEEPING 4
57729 ~157423% {6} | SCAN OUTPUT In.0, In.1, In.2, _, In.3, _
{4} | REWRITE WITH Out.3 := length(In.4), Tmp.5 := 10, TEST Out.3 <= Tmp.5 KEEPING 4
57729 ~157423% {3} | SCAN OUTPUT In.1, In.0, In.2
return r1
```
2025-08-04 14:22:50 +02:00
Geoffrey White
2ec6dafd18
Rust: Add a type inference test case resembling missing call targets in SQLx.
2025-08-04 10:21:59 +01:00
Simon Friis Vindum
9aebc58214
Merge pull request #20147 from paldepind/rust/type-limit-metric
...
Rust: Add metric for DCA and debug predicates for type that reach the length limit
2025-08-04 07:53:14 +02:00
Mathias Vorreiter Pedersen
1fab97b765
Merge pull request #20149 from MathiasVP/expose-definition-from-dataflow-ssa
...
C++: Expose SSA definitions from dataflow
2025-08-01 12:04:04 +01:00
Mathias Vorreiter Pedersen
0e9286dd34
C++: Fix QLDoc.
2025-08-01 11:37:12 +01:00
Mathias Vorreiter Pedersen
b70836e241
C++: Modify the API to not expose dataflow nodes.
2025-08-01 11:34:49 +01:00
Mathias Vorreiter Pedersen
33d05984c8
C++: Stick the exposed SSA classes into a public SSA module.
2025-08-01 11:34:47 +01:00
Mathias Vorreiter Pedersen
32e6d0934e
C++: Drive-by fix: These files imported both the public dataflow files and the internal ones. Let's only import the internal ones.
2025-08-01 11:34:45 +01:00
Mathias Vorreiter Pedersen
7ede3aa516
C++: Fix imports.
2025-08-01 10:35:34 +01:00
Mathias Vorreiter Pedersen
0d91622d18
C++: Rename SsaInternals to SsaImpl and SsaInternalsCommon to SsaImplCommon.
2025-08-01 10:34:14 +01:00
codeqlhelper
4323e6853f
Update cpp/ql/src/change-notes/2025-07-27-avoid-reporting-static-global-variable.md
...
Co-authored-by: Geoffrey White <40627776+geoffw0@users.noreply.github.com >
2025-07-31 21:17:29 +08:00
Mathias Vorreiter Pedersen
c8f4b287d1
C++: Add a comment on the old SSA library.
2025-07-31 14:07:38 +01:00
Mathias Vorreiter Pedersen
7e93b99ff9
C++: Add change note.
2025-07-31 13:57:19 +01:00
Mathias Vorreiter Pedersen
8691075aae
Update cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaInternals.qll
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-07-31 13:52:21 +01:00
Mathias Vorreiter Pedersen
5a91aa2105
C++: Expose SSA definitions from dataflow.
2025-07-31 13:45:03 +01:00
Simon Friis Vindum
abc58ac8b3
Rust: Add metric and debug predicates for type that reach the length limit
2025-07-31 14:20:32 +02:00
Mathias Vorreiter Pedersen
1dae787605
C++: Drive-by fix suggested by Schack. This now matches the predicate in C#.
2025-07-31 12:58:05 +01:00
Ian Lynagh
492e27b8e8
Merge pull request #20141 from igfoo/igfoo/kotlin-2.2.20-beta2
...
Kotlin: Support 2.2.20-beta2
2025-07-31 12:00:17 +01:00
Ian Lynagh
e589019e04
Kotlin: Use 2.2.20-Beta2 rather than 2.2.20-Beta1
2025-07-30 14:14:14 +01:00
Ian Lynagh
4ea6133042
Kotlin: Add 2.2.20-Beta2 jars
2025-07-30 14:13:02 +01:00
Ian Lynagh
c78818d7dd
Kotlin: Remove *2.2.20-Beta1* jars
2025-07-30 14:12:43 +01:00
Simon Friis Vindum
3bc1d47738
Merge pull request #20130 from paldepind/rust/type-inference-fn
...
Rust: Implement type inference for closures and calls to closures
2025-07-30 13:13:57 +02:00
codeqlhelper
ee3e7e34ba
Merge pull request #1 from geoffw0/initnotrun .expected
...
CPP: Add .expected file for the InitialisationNotRun test
2025-07-30 18:36:29 +08:00
Geoffrey White
c0638a5fcb
CPP: Update .expected for the changes here.
2025-07-30 11:24:57 +01:00
Anders Schack-Mulligen
5ca9c090a8
Merge pull request #20132 from aschackmull/ssa/guardvalue
...
SSA: Update data flow integration and BarrierGuard interface to use GuardValue.
2025-07-30 12:23:17 +02:00
Geoffrey White
d6fddde6e0
CPP: Add .expected (results before query changes here).
2025-07-30 11:22:56 +01:00
Geoffrey White
43bca84310
CPP: Convert test to use a stub rather than a library include.
2025-07-30 11:22:53 +01:00
Simon Friis Vindum
5b152cfdec
Rust: Fix typo in change note
...
Co-authored-by: Geoffrey White <40627776+geoffw0@users.noreply.github.com >
2025-07-29 18:38:14 +02:00
Simon Friis Vindum
5540b9df71
Merge branch 'main' into rust/type-inference-fn
2025-07-29 16:43:17 +02:00
Idriss Riouak
6c00ceaec9
Merge pull request #20134 from github/idrissrio/java-dca-fix
...
Java: Move `extractorInformationSkipKey` predicate to library pack
2025-07-29 15:32:02 +01:00
idrissrio
ac52a1b123
Java: Move extractorInformationSkipKey predicate to library pack
2025-07-29 09:45:18 +02:00
Simon Friis Vindum
9d72fab287
Merge pull request #20119 from paldepind/rust/type-inference-assoc-type-tp
...
Rust: Type inference for impl trait types with type parameters
2025-07-28 11:38:17 +02:00
Anders Schack-Mulligen
3b8234ecec
SSA: Update data flow integration and BarrierGuard interface to use GuardValue.
2025-07-28 11:29:12 +02:00
Simon Friis Vindum
92bce4e432
Rust: Split getFunctionReturnPos into two predicates
2025-07-28 10:45:59 +02:00
Simon Friis Vindum
9761580b7e
Merge branch 'main' into rust/type-inference-assoc-type-tp
2025-07-28 10:39:00 +02:00
Simon Friis Vindum
8e474c946e
Rust: Add change note for type inference for closures
2025-07-28 10:27:33 +02:00
Anders Schack-Mulligen
37b508bf43
Merge pull request #20128 from aschackmull/ccr/del-formatting-instruction
...
Copilot: Remove the formatting instructions, as they're confusing CCR.
2025-07-28 10:24:30 +02:00
Simon Friis Vindum
2c758a9842
Rust: Add type inference for closures and calls to first-class functions
2025-07-27 21:28:10 +02:00
Simon Friis Vindum
8c6c28d61f
Rust: Add type inference tests for closures
2025-07-27 21:16:30 +02:00
codeqlhelper
75e545a67f
Create 2025-07-27-avoid-reporting-static-global-variable.md
2025-07-28 00:00:41 +08:00
codeqlhelper
cf21997c0f
Reduce false alarms raised by static variables
...
Static variables are initialized to zero or null by compiler, no need to get an initializer of them.
See https://stackoverflow.com/questions/13251083/the-initialization-of-static-variables-in-c
See 6.7.8/10 in the C99 Standard.
A relevant PR: https://github.com/github/codeql/pull/16527
2025-07-27 23:46:53 +08:00
codeqlhelper
89dcad48f4
Create InitialisationNotRun.qlref
2025-07-27 23:42:50 +08:00
codeqlhelper
c2d0a12e1e
Create test for InitialisationNotRun
2025-07-27 23:40:00 +08:00
Simon Friis Vindum
13d9d8ad3f
Merge pull request #20122 from paldepind/rust/type-inference-dyn-assoc
...
Rust: Fix type inference for trait objects for traits with associated types
2025-07-26 12:40:09 +02:00
Geoffrey White
4b947db0f8
Merge pull request #19804 from geoffw0/dotdot
...
Rust: Update DotDotCheck to use getCanonicalPath
2025-07-25 15:50:29 +01:00
Geoffrey White
2951ae9c7c
Merge pull request #20124 from geoffw0/clone
...
Rust: Replace QL model for Clone with MaD
2025-07-25 15:46:44 +01:00
Simon Friis Vindum
b2ee625268
Rust: Expand doc and make predicate private
2025-07-25 15:22:10 +02:00
Geoffrey White
478f39a967
Rust: Accept (trivial) test changes.
2025-07-25 14:18:34 +01:00
Anders Schack-Mulligen
6511e21f81
Remove the formatting instructions, as they're confusing CCR.
2025-07-25 14:59:16 +02:00
Geoffrey White
2192ed04be
Rust: Add clone MaD trait model.
2025-07-25 09:43:34 +01:00
Geoffrey White
4140579dd6
Rust: Remove QL model for clone.
2025-07-25 08:17:52 +01:00
Geoffrey White
7f659804e4
Rust: Fix the canonical path.
2025-07-24 17:24:29 +01:00
Geoffrey White
cfe25593ee
Merge branch 'main' into dotdot
2025-07-24 16:32:36 +01:00
Simon Friis Vindum
466bf85a67
Rust: Fix type inference for trait objects for traits with associated types
2025-07-24 16:07:39 +02:00
Simon Friis Vindum
1b2f160b55
Rust: Add type inference tests for associated types
2025-07-24 16:07:37 +02:00
Joe Farebrother
b1ee795225
Merge pull request #20086 from joefarebrother/python-qual-raise-not-implemented
...
Python: Modernise raise-not-implemented query
2025-07-24 13:18:21 +01:00
Ian Lynagh
621b4833f3
Merge pull request #20114 from igfoo/igfoo/kotlin-2.2.20
...
Kotlin: Add Kotlin 2.2.20 support
2025-07-24 11:58:51 +01:00
Simon Friis Vindum
39f602c032
Rust: Create injective ids for impl trait type parameters
2025-07-24 12:07:11 +02:00
Simon Friis Vindum
bb56b0d45b
Rust: Add type inference test with consistency issue
2025-07-24 11:55:23 +02:00
Simon Friis Vindum
9a0c5877ea
Rust: Support impl trait types in return position with function type parameters
2025-07-24 11:00:01 +02:00
Joe Farebrother
97cf15affc
Merge pull request #20052 from joefarebrother/python-qual-minor-doc-updates
...
Python: Minor documantation updates to several quality queries
2025-07-24 09:38:07 +01:00
Simon Friis Vindum
a20fed8ae5
Rust: Add type inference tests for impl trait types
2025-07-24 10:36:51 +02:00
Joe Farebrother
a8cc14493f
Fix typo - add .
...
Co-authored-by: Napalys Klicius <napalys@github.com >
2025-07-24 09:35:05 +01:00
Simon Friis Vindum
82387461ee
Merge pull request #20084 from paldepind/rust/type-inference-trait-object
...
Rust: Implement type inference for trait objects/`dyn` types
2025-07-24 10:17:23 +02:00
Simon Friis Vindum
b3dc6cba78
Rust: Use getATypeParam for consistency
2025-07-23 20:56:45 +02:00
Mathias Vorreiter Pedersen
5da7ae877b
Merge pull request #20115 from MathiasVP/add-more-windows-memcpy-functions
...
C++: Add some more Windows specific memory copy models
2025-07-23 16:10:56 +01:00
Geoffrey White
199f2473e5
Merge pull request #20024 from geoffw0/moresensitive2
...
Shared: Improve sensitive data heuristics
2025-07-23 15:38:24 +01:00
Nora Dimitrijević
5f8c457295
Merge pull request #20081 from d10c/d10c/diff-informed-phase-3-rust
...
Rust: Diff-informed queries: phase 3 (non-trivial locations)
2025-07-23 16:31:23 +02:00
Geoffrey White
91ced7ea0c
Merge pull request #20109 from github/copilot/fix-20108
...
Rust: Remove sourceModelDeprecated, summaryModelDeprecated and sinkModelDeprecated
2025-07-23 14:33:22 +01:00
Mathias Vorreiter Pedersen
cbe5561eb6
C++: Accept test changes.
2025-07-23 14:05:42 +01:00
Nora Dimitrijević
83fe9e0d51
[DIFF-INFORMED] Rust: AccessInvalidPointer
2025-07-23 14:52:44 +02:00
Nora Dimitrijević
31a73d466b
[DIFF-INFORMED] Rust: AccessAfterLifetime
2025-07-23 14:52:32 +02:00
Nora Dimitrijević
56ae8684e1
[DIFF-INFORMED] Rust: UncontrolledAllocationSize
2025-07-23 14:52:14 +02:00
Nora Dimitrijević
fcc3800756
[DIFF-INFORMED] Rust: CleartextLogging
2025-07-23 14:52:07 +02:00
Nora Dimitrijević
091163bf8e
[DIFF-INFORMED] Rust: CleartextTransmission
2025-07-23 14:52:00 +02:00
Nora Dimitrijević
78c40e209b
[DIFF-INFORMED] Rust: SqlInjection
2025-07-23 14:51:52 +02:00
Nora Dimitrijević
574bb871e0
[DIFF-INFORMED] Rust: TaintedPath
2025-07-23 14:51:45 +02:00
Nora Dimitrijević
329fd803e2
[DIFF-INFORMED] Rust: RegexInjection
2025-07-23 14:51:33 +02:00
Mathias Vorreiter Pedersen
9d736723fb
C++: Add more Windows specific models for memcpy-like tings.
2025-07-23 13:45:20 +01:00
Mathias Vorreiter Pedersen
50785f7f21
C++: Add tests with missing flow.
2025-07-23 13:37:32 +01:00
Mathias Vorreiter Pedersen
63e5c52d7e
Merge pull request #20107 from MathiasVP/add-overrun-write-barriers
...
C++: Add more barriers to `cpp/overrun-write`
2025-07-23 13:30:07 +01:00
Simon Friis Vindum
f5605c94c5
Rust: Add change note for type inference of trait objects
2025-07-23 14:08:22 +02:00
Simon Friis Vindum
12942667bf
Rust: Add type inference for dyn types
2025-07-23 14:08:15 +02:00
Simon Friis Vindum
605c8e201e
Rust: Add type inference tests for dyn types
2025-07-23 14:03:53 +02:00
Ian Lynagh
604af65b02
Kotlin: Opt in to DeprecatedForRemovalCompilerApi
...
We'll need a proper fix for this, but this will keep things working in
the meantime.
2025-07-23 12:51:12 +01:00
Ian Lynagh
709c111522
Kotlin: Add getJvmModuleNameForDeserializedDescriptor wrapper
...
It has been removed in 2.2.20.
2025-07-23 12:51:12 +01:00
Mathias Vorreiter Pedersen
3a977b86d4
Update cpp/ql/lib/semmle/code/cpp/security/ProductFlowUtils/ProductFlowUtils.qll
...
Co-authored-by: Idriss Riouak <idrissrio@github.com >
2025-07-23 12:27:38 +01:00
Mathias Vorreiter Pedersen
5d6c4a63bb
Update cpp/ql/lib/semmle/code/cpp/security/ProductFlowUtils/ProductFlowUtils.qll
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-07-23 11:53:55 +01:00
Simon Friis Vindum
49ecc60c0f
Merge pull request #20076 from paldepind/rust/type-inference-cleanup-join
...
Rust: Type inference refactor and improve join orders
2025-07-23 12:53:43 +02:00
Ian Lynagh
d1da041fcf
Kotlin: Regenerate
...
Ran "../tools/bazel mod tidy"
2025-07-23 11:53:06 +01:00
Ian Lynagh
8432f6e42e
Kotlin: Add 2.2.20-Beta1 version
2025-07-23 11:52:48 +01:00
Ian Lynagh
965f1fc547
Kotlin: Add 2.2.20 deps
2025-07-23 11:51:45 +01:00
Ian Lynagh
f148f434e1
Kotlin: Add a changenote for the addition of 2.2.2x support
2025-07-23 11:49:38 +01:00
Mathias Vorreiter Pedersen
019447b681
C++: Add change note.
2025-07-23 11:49:07 +01:00
Ian Lynagh
ad391df03f
Kotlin: Support 2.2.20
2025-07-23 11:47:52 +01:00
copilot-swe-agent[bot]
defd4a1d08
Add change note for removal of deprecated dataflow predicates
...
Co-authored-by: geoffw0 <40627776+geoffw0@users.noreply.github.com >
2025-07-23 10:41:31 +00:00
copilot-swe-agent[bot]
f1df63657b
Add CodeQL autoformatter instructions to copilot-instructions.md
...
Co-authored-by: geoffw0 <40627776+geoffw0@users.noreply.github.com >
2025-07-23 10:08:51 +00:00
Nick Rolfe
28d3a6b404
Merge pull request #20113 from github/post-release-prep/codeql-cli-2.22.2
...
Post-release preparation for codeql-cli-2.22.2
2025-07-23 06:05:34 -04:00
Nora Dimitrijević
766b0bf773
Merge pull request #20082 from d10c/d10c/diff-informed-phase-3-swift
...
Swift: Diff-informed queries: phase 3 (non-trivial locations)
2025-07-23 11:56:04 +02:00
github-actions[bot]
68a96a44d8
Post-release preparation for codeql-cli-2.22.2
2025-07-23 09:53:25 +00:00
Nick Rolfe
ff54dfe8aa
Merge pull request #20112 from github/release-prep/2.22.2
...
Release preparation for version 2.22.2
2025-07-23 05:40:18 -04:00
Nick Rolfe
2c03d1f14a
Tweak changenotes
2025-07-23 10:38:57 +01:00
copilot-swe-agent[bot]
2cc732e235
Apply QL autoformatter to ModelsAsData.qll
...
Co-authored-by: geoffw0 <40627776+geoffw0@users.noreply.github.com >
2025-07-23 09:38:10 +00:00
github-actions[bot]
26296c44d3
Release preparation for version 2.22.2
2025-07-23 09:32:53 +00:00
Nick Rolfe
a883db0935
Merge pull request #20110 from github/revert-20105-release-prep/2.22.2
...
Revert "Release preparation for version 2.22.2"
2025-07-23 05:30:33 -04:00
Nick Rolfe
12ebf717eb
Revert "Release preparation for version 2.22.2"
2025-07-23 10:09:23 +01:00
copilot-swe-agent[bot]
0245cd872c
Remove deprecated Rust dataflow predicates and associated classes
...
Co-authored-by: geoffw0 <40627776+geoffw0@users.noreply.github.com >
2025-07-23 08:49:24 +00:00
copilot-swe-agent[bot]
69d50e103f
Initial plan
2025-07-23 08:41:24 +00:00
Geoffrey White
68f0dfe046
Shared: Fix after merge.
2025-07-23 08:55:44 +01:00
Geoffrey White
4f6b698ca3
Merge branch 'main' into moresensitive2
2025-07-23 08:50:25 +01:00
Simon Friis Vindum
f432cf9c4d
Merge pull request #20041 from paldepind/rust/type-inference-tuples
...
Rust: Type inference for tuples
2025-07-23 08:21:27 +02:00
Ian Lynagh
09dd708086
Merge pull request #20031 from igfoo/igfoo/kotlin-tests-2.2.0
...
Kotlin: Run the tests with 2.2.0
2025-07-22 22:20:40 +01:00
Mathias Vorreiter Pedersen
1189665970
C++: Add barriers to 'cpp/overrun-write'.
2025-07-22 18:35:56 +01:00
Mathias Vorreiter Pedersen
a502bb1ac2
C++: Add a copy of 'isSinkPairImpl' (named 'isSinkPairImpl0') with a few more columns that we'll need.
2025-07-22 18:35:50 +01:00
Mathias Vorreiter Pedersen
e0eadc75dd
C++: Remove the ad-hoc code for keeping track of increments/decrements on pointers in the 'cpp/overrun-write' query.
2025-07-22 18:35:31 +01:00
Mathias Vorreiter Pedersen
a1f4246c5f
C++: Extract the barriers from 'cpp/invalid-pointer-deref' into a library.
2025-07-22 18:35:29 +01:00
Mathias Vorreiter Pedersen
92a730c9ac
C++: Add a false positive.
2025-07-22 18:35:21 +01:00
Ian Lynagh
cd3143f106
Kotlin: Disable the custom plugin test for now
2025-07-22 17:38:14 +01:00
Ian Lynagh
9a03f2eb26
Kotlin: Accept test changes in 2.2.0
2025-07-22 17:38:14 +01:00
Ian Lynagh
65bd1aff83
Kotlin: Update default version to 2.2.0
...
Changes the default version from 2.1.20 to 2.2.0 in the wrapper.py file.
2025-07-22 17:38:14 +01:00
Nick Rolfe
dd8d04bb94
Merge branch 'main' into post-release-prep/codeql-cli-2.22.2
2025-07-22 10:30:14 -04:00
github-actions[bot]
37cc78255a
Post-release preparation for codeql-cli-2.22.2
2025-07-22 14:22:20 +00:00
Nick Rolfe
320f75fa51
Merge pull request #20105 from github/release-prep/2.22.2
...
Release preparation for version 2.22.2
2025-07-22 10:11:13 -04:00
Nick Rolfe
43d14c28c2
Tweak changenotes
2025-07-22 15:06:09 +01:00
github-actions[bot]
997547b8ef
Release preparation for version 2.22.2
2025-07-22 14:04:14 +00:00
Nick Rolfe
5fb7541a94
Merge pull request #20104 from github/revert-20100-release-prep/2.22.2
...
Revert "Release preparation for version 2.22.2"
2025-07-22 10:01:12 -04:00
Nick Rolfe
825c813095
Revert "Release preparation for version 2.22.2"
2025-07-22 14:33:45 +01:00
Geoffrey White
6efc19daac
Merge pull request #18943 from geoffw0/constcrypto
...
Rust: new query rust/hardcoded-crytographic-value
2025-07-22 13:36:14 +01:00
Geoffrey White
f7d822b19c
Rust: Remove empty file.
2025-07-22 12:43:22 +01:00
Nick Rolfe
96a32c0179
Merge pull request #20103 from github/post-release-prep/codeql-cli-2.22.2
...
Post-release preparation for codeql-cli-2.22.2
2025-07-22 06:01:34 -04:00
github-actions[bot]
deb035cf4e
Post-release preparation for codeql-cli-2.22.2
2025-07-22 09:36:07 +00:00
Nick Rolfe
0b7111b867
Merge pull request #20100 from github/release-prep/2.22.2
...
Release preparation for version 2.22.2
2025-07-22 04:55:58 -04:00
Nick Rolfe
74cd982aca
Tweak changenotes
2025-07-22 09:51:52 +01:00
Simon Friis Vindum
6b366d8384
Merge branch 'main' into rust/type-inference-tuples
2025-07-22 10:45:41 +02:00
Simon Friis Vindum
79cc7318ba
Merge pull request #20096 from paldepind/rust/path-resolution-associated-type-fix
...
Rust: Path resolution associated type fix
2025-07-22 10:12:07 +02:00
Geoffrey White
1945fb8258
Rust: Accept changes to query suites.
2025-07-21 21:09:42 +01:00
Geoffrey White
43ac82f6a3
Rust: Update consistency check .expected files.
2025-07-21 21:01:01 +01:00
Geoffrey White
d53dada67f
Rust: Update barrier logic to use getCanonicalPath.
2025-07-21 20:56:48 +01:00
Geoffrey White
ec3ad85504
Rust: Add another test case for barriers (that still functions).
2025-07-21 20:53:37 +01:00
github-actions[bot]
c8632b70b7
Release preparation for version 2.22.2
2025-07-21 16:45:45 +00:00
Geoffrey White
796cb193fc
Rust: Accept test regressions with new format MaD.
2025-07-21 17:24:19 +01:00
Geoffrey White
fc8a662f0d
Rust: Update the models.
2025-07-21 17:24:07 +01:00
Nick Rolfe
05572b49de
Merge pull request #20099 from github/nickrolfe/revert-2.22.2-prep
...
Revert post-release preparation for codeql-cli-2.22.2
2025-07-21 10:58:49 -04:00
Nick Rolfe
ad9b637bec
Revert "Merge pull request #19994 from github/post-release-prep/codeql-cli-2.22.2"
...
This reverts commit e5b4a15e35 , reversing
changes made to 33e63109bb .
2025-07-21 15:18:59 +01:00
Simon Friis Vindum
ad5c5acae5
Merge pull request #20094 from paldepind/rust/type-inference-path-mention
...
Rust: Refactor `PathTypeMention`
2025-07-21 14:00:20 +02:00
Owen Mansel-Chan
472a6b5fe1
Merge pull request #20018 from owen-mc/java/snakeyaml-safe-unsafe-deserialization
...
Java: Update qhelp: SnakeYaml is safe from version 2.0
2025-07-21 12:22:36 +01:00
Geoffrey White
0ec10e5c30
Rust: Corrections after the merge.
2025-07-21 12:12:23 +01:00
Simon Friis Vindum
28850460b2
Rust: Accept test changes
2025-07-21 12:07:08 +02:00
Anders Schack-Mulligen
d5cdfc673e
Merge pull request #20092 from aschackmull/java/joinorder2
...
Java: Improve more join-orders
2025-07-21 11:27:14 +02:00
Nora Dimitrijević
fbee6bbe21
Merge pull request #20077 from d10c/d10c/diff-informed-phase-3-java
...
Java: Diff-informed queries: phase 3 (non-trivial locations)
2025-07-21 11:23:12 +02:00
Simon Friis Vindum
8ebebf03c2
Rust: Add type inference test with associated type that collides with type parameter
2025-07-21 10:11:41 +02:00
Simon Friis Vindum
ac6715fb3a
Rust: Avoid mixing up type parameters and associated types in path resolution
2025-07-21 10:07:41 +02:00
Simon Friis Vindum
71a5e410d7
Rust: Add path resolution test
2025-07-21 09:59:12 +02:00
Anders Schack-Mulligen
937e3dc469
Merge pull request #20091 from aschackmull/java/fix-cfg-cp-assert
...
Java: Fix accidental CP in CFG for asserts.
2025-07-21 09:07:19 +02:00
Simon Friis Vindum
441cefd0bd
Rust: Accept test changes
2025-07-21 08:34:16 +02:00
Simon Friis Vindum
27e5251285
Rust: Add resolveRootType predicate instead of using resolveType recursively
2025-07-19 13:57:31 +02:00
Simon Friis Vindum
804ffdb682
Rust: Split PathTypeMention into an alias and a non-alias subclass
2025-07-19 13:43:56 +02:00
Simon Friis Vindum
0e8c137a98
Rust: Only include paths as type mentions when they're used as such
...
On databend this changes the number of `PathTypeMention`s from 3,777,464 to 3,330,024. Not a huge difference, but there's also downstream predicates that are reduced as well.
2025-07-19 11:57:13 +02:00
Simon Friis Vindum
620d228ffa
Rust: Factor out getTypeMentionForTypeParameter
2025-07-19 08:41:38 +02:00
Anders Schack-Mulligen
46ebf503c7
Java: Improve join-order by controlling magic and breaking up TCs.
2025-07-18 16:13:11 +02:00
Anders Schack-Mulligen
ca8fe033d7
Java: Improve join by preventing ssa use-pair join.
2025-07-18 16:12:00 +02:00
Simon Friis Vindum
43b2977cb4
Shared, Rust: Reuse hasTypeConstraint in potentialInstantiationOf and factor out multipleConstraintImplementations
2025-07-18 15:33:17 +02:00
Simon Friis Vindum
bdcecdfc2c
Shared, Rust: Ensure that the constraints in satisfiesConstraintType are in relevantConstraint
2025-07-18 15:33:16 +02:00
Simon Friis Vindum
475d872ffb
Shared, Rust: Adjust type inference predicates to better match use sites
2025-07-18 15:32:42 +02:00
Anders Schack-Mulligen
d64a9368d2
Merge pull request #20088 from aschackmull/java/joinorders1
...
Java: Improve several join-orders
2025-07-18 14:54:26 +02:00
Anders Schack-Mulligen
bc2e7d4e0d
Java: Fix accidental CP in CFG for asserts.
2025-07-18 13:53:15 +02:00
Anders Schack-Mulligen
f6975117fe
Merge pull request #20083 from aschackmull/java/prune-csrf-unprotected-request-type
...
Java: Prune PathGraph for CsrfUnprotectedRequestType.ql
2025-07-18 13:25:00 +02:00
Anders Schack-Mulligen
d9f47bdec9
Java: Improve join-order by properly annotating haveIntersection.
2025-07-18 11:48:50 +02:00
Anders Schack-Mulligen
7883124abd
Java: getSourceDeclaration() and getASourceSupertype*() commute and this yields much better join-order.
2025-07-18 11:47:14 +02:00
Anders Schack-Mulligen
12732525b5
Java: Allow 2-column join on delta to improve join-order.
2025-07-18 11:45:45 +02:00
Joe Farebrother
8ccb2ed059
Merge remote-tracking branch 'origin/python-qual-raise-not-implemented' into python-qual-raise-not-implemented
2025-07-18 10:05:40 +01:00
Michael Nebel
ededa3c006
Merge pull request #20087 from github/workflow/coverage/update
...
Update CSV framework coverage reports
2025-07-18 08:34:04 +02:00
github-actions[bot]
2f84a4a5b5
Add changed framework coverage reports
2025-07-18 00:25:03 +00:00
Joe Farebrother
6d33a7ec70
Update test output
2025-07-17 22:25:18 +01:00
Joe Farebrother
f2dd96ecf4
Update python/ql/src/Exceptions/NotImplementedIsNotAnException.qhelp
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-07-17 22:08:01 +01:00
Joe Farebrother
57f1d07b2b
Undo module deprecation (used by another quality query)
2025-07-17 21:54:55 +01:00
Nora Dimitrijević
05df1d3cb9
[DIFF-INFORMED] Java: AndroidWebViewSettingsAllowsContentAccess
2025-07-17 19:02:15 +02:00
Nora Dimitrijević
24c28ed873
[DIFF-INFORMED] Java: UnsafeCertTrust
...
https://github.com/d10c/codeql/blob/d10c/diff-informed-phase-3/java/ql/src/Security/CWE/CWE-273/UnsafeCertTrust.ql#L21
2025-07-17 19:02:13 +02:00
Nora Dimitrijević
ea4af8323c
[DIFF-INFORMED] Java: TrustBoundaryViolation
...
https://github.com/d10c/codeql/blob/d10c/diff-informed-phase-3/java/ql/src/Security/CWE/CWE-501/TrustBoundaryViolation.ql#L18
2025-07-17 19:02:09 +02:00
Nora Dimitrijević
7888dcbce2
[DIFF-INFORMED] Java: TempDirLocalInformationDisclosure
...
https://github.com/d10c/codeql/blob/d10c/diff-informed-phase-3/java/ql/src/Security/CWE/CWE-200/TempDirLocalInformationDisclosure.ql#L56
2025-07-17 19:02:07 +02:00
Nora Dimitrijević
3785dbec9e
[DIFF-INFORMED] Java: TaintedEnvironmentVariable
...
https://github.com/d10c/codeql/blob/d10c/diff-informed-phase-3/java/ql/src/Security/CWE/CWE-078/ExecTaintedEnvironment.ql#L22
2025-07-17 19:02:05 +02:00
Nora Dimitrijević
b3b139bb02
[DIFF-INFORMED] Java: SqlConcatenated
...
https://github.com/d10c/codeql/blob/d10c/diff-informed-phase-3/java/ql/src/Security/CWE/CWE-089/SqlConcatenated.ql#L27
2025-07-17 19:02:04 +02:00
Nora Dimitrijević
45b627df1d
[DIFF-INFORMED] Java: SensitiveLogging
...
https://github.com/d10c/codeql/blob/d10c/diff-informed-phase-3/java/ql/src/Security/CWE/CWE-532/SensitiveInfoLog.ql#L20
2025-07-17 19:02:02 +02:00
Nora Dimitrijević
bc0b383595
[DIFF-INFORMED] Java: MaybeBrokenCryptoAlgorithm
...
https://github.com/d10c/codeql/blob/d10c/diff-informed-phase-3/java/ql/src/Security/CWE/CWE-327/MaybeBrokenCryptoAlgorithm.ql#L25
2025-07-17 19:02:00 +02:00
Nora Dimitrijević
b688df9dec
[DIFF-INFORMED] Java: LogInjection
...
https://github.com/d10c/codeql/blob/d10c/diff-informed-phase-3/java/ql/src/Security/CWE/CWE-117/LogInjection.ql#L20
2025-07-17 19:01:58 +02:00
Nora Dimitrijević
2d734056b1
[DIFF-INFORMED] Java: InsecureLdapAuth
...
https://github.com/d10c/codeql/blob/d10c/diff-informed-phase-3/java/ql/src/Security/CWE/CWE-522/InsecureLdapAuth.ql#L21
2025-07-17 19:01:56 +02:00
Nora Dimitrijević
74b37e71a0
[DIFF-INFORMED] Java: InsecureCookie
...
https://github.com/d10c/codeql/blob/d10c/diff-informed-phase-3/java/ql/src/Security/CWE/CWE-614/InsecureCookie.ql#L21
2025-07-17 19:01:52 +02:00
Nora Dimitrijević
19e5c3d805
[DIFF-INFORMED] Java: ImproperValidationOfArray…
...
https://github.com/d10c/codeql/blob/d10c/diff-informed-phase-3/java/ql/src/Security/CWE/CWE-129/ImproperValidationOfArrayIndexCodeSpecified.ql#L48
https://github.com/d10c/codeql/blob/d10c/diff-informed-phase-3/java/ql/src/Security/CWE/CWE-129/ImproperValidationOfArrayConstructionCodeSpecified.ql#L28
https://github.com/d10c/codeql/blob/d10c/diff-informed-phase-3/java/ql/src/Security/CWE/CWE-129/ImproperValidationOfArrayConstruction.ql#L26
https://github.com/d10c/codeql/blob/d10c/diff-informed-phase-3/java/ql/src/Security/CWE/CWE-129/ImproperValidationOfArrayIndex.ql#L24
2025-07-17 19:01:50 +02:00
Nora Dimitrijević
919fea53f0
[DIFF-INFORMED] Java: ExternallyControlledFormatString
...
https://github.com/d10c/codeql/blob/d10c/diff-informed-phase-3/java/ql/src/Security/CWE/CWE-134/ExternallyControlledFormatString.ql#L24
2025-07-17 19:01:34 +02:00
Nora Dimitrijević
1c6ecf1216
[DIFF-INFORMED] Java: UntrustedDataToExternalAPI
...
https://github.com/d10c/codeql/blob/d10c/diff-informed-phase-3/java/ql/src/Security/CWE/CWE-020/UntrustedDataToExternalAPI.ql#L20
2025-07-17 18:59:15 +02:00
Nora Dimitrijević
0cf1195678
[DIFF-INFORMED] Java: ConditionalBypass
...
https://github.com/d10c/codeql/blob/d10c/diff-informed-phase-3/java/ql/src/Security/CWE/CWE-807/ConditionalBypass.ql#L26
2025-07-17 18:59:14 +02:00
Nora Dimitrijević
0bcdb421ed
[DIFF-INFORMED] Java: ArithmeticUncontrolled
...
https://github.com/d10c/codeql/blob/d10c/diff-informed-phase-3/java/ql/src/Security/CWE/CWE-190/ArithmeticUncontrolled.ql#L36
2025-07-17 18:59:11 +02:00
Nora Dimitrijević
54546f6e99
[DIFF-INFORMED] Java: ArithmeticTainted
...
https://github.com/d10c/codeql/blob/d10c/diff-informed-phase-3/java/ql/src/Security/CWE/CWE-190/ArithmeticTainted.ql#L35
2025-07-17 18:59:09 +02:00
Nora Dimitrijević
8353fdd041
[DIFF-INFORMED] Java: (Android)SensitiveCommunication
...
https://github.com/d10c/codeql/blob/d10c/diff-informed-phase-3/java/ql/src/Security/CWE/CWE-927/SensitiveCommunication.ql#L20
2025-07-17 18:59:06 +02:00
Nora Dimitrijević
b33058c967
[TEST] Java: SensitiveCommunication: convert to qlref
2025-07-17 18:59:05 +02:00
Nora Dimitrijević
44bb5e7220
[TEST] Java: ConditionalBypass: convert to qlref
2025-07-17 18:59:03 +02:00
Nora Dimitrijević
6134518d60
[TEST] Java: SensitiveLogInfo: convert to qlref
2025-07-17 18:59:01 +02:00
Nora Dimitrijević
94386f0550
[TEST] Java: TrustBoundaryViolations: convert test to qlref
2025-07-17 18:58:59 +02:00
Nora Dimitrijević
49e03b4dfd
[TEST] Java: UnsafeCertTrust: convert test to qlref
2025-07-17 18:58:56 +02:00
Nora Dimitrijević
7aced48443
[TEST] Java: LogInjection: convert test to qlref
2025-07-17 18:58:54 +02:00
Nora Dimitrijević
5c2cf79785
[TEST] Java: CWE-020/ExternalAPI: new test based on qhelp
2025-07-17 18:58:52 +02:00
Geoffrey White
c2ddf25f11
Merge branch 'main' into constcrypto
2025-07-17 16:13:58 +01:00
Anders Schack-Mulligen
996de78a66
Java: Prune PathGraph for CsrfUnprotectedRequestType.ql
2025-07-17 15:06:38 +02:00
Anders Schack-Mulligen
1485d7072d
Merge pull request #19885 from aschackmull/java/annotated-exit-cfg
...
Java: Add AnnotatedExitNodes to the CFG.
2025-07-17 15:02:24 +02:00
Nora Dimitrijević
4342b2b799
[DIFF-INFORMED] Swift: UnsafeWebViewFetch
...
https://github.com/d10c/codeql/blob/d10c/diff-informed-phase-3/swift/ql/src/queries/Security/CWE-079/UnsafeWebViewFetch.ql#L24
2025-07-17 14:59:09 +02:00
Nora Dimitrijević
b1e723991e
[DIFF-INFORMED] Swift: InsecureTLS
...
https://github.com/d10c/codeql/blob/d10c/diff-informed-phase-3/swift/ql/src/queries/Security/CWE-757/InsecureTLS.ql#L18
2025-07-17 14:59:07 +02:00
Nora Dimitrijević
6dea73b081
[DIFF-INFORMED] Swift: CleartextStoragePreferences
...
https://github.com/d10c/codeql/blob/d10c/diff-informed-phase-3/swift/ql/src/queries/Security/CWE-312/CleartextStoragePreferences.ql#L32
2025-07-17 14:59:05 +02:00
Nora Dimitrijević
cd3fa64ee3
[DIFF-INFORMED] Swift: CleartextStorageDatabase
...
https://github.com/d10c/codeql/blob/d10c/diff-informed-phase-3/swift/ql/src/queries/Security/CWE-311/CleartextStorageDatabase.ql#L33
2025-07-17 14:59:03 +02:00
Michael Nebel
2f29459cda
Merge pull request #19931 from michaelnebel/ql4ql/qualitytagcheck
...
Ql4ql: Quality query tagging.
2025-07-17 14:53:14 +02:00
Idriss Riouak
36ebe99f2f
Merge pull request #19707 from microsoft/lwsimpkins/fix-qhelp-upstream
...
fix qhelp files
2025-07-17 14:51:01 +02:00
Owen Mansel-Chan
af977e9ac7
Merge pull request #20067 from owen-mc/java/unsafe-deserialization-mad-sinks
...
Java: allow the definition of `java/unsafe-deserialization` sinks using data extensions
2025-07-17 13:42:31 +01:00
Kasper Svendsen
a807db52ad
Merge pull request #19872 from github/kaspersv/overlay-java-enable
...
Overlay: Enable overlay compilation for Java
2025-07-17 14:38:17 +02:00
Jeroen Ketema
acc66c7b58
Merge pull request #19984 from jketema/jketema/sec-shared
...
Make a proper shared library out of the concept related libraries
2025-07-17 13:25:33 +02:00
Owen Mansel-Chan
6629bd8279
No need to deprecate classes when module is deprecated
2025-07-17 11:52:31 +01:00
Owen Mansel-Chan
b361f76643
Delete unused private class
2025-07-17 11:36:06 +01:00
Anders Schack-Mulligen
448cc82ef9
Kotlin: Accept more test changes.
2025-07-17 11:21:27 +02:00
Anders Schack-Mulligen
54775e0958
Java: Adjust Paths.qll
2025-07-17 11:21:26 +02:00
Anders Schack-Mulligen
e7a6259bd7
Java: Accept test changes.
2025-07-17 11:21:26 +02:00
Anders Schack-Mulligen
fbe79e8a52
Java: Add AnnotatedExitNodes to the CFG.
2025-07-17 11:21:26 +02:00
Joe Farebrother
680e31dc48
Modernize raise-not-implemented
2025-07-17 10:02:00 +01:00
Owen Mansel-Chan
53e1939b60
Merge pull request #20053 from owen-mc/go/fix-dataflowconsistency
...
Go: Fix compilation of DataFlowImplConsistency.qll
2025-07-17 09:22:12 +01:00
Michael Nebel
01738c2e42
Merge pull request #19940 from michaelnebel/csharp/fixmodels
...
C#: Improve some existing manual models.
2025-07-17 07:58:14 +02:00
Jeroen Ketema
eabe651edf
Merge pull request #20069 from jketema/spaceship-ir
...
C++: Support the spaceship operator in the IR
2025-07-16 21:45:39 +02:00
Jeroen Ketema
29a6af4efd
C++: Fix instruction class name
2025-07-16 18:11:17 +02:00
Jeroen Ketema
f319381f27
C++: Support the spaceship operator in the IR
2025-07-16 17:53:55 +02:00
Jeroen Ketema
9b8302f983
Merge pull request #20068 from jketema/spaceship-test
...
C++: Add test that shows that IR generation for `<=>` is broken
2025-07-16 16:50:25 +02:00
Owen Mansel-Chan
805e31fdb9
Update test expectations
2025-07-16 15:25:45 +01:00
Jeroen Ketema
807ab986f4
C++: Update more exoected test results
2025-07-16 16:19:40 +02:00
Mathias Vorreiter Pedersen
a9fb49a2c3
Merge pull request #20066 from MathiasVP/dont-summarize-function-pointer-calls
...
C++: Don't wrap calls through function pointers in `FunctionWithWrappers`
2025-07-16 14:57:14 +01:00
Jeroen Ketema
2709bf0615
C++: Add test that shows that IR generation for <=> is broken
2025-07-16 15:54:18 +02:00
Owen Mansel-Chan
7d4a70cc1d
Add change notes
2025-07-16 14:44:24 +01:00
Owen Mansel-Chan
ad60aff860
Update which sink kinds are shared between languages
2025-07-16 14:42:12 +01:00
Owen Mansel-Chan
fdd1e3fefe
Use MaD models for unsafe deserialization sinks when possible
...
Many of the unsafe deserialization sinks have to stay defined in QL
because they have custom logic that cannot be expressed in MaD models.
2025-07-16 14:42:07 +01:00
Mathias Vorreiter Pedersen
8b953e4f22
C++: No need for 'resolveCall' anymore.
2025-07-16 14:28:04 +01:00
Mathias Vorreiter Pedersen
df4b338c5d
C++: Add change notes.
2025-07-16 14:11:09 +01:00
Jeroen Ketema
1990438376
JS: Fix import
...
The import should not have been private, because we want users to still be
able to import this file and have access to the crypto algorithms.
2025-07-16 14:41:50 +02:00
Jeroen Ketema
24bea738c9
Shared: Add missing QLDoc and change note
2025-07-16 14:37:43 +02:00
Simon Friis Vindum
7f8829ad8e
Rust: Add additional inline expectation
...
Co-authored-by: Arthur Baars <aibaars@github.com >
2025-07-16 14:00:27 +02:00
Mathias Vorreiter Pedersen
ca913b452c
C++: Don't summarize calls through function pointers in FunctionWithWrappers.
2025-07-16 11:51:46 +01:00
Jeroen Ketema
200d46f5c7
Merge pull request #20060 from jketema/typeid-fix
...
C++: Fix typeid IR translation
2025-07-16 12:40:03 +02:00
Simon Friis Vindum
bbd7ed57ce
Rust: Add inline expectation
2025-07-16 12:32:35 +02:00
Michael Nebel
e9fdca7d39
C#: Address review comments.
2025-07-16 11:12:25 +02:00
Chris Smowton
d6a3b2e91f
Merge pull request #20065 from smowton/smowton/fix/web.config
...
C#: Make web.config match case insensitive (with change note)
2025-07-16 09:52:34 +01:00
Michael Nebel
c5357ff556
Merge pull request #20008 from Hug0Vincent/csharp
...
feat: add getASupertype() predicate in ValueOrRefType.
2025-07-16 10:39:57 +02:00
Chris Smowton
a537c0091e
change note
2025-07-16 09:06:38 +01:00
Simon Friis Vindum
a508089df8
Rust: Improvements to tuple type inference based on PR feedback
2025-07-16 09:38:29 +02:00
Geoffrey White
d264fb5865
Merge pull request #20042 from geoffw0/sinknoise
...
Rust: Make rust/summary/query-sinks less noisy
2025-07-16 08:36:16 +01:00
Michael Nebel
70bf61dc57
C#: Convert Deserialization tests to use inline expectations.
2025-07-16 08:41:58 +02:00
Michael Nebel
8f8b0428ab
C#: Add change-note.
2025-07-16 08:41:56 +02:00
Michael Nebel
eba901f610
C#: Update flow summaries expected output.
2025-07-16 08:41:55 +02:00
Michael Nebel
95763dd225
C#: Add some models for SerializationInto and SerializationInfoEnumerator.
2025-07-16 08:41:53 +02:00
Michael Nebel
5c05ff843a
C#: Improve the models for System.Text.Encoding.[GetBytes|GetChars].
2025-07-16 08:41:52 +02:00
Michael Nebel
064c4fca12
C#: Add models for the remaining overloads of System.Xml.XmlDictionaryReader.CreateBinaryReader.
2025-07-16 08:41:50 +02:00
Michael Nebel
3ae69d5f3d
C#: Promote the generated System.Xml.XmlDictionaryReader.CreateBinaryReader models to manual models.
2025-07-16 08:41:49 +02:00
Michael Nebel
8ee16f68a7
C#: Update test expected output.
2025-07-16 08:41:48 +02:00
Michael Nebel
13b40bbab4
C#: Fix erroneous model the MemoryStream constructor (and align with the other models).
2025-07-16 08:41:46 +02:00
Michael Nebel
4036140f4b
C#: Add Deserialize testcase.
2025-07-16 08:41:45 +02:00
Hugo
8c82405b5b
Update 2025-06-10-getasupertype.md
2025-07-16 00:35:30 +02:00
Hugo
6384cf2e4f
Update predicate name
2025-07-16 00:35:14 +02:00
Jeroen Ketema
529712122c
C++: Address review comments
2025-07-15 22:15:11 +02:00
James Frank
b9acaa0cbd
Make web.config match case insensitive
2025-07-15 15:34:42 -04:00
Jeroen Ketema
a08d594371
C++: Introduce TypeidInstruction base class
2025-07-15 21:31:24 +02:00
Jeroen Ketema
58aa7588e5
Merge pull request #20059 from MathiasVP/no-more-as-expr-inUncontrolledProcessOperation
...
C++: Reduce duplication in `cpp/uncontrolled-process-operation`
2025-07-15 21:17:08 +02:00
Jeroen Ketema
54f11ca611
C++: Fix typo in comment
2025-07-15 20:40:57 +02:00
Jeroen Ketema
70bff4e726
C++: Fix typeid IR translation
2025-07-15 20:24:17 +02:00
Chris Smowton
16f3fc6c33
Merge pull request #20056 from github/smowton/fix/tainted-path-is-local
...
Golang: Mark filepath.IsLocal as a tainted-path sanitizer guard
2025-07-15 17:40:07 +01:00
Mathias Vorreiter Pedersen
327c4b345d
Merge pull request #20058 from jketema/typeid-test
...
C++: Add test showing that the IR translation for `typeid` is broken
2025-07-15 16:55:16 +01:00
Chris Smowton
b71f9ae240
Fix function qname
2025-07-15 16:37:30 +01:00
Jeroen Ketema
477edd215c
C++: Add test showing that the IR translation for typeid is broken
2025-07-15 17:29:00 +02:00
Owen Mansel-Chan
9ef22fff8e
Update SnakeYaml reference to note that it is outdated
2025-07-15 15:27:01 +01:00
Kasper Svendsen
10a678dcbd
Java lib qlpack: Enable overlay compilation
2025-07-15 16:23:40 +02:00
Kasper Svendsen
9c3e275e66
Merge pull request #20011 from kaspersv/kaspersv/discard-xml
...
Overlay: Add XML and Java property discarding
2025-07-15 16:13:38 +02:00
Chris Smowton
ac72f8523a
Change note
2025-07-15 14:51:19 +01:00
Chris Smowton
c8eefb7c5c
Golang: Mark filepath.IsLocal as a tainted-path sanitizer guard
2025-07-15 14:47:17 +01:00
Kasper Svendsen
f84a3084f0
Address review comment about ignored QL variable
...
Co-authored-by: Anders Schack-Mulligen <aschackmull@users.noreply.github.com >
2025-07-15 15:34:08 +02:00
Anders Schack-Mulligen
b13f11883c
Merge pull request #20054 from aschackmull/java/fixup-control-char-query
...
Java: Restrict results to source literals.
2025-07-15 15:28:46 +02:00
Anders Schack-Mulligen
9e87095bed
Java: Restrict results to source literals.
2025-07-15 14:54:02 +02:00
Owen Mansel-Chan
9661ee407f
Fix compilation of DataFlowImplConsistency.qll
2025-07-15 13:51:45 +01:00
Joe Farebrother
0f5be2d096
Update python/ql/src/Expressions/DuplicateKeyInDictionaryLiteral.py
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-07-15 13:33:57 +01:00
Joe Farebrother
909f57261c
Minor doc updates; updating python 2 references to python 3 and updating grammar
2025-07-15 13:26:46 +01:00
Nick Rolfe
16e9e8e836
Merge pull request #20049 from github/nickrolfe/java-deleted-files
...
Java: use `overlayChangedFiles` in discard prediactes
2025-07-15 07:42:54 -04:00
Joe Farebrother
7a7db0efe8
Update unsupported format character documentaion, fix outdated reference link
2025-07-15 10:42:25 +01:00
Joe Farebrother
df5f76872f
Update docs for duplicate-key-in-dict-literal to relate. to python 3
2025-07-15 10:18:29 +01:00
Nick Rolfe
c199d0cbbe
Java: use overlayChangedFiles in discard prediactes
2025-07-15 10:10:32 +01:00
Simon Friis Vindum
8858f213ff
Rust: Add a change note
2025-07-15 10:23:30 +02:00
Simon Friis Vindum
97e77944eb
Rust: Accept test changes
2025-07-15 10:21:53 +02:00
Simon Friis Vindum
7c04c9f969
Rust: Store arity in tuple type parameters
...
Type parameters are required to belong to a single type only. Since we store the arity for tuple types, we need to store the arity in tuple type parameters as well such that we can associate them to the tuple type of the same arity.
2025-07-15 09:50:15 +02:00
Mathias Vorreiter Pedersen
29cceeba1a
C++: Don't use asExpr to mark the sink in 'cpp/uncontrolled-process-operation'.
2025-07-14 18:08:58 +01:00
Jeroen Ketema
2ed54d52ad
Merge pull request #20040 from MathiasVP/fix-global-variable-recursion-fp
...
C++: Fix global variable dataflow FP
2025-07-14 18:59:34 +02:00
Geoffrey White
26dae8144c
Rust: Make rust/summary/query-sinks less noisy and thus more useful. This is the one in the DCA meta queries output, not the grand total used in metrics.
2025-07-14 17:26:43 +01:00
Jeroen Ketema
d33cd71685
Merge pull request #20030 from github/tausbn/javascript-ignore-tsconfig-outdirs-that-exclude-everything
...
JavaScript: Ignore `outDir`s that would exclude everything
2025-07-14 17:36:30 +02:00
Paolo Tranquilli
85d1e06335
Merge pull request #20039 from github/redsun82/kotlin-plugin-test
...
Kotlin: tweak plugin test
2025-07-14 17:20:27 +02:00
Mathias Vorreiter Pedersen
c83895fdd2
Merge branch 'main' into fix-global-variable-recursion-fp
2025-07-14 16:08:46 +01:00
Mathias Vorreiter Pedersen
1d36405084
C++: Accept path changes.
2025-07-14 15:47:06 +01:00
Simon Friis Vindum
03a9a1688e
Rust: Add type inference for tuples
2025-07-14 16:37:05 +02:00
Jeroen Ketema
199587095a
Add overlay annotations
2025-07-14 16:31:04 +02:00
Jeroen Ketema
cbde11ddc9
Properly share ConceptsShared.qll
2025-07-14 16:30:45 +02:00
Simon Friis Vindum
21c030fa46
Rust: Expand on type inference test for tuples
2025-07-14 16:24:11 +02:00
Mathias Vorreiter Pedersen
a825213c05
C++: Fix FP by not generating a global def entry node for variable 'v' in the 'IRfunction' for 'v' itself.
2025-07-14 15:22:52 +01:00
Mathias Vorreiter Pedersen
46627c677d
C++: Add FP in dataflow through global variables.
2025-07-14 15:20:08 +01:00
Simon Friis Vindum
87a8dccf7a
Merge pull request #20037 from paldepind/rust/type-inference-rename-expectations
...
Rust: Rename type inference test inline expectation tag
2025-07-14 15:54:18 +02:00
Paolo Tranquilli
31d0897f74
Kotlin: disable bazel cache in plugin test
2025-07-14 15:30:11 +02:00
Nick Rolfe
c941e917e7
Merge pull request #19731 from github/nickrolfe/ruby-compile-for-overlay-eval
...
Ruby: enable overlay compilation
2025-07-14 08:20:28 -04:00
Simon Friis Vindum
72854537f4
Merge branch 'main' into rust/type-inference-rename-expectations
2025-07-14 14:15:59 +02:00
Paolo Tranquilli
77cab9d068
Kotlin: tweak plugin test
...
Put less emphasis on plugin build isolation, to get a better DevEx out
of it. The crux of the test is the database extraction part, not the
plugin build.
2025-07-14 13:52:22 +02:00
Geoffrey White
918700ff6f
Merge branch 'main' into moresensitive2
2025-07-14 11:58:08 +01:00
Geoffrey White
da0742f3ec
Rust: Update path resolution consistency .expected.
2025-07-14 11:45:45 +01:00
Geoffrey White
30c6082b5d
Sync identical files.
2025-07-14 11:45:34 +01:00
Geoffrey White
b43a0e758b
Merge pull request #19946 from geoffw0/models3b
...
Rust: Update legacy MaD models 3
2025-07-14 11:19:47 +01:00
Geoffrey White
e121579a85
Rust: Adjust the test labels slightly.
2025-07-14 11:19:31 +01:00
Geoffrey White
9f59a3501c
Rust: Revert ipaddr and fingerprint terms (too many FPs).
2025-07-14 11:17:09 +01:00
Geoffrey White
be7db8079a
Rust: Accept consistency check change (from CI).
2025-07-14 10:59:03 +01:00
Ian Lynagh
86ebf3d9f6
Merge pull request #20034 from github/igfoo/fix_regex_in_dbscheme_parser
...
Kotlin: Update regex patterns to use raw string notation
2025-07-14 10:43:45 +01:00
Jeroen Ketema
f07d8ee493
Remove duplicate copies of CryptoAlgorithms and CryptoAlgorithmNames
2025-07-14 11:39:06 +02:00
Jeroen Ketema
f4ba2e1fd0
Properly share CryptoAlgorithms and CryptoAlgorithmNames
2025-07-14 11:39:00 +02:00
Jeroen Ketema
c582a9ccd6
Remove duplicate copies of SensitiveDataHeuristics
2025-07-14 11:38:52 +02:00
Jeroen Ketema
8b828cecf1
Use shared SensitiveDataHeuristics
2025-07-14 11:38:47 +02:00
Jeroen Ketema
01ee3f7011
Shared: Add shared concepts library
2025-07-14 11:38:39 +02:00
Michael B. Gale
27f2000eff
Merge pull request #20035 from github/dependabot/go_modules/go/extractor/extractor-dependencies-5538d87460
...
Bump golang.org/x/tools from 0.34.0 to 0.35.0 in /go/extractor in the extractor-dependencies group
2025-07-14 10:12:38 +01:00
Simon Friis Vindum
1f2e0683e7
Rust: Rename type inference test inline expectation tag
2025-07-14 11:02:22 +02:00
Napalys Klicius
cb6978063e
Merge pull request #19388 from AdnaneKhan/patch-1
...
Actions: Fix Critical Artifact poisoning False Positive
2025-07-14 09:58:18 +02:00
dependabot[bot]
c267a88f88
Bump golang.org/x/tools
...
---
updated-dependencies:
- dependency-name: golang.org/x/tools
dependency-version: 0.35.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: extractor-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-07-14 03:37:24 +00:00
Ian Lynagh
a6701ced8d
Kotlin: Update regex patterns to use raw string notation
...
Fixes warnings like
SyntaxWarning: invalid escape sequence '\S'
2025-07-13 23:42:50 +01:00
Jeroen Ketema
d82d5c23bf
Merge pull request #20026 from jketema/concept-fix
...
C++: Fix C++20 concept related class extensions
2025-07-13 10:20:10 +02:00
Owen Mansel-Chan
391e9f7471
Merge pull request #20000 from owen-mc/go/request-forgery
...
Go: Add `Head` and `Client.Head` from `net/http` as request forgery sinks
2025-07-12 00:30:23 +01:00
Owen Mansel-Chan
03e8865933
Merge pull request #20025 from owen-mc/java/unsafe-deserialization
...
Java: add extra sink for `java/unsafe-deserialization`
2025-07-11 23:59:22 +01:00
Geoffrey White
05e1cd437d
Rust: Fix garbled merge.
2025-07-11 17:50:24 +01:00
Geoffrey White
e20ae48699
Merge branch 'main' into models3b
2025-07-11 17:37:52 +01:00
Adnan Khan
c95b5ce598
Merge branch 'main' into patch-1
2025-07-11 09:12:39 -07:00
AdnaneKhan
6ac0f0e031
Fix change note filename.
2025-07-11 12:11:58 -04:00
Geoffrey White
68a37f99e3
Rust: Add something similar as a type inference test case.
2025-07-11 17:08:05 +01:00
Arthur Baars
14a362d1bc
Merge pull request #20029 from github/aibaars/more-pattern-tests
...
Rust: add more type inference tests for patterns and a simple one for a closure call
2025-07-11 17:35:37 +02:00
Geoffrey White
33ea822f40
Rust: Workaround for type inference issue in the test.
2025-07-11 16:09:43 +01:00
Taus
30f705822d
JavaScript: Add test where outDir resolves to an unwanted path
2025-07-11 14:58:03 +00:00
Taus
344535b559
Merge pull request #19672 from github/tausbn/python-support-type-annotations-in-call-graph
...
Python: Support type annotations in call graph
2025-07-11 16:44:10 +02:00
Geoffrey White
4778ef616a
Rust: Add a test case for password_confirmation.
2025-07-11 15:43:31 +01:00
Tom Hvitved
88b4f971b5
Merge pull request #20027 from hvitved/rust/remove-resolves-as-item
...
Rust: Remove `Resolvable.resolvesAsItem`
2025-07-11 16:39:12 +02:00
Mathias Vorreiter Pedersen
1da42cb590
Merge pull request #20023 from MathiasVP/dataflow-for-functors
...
C++: Better dataflow for function objects
2025-07-11 15:14:27 +01:00
Arthur Baars
519905ee9e
Rust: type inference: add test for closure argument
2025-07-11 15:59:43 +02:00
Arthur Baars
32e7a9d445
Rust: type inference: more pattern matching tests
...
Thanks to co-pilot for generating the examples
2025-07-11 15:55:45 +02:00
Taus
2f822cb0cd
JavaScript: Add change note
2025-07-11 13:32:35 +00:00
Taus
43accc50cd
JavaScript: Ignore outDirs that would exclude everything
...
In #19680 we added support for automatically ignoring files in the
`outDir` directory as specified in the TSconfig compiler options (as
these files were likely duplicates of `.ts` file we were already
scanning).
However, in some cases people put `outDir: "."` or even `outDir: ".."`
in their configuration, which had the side effect of excluding _all_
files, leading to a failed extraction.
With the changes in this PR, we now ignore any `outDir`s that are not
properly contained within the source root of the code being scanned.
This should prevent the files from being extracted, while still allowing
us to not double-scan files in, say, a `.github` directory, as seen in
some Actions workflows.
2025-07-11 13:28:59 +00:00
Mathias Vorreiter Pedersen
053a749e14
C++: Add change note.
2025-07-11 13:43:01 +01:00
Tom Hvitved
655b3de6bb
Rust: Remove Resolvable.resolvesAsItem
...
Removes one more use of extractor-based resolution.
2025-07-11 14:41:41 +02:00
Mathias Vorreiter Pedersen
649c8831ec
Merge pull request #20014 from jketema/wchar
...
C++: Do not alert on unreachable code in `cpp/incorrect-string-type-conversion`
2025-07-11 13:39:37 +01:00
Tom Hvitved
0a18db8960
Merge pull request #20020 from hvitved/rust/type-inference-pattern-matching
...
Rust: Type inference for pattern matching
2025-07-11 14:05:10 +02:00
Taus
c6c6a857df
Python: Add tests
...
Also fixes an issue with the return type annotations that caused these
to not work properly.
Currently, annotated assignments don't work properly, due to the fact
that our flow relation doesn't consider flow going to the "type" part of
an annotated assignment. This means that in `x : Foo`, we do correctly
note that `x` is annotated with `Foo`, but we have no idea what `Foo`
is, since it has no incoming flow.
To fix this we should probably just extend the flow relation, but this
may need to be done with some care, so I have left it as future work.
2025-07-11 12:03:14 +00:00
Taus
2c45550a9f
Python: Add change note
...
Co-authored-by: Napalys Klicius <napalys@github.com >
2025-07-11 12:03:14 +00:00
Taus
d1cf7f0624
Python: Support type annotations in call graph
...
Adds support for tracking instances via type annotations. Also adds a
convenience method to the newly added `Annotation` class,
`getAnnotatedExpression`, that returns the expression that is annotated
with the given type. For return annotations this is any value returned
from the annotated function in question.
Co-authored-by: Napalys Klicius <napalys@github.com >
2025-07-11 12:03:14 +00:00
Jeroen Ketema
232377a583
C++: Fix C++20 concept related class extensions
2025-07-11 13:38:06 +02:00
Geoffrey White
8f6f9f4359
Add change notes.
2025-07-11 11:54:59 +01:00
Tom Hvitved
edf6c7fbd6
Rust: Handle (Enum::)Variant::<TypeArg> type mentions
2025-07-11 12:44:47 +02:00
Tom Hvitved
a96d3d7be8
Rust: Add more type inference tests
2025-07-11 12:42:54 +02:00
Owen Mansel-Chan
7764fbb664
Change note
2025-07-11 11:05:48 +01:00
Owen Mansel-Chan
8e4bd1a102
Add sink for ObjectInput.readObject to make test pass
2025-07-11 11:05:38 +01:00
Owen Mansel-Chan
34fae324a0
Add test for ObjectInput.readObject
2025-07-11 11:03:47 +01:00
Mathias Vorreiter Pedersen
4f538a2b1f
C++: Accept taint test changes.
2025-07-11 09:46:22 +01:00
Mathias Vorreiter Pedersen
6d0c8c6d77
C++: Work around an extractor bug.
2025-07-11 09:46:20 +01:00
Mathias Vorreiter Pedersen
df241ad4f6
C++: Fix lambda creation for objects with no constructor.
2025-07-11 09:46:09 +01:00
Tom Hvitved
ac13f408e4
Add change note
2025-07-11 10:42:50 +02:00
Tom Hvitved
4ab2977358
Rust: Type inference for pattern matching
2025-07-11 10:37:40 +02:00
Mathias Vorreiter Pedersen
b53c3547d0
C++: Add lambda dispatch for functors.
2025-07-11 09:36:45 +01:00
Mathias Vorreiter Pedersen
663c3e7b6d
C++: Sync identical files.
2025-07-11 09:36:44 +01:00
Mathias Vorreiter Pedersen
11cba94032
C++: Add a missing predicate on 'UninitializedInstruction' that we will use later.
2025-07-11 09:36:42 +01:00
Mathias Vorreiter Pedersen
6736dd4e8f
C++: Add some tests with missing flow through function objects.
2025-07-11 09:36:38 +01:00
Tom Hvitved
53ee565fdb
Rust: Add more type inference tests
2025-07-11 10:22:24 +02:00
Jonas Jensen
76544f2966
Merge pull request #19943 from asgerf/approximate-related-location
...
Support approximate related locations
2025-07-11 10:16:24 +02:00
Tom Hvitved
742139927c
Merge pull request #19658 from hvitved/rust/type-inference-library-param-fix
...
Rust: Fix type inference for library parameters
2025-07-11 08:34:19 +02:00
Adnan Khan
07598e8b62
Add test results.
2025-07-11 05:59:13 +00:00
Owen Mansel-Chan
006d77ffdd
Refactor QL to make type check more concise
2025-07-11 06:13:01 +01:00
Tom Hvitved
1d7d45e16b
Rust: Update expected test output
2025-07-10 19:40:39 +02:00
Tom Hvitved
8cd357a8a0
Rust: Fix type inference for library parameters
2025-07-10 19:40:37 +02:00
Tom Hvitved
1e9520c737
Merge pull request #19995 from hvitved/rust/disambiguate-assoc-function-calls
...
Rust: Disambiguate associated function calls
2025-07-10 19:38:06 +02:00
Geoffrey White
123458fd21
Sync identical files.
2025-07-10 18:10:24 +01:00
Geoffrey White
6de5a618f3
Rust: Accept consistency changes as well.
2025-07-10 18:03:12 +01:00
Jeroen Ketema
6d8e2f8231
Merge pull request #20017 from jketema/final
...
C++: Add dataflow predicate for checking if a node is the final value of a parameter
2025-07-10 18:47:09 +02:00
Geoffrey White
01c75e38f7
Rust: The rusqlite row.get() calls are missing a canonical path.
2025-07-10 17:31:37 +01:00
AdnaneKhan
1b794e056a
Add extra test suggested by @Napalys
2025-07-10 12:24:36 -04:00
Adnan Khan
7be938c6c3
Handle multiple whitespaces in runner temp regex.
...
Co-authored-by: Napalys Klicius <napalys@github.com >
2025-07-10 12:22:14 -04:00
Geoffrey White
75078346c0
Rust: Accept .expected changes (mostly renumberings).
2025-07-10 17:05:12 +01:00
Owen Mansel-Chan
c39e5a7d97
Update qhelp: SnakeYaml is safe from version 2.0
2025-07-10 16:54:00 +01:00
Nick Rolfe
3a0def7848
Merge pull request #19989 from github/nickrolfe/ruby-annotations
...
Ruby: add overlay annotations to AST/CFG/SSA layers
2025-07-10 11:53:21 -04:00
Mathias Vorreiter Pedersen
fefb35bede
Merge pull request #20016 from MathiasVP/add-more-thread-create-models
...
C++: Add more thread creation models
2025-07-10 16:44:04 +01:00
Jeroen Ketema
96c379a076
C++: Fix formatting and typo
2025-07-10 15:56:11 +02:00
Geoffrey White
7ba18fa5d0
Merge branch 'main' into models3b
2025-07-10 14:53:09 +01:00
Jeroen Ketema
214969feaf
C++: Add change note
2025-07-10 15:52:27 +02:00
Geoffrey White
439cf7a659
Merge pull request #19942 from geoffw0/models1
...
Rust: Update legacy MaD models 2
2025-07-10 14:50:48 +01:00
Jeroen Ketema
b32a8c2489
C++: Add dataflow predicate for checking if a node is the final value of a parameter
2025-07-10 15:47:23 +02:00
Jeroen Ketema
990b7f0b70
C++: Add change note
2025-07-10 15:13:15 +02:00
Geoffrey White
0c075abe3f
Rust: Fix merge (I picked the wrong version).
2025-07-10 13:59:10 +01:00
Geoffrey White
a6b4a18d51
Rust: Add negative patterns.
2025-07-10 13:56:14 +01:00
Geoffrey White
8f95e26ed6
Rust: Combine regexs where possible (likely better performance).
2025-07-10 13:56:12 +01:00
Geoffrey White
99e62d66e5
Rust: Add sensitive data patterns.
2025-07-10 13:56:11 +01:00
Geoffrey White
2cd4d984cc
Merge pull request #20002 from geoffw0/moresensitive1
...
Rust: Add more test cases for sensitive data
2025-07-10 13:54:20 +01:00
Geoffrey White
117e330d53
Merge branch 'main' into models1
2025-07-10 13:52:48 +01:00
Geoffrey White
3debd1ada9
Merge pull request #19948 from geoffw0/models5
...
Rust: Update legacy MaD models 4
2025-07-10 13:50:54 +01:00
Tom Hvitved
70476c0e14
Add change note
2025-07-10 14:50:00 +02:00
Mathias Vorreiter Pedersen
7ddc909d4e
C++: Accept test changes after review.
2025-07-10 13:29:19 +01:00
Tamás Vajk
1351f57d2b
Merge pull request #19998 from tamasvajk/quality/label-in-switch
...
Java: Add query to detect non-case labels in switch statements
2025-07-10 14:13:38 +02:00
Mathias Vorreiter Pedersen
dda4a97080
Update cpp/ql/test/library-tests/dataflow/external-models/test.cpp
...
Co-authored-by: Jeroen Ketema <93738568+jketema@users.noreply.github.com >
2025-07-10 13:00:43 +01:00
Tom Hvitved
054bbc2ff7
Merge pull request #20015 from hvitved/rust/fix-bad-join
...
Rust: Fix bad join
2025-07-10 13:59:07 +02:00
Mathias Vorreiter Pedersen
b547dc4621
C++: Add change note.
2025-07-10 12:52:55 +01:00
Tom Hvitved
c7d20eb98a
Rust: Update expected test output
2025-07-10 13:52:19 +02:00
Tom Hvitved
ebde0bdc47
Rust: Disambiguate calls to associated functions
2025-07-10 13:52:17 +02:00
Tom Hvitved
95c2b9f8f7
Rust: Add more type inference tests
2025-07-10 13:52:09 +02:00
Mathias Vorreiter Pedersen
89cf215ebb
C++: Add models for 'std::thread' and accept test changes.
2025-07-10 12:45:20 +01:00
Mathias Vorreiter Pedersen
2062a774fc
C++: Add 'std::thread' test with missing flow.
2025-07-10 12:44:02 +01:00
Mathias Vorreiter Pedersen
d198a964e0
C++: Add a model for 'pthread_create' and accept test changes.
2025-07-10 12:20:24 +01:00
Mathias Vorreiter Pedersen
675a072639
C++: Add 'pthread_create' test with missing flow.
2025-07-10 12:16:23 +01:00
Owen Mansel-Chan
e362e536c0
Merge pull request #20009 from github/dependabot/go_modules/go/extractor/extractor-dependencies-0e1361fb85
...
Bump golang.org/x/mod from 0.25.0 to 0.26.0 in /go/extractor in the extractor-dependencies group
2025-07-10 11:51:03 +01:00
Tom Hvitved
d4de56c157
Rust: Fix bad join
...
Before
```
Evaluated relational algebra for predicate TypeInference::getRangeType/1#b4219ae9@c15c3f0b with tuple counts:
1 ~0% {1} r1 = CONSTANT(unique string)[".."]
692 ~0% {1} | JOIN WITH `RangeExpr::Generated::RangeExpr.getOperatorName/0#dispred#7c90645c_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1
453 ~0% {1} r2 = JOIN r1 WITH `RangeExpr::Generated::RangeExpr.getStart/0#dispred#914c8207` ON FIRST 1 OUTPUT Lhs.0
266 ~1% {1} r3 = JOIN r2 WITH `RangeExpr::Generated::RangeExpr.getEnd/0#dispred#6c692cfa` ON FIRST 1 OUTPUT Lhs.0
10684422 ~0% {3} | JOIN WITH cached_Synth::Synth::TStruct#c298e97c CARTESIAN PRODUCT OUTPUT Rhs.1, _, Lhs.0
10684422 ~0% {3} | REWRITE WITH Out.1 := "core::ops::range::Range"
266 ~0% {2} | JOIN WITH `Addressable::Addressable.getCanonicalPath/0#dispred#6044348f#bb` ON FIRST 2 OUTPUT Lhs.2, Lhs.0
363 ~3% {1} r4 = JOIN r1 WITH `RangeExpr::Generated::RangeExpr.getEnd/0#dispred#6c692cfa` ON FIRST 1 OUTPUT Lhs.0
97 ~2% {1} | AND NOT `RangeExpr::Generated::RangeExpr.getStart/0#dispred#914c8207_0#antijoin_rhs`(FIRST 1)
3896199 ~0% {3} | JOIN WITH cached_Synth::Synth::TStruct#c298e97c CARTESIAN PRODUCT OUTPUT Rhs.1, _, Lhs.0
3896199 ~0% {3} | REWRITE WITH Out.1 := "core::ops::range::RangeTo"
97 ~1% {2} | JOIN WITH `Addressable::Addressable.getCanonicalPath/0#dispred#6044348f#bb` ON FIRST 2 OUTPUT Lhs.2, Lhs.0
187 ~0% {1} r5 = r2 AND NOT `RangeExpr::Generated::RangeExpr.getEnd/0#dispred#6c692cfa_0#antijoin_rhs`(FIRST 1)
7511229 ~2% {3} | JOIN WITH cached_Synth::Synth::TStruct#c298e97c CARTESIAN PRODUCT OUTPUT Rhs.1, _, Lhs.0
7511229 ~0% {3} | REWRITE WITH Out.1 := "core::ops::range::RangeFrom"
187 ~1% {2} | JOIN WITH `Addressable::Addressable.getCanonicalPath/0#dispred#6044348f#bb` ON FIRST 2 OUTPUT Lhs.2, Lhs.0
1 ~0% {1} r6 = CONSTANT(unique string)["..="]
138 ~0% {1} | JOIN WITH `RangeExpr::Generated::RangeExpr.getOperatorName/0#dispred#7c90645c_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1
131 ~0% {1} r7 = JOIN r6 WITH `RangeExpr::Generated::RangeExpr.getStart/0#dispred#914c8207` ON FIRST 1 OUTPUT Lhs.0
131 ~0% {1} | JOIN WITH `RangeExpr::Generated::RangeExpr.getEnd/0#dispred#6c692cfa` ON FIRST 1 OUTPUT Lhs.0
5261877 ~0% {3} | JOIN WITH cached_Synth::Synth::TStruct#c298e97c CARTESIAN PRODUCT OUTPUT Rhs.1, _, Lhs.0
5261877 ~0% {3} | REWRITE WITH Out.1 := "core::ops::range::RangeInclusive"
131 ~3% {2} | JOIN WITH `Addressable::Addressable.getCanonicalPath/0#dispred#6044348f#bb` ON FIRST 2 OUTPUT Lhs.2, Lhs.0
138 ~0% {1} r8 = JOIN r6 WITH `RangeExpr::Generated::RangeExpr.getEnd/0#dispred#6c692cfa` ON FIRST 1 OUTPUT Lhs.0
7 ~0% {1} | AND NOT `RangeExpr::Generated::RangeExpr.getStart/0#dispred#914c8207_0#antijoin_rhs`(FIRST 1)
281169 ~0% {3} | JOIN WITH cached_Synth::Synth::TStruct#c298e97c CARTESIAN PRODUCT OUTPUT Rhs.1, _, Lhs.0
281169 ~2% {3} | REWRITE WITH Out.1 := "core::ops::range::RangeToInclusive"
7 ~0% {2} | JOIN WITH `Addressable::Addressable.getCanonicalPath/0#dispred#6044348f#bb` ON FIRST 2 OUTPUT Lhs.2, Lhs.0
688 ~0% {2} r9 = r3 UNION r4 UNION r5 UNION r7 UNION r8
return r9
```
After
```
Evaluated relational algebra for predicate TypeInference::getRangeType/1#b4219ae9@7d06d41t with tuple counts:
1 ~0% {2} r1 = SCAN Stdlib::RangeToStruct#236b6b84 OUTPUT _, In.0
1 ~0% {2} | REWRITE WITH Out.0 := ".."
692 ~0% {2} | JOIN WITH `RangeExpr::Generated::RangeExpr.getOperatorName/0#dispred#7c90645c_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
363 ~0% {2} | JOIN WITH `RangeExpr::Generated::RangeExpr.getEnd/0#dispred#6c692cfa` ON FIRST 1 OUTPUT Lhs.0, Lhs.1
97 ~0% {2} | AND NOT `RangeExpr::Generated::RangeExpr.getStart/0#dispred#914c8207_0#antijoin_rhs`(FIRST 1)
1 ~0% {2} r2 = SCAN Stdlib::RangeFromStruct#8edcefe7 OUTPUT _, In.0
1 ~0% {2} | REWRITE WITH Out.0 := ".."
692 ~0% {2} | JOIN WITH `RangeExpr::Generated::RangeExpr.getOperatorName/0#dispred#7c90645c_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
453 ~0% {2} | JOIN WITH `RangeExpr::Generated::RangeExpr.getStart/0#dispred#914c8207` ON FIRST 1 OUTPUT Lhs.0, Lhs.1
187 ~0% {2} | AND NOT `RangeExpr::Generated::RangeExpr.getEnd/0#dispred#6c692cfa_0#antijoin_rhs`(FIRST 1)
1 ~0% {2} r3 = SCAN Stdlib::RangeToInclusiveStruct#fe43a433 OUTPUT _, In.0
1 ~0% {2} | REWRITE WITH Out.0 := "..="
138 ~0% {2} | JOIN WITH `RangeExpr::Generated::RangeExpr.getOperatorName/0#dispred#7c90645c_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
138 ~0% {2} | JOIN WITH `RangeExpr::Generated::RangeExpr.getEnd/0#dispred#6c692cfa` ON FIRST 1 OUTPUT Lhs.0, Lhs.1
7 ~0% {2} | AND NOT `RangeExpr::Generated::RangeExpr.getStart/0#dispred#914c8207_0#antijoin_rhs`(FIRST 1)
1 ~0% {2} r4 = SCAN Stdlib::RangeStruct#0fabc810 OUTPUT _, In.0
1 ~0% {2} | REWRITE WITH Out.0 := ".."
692 ~3% {2} | JOIN WITH `RangeExpr::Generated::RangeExpr.getOperatorName/0#dispred#7c90645c_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
453 ~4% {2} | JOIN WITH `RangeExpr::Generated::RangeExpr.getStart/0#dispred#914c8207` ON FIRST 1 OUTPUT Lhs.0, Lhs.1
266 ~2% {2} | JOIN WITH `RangeExpr::Generated::RangeExpr.getEnd/0#dispred#6c692cfa` ON FIRST 1 OUTPUT Lhs.0, Lhs.1
1 ~0% {2} r5 = SCAN Stdlib::RangeInclusiveStruct#a869750a OUTPUT _, In.0
1 ~0% {2} | REWRITE WITH Out.0 := "..="
138 ~0% {2} | JOIN WITH `RangeExpr::Generated::RangeExpr.getOperatorName/0#dispred#7c90645c_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
131 ~0% {2} | JOIN WITH `RangeExpr::Generated::RangeExpr.getStart/0#dispred#914c8207` ON FIRST 1 OUTPUT Lhs.0, Lhs.1
131 ~0% {2} | JOIN WITH `RangeExpr::Generated::RangeExpr.getEnd/0#dispred#6c692cfa` ON FIRST 1 OUTPUT Lhs.0, Lhs.1
688 ~7% {2} r6 = r1 UNION r2 UNION r3 UNION r4 UNION r5
return r6
```
2025-07-10 12:34:08 +02:00
Kasper Svendsen
0739c03d03
Overlay: Add discarding of base XML locatables for Java
2025-07-10 12:31:16 +02:00
Kasper Svendsen
d7094a96b5
Overlay: Add discarding of all Java base properties
2025-07-10 12:31:15 +02:00
Arthur Baars
b573246639
Merge pull request #20003 from github/aibaars/query-result
...
Rust: add test cases for basic unwrapping and pattern matching
2025-07-10 12:30:59 +02:00
Kasper Svendsen
767d55bb18
Merge pull request #20013 from kaspersv/kaspersv/ql4ql-discard-entity-preds-alive
...
QL4QL: Discard predicates are always alive
2025-07-10 12:30:44 +02:00
Kasper Svendsen
c7a3b6543e
Address copilot comment
2025-07-10 12:01:29 +02:00
Jeroen Ketema
399967b507
C++: Do not alert on unreachable code in cpp/incorrect-string-type-conversion
2025-07-10 11:49:12 +02:00
Jeroen Ketema
2907861075
C++: Add cpp/incorrect-string-type-conversion test with unreachable code
2025-07-10 11:48:53 +02:00
Jeroen Ketema
acc06fab20
C++: Convert cpp/incorrect-string-type-conversion test to inline expectations
2025-07-10 11:48:18 +02:00
Geoffrey White
4dea5eef70
Rust: Fix futures_io models.
2025-07-10 10:41:09 +01:00
Nick Rolfe
ab9ba02ea1
Ruby: enable overlay compilation
2025-07-10 10:38:06 +01:00
Arthur Baars
cc5e6b2195
Rust: add test cases for basic unwrapping and pattern matching
2025-07-10 11:15:07 +02:00
Jeroen Ketema
18760b4025
Merge pull request #10923 from dscho/patch-1
...
Download GitHub database: fix `gh` invocation
2025-07-10 11:11:59 +02:00
Kasper Svendsen
1723c6ed09
QL4QL: Add discard predicate to dead code test
2025-07-10 11:09:43 +02:00
Kasper Svendsen
9f260cf72f
QL4QL: Discard predicates are always alive
2025-07-10 11:09:42 +02:00
Kasper Svendsen
9de3617032
QL4QL: Add overlay[discard_entity] annotation
2025-07-10 11:09:42 +02:00
Arthur Baars
7c5cdd9a9b
Merge pull request #20001 from github/aibaars/trait-impl-int
...
Rust: fix missing canonical paths for trait impls on builtin numeric types
2025-07-10 10:53:01 +02:00
Jeroen Ketema
51f639111b
Merge pull request #20010 from jketema/change-typo
...
C++: Fix some typos in recent change notes
2025-07-10 10:48:40 +02:00
Geoffrey White
8177b0938d
Merge branch 'main' into models5
2025-07-10 09:41:48 +01:00
Jeroen Ketema
928b7475b2
C++: Fix some typos in recent change notes
2025-07-10 10:22:41 +02:00
Geoffrey White
ae3253b9c3
Merge pull request #20004 from geoffw0/tt
...
Rust: Add type inference test cases for tuples.
2025-07-10 09:12:47 +01:00
Johannes Schindelin
3bff6c4a4a
Download GitHub database: fix gh invocation on Windows
...
When running `gh api /repos/...` in the Git Bash on Windows, it leads to
a 404. The reason is the automatic path conversion from "Unix-y" paths
on the command-line to proper Windows paths, as described in detail
https://www.msys2.org/docs/filesystem-paths/ . Git Bash simply has no
chance to understnad that `/repos/...` is not referring to an absolute
path on the local filesystem.
Let's just skip the leading slash. This is as valid an invocation, and
sidesteps that path conversion on Windows.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de >
2025-07-10 10:01:18 +02:00
Tamas Vajk
5edb60ea04
Improve query documentation
2025-07-10 09:43:15 +02:00
Hugo
c3c8d5db13
Create 2025-06-10-getasupertype.md
...
Create 2025-06-10-getasupertype.md
2025-07-10 05:48:52 +02:00
dependabot[bot]
e57b272cfa
Bump golang.org/x/mod
...
Bumps the extractor-dependencies group in /go/extractor with 1 update: [golang.org/x/mod](https://github.com/golang/mod ).
Updates `golang.org/x/mod` from 0.25.0 to 0.26.0
- [Commits](https://github.com/golang/mod/compare/v0.25.0...v0.26.0 )
---
updated-dependencies:
- dependency-name: golang.org/x/mod
dependency-version: 0.26.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: extractor-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-07-10 03:41:42 +00:00
Adnan Khan
e40e4c3856
Remove unneeded test file.
2025-07-09 23:06:18 -04:00
Hugo
fb693837e4
feat: add getASupertype() predicate in ValueOrRefType.
...
Add the getASupertype() predicate in ValueOrRefType.
2025-07-10 02:19:17 +02:00
Geoffrey White
36720ca4dd
Rust: Update .expected file after autoformat.
2025-07-09 21:52:23 +01:00
Arthur Baars
d20bc98363
Rust: fix missing canonical paths
2025-07-09 21:42:53 +02:00
Geoffrey White
6c9c8904d7
Rust: Autoformat.
2025-07-09 18:43:33 +01:00
Geoffrey White
dfbdd2bd02
Rust: Add type inference test cases for tuples.
2025-07-09 16:54:24 +01:00
Geoffrey White
47a4ba33a4
Rust: Fix typo in models (also fixed in another open PR).
2025-07-09 16:00:35 +01:00
Geoffrey White
a034e29040
Rust: Simplify the test a little.
2025-07-09 15:52:54 +01:00
Geoffrey White
097ac69207
Rust: Current sources test regressions.
2025-07-09 15:52:19 +01:00
Geoffrey White
8d0c14ca4e
Merge branch 'main' into models3b
2025-07-09 15:25:16 +01:00
Geoffrey White
4281fe74bd
Rust: We don't really need the split into two test cases any more.
2025-07-09 15:22:04 +01:00
Geoffrey White
4397863586
Rust: Update after merge with main.
2025-07-09 15:17:31 +01:00
Geoffrey White
597f678978
Merge branch 'main' into models1
2025-07-09 14:48:32 +01:00
Nick Rolfe
c415795595
Ruby: add changenote for overlay[local] annotations
2025-07-09 13:32:49 +01:00
Jonas Jensen
3ffda2f341
Shared: Overhaul the AlertFiltering QLDoc
...
The documentation is now up-to-date with the new and more relaxed rules
that allow overapproximating the results. I have also attempted to make
a clearer distinction between the requirements of the specification and
the behaviour of the implementation.
2025-07-09 14:32:18 +02:00
Geoffrey White
3bb3fccfdb
Rust: Accept consistency check changes.
2025-07-09 12:02:30 +01:00
Nick Rolfe
e1f2433dbf
Ruby: make resolveConstant overlay[global]
2025-07-09 11:59:25 +01:00
Geoffrey White
22aa7f378a
Rust: Expand the test cases around IDs as sensitive data.
2025-07-09 11:33:47 +01:00
Geoffrey White
1124355cdb
Rust: Add a test case for 'from_trusted_iterator' as sensitive data FP.
2025-07-09 11:26:59 +01:00
Jonas Jensen
5a1246a586
Merge remote-tracking branch 'upstream/main' into approximate-related-location
2025-07-09 10:10:20 +02:00
Jonas Jensen
0d7a842e2f
Shared: improve documentation in AlertFiltering
2025-07-09 09:43:49 +02:00
Jonas Jensen
f1e9f0e323
Shared: improve join order in filterByLocation
...
It's better to join with the range expression first since that will only
multiply tuple counts by the number of lines in an average source/sink.
Joining with `restrictAlertsToStartLine` first would multiply tuple
counts by the number of sources/sinks in a given file.
2025-07-09 09:24:26 +02:00
Paolo Tranquilli
5722084dd5
Merge pull request #19999 from github/redsun82/rust-sha256s
...
Rust: set SHA256s in `MODULE.bazel`
2025-07-09 09:20:54 +02:00
Adnan Khan
db954d6d9f
Merge branch 'main' into patch-1
2025-07-08 23:31:35 -07:00
Arthur Baars
5b7485d11d
Rust: add testcase for impl trait on i32
2025-07-08 21:36:37 +02:00
Tom Hvitved
156f867c96
Merge pull request #19996 from hvitved/rust/type-inference-str-literal
...
Rust: Adjust the inferred type of string literals
2025-07-08 20:29:43 +02:00
Jaroslav Lobačevski
9393181c4e
Add tests and path normalization fix to handle $ expansion
2025-07-08 16:18:12 +00:00
Owen Mansel-Chan
a5333ae1a1
Add change note
2025-07-08 16:51:22 +01:00
Paolo Tranquilli
98195db500
Rust: set SHA256s in MODULE.bazel
2025-07-08 17:49:30 +02:00
AdnaneKhan
5d6a5d5cbb
Add change notes and test workflow file.
2025-07-08 10:35:39 -04:00
Adnan Khan
f4f919635a
Correctly specify regex.
...
Co-authored-by: Jaroslav Lobačevski <jarlob@github.com >
2025-07-08 10:17:29 -04:00
Geoffrey White
b1d5b8175c
Rust: Add the original test back as well.
2025-07-08 15:10:55 +01:00
Geoffrey White
d19259e6bb
Update rust/ql/test/library-tests/frameworks/postgres/main.rs
...
Co-authored-by: Arthur Baars <aibaars@github.com >
2025-07-08 15:03:44 +01:00
Geoffrey White
7211f4ace3
Update rust/ql/lib/codeql/rust/frameworks/rustcrypto/rustcrypto.model.yml
...
Co-authored-by: Arthur Baars <aibaars@github.com >
2025-07-08 15:01:43 +01:00
Tom Hvitved
22b833fbda
Rust: Fix bad join
2025-07-08 16:00:36 +02:00
Owen Mansel-Chan
990043ce86
Add net/http.Head and net/http.Client.Head as client requests
...
They were previously deliberately excluded.
2025-07-08 14:31:48 +01:00
Owen Mansel-Chan
71703aa497
Improve formatting of some QL
2025-07-08 14:29:11 +01:00
Tamás Vajk
4f1ca21ef9
Merge pull request #19875 from tamasvajk/quality/spec_chars
...
Java: Add query to detect special characters in string literals
2025-07-08 14:56:35 +02:00
Tamas Vajk
5f7d746266
Java: Add query to detect non-case labels in switch statements
2025-07-08 14:53:39 +02:00
Owen Mansel-Chan
d437a096f1
Test more client request URL sinks
2025-07-08 13:20:04 +01:00
Nick Rolfe
b51940d1e2
Ruby: add overlay[local] annotations to AST/CFG/SSA layers
2025-07-08 13:09:27 +01:00
Tamas Vajk
ccbf7055f1
Adjust query precision
2025-07-08 13:31:08 +02:00
Tamas Vajk
d16570b05e
Revert "Adjust query tags"
...
This reverts commit 92685e6c2de69898d556706b04e6c562e54b26b8.
2025-07-08 13:28:26 +02:00
Tamas Vajk
c4def103f7
Improve query documentation
2025-07-08 13:28:26 +02:00
Tamas Vajk
15de398806
Adjust query tags
2025-07-08 13:28:25 +02:00
Tamas Vajk
a0c9c98373
Adjust references in query doc
2025-07-08 13:28:25 +02:00
Tamas Vajk
fd8b37cc28
Exclude Kotlin files
2025-07-08 13:28:24 +02:00
Tamas Vajk
09a2aeead6
Java: Add query to detect special characters in string literals
2025-07-08 13:28:18 +02:00
Tamás Vajk
f940cb2bdd
Merge pull request #19950 from tamasvajk/quality/useless-record-member
...
Java: Add 'Useless serialization member in record class' query
2025-07-08 13:26:11 +02:00
Tom Hvitved
2a207f9f6f
Rust: Update inline expectations
2025-07-08 13:03:16 +02:00
Tom Hvitved
73f854f073
Rust: Adjust the inferred type of string literals
2025-07-08 13:03:12 +02:00
Tom Hvitved
411aa6d2e5
Merge pull request #19971 from hvitved/rust/type-inference-for-range
...
Rust: Improve type inference for `for` loops and range expressions
2025-07-08 12:57:21 +02:00
Geoffrey White
3dabd51cf7
Rust: Fix a summaryModelDeprecated that was causing problems.
2025-07-08 11:24:57 +01:00
Tom Hvitved
1518cade7b
Address review comments
2025-07-08 11:29:24 +02:00
Tamas Vajk
813ce7d3f8
Rename query
2025-07-08 11:28:12 +02:00
Tamas Vajk
f2805ba80c
Improve query help
2025-07-08 11:28:11 +02:00
Tamas Vajk
82fe647a40
Improve alert message
2025-07-08 11:28:11 +02:00
Tamas Vajk
528389af38
Adjust expected file for query suite integration test
2025-07-08 11:28:10 +02:00
Tamas Vajk
a2d4f58af7
Use inline test expectations
2025-07-08 11:28:10 +02:00
Tamas Vajk
2cd0c64e41
Improve query quality
2025-07-08 11:28:09 +02:00
Tamas Vajk
e0cb1792bd
Java: Add 'Useless serialization member in record class' query
2025-07-08 11:28:09 +02:00
Tom Hvitved
6876838dd1
Rust: Add change note
2025-07-08 11:20:45 +02:00
Tom Hvitved
7701a31f4a
Rust: Improve type inference for for loops and range expressions
2025-07-08 11:20:42 +02:00
Tom Hvitved
52abf3ba02
Merge pull request #19997 from hvitved/java/use-mad-in-log-injection-test
...
Java: Use MaD in log injection test
2025-07-08 11:02:51 +02:00
Geoffrey White
f57d691424
Rust: Fix typo in model.
2025-07-08 09:51:20 +01:00
Tom Hvitved
6fdec47e83
Java: Use MaD in log injection test
2025-07-08 10:25:58 +02:00
Geoffrey White
c7de873a22
Rust: Update the libc models.
2025-07-08 08:44:44 +01:00
Geoffrey White
a1e9a4eddf
Rust: Accept test .expected changes.
2025-07-08 08:44:24 +01:00
Geoffrey White
2195f0bb78
Merge branch 'main' into models5
2025-07-08 08:41:43 +01:00
Ian Lynagh
e5b4a15e35
Merge pull request #19994 from github/post-release-prep/codeql-cli-2.22.2
...
Post-release preparation for codeql-cli-2.22.2
2025-07-07 19:44:16 +01:00
Tom Hvitved
33e63109bb
Merge pull request #19993 from hvitved/rust/type-inference-function-call-expectations
...
Rust: Add type inference inline expectations for all function calls
2025-07-07 20:40:57 +02:00
github-actions[bot]
24a0ac1223
Post-release preparation for codeql-cli-2.22.2
2025-07-07 18:15:04 +00:00
Arthur Baars
aef357c757
Merge pull request #19988 from github/aibaars/extern-blocks
...
Rust: path resolution: handle items in `extern` blocks
2025-07-07 19:53:36 +02:00
Arthur Baars
8114071804
Merge branch 'main' into models1
2025-07-07 19:47:53 +02:00
Ian Lynagh
bb0173c9af
Merge pull request #19992 from github/release-prep/2.22.2
...
Release preparation for version 2.22.2
2025-07-07 17:54:28 +01:00
Arthur Baars
7721d14314
Rust: use getADescendant instead of getAnItem
...
This should handle all cases where items contained in intermediate nodes, such as MacroCall,
ExternBlock and MacroItem nodes.
2025-07-07 18:04:00 +02:00
Arthur Baars
da2f0f6069
Rust: remove MacroCallItemNode
...
Macro calls are not really items, so they can just be skipped
2025-07-07 18:03:02 +02:00
Arthur Baars
7556d7b57b
Rust: add test with extern block
2025-07-07 18:02:58 +02:00
Tom Hvitved
fad5e0daa8
Rust: Add type inference inline expectations for all function calls
2025-07-07 17:20:15 +02:00
Geoffrey White
a25330e6ed
Rust: Update rustcrypto models.
2025-07-07 15:10:59 +01:00
github-actions[bot]
f12daefabe
Release preparation for version 2.22.2
2025-07-07 14:00:26 +00:00
Tamás Vajk
8d16d0225c
Merge pull request #19991 from tamasvajk/quality/improve-query-docs
...
Improve query docs for `java/java-util-concurrent-scheduledthreadpoolexecutor`
2025-07-07 15:02:56 +02:00
Geoffrey White
a486549956
Update rust/ql/lib/codeql/rust/frameworks/tokio/io.model.yml
...
Co-authored-by: Arthur Baars <aibaars@github.com >
2025-07-07 14:01:00 +01:00
Tamas Vajk
6013c347df
Improve query docs for java/java-util-concurrent-scheduledthreadpoolexecutor
2025-07-07 14:22:40 +02:00
Mathias Vorreiter Pedersen
7bb3758093
Merge pull request #19976 from jketema/incr-2
...
C++: Output `CopyValue` in the IR when there is a non-transparent conversion
2025-07-07 13:08:50 +01:00
Jeroen Ketema
a004d9b2a2
Merge pull request #19990 from igfoo/igfoo/rename
...
C++: Rename a changenote file
2025-07-07 13:59:15 +02:00
Ian Lynagh
fd733676cb
C++: Rename a changenote file
2025-07-07 12:53:42 +01:00
Nick Rolfe
eb30233d44
Merge pull request #19963 from github/nickrolfe/rb-discard-locations
...
Ruby/QL: add discard predicates for locations
2025-07-07 06:41:28 -04:00
Tom Hvitved
8c90250dfc
Merge pull request #19577 from hvitved/rust/remove-library-source-dedup-logic
...
Rust: Remove source vs library deduplication logic
2025-07-07 11:25:33 +02:00
Tom Hvitved
6a9ed88d6e
Merge pull request #19975 from hvitved/rust/ssa-phi-in-capture
...
Rust: Fix SSA inconsistencies
2025-07-07 09:21:57 +02:00
Jeroen Ketema
d6d7c6d55f
Revert "C++: Factor out transparent conversions in their own predicate"
...
This reverts commit b185cc8b95 .
2025-07-04 23:22:46 +02:00
Jeroen Ketema
463ae4b1eb
C++: Address review comments
2025-07-04 23:13:37 +02:00
Owen Mansel-Chan
0788a90d88
Convert RequestForgery test to inline expectations
2025-07-04 16:56:05 +01:00
Owen Mansel-Chan
d10b9e665c
Fix linter warnings in Request Forgery tests
2025-07-04 16:55:09 +01:00
Nick Rolfe
7c5b186c71
Ruby/QL: add discard predicates for locations
2025-07-04 16:15:38 +01:00
Nick Rolfe
f714e5c5ba
Merge pull request #19896 from github/nickrolfe/overlay-deleted-files
...
Java/Ruby/Rust/QL: add `overlayChangedFiles` relation to dbscheme
2025-07-04 11:10:20 -04:00
Arthur Baars
84e5f2846b
Merge branch 'main' into nickrolfe/overlay-deleted-files
2025-07-04 16:19:59 +02:00
Jeroen Ketema
5c9a401806
Merge pull request #19977 from jketema/ruby-typo
...
Ruby: Fix typo in query message
2025-07-04 16:09:22 +02:00
Jeroen Ketema
52bbfa30d2
Ruby: update expected test results
2025-07-04 15:32:07 +02:00
Jeroen Ketema
b3225cf7e3
Rubt: Fix typo in query message
2025-07-04 15:22:03 +02:00
Tom Hvitved
379c913ce3
Rust: Remove source vs library deduplication logic
2025-07-04 14:58:20 +02:00
Tom Hvitved
e33ddce79f
Merge pull request #19847 from hvitved/rust/type-inference-explicit-args
...
Rust: Handle more explicit type arguments in type inference
2025-07-04 14:46:02 +02:00
Tom Hvitved
d1dd05e7bb
Rust: Fix SSA inconsistencies
2025-07-04 14:43:10 +02:00
Jeroen Ketema
d010b6eb01
C++: Update expected test results
2025-07-04 14:28:17 +02:00
Arthur Baars
3d435ddca0
Merge branch 'main' into rust/type-inference-explicit-args
2025-07-04 14:17:52 +02:00
Jeroen Ketema
2908570ce9
C++: Do not consider expression results discardable when there is a conversion
2025-07-04 14:10:34 +02:00
Jeroen Ketema
b185cc8b95
C++: Factor out transparent conversions in their own predicate
2025-07-04 14:09:34 +02:00
Jeroen Ketema
e68d10119b
C++: Fix typo in comment
2025-07-04 14:09:09 +02:00
Jeroen Ketema
799f33eb3a
C++: Add more postfix-crement tests
2025-07-04 14:08:29 +02:00
Mathias Vorreiter Pedersen
9dd3b33410
Merge pull request #19973 from MathiasVP/add-glibc-models
...
C++: Add `glibc` flow summaries
2025-07-04 10:21:14 +01:00
Tom Hvitved
2b2bd17d10
Rust: Add more SSA tests
2025-07-04 10:47:56 +02:00
Kasper Svendsen
785e0273f2
Merge pull request #19968 from kaspersv/kaspersv/overlay-java-getastrictancestor-caller
...
Overlay: Mark `RefType.getAStrictAncestor`` overlay[caller?]`
2025-07-04 09:38:02 +02:00
Mathias Vorreiter Pedersen
cda671711f
C++: Add change note.
2025-07-04 00:05:41 +01:00
Mathias Vorreiter Pedersen
24728a3417
C++: Accept test changes.
2025-07-04 00:03:42 +01:00
Mathias Vorreiter Pedersen
e89662beb7
C++: Add glibc flow summaries.
2025-07-03 18:53:18 +01:00
Aditya Sharad
6124940f55
Merge pull request #19893 from github/changedocs/2.22.1
...
Add changelog entry for CodeQL CLI version 2.22.1
2025-07-03 10:21:12 -07:00
Jeroen Ketema
da924efedb
Merge pull request #19970 from jketema/incr
...
C++: Add test showing we miss the operands of postfix crement in dataflow
2025-07-03 17:16:00 +02:00
Jeroen Ketema
5b26a426dc
C++: Add test showing we miss the operands of postfix crement in dataflow
2025-07-03 16:49:37 +02:00
Mathias Vorreiter Pedersen
56490732bd
Merge pull request #19969 from MathiasVP/add-glibc-to-bulk-generation-targets
...
C++: Add glibc to the list of bulk generation targets
2025-07-03 15:12:11 +01:00
Geoffrey White
831509539b
Merge pull request #19934 from geoffw0/models0
...
Rust: Update legacy MaD models 1
2025-07-03 14:24:21 +01:00
Kasper Svendsen
de71758236
Merge pull request #19962 from kaspersv/kaspersv/overlay-java-local-TC-fixes
...
Overlay: Fix Java overlay compilation regressions
2025-07-03 15:03:02 +02:00
Paolo Tranquilli
8fda879461
Merge pull request #19967 from github/redsun82/format
...
Rust: format
2025-07-03 14:55:56 +02:00
Paolo Tranquilli
dee1ec31ee
Rust: format
2025-07-03 14:42:38 +02:00
Nick Rolfe
d8574a6919
Ruby: use overlayChangedFiles extensional in discard predicates
2025-07-03 12:44:15 +01:00
Nick Rolfe
ba01a70e0a
Rust: add upgrade scripts for overlayChangedFiles dbscheme addition
2025-07-03 12:44:14 +01:00
Nick Rolfe
ab74946e26
Ruby: add upgrade scripts for overlayChangedFiles dbscheme addition
2025-07-03 12:44:13 +01:00
Nick Rolfe
a02aabe797
Java: add upgrade scripts for overlayChangedFiles dbscheme addition
2025-07-03 12:44:12 +01:00
Nick Rolfe
838290d670
Ruby: bump overlay_support_version
2025-07-03 12:44:11 +01:00
Nick Rolfe
72b4e67477
Java/Ruby/Rust/QL: add overlayChangedFiles relation to dbscheme
2025-07-03 12:44:09 +01:00
Jeroen Ketema
a4de3110ae
Merge pull request #15233 from jketema/uncomment-function-kind
...
C++: Uncomment cases in the dbscheme
2025-07-03 13:37:55 +02:00
Kasper Svendsen
dd8af3baf7
Overlay: Mark RefType.getAStrictAncestor overlay[caller?]
2025-07-03 12:23:20 +02:00
Michael Nebel
11c4a638bc
Quality tags: Clarify the quality sub-category tagging policy.
2025-07-03 12:19:41 +02:00
Michael Nebel
aefd941135
Java/Javascript: Fix violations.
2025-07-03 11:56:33 +02:00
Michael Nebel
f810e17d9e
Ql4Ql: Address review comments and update expected test output.
2025-07-03 11:56:32 +02:00
Michael Nebel
b79e2dd0ba
Ql4Ql: Add some more quality tag testcases.
2025-07-03 11:56:30 +02:00
Michael Nebel
f58064e119
Ql4Ql: Address review comments.
2025-07-03 11:56:29 +02:00
Michael Nebel
af1c4e0896
Ql4Ql: Share the definition of TestFile between multiple tests.
2025-07-03 11:56:27 +02:00
Michael Nebel
60a1d02357
Ql4Ql: Add MissingQualityMetadata test.
2025-07-03 11:56:26 +02:00
Michael Nebel
e00b5351a4
Ql4Ql: Add a check for quality tag consistency.
2025-07-03 11:56:25 +02:00
Michael Nebel
c46b528c05
Ql4Ql: Add some quality tag testcases.
2025-07-03 11:56:23 +02:00
Michael Nebel
cce17743bb
Ql4Ql: Re-factor the ql/mising-security-metadata query.
2025-07-03 11:56:22 +02:00
Tom Hvitved
2924faf7f8
Rust: Tweak illFormedTypeMention consistency check
2025-07-03 11:56:16 +02:00
Asger F
552e156468
Merge pull request #19640 from asgerf/js/no-type-extraction
...
JS: Disable type extraction
2025-07-03 11:18:42 +02:00
Geoffrey White
1289f1483f
Merge pull request #19961 from geoffw0/locspeed
...
Rust: Speed up use of Location.contains
2025-07-03 10:16:39 +01:00
Asger F
bb45d0632b
Merge branch 'main' into approximate-related-location
2025-07-03 10:53:07 +02:00
Kasper Svendsen
649091c0ed
Fix java/local-temp-file-or-directory-information-disclosure overlay compilation regression
2025-07-03 10:47:33 +02:00
Kasper Svendsen
425448a10a
Fix java/netty-http-request-or-response-splitting overlay compilation regression
2025-07-03 10:47:33 +02:00
Paolo Tranquilli
064708620f
Merge pull request #19861 from github/redsun82/rust-reorg-ast-generator
...
Rust: refactor `ast-generator` to have all customization at the start
2025-07-03 10:09:17 +02:00
Asger F
98319ce2ad
Apply suggestions from code review
...
Co-authored-by: Taus <tausbn@github.com >
2025-07-03 08:44:33 +02:00
Geoffrey White
9728dbb247
Rust: Speed up use of Location.contains / isFromMacroExpansion.
2025-07-02 21:16:21 +01:00
Jeroen Ketema
3c73f141c4
C++: Update stats file
2025-07-02 21:46:14 +02:00
Jeroen Ketema
2697798f05
C++: Add upgrade and downgrade scripts
2025-07-02 21:46:12 +02:00
Jeroen Ketema
eede720aa8
C++: Uncomment cases in the dbscheme
2025-07-02 21:46:09 +02:00
Mathias Vorreiter Pedersen
d4bc38462f
C++: Add glibc to the list of bulk generation targets.
2025-07-02 18:59:15 +01:00
Mathias Vorreiter Pedersen
5e8b12a08b
Merge pull request #19955 from MathiasVP/flow-through-create-thread
...
C++: Add flow summaries for `CreateThread` and friends
2025-07-02 18:27:36 +01:00
Paolo Tranquilli
c10d89927d
Merge pull request #19945 from github/redsun82/fix-expansion-in-lib
...
Rust: fix macro expansion in library code
2025-07-02 18:11:36 +02:00
Paolo Tranquilli
2fffa9db3c
Merge pull request #19781 from github/redsun82/go-internal-tests
...
Go: remove language tests from workflows
2025-07-02 18:10:44 +02:00
Paolo Tranquilli
33a2801bb7
Merge pull request #19956 from github/redsun82/java-fix-tests
...
Java: disable failing maven fetches expectations for now
2025-07-02 17:32:05 +02:00
Paolo Tranquilli
4d3546f7c9
Java: disable failing maven fetches expectations for now
2025-07-02 17:16:41 +02:00
Paolo Tranquilli
72bfbacaaf
Merge branch 'main' into redsun82/go-internal-tests
2025-07-02 16:21:26 +02:00
Mathias Vorreiter Pedersen
e6104981ff
C++: Add change note.
2025-07-02 14:32:17 +01:00
Mathias Vorreiter Pedersen
76678ef3d2
C++: Accept test changes.
2025-07-02 14:24:16 +01:00
Mathias Vorreiter Pedersen
f825904ee0
C++: Add flow models for 'CreateProcess' and friends.
2025-07-02 14:18:36 +01:00
Mathias Vorreiter Pedersen
5684ca5d51
C++: Add tests with 'CreateProcess' and fiends demonstrating missing flow.
2025-07-02 14:18:34 +01:00
Asger F
4a2d795076
Shared: Make approximate location filtering the default behaviour
2025-07-02 14:41:02 +02:00
Asger F
82d190f4bf
Java: use approximate related sink locations in polynomial redos
2025-07-02 14:40:56 +02:00
Asger F
a46b5f9529
Python: enable diff-informedness for poly redos using approximate related locations
2025-07-02 14:39:42 +02:00
Asger F
d65da1f8a1
Ruby: enable for PolyReDos but document why it still doesnt work
2025-07-02 14:39:41 +02:00
Asger F
8b345518f4
Shared: Add approximate version of getASelected{Source,Sink}Location
2025-07-02 14:39:39 +02:00
Asger F
d1b4172486
Shared: Factor out some helper predicates in alert filtering
2025-07-02 14:39:37 +02:00
Asger F
d85838477e
JS: Update Nest model
...
An external contribution added more uses of the now-deprecated getType()
predicate while this PR was open.
2025-07-02 14:11:31 +02:00
Jeroen Ketema
d17c931939
Merge pull request #19952 from jketema/comment-cleanup
...
C++: Remove QLtest related comment from integration test
2025-07-02 13:59:15 +02:00
Asger F
47a90c8b32
Merge branch 'main' into js/no-type-extraction
2025-07-02 13:18:05 +02:00
Jeroen Ketema
e47f16b100
Merge pull request #19947 from jketema/function-confusion
...
C++: Move builtin function identification to its own table
2025-07-02 12:56:18 +02:00
Paolo Tranquilli
c4ec0765ea
Merge pull request #19951 from github/aibaars/rust-workflows
...
Rust: add trailing newline to rust-cwe.md
2025-07-02 12:26:48 +02:00
Paolo Tranquilli
c70198e4e4
Rust: change dummy macro call expansion
2025-07-02 12:25:10 +02:00
Jeroen Ketema
def0ee90c3
C++: Remove QLtest related comment from integration test
...
I forgot to remove this in https://github.com/github/codeql/pull/19410
2025-07-02 12:14:38 +02:00
Arthur Baars
9e54bc6918
Rust: add trailing newline to rust-cwe.md
2025-07-02 11:39:00 +02:00
Tom Hvitved
f7195f04f8
Rust: Handle more explicit type arguments in type inference
2025-07-02 11:37:05 +02:00
Tom Hvitved
b6d5225bf5
Rust: Add more type inference tests
2025-07-02 11:37:03 +02:00
Tom Hvitved
d10002c735
Merge pull request #19927 from hvitved/rust/type-inference-overlap3
...
Rust: Disambiguate more method calls based on argument types
2025-07-02 11:36:37 +02:00
Paolo Tranquilli
bf09c92528
Rust: add location to dummy MacroCalls in library mode
2025-07-02 10:33:53 +02:00
Paolo Tranquilli
63ccbec933
Rust: accept language test changes
2025-07-02 10:19:52 +02:00
Geoffrey White
3e11dbded0
Rust: Accept test changes.
2025-07-02 09:08:15 +01:00
Asger F
4b2025d2c4
JS: Remove obsolete unit tests
2025-07-02 09:54:18 +02:00
Asger F
2aad14771c
JS: Remove TypeScriptMode
2025-07-02 08:39:17 +02:00
Jeroen Ketema
1103644737
C++: Add upgrade and downgrade scripts
2025-07-01 23:38:24 +02:00
Jeroen Ketema
3418451bee
C++: Update stats file
2025-07-01 23:16:26 +02:00
Jeroen Ketema
19d6f665b4
Merge pull request #19676 from mrigankpawagi/patch-1
...
Fixes in cpp/global-use-before-init
2025-07-01 19:17:29 +02:00
Geoffrey White
7ef5586cc7
Rust: Translate more legacy models -> new models (mostly guesswork for these last few cases).
2025-07-01 17:15:26 +01:00
Jeroen Ketema
65b21286a1
C++: Move builtin function identification to its own table
2025-07-01 18:00:44 +02:00
Geoffrey White
e56b9debf8
Rust: Fix mistake.
2025-07-01 16:55:06 +01:00
Geoffrey White
3027f75617
Rust: Translate more legacy models -> new models (from data).
2025-07-01 16:37:14 +01:00
Paolo Tranquilli
223f0c8684
Rust: fix macro expansion in library code
...
There was a mismatch between a `self.macro_context_level += 1` and the
corresponding `self.macro_context_level -= 1`, which resulted in an
`usize` underflow (panic in debug mode, wrong behaviour in release
mode).
This fixes it and adds a relevant assertion and test. In order to
properly test library mode extraction, a special option enforcing that
on source code as well is added.
2025-07-01 17:31:26 +02:00
Jeroen Ketema
7c2fd28585
Merge pull request #19938 from jketema/external
...
C++: Remove unused `external_package` tables from the dbscheme
2025-07-01 16:50:31 +02:00
Mrigank Pawagi
fe24cc876a
Merge branch 'main' into patch-1
2025-07-01 20:04:13 +05:30
Arthur Baars
4c6c395b1b
Merge pull request #19939 from github/aibaars/rust-workflows
...
Rust: add to `generate-code-scanning-query-list.py` and `shared-code-metrics.py` scripts
2025-07-01 16:12:11 +02:00
Jeroen Ketema
02e5541953
Merge branch 'main' into patch-1
2025-07-01 15:58:48 +02:00
Mrigank Pawagi
b821b21500
Create 2025-07-01-global-vars-ubi-query-fixes.md.md
2025-07-01 13:12:38 +00:00
Tom Hvitved
add2e0fd9d
Rust: Extend methodResolutionDependsOnArgument to parameterized implementations
2025-07-01 14:22:06 +02:00
Tom Hvitved
961e6201ea
Rust: Add more type inference tests
2025-07-01 14:22:04 +02:00
Geoffrey White
cb6640474e
Rust: Translate more legacy models -> new models (from data + manual extrapolation).
2025-07-01 13:21:52 +01:00
Tom Hvitved
b813010b75
Merge pull request #19903 from hvitved/rust/type-inference-overlap2
...
Rust: Apply inherent method prioritization inside type inference loop
2025-07-01 14:21:15 +02:00
Tom Hvitved
d6b051ed30
Merge pull request #19936 from hvitved/rust/path-resolution-prelude-always
...
Rust: Assume prelude is always available in path resolution
2025-07-01 13:13:35 +02:00
Owen Mansel-Chan
811ed3ccde
Merge pull request #19892 from owen-mc/fix-markdown-query-help-formatting
...
Fix markdown query help formatting
2025-07-01 12:05:35 +01:00
Tom Hvitved
219a622299
Merge pull request #19926 from hvitved/ruby/restrict-string-component-length
...
Ruby: Do not compute `StringlikeLiteralImpl.getStringValue` for large strings
2025-07-01 12:45:51 +02:00
Arthur Baars
c08d98d159
Rust: add to querylist and shared code metrics scripts
2025-07-01 12:16:42 +02:00
Tom Hvitved
072339137a
Rust: Update expected test output
2025-07-01 10:34:16 +02:00
Jeroen Ketema
f3c5870d44
C++: Update stats file
2025-07-01 10:21:51 +02:00
Tom Hvitved
bd1f46b75c
Rust: Assume prelude is always available in path resolution
2025-07-01 10:18:02 +02:00
Jeroen Ketema
8ac69b9116
C++: Add upgrade and downgrade scripts
2025-07-01 10:17:43 +02:00
Tom Hvitved
e88d7baa7d
Rust: Apply inherent method prioritization inside type inference loop
2025-07-01 10:17:26 +02:00
Tom Hvitved
e5f0ef6ae8
Rust: Add more type inference tests
2025-07-01 10:17:25 +02:00
Jeroen Ketema
7779f14654
C++: Remove unused external_package tables from the dbscheme
2025-07-01 10:13:04 +02:00
Jeroen Ketema
a791640b52
Merge pull request #19935 from jketema/sync-dbscheme-cpp
...
C++: synchronize dbscheme
2025-07-01 09:51:29 +02:00
Michael Nebel
233b54c7fa
Merge pull request #19891 from michaelnebel/michaelnebel/freezemoresuites
...
Go/Ruby/Python: Freeze quality queries in `security-and-quality`.
2025-07-01 09:04:19 +02:00
Tom Hvitved
2ee3401cfb
Merge pull request #19873 from github/redsun82/rust-item-reorg
...
Rust: make `AssocItem` and `ExternItem` subclasses of `Item`
2025-07-01 08:58:48 +02:00
Jeroen Ketema
d5c7905009
Merge pull request #19907 from github/idrissrio/no-string-representation
...
C++: fix `(no string representation)` for `ConstructorInit`
2025-07-01 08:13:31 +02:00
Geoffrey White
59b74871c2
Rust: Accept regressions.
2025-06-30 21:13:44 +01:00
Geoffrey White
91072477b7
Rust: Trivial test changes.
2025-06-30 20:15:18 +01:00
Jeroen Ketema
98798b6f73
C++: Update stats file
2025-06-30 20:12:49 +02:00
Jeroen Ketema
1772193982
Merge pull request #19933 from jketema/arm-change
...
C++: Add Arm64 change note
2025-06-30 19:19:32 +02:00
Geoffrey White
8f56f8d5a0
Rust: Translate some legacy models -> new models.
2025-06-30 17:47:59 +01:00
Mrigank Pawagi
cf60b62981
fix formatting
...
Co-authored-by: Jeroen Ketema <93738568+jketema@users.noreply.github.com >
2025-06-30 16:40:03 +00:00
Jeroen Ketema
44523aeec4
C++: Add Arm64 change note
2025-06-30 18:01:03 +02:00
Paolo Tranquilli
fa14f9540b
Merge branch 'main' into redsun82/go-internal-tests
2025-06-30 17:38:59 +02:00
idrissrio
62e55edbad
C++: accept new test results after changes
2025-06-30 17:11:59 +02:00
idrissrio
6a291cc474
C++: fix (no string representation) for ConstructorInit
2025-06-30 17:11:58 +02:00
Taus
184dd5bf10
Merge pull request #19895 from github/tausbn/python-fix-match-as-identifier
...
Python: Allow use of `match` as an identifier
2025-06-30 16:24:23 +02:00
Paolo Tranquilli
e7959dfde6
Rust: recreate wrongfully deleted upgrade script directory
2025-06-30 15:38:42 +02:00
Jami
de09122de3
Merge pull request #19175 from jcogs33/jcogs33/java/call-to-thread-run
...
Java: update `java/call-to-thread-run`
2025-06-30 09:31:08 -04:00
Jeroen Ketema
3a3c222e46
C++: Add upgrade and downgrade scripts
2025-06-30 15:28:55 +02:00
Jeroen Ketema
617edf0b70
C++: synchronize dbscheme
2025-06-30 15:28:45 +02:00
Paolo Tranquilli
9e4cdbc53f
Merge branch 'main' into redsun82/rust-item-reorg
2025-06-30 14:56:23 +02:00
Paolo Tranquilli
15aa0bbb34
Merge pull request #19866 from github/redsun82/codegen-new-parent-child
...
Codegen: improve implementation of generated parent/child relationship
2025-06-30 14:52:24 +02:00
Tom Hvitved
97412f4077
Merge pull request #19916 from hvitved/rust/fix-capture-inconsistencies
...
Rust: Fix variable capture inconsistencies
2025-06-30 14:18:00 +02:00
Tom Hvitved
41a403c904
Ruby: Do not compute StringlikeLiteralImpl.getStringValue for large strings
2025-06-30 13:01:57 +02:00
Jeroen Ketema
23b9db8f6f
Merge pull request #19904 from jketema/ffbl
...
C++: Sync the product-flow field flow branch limits with the default one
2025-06-30 11:17:55 +02:00
Kasper Svendsen
3d7343273e
Merge pull request #19813 from github/kaspersv/overlay-java-discarding
...
Overlay: Add manual Java overlay annotations & discard predicates
2025-06-30 11:17:31 +02:00
Asger F
7c38c48fd7
Merge pull request #19769 from trailofbits/VF/Nest-improvements
...
Improve NestJS sources and dependency injection
2025-06-30 10:42:18 +02:00
Asger F
3247babfa5
Merge pull request #19762 from trailofbits/VF/type-orm-model-improvements
...
Improve TypeORM model
2025-06-30 10:40:38 +02:00
Jeroen Ketema
6ae1656ec4
Merge pull request #17581 from jketema/loc-table-merge
...
C++: Merge the location tables
2025-06-30 10:33:46 +02:00
Tom Hvitved
57661df306
Rust: Fix variable capture inconsistencies
2025-06-30 10:19:42 +02:00
Paolo Tranquilli
9cf037fdb9
Merge branch 'main' into redsun82/codegen-new-parent-child
2025-06-30 10:17:56 +02:00
Tom Hvitved
632cde689b
Merge pull request #19702 from geoffw0/lifetime
...
Rust: New query rust/access-after-lifetime-ended
2025-06-30 10:00:11 +02:00
Paolo Tranquilli
e3a61f5f18
Merge pull request #19899 from github/redsun82/copilot-instructions
...
Create copilot-instructions.md
2025-06-30 09:11:29 +02:00
Kasper Svendsen
c7194a4012
Overlay: Add missing QLDoc
2025-06-30 08:40:46 +02:00
Michael Nebel
a74f60bb84
Merge pull request #19910 from github/workflow/coverage/update
...
Update CSV framework coverage reports
2025-06-30 08:34:32 +02:00
Kasper Svendsen
5b09ecd769
Merge pull request #19780 from github/kaspersv/overlay-annotations-script-ci
...
Overlay: Add CI workflow to check overlay annotations
2025-06-30 08:11:14 +02:00
Jami Cogswell
42904113b4
Java: add qhelp references
2025-06-29 22:50:10 -04:00
Jami Cogswell
87ab4d0160
Java: remove java/run-method-called-on-java-lang-thread-directly
...
using existing query java/call-to-thread-run instead
2025-06-29 22:42:31 -04:00
Jami Cogswell
12e7bbbae8
Java: update existing tests to services tests
2025-06-29 22:41:47 -04:00
Jami Cogswell
1172f82a4b
Java: update existing tests to inline expectations
2025-06-29 22:21:41 -04:00
Jami Cogswell
e266918871
Java: add previous-id
2025-06-29 22:21:06 -04:00
Jami Cogswell
7a2023b863
Java: move original files
2025-06-29 22:13:49 -04:00
github-actions[bot]
81ec3b6566
Add changed framework coverage reports
2025-06-30 00:26:21 +00:00
Mrigank Pawagi
809d1d55a8
remove cases involving sizeof
2025-06-28 17:16:04 +00:00
Nicolas Will
38fdf7eea0
Merge pull request #19880 from bdrodes/operation_step_refactor
...
Crypto: Refactor OpenSSL operation step data-flow logic
2025-06-27 17:19:11 +02:00
Kasper Svendsen
e02affd327
Merge pull request #19901 from github/kaspersv/overlay-guards-inline
...
Overlay: Add missing `overlay[caller?]` annotation
2025-06-27 15:13:09 +02:00
Jeroen Ketema
89c91cc1a2
C++: Add change note
2025-06-27 15:06:03 +02:00
Jeroen Ketema
99a24f9650
C++: Fix macro handling after extractor changes
2025-06-27 14:42:33 +02:00
Jeroen Ketema
bf131dc84b
C++: Update stats file
2025-06-27 14:42:32 +02:00
Jeroen Ketema
7f47e31fb5
C++: Add upgrade and downgrade scripts
2025-06-27 14:42:20 +02:00
Jeroen Ketema
b4caba7c0e
C++: Merge the location tables
2025-06-27 14:42:08 +02:00
REDMOND\brodes
9f0c62b572
Crypto: Address PR comments.
2025-06-27 08:33:01 -04:00
Ben Rodes
122a004851
Update cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/MACAlgorithmInstance.qll
...
Co-authored-by: Nicolas Will <nicolaswill@github.com >
2025-06-27 08:28:05 -04:00
Jeroen Ketema
3e31cd3ce5
C++: Sync the product-flow field flow branch limits with the default one
2025-06-27 12:59:54 +02:00
Nicolas Will
976364fcaa
Merge branch 'main' into operation_step_refactor
2025-06-27 12:05:14 +02:00
Kasper Svendsen
5cddd384c7
Merge branch 'main' into kaspersv/overlay-annotations-script-ci
2025-06-27 11:19:52 +02:00
Kasper Svendsen
6038396115
Merge pull request #19898 from kaspersv/kaspersv/shared-overlay-annotation
...
Overlay: Add overlay annotation to shared lib
2025-06-27 11:18:55 +02:00
Michael Nebel
143a91efc4
Re-use the security-extended selector in the security-and-frozen-quality selector.
2025-06-27 11:08:08 +02:00
Jeroen Ketema
ad5ee1c498
Merge pull request #19894 from jketema/pretty
...
C++: Pretty print MaD ids in test output
2025-06-27 11:00:52 +02:00
Kasper Svendsen
5096ce405f
Overlay: Add missing overlay[caller?] annotation
2025-06-27 10:50:28 +02:00
Tom Hvitved
3fb8758ae1
Merge pull request #19886 from hvitved/rust/dataflow-caching
...
Rust: Cache `DataFlow::Node.{toString,getLocation}`
2025-06-27 10:33:50 +02:00
Michael Nebel
2f208bddb6
Merge pull request #19877 from michaelnebel/csharp/microsoftdatasqlclient
...
C#: Models for Microsoft.Data.SqlClient.
2025-06-27 10:24:38 +02:00
Nora Dimitrijević
f568d41264
Merge pull request #19888 from d10c/d10c/missing-diff-informed-tests
...
Java, Ruby: add missing .qlref tests
2025-06-27 09:28:41 +02:00
Paolo Tranquilli
c88049a9f4
Create copilot-instructions.md
2025-06-27 09:06:08 +02:00
Tom Hvitved
db0fc7be5d
Merge pull request #19881 from hvitved/rust/dataflow-traits
...
Rust: Data flow through trait methods
2025-06-27 08:55:48 +02:00
Kasper Svendsen
2863c7094a
Overlay: Add overlay annotation to shared lib
2025-06-27 08:54:05 +02:00
Jonas Jensen
b446fe74c2
Merge pull request #19846 from jbj/diff-informed-CleartextStorageCookie
...
Java: Diff-informed CleartextStorageCookie.ql
2025-06-27 08:45:11 +02:00
Kasper Svendsen
f0125e574c
Merge branch 'main' into kaspersv/overlay-annotations-script-ci
2025-06-27 08:31:34 +02:00
Kasper Svendsen
e6ef6a3326
Merge branch 'main' into kaspersv/overlay-java-discarding
2025-06-27 08:28:34 +02:00
Kasper Svendsen
da1b99b921
Merge pull request #19779 from github/kaspersv/overlay-java-annotations
...
Overlay: Add overlay annotations to Java & shared libraries
2025-06-27 08:26:33 +02:00
Joe Farebrother
4cbaeb10e9
Merge pull request #19641 from joefarebrother/python-qual-file-not-closed
...
Python: Improve performance of FileNotClosed query by using basic block reachability
2025-06-26 23:35:38 +01:00
Jeroen Ketema
0996e6083e
C++: Pretty print MaD ids in test output
2025-06-26 23:38:32 +02:00
REDMOND\brodes
0aee4f76f9
Crypto: Minor change to force CI/CD checks to restart, prior ql check failures do not make sense.
2025-06-26 16:35:01 -04:00
REDMOND\brodes
dc8d22a468
Crypto: Fix JCA to account for new key gen instance API in model.qll.
2025-06-26 15:48:10 -04:00
REDMOND\brodes
505d8806c7
Crypto: Add key input support for the graph for key generation operations.
2025-06-26 11:51:49 -04:00
Taus
cd0e46314c
Python: Add change note
2025-06-26 15:36:02 +00:00
Taus
ad53518644
Python: Regenerate parser files
2025-06-26 15:34:44 +00:00
Taus
e04821e9e3
Python: Allow use of match as an identifier
...
This previously only worked in certain circumstances. In particular,
assignments such as `match[1] = ...` or even just `match[1]` would fail
to parse correctly.
Fixing this turned out to be less trivial than anticipated. Consider the
fact that
```
match [1]: case (...)
```
can either look the start of a `match` statement, or it could be a type
ascription, ascribing the value of `case(...)` (a call) to the item at
index 1 of `match`.
To fix this, then, we give `match` the identifier and `match` the
statement the same precendence in the grammar, and additionally also
mark a conflict between `match_statement` and `primary_expression`. This
causes the conflict to be resolved dynamically, and seems to do the
right thing in all cases.
2025-06-26 15:33:00 +00:00
Florin Coada
0103ee2872
Add changelog entry for CodeQL CLI version 2.22.1
2025-06-26 15:50:23 +01:00
Nicolas Will
c54e68c855
Merge branch 'main' into pr/19880
2025-06-26 16:47:38 +02:00
Jeroen Ketema
ec09d36667
Merge pull request #19832 from ebickle/feature/oracle-model
...
C++: Support SQL Injection sinks for Oracle Call Interface (OCI)
2025-06-26 16:33:55 +02:00
Nicolas Will
0a97357216
Merge pull request #19814 from bdrodes/codescanning_fixes_cpp
...
Crypto: Fix QL-for-QL alerts and refactor type standardization
2025-06-26 16:33:19 +02:00
Paolo Tranquilli
4799861225
Merge branch 'redsun82/codegen-new-parent-child' into redsun82/rust-item-reorg
2025-06-26 16:29:42 +02:00
Owen Mansel-Chan
2ed451c9e3
Reformat references
2025-06-26 15:20:07 +01:00
Owen Mansel-Chan
10bb88825e
Add full stop at the end of each reference
2025-06-26 15:20:06 +01:00
Owen Mansel-Chan
297cdb53aa
Update guide to specify a full stop at the end of each reference
2025-06-26 15:20:04 +01:00
Eric Bickle
1142efbc03
Merge branch 'main' into feature/oracle-model
2025-06-26 06:48:40 -07:00
Eric Bickle
3083bdb0b4
C++: Update MaD line numbers in flow.expected
2025-06-26 06:47:24 -07:00
Owen Mansel-Chan
9f0f40d6ce
Add "Correct Usage" and "Incorrect Usage" headings
2025-06-26 14:40:49 +01:00
Owen Mansel-Chan
9521994adc
Fix format of markdown query help files
2025-06-26 14:40:07 +01:00
Tom Hvitved
9a48459951
Add change note
2025-06-26 15:14:08 +02:00
Nicolas Will
652e7ba15b
Merge branch 'main' into codescanning_fixes_cpp
2025-06-26 14:54:36 +02:00
Michael Nebel
37b3ca036a
Python: Freeze the quality queries in the security-and-quality suite.
2025-06-26 14:45:05 +02:00
Michael Nebel
d926a6a47d
Go: Freeze the quality queries in the security-and-quality suite.
2025-06-26 14:35:21 +02:00
Michael Nebel
7fecf7466f
Ruby: Freeze the quality queries in the security-and-quality suite.
2025-06-26 14:26:28 +02:00
Michael Nebel
145ada53f2
C#/Java/JavaScript: Re-factor query suites to use the new selector.
2025-06-26 14:19:27 +02:00
Nick Rolfe
5a176d6fbd
Merge pull request #19878 from github/nickrolfe/ql-overlay
...
Ruby/Rust/QL: simplify generation of overlay-related tables/predicates
2025-06-26 08:10:10 -04:00
Michael Nebel
3efbed56b0
Shared: Modify the frozen selector to only include security queries.
2025-06-26 14:09:43 +02:00
Michael Nebel
1fbf3a39fb
Shared: Add a copy of the security-and-quality selector.
2025-06-26 14:05:46 +02:00
Tom Hvitved
b70aa804e5
Rust: Cache DataFlow::Node.{toString,getLocation}
2025-06-26 13:49:37 +02:00
Nora Dimitrijević
89f1ee0301
Ruby: add meta/TaintedNodes.ql test
2025-06-26 13:22:07 +02:00
Nora Dimitrijević
e0b3a2c5f9
Java: convert ArbitraryApkInstallation test to .qlref
2025-06-26 13:22:05 +02:00
Kasper Svendsen
712e64e4a8
Overlay: Add overlay annotations to shared Guards library
2025-06-26 13:19:49 +02:00
Kasper Svendsen
9d2dd782d9
Merge remote-tracking branch 'github/main' into kaspersv/overlay-java-annotations
2025-06-26 13:18:25 +02:00
Jeroen Ketema
a5737dded3
Merge branch 'main' into feature/oracle-model
2025-06-26 12:48:55 +02:00
Tamás Vajk
ae36f94d5e
Merge pull request #19844 from tamasvajk/tamasvajk/threadpoolexecutor
...
Java: Add `java/javautilconcurrentscheduledthreadpoolexecutor` query for zero thread pool size
2025-06-26 12:36:09 +02:00
Paolo Tranquilli
de72e68d2c
Merge branch 'main' into redsun82/codegen-new-parent-child
2025-06-26 12:14:53 +02:00
Paolo Tranquilli
afc78ced50
Merge pull request #19874 from github/redsun82/codegen-use-one-test-file
...
Codegen: use one generated test file per directory
2025-06-26 11:59:40 +02:00
Anders Schack-Mulligen
321a4afd5c
Merge pull request #19883 from aschackmull/java/fix-assert-cfg
...
Java: Fix assert CFG by properly tagging the false successor.
2025-06-26 11:43:27 +02:00
Tamas Vajk
1bd543a8a2
Improve readability of the ID
2025-06-26 11:36:32 +02:00
Kasper Svendsen
64f27e2adf
Java: Add abstraction for discardable locatables
2025-06-26 11:35:37 +02:00
Tamás Vajk
1e0dd2a935
Apply suggestion from @michaelnebel
...
Co-authored-by: Michael Nebel <michaelnebel@github.com >
2025-06-26 11:34:43 +02:00
Anders Schack-Mulligen
7750f1244c
Merge pull request #19884 from aschackmull/guards/eqtest-refactor
...
Guards: Refactor EqualityTest interface.
2025-06-26 11:04:55 +02:00
Anders Schack-Mulligen
c091fc585b
Java: Account for AssertionError possibly not being extracted.
2025-06-26 11:03:59 +02:00
Anders Schack-Mulligen
326f2b0498
Java: Accept qltest change showing FP removal.
2025-06-26 11:03:39 +02:00
Anders Schack-Mulligen
f07d9dda39
Guards: Refactor EqualityTest interface.
2025-06-26 10:26:40 +02:00
Jeroen Ketema
b16e710d3b
Merge pull request #19870 from jketema/jketema/stats
...
C++: Update stats file after DCA and extractor changes
2025-06-26 10:21:35 +02:00
Anders Schack-Mulligen
1d4c8197ec
Java: Fix assert CFG by properly tagging the false successor.
2025-06-26 10:18:14 +02:00
Jonas Jensen
fc2b18ae8a
Java: Diff-informed CleartextStorageCookie.ql
...
This query shares implementation with several other queries about
cleartext storage, but it's the only one of them that's in the
code-scanning suite. The sharing mechanism remains the same as before,
but now each query has to override `getASelectedLocation` to become
diff-informed.
Two other data-flow configurations are used in this query, but they
can't easily be made diff-informed.
2025-06-26 09:31:11 +02:00
Paolo Tranquilli
9a8ef3acf7
Merge branch 'main' into redsun82/codegen-new-parent-child
2025-06-26 09:30:41 +02:00
Vasco-jofra
8a7516528d
Update formatting
2025-06-26 09:29:07 +02:00
Anders Schack-Mulligen
4d2c67857f
Merge pull request #19573 from aschackmull/guardslib
...
Shared/Java: Add shared Guards library and switch Java to use it.
2025-06-26 09:28:32 +02:00
Michael Nebel
cfadd30f98
C#: Add change-note.
2025-06-26 08:52:18 +02:00
Michael Nebel
becd46a47e
C#: Add MaD models for Microsoft.Data.SqlClient.
2025-06-26 08:51:10 +02:00
Michael Nebel
f3eafd33ff
C#: Exclude Microsoft.Data.SqlClient.SqlCommand from the best effort SqlSink creation.
2025-06-26 08:46:49 +02:00
Michael Nebel
ed7f68279f
C#: Add cs/sql-injection tests for APIs in Microsoft.Data.SqlClient.
2025-06-26 08:44:50 +02:00
Anders Schack-Mulligen
6f4adb8892
Shared: address review comments.
2025-06-26 07:17:37 +02:00
Anders Schack-Mulligen
5ddddaecdc
Java: Add change note.
2025-06-26 07:17:36 +02:00
Anders Schack-Mulligen
4645856f09
Java: document FP
2025-06-26 07:17:36 +02:00
Anders Schack-Mulligen
73810a6d85
Java: Fix perf issue.
2025-06-26 07:17:35 +02:00
Anders Schack-Mulligen
5a34a1a51b
Shared: Try caching.
2025-06-26 07:17:35 +02:00
Anders Schack-Mulligen
d4c897f8e2
Java: Fix perf issue.
2025-06-26 07:17:35 +02:00
Anders Schack-Mulligen
42b1b12aa1
Java: Fix qltests
2025-06-26 07:17:34 +02:00
Anders Schack-Mulligen
5c0dcd980d
Java: Switch to the shared Guards library.
2025-06-26 07:17:34 +02:00
Anders Schack-Mulligen
cc13193cb6
Java: Replace some references to basicNullGuard.
2025-06-26 07:17:33 +02:00
Anders Schack-Mulligen
0607fefc57
Java: Refactor integerGuard.
2025-06-26 07:17:33 +02:00
Anders Schack-Mulligen
a2778eee75
Java: Refactor clearlyNotNullExpr into a base case that does not rely on SSA.
2025-06-26 07:17:32 +02:00
Anders Schack-Mulligen
22d5dc999a
Shared: Bugfix for unique value implication.
2025-06-26 07:17:32 +02:00
Anders Schack-Mulligen
378209a6ad
Shared: Simplify and improve joins.
2025-06-26 07:17:31 +02:00
Anders Schack-Mulligen
b19bff9a4e
Shared: Switch case guards to be the case statements.
2025-06-26 07:17:31 +02:00
Anders Schack-Mulligen
f772493f4c
Shared: Elaborate qldoc.
2025-06-26 07:17:31 +02:00
Anders Schack-Mulligen
73ae613b7a
Shared: Many tweaks to Guards.
2025-06-26 07:17:30 +02:00
Anders Schack-Mulligen
c212d0ac8f
Shared: Improve shared guards lib.
2025-06-26 07:17:30 +02:00
Anders Schack-Mulligen
16c5b57953
Shared: Extend the shared Guards library with support for exception branch points.
2025-06-26 07:17:29 +02:00
Anders Schack-Mulligen
14b87f97b9
Shared: Extend the shared Guards library with support for custom wrappers.
2025-06-26 07:17:29 +02:00
Anders Schack-Mulligen
1d75008eba
Shared: Add a shared Guards library inspired by the Java and C# versions.
2025-06-26 07:17:28 +02:00
Anders Schack-Mulligen
994c1f6427
Java: Add hasInputFromBlock predicate in BaseSSA.
2025-06-26 07:17:28 +02:00
Anders Schack-Mulligen
a0c849139c
Java: Add guards-logic qltest with inline expectation.
2025-06-26 07:17:28 +02:00
Jami
aa65f54b1d
Merge pull request #19882 from owen-mc/go/avoid-deprecated-class
...
Go: Avoid using deprecated class
2025-06-25 21:16:08 -04:00
Owen Mansel-Chan
9663ecad21
Avoid using deprecated class
2025-06-26 01:46:14 +01:00
Owen Mansel-Chan
0f07ab58cf
Merge pull request #19654 from owen-mc/go/fix-definedtype-getbasetype
...
Go: fix `DefinedType.getBaseType`
2025-06-26 00:19:19 +01:00
Owen Mansel-Chan
d7b1d7bef4
Merge pull request #19677 from owen-mc/go/better-class-names-and-helpers
...
Go: Improve two class names and add some helper predicates
2025-06-26 00:17:32 +01:00
Chris Smowton
2291e10ce6
Fix typo
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-06-25 21:38:22 +02:00
Tom Hvitved
8c240399c1
Rust: Apply MaD trait models to implementations
2025-06-25 21:32:24 +02:00
Tom Hvitved
3e54c61f52
Rust: Add MaD trait tests
2025-06-25 21:32:22 +02:00
Tom Hvitved
5e265b10c7
Rust: Trait call dispatch in dataflow
2025-06-25 21:32:21 +02:00
Tom Hvitved
a4ed5da50b
Rust: Add data flow tests involving traits
2025-06-25 21:32:19 +02:00
REDMOND\brodes
7559c06fdb
Merge branch 'operation_step_refactor' of https://github.com/bdrodes/codeql into operation_step_refactor
2025-06-25 15:26:21 -04:00
REDMOND\brodes
7477471bc5
Crypto: Bug fix in output model
2025-06-25 15:25:51 -04:00
Nicolas Will
6571c11eb7
Merge branch 'main' into operation_step_refactor
2025-06-25 20:38:11 +02:00
Nicolas Will
98479ff6c3
Crypto: Update queries to use new type names
2025-06-25 20:34:33 +02:00
Nicolas Will
ad7358ac4f
Crypto: Deduplicate "GCM" mapping from OpenSSL modeling
2025-06-25 20:26:38 +02:00
Nicolas Will
8e6031df14
Crypto: Fix further acronym casing and remove unused field
2025-06-25 20:25:33 +02:00
Nicolas Will
b8097501b6
Update cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-06-25 20:12:51 +02:00
Nicolas Will
14472bf744
Crypto: Refactor type name mapping and fix QL-for-QL alerts
2025-06-25 20:08:14 +02:00
REDMOND\brodes
8280cbcaa1
Crypto: Update JCA model to include new model.qll updates.
2025-06-25 13:55:47 -04:00
Paolo Tranquilli
6803bf3861
Merge pull request #19851 from github/redsun82/rust-emission-trait
...
Rust: refactor `pre_emit!` and `post_emit!` to a trait
2025-06-25 19:22:29 +02:00
REDMOND\brodes
f9147cfb2b
Crypto: Remove experimental qll file
2025-06-25 12:26:41 -04:00
REDMOND\brodes
9cd2241bf6
Crypto: Remove accidentally uploaded temporary file.
2025-06-25 11:36:40 -04:00
REDMOND\brodes
072765abca
Crypto: Code scanning warning corrections.
2025-06-25 11:16:49 -04:00
REDMOND\brodes
93bad3c799
Crypto: Misc bug fixes and updated expected files.
2025-06-25 11:02:30 -04:00
Nick Rolfe
867826466e
Ruby/QL: unconditionally generate discard predicates
2025-06-25 15:35:58 +01:00
Nick Rolfe
57b866bbe1
Ruby/Rust/QL: move databaseMetadata to prefix.dbscheme
...
This has no effect on ruby.dbscheme, and adds the relation to
ql.dbscheme and rust.dbscheme. (The relation will be required for
overlay support).
2025-06-25 15:35:08 +01:00
Nick Rolfe
9021168725
QL: fix stats-collection workflow
2025-06-25 15:35:06 +01:00
Nora Dimitrijević
942cfc3bd6
Merge pull request #19842 from d10c/d10c/convert-java-tests-to-qlref
...
Java: convert remaining `java-code-scanning.qls` query tests to `.qlref`
2025-06-25 16:02:28 +02:00
Nicolas Will
710e08088f
Crypto: Refactor casing and documentation
2025-06-25 15:29:03 +02:00
Geoffrey White
006f0e8fcf
Merge branch 'main' into lifetime
2025-06-25 14:17:00 +01:00
Michael Nebel
bb85e24121
C#: Convert SQL injection test to use inline expectations.
2025-06-25 14:53:09 +02:00
Michael Nebel
af2ebed395
C#: Add stubs for Microsoft.Data.SqlClient.
2025-06-25 14:53:07 +02:00
Paolo Tranquilli
6a0140d3c9
Rust: fix Const test
2025-06-25 14:42:03 +02:00
Paolo Tranquilli
e4056c0a11
Rust: add change note
2025-06-25 14:39:22 +02:00
Paolo Tranquilli
78ecf1814e
Rust: add upgrade/downgrade scripts
2025-06-25 14:36:29 +02:00
Paolo Tranquilli
5d3bdb955c
Merge branch 'main' into redsun82/rust-item-reorg
2025-06-25 14:34:48 +02:00
Asger F
5289e4f424
JS: Fix a bug in a unit test
...
The 'extractTypeScriptFiles' override did not incorporate the file type and one of our unit tests was expecting this. The test was previously passing for the wrong reasons.
2025-06-25 14:31:31 +02:00
Asger F
02cdde1447
JS: Fix imprecise condition
2025-06-25 14:31:28 +02:00
Asger F
aef362152e
JS: Change notes
2025-06-25 14:31:25 +02:00
Asger F
c8b2674206
JS: Add support for index expressions
2025-06-25 14:31:22 +02:00
Asger F
b1d4776b17
JS: Handle name resolution through dynamic imports
2025-06-25 14:31:20 +02:00
Paolo Tranquilli
ab2e7082f3
Merge branch 'main' into redsun82/codegen-use-one-test-file
2025-06-25 14:31:17 +02:00
Asger F
7cc248703a
JS: Add test for dynamic imports
2025-06-25 14:31:17 +02:00
Asger F
92dd5bd1f4
JS: Add deprecation comment to qldoc
2025-06-25 14:31:14 +02:00
Asger F
488da145e8
JS: Don't try to augment invalid files
...
This check existed on the code path for full type extraction, but not for plain single-file extraction.
2025-06-25 14:31:11 +02:00
Asger F
74b817b642
JS: Remove code path for TypeScript full extraction
2025-06-25 14:31:05 +02:00
Paolo Tranquilli
b8b57365c3
Merge pull request #19876 from github/redsun82/rust-qltest-setup-nightly-toolchain
...
Rust: fix parallel execution of tests using the nightly toolchain
2025-06-25 14:30:22 +02:00
Paolo Tranquilli
fa006e3ea5
Rust: fix test
2025-06-25 14:17:14 +02:00
Paolo Tranquilli
1f66f902e5
Rust: fix parallel execution of tests using the nightly toolchain
...
Since we dropped checked in toolchain files for tests requiring nightly,
the `setup.sh` script was not doing its job of setting up the toolchains
and the `rust-src` component, occasionally leading to test failures.
2025-06-25 14:13:43 +02:00
Nick Rolfe
1e68a7e2de
Merge pull request #19719 from github/nickrolfe/ruby-discard-predicates
...
Ruby: generate overlay discard predicates
2025-06-25 07:18:29 -04:00
Michael Nebel
92a1b8971c
C#: Add Microsoft.Data.SqlClient to the list of stubs.
2025-06-25 12:52:58 +02:00
Nick Rolfe
a9ddf0026b
Ruby: generate overlay discard predicates
2025-06-25 11:47:27 +01:00
Nick Rolfe
1bbba2f664
Merge pull request #19684 from github/nickrolfe/ruby-overlay-extraction
...
Ruby: add support for extracting overlay databases
2025-06-25 06:39:30 -04:00
Paolo Tranquilli
355fd85c23
Codegen: remove unneeded has|getNumberOf in instance tests
2025-06-25 12:02:13 +02:00
Paolo Tranquilli
99eaaaa830
Rust: fix QL compilation error
2025-06-25 11:50:49 +02:00
Nick Rolfe
c6ff07ad5a
Merge branch 'main' into nickrolfe/ruby-overlay-extraction
2025-06-25 05:46:26 -04:00
Paolo Tranquilli
6bbf1e3bc1
Codegen: use one generated test file per directory
...
This collapses all generated test QL sources into a single one per
directory, using query predicates to run the different tests.
This should improve the time required to run generated tests.
2025-06-25 11:44:54 +02:00
Napalys Klicius
3d9e2f5438
Merge pull request #19858 from Napalys/js/execa
...
JS: moved `execa` out of experimental
2025-06-25 10:34:52 +02:00
Paolo Tranquilli
bcca47c873
Rust: make AssocItem and ExternItem subclasses of Item
2025-06-25 10:25:24 +02:00
Kasper Svendsen
46ac2fd9f0
Add CI workflow to check overlay annotations
2025-06-25 10:19:25 +02:00
Paolo Tranquilli
792ea10577
Merge branch 'redsun82/codegen-new-parent-child' into redsun82/rust-emission-trait
2025-06-25 10:19:10 +02:00
Kasper Svendsen
7186ea5975
Merge pull request #19871 from github/kaspersv/overlay-script-re
...
Use regex to match overlay annotations
2025-06-25 09:39:50 +02:00
Kasper Svendsen
869ba0d246
Use regex to match overlay annotations
2025-06-25 09:30:49 +02:00
Napalys Klicius
73126fef9e
JS: update change note.
2025-06-25 09:26:26 +02:00
Jeroen Ketema
2f1cd388d1
C++: Update stats file after DCA and extractor changes
2025-06-25 09:21:56 +02:00
Asger F
d39b68cd41
Merge pull request #19849 from asgerf/js/remove-legacy-actions-queries
...
JS: Remove legacy actions queries
2025-06-25 09:18:33 +02:00
Asger F
853fc1a7cf
Merge pull request #19852 from asgerf/js/react-use-server
...
JS: Model React 'use' and 'use server'
2025-06-25 09:13:56 +02:00
Jeroen Ketema
ddae47118b
Merge pull request #16075 from jketema/explicit
...
C++: Handle explicitly instantiated templates
2025-06-25 08:53:50 +02:00
Jeroen Ketema
fff23040b3
C++: Update test results
2025-06-25 08:14:22 +02:00
REDMOND\brodes
bd0efbe48c
Crypto: Overhaul of EVP final/init/update to now use a more general 'OperationStep' mechanic.
2025-06-24 16:03:25 -04:00
Chuan-kai Lin
9a064de86e
Merge pull request #19865 from github/cklin/pick-kotlin-version
...
pick-kotlin-version.py: tolerate warnings
2025-06-24 10:21:13 -07:00
Eric Bickle
b8f8501cf5
Merge pull request #1 from geoffw0/sql
...
C++: Fix for the SQL query.
2025-06-24 10:13:52 -07:00
Aditya Sharad
1c567b9b71
Merge pull request #19867 from adityasharad/qldoc/opcode-script-regex
...
QLDoc scripts: Fix overly permissive regex ranges
2025-06-24 10:11:08 -07:00
Aditya Sharad
a79e3cf604
QLDoc scripts: Fix overly permissive regex ranges
...
The range `A-aa-z` was too permissive and
includes special characters between `Z` and `a`.
Low impact, but fix to address an internally
reported code scanning alert.
2025-06-24 10:00:29 -07:00
Nora Dimitrijević
690446149a
Java: add CleartextStorageCookie test
...
Given that it's a non-path-problem dataflow query, the InlineExpectationsTest is not as useful.
2025-06-24 18:12:19 +02:00
Paolo Tranquilli
1dcd60527c
Codegen: improve implementation of generated parent/child relationship
...
This improves the implementation of the generated parent/child
relationship by adding a new `all_children` field to `ql.Class` which
lists all children (both direct and inherited) of a class, carefully
avoiding duplicating children in case of diamond inheritance. This:
* simplifies the generated code,
* avoid children ambiguities in case of diamond inheritance.
This only comes with some changes in the order of children in the
generated tests (we were previously sorting bases alphabetically there).
For the rest this should be a non-functional change.
2025-06-24 17:26:24 +02:00
Jeroen Ketema
9a83005730
Merge pull request #19862 from jketema/complex
...
C++: Support more complex 16-bit float types
2025-06-24 17:26:07 +02:00
Chuan-kai Lin
565627847f
pick-kotlin-version.py: tolerate warnings
...
This commit changes pick-kotlin-version.py to use re.search() instead of
re.match(), so that it can better cope with warning messages.
2025-06-24 08:13:43 -07:00
Jeroen Ketema
8f249c77bc
C++: Support more complex 16-bit float types
2025-06-24 16:56:34 +02:00
Nora Dimitrijević
a49999dd5d
PolynomialReDoS: disable diff-informed support
...
This is because it was failing the diff-informed consistency check, and like other ReDoS queries (Python?) the query tries to be helpful by showing a substring of a regex, which has a `hasLocation(...)` (intensional) but no corresponding `getLocation()` (extensional). Until the location overrides get updated to support `hasLocation`-based locations, it's probably best to turn off diff-informed support.
2025-06-24 16:42:41 +02:00
Nora Dimitrijević
b2cb585bf2
UnsafeDeserialization: add missing getASelectedSinkLocation override
...
This fixes the failing diff-informed consistency check.
2025-06-24 16:42:39 +02:00
Nora Dimitrijević
e213e3fc37
Java: convert ImplicitPendingIntents test to .qlref
2025-06-24 16:42:37 +02:00
Nora Dimitrijević
e0311e26c6
Java: convert ImproperIntentVerification test to .qlref
...
It's a non-path query, so the InlineExpectationsTest postprocessor doesn't do anything.
2025-06-24 16:42:35 +02:00
Nora Dimitrijević
aac4f63e9a
Java: convert RequestForgery test to .qlref
2025-06-24 16:42:32 +02:00
Nora Dimitrijević
7f05b72e10
Java: convert OgnlInjection test to .qlref
2025-06-24 16:42:30 +02:00
Nora Dimitrijević
cadfd0dcaa
Java: convert RsaWithoutOaep test to .qlref
2025-06-24 16:42:28 +02:00
Nora Dimitrijević
b7e47e2cf3
Java: convert PolynomialReDoS and RegexInjection tests to .qlref
...
Leaves ReDoS.ql unmodified since it's not a dataflow query; just moves it to its own directory.
2025-06-24 16:42:26 +02:00
Nora Dimitrijević
f5c7ef6ab4
Java: convert XPathInjection test to .qlref
2025-06-24 16:42:23 +02:00
Nora Dimitrijević
162b1c51a9
Java: convert XXE test to .qlref
2025-06-24 16:42:21 +02:00
Nora Dimitrijević
7f33f57c9b
Java: convert UrlForward test to .qlref
2025-06-24 16:42:19 +02:00
Nora Dimitrijević
bf1a699982
Java: convert CWE-522 tests to .qlref
2025-06-24 16:42:17 +02:00
Nora Dimitrijević
4412335223
Java: convert UnsafeDeserialization test to .qlref
2025-06-24 16:42:14 +02:00
Nora Dimitrijević
c4b0955045
Java: convert WebviewDebuggingEnabled test to .qlref
2025-06-24 16:42:12 +02:00
Nora Dimitrijević
192f45ed2b
Java: convert FragmentInjection test to .qlref
2025-06-24 16:42:10 +02:00
Nora Dimitrijević
2b19cbcd7e
Java: convert UnsafeContentUriResolution test to .qlref
2025-06-24 16:42:08 +02:00
Nora Dimitrijević
28694276e2
Java: convert MissingJWTSignatureCheck test to .qlref
2025-06-24 16:42:06 +02:00
Nora Dimitrijević
85c2f72892
Java: convert InsecureRandomness test to .qlref
2025-06-24 16:42:04 +02:00
Nora Dimitrijević
288a938814
Java: convert InsufficientKeySize test to .qlref
2025-06-24 16:42:02 +02:00
Nora Dimitrijević
993b261b63
Java: convert InsecureTrustManager test to .qlref
2025-06-24 16:42:00 +02:00
Nora Dimitrijević
b736e3733c
Java: convert IntentUriPermissionManipulation test to .qlref
2025-06-24 16:41:58 +02:00
Nora Dimitrijević
c77875d834
Java: convert TemplateInjection test to .qlref
2025-06-24 16:41:56 +02:00
Nora Dimitrijević
b8c7bd29c3
Java: convert SpelInjection test to .qlref
2025-06-24 16:41:54 +02:00
Nora Dimitrijević
2a837b208b
Java: convert MvelInjection test to .qlref
2025-06-24 16:41:52 +02:00
Nora Dimitrijević
1b61cb660a
Java: convert JexlInjection test to .qlref
2025-06-24 16:41:50 +02:00
Nora Dimitrijević
1cc91e964d
Java: convert GroovyInjection test to .qlref
2025-06-24 16:41:48 +02:00
Nora Dimitrijević
8e53da285f
Java: convert XSS test to .qlref
2025-06-24 16:41:46 +02:00
Nora Dimitrijević
199eabdd20
Java: convert XsltInjection test to .qlref
...
Also, split off into separate directory from JndiInjectionTest because their $Alerts were interfering with each other.
2025-06-24 16:41:43 +02:00
Nora Dimitrijević
3f9e0fee81
Java: convert JndiInjection test to .qlref
2025-06-24 16:41:41 +02:00
Nora Dimitrijević
e1ddce8456
Java: convert PartialPathTraversalFromRemote test to .qlref
2025-06-24 16:41:39 +02:00
Nora Dimitrijević
588efe4b2b
Java: Convert TaintedPath test to .qlref
2025-06-24 16:41:35 +02:00
Nora Dimitrijević
c4a385fa6a
Merge pull request #19817 from d10c/d10c/convert-tests-to-qlref
...
Convert remaining `{go,swift,ruby}-code-scanning.qls` query tests to `.qlref`
2025-06-24 16:31:13 +02:00
Arthur Baars
afcd8c3047
Merge pull request #19864 from github/post-release-prep/codeql-cli-2.22.1
...
Post-release preparation for codeql-cli-2.22.1
2025-06-24 15:45:21 +02:00
Nora Dimitrijević
35a48e7f41
Swift: convert XXE test to .qlref
2025-06-24 14:58:16 +02:00
Nora Dimitrijević
aa3e0116c1
Swift: convert PathInjection test to .qlref
2025-06-24 14:58:12 +02:00
Nora Dimitrijević
895a8fcb0f
Swift: convert CleartextLogging test to .qlref
2025-06-24 14:58:08 +02:00
Nora Dimitrijević
7615ec7a24
Swift: convert PredicateInjection test to .qlref
2025-06-24 14:58:03 +02:00
Nora Dimitrijević
92a48cdc2b
Ruby: convert InsecureDownload test to .qlref
2025-06-24 14:57:59 +02:00
Nora Dimitrijević
e32982057c
Ruby: convert CommandInjection test to .qlref
2025-06-24 14:57:54 +02:00
Nora Dimitrijević
807c7691c6
Ruby: add PrettyPrintModels test postprocessor
2025-06-24 14:57:49 +02:00
Nora Dimitrijević
cf92b0e91b
Go: convert IncorrectIntegerConversion test to .qlref
2025-06-24 14:57:48 +02:00
Nora Dimitrijević
76a3306c63
Go: convert UncontrolledAllocationSize test to .qlref
2025-06-24 14:57:44 +02:00
github-actions[bot]
6972c7a872
Post-release preparation for codeql-cli-2.22.1
2025-06-24 12:55:14 +00:00
Geoffrey White
e37979546c
Merge pull request #19754 from geoffw0/typeinfer
...
Rust: Type inference for `for` loops and array expressions
2025-06-24 13:19:37 +01:00
Kasper Svendsen
c380c5f150
Merge pull request #19863 from github/kaspersv/ql4ql-overlay-caller-q
...
QL4QL: Extend ql/inline-overlay-caller
2025-06-24 13:15:34 +02:00
Napalys Klicius
79a9d7def8
JS: removed execa parts from SystemCommandExecutors and moved it to Execa.qll
2025-06-24 12:41:22 +02:00
Geoffrey White
898c569f1b
Rust: Change note.
2025-06-24 11:37:54 +01:00
Arthur Baars
4ece8abc30
Merge pull request #19860 from github/release-prep/2.22.1
...
Release preparation for version 2.22.1
2025-06-24 12:37:02 +02:00
Geoffrey White
869c974745
Rust: Change note.
2025-06-24 11:34:54 +01:00
Geoffrey White
96dcdf94af
Rust: Change note.
2025-06-24 11:31:38 +01:00
Geoffrey White
21bea7e403
Merge branch 'main' into typeinfer
2025-06-24 11:23:34 +01:00
Paolo Tranquilli
d7f14600b3
Merge pull request #19853 from github/redsun82/rust-enable-change-note-check
...
Rust: enable change-note check
2025-06-24 12:15:08 +02:00
Kasper Svendsen
e1fc138670
QL4QL: Extend ql/inline-overlay-caller
2025-06-24 11:58:31 +02:00
Napalys Klicius
0902ca0605
JS: address copilot suggestions
2025-06-24 11:37:07 +02:00
Asger F
54bfde9b7a
Update javascript/ql/src/change-notes/2025-06-23-remove-legacy-actions-queries.md
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-06-24 11:22:37 +02:00
Asger F
bae3e255e4
Merge pull request #19859 from asgerf/js/remote-element-from-docs
...
JS: Remote mention of Element MaD token
2025-06-24 11:22:24 +02:00
Geoffrey White
6677a81e1c
Merge branch 'main' into lifetime
2025-06-24 10:11:21 +01:00
github-actions[bot]
3e074b2425
Release preparation for version 2.22.1
2025-06-24 08:55:31 +00:00
Simon Friis Vindum
601e317bfe
Merge pull request #19833 from paldepind/rust/overloaded-index
...
Rust: Add type inference for overloaded index expressions
2025-06-24 10:51:31 +02:00
Paolo Tranquilli
a72ae9c960
Rust: refactor ast-generator to have all customization at the start
2025-06-24 10:42:16 +02:00
Paolo Tranquilli
d0c7550119
Rust: refactor pre_emit! and post_emit! to a trait
2025-06-24 10:40:33 +02:00
Kasper Svendsen
0ee6a78a4a
Java: Allow methods with empty bodies for overlay
2025-06-24 10:38:07 +02:00
Kasper Svendsen
6e92d7e247
Java: Add entity discard predicates
2025-06-24 10:38:06 +02:00
Kasper Svendsen
b6e56f26c7
Java: Add manual overlay annotations
2025-06-24 10:38:05 +02:00
Asger F
d428eaeef8
Merge pull request #19655 from GeekMasher/js-clientrests-axios
...
JS: ClientRequests Axios Instance support
2025-06-24 10:35:51 +02:00
Geoffrey White
c2b317783f
C++: Fix for SQL query.
2025-06-24 09:29:46 +01:00
Jeroen Ketema
676289e653
Merge pull request #19845 from jketema/ir-sve
...
C++: Handle Arm SVE in the IR
2025-06-24 10:29:06 +02:00
Kasper Svendsen
81b677a2d9
rename overlay[caller] to overlay[caller?]
2025-06-24 10:25:07 +02:00
Kasper Svendsen
2da8d61984
Run config/sync-files.py
2025-06-24 10:25:06 +02:00
Kasper Svendsen
c207cfdeb7
Overlay: Add overlay annotations to Java & shared libraries
2025-06-24 10:25:06 +02:00
Napalys Klicius
2218a981f6
Merge pull request #19854 from Napalys/js/sinon
...
JS: Explicitly Mark `Sinon` Package as Non RegExp
2025-06-24 10:24:13 +02:00
Kasper Svendsen
e8a08a6b96
Merge pull request #19778 from github/kaspersv/overlay-annotations-script
...
Overlay: Add script to help maintain overlay annotations
2025-06-24 10:22:37 +02:00
Asger F
cb983102e5
JS: Remote mention of Element MaD token
2025-06-24 09:46:20 +02:00
Simon Friis Vindum
153e91bebb
Rust: Re-enable special casing in indexing for Vec
2025-06-24 09:30:23 +02:00
Napalys Klicius
8c345461f0
JS: add change note
2025-06-24 09:08:15 +02:00
Napalys Klicius
d05de1ba4e
JS: moved execa test cases outside experimental
2025-06-24 09:08:13 +02:00
Napalys Klicius
d8b5cb5862
JS: moved execa out of experimental
2025-06-24 09:07:43 +02:00
Paolo Tranquilli
e5cb639e28
Merge pull request #19848 from github/redsun82/rust-regenerate-models
...
Rust: regenerate models after rust-analyzer update
2025-06-24 08:22:38 +02:00
Napalys Klicius
33f42444d5
JS: add change note
2025-06-23 20:25:18 +02:00
Napalys Klicius
ef51ab172f
JS: exclude sinon module from regexp match calls
2025-06-23 20:25:17 +02:00
Napalys Klicius
584b4f51aa
JS: add false positive test cases for hostname regex detection
2025-06-23 20:25:10 +02:00
Geoffrey White
11ffb1f86f
Merge branch 'main' into lifetime
2025-06-23 17:06:06 +01:00
Paolo Tranquilli
8d4e36f869
Rust: enable change-note check
2025-06-23 17:53:53 +02:00
Paolo Tranquilli
bcb3863937
Merge branch 'main' into redsun82/rust-regenerate-models
2025-06-23 17:44:15 +02:00
Paolo Tranquilli
29b37a42ef
Merge pull request #19524 from github/redsun82/cargo-upgrade-3
...
Rust: upgrade `rust-analyzer` to 0.0.288
2025-06-23 17:43:39 +02:00
Geoffrey White
b82a7ab745
Rust: Update variable name in examples.
2025-06-23 16:42:02 +01:00
Tom Hvitved
1ccea7f6b2
Merge pull request #19829 from paldepind/rust/type-tree-constraint
...
Rust: Add `SatisfiesConstraintInput` module in shared type inference
2025-06-23 17:17:23 +02:00
Tom Hvitved
1f559b283d
Merge pull request #19850 from hvitved/rust/in-derive-macro
...
Rust: Take derive macros into account in `is{In,From}MacroExpansion`
2025-06-23 17:16:02 +02:00
Asger F
ea0a80a06a
JS: Un-deprecate Actions.qll for now as we have some internal queries that use it.
2025-06-23 16:38:04 +02:00
Asger F
4fc5738ded
JS: Change note
2025-06-23 16:08:21 +02:00
Asger F
61887beae0
JS: Add test case for false positive
2025-06-23 16:03:41 +02:00
Asger F
cc1a28ac7e
JS: Add parameters of server functions as remote flow sources
2025-06-23 16:03:39 +02:00
Asger F
d9f4e4a90d
JS: Add tests for functions with "use server" directive
2025-06-23 16:03:38 +02:00
Asger F
7dd7246cd4
JS: Update tests.expected
...
Mostly noise due to renamed predicates and reordered result sets
2025-06-23 16:03:35 +02:00
Asger F
180b023c7c
JS: Add inline expectations to React test
2025-06-23 16:03:33 +02:00
Asger F
1787d4dce8
JS: Enable inline expectations in test
...
Will update files in next commit
2025-06-23 16:03:32 +02:00
Asger F
1a18e68364
JS: Remove reactLibraryRef
...
This is not testing anything interesting, and is noisy when adding inline expectations
2025-06-23 16:03:30 +02:00
Asger F
99fb6b62ad
JS: Remove test_ prefix from query predicates
2025-06-23 16:03:29 +02:00
Paolo Tranquilli
823ac5c7ea
Merge branch 'main' into redsun82/cargo-upgrade-3
2025-06-23 16:01:21 +02:00
Simon Friis Vindum
326c7de521
Rust: Ensure index expressions are not handled as calls yet in data flow
2025-06-23 16:00:10 +02:00
Simon Friis Vindum
846ef9ad5a
Rust: Document spurious type
2025-06-23 16:00:08 +02:00
Simon Friis Vindum
84accd1c81
Rust: Implement overloaded index expression in type inference
2025-06-23 16:00:07 +02:00
Asger F
8ff7182f3a
JS: Move React test predicates into one file
2025-06-23 15:37:15 +02:00
Asger F
980d0f46fa
JS: Add model for react 'use'
2025-06-23 15:27:21 +02:00
Asger F
768ccc6a54
JS: Add test for react 'use' function
2025-06-23 15:26:08 +02:00
Tom Hvitved
7350196044
Rust: Take derive macros into account in is{In,From}MacroExpansion
2025-06-23 15:23:06 +02:00
Tom Hvitved
13bc0d2334
Merge pull request #19825 from hvitved/rust/path-resolution-consistency-remove-overlap
...
Rust: Avoid overlapping path resolution consistency checks
2025-06-23 15:20:49 +02:00
Geoffrey White
530ded18e4
Merge branch 'main' into typeinfer
2025-06-23 14:02:58 +01:00
Asger F
7da2d71a70
JS: Update query suite expectations
2025-06-23 14:57:23 +02:00
Nick Rolfe
45f089fda0
Ruby: skip non-existent files in overlay changes JSON
...
The previous implementation returned None if any of the paths in the
changes JSON couldn't be canonicalized. This could happen for files that
were deleted in the diff. Now, it just ignores paths for which
canonicalize() fails.
2025-06-23 13:53:18 +01:00
Asger F
b1da23968c
JS: Change note
2025-06-23 14:50:09 +02:00
Asger F
76b7228160
JS: Remove js/actions/command-injection
...
Superseded by actions/command-injection/{medium,critical}
2025-06-23 14:41:26 +02:00
Michael Nebel
725ba286b6
Merge pull request #19843 from michaelnebel/java/removequery
...
Java: Remove java/deprecated-call from the Code Quality suite.
2025-06-23 14:40:03 +02:00
Paolo Tranquilli
16b9bec015
Rust: regenerate models after rust-analyzer update
2025-06-23 14:39:56 +02:00
Asger F
9dcb61e771
JS: Remove js/actions/actions-artifact-leak
...
Superseded by actions/secrets-in-artifacts
2025-06-23 14:39:28 +02:00
Paolo Tranquilli
5162d2cf52
Rust: fix DB upgrade/downgrade scripts
2025-06-23 14:38:38 +02:00
Asger F
3a00e8d1c5
JS: Remove js/actions/pull-request-target
...
Superseded by actions/untrusted-checkout/{medium,high,critical}
2025-06-23 14:37:21 +02:00
Asger F
0d3bb89195
JS: Deprecate Actions.qll
2025-06-23 14:36:15 +02:00
Arthur Baars
13b28e2b60
Rust: add upgrade/downgrade scripts for new tables
2025-06-23 14:35:52 +02:00
Geoffrey White
4530e85c93
Rust: Repair the test annotations.
2025-06-23 13:12:53 +01:00
Geoffrey White
8c848ac019
Rust: Effects of rustfmt on .expected.
2025-06-23 13:08:42 +01:00
Geoffrey White
d02a7288ff
Update rust/ql/lib/codeql/rust/internal/TypeInference.qll
...
Co-authored-by: Simon Friis Vindum <paldepind@github.com >
2025-06-23 13:04:56 +01:00
Geoffrey White
34cd9766d5
Rust: Run rustfmt --edition 2024 on the test.
2025-06-23 12:59:42 +01:00
Geoffrey White
bfaabab929
Rust: Update more expectations.
2025-06-23 12:58:35 +01:00
Tom Hvitved
28d3f9b572
Merge pull request #19801 from geoffw0/poem
...
Rust: Update PoemHandlerParam to use getCanonicalPath
2025-06-23 13:53:39 +02:00
Paolo Tranquilli
cbd62a8b75
Rust: address review and test failure
2025-06-23 13:15:09 +02:00
Simon Friis Vindum
60c27f8c30
Rust: Address PR feedback
2025-06-23 13:11:15 +02:00
Asger F
8efa38be79
JS: Change default TypeScript extraction mode to basic
2025-06-23 12:55:20 +02:00
Asger F
e323833bc3
JS: Fix qldoc coverage
2025-06-23 12:55:19 +02:00
Asger F
07f84a5add
JS: Remove an unnecessary import
2025-06-23 12:55:18 +02:00
Asger F
1cab99290e
JS: Remove unneeded integration test
2025-06-23 12:55:16 +02:00
Asger F
f5f12c2f81
JS: Delete or simplify TypeScript type-specific tests
2025-06-23 12:55:15 +02:00
Asger F
ee9c4fa763
JS: Deprecate everything that depends on type extraction
2025-06-23 12:55:14 +02:00
Asger F
f5ac3fd611
JS: Remove old metric-meta query TypedExprs.ql
...
This was used in the very old dist-compare tool, but has no use anymore
2025-06-23 12:55:12 +02:00
Asger F
6d389c31c7
JS: Update an outdated QLDoc comment
2025-06-23 12:55:11 +02:00
Asger F
fcb6882f16
JS: Update API usage in MissingAwait
2025-06-23 12:55:09 +02:00
Asger F
e459884b69
JS: Update API usage in ViewComponentInput
2025-06-23 12:55:08 +02:00
Asger F
fb92d9b034
JS: Update type usage in UnreachableMethodOverloads
...
This query depended on the cons-hashing performed by type extraction to determine if two types are the same.
This is not trivial to restore, but not important enough to reimplement right now, so for now just simplifying the query's ability to recognise that two types are the same.
2025-06-23 12:55:06 +02:00
Asger F
8b2a424fb0
JS: Update type usage use in Express model
2025-06-23 12:55:05 +02:00
Asger F
b71d09630a
JS: Update type usage in Electron model
2025-06-23 12:55:03 +02:00
Asger F
ace8b09a36
JS: Update type usage in ClassValidator.qll
2025-06-23 12:55:01 +02:00
Asger F
9d4c38b5f1
JS: Update type usage in definitions.qll
2025-06-23 12:54:59 +02:00
Asger F
17a687b38f
JS: Update type usage in Nest library model
2025-06-23 12:54:57 +02:00
Asger F
b82e84930c
JS: Add public API
2025-06-23 12:54:56 +02:00
Asger F
2a0c7c8801
JS: Add classHasGlobalName into NameResolution
2025-06-23 12:54:55 +02:00
Asger F
de9dab9ba3
JS: Move some predicates into NameResolution
2025-06-23 12:54:53 +02:00
Tamas Vajk
60e726bdf2
Java: Add java/javautilconcurrentscheduledthreadpoolexecutor query for zero thread pool size
2025-06-23 12:52:45 +02:00
Paolo Tranquilli
84de91b7d8
Rust: accept test changes
2025-06-23 12:51:46 +02:00
Simon Friis Vindum
6e9fd496a6
Rust: Implement await expression using SatisfiesConstraint module
2025-06-23 12:51:03 +02:00
Simon Friis Vindum
a367388326
Shared: Refactor type inference and expose SatisfiesConstraint module
2025-06-23 12:50:45 +02:00
Asger F
93c891a987
Merge pull request #19822 from Fdawgs/patch-1
...
JS: Update Fastify tld
2025-06-23 12:49:42 +02:00
Jeroen Ketema
ca961386b2
C++: Handle Arm SVE in the IR
2025-06-23 12:33:42 +02:00
Paolo Tranquilli
8f9c03165f
Rust: remove unneeded rustc_apfloat patch
2025-06-23 12:28:03 +02:00
Paolo Tranquilli
377fb00dea
Merge branch 'main' into redsun82/cargo-upgrade-3
2025-06-23 12:26:15 +02:00
Tom Hvitved
1f09f713b9
Rust: Avoid overlapping path resolution consistency checks
2025-06-23 11:26:30 +02:00
Michael Nebel
a17078b6be
Java: Remove java/deprecated-call from the Code Quality suite.
2025-06-23 11:14:02 +02:00
Paolo Tranquilli
4eb98fc46e
Merge pull request #19280 from github/redsun82/rust-doc
...
Rust: update docs for public preview
2025-06-23 10:56:39 +02:00
Paolo Tranquilli
eb3b717b2f
Rust: accept test changes for now
2025-06-23 10:50:10 +02:00
Paolo Tranquilli
3ffaf5722a
Rust: fix Meta missing post_emit! implementation
2025-06-23 10:43:39 +02:00
Paolo Tranquilli
915b0b3861
Update docs/codeql/codeql-language-guides/analyzing-data-flow-in-rust.rst
...
Co-authored-by: Sunbrye Ly <56200261+sunbrye@users.noreply.github.com >
2025-06-23 10:16:55 +02:00
Paolo Tranquilli
bd0d996664
Merge branch 'main' into redsun82/rust-doc
2025-06-23 10:16:38 +02:00
Tom Hvitved
12cda86141
Merge pull request #19826 from hvitved/csharp/function-auth-test
...
C#: Add another test for `MissingAccessControl.ql`
2025-06-23 10:02:33 +02:00
Paolo Tranquilli
23c449f21f
Merge pull request #19824 from github/redsun82/rust-derive-macro-expansion
...
Rust: expand derive macros
2025-06-23 09:42:49 +02:00
Paolo Tranquilli
25b337b5c5
Merge pull request #19819 from github/redsun82/rust-regenerate-models
...
Rust: adapt model generation to new format
2025-06-23 09:16:52 +02:00
Jeroen Ketema
a9169dc126
Merge pull request #19837 from jketema/typeref-dataset-check
...
C++: Update expected test results after extractor changes
2025-06-22 10:47:40 +02:00
Arthur Baars
f4bdd4d35a
Merge branch 'main' into redsun82/rust-derive-macro-expansion
2025-06-20 19:32:08 +02:00
Arthur Baars
d303a2cf85
Merge branch 'main' into redsun82/cargo-upgrade-3
2025-06-20 19:16:59 +02:00
Arthur Baars
666144ef11
Merge pull request #19823 from github/aibaars/rust-expand-assoc-items
...
Rust: expand attribute macros on `AssocItem` and `ExternItem`
2025-06-20 19:13:44 +02:00
Arthur Baars
089f35330f
Merge branch 'main' into redsun82/cargo-upgrade-3
2025-06-20 19:07:39 +02:00
Arthur Baars
9605eb09b4
Merge pull request #19774 from github/aibaars/limit-diagnostics
...
Rust: limit number of diagnostics to 100 per trap file
2025-06-20 18:29:57 +02:00
Paolo Tranquilli
5b4c566f06
Cargo: fix Cargo.lock file
2025-06-20 18:27:49 +02:00
Paolo Tranquilli
9c06a826cf
Rust: apply suggestions from code review
...
Co-authored-by: Sunbrye Ly <56200261+sunbrye@users.noreply.github.com >
2025-06-20 18:16:32 +02:00
Paolo Tranquilli
7edae1eb17
Rust: suppress some expected macro expansion warnings
2025-06-20 17:56:09 +02:00
Paolo Tranquilli
02a9d4c86d
Rust: fix compilation errors
2025-06-20 17:52:36 +02:00
Paolo Tranquilli
efd318dc01
Rust: rerun codegen
2025-06-20 17:45:08 +02:00
Paolo Tranquilli
12aa93b578
Rust: suppress TypeAnchor in the generator
2025-06-20 17:43:59 +02:00
Paolo Tranquilli
492b0cd2e8
Bazel: regenerate cargo vendored files
2025-06-20 17:37:58 +02:00
Paolo Tranquilli
ce29d8a59a
Cargo: run upgrade
2025-06-20 17:34:23 +02:00
Paolo Tranquilli
2c14f273ed
Bazel/Rust: Change rust version
2025-06-20 17:34:16 +02:00
Arthur Baars
e3e88800d6
Merge branch 'main' into aibaars/rust-expand-assoc-items
2025-06-20 17:30:11 +02:00
Paolo Tranquilli
e8c3a2bfb9
Merge branch 'main' into redsun82/rust-regenerate-models
2025-06-20 17:22:49 +02:00
Paolo Tranquilli
3ddecd4d9f
Merge pull request #19836 from github/redsun82/rust-fix-test-flakiness
...
Rust: yet another tentative fix to test flakiness
2025-06-20 17:20:52 +02:00
Paolo Tranquilli
01b84a8b1e
Rust: yet another tentative fix to test flakiness
2025-06-20 16:58:38 +02:00
Paolo Tranquilli
c22526e9d0
Rust: add upgrade/downgrade scripts
2025-06-20 16:17:22 +02:00
Paolo Tranquilli
6064622961
Rust: accept test changes
2025-06-20 16:08:06 +02:00
Paolo Tranquilli
02b6e856a3
Rust: remove VariantDef
2025-06-20 15:59:18 +02:00
Taus
ac8b41a5da
Merge pull request #19680 from github/tausbn/javascript-exclude-obviously-generated-files
...
JavaScript: Don't extract obviously generated files
2025-06-20 15:52:39 +02:00
Paolo Tranquilli
0d292b785c
Rust: remove reduntant Item superclass from Adt subclasses
2025-06-20 15:45:18 +02:00
Arthur Baars
7bc3fd6ae9
Merge branch 'main' into aibaars/rust-expand-assoc-items
2025-06-20 15:38:34 +02:00
Napalys Klicius
3fbe348f99
Merge pull request #19784 from Napalys/js/express_middleware
...
JS: Improve Express middleware taint tracking
2025-06-20 15:36:26 +02:00
Paolo Tranquilli
bc8b1f251e
Rust: rename asFunction to getFunction
2025-06-20 15:27:56 +02:00
Paolo Tranquilli
6253b5c5d0
Merge branch 'main' into redsun82/rust-regenerate-models
2025-06-20 15:27:40 +02:00
Paolo Tranquilli
7a3f4a622e
Merge branch 'main' into aibaars/rust-expand-assoc-items
2025-06-20 15:22:20 +02:00
Paolo Tranquilli
670b835410
Merge branch 'main' into redsun82/rust-derive-macro-expansion
2025-06-20 15:21:03 +02:00
Eric Bickle
32464a8995
C++: Support SQL Injection sinks for Oracle Call Interface (OCI)
2025-06-20 06:05:24 -07:00
Tom Hvitved
b234d775ac
Merge pull request #19816 from hvitved/rust/path-resolution-crate-self
...
Rust: Path resolution for `crate::{self as foo}`
2025-06-20 14:50:28 +02:00
Paolo Tranquilli
f1f36db068
Merge pull request #19828 from github/redsun82/rust-fix-nightly-toolchain
...
Rust: fix nightly toolchain version for tests using it
2025-06-20 14:40:05 +02:00
Paolo Tranquilli
52c0028f85
Rust: make Adt be generated
2025-06-20 14:35:08 +02:00
Paolo Tranquilli
3590ccaa69
Rust: fix tests
2025-06-20 14:32:24 +02:00
Napalys Klicius
c1b2fd86b2
Update javascript/ql/lib/semmle/javascript/frameworks/Express.qll
...
Co-authored-by: Taus <tausbn@github.com >
2025-06-20 14:29:51 +02:00
Simon Friis Vindum
6773903786
Merge pull request #19820 from paldepind/rust/explicit-dereference
...
Rust: Fix type inference for explicit dereference with `*` to the `Deref` trait
2025-06-20 14:23:14 +02:00
Paolo Tranquilli
691281a481
Rust: mark one value flow as spurious (should be taint)
2025-06-20 14:13:37 +02:00
Paolo Tranquilli
7f1769e8d1
Rust: fix nightly toolchain version for tests using it
...
Rather than fixing the version separately for each test, we can just
request to use a nightly in the `options.yml` file, with the specific
version hard-coded in `qltest.rs`. We can update it if we need to.
It's better to have a single nightly version for all tests that require
it, in order to avoid downloading more versions than necessary.
2025-06-20 14:03:42 +02:00
Kasper Svendsen
ed8b787f28
rename overlay[caller] to overlay[caller?]
2025-06-20 13:58:01 +02:00
Kasper Svendsen
b1346e2ddb
Address copilot review comments
2025-06-20 13:58:00 +02:00
Kasper Svendsen
cd2fe64b39
Add script to add overlay annotations
2025-06-20 13:58:00 +02:00
Jeroen Ketema
17ce5f42e6
C++: Update expected test results after extractor changes
2025-06-20 13:51:36 +02:00
Arthur Baars
2acce96bb5
Apply suggestions from code review
...
Co-authored-by: Paolo Tranquilli <redsun82@github.com >
2025-06-20 13:25:54 +02:00
Arthur Baars
b7f66f8653
Rust: Rust: expand attribute macros on AssocItem and ExternItem
2025-06-20 13:21:26 +02:00
Simon Friis Vindum
bd2812c821
Rust: Only resolve deref methods on references to avoid blowup
2025-06-20 12:49:22 +02:00
Napalys Klicius
8b3137626c
Merge pull request #19743 from Napalys/js/quality/loop_shift
...
JS: Promote `js/loop-iteration-skipped-due-to-shifting` to the Code Quality suite
2025-06-20 12:36:29 +02:00
Tom Hvitved
84e93e2dc5
C#: Add another test for MissingAccessControl.ql
2025-06-20 11:49:30 +02:00
Napalys Klicius
bca536c5b6
Merge remote-tracking branch 'origin/main' into js/quality/loop_shift
2025-06-20 11:30:20 +02:00
Paolo Tranquilli
e935bd6faf
Rust: expand derive macros
2025-06-20 11:19:06 +02:00
Napalys Klicius
8c2bda32df
Merge pull request #19776 from Napalys/js/mass_quality_promotion
...
JS: Mass promotion of queries to `quality` status
2025-06-20 10:53:32 +02:00
Owen Mansel-Chan
529b6a5365
Merge pull request #19730 from owen-mc/update-qhelp-style-guide-for-markdown-format
...
Update qhelp style guide for markdown format
2025-06-20 09:53:12 +01:00
Napalys Klicius
7c25bcdad1
Changed js/duplicate-condition to reliability and correctness
2025-06-20 08:06:03 +02:00
Simon Friis Vindum
6b2c125bb0
Rust: Updated expected files
2025-06-19 21:01:53 +02:00
Simon Friis Vindum
09bf05f0df
Rust: Fix types for * to deref overload
2025-06-19 21:01:26 +02:00
Napalys Klicius
aa3e9c6579
Changed js/unreachable-statement to reliability and correctness
2025-06-19 19:52:03 +02:00
Napalys Klicius
32dd665472
Changed js/unused-loop-variable to reliability and correctness
2025-06-19 19:45:20 +02:00
Napalys Klicius
4fd3ef8f1c
Changed js/useless-assignment-in-return to reliability and correctness
2025-06-19 19:37:13 +02:00
Napalys Klicius
4bc97326d1
Changed js/label-in-switch to reliability and correctness
2025-06-19 19:30:53 +02:00
Napalys Klicius
125add1e19
Changed js/node/missing-exports-qualifier to reliability and correctness
2025-06-19 19:24:00 +02:00
Napalys Klicius
2ab35d6a45
Changed js/node/assignment-to-exports-variable to reliability and correctness
2025-06-19 19:21:06 +02:00
Paolo Tranquilli
f812b6461c
Rust: address review
2025-06-19 18:28:13 +02:00
Napalys Klicius
c1d29cc48a
Changed js/whitespace-contradicts-precedence to reliability and correctness
2025-06-19 18:26:12 +02:00
Napalys Klicius
bb9a2289a3
Changed js/conditional-comment to reliability and correctness
2025-06-19 18:25:31 +02:00
Paolo Tranquilli
11af770cea
Merge branch 'main' into redsun82/rust-doc
2025-06-19 18:21:47 +02:00
Paolo Tranquilli
7a9f23c759
Rust: fix sphinx error
2025-06-19 18:19:26 +02:00
Owen Mansel-Chan
cdd6245b98
Merge pull request #19799 from owen-mc/java/quality-tags
...
Java: Tag quality queries with `quality` and sub-category
2025-06-19 16:43:02 +01:00
Nick Rolfe
665df4baef
Ruby: add minimal path transformer support
...
Supports only a minimal subset of the project layout specification;
enough to work with the transformers produced by the CLI when building
an overlay database.
2025-06-19 16:34:16 +01:00
Nick Rolfe
1bd7c4f11c
Ruby: add databaseMetadata relation to dbscheme
...
This is required for overlay support.
2025-06-19 16:34:15 +01:00
Nick Rolfe
c4ccc5502d
Ruby: add support for extracting overlays
2025-06-19 16:34:14 +01:00
Frazer Smith
094b67f88c
JS: Update Fastify tld
2025-06-19 16:22:46 +01:00
Napalys Klicius
ad6c6b2d26
Changed js/angular/dependency-injection-mismatch to reliability and correctness
2025-06-19 17:16:32 +02:00
Paolo Tranquilli
2bf5a70884
Rust: update model generator tests
2025-06-19 17:08:33 +02:00
Taus
036489c6bd
Merge pull request #19812 from joefarebrother/python-qual-tagging
...
Python: Tag quality queries with `quality` and sub category.
2025-06-19 16:30:51 +02:00
Napalys Klicius
c18fe303d0
JS: Changed MissingThisQualifier to reliability and correctness
2025-06-19 16:27:00 +02:00
Napalys Klicius
244bf428a1
JS: Fixed typo.
2025-06-19 16:26:07 +02:00
Paolo Tranquilli
b5a7f87bbc
Rust: fix debug/CaptureSummaryModelsPartialPath.ql
2025-06-19 16:17:18 +02:00
Paolo Tranquilli
0e9d4aacd9
Rust: accept test changes
2025-06-19 16:13:26 +02:00
Jon Janego
a1e95069f3
Merge pull request #19815 from github/quality-top-level-tags
...
Update query-metadata-style-guide.md
2025-06-19 09:01:22 -05:00
Geoffrey White
b40bd75e64
Rust: Revert consistency check failures (cross fingers...)
2025-06-19 14:33:30 +01:00
Geoffrey White
7a25596749
Merge branch 'main' into typeinfer
2025-06-19 14:27:35 +01:00
Joe Farebrother
f457453647
Update redundant assignment to be a correctness issue for cross language consistency
2025-06-19 14:22:12 +01:00
Geoffrey White
26e7b2d5f8
Rust: Accept path resolution consistency changes.
2025-06-19 14:19:13 +01:00
Joe Farebrother
e67f057b85
Update integration test output
2025-06-19 14:09:55 +01:00
Joe Farebrother
63d7eac127
Ensure exactly one subcategory is used
2025-06-19 14:09:07 +01:00
Joe Farebrother
c8c92a7139
Update tags for mixed-tuple-returns to include exactly 1 subcategory
2025-06-19 14:09:00 +01:00
Joe Farebrother
c3f7b18055
Review suggestions - update some tags
2025-06-19 14:08:51 +01:00
Joe Farebrother
09516a47d3
Fix integration test output
2025-06-19 14:08:42 +01:00
Joe Farebrother
d28a19c961
Update integration test output & add changenote
2025-06-19 14:08:30 +01:00
Joe Farebrother
fa5b2ef794
Tag remaining high precision quality queries
...
Excluded queries that are python 2 specific; as well as the cyclic import queries
2025-06-19 14:08:07 +01:00
Joe Farebrother
02f8ec33f2
Tag 'type-checking'-like quality queries
2025-06-19 14:07:55 +01:00
Joe Farebrother
4b1d31c976
Tag 'linter-like' quality queries that don't use pointsto
2025-06-19 14:07:42 +01:00
Joe Farebrother
869e33e38c
Tag 'linter-like' quality queries that use pointto
...
Excluded for now: unnecassary-delete; since the pattern is often intentional to break reference cycles, which the query doesn't account for; so uncertain about its claim of high precision
2025-06-19 14:07:15 +01:00
Joe Farebrother
5c4548df45
Tag more quality queries.
...
Excluded for now for uncertainty: incomplete ordering, import deprecated module
2025-06-19 14:06:57 +01:00
Joe Farebrother
049c0705a9
Tag quality queries that are high precision and dont use pointsto
2025-06-19 14:06:46 +01:00
Paolo Tranquilli
170dd6c9cc
Rust: regenerate models
2025-06-19 14:58:47 +02:00
Paolo Tranquilli
79fd10d31f
Rust: move model generator to new format
2025-06-19 14:58:46 +02:00
Simon Friis Vindum
7d536a3c80
Rust: When resolving methods on reference also consider the reference itself
2025-06-19 14:57:52 +02:00
Geoffrey White
d55e8b7010
Rust: Add another test case for ranges.
2025-06-19 13:45:54 +01:00
Nora Dimitrijević
b62a6db314
Merge pull request #19760 from d10c/d10c/go/diff-informed-2
...
Go: mass-enable diff-informed queries phase 2 - `getASelected{Source,Sink}Location() { none() }`
2025-06-19 14:44:56 +02:00
Nora Dimitrijević
9974f9e93b
Merge pull request #19759 from d10c/d10c/cpp/diff-informed-2
...
C++: mass-enable diff-informed queries phase 2 - `getASelected{Source,Sink}Location() { none() }`
2025-06-19 14:44:04 +02:00
Simon Friis Vindum
845179665c
Rust: Add type inference test with borrow of unknown argument
2025-06-19 14:29:27 +02:00
Simon Friis Vindum
7c9d15b605
Rust: Add test with method on borrow
2025-06-19 14:29:26 +02:00
Simon Friis Vindum
9bdb541065
Rust: Add type inference tests for dereferencing
2025-06-19 14:29:15 +02:00
Napalys Klicius
8679151ace
Update javascript/ql/src/change-notes/2025-06-12-loop-iteration.md
...
Co-authored-by: Taus <tausbn@github.com >
2025-06-19 14:21:08 +02:00
Napalys Klicius
5448071e09
Update javascript/ql/src/change-notes/2025-06-12-loop-iteration-fix.md
...
Co-authored-by: Taus <tausbn@github.com >
2025-06-19 14:20:37 +02:00
Nora Dimitrijević
699c82a540
Merge pull request #19757 from d10c/d10c/actions/diff-informed-2
...
Actions: mass-enable diff-informed queries phase 2 - `getASelected{Source,Sink}Location() { none() }`
2025-06-19 14:19:55 +02:00
Nora Dimitrijević
11bccdd753
Merge pull request #19798 from d10c/d10c/ruby/diff-informed-2
...
Ruby: mass enable diff-informed data flow `none()` location overrides
2025-06-19 14:14:39 +02:00
Napalys Klicius
f80651e78a
Merge pull request #19750 from Napalys/js/remove_encodeURI
...
JS: remove `encodeURI` from sanitizer list of request forgery
2025-06-19 14:12:52 +02:00
Geoffrey White
7170e97e22
Rust: Update test expectations format (type=...).
2025-06-19 13:09:28 +01:00
Jeroen Ketema
3f3a920a54
Merge pull request #19818 from jketema/int-fix
...
Python: Fix integration test
2025-06-19 13:52:02 +02:00
Nora Dimitrijević
f577c08f4d
Merge pull request #19795 from d10c/d10c/java/diff-informed-2
...
Java: mass enable diff-informed data flow + `none()` overrides
2025-06-19 13:48:53 +02:00
Jeroen Ketema
dd1c09769f
Python: Fix integration test
2025-06-19 13:36:57 +02:00
Paolo Tranquilli
261c129555
MaD generator: add single file mode
2025-06-19 12:57:05 +02:00
Owen Mansel-Chan
2225a2d8de
Merge pull request #19763 from owen-mc/go/quality-tags
...
Go: Update tags for high precision quality queries
2025-06-19 11:32:31 +01:00
Geoffrey White
f670fcb301
Rust: Add a Vec test case that we actually get (explicit type).
2025-06-19 11:28:17 +01:00
Geoffrey White
1622d08624
Rust: Add inferArrayExprType.
2025-06-19 11:21:37 +01:00
Geoffrey White
639f85a556
Merge branch 'main' into typeinfer
2025-06-19 11:15:52 +01:00
Paolo Tranquilli
2818e6ee17
MaD generator: switch to snake_case fields
2025-06-19 11:59:28 +02:00
Owen Mansel-Chan
ebd917600d
Update quality suite integration test
2025-06-19 10:37:49 +01:00
Owen Mansel-Chan
a26610a05c
Add change note
2025-06-19 10:34:01 +01:00
Owen Mansel-Chan
a2ff045a7a
Update tags for high precision quality queries
2025-06-19 10:33:58 +01:00
Simon Friis Vindum
bea855abd7
Merge pull request #19789 from paldepind/rust/operator-borrowing
...
Rust: Account for borrows in operators in type inference
2025-06-19 11:33:56 +02:00
Kasper Svendsen
76786798df
Merge pull request #19810 from kaspersv/kaspersv/inline-overlay-caller-test
...
QL4QL: Add test for `ql/inline-overlay-caller` query
2025-06-19 11:30:32 +02:00
Geoffrey White
4b7c7c1c21
Rust: Accept consistency check changes (again).
2025-06-19 10:30:06 +01:00
Geoffrey White
64d0e174c4
Merge branch 'main' into poem
2025-06-19 10:19:05 +01:00
Nora Dimitrijević
438b92b995
Merge pull request #19797 from d10c/d10c/python/diff-informed-2
...
Python: mass enable diff-informed data flow `none()` location overrides
2025-06-19 10:55:07 +02:00
Nora Dimitrijević
687e8d21a1
Merge pull request #19761 from d10c/d10c/swift/diff-informed-2
...
Swift: mass-enable diff-informed queries phase 2 - `getASelected{Source,Sink}Location() { none() }`
2025-06-19 10:54:49 +02:00
Nora Dimitrijević
8e223263db
Merge pull request #19758 from d10c/d10c/csharp/diff-informed-2
...
C#: mass-enable diff-informed queries phase 2 - `getASelected{Source,Sink}Location() { none() }`
2025-06-19 10:54:38 +02:00
Napalys Klicius
8b2bb07140
Updated quality extended expected file after merge
2025-06-19 10:27:57 +02:00
Napalys Klicius
119c1e61ec
Merge remote-tracking branch 'origin/main' into js/mass_quality_promotion
2025-06-19 10:27:15 +02:00
Napalys Klicius
88f668781d
Updated extended expected file after merge
2025-06-19 10:24:39 +02:00
Napalys Klicius
53cae4fa97
Merge remote-tracking branch 'origin/main' into js/quality/loop_shift
2025-06-19 10:21:52 +02:00
Owen Mansel-Chan
5bc974afe4
Address review comments
2025-06-18 23:59:04 +01:00
Tom Hvitved
519e56f752
Rust: Path resolution for crate::{self as foo}
2025-06-18 19:57:57 +02:00
Tom Hvitved
77a92c062b
Rust: Add path resolution test
2025-06-18 19:55:33 +02:00
Geoffrey White
36cf4b613e
Rust: Accept consistency changes.
2025-06-18 17:32:20 +01:00
Geoffrey White
117a80e8d7
Rust: Accept consistency check changes.
2025-06-18 17:24:45 +01:00
Jon Janego
8450c5b111
Update query-metadata-style-guide.md
...
clarifying usage of top level tags
2025-06-18 11:24:30 -05:00
Owen Mansel-Chan
7a50298492
Update query suite test expectation
2025-06-18 16:47:42 +01:00
Owen Mansel-Chan
b8a694c9fe
Address review comments
2025-06-18 16:43:40 +01:00
Owen Mansel-Chan
d3eb4f8eb6
Remove query with hard-coded threshold
2025-06-18 16:43:33 +01:00
Owen Mansel-Chan
9cfa6fe59c
Update expected quality queries
2025-06-18 16:43:32 +01:00
Owen Mansel-Chan
72a6280482
Add change note
2025-06-18 16:43:30 +01:00
Owen Mansel-Chan
97dceb3a1c
Tag with quality and sub-category
2025-06-18 16:43:29 +01:00
Owen Mansel-Chan
5c71e3a922
State differences between XML and Markdown formats
2025-06-18 16:27:40 +01:00
REDMOND\brodes
8ee03e48ca
Crypto: Fix cpp-specific code scanning alert failure
2025-06-18 11:04:27 -04:00
Jeroen Ketema
2e5d52e7e8
Merge pull request #19792 from jketema/sve
...
C++: Add Arm scalable vector type QL classes
2025-06-18 17:01:29 +02:00
Paolo Tranquilli
24cfc840a6
Merge branch 'main' into redsun82/mad-generator
2025-06-18 16:53:43 +02:00
Geoffrey White
5edd6e85e7
Rust: Restrict results to 'unsafe' blocks.
2025-06-18 15:45:31 +01:00
Geoffrey White
dbde8418bb
Rust: Another test case (unsafe function).
2025-06-18 15:29:37 +01:00
Arthur Baars
a253b319d5
Rust: limit number of diagnostics to 100 per trap file
2025-06-18 16:05:11 +02:00
Nicolas Will
16c6411cf2
Merge pull request #19705 from bdrodes/pawel_signatures_conversion
...
Quantum: Add OpenSSL signature models
2025-06-18 15:32:15 +02:00
Paolo Tranquilli
e0114753fe
Rust: fix formatting in doc snippet
2025-06-18 15:24:20 +02:00
Joe Farebrother
4ae72dbad6
Merge pull request #19709 from joefarebrother/python-qual-init-call-subclass
...
Python: Modernize the init-calls-subclass query
2025-06-18 14:21:25 +01:00
Chris Smowton
4a14d3581b
Merge pull request #19496 from smowton/smowton/admin/cleanup-kotlin-versions
...
Kotlin: clean up alternate-version code now that v1.5.x support is dropped
2025-06-18 13:51:16 +01:00
Geoffrey White
01c6966cef
Rust: Remove redundant code and imports.
2025-06-18 13:25:30 +01:00
Tamás Vajk
f5f0918563
Merge pull request #19808 from tamasvajk/quality/extended-suite
...
Add code-quality-extended query suites
2025-06-18 14:23:22 +02:00
Paolo Tranquilli
494d192b32
Merge branch 'main' into redsun82/rust-doc
2025-06-18 14:02:31 +02:00
Tom Hvitved
ee9ceb5066
Merge pull request #19790 from hvitved/rust/new-mad-format
...
Rust: Add new MaD format based on QL-computed canonical paths
2025-06-18 13:55:23 +02:00
Jeroen Ketema
fe80d9a7d8
C++: Update stats file
2025-06-18 13:41:35 +02:00
Jeroen Ketema
c19085e56e
C++: Add upgrade and downgrade scripts
2025-06-18 13:41:34 +02:00
Jeroen Ketema
25149e7ec2
C++: Update expected test results
2025-06-18 13:41:33 +02:00
Jeroen Ketema
7ac26e879b
C++: Add Arm scalable vector type QL classes
2025-06-18 13:41:24 +02:00
Tom Hvitved
e5ef09a127
Merge pull request #19809 from hvitved/rust/jump-to-method-call
...
Rust: Extend jump-to-def query with method calls
2025-06-18 13:17:02 +02:00
Tom Hvitved
c88a5049e0
Rust: Fix column orders in interpretModelForTest
2025-06-18 13:15:36 +02:00
Tamas Vajk
94052f1782
Adjust C# expected file after rebase
2025-06-18 13:10:34 +02:00
Tamas Vajk
e6a9ff08a3
Adjust query-suite integration test expected files
2025-06-18 13:10:34 +02:00
Tamas Vajk
40274dcd69
Add code-quality-extended query suites
2025-06-18 13:10:34 +02:00
Geoffrey White
79cedc2586
Rust: Rename predicate again.
2025-06-18 11:56:04 +01:00
Geoffrey White
5bf799e717
Apply suggestions from code review
...
Co-authored-by: Simon Friis Vindum <paldepind@github.com >
2025-06-18 11:52:02 +01:00
Paolo Tranquilli
ddc065b161
Merge pull request #19800 from github/redsun82/rust-qltest-proc-macro
...
Rust: add `proc-macro` capabilities to QL tests
2025-06-18 12:23:14 +02:00
Tom Hvitved
63379df004
Rust: Add new MaD format based on QL-computed canonical paths
2025-06-18 12:14:36 +02:00
Tom Hvitved
c35598a2ea
Rust: Add Deprecated suffix to existing MaD extensible predicates
2025-06-18 12:14:30 +02:00
Paolo Tranquilli
75616de613
Rust: make proc_macro test version also 0.0.1
2025-06-18 11:12:13 +02:00
Paolo Tranquilli
27eeaf25fd
Rust: fix lock files
2025-06-18 10:47:44 +02:00
Kasper Svendsen
01e7a33e1b
QL4QL: Add test for ql/inline-overlay-caller query
2025-06-18 10:36:17 +02:00
Paolo Tranquilli
80ef303890
Merge branch 'main' into redsun82/rust-qltest-proc-macro
2025-06-18 10:32:42 +02:00
Geoffrey White
9c3e362594
Rust: Add TupleStructPat.getStruct.
2025-06-18 09:29:14 +01:00
Paolo Tranquilli
b29ad5b12a
Rust: add attribute macro expansion to path resolution test
2025-06-18 10:22:19 +02:00
Idriss Riouak
eff1fbab0f
Merge pull request #19805 from github/idrissrio/namespace-attributes
...
C++: fix typedef resolution in `ArrayType`
2025-06-18 10:21:21 +02:00
idrissrio
72559d5198
C++: move resolveTypedefs tests to dedicated directory
2025-06-18 10:11:55 +02:00
Michael Nebel
7311d5267a
Merge pull request #19783 from michaelnebel/csharp/qualitytags
...
C#: Mass add quality queries to the Code Quality suite.
2025-06-18 10:05:16 +02:00
idrissrio
4ec64021e1
C++: update change note after review comments
2025-06-18 09:49:12 +02:00
Tom Hvitved
5cd729545d
Rust: Extend jump-to-def query with method calls
2025-06-18 09:27:25 +02:00
Paolo Tranquilli
8bf171fd85
Rust: add missing use because of semantic conflict
2025-06-18 09:21:40 +02:00
Michael Nebel
5c575ac187
C#: Address review comments.
2025-06-18 09:18:36 +02:00
Paolo Tranquilli
03599b43cb
Merge branch 'main' into redsun82/rust-qltest-proc-macro
2025-06-18 09:01:28 +02:00
Paolo Tranquilli
214bbf46e8
Rust: fix test version to 0.0.1 as previously
2025-06-18 09:01:06 +02:00
Tom Hvitved
bef07a7f67
Merge pull request #19268 from hvitved/rust/summarized-callable-base
...
Rust: Make `SummarizedCallable` extend `Function` instead of `string`
2025-06-18 08:31:31 +02:00
Geoffrey White
df221ea8f8
Rust: Remove excess 'cached' annotation.
2025-06-17 23:17:58 +01:00
Geoffrey White
dec0deb4d1
Rust: Add some more test cases for type inference on Vecs.
2025-06-17 23:07:32 +01:00
Ben Rodes
b2765a2ff7
Merge branch 'main' into pawel_signatures_conversion
2025-06-17 14:52:41 -04:00
REDMOND\brodes
a81fffcbda
Crypto: Fix redundant override issue.
2025-06-17 13:27:54 -04:00
REDMOND\brodes
f2f97c993b
Crypto: QL docs fix.
2025-06-17 13:18:03 -04:00
idrissrio
b145523a71
C++: add change note
2025-06-17 19:03:43 +02:00
REDMOND\brodes
ac35634217
Merge branch 'openssl_acronym_normalization' into pawel_signatures_conversion
2025-06-17 13:03:12 -04:00
idrissrio
6ffba11f13
C++: accept new test results after changes
2025-06-17 18:51:43 +02:00
idrissrio
a6d7fb6aad
C++: fix typedef resolution in ArrayType
2025-06-17 18:49:39 +02:00
idrissrio
3f595fdd03
C++: add tests for ArrayType typedef resolution
2025-06-17 18:47:42 +02:00
Geoffrey White
cd6975f7b7
Rust: Update DotDotCheck from getResolvedPath -> getCanonicalPath.
2025-06-17 17:07:39 +01:00
Paolo Tranquilli
b2f7b89c80
Merge pull request #19803 from github/redsun82/rust-fix-qltest-lock-file
...
Rust: do not remove `Cargo.lock` file when running QL tests
2025-06-17 17:46:07 +02:00
Paolo Tranquilli
d2a05886c8
Rust: do not do html escaping in cargo template
2025-06-17 17:16:47 +02:00
Paolo Tranquilli
71b9263470
Rust: do not remove Cargo.lock file when running QL tests
2025-06-17 17:11:05 +02:00
Nora Dimitrijević
2316b8cf89
C++: mass-add none() location overrides
2025-06-17 17:10:07 +02:00
Nora Dimitrijević
67bccc3d05
Swift: mass-add none() location overrides
2025-06-17 17:03:25 +02:00
Nora Dimitrijević
51826c72d0
Go: mass-add none() location overrides
2025-06-17 17:02:08 +02:00
Nora Dimitrijević
634bfa914f
C#: mass-add none() location overrides
2025-06-17 17:00:48 +02:00
Nora Dimitrijević
fc61910df1
Actions: mass-add none() location overrides
2025-06-17 17:00:19 +02:00
Paolo Tranquilli
299fe2eb3f
Rust: add proc-macro capabilities to QL tests
...
This adds the possibility to add a special `proc_macro.rs` source file
to QL tests, which will be generated into a `proc_macro` crate the
usual `lib` crate depends on.
This allow to define procedural macros in QL tests, and is here used to
move the `macro-expansion` integration test to be a language test
instead.
As the generated manifests involved were starting to get a bit complex,
they are now generated from a `mustache` template.
2025-06-17 16:58:33 +02:00
Geoffrey White
942a980dac
Rust: Update PoemHandlerParam from getResolvedPath -> getCanonicalPath.
2025-06-17 15:55:40 +01:00
Nora Dimitrijević
6f7e0d6bc8
Ruby: mass enable diff-informed data flow none() location overrides
...
An auto-generated patch that enables diff-informed data flow in the obvious cases.
Adds `getASelected{Source,Sink}Location() { none() }` override to queries that select a dataflow source or sink as a location, but not both.
2025-06-17 15:48:11 +02:00
Nora Dimitrijević
b79ce6d30b
Python: mass enable diff-informed data flow none() location overrides
...
An auto-generated patch that enables diff-informed data flow in the obvious cases.
Builds on github#18346 and github/codeql-patch#88
2025-06-17 15:36:52 +02:00
Joe Farebrother
d1bd7228c3
Fix typos
2025-06-17 13:58:30 +01:00
Joe Farebrother
547c03cee6
Update tests
2025-06-17 13:58:27 +01:00
Joe Farebrother
2c8896848f
Update integration test output
2025-06-17 13:58:22 +01:00
Michael Nebel
17cd58bd3c
Merge pull request #19793 from michaelnebel/ruby/qualitytags
...
Ruby: Update quality tags.
2025-06-17 14:57:41 +02:00
Joe Farebrother
22a6fa3ebf
Remove case for being last in initialisation. This pattern can still be a problem if the subclass overrides initialisation.
2025-06-17 13:57:36 +01:00
Joe Farebrother
95153c172c
Add some more details to the documentation
2025-06-17 13:57:30 +01:00
Joe Farebrother
90bf45a3ba
Fix docs
2025-06-17 13:57:23 +01:00
Joe Farebrother
75bb743ce3
Update documentation
2025-06-17 13:57:18 +01:00
Joe Farebrother
a04fbc59f5
Update tests
2025-06-17 13:57:10 +01:00
Joe Farebrother
f3ce57840d
Filter out some results; for if the overridden method doesn't use self, or the call is last in the initialisation.
2025-06-17 13:57:04 +01:00
Joe Farebrother
ed3cf84efd
Update init calls subclass to not use pointto
2025-06-17 13:56:55 +01:00
Nora Dimitrijević
781f78813f
Merge pull request #19662 from d10c/d10c/swift/diff-informed
...
Swift: mass enable diff-informed data flow
2025-06-17 14:53:15 +02:00
Nora Dimitrijević
a8dc3008ef
Merge pull request #19660 from d10c/d10c/go/diff-informed
...
Go: mass enable diff-informed data flow
2025-06-17 14:52:46 +02:00
Nora Dimitrijević
47623aa138
Merge pull request #19663 from d10c/d10c/cpp/diff-informed
...
C++: mass enable diff-informed data flow
2025-06-17 14:52:35 +02:00
Nora Dimitrijević
79e982af38
Merge pull request #19661 from d10c/d10c/csharp/diff-informed
...
C#: mass enable diff-informed data flow
2025-06-17 14:52:24 +02:00
Nora Dimitrijević
84a7975a63
Merge pull request #19659 from d10c/d10c/actions/diff-informed
...
Actions: mass enable diff-informed data flow
2025-06-17 14:52:11 +02:00
Tom Hvitved
433756debb
Rust: Make SummarizedCallable extend Function instead of string
2025-06-17 14:12:38 +02:00
Nora Dimitrijević
aa5dd7bb4e
Java: mass enable diff-informed data flow + none() overrides
...
An auto-generated patch that enables diff-informed data flow in the obvious cases.
Builds on github#18346 and github/codeql-patch#88
2025-06-17 14:05:36 +02:00
Michael Nebel
08d28a5b85
Ruby: Add change-note.
2025-06-17 13:20:56 +02:00
Michael Nebel
ddc429cfeb
Ruby: Update quality related tags.
2025-06-17 13:16:20 +02:00
Idriss Riouak
a702f7a45e
Merge pull request #19773 from github/idrissrio/namespace-attributes
...
C++: Retrieve namespace attributes
2025-06-17 12:03:55 +02:00
Geoffrey White
4292b03b5c
Rust: Add logic for Vecs and slices.
2025-06-17 10:58:26 +01:00
Geoffrey White
66d6770c3f
Rust: If we're inferring both ways, it should really be to any element.
2025-06-17 10:47:35 +01:00
Geoffrey White
69da4e7462
Rust: Move inferArrayExprType logic into typeEquality predicate.
2025-06-17 10:45:57 +01:00
Paolo Tranquilli
e9a071032c
Rust: address review on docs
2025-06-17 11:19:59 +02:00
Mathias Vorreiter Pedersen
e1b9d9fe75
Merge pull request #19787 from MathiasVP/add-cpp-exception-edges-out-of-calls
...
C++: Add exception edges out of calls inside `try` statements
2025-06-17 10:05:46 +01:00
idrissrio
9fb47cc125
C++: add tests for attribute extraction on namespace
2025-06-17 10:52:27 +02:00
Simon Friis Vindum
f18acdf11f
Rust: Generalize type of debug predicate
2025-06-17 10:34:42 +02:00
Simon Friis Vindum
a0bc455d53
Rust: Account for borrows in operators in type inference
2025-06-17 10:34:41 +02:00
Simon Friis Vindum
cc234f2d19
Rust: Add a type inference test
2025-06-17 10:34:39 +02:00
Simon Friis Vindum
ebdffcc4ef
Rust: Refactor and generalize Call
2025-06-17 10:34:38 +02:00
Napalys Klicius
ac533ea809
Merge pull request #19771 from Napalys/js/sanitizer_serialize
...
JS: Improve XSS detection for `serialize-javascript` with tainted objects
2025-06-17 10:02:39 +02:00
Michael Nebel
d296ee7d50
C#: Update integration test expected output.
2025-06-17 10:00:12 +02:00
Michael Nebel
819ee33239
C#: Do not add complexity queries that should be configurable to the Code Quality suite.
2025-06-17 10:00:11 +02:00
Michael Nebel
758a6b5487
C#: Add change note.
2025-06-17 10:00:09 +02:00
Michael Nebel
3301924777
C#: Update integration test expected output.
2025-06-17 10:00:02 +02:00
Tom Hvitved
909e95f373
Merge pull request #19782 from hvitved/csharp/type-arg-unique
...
C#: Handle non-unique type arguments when computing generics strings
2025-06-17 09:59:48 +02:00
Michael Nebel
96b7250b61
C#: Mass enable quality queries and update tags.
2025-06-17 09:56:43 +02:00
Tom Hvitved
a188adc09b
C#: Handle non-unique type arguments when computing generics strings
2025-06-17 09:30:49 +02:00
Michael Nebel
87b52cc347
Merge pull request #19716 from michaelnebel/csharp/gethashcodeisnotdefined
...
C#: Add `cs/gethashcode-is-not-defined` to the Code Quality suite.
2025-06-17 08:43:26 +02:00
Napalys Klicius
72528749f2
JS: add change note
2025-06-17 08:34:34 +02:00
Napalys Klicius
060b98d36c
JS: enchance middleware taint tracking via local source
2025-06-17 08:30:19 +02:00
Napalys Klicius
fc0c8a8f5a
JS: update change note
2025-06-17 08:20:35 +02:00
Kasper Svendsen
7f38a7ff2f
Merge pull request #19590 from kaspersv/kaspersv/overlay-inline-warning
...
Overlay: Add QL for QL query to warn about possible non-inlining across overlay frontier
2025-06-17 08:03:34 +02:00
Tom Hvitved
4576880622
Merge pull request #19777 from hvitved/shared/summary-stack-mad-repr-unique
...
Shared: Make sure `getMadRepresentation` is unique
2025-06-16 20:00:18 +02:00
REDMOND\brodes
2b6a8321fd
Crypto: Update JCA model to account for Model.qll changes.
2025-06-16 12:53:48 -04:00
Mathias Vorreiter Pedersen
9f3569b980
C++: Accept test changes.
2025-06-16 17:53:35 +01:00
REDMOND\brodes
6c9c969573
Crypto: Remove dead comments
2025-06-16 12:43:29 -04:00
Mathias Vorreiter Pedersen
7355f555a5
C++: Add an exception edge out of calls inside try statements.
2025-06-16 17:27:11 +01:00
REDMOND\brodes
7c18686462
Crypto: Further ql-for-ql alert alert fixes.
2025-06-16 12:14:09 -04:00
Jeroen Ketema
4bed44d4d2
Merge pull request #19775 from jketema/seh-2
...
C++: Generate SEH edges for pointer dereference loads/stores in `__try` blocks
2025-06-16 18:00:39 +02:00
REDMOND\brodes
790a60784e
Crypto: Acronym change from OpenSSL to OpenSsl, AVC to Avc and EVP to Evp.
2025-06-16 10:56:31 -04:00
Napalys Klicius
da21a064ac
JS: add _parsedUrl as remote input source
2025-06-16 16:28:30 +02:00
Napalys Klicius
67aac7abfa
JS: add test cases for middleware property assignment tracking
2025-06-16 16:26:08 +02:00
REDMOND\brodes
90e480bbe8
Merge branch 'pawel_signatures_conversion' of https://github.com/bdrodes/codeql into pawel_signatures_conversion
2025-06-16 09:23:05 -04:00
REDMOND\brodes
45fa2c94da
Crypto: Code review cleanup.
2025-06-16 09:22:11 -04:00
Jeroen Ketema
4228828b66
C++: Address review comments
2025-06-16 15:02:08 +02:00
Nicolas Will
f975428243
Merge branch 'main' into pawel_signatures_conversion
2025-06-16 14:57:53 +02:00
idrissrio
09bc57a003
C++: update stats file
2025-06-16 14:34:08 +02:00
idrissrio
fc9e5bdbf7
C++: add upgrade and downgrade scripts
2025-06-16 14:34:07 +02:00
idrissrio
927c220ddc
C++: add change note for Namespace
2025-06-16 14:34:06 +02:00
idrissrio
e6f118374f
C++: add predicate to Namespace class to retrieve associated attributes
2025-06-16 14:34:05 +02:00
idrissrio
b112b93d75
C++: add namespaceattributes table to store namespace attributes
2025-06-16 14:34:04 +02:00
Tom Hvitved
631b14a0df
Rust: Fix three models
2025-06-16 14:28:06 +02:00
Tom Hvitved
41f7138627
Shared: Make sure getMadRepresentation is unique
2025-06-16 14:28:05 +02:00
Napalys Klicius
b14b661cd1
JS: add change note
2025-06-16 14:12:39 +02:00
Napalys Klicius
0c31838aa5
JS: mass add missing quality related tags to relevant queries
2025-06-16 14:05:57 +02:00
Paolo Tranquilli
0d803698ac
Go: remove language tests from workflows
...
Now that they are run internally using QLucie.
2025-06-16 14:01:40 +02:00
Napalys Klicius
0d5f5104d1
Updated UriEncodingSanitizer comment
2025-06-16 13:08:16 +02:00
Napalys Klicius
798721bd71
JS: add change note
2025-06-16 13:08:14 +02:00
Napalys Klicius
bdbc49c63f
JS: Removed encodeURI from request forgery sanitizer list
2025-06-16 13:08:11 +02:00
Napalys Klicius
eca69e1654
JS: remove serialize-javascript from JsonParsers.qll as it is not a parser
2025-06-16 12:59:36 +02:00
Jeroen Ketema
9d6a1a9885
C++: Generate SEH edges for pointer dereference loads in __try blocks
2025-06-16 12:39:53 +02:00
Jeroen Ketema
3eb768c1e9
C++: Generate SEH edges for pointer dereference stores in __try blocks
2025-06-16 12:39:50 +02:00
Jeroen Ketema
67d623fb06
C++: Add __try with load test case
...
Fix some formatting while here.
2025-06-16 12:39:47 +02:00
Paolo Tranquilli
30ab9b7b84
Merge pull request #19772 from github/redsun82/rust-test-cargo-lock
...
Rust: add `Cargo.lock` files to all tests with `cargo check`
2025-06-16 12:21:30 +02:00
Paolo Tranquilli
8b98e2a559
Rust: accept test changes
2025-06-16 11:54:07 +02:00
Mathias Vorreiter Pedersen
3d9d9fe9c0
Merge pull request #19746 from jketema/seh
...
C++: Use SEH exception edges in IR and generate SEH exception edges for calls in `__try` blocks
2025-06-16 10:53:54 +01:00
Simon Friis Vindum
fb0f12bfe0
Merge pull request #19756 from paldepind/rust/type-parameters-default
...
Rust: Type inference uses defaults for type parameters
2025-06-16 10:53:14 +02:00
Paolo Tranquilli
55096a31f2
Rust: add Cargo.lock files to all tests with cargo check
2025-06-16 10:52:53 +02:00
Napalys Klicius
deb715a517
JS: Add test case with encodeURI for request forgery
2025-06-16 10:49:29 +02:00
Napalys Klicius
fffbc0c0bc
JS: add change note
2025-06-16 10:38:27 +02:00
Napalys Klicius
5a107ec33b
JS: track taint through serialize-javascript calls with object arguments
2025-06-16 10:38:20 +02:00
Simon Friis Vindum
8fe737ca52
Rust: Use defaults for type parameters
2025-06-16 09:54:01 +02:00
Simon Friis Vindum
38aacb04c2
Rust: Add debug predicate for type mentions
2025-06-16 09:52:42 +02:00
Simon Friis Vindum
1425bb8b08
Rust: Add type inference tests with default for type parameters
2025-06-16 09:52:38 +02:00
Napalys Klicius
a96ea182c7
JS: add test cases for serialize-javascript with tainted object properties
2025-06-16 09:30:52 +02:00
Paolo Tranquilli
2a51749a31
Merge pull request #19748 from github/redsun82/rust-models
...
Rust: regenerate models
2025-06-16 08:37:00 +02:00
Paolo Tranquilli
ae6b0fd6e5
Merge pull request #19765 from github/redsun82/black
...
CI: fix python version
2025-06-16 08:27:04 +02:00
Nicolas Will
db0bc47495
Merge branch 'main' into pawel_signatures_conversion
2025-06-15 15:35:31 +02:00
Vasco-jofra
e2eca5bbff
Update test.expected
2025-06-15 12:12:12 +02:00
Vasco-jofra
6920430073
Improve dependency injection through import function calls
2025-06-15 00:47:34 +02:00
Vasco-jofra
9019879d99
Improve useFactory inter file function detection
2025-06-15 00:32:26 +02:00
Vasco-jofra
477f32c7ff
NestJS dependency injection support useValue provider
2025-06-15 00:21:38 +02:00
Vasco-jofra
2b143c86ac
NestJS dependency Injection support useFactory provider
2025-06-15 00:09:07 +02:00
Vasco-jofra
baf0d3ef22
Model NestJS middlewares as sources
2025-06-14 23:27:49 +02:00
Jeroen Ketema
1b2813dcf6
C++: Also generate an SEH edge for calls in initializers
2025-06-14 00:16:47 +02:00
Jeroen Ketema
815ae37a7e
C++: Add test case with call in initialization
...
Fix formatting while here.
2025-06-14 00:05:00 +02:00
Jeroen Ketema
4a42ca8c69
C++: Limit SEH exception edges to calls in __try blocks
2025-06-13 20:34:35 +02:00
Mathias Vorreiter Pedersen
d83cbde1cb
Merge pull request #19753 from MathiasVP/add-more-mad-summaries
...
C++: Add more MaD summaries
2025-06-13 18:23:11 +01:00
Paolo Tranquilli
fe1e562f8d
CI: fix python version
...
Turns out this is important for the black formatting tool to work
correctly. The formatting won't generally change between python versions
(it only depends on `black`'s version), but the formatted code needs to
be parseable by the system python version. One script uses
```python
def foo[T](x: T) -> T:
```
syntax, which is only supported in Python 3.12 and later.
Running `pre-commit` will now require a python 3.12 installation (which
is already what we mandate for internal developer environment setup).
The error in case of absence of such a version is pretty clear though.
2025-06-13 18:19:30 +02:00
REDMOND\brodes
1882db7d86
Crypto: EVP Signature Operation cleanup.
2025-06-13 12:07:03 -04:00
REDMOND\brodes
fb495bf665
Crypto: Update expected files. There are failures, but accepting them for now and noting the issue for a future PR.
2025-06-13 12:02:57 -04:00
REDMOND\brodes
cf2f0f16b8
Crypto: Initial model of signatures. Still incomplete for verification and correct handling of MACs.
2025-06-13 11:52:37 -04:00
Jeroen Ketema
c7a7447768
C++: Generate an SEH exception edge for each call inside a SEH block
2025-06-13 16:30:25 +02:00
Jeroen Ketema
400424f13c
C++: Add change note
2025-06-13 16:30:24 +02:00
Jeroen Ketema
6f41d3c4e3
C++: Use SEH exception edges for functions that unconditionally throw those
2025-06-13 16:30:23 +02:00
Jeroen Ketema
0038d0f17c
C++: Deprecate ThrowingFunction and no longer use in IR
2025-06-13 16:30:20 +02:00
Idriss Riouak
70647ce290
Merge pull request #19734 from github/idrissrio/goto
...
C++: Add support to `__leave`
2025-06-13 16:20:26 +02:00
Simon Friis Vindum
0a6d88487a
Merge pull request #19749 from paldepind/rust/impl-parameter-resolution
...
Rust: Disambiguate some method calls based on argument types
2025-06-13 16:14:13 +02:00
Simon Friis Vindum
ef15df35c6
Rust: Apply review suggestions
2025-06-13 15:43:44 +02:00
Simon Friis Vindum
eacf034dde
Rust: Disambiguate some method calls based on argument types
2025-06-13 15:43:39 +02:00
Simon Friis Vindum
d1aee7f704
Rust: Add type inference test
2025-06-13 15:42:08 +02:00
Vasco-jofra
ddf77a0b72
Remove unnecessary spaces
2025-06-13 15:37:27 +02:00
Vasco-jofra
4ea53773b9
Model the TypeORM Repository API
2025-06-13 15:35:46 +02:00
Tom Hvitved
6cca01662d
Merge pull request #19755 from hvitved/rust/type-inference-operand-workaround
...
Rust: Temporarily disable type information to flow into operands
2025-06-13 15:25:34 +02:00
Tom Hvitved
7051ad50ea
Merge pull request #19751 from hvitved/rust/type-inference-macro-expr
...
Rust: Type inference for macro expressions
2025-06-13 15:24:56 +02:00
Geoffrey White
14b75a968b
Apply suggestions from code review
...
Co-authored-by: mc <42146119+mchammer01@users.noreply.github.com >
2025-06-13 14:09:49 +01:00
Anders Schack-Mulligen
8838104d6a
Merge pull request #19733 from aschackmull/java/assert-cfg
...
Java: Update the CFG for assert statements to make them proper guards.
2025-06-13 14:52:57 +02:00
Geoffrey White
6194676b7d
Rust: Accept consistency failures (for now).
2025-06-13 13:51:01 +01:00
Geoffrey White
62e3cc57c6
Merge branch 'main' into typeinfer
2025-06-13 13:45:19 +01:00
Tom Hvitved
5f4d588cd9
Rust: Temporarily disable type information to flow into operands
2025-06-13 14:21:02 +02:00
Joe Farebrother
e04dea10c8
Merge pull request #19554 from joefarebrother/python-qual-iter-not-return-self
...
Python: Modernize iter not returning self query
2025-06-13 13:13:31 +01:00
Anders Schack-Mulligen
6131c680f6
Update java/ql/lib/semmle/code/java/ControlFlowGraph.qll
...
Co-authored-by: Tom Hvitved <hvitved@github.com >
2025-06-13 14:07:46 +02:00
Geoffrey White
b89d6d3402
Rust: Implement type inference for ArrayRepeatExprs.
2025-06-13 12:58:51 +01:00
Geoffrey White
51343a5c03
Rust: Implement type inference for ArrayListExprs.
2025-06-13 12:58:49 +01:00
Geoffrey White
f76b56291b
Rust: Implement type inference for 'for' loops on arrays.
2025-06-13 12:58:47 +01:00
Geoffrey White
840ef5ce92
Rust: Add test cases for type inference in loops.
2025-06-13 12:37:32 +01:00
Napalys Klicius
0906d85b39
Merge pull request #19726 from Napalys/js/quality/string_interpolation
...
JS: Promote `js/template-syntax-in-string-literal` to the Code Quality suite.
2025-06-13 13:36:53 +02:00
Tom Hvitved
2f698d1590
Rust: Type inference for macro expressions
2025-06-13 13:11:11 +02:00
Tom Hvitved
fd59a27bd2
Rust: Add macro expr type inference test
2025-06-13 13:11:07 +02:00
Tom Hvitved
ad64e04475
Merge pull request #19737 from hvitved/rust/type-inference-string-str-deref
...
Rust: Model `String` -> `str` implicit conversion in type inference
2025-06-13 13:09:24 +02:00
Paolo Tranquilli
ad3a5d777d
Rust: add public preview change notes
2025-06-13 13:03:39 +02:00
Mathias Vorreiter Pedersen
c14a4a66d5
C++: Accept test changes. Nothing exciting here.
2025-06-13 11:41:01 +01:00
Paolo Tranquilli
cae4a0459b
Rust: update supported-frameworks.rst
2025-06-13 12:38:33 +02:00
Mathias Vorreiter Pedersen
458a9b0359
C++: Add change note.
2025-06-13 11:06:45 +01:00
Mathias Vorreiter Pedersen
e72fe9b88b
C++: Generate lots of new models.
2025-06-13 10:57:44 +01:00
Mathias Vorreiter Pedersen
b02d859216
C++: Add lots of MaD model generation targets.
2025-06-13 10:56:19 +01:00
Paolo Tranquilli
ff9ac3bb6f
Rust: accept test changes
2025-06-13 11:56:12 +02:00
Tom Hvitved
66c0ff61bb
Rust: Model String -> str implicit conversion in type inference
2025-06-13 11:32:23 +02:00
Tom Hvitved
1acd636553
Merge pull request #19745 from hvitved/rust/path-resolution-has-implementation
...
Rust: Use `hasImplementation` in path resolution
2025-06-13 11:17:03 +02:00
idrissrio
7af828720a
C++: address review comments
2025-06-13 09:44:27 +02:00
idrissrio
ac1824aba7
C++: update stats file
2025-06-13 09:44:26 +02:00
idrissrio
7152e68a4d
C++: add upgrade and downgrade scripts
2025-06-13 09:44:25 +02:00
idrissrio
e6faebf850
C++: add change note for LeaveStmt
2025-06-13 09:44:14 +02:00
idrissrio
a6b3310f77
C++: test new class LeaveStmt
2025-06-13 09:44:03 +02:00
idrissrio
f6fa707770
C++: Add LeaveStmt class
2025-06-13 09:44:01 +02:00
idrissrio
7a4de55ac2
C++: Add leave statement to dbscheme
2025-06-13 09:44:00 +02:00
Paolo Tranquilli
118456d127
Rust: regenerate models
...
Models are regenerated with the fix from https://github.com/github/codeql/pull/19744
which corrects the order of generation.
2025-06-13 09:06:15 +02:00
Paolo Tranquilli
5df292c286
MaD generator: apply black formatting to all sources
2025-06-13 08:47:07 +02:00
Paolo Tranquilli
1a36374718
MaD generator: really fix ordering problem
2025-06-13 08:45:55 +02:00
Tom Hvitved
3d18e3ea8f
Rust: Use hasImplementation in path resolution
2025-06-13 08:44:44 +02:00
Paolo Tranquilli
f7266c973b
Merge branch 'main' into redsun82/mad-generator
2025-06-13 08:42:06 +02:00
Tom Hvitved
5b5074e922
Rust: Add another type inference test
2025-06-12 21:48:40 +02:00
REDMOND\brodes
eb20955a54
Crypto: Further simplify test caes to only use edges/nodes/properties. Update model to account for MAC algorithms.
2025-06-12 15:36:59 -04:00
Paolo Tranquilli
55eb9fb838
Merge pull request #19712 from github/redsun82/python-black
...
Add `black` pre-commit hook
2025-06-12 20:49:56 +02:00
Paolo Tranquilli
22c490ce4e
Merge pull request #19667 from github/redsun82/rust-mad
...
Rust: Use QL computed canonical paths in MaD `Field` tokens
2025-06-12 20:48:41 +02:00
Paolo Tranquilli
c56a32580d
Rust: remove now unneeded get(Arg|Param)List in the dataflow guide
2025-06-12 17:35:00 +02:00
Paolo Tranquilli
e1e34df948
Merge branch 'main' into redsun82/rust-doc
2025-06-12 17:33:51 +02:00
Paolo Tranquilli
a5dba9b54f
Merge pull request #19649 from github/redsun82/rust-has-implementation
...
Rust: extract `hasImplementation` on functions and consts
2025-06-12 15:19:23 +00:00
Simon Friis Vindum
e30a9e9906
Merge pull request #19685 from paldepind/rust/df-operator-overloading
...
Rust: Data flow through overloaded operators
2025-06-12 17:08:16 +02:00
Paolo Tranquilli
ae3bbb0a9b
MaD generator: run black formatter`
2025-06-12 16:52:29 +02:00
Paolo Tranquilli
39a3623b18
MaD generator: change default thread and ram
...
The standalone MaD generator now uses `0` for threads and throttles the
RAM to use 2GB per thread by default.
Also, replaced the hand-written argument parsing with `argparse`.
2025-06-12 16:52:14 +02:00
Tom Hvitved
70c3ae4609
Merge pull request #19727 from hvitved/shared/type-inference-doc
...
Shared: Add elaborate QL doc to `TypeInference.qll`
2025-06-12 16:31:50 +02:00
Paolo Tranquilli
7db31b06d1
MaD generator: tweak the scripts
...
* fix a bug where the order of model generation was determined by the
order in the `download.json` file of the experiment rather than the
order in the config file
* allow configuring `--ram` and `--threads` in the MaD generator scripts
* use no `--ram` and `--threads=0` by default in the bulk generator
(single generator defaults are left unchanged)
* allow to pass `--dca` multiple times, taking DBs from experiments
listed last. This allows to run a subset of the sources in a "fixup"
experiment and use it to "patch" a previous run without rerunning
everything.
2025-06-12 16:23:07 +02:00
Paolo Tranquilli
b102d5c39d
Rust: accept test changes
2025-06-12 16:19:17 +02:00
Paolo Tranquilli
836b81de40
Rust: fix mdoel
2025-06-12 15:50:21 +02:00
Paolo Tranquilli
506ea11d07
Rust: simplify upgrade script
2025-06-12 15:31:11 +02:00
Napalys Klicius
28ae39694f
Merge pull request #19741 from Napalys/js/quality/suspicious_method_names
...
JS: Promote `js/suspicious-method-name-declaration` to the Code Quality suite.
2025-06-12 15:30:13 +02:00
Paolo Tranquilli
ad7fb9c061
Merge branch 'main' into redsun82/rust-has-implementation
2025-06-12 15:25:59 +02:00
Napalys Klicius
10d10286f7
JS: add change notes
2025-06-12 15:23:31 +02:00
Napalys Klicius
885e8369aa
JS: add quality and reliability tags to loop-iteration-skipped-due-to-shifting
2025-06-12 15:18:26 +02:00
Napalys Klicius
66d66fe87d
JS: fix false positives for splice with conditional index decrement
2025-06-12 14:51:10 +02:00
Napalys Klicius
7292a76ee4
JS: add test cases for false positives in loop-iteration-skipped-due-to-shifting
2025-06-12 14:39:47 +02:00
Napalys Klicius
d7ad625de3
JS: restrict type tracking to strings of interest.
2025-06-12 14:28:00 +02:00
Arthur Baars
e1b4dea52f
Merge pull request #19742 from github/nickrolfe/rust-readme
...
Rust: fix typo in README.md
2025-06-12 14:26:19 +02:00
Napalys Klicius
da5cd251be
Update javascript/ql/src/LanguageFeatures/TemplateSyntaxInStringLiteral.ql
...
Co-Authored-By: Asger F <316427+asgerf@users.noreply.github.com >
2025-06-12 14:25:00 +02:00
Simon Friis Vindum
2dd2f2e72b
Rust: Address review comments
2025-06-12 14:12:27 +02:00
Nick Rolfe
02b75e884e
Rust: fix typo in README.md
2025-06-12 13:00:23 +01:00
Napalys Klicius
e6d26912e0
Update javascript/ql/src/Declarations/SuspiciousMethodNameDeclaration.qhelp
...
Co-authored-by: Asger F <asgerf@github.com >
2025-06-12 13:10:27 +02:00
Tom Hvitved
93fd6ec826
Merge pull request #19729 from hvitved/rust/type-inference-adjust-type-relevant-access
...
Rust: Also apply `adjustedAccessType` in `RelevantAccess`
2025-06-12 13:04:13 +02:00
Napalys Klicius
7b91a57eb1
JS: add change note.
2025-06-12 12:19:39 +02:00
Paolo Tranquilli
455490436c
Rust: fix dataflow models test expectation
2025-06-12 12:16:37 +02:00
Tom Hvitved
9e6ce98491
Merge pull request #19728 from hvitved/rust/type-inference-debug-predicates
...
Rust: Add another type inference debug predicate
2025-06-12 12:15:19 +02:00
Tom Hvitved
1ec376073b
Update shared/typeinference/codeql/typeinference/internal/TypeInference.qll
...
Co-authored-by: Geoffrey White <40627776+geoffw0@users.noreply.github.com >
2025-06-12 12:14:52 +02:00
Napalys Klicius
75ee649362
JS: add change note
2025-06-12 12:14:14 +02:00
Napalys Klicius
923aff2439
JS: Fixed false positive on manual string interpolation.
2025-06-12 11:35:33 +02:00
Owen Mansel-Chan
538a5af1d1
Merge pull request #19738 from owen-mc/pr/felickz/19530
...
Set CWE-134 from 9.3 to 7.3 CVSS score for memory safe languages (#2 )
2025-06-12 10:27:28 +01:00
Napalys Klicius
bafe7e66ad
JS: Fix template literal detection in string concatination
2025-06-12 11:18:20 +02:00
Simon Friis Vindum
8cde1eefb2
Rust: Remove Access from adjustAccessType
2025-06-12 11:16:32 +02:00
Simon Friis Vindum
f138f77cc1
Rust: Only adjust access type for method call expressions
2025-06-12 11:16:30 +02:00
Simon Friis Vindum
03c9a78bfb
Rust: Simplify accessDeclarationPositionMatch
2025-06-12 11:16:29 +02:00
Simon Friis Vindum
3463ebd8ce
Rust: Adapt data flow consistency queries to ! being a call
...
The exact same problem occurs in Ruby, hence the `multipleArgumentCallExclude` implementation is adapted from Ruby's.
2025-06-12 11:16:28 +02:00
Simon Friis Vindum
fecd445e78
Rust: Use Call in data flow
2025-06-12 11:16:26 +02:00
Simon Friis Vindum
5642445e1d
Rust: Fix canonical path for Deref trait
2025-06-12 11:16:25 +02:00
Simon Friis Vindum
7684e01c3a
Rust: Use Call in type inference
2025-06-12 11:16:19 +02:00
Napalys Klicius
861e4ee11e
JS: Added test cases including manual interpolation and string concatination.
2025-06-12 11:15:36 +02:00
Simon Friis Vindum
47864781c1
Rust: Add abstraction over all kinds of calls
2025-06-12 11:12:06 +02:00
Simon Friis Vindum
ce1c9fbec1
Rust: Account for arity in operator overloading
...
For instance the binary `&` is overloadable but the prefix `&` is not. Similarly, `*` has a different target depending on if it's prefix or infix.
2025-06-12 11:12:04 +02:00
Simon Friis Vindum
18583550ae
Rust: Add data flow tests for operator overloading
2025-06-12 11:12:03 +02:00
Paolo Tranquilli
3c834de5be
Rust: fix dataflow models test
2025-06-12 11:04:30 +02:00
Anders Schack-Mulligen
d0d47808e9
Java: Add change note.
2025-06-12 11:03:49 +02:00
Tom Hvitved
d667f7d411
Merge pull request #19732 from hvitved/rust/builtin-canonical-paths
...
Rust: Generate canonical paths for builtins
2025-06-12 10:47:00 +02:00
Paolo Tranquilli
85e9f5a3b0
Merge pull request #19559 from github/redsun82/rust-extract-libs
...
Rust: move body skipping logic to code generation
2025-06-12 10:45:30 +02:00
Tom Hvitved
649481e279
Merge pull request #19657 from hvitved/rust/type-inference-index-expr-simple
...
Rust: Simple type inference for index expressions
2025-06-12 10:27:09 +02:00
Owen Mansel-Chan
23cbc6abc4
Merge pull request #19723 from apsscolari/update-precision-java-concatenated-command-line
...
Update precision java concatenated command line
2025-06-12 09:23:00 +01:00
Geoffrey White
fdf1dca28f
Merge pull request #19735 from geoffw0/canonical
...
Rust: Update RegexInjectionExtensions to use getCanonicalPath.
2025-06-12 09:14:52 +01:00
Napalys Klicius
c5a1421405
JS: promote suspicious-method-name-declaration to quality query.
2025-06-12 09:54:01 +02:00
Napalys Klicius
60e3b0c8e7
JS: Update qhelp and added more examples.
2025-06-12 09:53:56 +02:00
Napalys Klicius
41f4236b86
JS: expanded suspicious-method-name-declaration test suite
2025-06-12 09:29:30 +02:00
Paolo Tranquilli
326ddd6625
Merge branch 'main' into redsun82/rust-mad
2025-06-12 09:24:44 +02:00
Paolo Tranquilli
a6cc94698a
Rust: fix inline flow test
2025-06-12 09:24:33 +02:00
Tom Hvitved
383cc5c2a7
Rust: Rename Bultins.qll -> Builtins.qll
2025-06-12 09:12:32 +02:00
REDMOND\brodes
20e2c7cefd
Crypto: Overhaul/refactor of EVPInitialzers. Update cipher operation to disallow null key and IV on initializers (typically do not represent an actual key or IV).
2025-06-12 00:41:15 -04:00
Ana Scolari
a07ce30d30
Update java-code-scanning.qls.expected
...
removing line once this query precision is changed to Medium
2025-06-11 15:27:20 -07:00
Ana Scolari
374d7da4a2
Merge branch 'main' into update-precision-java-concatenated-command-line
2025-06-11 15:24:41 -07:00
Jon Janego
7f76f5b056
Merge pull request #19740 from github/changedocs-2.22.0
...
Changedocs 2.22.0
2025-06-11 17:18:16 -05:00
Jon Janego
94a2d0876c
escaping
2025-06-11 17:02:26 -05:00
Jon Janego
62e17c108c
RST sitedocs for 2.22.0
2025-06-11 16:55:14 -05:00
Jeroen Ketema
7d8d596a35
Merge pull request #19686 from github/idrissrio/lambdaparams
...
C++: Add boolean for explicit lambda parameter lists
2025-06-11 23:53:00 +02:00
Jon Janego
6ec48117b5
Merge pull request #19739 from github/changedocs-2.22.0
...
fixing some improperly escaped URLs
2025-06-11 16:24:29 -05:00
Jon Janego
6336e3d44b
fixing another bracket
2025-06-11 16:02:28 -05:00
Chad Bentz
0135cf661f
Attempt to edit swift change notes for CI failure
2025-06-11 21:49:26 +01:00
Jon Janego
8f55dcdd67
removing brackets around a url
2025-06-11 15:36:30 -05:00
REDMOND\brodes
8f25380655
Crypto: Consolidate tests to use node, edges, and properties.
2025-06-11 15:15:22 -04:00
Tom Hvitved
69e549f400
Rust: Generate canonical paths for builtins
2025-06-11 21:14:56 +02:00
REDMOND\brodes
d3cff2dff1
Crypto: Add support to trace keys, add support to find prior key gen properties that configure downstream operations. Add key size tests
2025-06-11 13:58:56 -04:00
Geoffrey White
087e666658
Rust: Exclude sources in macro expansions.
2025-06-11 18:48:23 +01:00
Geoffrey White
168246005c
Rust: Extend tests based on cases found in DCA.
2025-06-11 18:33:59 +01:00
Nora Dimitrijević
f2bd454e99
Actions: mass enable diff-informed data flow
...
An auto-generated patch that enables diff-informed data flow in the obvious cases.
Builds on https://github.com/github/codeql/pull/18346 and https://github.com/github/codeql-patch/pull/88
2025-06-11 19:10:11 +02:00
Geoffrey White
b29deed919
Rust: Accept changes in an unrelated test reported by CI.
2025-06-11 18:09:22 +01:00
Nora Dimitrijević
f2085c2293
C#: mass enable diff-informed data flow
...
An auto-generated patch that enables diff-informed data flow in the obvious cases.
Builds on https://github.com/github/codeql/pull/18344 and https://github.com/github/codeql-patch/pull/88
2025-06-11 18:56:25 +02:00
Geoffrey White
bd21a03fc3
Merge pull request #19718 from geoffw0/taintreach
...
Rust: Adjust the taint reach metric for better stability.
2025-06-11 17:51:50 +01:00
Nora Dimitrijević
4dd07f475b
C++: mass enable diff-informed data flow
...
An auto-generated patch that enables diff-informed data flow in the obvious cases.
Builds on https://github.com/github/codeql/pull/18342 and https://github.com/github/codeql-patch/pull/88
2025-06-11 18:51:01 +02:00
Nora Dimitrijević
e233501144
Go: mass enable diff-informed data flow
...
An auto-generated patch that enables diff-informed data flow in the obvious cases.
Builds on https://github.com/github/codeql/pull/18345 and https://github.com/github/codeql-patch/pull/88
2025-06-11 18:44:24 +02:00
Nora Dimitrijević
2078a34763
Disable diff-informed on InsecureTLSQuery due to DIFF-INFORMED test failures
2025-06-11 18:36:32 +02:00
Nora Dimitrijević
afec8b3153
Swift: mass enable diff-informed data flow
...
An auto-generated patch that enables diff-informed data flow in the obvious cases.
Builds on https://github.com/github/codeql/pull/18343 and https://github.com/github/codeql-patch/pull/88
2025-06-11 18:34:33 +02:00
Ana Scolari
b84f9d6c3c
Update java/ql/src/change-notes/2025-06-10-reduce-precision-for-building-cmdline-with-string-concatenation.md
...
Co-authored-by: Owen Mansel-Chan <62447351+owen-mc@users.noreply.github.com >
2025-06-11 08:55:45 -07:00
Ana Scolari
f915984b01
Update java/ql/src/change-notes/2025-06-10-reduce-precision-for-building-cmdline-with-string-concatenation.md
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-06-11 08:55:34 -07:00
Paolo Tranquilli
97c2dfe23f
Rust: fix tests
2025-06-11 17:32:43 +02:00
Paolo Tranquilli
bea5381420
Rust: replace last hand-written instances of Field[crate::
2025-06-11 16:48:39 +02:00
Paolo Tranquilli
c6c52edbee
MaD generator: tweak the scripts
...
* fix a bug where the order of model generation was determined by the
order in the `download.json` file of the experiment rather than the
order in the config file
* allow configuring `--ram` and `--threads` in the MaD generator scripts
* use no `--ram` and `--threads=0` by default in the bulk generator
(single generator defaults are left unchanged)
* allow to pass `--dca` multiple times, taking DBs from experiments
listed last. This allows to run a subset of the sources in a "fixup"
experiment and use it to "patch" a previous run without rerunning
everything.
2025-06-11 16:42:00 +02:00
Paolo Tranquilli
051704e59d
Merge branch 'main' into redsun82/rust-mad
2025-06-11 16:39:10 +02:00
Geoffrey White
0c05fa48eb
Rust: Update RegexInjectionExtensions to use getCanonicalPath.
2025-06-11 15:32:23 +01:00
Owen Mansel-Chan
25adcc8f4a
Add Markdown format to guide
2025-06-11 15:03:42 +01:00
Anders Schack-Mulligen
f27e310ba3
Java: Adjust references.
2025-06-11 15:53:02 +02:00
Anders Schack-Mulligen
b3bb71f2e2
Java: Update the CFG for assert statements to make them proper guards.
2025-06-11 15:38:29 +02:00
Tom Hvitved
18392a07ce
Rust: Also apply adjustedAccessType in RelevantAccess
2025-06-11 15:00:35 +02:00
Tom Hvitved
31770edc26
Merge pull request #19725 from hvitved/rust/fix-bad-joins
...
Rust: Fix various bad joins
2025-06-11 14:51:20 +02:00
Asger F
423ffc78db
Merge pull request #19078 from asgerf/js/name-resolution
...
JS: QL-side type/name resolution for TypeScript and JSDoc
2025-06-11 14:17:11 +02:00
Michael Nebel
f038e2f809
Merge pull request #19589 from michaelnebel/csharp/dereference
...
C#: Improve `cs/dereference-*` queries and add to the Code Quality suite.
2025-06-11 13:40:58 +02:00
Tom Hvitved
133aca0773
Rust: Simple type inference for index expressions
2025-06-11 13:15:21 +02:00
Tom Hvitved
301bd44a4c
Rust: Add type inference tests for index expressions
2025-06-11 13:08:59 +02:00
Owen Mansel-Chan
c8a5418969
Remove trailing spaces and extra blank lines
2025-06-11 12:03:17 +01:00
Tom Hvitved
eeaccc5a9a
Update shared/typeinference/codeql/typeinference/internal/TypeInference.qll
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-06-11 12:48:06 +02:00
Tom Hvitved
9f8a3abcff
Rust: Add another type inference debug predicate
2025-06-11 12:44:17 +02:00
Tom Hvitved
b90e8679a9
Shared: Add elaborate QL doc to TypeInference.qll
2025-06-11 12:38:04 +02:00
Simon Friis Vindum
75caa182f5
Merge pull request #19724 from github/rust/type-inference-borrow
...
Rust: Implement type inference for ref expression as type equality
2025-06-11 12:36:43 +02:00
Paolo Tranquilli
58266e6ca8
Merge branch 'main' into redsun82/rust-extract-libs
2025-06-11 12:13:10 +02:00
Napalys Klicius
92084dd74f
JS: add js/template-syntax-in-string-literal to the Code Quality suite.
2025-06-11 11:48:05 +02:00
idrissrio
645ce5bbda
C++: update change note after review comments
2025-06-11 11:41:51 +02:00
idrissrio
2bae21cbcd
C++: address review comments
2025-06-11 11:41:50 +02:00
idrissrio
f759550e5a
C++: update stats file
2025-06-11 11:41:49 +02:00
idrissrio
e4a9a5aee8
C++: add upgrade and downgrade scripts
2025-06-11 11:41:48 +02:00
idrissrio
b0c0fb9699
C++: Add change node
2025-06-11 11:41:47 +02:00
idrissrio
cb17a35cbd
C++: Add test to check lambda parameters emptyness
2025-06-11 11:41:46 +02:00
idrissrio
6c9959d8bc
C++: Add predicates for lambda parameter list
2025-06-11 11:41:45 +02:00
idrissrio
3ecc4c9ad7
C++: Adapt existing code to use the new layout of the underlying lambda table
2025-06-11 11:41:44 +02:00
idrissrio
9ac9607cb7
C++: Add boolean for explicit lambda parameter list
2025-06-11 11:41:43 +02:00
Paolo Tranquilli
fbcd9eaf09
Merge pull request #19674 from github/redsun82/mad
...
Rust: regenerate MaD files using DCA
2025-06-11 11:10:08 +02:00
Napalys Klicius
6811cad687
Merge pull request #19711 from Napalys/js/quality/promote_duplicate_char_class
...
JS: Promote `js/regex/duplicate-in-character-class` to quality
2025-06-11 11:05:07 +02:00
Asger F
e848aa747b
JS: Clarifying comment on commonStep
2025-06-11 10:24:21 +02:00
Tom Hvitved
3c9cbf186e
Rust: Fix bad join in typeParametersEqualFromIndex
...
Before
```
Pipeline standard for TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::typeParametersEqualFromIndex/6#6471ea48@9c099swn was evaluated in 375 iterations totaling 154ms (delta sizes total: 0).
16307861 ~1% {5} r1 = JOIN `TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#3a89868c#prev_delta` WITH `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::satisfiesConcreteTypes/3#3b2e26a8#prev` ON FIRST 1 OUTPUT Rhs.2, Lhs.1, Lhs.0, Lhs.2, Rhs.1
37736 ~1% {7} r2 = JOIN r1 WITH `TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAccess,TypeInference::AwaitExprMatching::AccessConstraint::IsInstantiationOfInput>::getNthTypeParameterPath/3#c3ea2789_0312#join_rhs` ON FIRST 2 OUTPUT Lhs.2, Lhs.3, Lhs.4, Lhs.0, Rhs.2, Rhs.3, _
{6} | REWRITE WITH Tmp.6 := 0, TEST InOut.5 != Tmp.6 KEEPING 6
0 ~0% {7} | SCAN OUTPUT In.0, In.2, In.3, In.4, In.1, _, In.5
0 ~0% {7} | REWRITE WITH Tmp.5 := 1, Out.5 := (InOut.6 - Tmp.5)
0 ~0% {6} | JOIN WITH `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::typeParametersEqualFromIndex/6#6471ea48#prev` ON FIRST 6 OUTPUT Lhs.0, Lhs.1, Lhs.2, Lhs.3, Lhs.4, Lhs.6
0 ~0% {8} r3 = JOIN `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::typeParametersEqualFromIndex/6#6471ea48#prev_delta` WITH `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::satisfiesConcreteTypes/3#3b2e26a8#prev` ON FIRST 3 OUTPUT Lhs.0, Lhs.1, Lhs.2, Lhs.3, Lhs.4, _, Lhs.5, _
{6} | REWRITE WITH Tmp.5 := 1, Out.5 := (Tmp.5 + In.6), Tmp.7 := 0, TEST Out.5 != Tmp.7 KEEPING 6
0 ~0% {6} | SCAN OUTPUT In.2, In.3, In.5, In.0, In.1, In.4
0 ~0% {7} | JOIN WITH `TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAccess,TypeInference::AwaitExprMatching::AccessConstraint::IsInstantiationOfInput>::getNthTypeParameterPath/3#c3ea2789` ON FIRST 3 OUTPUT Lhs.3, Rhs.3, Lhs.5, Lhs.4, Lhs.0, Lhs.1, Lhs.2
0 ~0% {6} | JOIN WITH `TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#3a89868c#prev` ON FIRST 3 OUTPUT Lhs.0, Lhs.3, Lhs.4, Lhs.5, Lhs.2, Lhs.6
12808446 ~1% {5} r4 = JOIN `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::satisfiesConcreteTypes/3#3b2e26a8#prev_delta` WITH `TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#3a89868c#prev` ON FIRST 1 OUTPUT Lhs.2, Rhs.1, Lhs.0, Lhs.1, Rhs.2
22081 ~1% {7} r5 = JOIN r4 WITH `TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAccess,TypeInference::AwaitExprMatching::AccessConstraint::IsInstantiationOfInput>::getNthTypeParameterPath/3#c3ea2789_0312#join_rhs` ON FIRST 2 OUTPUT Lhs.2, Lhs.3, Lhs.0, Lhs.4, Rhs.2, Rhs.3, _
{6} | REWRITE WITH Tmp.6 := 0, TEST InOut.5 != Tmp.6 KEEPING 6
0 ~0% {6} | SCAN OUTPUT In.0, In.1, In.2, In.4, In.3, In.5
0 ~0% {8} | JOIN WITH `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::typeParametersEqualFromIndex/6#6471ea48#prev` ON FIRST 5 OUTPUT Lhs.0, Lhs.1, Lhs.2, Lhs.4, Lhs.3, Lhs.5, Rhs.5, _
{8} | REWRITE WITH Tmp.7 := 1, Out.7 := (InOut.5 - Tmp.7), TEST Out.7 = InOut.6
0 ~0% {6} | SCAN OUTPUT In.0, In.1, In.2, In.4, In.3, In.5
22081 ~1% {8} r6 = JOIN r4 WITH `TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAccess,TypeInference::AwaitExprMatching::AccessConstraint::IsInstantiationOfInput>::getNthTypeParameterPath/3#c3ea2789_0312#join_rhs` ON FIRST 2 OUTPUT Lhs.2, Lhs.3, Lhs.0, Lhs.1, Lhs.4, Rhs.2, Rhs.3, _
{7} | REWRITE WITH Tmp.7 := 0, TEST InOut.6 = Tmp.7 KEEPING 7
22081 ~0% {7} | SCAN OUTPUT In.2, In.5, _, In.3, In.0, In.1, In.4
22081 ~0% {7} | REWRITE WITH Out.2 := 0
22081 ~0% {5} | JOIN WITH `TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAccess,TypeInference::AwaitExprMatching::AccessConstraint::IsInstantiationOfInput>::getNthTypeParameterPath/3#c3ea2789` ON FIRST 4 OUTPUT Lhs.0, Lhs.1, Lhs.4, Lhs.5, Lhs.6
0 ~0% {6} | JOIN WITH `project#TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAccess,TypeInference::AwaitExprMatching::AccessConstraint::IsInstantiationOfInput>::getNthTypeParameterPath/3#c3ea2789#3` ON FIRST 2 OUTPUT Lhs.2, Lhs.3, Lhs.0, Lhs.1, Lhs.4, _
0 ~0% {6} | REWRITE WITH Out.5 := 0
37736 ~1% {8} r7 = JOIN r1 WITH `TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAccess,TypeInference::AwaitExprMatching::AccessConstraint::IsInstantiationOfInput>::getNthTypeParameterPath/3#c3ea2789_0312#join_rhs` ON FIRST 2 OUTPUT Lhs.2, Lhs.1, Lhs.3, Lhs.4, Lhs.0, Rhs.2, Rhs.3, _
{7} | REWRITE WITH Tmp.7 := 0, TEST InOut.6 = Tmp.7 KEEPING 7
37736 ~0% {7} | SCAN OUTPUT In.4, In.5, _, In.1, In.0, In.2, In.3
37736 ~0% {7} | REWRITE WITH Out.2 := 0
37736 ~1% {5} | JOIN WITH `TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAccess,TypeInference::AwaitExprMatching::AccessConstraint::IsInstantiationOfInput>::getNthTypeParameterPath/3#c3ea2789` ON FIRST 4 OUTPUT Lhs.0, Lhs.1, Lhs.4, Lhs.5, Lhs.6
0 ~0% {6} | JOIN WITH `project#TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAccess,TypeInference::AwaitExprMatching::AccessConstraint::IsInstantiationOfInput>::getNthTypeParameterPath/3#c3ea2789#3` ON FIRST 2 OUTPUT Lhs.2, Lhs.4, Lhs.0, Lhs.1, Lhs.3, _
0 ~0% {6} | REWRITE WITH Out.5 := 0
0 ~0% {6} r8 = r2 UNION r3 UNION r5 UNION r6 UNION r7
0 ~0% {6} | AND NOT `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::typeParametersEqualFromIndex/6#6471ea48#prev`(FIRST 6)
return r8
```
After
```
Pipeline standard for TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::typeParametersEqualFromIndex/6#6471ea48@81728ywe was evaluated in 375 iterations totaling 2ms (delta sizes total: 0).
0 ~0% {6} r1 = JOIN `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::typeParametersEqualFromIndexBase/5#56e8595e#reorder_0_4_1_2_3#prev_delta` WITH `TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#3a89868c#prev` ON FIRST 2 OUTPUT Lhs.0, Lhs.2, Lhs.3, Lhs.4, Rhs.2, _
0 ~0% {6} | REWRITE WITH Out.5 := 0
0 ~0% {6} r2 = JOIN `TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#3a89868c#prev_delta` WITH `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::typeParametersEqualFromIndexBase/5#56e8595e#reorder_0_4_1_2_3#prev` ON FIRST 2 OUTPUT Lhs.0, Rhs.2, Rhs.3, Rhs.4, Lhs.2, _
0 ~0% {6} | REWRITE WITH Out.5 := 0
66609 ~1% {3} r3 = SCAN `TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#3a89868c#prev_delta` OUTPUT In.0, In.2, In.1
0 ~0% {9} | JOIN WITH `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::typeParametersEqualFromIndex/6#6471ea48#reorder_0_4_1_2_3_5#prev` ON FIRST 2 OUTPUT Lhs.0, Lhs.2, Lhs.1, Rhs.2, Rhs.3, Rhs.4, _, Rhs.5, _
{7} | REWRITE WITH Tmp.6 := 1, Out.6 := (Tmp.6 + In.7), Tmp.8 := 0, TEST Out.6 != Tmp.8 KEEPING 7
0 ~0% {7} | SCAN OUTPUT In.4, In.5, In.6, In.1, In.0, In.2, In.3
0 ~0% {6} | JOIN WITH `TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAccess,TypeInference::AwaitExprMatching::AccessConstraint::IsInstantiationOfInput>::getNthTypeParameterPath/3#c3ea2789` ON FIRST 4 OUTPUT Lhs.4, Lhs.6, Lhs.0, Lhs.1, Lhs.5, Lhs.2
0 ~0% {8} r4 = SCAN `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::typeParametersEqualFromIndex/6#6471ea48#prev_delta` OUTPUT In.0, In.1, In.2, In.3, In.4, _, In.5, _
{6} | REWRITE WITH Tmp.5 := 1, Out.5 := (Tmp.5 + In.6), Tmp.7 := 0, TEST Out.5 != Tmp.7 KEEPING 6
0 ~0% {6} | SCAN OUTPUT In.2, In.3, In.5, In.0, In.1, In.4
0 ~0% {7} | JOIN WITH `TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAccess,TypeInference::AwaitExprMatching::AccessConstraint::IsInstantiationOfInput>::getNthTypeParameterPath/3#c3ea2789` ON FIRST 3 OUTPUT Lhs.3, Rhs.3, Lhs.5, Lhs.4, Lhs.0, Lhs.1, Lhs.2
0 ~0% {6} | JOIN WITH `TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#3a89868c#prev` ON FIRST 3 OUTPUT Lhs.0, Lhs.3, Lhs.4, Lhs.5, Lhs.2, Lhs.6
0 ~0% {6} r5 = r1 UNION r2 UNION r3 UNION r4
0 ~0% {6} | AND NOT `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::typeParametersEqualFromIndex/6#6471ea48#prev`(FIRST 6)
return r5
```
2025-06-11 10:23:57 +02:00
Asger F
2aa5fa17f7
JS: Add comment and examples in FlowImpl doc
2025-06-11 10:21:24 +02:00
Tom Hvitved
79e1af04df
Rust: Fix bad join in satisfiesConstraintTypeMention
...
Before
```
Pipeline standard for TypeInference::CallExprBaseMatching::AccessConstraint::satisfiesConstraintTypeMention/6#69a92324@e8671rw7 was evaluated in 378 iterations totaling 313ms (delta sizes total: 168323).
462477 ~1% {7} r1 = JOIN `TypeInference::CallExprBaseMatching::AccessConstraint::hasConstraintMention/5#8730ee97#prev_delta` WITH TypeInference::CallExprBaseMatching::AccessConstraint::MkRelevantAccess#8a6252ad#reorder_3_0_1_2#prev ON FIRST 1 OUTPUT Lhs.1, Lhs.2, Lhs.4, Lhs.3, Rhs.1, Rhs.2, Rhs.3
993561 ~2% {9} | JOIN WITH `TypeInference::M2::BaseTypes::conditionSatisfiesConstraintTypeAt/5#e92dcc7a` ON FIRST 3 OUTPUT Lhs.0, Lhs.1, Lhs.2, Rhs.3, Rhs.4, Lhs.3, Lhs.4, Lhs.5, Lhs.6
993561 ~38% {7} | JOIN WITH `TypeInference::M2::BaseTypes::conditionSatisfiesConstraintTypeAt/5#e92dcc7a` ON FIRST 5 OUTPUT Lhs.0, Lhs.4, Lhs.5, Lhs.6, Lhs.7, Lhs.8, Lhs.3
{7} | AND NOT `Type::TypeAbstraction.getATypeParameter/0#dispred#030257a0`(FIRST 2)
772102 ~427% {6} | SCAN OUTPUT In.3, In.4, In.5, In.2, In.6, In.1
56885 ~1% {4} r2 = SCAN TypeInference::CallExprBaseMatching::AccessConstraint::MkRelevantAccess#8a6252ad#prev_delta OUTPUT In.3, In.0, In.1, In.2
0 ~0% {7} r3 = JOIN r2 WITH `TypeInference::CallExprBaseMatching::AccessConstraint::hasConstraintMention/5#8730ee97#prev` ON FIRST 1 OUTPUT Rhs.1, Rhs.2, Rhs.4, Lhs.1, Lhs.2, Lhs.3, Rhs.3
0 ~0% {9} | JOIN WITH `TypeInference::M2::BaseTypes::conditionSatisfiesConstraintTypeAt/5#e92dcc7a` ON FIRST 3 OUTPUT Lhs.0, Lhs.1, Lhs.2, Rhs.3, Rhs.4, Lhs.3, Lhs.4, Lhs.5, Lhs.6
0 ~0% {7} | JOIN WITH `TypeInference::M2::BaseTypes::conditionSatisfiesConstraintTypeAt/5#e92dcc7a` ON FIRST 5 OUTPUT Lhs.0, Lhs.4, Lhs.5, Lhs.6, Lhs.7, Lhs.8, Lhs.3
{7} | AND NOT `Type::TypeAbstraction.getATypeParameter/0#dispred#030257a0`(FIRST 2)
0 ~0% {6} | SCAN OUTPUT In.2, In.3, In.4, In.5, In.6, In.1
462477 ~1% {8} r4 = JOIN `TypeInference::CallExprBaseMatching::AccessConstraint::hasConstraintMention/5#8730ee97#prev_delta` WITH TypeInference::CallExprBaseMatching::AccessConstraint::MkRelevantAccess#8a6252ad#reorder_3_0_1_2#prev ON FIRST 1 OUTPUT Lhs.1, Lhs.2, Lhs.4, Lhs.0, Lhs.3, Rhs.1, Rhs.2, Rhs.3
993561 ~39% {9} | JOIN WITH `TypeInference::M2::BaseTypes::conditionSatisfiesConstraintTypeAt/5#e92dcc7a` ON FIRST 3 OUTPUT Lhs.0, Rhs.4, Lhs.3, Lhs.1, Lhs.4, Lhs.5, Lhs.6, Lhs.7, Rhs.3
23413 ~1% {8} | JOIN WITH `Type::TypeAbstraction.getATypeParameter/0#dispred#030257a0` ON FIRST 2 OUTPUT Lhs.3, Lhs.1, Lhs.2, Lhs.4, Lhs.5, Lhs.6, Lhs.7, Lhs.8
2817 ~7% {7} | JOIN WITH `TypeMention::TypeMention.resolveTypeAt/1#dispred#a125c821#bff#reorder_0_2_1` ON FIRST 2 OUTPUT Lhs.2, Lhs.3, Lhs.4, Lhs.5, Lhs.6, Lhs.7, Rhs.2
11550 ~0% {9} | JOIN WITH `TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#3a89868c#prev` ON FIRST 1 OUTPUT Lhs.1, Lhs.2, Lhs.3, Lhs.4, Lhs.5, Rhs.2, _, Lhs.6, Rhs.1
{7} | REWRITE WITH Tmp.6 := "", Out.6 := InverseAppend(In.7,Tmp.6,In.8) KEEPING 7
2397 ~1% {11} | SCAN OUTPUT In.0, In.1, In.2, In.3, In.5, _, _, In.4, In.6, _, _
{7} | REWRITE WITH Out.5 := (In.7 ++ In.8), Tmp.6 := (In.7 ++ In.8), Tmp.9 := "[0-9]+", Tmp.10 := "", Out.6 := regexpReplaceAll(Tmp.6,Tmp.9,Tmp.10) KEEPING 7
2397 ~1% {9} | SCAN OUTPUT In.0, In.1, In.2, In.3, In.4, In.5, _, In.6, _
{7} | REWRITE WITH Out.6 := length(In.7), Tmp.8 := 10, TEST Out.6 <= Tmp.8 KEEPING 7
2397 ~1% {6} | SCAN OUTPUT In.1, In.2, In.3, In.0, In.5, In.4
66727 ~0% {6} r5 = JOIN `TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#3a89868c#prev_delta` WITH TypeInference::CallExprBaseMatching::AccessConstraint::MkRelevantAccess#8a6252ad#reorder_3_0_1_2#prev ON FIRST 1 OUTPUT Lhs.0, Lhs.1, Lhs.2, Rhs.1, Rhs.2, Rhs.3
19305359 ~0% {9} | JOIN WITH `TypeInference::CallExprBaseMatching::AccessConstraint::hasConstraintMention/5#8730ee97#prev` ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.2, Lhs.3, Lhs.4, Lhs.5, Rhs.2, Rhs.3, Rhs.4
3454881 ~1% {10} | JOIN WITH `Type::TypeAbstraction.getATypeParameter/0#dispred#030257a0` ON FIRST 1 OUTPUT Lhs.0, Lhs.6, Lhs.8, Rhs.1, Lhs.1, Lhs.2, Lhs.3, Lhs.4, Lhs.5, Lhs.7
753104 ~1% {9} | JOIN WITH `TypeInference::M2::BaseTypes::conditionSatisfiesConstraintTypeAt/5#e92dcc7a_01243#join_rhs` ON FIRST 4 OUTPUT Lhs.1, Lhs.3, Lhs.4, Lhs.5, Lhs.6, Lhs.7, Lhs.8, Lhs.9, Rhs.4
32040 ~18% {9} | JOIN WITH `TypeMention::TypeMention.resolveTypeAt/1#dispred#a125c821#bff#reorder_0_2_1` ON FIRST 2 OUTPUT Lhs.3, Lhs.4, Lhs.5, Lhs.6, Lhs.7, Lhs.8, _, Rhs.2, Lhs.2
{7} | REWRITE WITH Tmp.6 := "", Out.6 := InverseAppend(In.7,Tmp.6,In.8) KEEPING 7
13192 ~54% {11} | SCAN OUTPUT In.0, In.1, In.2, In.3, In.4, _, _, In.5, In.6, _, _
{7} | REWRITE WITH Out.5 := (In.7 ++ In.8), Tmp.6 := (In.7 ++ In.8), Tmp.9 := "[0-9]+", Tmp.10 := "", Out.6 := regexpReplaceAll(Tmp.6,Tmp.9,Tmp.10) KEEPING 7
13192 ~54% {9} | SCAN OUTPUT In.0, In.1, In.2, In.3, In.4, In.5, _, In.6, _
{7} | REWRITE WITH Out.6 := length(In.7), Tmp.8 := 10, TEST Out.6 <= Tmp.8 KEEPING 7
13192 ~55% {6} | SCAN OUTPUT In.1, In.2, In.3, In.4, In.5, In.0
0 ~0% {8} r6 = JOIN r2 WITH `TypeInference::CallExprBaseMatching::AccessConstraint::hasConstraintMention/5#8730ee97#prev` ON FIRST 1 OUTPUT Rhs.1, Rhs.2, Rhs.4, Lhs.1, Lhs.2, Lhs.3, Lhs.0, Rhs.3
0 ~0% {9} | JOIN WITH `TypeInference::M2::BaseTypes::conditionSatisfiesConstraintTypeAt/5#e92dcc7a` ON FIRST 3 OUTPUT Lhs.0, Rhs.4, Lhs.3, Lhs.4, Lhs.5, Lhs.6, Lhs.1, Lhs.7, Rhs.3
0 ~0% {8} | JOIN WITH `Type::TypeAbstraction.getATypeParameter/0#dispred#030257a0` ON FIRST 2 OUTPUT Lhs.6, Lhs.1, Lhs.2, Lhs.3, Lhs.4, Lhs.5, Lhs.7, Lhs.8
0 ~0% {7} | JOIN WITH `TypeMention::TypeMention.resolveTypeAt/1#dispred#a125c821#bff#reorder_0_2_1` ON FIRST 2 OUTPUT Lhs.5, Lhs.2, Lhs.3, Lhs.4, Lhs.6, Lhs.7, Rhs.2
0 ~0% {9} | JOIN WITH `TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#3a89868c#prev` ON FIRST 1 OUTPUT Lhs.1, Lhs.2, Lhs.3, Lhs.4, Lhs.5, Rhs.2, _, Lhs.6, Rhs.1
{7} | REWRITE WITH Tmp.6 := "", Out.6 := InverseAppend(In.7,Tmp.6,In.8) KEEPING 7
0 ~0% {11} | SCAN OUTPUT In.0, In.1, In.2, In.3, In.5, _, _, In.4, In.6, _, _
{7} | REWRITE WITH Out.5 := (In.7 ++ In.8), Tmp.6 := (In.7 ++ In.8), Tmp.9 := "[0-9]+", Tmp.10 := "", Out.6 := regexpReplaceAll(Tmp.6,Tmp.9,Tmp.10) KEEPING 7
0 ~0% {9} | SCAN OUTPUT In.0, In.1, In.2, In.3, In.4, In.5, _, In.6, _
{7} | REWRITE WITH Out.6 := length(In.7), Tmp.8 := 10, TEST Out.6 <= Tmp.8 KEEPING 7
0 ~0% {6} | SCAN OUTPUT In.0, In.1, In.2, In.3, In.5, In.4
787691 ~403% {6} r7 = r1 UNION r3 UNION r4 UNION r5 UNION r6
212766 ~54% {6} | AND NOT `TypeInference::CallExprBaseMatching::AccessConstraint::satisfiesConstraintTypeMention/6#69a92324#prev`(FIRST 6)
return r7
```
After
```
Pipeline standard for TypeInference::CallExprBaseMatching::AccessConstraint::satisfiesConstraintTypeMention/6#69a92324@9c099xwn was evaluated in 380 iterations totaling 11ms (delta sizes total: 153004).
768937 ~1% {7} r1 = SCAN `TypeInference::CallExprBaseMatching::AccessConstraint::satisfiesConstraintTypeMention0/9#c82a4f76#prev_delta` OUTPUT In.5, In.8, In.1, In.2, In.3, In.4, In.7
{7} | AND NOT `Type::TypeAbstraction.getATypeParameter/0#dispred#030257a0`(FIRST 2)
745524 ~423% {6} | SCAN OUTPUT In.2, In.3, In.4, In.5, In.6, In.1
26916 ~0% {9} r2 = JOIN `TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#3a89868c#prev_delta` WITH `TypeInference::CallExprBaseMatching::AccessConstraint::satisfiesConstraintTypeMention1/7#b265d17e#prev` ON FIRST 1 OUTPUT Lhs.2, Rhs.1, Rhs.2, Rhs.3, Rhs.4, Rhs.5, _, Rhs.6, Lhs.1
{7} | REWRITE WITH Tmp.6 := "", Out.6 := InverseAppend(In.7,Tmp.6,In.8) KEEPING 7
8530 ~1% {11} | SCAN OUTPUT In.0, In.1, In.2, In.3, In.4, _, _, In.5, In.6, _, _
{7} | REWRITE WITH Out.5 := (In.7 ++ In.8), Tmp.6 := (In.7 ++ In.8), Tmp.9 := "[0-9]+", Tmp.10 := "", Out.6 := regexpReplaceAll(Tmp.6,Tmp.9,Tmp.10) KEEPING 7
8530 ~1% {9} | SCAN OUTPUT In.0, In.1, In.2, In.3, In.4, In.5, _, In.6, _
{7} | REWRITE WITH Out.6 := length(In.7), Tmp.8 := 10, TEST Out.6 <= Tmp.8 KEEPING 7
8530 ~1% {6} | SCAN OUTPUT In.1, In.2, In.3, In.4, In.5, In.0
11763 ~1% {9} r3 = JOIN `TypeInference::CallExprBaseMatching::AccessConstraint::satisfiesConstraintTypeMention1/7#b265d17e#prev_delta` WITH `TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#3a89868c#prev` ON FIRST 1 OUTPUT Lhs.1, Lhs.2, Lhs.3, Lhs.4, Lhs.5, Rhs.2, _, Lhs.6, Rhs.1
{7} | REWRITE WITH Tmp.6 := "", Out.6 := InverseAppend(In.7,Tmp.6,In.8) KEEPING 7
2461 ~1% {11} | SCAN OUTPUT In.0, In.1, In.2, In.3, In.5, _, _, In.4, In.6, _, _
{7} | REWRITE WITH Out.5 := (In.7 ++ In.8), Tmp.6 := (In.7 ++ In.8), Tmp.9 := "[0-9]+", Tmp.10 := "", Out.6 := regexpReplaceAll(Tmp.6,Tmp.9,Tmp.10) KEEPING 7
2461 ~1% {9} | SCAN OUTPUT In.0, In.1, In.2, In.3, In.4, In.5, _, In.6, _
{7} | REWRITE WITH Out.6 := length(In.7), Tmp.8 := 10, TEST Out.6 <= Tmp.8 KEEPING 7
2461 ~1% {6} | SCAN OUTPUT In.0, In.1, In.2, In.3, In.5, In.4
756515 ~396% {6} r4 = r1 UNION r2 UNION r3
155599 ~6% {6} | AND NOT `TypeInference::CallExprBaseMatching::AccessConstraint::satisfiesConstraintTypeMention/6#69a92324#prev`(FIRST 6)
return r4
```
2025-06-11 10:04:15 +02:00
Geoffrey White
ecac0dbe69
Rust: Accept consistency check failures.
2025-06-11 08:52:52 +01:00
Tom Hvitved
f9915e66a7
Rust: Fix bad join in satisfiesConcreteTypesFromIndex
...
Before
```
Pipeline standard for TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::satisfiesConcreteTypesFromIndex/4#716280b9@061312x0 was evaluated in 367 iterations totaling 3484ms (delta sizes total: 563408).
66609 ~0% {3} r1 = SCAN `TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#3a89868c#prev_delta` OUTPUT In.1, In.2, In.0
867138261 ~1% {4} | JOIN WITH `TypeMention::TypeMention.resolveTypeAt/1#dispred#a125c821#bff#reorder_0_2_1_210#join_rhs` ON FIRST 2 OUTPUT Lhs.2, Rhs.2, Lhs.0, Lhs.1
29320 ~0% {5} | JOIN WITH `TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput::potentialInstantiationOf/3#1239e45f#reorder_0_2_1#prev` ON FIRST 2 OUTPUT Rhs.2, Lhs.3, Lhs.0, Lhs.2, Lhs.1
{5} | AND NOT `Type::TypeAbstraction.getATypeParameter/0#dispred#030257a0`(FIRST 2)
29320 ~1% {4} | SCAN OUTPUT In.4, In.3, In.2, In.0
29320 ~0% {5} r2 = JOIN r1 WITH `TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAccess,TypeInference::AwaitExprMatching::AccessConstraint::IsInstantiationOfInput>::getNthPath/2#8b978a80_021#join_rhs` ON FIRST 2 OUTPUT Lhs.2, Lhs.0, Lhs.3, Rhs.2, _
{4} | REWRITE WITH Tmp.4 := 0, TEST InOut.3 != Tmp.4 KEEPING 4
29320 ~0% {5} | SCAN OUTPUT In.0, In.2, In.1, _, In.3
29320 ~0% {5} | REWRITE WITH Tmp.3 := 1, Out.3 := (InOut.4 - Tmp.3)
29296 ~1% {4} | JOIN WITH `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::satisfiesConcreteTypesFromIndex/4#716280b9#prev` ON FIRST 4 OUTPUT Lhs.0, Lhs.1, Lhs.2, Lhs.4
29320 ~0% {6} r3 = JOIN r1 WITH `TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAccess,TypeInference::AwaitExprMatching::AccessConstraint::IsInstantiationOfInput>::getNthPath/2#8b978a80_021#join_rhs` ON FIRST 2 OUTPUT Lhs.2, Lhs.1, Lhs.0, Lhs.3, Rhs.2, _
{5} | REWRITE WITH Tmp.5 := 0, TEST InOut.4 = Tmp.5 KEEPING 5
0 ~0% {5} | SCAN OUTPUT In.2, _, In.1, In.0, In.3
0 ~0% {5} | REWRITE WITH Out.1 := 0
0 ~0% {4} | JOIN WITH `TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAccess,TypeInference::AwaitExprMatching::AccessConstraint::IsInstantiationOfInput>::getNthPath/2#8b978a80` ON FIRST 3 OUTPUT Lhs.3, Lhs.4, Lhs.0, _
0 ~0% {4} | REWRITE WITH Out.3 := 0
563353 ~1% {4} r4 = SCAN `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::satisfiesConcreteTypesFromIndex/4#716280b9#prev_delta` OUTPUT In.0, In.2, In.1, In.3
563353 ~1% {6} | JOIN WITH `TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput::potentialInstantiationOf/3#1239e45f#reorder_0_2_1#prev` ON FIRST 3 OUTPUT Lhs.0, Lhs.2, Lhs.1, _, Lhs.3, _
{4} | REWRITE WITH Tmp.3 := 1, Out.3 := (Tmp.3 + In.4), Tmp.5 := 0, TEST Out.3 != Tmp.5 KEEPING 4
563353 ~0% {4} | SCAN OUTPUT In.2, In.3, In.0, In.1
258647 ~1% {5} r5 = JOIN r4 WITH `TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAccess,TypeInference::AwaitExprMatching::AccessConstraint::IsInstantiationOfInput>::getNthPath/2#8b978a80` ON FIRST 2 OUTPUT Lhs.3, Lhs.2, Lhs.0, Lhs.1, Rhs.2
102998 ~1% {6} | JOIN WITH `Type::TypeAbstraction.getATypeParameter/0#dispred#030257a0` ON FIRST 1 OUTPUT Lhs.2, Rhs.1, Lhs.4, Lhs.1, Lhs.0, Lhs.3
52485 ~1% {6} | JOIN WITH `TypeMention::TypeMention.resolveTypeAt/1#dispred#a125c821#bff#reorder_0_2_1` ON FIRST 3 OUTPUT Lhs.0, Lhs.1, Lhs.2, Lhs.3, Lhs.4, Lhs.5
258647 ~0% {5} r6 = JOIN r4 WITH `TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAccess,TypeInference::AwaitExprMatching::AccessConstraint::IsInstantiationOfInput>::getNthPath/2#8b978a80` ON FIRST 2 OUTPUT Lhs.0, Rhs.2, Lhs.2, Lhs.3, Lhs.1
259340 ~1% {6} | JOIN WITH `TypeMention::TypeMention.resolveTypeAt/1#dispred#a125c821#bff#reorder_0_2_1_021#join_rhs` ON FIRST 2 OUTPUT Lhs.2, Lhs.1, Rhs.2, Lhs.3, Lhs.0, Lhs.4
16033 ~0% {6} | JOIN WITH `TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#3a89868c#prev` ON FIRST 3 OUTPUT Lhs.3, Lhs.2, Lhs.0, Lhs.4, Lhs.5, Lhs.1
{6} | AND NOT `Type::TypeAbstraction.getATypeParameter/0#dispred#030257a0`(FIRST 2)
15992 ~1% {6} | SCAN OUTPUT In.3, In.1, In.5, In.2, In.0, In.4
68477 ~1% {6} r7 = r5 UNION r6
68477 ~0% {4} | JOIN WITH `TypeMention::TypeMention.resolveTypeAt/1#dispred#a125c821#bff#reorder_0_2_1` ON FIRST 3 OUTPUT Lhs.3, Lhs.4, Lhs.0, Lhs.5
465635 ~0% {3} r8 = SCAN `TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput::potentialInstantiationOf/3#1239e45f#reorder_0_2_1#prev_delta` OUTPUT In.1, In.0, In.2
465635 ~0% {5} r9 = JOIN r8 WITH `_TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAc__#join_rhs` ON FIRST 1 OUTPUT Lhs.0, _, Rhs.2, Lhs.1, Lhs.2
465635 ~1% {5} | REWRITE WITH Out.1 := 0
465635 ~1% {5} r10 = JOIN r9 WITH `TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAccess,TypeInference::AwaitExprMatching::AccessConstraint::IsInstantiationOfInput>::getNthPath/2#8b978a80` ON FIRST 3 OUTPUT Lhs.4, Lhs.0, _, Lhs.2, Lhs.3
465635 ~1% {5} | REWRITE WITH Out.2 := 0
275069 ~0% {5} r11 = JOIN r8 WITH `_TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAc__#join_rhs#1` ON FIRST 1 OUTPUT Lhs.1, Lhs.2, Lhs.0, Rhs.1, Rhs.2
0 ~0% {7} | JOIN WITH `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::satisfiesConcreteTypesFromIndex/4#716280b9#prev` ON FIRST 3 OUTPUT Lhs.2, Lhs.3, Lhs.4, Lhs.0, Lhs.1, Rhs.3, _
0 ~0% {7} | REWRITE WITH Tmp.6 := 1, Out.6 := (InOut.1 - Tmp.6), TEST Out.6 = InOut.5
0 ~0% {5} r12 = SCAN r11 OUTPUT In.4, In.0, In.1, In.2, In.3
465635 ~1% {5} r13 = r10 UNION r12
94444 ~1% {6} | JOIN WITH `Type::TypeAbstraction.getATypeParameter/0#dispred#030257a0` ON FIRST 1 OUTPUT Lhs.1, Rhs.1, Lhs.3, Lhs.2, Lhs.4, Lhs.0
6 ~20% {6} | JOIN WITH `TypeMention::TypeMention.resolveTypeAt/1#dispred#a125c821#bff#reorder_0_2_1` ON FIRST 3 OUTPUT Lhs.0, Lhs.1, Lhs.2, Lhs.3, Lhs.4, Lhs.5
465635 ~0% {5} r14 = JOIN r9 WITH `TypeInference::M2::IsInstantiationOf<TypeInference::AwaitExprMatching::AccessConstraint::RelevantAccess,TypeInference::AwaitExprMatching::AccessConstraint::IsInstantiationOfInput>::getNthPath/2#8b978a80` ON FIRST 3 OUTPUT Lhs.0, Lhs.2, _, Lhs.3, Lhs.4
465635 ~1% {5} | REWRITE WITH Out.2 := 0
0 ~0% {5} r15 = SCAN r11 OUTPUT In.0, In.2, In.1, In.3, In.4
465635 ~1% {5} r16 = r14 UNION r15
465635 ~0% {6} | JOIN WITH `TypeMention::TypeMention.resolveTypeAt/1#dispred#a125c821#bff#reorder_0_2_1_021#join_rhs` ON FIRST 2 OUTPUT Lhs.3, Lhs.1, Rhs.2, Lhs.0, Lhs.2, Lhs.4
465635 ~0% {6} | JOIN WITH `TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#3a89868c#prev` ON FIRST 3 OUTPUT Lhs.5, Lhs.2, Lhs.3, Lhs.4, Lhs.1, Lhs.0
{6} | AND NOT `Type::TypeAbstraction.getATypeParameter/0#dispred#030257a0`(FIRST 2)
465629 ~1% {6} | SCAN OUTPUT In.2, In.1, In.4, In.3, In.5, In.0
465635 ~1% {6} r17 = r13 UNION r16
465635 ~1% {4} | JOIN WITH `TypeMention::TypeMention.resolveTypeAt/1#dispred#a125c821#bff#reorder_0_2_1` ON FIRST 3 OUTPUT Lhs.4, Lhs.5, Lhs.0, Lhs.3
563408 ~1% {4} r18 = r2 UNION r3 UNION r7 UNION r17
563408 ~1% {4} | AND NOT `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::satisfiesConcreteTypesFromIndex/4#716280b9#prev`(FIRST 4)
return r18
```
After
```
Pipeline standard for TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::satisfiesConcreteTypesFromIndex/4#716280b9@e8671bx7 was evaluated in 376 iterations totaling 245ms (delta sizes total: 563353).
563353 ~1% {6} r1 = SCAN `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::satisfiesConcreteTypesFromIndex/4#716280b9#prev_delta` OUTPUT In.0, In.1, In.2, _, In.3, _
563353 ~1% {4} | REWRITE WITH Tmp.3 := 1, Out.3 := (Tmp.3 + In.4), Tmp.5 := 0, TEST Out.3 != Tmp.5 KEEPING 4
259340 ~1% {5} r2 = JOIN r1 WITH `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::resolveTypeAt/5#77e2181d#prev` ON FIRST 4 OUTPUT Lhs.1, Rhs.5, Lhs.0, Lhs.2, Lhs.3
52485 ~0% {4} | JOIN WITH `Type::TypeAbstraction.getATypeParameter/0#dispred#030257a0` ON FIRST 2 OUTPUT Lhs.2, Lhs.0, Lhs.3, Lhs.4
259340 ~1% {6} r3 = JOIN r1 WITH `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::resolveTypeAt/5#77e2181d#prev` ON FIRST 4 OUTPUT Lhs.0, Rhs.4, Rhs.5, Lhs.1, Lhs.2, Lhs.3
16033 ~0% {5} | JOIN WITH `TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#3a89868c#prev` ON FIRST 3 OUTPUT Lhs.3, Lhs.2, Lhs.0, Lhs.4, Lhs.5
{5} | AND NOT `Type::TypeAbstraction.getATypeParameter/0#dispred#030257a0`(FIRST 2)
15992 ~0% {4} | SCAN OUTPUT In.2, In.0, In.3, In.4
741397 ~1% {7} r4 = SCAN `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::resolveTypeAt/5#77e2181d#prev_delta` OUTPUT In.0, In.1, In.2, In.3, In.4, In.5, _
465635 ~1% {6} | REWRITE WITH Tmp.6 := 0, TEST InOut.3 = Tmp.6 KEEPING 6
465635 ~1% {5} r5 = SCAN r4 OUTPUT In.1, In.5, In.0, In.2, _
465635 ~0% {5} | REWRITE WITH Out.4 := 0
741397 ~1% {7} r6 = SCAN `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::resolveTypeAt/5#77e2181d#prev_delta` OUTPUT In.0, In.1, In.2, In.3, In.4, In.5, _
275762 ~1% {6} | REWRITE WITH Tmp.6 := 0, TEST InOut.3 != Tmp.6 KEEPING 6
0 ~0% {7} r7 = JOIN r6 WITH `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::satisfiesConcreteTypesFromIndex/4#716280b9#prev` ON FIRST 3 OUTPUT Lhs.0, Lhs.1, Lhs.2, Lhs.3, Lhs.5, Rhs.3, _
{7} | REWRITE WITH Tmp.6 := 1, Out.6 := (InOut.3 - Tmp.6), TEST Out.6 = InOut.5
0 ~0% {5} | SCAN OUTPUT In.1, In.4, In.0, In.2, In.3
465635 ~0% {5} r8 = r5 UNION r7
6 ~0% {4} | JOIN WITH `Type::TypeAbstraction.getATypeParameter/0#dispred#030257a0` ON FIRST 2 OUTPUT Lhs.2, Lhs.0, Lhs.3, Lhs.4
29310 ~0% {5} r9 = JOIN `TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#3a89868c#prev_delta` WITH `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::resolveTypeAt/5#77e2181d#reorder_0_4_5_1_2_3#prev` ON FIRST 3 OUTPUT Lhs.0, Lhs.2, Rhs.3, Rhs.4, Rhs.5
29310 ~0% {6} r10 = SCAN r9 OUTPUT In.0, In.1, In.2, In.3, In.4, _
{5} | REWRITE WITH Tmp.5 := 0, TEST InOut.4 = Tmp.5 KEEPING 5
0 ~0% {5} | SCAN OUTPUT In.2, In.1, In.0, In.3, _
0 ~0% {5} | REWRITE WITH Out.4 := 0
29310 ~0% {6} r11 = SCAN r9 OUTPUT In.0, In.1, In.2, In.3, In.4, _
{5} | REWRITE WITH Tmp.5 := 0, TEST InOut.4 != Tmp.5 KEEPING 5
29310 ~1% {6} | SCAN OUTPUT In.0, In.2, In.3, _, In.1, In.4
29310 ~1% {6} | REWRITE WITH Tmp.3 := 1, Out.3 := (InOut.5 - Tmp.3)
29241 ~0% {5} | JOIN WITH `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::satisfiesConcreteTypesFromIndex/4#716280b9#prev` ON FIRST 4 OUTPUT Lhs.1, Lhs.4, Lhs.0, Lhs.2, Lhs.5
29241 ~0% {5} r12 = r10 UNION r11
{5} | AND NOT `Type::TypeAbstraction.getATypeParameter/0#dispred#030257a0`(FIRST 2)
29241 ~1% {4} | SCAN OUTPUT In.2, In.0, In.3, In.4
465635 ~0% {6} r13 = SCAN r4 OUTPUT In.0, In.4, In.5, In.1, In.2, _
465635 ~1% {6} | REWRITE WITH Out.5 := 0
0 ~0% {8} r14 = JOIN r6 WITH `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::satisfiesConcreteTypesFromIndex/4#716280b9#prev` ON FIRST 3 OUTPUT Lhs.0, Lhs.1, Lhs.2, Lhs.3, Lhs.4, Lhs.5, Rhs.3, _
{8} | REWRITE WITH Tmp.7 := 1, Out.7 := (InOut.3 - Tmp.7), TEST Out.7 = InOut.6
0 ~0% {6} | SCAN OUTPUT In.0, In.4, In.5, In.1, In.2, In.3
465635 ~1% {6} r15 = r13 UNION r14
465635 ~0% {5} | JOIN WITH `TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess.getTypeAt/1#dispred#3a89868c#prev` ON FIRST 3 OUTPUT Lhs.3, Lhs.2, Lhs.0, Lhs.4, Lhs.5
{5} | AND NOT `Type::TypeAbstraction.getATypeParameter/0#dispred#030257a0`(FIRST 2)
465629 ~1% {4} | SCAN OUTPUT In.2, In.0, In.3, In.4
563353 ~1% {4} r16 = r2 UNION r3 UNION r8 UNION r12 UNION r15
563353 ~1% {4} | AND NOT `TypeInference::M2::IsInstantiationOf<TypeInference::CallExprBaseMatching::AccessConstraint::RelevantAccess,TypeInference::CallExprBaseMatching::AccessConstraint::IsInstantiationOfInput>::satisfiesConcreteTypesFromIndex/4#716280b9#prev`(FIRST 4)
return r16
```
2025-06-11 09:15:17 +02:00
Tom Hvitved
bc60d033e5
Rust: Fix bad join in inferAccessType
...
Before
```
Pipeline standard for TypeInference::CallExprBaseMatching::inferAccessType/3#be4695a4@202c46xq was evaluated in 600 iterations totaling 2282ms (delta sizes total: 5827084).
120407742 ~1% {4} r1 = JOIN `TypeInference::CallExprBaseMatchingInput::Access.getTarget/0#dispred#29d66fd1#prev_delta` WITH `TypeInference::CallExprBaseMatchingInput::accessDeclarationPositionMatch/2#6c58c89d` CARTESIAN PRODUCT OUTPUT Lhs.1, Rhs.1, Rhs.0, Lhs.0
6495868 ~109% {4} | JOIN WITH `TypeInference::CallExprBaseMatchingInput::Declaration.getDeclaredType/2#dispred#325b693f` ON FIRST 2 OUTPUT Rhs.3, Lhs.2, Lhs.3, Rhs.2
{4} | AND NOT Type::TypeParameter#f85657da(FIRST 1)
3049994 ~10% {4} | SCAN OUTPUT In.2, In.1, In.3, In.0
7891 ~0% {5} r2 = SCAN `TypeInference::CallExprBaseMatching::explicitTypeMatch/5#98ce2c39#prev_delta` OUTPUT In.1, In.4, In.0, In.2, In.3
4445 ~3% {9} | JOIN WITH `_TypeInference::CallExprBaseMatchingInput::Declaration.getDeclaredType/2#dispred#325b693f_1023#join___#join_rhs` ON FIRST 2 OUTPUT Rhs.2, Lhs.2, Lhs.4, _, _, Rhs.3, Lhs.3, _, _
{5} | REWRITE WITH Out.3 := (In.5 ++ In.6), Tmp.4 := (In.5 ++ In.6), Tmp.7 := "[0-9]+", Tmp.8 := "", Out.4 := regexpReplaceAll(Tmp.4,Tmp.7,Tmp.8) KEEPING 5
4445 ~3% {7} | SCAN OUTPUT In.0, In.1, In.2, In.3, _, In.4, _
{5} | REWRITE WITH Out.4 := length(In.5), Tmp.6 := 10, TEST Out.4 <= Tmp.6 KEEPING 5
4445 ~5% {4} | SCAN OUTPUT In.1, In.0, In.3, In.2
3553075 ~1% {5} r3 = SCAN `TypeInference::CallExprBaseMatching::directTypeMatch/5#319f8680#prev_delta` OUTPUT In.1, In.4, In.0, In.2, In.3
6860451 ~16% {9} | JOIN WITH `_TypeInference::CallExprBaseMatchingInput::Declaration.getDeclaredType/2#dispred#325b693f_1023#join___#join_rhs` ON FIRST 2 OUTPUT Rhs.2, Lhs.2, Lhs.4, _, _, Rhs.3, Lhs.3, _, _
{5} | REWRITE WITH Out.3 := (In.5 ++ In.6), Tmp.4 := (In.5 ++ In.6), Tmp.7 := "[0-9]+", Tmp.8 := "", Out.4 := regexpReplaceAll(Tmp.4,Tmp.7,Tmp.8) KEEPING 5
6860451 ~19% {7} | SCAN OUTPUT In.0, In.1, In.2, In.3, _, In.4, _
{5} | REWRITE WITH Out.4 := length(In.5), Tmp.6 := 10, TEST Out.4 <= Tmp.6 KEEPING 5
6211129 ~20% {4} | SCAN OUTPUT In.1, In.0, In.3, In.2
115218 ~1% {5} r4 = SCAN `TypeInference::CallExprBaseMatching::typeConstraintBaseTypeMatch/5#ebeb4216#prev_delta` OUTPUT In.1, In.4, In.0, In.2, In.3
181668 ~2% {9} | JOIN WITH `_TypeInference::CallExprBaseMatchingInput::Declaration.getDeclaredType/2#dispred#325b693f_1023#join___#join_rhs` ON FIRST 2 OUTPUT Rhs.2, Lhs.2, Lhs.4, _, _, Rhs.3, Lhs.3, _, _
{5} | REWRITE WITH Out.3 := (In.5 ++ In.6), Tmp.4 := (In.5 ++ In.6), Tmp.7 := "[0-9]+", Tmp.8 := "", Out.4 := regexpReplaceAll(Tmp.4,Tmp.7,Tmp.8) KEEPING 5
181668 ~0% {7} | SCAN OUTPUT In.0, In.1, In.2, In.3, _, In.4, _
{5} | REWRITE WITH Out.4 := length(In.5), Tmp.6 := 10, TEST Out.4 <= Tmp.6 KEEPING 5
181668 ~0% {4} | SCAN OUTPUT In.1, In.0, In.3, In.2
9447236 ~16% {4} r5 = r1 UNION r2 UNION r3 UNION r4
5902300 ~4% {4} | AND NOT `TypeInference::CallExprBaseMatching::inferAccessType/3#be4695a4#prev`(FIRST 4)
return r5
```
Afer
```
Pipeline standard for TypeInference::CallExprBaseMatching::inferAccessType/3#be4695a4@061316x0 was evaluated in 600 iterations totaling 1727ms (delta sizes total: 5918371 ).
1323162 ~0% {2} r1 = SCAN `TypeInference::CallExprBaseMatchingInput::Access.getTarget/0#dispred#29d66fd1#prev_delta` OUTPUT In.1, In.0
5316637 ~152% {4} | JOIN WITH `_Type::TypeParameter#f85657da_TypeInference::CallExprBaseMatchingInput::Declaration.getDeclaredType/__#join_rhs#1` ON FIRST 1 OUTPUT Lhs.1, Rhs.1, Rhs.2, Rhs.3
7891 ~0% {5} r2 = SCAN `TypeInference::CallExprBaseMatching::explicitTypeMatch/5#98ce2c39#prev_delta` OUTPUT In.1, In.4, In.0, In.2, In.3
4445 ~3% {9} | JOIN WITH `_TypeInference::CallExprBaseMatchingInput::Declaration.getDeclaredType/2#dispred#325b693f_1023#join___#join_rhs` ON FIRST 2 OUTPUT Rhs.2, Lhs.2, Lhs.4, _, _, Rhs.3, Lhs.3, _, _
{5} | REWRITE WITH Out.3 := (In.5 ++ In.6), Tmp.4 := (In.5 ++ In.6), Tmp.7 := "[0-9]+", Tmp.8 := "", Out.4 := regexpReplaceAll(Tmp.4,Tmp.7,Tmp.8) KEEPING 5
4445 ~3% {7} | SCAN OUTPUT In.0, In.1, In.2, In.3, _, In.4, _
{5} | REWRITE WITH Out.4 := length(In.5), Tmp.6 := 10, TEST Out.4 <= Tmp.6 KEEPING 5
4445 ~5% {4} | SCAN OUTPUT In.1, In.0, In.3, In.2
3553075 ~1% {5} r3 = SCAN `TypeInference::CallExprBaseMatching::directTypeMatch/5#319f8680#prev_delta` OUTPUT In.1, In.4, In.0, In.2, In.3
6860451 ~16% {9} | JOIN WITH `_TypeInference::CallExprBaseMatchingInput::Declaration.getDeclaredType/2#dispred#325b693f_1023#join___#join_rhs` ON FIRST 2 OUTPUT Rhs.2, Lhs.2, Lhs.4, _, _, Rhs.3, Lhs.3, _, _
{5} | REWRITE WITH Out.3 := (In.5 ++ In.6), Tmp.4 := (In.5 ++ In.6), Tmp.7 := "[0-9]+", Tmp.8 := "", Out.4 := regexpReplaceAll(Tmp.4,Tmp.7,Tmp.8) KEEPING 5
6860451 ~19% {7} | SCAN OUTPUT In.0, In.1, In.2, In.3, _, In.4, _
{5} | REWRITE WITH Out.4 := length(In.5), Tmp.6 := 10, TEST Out.4 <= Tmp.6 KEEPING 5
6211129 ~20% {4} | SCAN OUTPUT In.1, In.0, In.3, In.2
115218 ~1% {5} r4 = SCAN `TypeInference::CallExprBaseMatching::typeConstraintBaseTypeMatch/5#ebeb4216#prev_delta` OUTPUT In.1, In.4, In.0, In.2, In.3
181668 ~2% {9} | JOIN WITH `_TypeInference::CallExprBaseMatchingInput::Declaration.getDeclaredType/2#dispred#325b693f_1023#join___#join_rhs` ON FIRST 2 OUTPUT Rhs.2, Lhs.2, Lhs.4, _, _, Rhs.3, Lhs.3, _, _
{5} | REWRITE WITH Out.3 := (In.5 ++ In.6), Tmp.4 := (In.5 ++ In.6), Tmp.7 := "[0-9]+", Tmp.8 := "", Out.4 := regexpReplaceAll(Tmp.4,Tmp.7,Tmp.8) KEEPING 5
181668 ~0% {7} | SCAN OUTPUT In.0, In.1, In.2, In.3, _, In.4, _
{5} | REWRITE WITH Out.4 := length(In.5), Tmp.6 := 10, TEST Out.4 <= Tmp.6 KEEPING 5
181668 ~0% {4} | SCAN OUTPUT In.1, In.0, In.3, In.2
11713879 ~62% {4} r5 = r1 UNION r2 UNION r3 UNION r4
6210333 ~10% {4} | AND NOT `TypeInference::CallExprBaseMatching::inferAccessType/3#be4695a4#prev`(FIRST 4)
return r5
```
2025-06-11 09:15:16 +02:00
Tom Hvitved
8c956647de
Rust: Fix bad join in fileImport
...
Before
```
Evaluated relational algebra for predicate PathResolution::fileImport/2#d9e57816@c790f609 with tuple counts:
241 ~0% {3} r1 = JOIN `_Locatable::Locatable.getFile/0#dispred#f7e24934_PathResolution::isSourceFile/1#803de032#shared` WITH `FileSystem::Folder::Append<PathResolution::shouldAppend>::append/2#beb8f79a_201#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Rhs.2, Lhs.1
291 ~0% {2} | JOIN WITH `PathResolution::pathAttrImport/3#88463ffa_021#join_rhs` ON FIRST 2 OUTPUT Rhs.2, Lhs.2
14978 ~8% {2} r2 = SCAN `PathResolution::modImport0/3#03cccf2a` OUTPUT In.0, In.1
14978 ~8% {2} | STREAM DEDUP
14392 ~9% {2} r3 = r2 AND NOT `PathResolution::modImportNested/3#991244df_0#antijoin_rhs`(FIRST 1)
14392 ~0% {3} | JOIN WITH `PathResolution::modImport0/3#03cccf2a` ON FIRST 2 OUTPUT Lhs.1, Rhs.2, Lhs.0
14355 ~0% {4} | JOIN WITH `PathResolution::fileModule/3#d6c6ceef#fbf_120#join_rhs` ON FIRST 2 OUTPUT Rhs.2, Lhs.0, Lhs.1, Lhs.2
14978 ~0% {2} r4 = JOIN r2 WITH `PathResolution::modImport0/3#03cccf2a` ON FIRST 2 OUTPUT Lhs.1, Lhs.0
329862 ~0% {5} | JOIN WITH `PathResolution::fileModule/3#d6c6ceef#fbf_102#join_rhs` ON FIRST 1 OUTPUT Lhs.1, Lhs.1, Rhs.2, Lhs.0, Rhs.1
577 ~3% {4} | JOIN WITH `PathResolution::modImportNestedLookup/3#6cc4b913#ffb` ON FIRST 3 OUTPUT Lhs.4, Lhs.3, Lhs.2, Lhs.0
14932 ~0% {4} r5 = r3 UNION r4
14932 ~0% {2} | JOIN WITH `PathResolution::fileModule/3#d6c6ceef#fbf` ON FIRST 3 OUTPUT Lhs.0, Lhs.3
14932 ~0% {2} | JOIN WITH `PathResolution::isSourceFile/1#803de032` ON FIRST 1 OUTPUT Lhs.1, Lhs.0
15223 ~0% {2} r6 = r1 UNION r5
return r6
```
Afer
```
Evaluated relational algebra for predicate PathResolution::fileImport/2#d9e57816@007bd81i with tuple counts:
241 ~0% {3} r1 = JOIN `_Locatable::Locatable.getFile/0#dispred#f7e24934_PathResolution::isSourceFile/1#803de032#shared` WITH `FileSystem::Folder::Append<PathResolution::shouldAppend>::append/2#beb8f79a_201#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Rhs.2, Lhs.1
291 ~0% {2} | JOIN WITH `PathResolution::pathAttrImport/3#88463ffa_021#join_rhs` ON FIRST 2 OUTPUT Rhs.2, Lhs.2
14978 ~8% {2} r2 = SCAN `PathResolution::modImport0/3#03cccf2a` OUTPUT In.0, In.1
14978 ~8% {2} | STREAM DEDUP
14392 ~9% {2} r3 = r2 AND NOT `PathResolution::modImportNested/3#991244df_0#antijoin_rhs`(FIRST 1)
14392 ~0% {3} | JOIN WITH `PathResolution::modImport0/3#03cccf2a` ON FIRST 2 OUTPUT Lhs.1, Rhs.2, Lhs.0
14978 ~9% {3} r4 = JOIN r2 WITH `PathResolution::modImport0/3#03cccf2a` ON FIRST 2 OUTPUT Lhs.0, Lhs.0, Lhs.1
577 ~0% {3} | JOIN WITH `PathResolution::modImportNestedLookup/3#6cc4b913#ffb` ON FIRST 2 OUTPUT Lhs.2, Rhs.2, Lhs.0
14969 ~1% {3} r5 = r3 UNION r4
14932 ~0% {2} | JOIN WITH `PathResolution::fileModule/3#d6c6ceef_120#join_rhs` ON FIRST 2 OUTPUT Rhs.2, Lhs.2
14932 ~0% {2} | JOIN WITH `PathResolution::isSourceFile/1#803de032` ON FIRST 1 OUTPUT Lhs.1, Lhs.0
15223 ~0% {2} r6 = r1 UNION r5
return r6
```
2025-06-11 09:15:14 +02:00
Tom Hvitved
63aac1babb
Rust: Fix bad join in getCanonicalPath
...
Before
```
Pipeline standard for PathResolution::ItemNode.getCanonicalPath/1#dispred#f52ac1c6@5132b1w8 was evaluated in 107 iterations totaling 1217ms (delta sizes total: 870557).
568160 ~1% {2} r1 = JOIN `PathResolution::ItemNode.getCanonicalPathPrefix/1#dispred#a1d9332d#prev_delta` WITH `_PathResolution::AssocItemNode.hasCanonicalPath/1#dispred#120fa1ad_project#PathResolution::ItemNode.__#join_rhs` ON FIRST 2 OUTPUT Lhs.0, Lhs.1
564597 ~1% {3} | JOIN WITH `__PathResolution::ItemNode.getCanonicalPathPrefix/1#dispred#a1d9332d#prev_PathResolution::ItemNode.g__#join_rhs` ON FIRST 2 OUTPUT Lhs.0, Lhs.1, Rhs.2
68670 ~1% {2} r2 = JOIN `PathResolution::ItemNode.getCanonicalPathPrefix/1#dispred#a1d9332d#prev_delta` WITH `_PathResolution::VariantItemNode.hasCanonicalPath/1#dispred#12012145_project#PathResolution::ItemNod__#join_rhs` ON FIRST 2 OUTPUT Lhs.0, Lhs.1
68670 ~0% {3} | JOIN WITH `__PathResolution::ItemNode.getCanonicalPathPrefix/1#dispred#a1d9332d#prev_PathResolution::ItemNode.g__#join_rhs#5` ON FIRST 2 OUTPUT Lhs.0, Lhs.1, Rhs.2
49047 ~1% {2} r3 = JOIN `PathResolution::ItemNode.getCanonicalPathPrefix/1#dispred#a1d9332d#prev_delta` WITH `_PathResolution::StructItemNode.hasCanonicalPath/1#dispred#f482e99c_project#PathResolution::ItemNode__#join_rhs` ON FIRST 2 OUTPUT Lhs.0, Lhs.1
49047 ~2% {3} | JOIN WITH `__PathResolution::ItemNode.getCanonicalPathPrefix/1#dispred#a1d9332d#prev_PathResolution::ItemNode.g__#join_rhs#2` ON FIRST 2 OUTPUT Lhs.0, Lhs.1, Rhs.2
229 ~0% {2} r4 = JOIN `PathResolution::ItemNode.getCanonicalPathPrefix/1#dispred#a1d9332d#prev_delta` WITH `_PathResolution::UnionItemNode.hasCanonicalPath/1#dispred#f67c4b73_project#PathResolution::ItemNode.__#join_rhs` ON FIRST 2 OUTPUT Lhs.0, Lhs.1
229 ~0% {3} | JOIN WITH `__PathResolution::ItemNode.getCanonicalPathPrefix/1#dispred#a1d9332d#prev_PathResolution::ItemNode.g__#join_rhs#4` ON FIRST 2 OUTPUT Lhs.0, Lhs.1, Rhs.2
12207 ~0% {2} r5 = JOIN `PathResolution::ItemNode.getCanonicalPathPrefix/1#dispred#a1d9332d#prev_delta` WITH `_PathResolution::EnumItemNode.hasCanonicalPath/1#dispred#03ce35b1_project#PathResolution::ItemNode.g__#join_rhs` ON FIRST 2 OUTPUT Lhs.0, Lhs.1
12207 ~0% {3} | JOIN WITH `__PathResolution::EnumItemNode.getName/0#dispred#f21ce0ed_PathResolution::ItemNode.getCanonicalPathP__#join_rhs` ON FIRST 2 OUTPUT Lhs.0, Lhs.1, Rhs.2
26698 ~2% {2} r6 = JOIN `PathResolution::ItemNode.getCanonicalPathPrefix/1#dispred#a1d9332d#prev_delta` WITH `_PathResolution::ModuleItemNode.hasCanonicalPath/1#dispred#2fee2540_project#PathResolution::ItemNode__#join_rhs` ON FIRST 2 OUTPUT Lhs.0, Lhs.1
26698 ~0% {3} | JOIN WITH `__PathResolution::ItemNode.getCanonicalPathPrefix/1#dispred#a1d9332d#prev_PathResolution::ItemNode.g__#join_rhs#1` ON FIRST 2 OUTPUT Lhs.0, Lhs.1, Rhs.2
6315 ~1% {2} r7 = JOIN `PathResolution::ItemNode.getCanonicalPathPrefix/1#dispred#a1d9332d#prev_delta` WITH `_PathResolution::TraitItemNode.hasCanonicalPath/1#dispred#824f98e3_project#PathResolution::ItemNode.__#join_rhs` ON FIRST 2 OUTPUT Lhs.0, Lhs.1
6315 ~1% {3} | JOIN WITH `__PathResolution::ItemNode.getCanonicalPathPrefix/1#dispred#a1d9332d#prev_PathResolution::ItemNode.g__#join_rhs#3` ON FIRST 2 OUTPUT Lhs.0, Lhs.1, Rhs.2
112374 ~0% {3} r8 = JOIN `PathResolution::ImplItemNode.getCanonicalPathTraitPart/1#dispred#009a7fd0#prev_delta` WITH `_PathResolution::ImplItemNode.getTraitPath/0#dispred#3b7d1cb6_PathResolution::ImplItemNode.hasCanoni__#join_rhs` ON FIRST 2 OUTPUT Lhs.0, Lhs.1, _
112374 ~3% {3} | REWRITE WITH Out.2 := 3
872046 ~1% {2} r9 = SCAN `PathResolution::ItemNode.getCanonicalPath/1#dispred#f52ac1c6#prev_delta` OUTPUT In.1, In.0
777662505 ~2% {3} | JOIN WITH `PathResolution::ImplItemNode.hasCanonicalPath/1#dispred#4e7c51c6_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.0
150127 ~1% {3} | JOIN WITH `PathResolution::ImplItemNode.resolveSelfTy/0#dispred#cf157d04` ON FIRST 2 OUTPUT Lhs.0, Lhs.2, _
150127 ~0% {3} | REWRITE WITH Out.2 := 1
262501 ~1% {3} r10 = r8 UNION r9
230996 ~1% {5} r11 = JOIN r10 WITH `PathResolution::ImplItemNode.getTraitPath/0#dispred#3b7d1cb6` ON FIRST 1 OUTPUT Lhs.0, Lhs.1, Lhs.2, _, _
230996 ~0% {5} | REWRITE WITH Out.3 := 4, Out.4 := 0
{3} r12 = r10 AND NOT `PathResolution::ImplItemNode.getTraitPath/0#dispred#3b7d1cb6_0#antijoin_rhs`(FIRST 1)
31487 ~0% {5} | SCAN OUTPUT In.0, In.1, In.2, _, _
31487 ~1% {5} | REWRITE WITH Out.3 := 2, Out.4 := 0
262483 ~0% {5} r13 = r11 UNION r12
262483 ~0% {5} | JOIN WITH PRIMITIVE range#bbb ON Lhs.4,Lhs.3,Lhs.2
262483 ~0% {3} | SCAN OUTPUT In.3, In.0, In.1
142807 ~1% {3} | JOIN WITH `__PathResolution::ImplItemNode.getCanonicalPathTraitPart/1#dispred#009a7fd0#prev_PathResolution::Imp__#join_rhs` ON FIRST 3 OUTPUT Lhs.1, Lhs.2, Rhs.3
870570 ~1% {3} r14 = r1 UNION r2 UNION r3 UNION r4 UNION r5 UNION r6 UNION r7 UNION r13
870566 ~1% {3} | AND NOT `PathResolution::ItemNode.getCanonicalPath/1#dispred#f52ac1c6#prev`(FIRST 3)
return r14
```
After
```
Pipeline standard for PathResolution::ItemNode.getCanonicalPath/1#dispred#f52ac1c6@90aba2wd was evaluated in 100 iterations totaling 28ms (delta sizes total: 870531).
568160 ~0% {2} r1 = JOIN `PathResolution::ItemNode.getCanonicalPathPrefix/1#dispred#a1d9332d#prev_delta` WITH `_PathResolution::AssocItemNode.hasCanonicalPath/1#dispred#120fa1ad_project#PathResolution::ItemNode.__#join_rhs` ON FIRST 2 OUTPUT Lhs.0, Lhs.1
564597 ~1% {3} | JOIN WITH `__PathResolution::ItemNode.getCanonicalPathPrefix/1#dispred#a1d9332d#prev_PathResolution::ItemNode.g__#join_rhs` ON FIRST 2 OUTPUT Lhs.0, Lhs.1, Rhs.2
68670 ~0% {2} r2 = JOIN `PathResolution::ItemNode.getCanonicalPathPrefix/1#dispred#a1d9332d#prev_delta` WITH `_PathResolution::VariantItemNode.hasCanonicalPath/1#dispred#12012145_project#PathResolution::ItemNod__#join_rhs` ON FIRST 2 OUTPUT Lhs.0, Lhs.1
68670 ~1% {3} | JOIN WITH `__PathResolution::ItemNode.getCanonicalPathPrefix/1#dispred#a1d9332d#prev_PathResolution::ItemNode.g__#join_rhs#5` ON FIRST 2 OUTPUT Lhs.0, Lhs.1, Rhs.2
49047 ~0% {2} r3 = JOIN `PathResolution::ItemNode.getCanonicalPathPrefix/1#dispred#a1d9332d#prev_delta` WITH `_PathResolution::StructItemNode.hasCanonicalPath/1#dispred#f482e99c_project#PathResolution::ItemNode__#join_rhs` ON FIRST 2 OUTPUT Lhs.0, Lhs.1
49047 ~1% {3} | JOIN WITH `__PathResolution::ItemNode.getCanonicalPathPrefix/1#dispred#a1d9332d#prev_PathResolution::ItemNode.g__#join_rhs#2` ON FIRST 2 OUTPUT Lhs.0, Lhs.1, Rhs.2
229 ~0% {2} r4 = JOIN `PathResolution::ItemNode.getCanonicalPathPrefix/1#dispred#a1d9332d#prev_delta` WITH `_PathResolution::UnionItemNode.hasCanonicalPath/1#dispred#f67c4b73_project#PathResolution::ItemNode.__#join_rhs` ON FIRST 2 OUTPUT Lhs.0, Lhs.1
229 ~0% {3} | JOIN WITH `__PathResolution::ItemNode.getCanonicalPathPrefix/1#dispred#a1d9332d#prev_PathResolution::ItemNode.g__#join_rhs#4` ON FIRST 2 OUTPUT Lhs.0, Lhs.1, Rhs.2
12207 ~1% {2} r5 = JOIN `PathResolution::ItemNode.getCanonicalPathPrefix/1#dispred#a1d9332d#prev_delta` WITH `_PathResolution::EnumItemNode.hasCanonicalPath/1#dispred#03ce35b1_project#PathResolution::ItemNode.g__#join_rhs` ON FIRST 2 OUTPUT Lhs.0, Lhs.1
12207 ~0% {3} | JOIN WITH `__PathResolution::EnumItemNode.getName/0#dispred#f21ce0ed_PathResolution::ItemNode.getCanonicalPathP__#join_rhs` ON FIRST 2 OUTPUT Lhs.0, Lhs.1, Rhs.2
26698 ~0% {2} r6 = JOIN `PathResolution::ItemNode.getCanonicalPathPrefix/1#dispred#a1d9332d#prev_delta` WITH `_PathResolution::ModuleItemNode.hasCanonicalPath/1#dispred#2fee2540_project#PathResolution::ItemNode__#join_rhs` ON FIRST 2 OUTPUT Lhs.0, Lhs.1
26698 ~4% {3} | JOIN WITH `__PathResolution::ItemNode.getCanonicalPathPrefix/1#dispred#a1d9332d#prev_PathResolution::ItemNode.g__#join_rhs#1` ON FIRST 2 OUTPUT Lhs.0, Lhs.1, Rhs.2
6315 ~1% {2} r7 = JOIN `PathResolution::ItemNode.getCanonicalPathPrefix/1#dispred#a1d9332d#prev_delta` WITH `_PathResolution::TraitItemNode.hasCanonicalPath/1#dispred#824f98e3_project#PathResolution::ItemNode.__#join_rhs` ON FIRST 2 OUTPUT Lhs.0, Lhs.1
6315 ~2% {3} | JOIN WITH `__PathResolution::ItemNode.getCanonicalPathPrefix/1#dispred#a1d9332d#prev_PathResolution::ItemNode.g__#join_rhs#3` ON FIRST 2 OUTPUT Lhs.0, Lhs.1, Rhs.2
150127 ~0% {3} r8 = JOIN `PathResolution::ImplItemNode.getSelfCanonicalPath/1#dispred#8ed81fbe#prev_delta` WITH `PathResolution::ImplItemNode.hasCanonicalPath/1#dispred#4e7c51c6` ON FIRST 2 OUTPUT Lhs.0, Lhs.1, _
150127 ~0% {3} | REWRITE WITH Out.2 := 1
112374 ~1% {3} r9 = JOIN `PathResolution::ImplItemNode.getCanonicalPathTraitPart/1#dispred#009a7fd0#prev_delta` WITH `_PathResolution::ImplItemNode.getTraitPath/0#dispred#3b7d1cb6_PathResolution::ImplItemNode.hasCanoni__#join_rhs` ON FIRST 2 OUTPUT Lhs.0, Lhs.1, _
112374 ~0% {3} | REWRITE WITH Out.2 := 3
262501 ~0% {3} r10 = r8 UNION r9
230996 ~1% {5} r11 = JOIN r10 WITH `PathResolution::ImplItemNode.getTraitPath/0#dispred#3b7d1cb6` ON FIRST 1 OUTPUT Lhs.0, Lhs.1, Lhs.2, _, _
230996 ~1% {5} | REWRITE WITH Out.3 := 4, Out.4 := 0
{3} r12 = r10 AND NOT `PathResolution::ImplItemNode.getTraitPath/0#dispred#3b7d1cb6_0#antijoin_rhs`(FIRST 1)
31487 ~0% {5} | SCAN OUTPUT In.0, In.1, In.2, _, _
31487 ~0% {5} | REWRITE WITH Out.3 := 2, Out.4 := 0
262483 ~1% {5} r13 = r11 UNION r12
262483 ~1% {5} | JOIN WITH PRIMITIVE range#bbb ON Lhs.4,Lhs.3,Lhs.2
262483 ~0% {3} | SCAN OUTPUT In.3, In.0, In.1
142772 ~0% {3} | JOIN WITH `__PathResolution::ImplItemNode.getCanonicalPathTraitPart/1#dispred#009a7fd0#prev_PathResolution::Imp__#join_rhs` ON FIRST 3 OUTPUT Lhs.1, Lhs.2, Rhs.3
870535 ~1% {3} r14 = r1 UNION r2 UNION r3 UNION r4 UNION r5 UNION r6 UNION r7 UNION r13
870531 ~1% {3} | AND NOT `PathResolution::ItemNode.getCanonicalPath/1#dispred#f52ac1c6#prev`(FIRST 3)
return r14
```
2025-06-11 09:15:13 +02:00
Simon Friis Vindum
01701de4a7
Rust: Implement type inference for ref expression as type equality
2025-06-11 09:09:22 +02:00
Tom Hvitved
3fed7f5397
Merge pull request #19714 from hvitved/rust/fix-bad-join
...
Rust: Fix bad join
2025-06-11 09:08:52 +02:00
Simon Friis Vindum
8f5d9d7702
Rust: Add type inference tests for borrowing
2025-06-11 08:40:15 +02:00
Ana Scolari
510bbac0e4
Create 2025-06-10-reduce-precision-for-building-cmdline-with-string-concatenation.md
2025-06-10 16:17:32 -07:00
Ana Scolari
857b51be58
Update ExecUnescaped.ql - causing FPs with hard coded strings
...
This query is generating False positives with hard coded strings declared within the function - issue reported by customer. We had a discussion on code_scanning channel on 6/5/25 and the team agreed upon reducing its precision to Medium.
2025-06-10 16:06:22 -07:00
Aditya Sharad
d659d40d58
Merge pull request #19701 from adityasharad/actions/bash-parsing-ranking-performance
...
Actions: Improve Bash parsing performance on command and string interpolations
2025-06-11 00:59:19 +05:30
REDMOND\brodes
7d479940e5
Crypto: Nop out signature operations for now until complete. Minor model update. Remove setting RSA bits as an RSA algorithm. Fix bug in hash algorithm. Add missing PKey encryption to cipher ops. Consolidate ctx initializers. Add unit tests, and alter unit test directory structure to allow for application to other APIs. Update expected files for unit tests (not all updated yet, a work in progress).
2025-06-10 13:37:17 -04:00
Tom Hvitved
64ab7c78c8
Merge pull request #19717 from hvitved/rust/use-get-arg-param
...
Rust: Use `get(An){Arg,Param}` helper predicates
2025-06-10 18:48:51 +02:00
Geoffrey White
e64d083fc1
Rust: Lets also output the total number of nodes to make understanding this easier.
2025-06-10 17:37:42 +01:00
Geoffrey White
50bf246add
Rust: Adjust the taint reach metric for better stability.
2025-06-10 17:08:15 +01:00
Asger F
72cc439125
JS: Normalize a few more extensions
2025-06-10 17:36:56 +02:00
Jeroen Ketema
1bd6446f7e
Merge pull request #19715 from jketema/neon-ir-test
...
C++: Add basic Aarch64 Neon IR test
2025-06-10 16:57:46 +02:00
Geoffrey White
652d32d4ff
Merge pull request #19626 from geoffw0/futures
...
Rust: Model futures-io, rustls, futures-rustls
2025-06-10 15:23:43 +01:00
Michael Nebel
dc81f5a6b2
Merge pull request #19713 from michaelnebel/csharp/freezequalityinsecurityandquality
...
C#: Freeze quality queries in the security-and-quality suite.
2025-06-10 16:19:45 +02:00
Asger F
18f9133715
JS: Rename and clarify comment for trackFunctionType
2025-06-10 16:14:46 +02:00
Asger F
a6488cbad9
Update javascript/ql/lib/semmle/javascript/internal/NameResolution.qll
...
Co-authored-by: Erik Krogh Kristensen <erik-krogh@github.com >
2025-06-10 16:06:42 +02:00
Jeroen Ketema
a4be27659b
C++: Minor test case reformatting
2025-06-10 15:55:18 +02:00
Michael Nebel
99dc923f1f
C#: Add cs/gethashcode-is-not-defined to the Code Quality suite.
2025-06-10 15:45:41 +02:00
Tom Hvitved
e41b4f4022
Rust: Use get(An){Arg,Param} helper predicates
2025-06-10 15:45:34 +02:00
Jeroen Ketema
7d1b5ce584
C++: Add basic Aarch64 Neon test
2025-06-10 15:34:06 +02:00
Paolo Tranquilli
8f0f2006a8
Merge pull request #19708 from github/redsun82/rust-getArg-getParam
...
Rust: add `Callable::getParam` and `CallExprBase::getArg` shortcuts
2025-06-10 15:31:05 +02:00
Tom Hvitved
209cfb78a3
Rust: Fix bad join
...
```
[2025-06-10 15:21:37] (83s) Tuple counts for TypeMention::PathTypeReprMention.aliasResolveTypeAt/1#dispred#ae16f47b#fbf#cpe#13/2@i5#5a5451wi after 57.7s:
205999 ~1028% {3} r1 = JOIN `TypeMention::TypeMention.resolveTypeAt/1#dispred#a125c821#bff#reorder_1_0_2#prev_delta` WITH `_TypeAlias::Generated::TypeAlias.getTypeRepr/0#dispred#5fd7e521_TypeMention::PathTypeReprMention#a35__#join_rhs#1` ON FIRST 2 OUTPUT Rhs.2, Lhs.2 'result', Rhs.3 'this'
{3} | AND NOT `project#TypeMention::pathGetTypeParameter/2#fd301eed#2`(FIRST 2)
204000 ~982% {2} | SCAN OUTPUT In.2 'this', In.1 'result'
5499 ~448% {7} r2 = JOIN `TypeMention::TypeMention.resolveTypeAt/1#dispred#a125c821#bff#reorder_0_2_1#prev_delta` WITH `_GenericArgList::GenericArgList.getTypeArg/1#dispred#1c780027_PathSegment::Generated::PathSegment.ge__#join_rhs#1` ON FIRST 1 OUTPUT Rhs.1, Rhs.2 'this', Rhs.3, Lhs.1 'result', _, Lhs.2, _
{5} | REWRITE WITH Tmp.4 := "", Tmp.6 := "", Out.4 := InverseAppend(Tmp.4,In.5,Tmp.6) KEEPING 5
2500 ~398% {5} | SCAN OUTPUT In.0, In.2, In.4, In.1 'this', In.3 'result'
0 ~0% {2} | JOIN WITH `TypeMention::TypeMention.resolveTypeAt/1#dispred#a125c821#bff#reorder_0_2_1#prev` ON FIRST 3 OUTPUT Lhs.3 'this', Lhs.4 'result'
9000 ~489% {7} r3 = JOIN `TypeMention::TypeMention.resolveTypeAt/1#dispred#a125c821#bff#reorder_0_2_1#prev_delta` WITH `_PathSegment::Generated::PathSegment.getGenericArgList/0#dispred#e072653b__Path::Generated::Path.get__#join_rhs#1` ON FIRST 1 OUTPUT Rhs.1, Rhs.2 'this', Rhs.3, Lhs.1, _, Lhs.2, _
{5} | REWRITE WITH Tmp.4 := "", Tmp.6 := "", Out.4 := InverseAppend(In.5,Tmp.4,Tmp.6) KEEPING 5
5000 ~411% {5} | SCAN OUTPUT In.4, In.0, In.1 'this', In.2, In.3
10461919500 ~610% {6} | JOIN WITH `TypeMention::TypeMention.resolveTypeAt/1#dispred#a125c821#bff#reorder_1_0_2#prev` ON FIRST 1 OUTPUT Lhs.3, Rhs.1, Lhs.1, Lhs.2 'this', Lhs.4, Rhs.2 'result'
500 ~0% {5} | JOIN WITH `GenericArgList::GenericArgList.getTypeArg/1#dispred#1c780027_021#join_rhs` ON FIRST 2 OUTPUT Lhs.2, Rhs.2, Lhs.4, Lhs.3 'this', Lhs.5 'result'
0 ~0% {2} | JOIN WITH `TypeMention::pathGetTypeParameter/2#fd301eed` ON FIRST 3 OUTPUT Lhs.3 'this', Lhs.4 'result'
204000 ~982% {2} r4 = r1 UNION r2 UNION r3
203964 ~982% {2} | AND NOT `TypeMention::PathTypeReprMention.aliasResolveTypeAt/1#dispred#ae16f47b#fbf#cpe#13#prev`(FIRST 2)
return r4
```
2025-06-10 15:25:05 +02:00
Napalys Klicius
51b83dbce5
Merge pull request #19579 from Napalys/js/dom_property_access
...
JS: Improve `useless-expression` query to avoid duplicate alerts on compound expressions
2025-06-10 15:17:13 +02:00
Geoffrey White
fd2154d389
Merge branch 'main' into futures
2025-06-10 14:16:06 +01:00
Taus
e3d9d92f25
JavaScript: Fix duplicate comment
2025-06-10 12:59:03 +00:00
Taus
f08c2fa387
JavaScript: Move tsconfig files into extractor.tsconfig package
...
Also make the indentation in `CompilerOptions.java` more consistent.
2025-06-10 12:58:48 +00:00
Tom Hvitved
791369dd0e
Merge pull request #19584 from hvitved/rust/type-inference-await
...
Rust: Type inference for `.await` expressions
2025-06-10 14:56:28 +02:00
Paolo Tranquilli
4ac4e44b50
Rust: accept test changes
2025-06-10 14:45:57 +02:00
Geoffrey White
918fa3684f
Merge branch 'main' into futures
2025-06-10 13:24:09 +01:00
Kasper Svendsen
23e789b421
QL: Improve toString for overlay annotations
2025-06-10 14:18:05 +02:00
Paolo Tranquilli
0d036992e0
Merge branch 'main' into redsun82/mad
2025-06-10 13:39:10 +02:00
Tom Hvitved
3d395dde47
Address review comments
2025-06-10 13:38:31 +02:00
Napalys Klicius
d968dd0fa1
Removed <strong> usage and updated r?e[m|x] example
2025-06-10 13:34:24 +02:00
Michael Nebel
a15b9a8eae
C#: Freeze quality queries in the security-and-quality suite.
2025-06-10 13:34:03 +02:00
Napalys Klicius
65b1275a19
Update javascript/ql/src/RegExp/DuplicateCharacterInCharacterClass.qhelp
...
Co-authored-by: Asger F <asgerf@github.com >
2025-06-10 13:26:08 +02:00
Napalys Klicius
e46581163a
Update javascript/ql/lib/Expressions/ExprHasNoEffect.qll
...
Co-Authored-By: Asger F <316427+asgerf@users.noreply.github.com >
2025-06-10 13:23:31 +02:00
Napalys Klicius
496d8d44eb
Update javascript/ql/lib/Expressions/ExprHasNoEffect.qll
...
Co-authored-by: Asger F <asgerf@github.com >
2025-06-10 13:19:48 +02:00
Napalys Klicius
e6f071ce46
Update javascript/ql/lib/Expressions/ExprHasNoEffect.qll
...
Co-authored-by: Asger F <asgerf@github.com >
2025-06-10 13:18:48 +02:00
Paolo Tranquilli
3562c48068
Merge branch 'main' into redsun82/rust-getArg-getParam
2025-06-10 13:15:37 +02:00
Paolo Tranquilli
3af10d2c6c
Merge pull request #19710 from github/redsun82/rust-fix-crate-graph-test
...
Rust: fix crate graph test
2025-06-10 13:15:22 +02:00
Napalys Klicius
a0db250dc3
Update javascript/ql/test/query-tests/RegExp/DuplicateCharacterInCharacterClass/tst.js
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-06-10 12:50:07 +02:00
Tom Hvitved
c6efc05de1
Rust: Reimplement type inference for impl Traits and await expressions
2025-06-10 12:39:20 +02:00
Tom Hvitved
f2832712bc
Rust: Add more type inference tests
2025-06-10 12:38:40 +02:00
Tom Hvitved
821f2fd681
Rust: Type inference for .await expressions
2025-06-10 12:38:39 +02:00
Tom Hvitved
e6109cfcf1
Rust: Add type inference tests for impl Trait
2025-06-10 12:38:38 +02:00
Tom Hvitved
c32e05cc8a
Rust: Add async type inference tests
2025-06-10 12:38:37 +02:00
Tom Hvitved
79a8942b0f
Merge pull request #19614 from hvitved/rust/path-resolution-extern-crate
...
Rust: Path resolution for `extern crate`s
2025-06-10 12:37:46 +02:00
Idriss Riouak
f8b192ce3d
Merge pull request #19688 from jketema/mfp8
...
C++: Support the `__mfp8` floating point type
2025-06-10 12:37:05 +02:00
Paolo Tranquilli
2a160e0687
CI: rename codegen workflow to be more generic
...
Also remove the python setup stage as it shouldn't be necessary any more
seen that bazel uses a specific bundled one.
2025-06-10 12:33:30 +02:00
Paolo Tranquilli
52760b1e28
CI: use black instead of autopep8
2025-06-10 12:30:33 +02:00
Paolo Tranquilli
14d48e9d58
Add black pre-commit hook
...
This switched `codegen` from the `autopep8` formatting to the `black`
one, and applies it to `bulk_mad_generator.py` as well. We can enroll
more python scripts to it in the future.
2025-06-10 12:25:39 +02:00
Paolo Tranquilli
ca99add7d6
MaD generator: address review
2025-06-10 12:14:39 +02:00
Paolo Tranquilli
ecc35e5a07
MaD generator: run formatter
2025-06-10 12:11:00 +02:00
Napalys Klicius
d68f5ebddb
Added quality tag to js/regex/duplicate-in-character-class
2025-06-10 12:10:33 +02:00
Napalys Klicius
417ca1aceb
Enchanced js/regex/duplicate-in-character-class's qhelp
2025-06-10 12:10:25 +02:00
Paolo Tranquilli
6f25d7e35e
Rust: fix crate graph test
2025-06-10 11:57:20 +02:00
Tamás Vajk
7a632e8a47
Merge pull request #19650 from tamasvajk/quality/string-concat-loop
...
Add `cs/string-concatenation-in-loop` to the quality suite
2025-06-10 11:49:24 +02:00
Napalys Klicius
42a880bf58
Improved test coverage for js/regex/duplicate-in-character-class
2025-06-10 11:07:22 +02:00
Napalys Klicius
c97da2eda5
Exclude expressions that are part of a conditional expression
2025-06-10 10:56:11 +02:00
Paolo Tranquilli
bcfc009228
Merge branch 'main' into redsun82/mad
2025-06-10 10:53:52 +02:00
Paolo Tranquilli
e6056f9dfc
Update rust/ql/test/query-tests/security/CWE-770/main.rs
...
Co-authored-by: Geoffrey White <40627776+geoffw0@users.noreply.github.com >
2025-06-10 10:52:18 +02:00
Paolo Tranquilli
a405a12e93
Rust: add Callable::getParam and CallExprBase::getArg shortcuts
2025-06-10 09:51:26 +02:00
Paolo Tranquilli
902a421c23
Rust: fix docs with getArgList and getParamList
2025-06-10 09:47:15 +02:00
Paolo Tranquilli
02c11b10af
Revert "Rust: rerun codegen"
...
This reverts commit f647b33166 .
2025-06-10 09:43:35 +02:00
Paolo Tranquilli
b6aa6921b3
Revert "Rust: accept test changes"
...
This reverts commit 9c2fea914e .
2025-06-10 09:43:02 +02:00
Paolo Tranquilli
3fe6ba692a
Revert "Rust: add Callable::getParam and CallExprBase::getArg shortcuts"
...
This reverts commit c70decbe86 .
2025-06-10 09:42:28 +02:00
Napalys Klicius
b7f7092ab3
Added test cases for better test coverage
2025-06-10 09:37:40 +02:00
Paolo Tranquilli
48721dcde0
Merge branch 'main' into redsun82/rust-doc
2025-06-10 09:31:18 +02:00
Paolo Tranquilli
f647b33166
Rust: rerun codegen
2025-06-10 09:31:12 +02:00
Paolo Tranquilli
9c2fea914e
Rust: accept test changes
2025-06-10 09:30:43 +02:00
Lindsay Simpkins
f96a250ffc
fix qhelp files
2025-06-09 18:37:16 -04:00
Jeroen Ketema
d70282c322
C++: Update stats file
2025-06-09 23:42:52 +02:00
Jeroen Ketema
bff4213c62
C++: Add upgrade and downgrade scripts
2025-06-09 23:42:11 +02:00
Jeroen Ketema
f910906965
C++: Update expected test results
2025-06-09 23:42:09 +02:00
Jeroen Ketema
691e462501
C++: Support the __mfp8 floating point type
2025-06-09 23:42:07 +02:00
REDMOND\brodes
729467ccd6
Crypto: Separate out CTX parameter initialization, and add additional initializer subclasses.
2025-06-09 16:49:54 -04:00
Chuan-kai Lin
c1c0a705b9
Merge pull request #19704 from github/post-release-prep/codeql-cli-2.22.0
...
Post-release preparation for codeql-cli-2.22.0
2025-06-09 12:54:57 -07:00
REDMOND\brodes
4f2045bbdd
Crypto: CtxFlow now uses an interface for additional steps. Add CTX step to handle paramgen. Remove redundant test. Overhaul of EVP update/initializer/final mechanics. Misc. updates for new API and refactoring EVPKeyGenOperation. Clean up of keygen_operaitons.ql.
2025-06-09 15:07:00 -04:00
github-actions[bot]
21463a9653
Post-release preparation for codeql-cli-2.22.0
2025-06-09 18:50:20 +00:00
Geoffrey White
a9d5d8b2b3
Rust: Accept the new alert message in tests.
2025-06-09 19:14:14 +01:00
Geoffrey White
74ce4e8105
Update rust/ql/src/queries/security/CWE-825/AccessAfterLifetime.ql
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-06-09 19:10:39 +01:00
Geoffrey White
e7945e16cb
Rust: Accept the query in suite listings.
2025-06-09 19:06:34 +01:00
Geoffrey White
9b0ee8fb9f
Rust: Add security-severity tag and reduce precision to medium for now.
...
precis
2025-06-09 17:58:44 +01:00
Geoffrey White
b3330b5636
Rust: Allow parameter accesses as sources.
2025-06-09 17:58:42 +01:00
Geoffrey White
d3d0a533b5
Rust: Add test showing yet another spurious result.
2025-06-09 17:58:41 +01:00
Geoffrey White
858eec390d
Rust: Exclude results where the source is a reference.
2025-06-09 17:58:40 +01:00
Geoffrey White
7bae451af3
Rust: Exclude results in macro invocations.
2025-06-09 17:58:38 +01:00
Geoffrey White
26f85585fd
Rust: Add qhelp, examples, and examples as tests.
2025-06-09 17:58:37 +01:00
Aditya Sharad
e48a7da827
Actions: Add change note for Bash parsing fixes
2025-06-09 09:56:41 -07:00
Aditya Sharad
2ecbecbd4b
Actions: Add stress test for complex command and string interpolation
...
Anonymised version of a customer report that led to
performance bottlenecks in Bash parsing.
No results are expected from both query and library tests.
2025-06-09 09:29:15 -07:00
Aditya Sharad
848064e95a
Actions: Order quoted strings by their ID, not text
...
In the Bash parser, we compute a mostly-unique ID for each
quoted string within a shell script block.
Quoted strings are then ranked and referred to individually.
Avoid a performance bottleneck by ranking quoted strings by their
ID, not by their source text.
I think this was the original intent of the code.
Ranking by their original text ends up evaluating multiple
possible orderings, which is slow on workflows that contain
multiple complex quoted strings, such as JSON payloads.
2025-06-09 09:15:45 -07:00
Aditya Sharad
fbe11cfca6
Actions: Refactor logic for identifying quoted strings
...
Add some doc comments and meaningful variable names.
2025-06-09 09:15:45 -07:00
Geoffrey White
fe20fb403d
Rust: More robust fix for closures.
2025-06-09 16:41:31 +01:00
Aditya Sharad
321513c89b
Actions: Order command substitutions by their ID, not text
...
In the Bash parser, we compute a mostly-unique ID for each
command substitution within a shell script block.
Commands are then ranked and referred to individually.
Avoid a performance bottleneck by ranking commands by their
ID, not by their source text.
I think this was the original intent of the code.
Ranking by their original text ends up evaluating multiple
possible orderings, which is slow on workflows that contain
multiple complex command substitutions.
2025-06-09 08:39:58 -07:00
Aditya Sharad
39e710e805
Actions: Refactor logic for identifying command substitution
...
Extract helper predicates for `$(...)` command interpolation
and backtick-quoted commands.
Add some doc comments and meaningful variable names.
2025-06-09 08:37:40 -07:00
Chad Bentz
371a50e6c4
Merge branch 'main' into cwe-134
2025-06-09 11:22:40 -04:00
Asger F
42f762a140
JS: Update test output now that 'satisfies' is a SourceNode
2025-06-09 16:22:30 +02:00
Mathew Payne
9d23677024
Merge branch 'main' into js-clientrests-axios
2025-06-09 14:18:54 +01:00
Geoffrey White
21b4baeb42
Rust: Have the alert message cite the variable, so it's easier to understand whether the alert is correct.
2025-06-09 10:28:25 +01:00
Geoffrey White
79f8584efb
Rust: Fix spurious results involving closures.
2025-06-09 10:25:48 +01:00
Geoffrey White
bf4ea02dd2
Rust: Implement the query.
2025-06-09 10:25:40 +01:00
Chad Bentz
53a6133e6f
Add change-notes for csharp/java/swift
2025-06-06 12:23:59 -04:00
Paolo Tranquilli
d6d13b9164
MaD generator: use decompress terminology instead of extract
2025-06-06 17:36:05 +02:00
Chad Bentz
77e49f1f90
Merge branch 'main' into cwe-134
2025-06-06 11:16:10 -04:00
Paolo Tranquilli
f3e4f94e81
Rust: add documentation
2025-06-06 16:19:32 +02:00
Paolo Tranquilli
c70decbe86
Rust: add Callable::getParam and CallExprBase::getArg shortcuts
2025-06-06 16:18:16 +02:00
Paolo Tranquilli
779d06f47c
Merge branch 'main' into redsun82/rust-doc
2025-06-06 14:25:37 +02:00
REDMOND\brodes
98aae6a7bf
Crypto: Add EVP key gen and signature operation (work in progress). Add initial signature tests (no expected files yet). Add new openssl .h stubs. Clean up of OperationBase and associated uses. Update test case stubs to be closer to the actual stubs. Fix unncessary instanceof check in signatures.
2025-06-05 16:43:58 -04:00
Mrigank Pawagi
114b46824a
update test
2025-06-05 15:56:35 +00:00
Geoffrey White
526620ca41
Rust: Add some helper predicates for finding enclosing blocks.
2025-06-05 16:30:28 +01:00
Geoffrey White
96dc34e36d
Rust: Even more test cases (inspired by real world results).
2025-06-05 16:29:58 +01:00
Taus
b8772bc736
JavaScript: Add change note
2025-06-05 15:06:40 +00:00
Taus
281ccf7c11
JavaScript: Extract tsconfig.json also in basic mode
...
This is needed for the logic that skips files inside the directory
specified in the `tsconfig.json` `outDir` compiler option.
2025-06-05 15:01:05 +00:00
Taus
619256e037
JavaScript: Fix existing tests and test runner
...
Fixes two things:
- The basic test should no longer extract `tst.js` (as `tst.ts` is
present)
- The `AutoBuild` mock did not populate `extractedFiles` correctly,
which broke the logic that looks for TypeScript files with the same
basename.
2025-06-05 14:59:40 +00:00
Taus
8829f7820a
JavaScript: Don't extract files with TypeScript progenitors
2025-06-05 14:57:00 +00:00
Taus
14f50880e9
JavaScript: Don't extract files in tsconfig.json outDir
2025-06-05 14:56:59 +00:00
Paolo Tranquilli
e1eb1f6345
Rust: address review
...
Also fix some minor things in `bulk_generate_mad.py`.
2025-06-05 16:03:40 +02:00
Mrigank Pawagi
93c485fb13
apply proper formatting in comment
2025-06-05 13:26:38 +00:00
Owen Mansel-Chan
ecd0291b6a
Add change note for deprecation
2025-06-05 11:00:00 +01:00
Owen Mansel-Chan
75d9b298b2
Test helper predicates for TypeSpec
2025-06-05 10:52:01 +01:00
Owen Mansel-Chan
c4a8ac4980
Add helper predicates for TypeSpec
2025-06-05 10:51:39 +01:00
Mrigank Pawagi
434973f8e6
Update GlobalUseBeforeInit.ql
2025-06-05 09:48:37 +00:00
Geoffrey White
66c1e2cace
Rust: Add test cases for implicit dereferences and more pointer/enum mixes (inspired by early real world results).
2025-06-05 10:37:30 +01:00
Geoffrey White
e2fb1d3892
Rust: Add test cases involving lifetimes + lifetime annotations.
2025-06-05 10:37:29 +01:00
Geoffrey White
ae19ecc674
Rust: Add test cases involving lifetimes + closures and async blocks.
2025-06-05 10:37:28 +01:00
Geoffrey White
43cb98ad15
Rust: Fix some warnings in the existing test.
2025-06-05 10:37:27 +01:00
Geoffrey White
8e8374b9bc
Rust: Label source annotations in the test properly.
2025-06-05 10:37:26 +01:00
Geoffrey White
da4fbfb449
Rust: Placeholder new query.
2025-06-05 10:37:25 +01:00
Owen Mansel-Chan
8b9cc99158
Test helper predicates for FieldDecl
2025-06-05 10:35:34 +01:00
Owen Mansel-Chan
d9bc165c72
Add helper predicates for FieldDecl
2025-06-05 10:35:25 +01:00
Owen Mansel-Chan
82e8d3af8d
Improve two class names
2025-06-05 10:34:53 +01:00
Paolo Tranquilli
6162cf5dbb
Rust: accept test changes
2025-06-05 10:52:59 +02:00
GeekMasher
302097ec85
docs(js): Add AxiosInstanceRequest docs
2025-06-05 09:52:25 +01:00
Paolo Tranquilli
ec77eb3ec8
Rust: regenerate MaD models
2025-06-05 10:08:47 +02:00
Paolo Tranquilli
f4bbef9769
Rust: switch to DCA strategy for MaD bulk generation
2025-06-05 10:08:30 +02:00
Paolo Tranquilli
530b990dd5
MaD generator: some final minor tweaks
2025-06-05 10:08:01 +02:00
Paolo Tranquilli
ee7eb86a1d
MaD: make bulk generator cleanup downloaded DBs
2025-06-05 09:31:24 +02:00
Paolo Tranquilli
4f47ee2e72
MaD: make bulk generator DCA strategy download DBs in parallel
2025-06-05 09:30:02 +02:00
Paolo Tranquilli
fbd50583fe
MaD generator: move bulk generation config files one directory up
2025-06-05 08:50:48 +02:00
Paolo Tranquilli
31954fa794
MaD generator: make bulk generator executable
2025-06-05 08:49:15 +02:00
Paolo Tranquilli
d5c16d6092
MaD generator: reformat
2025-06-05 08:48:01 +02:00
Paolo Tranquilli
900a3b0992
MaD generator: only pick up last database on comparison DCAs
2025-06-05 08:47:45 +02:00
Paolo Tranquilli
31d1604337
Bulk model generator: switch from json to yml configuration files
2025-06-05 08:37:43 +02:00
Asger F
691fdb106e
JS: Nicer jump-to-def for function declarations
2025-06-04 22:17:42 +02:00
Asger F
57fad7e6c9
JS: Add SatisfiesExpr
2025-06-04 22:17:40 +02:00
Asger F
79101fd121
JS: Add test with type casts
2025-06-04 22:17:39 +02:00
REDMOND\brodes
f952f901e4
Crypto: Update CtxFlow to flow from any "source ctx" which is any ctx that is an argument or a return.
2025-06-04 15:44:45 -04:00
REDMOND\brodes
33e239d667
Crypto: Collapse initializer qll's into operations.
2025-06-04 15:44:06 -04:00
REDMOND\brodes
952bc266b1
Crypto: Added Signature algorithm instance and consumer
2025-06-04 15:42:55 -04:00
REDMOND\brodes
39583abade
Crypto: Update KnownAlgoirthmConstants to make a distinction between calls that return a known algorithm and calls that operate on a known algorithm. update KnownAlgorithmConstants to correct algType for signature algorithms. Update all instances and prior uses of the old mechanic to KnownAlgorithmConstants.
2025-06-04 15:41:24 -04:00
Tom Hvitved
721ffb11cf
Rust: Path resolution for extern crates
2025-06-04 21:14:22 +02:00
Tom Hvitved
4fb4bfd6cf
Rust: Add path resolution test for extern crate
2025-06-04 21:13:29 +02:00
Asger F
853ba49212
Update javascript/ql/lib/semmle/javascript/internal/TypeResolution.qll
...
Co-authored-by: Napalys Klicius <napalys@github.com >
2025-06-04 10:17:25 +02:00
Paolo Tranquilli
5f474a7185
Rust: Use QL computed canonical paths in MaD Field tokens
...
Also regenerate all auto-generated models with latest extractor.
2025-06-04 09:43:45 +02:00
Mathew Payne
8f2f7a934d
Merge branch 'main' into js-clientrests-axios
2025-06-03 16:38:14 +01:00
GeekMasher
79a72fc15b
fix(js): Update tests
2025-06-03 16:37:36 +01:00
GeekMasher
3b64bd48ab
style(js): Update Formatting
2025-06-03 15:59:32 +01:00
GeekMasher
2eb5f10850
feat(js): Add Axios instance support change notes
2025-06-03 15:58:49 +01:00
GeekMasher
6a1cfb6aef
feat(js): Add Axios Instance support and add tests
2025-06-03 15:55:23 +01:00
Owen Mansel-Chan
b2f310cda7
Add change note
2025-06-03 15:36:03 +01:00
Owen Mansel-Chan
4711feb344
Add test for DefinedType.getBaseType
2025-06-03 14:50:05 +01:00
Owen Mansel-Chan
40000840c1
Fix definition of DefinedType.getBaseType
2025-06-03 14:50:03 +01:00
Owen Mansel-Chan
681f9af710
Fix MethodTypes test
2025-06-03 14:50:00 +01:00
Napalys Klicius
aac56e089a
JavaScript: Fix false positive on Flow type annotations in ExprHasNoEffect
2025-06-03 15:26:22 +02:00
Napalys Klicius
46b5ded862
JS: Enhance void context propagation
2025-06-03 15:20:55 +02:00
Napalys Klicius
bf48b59874
JS: Removed exclusion of FunctionExpr from compound statements.
2025-06-03 15:12:26 +02:00
Michael Nebel
d2b8bd5760
C#: Remove explicit (trivial) type requirements on Debug.Assert methods.
2025-06-03 15:10:34 +02:00
Michael Nebel
bc4ff598c3
C#: Add change-note.
2025-06-03 13:25:02 +02:00
Michael Nebel
77fa45050e
C#: Add cs/dereferenced-value-is-always-null and cs/dereferenced-value-may-be-null to the Code Quality suites.
2025-06-03 13:25:01 +02:00
Michael Nebel
7a63c7d2a5
C#: Update test expected output.
2025-06-03 13:24:59 +02:00
Michael Nebel
36eab47ab4
C#: Do not assume that extension methods on nullable types do unsafe dereference.
2025-06-03 13:24:57 +02:00
Michael Nebel
0355ea8733
C#: Add some synthetic library extensions methods and tests for cs/dereferenced-value-is-always-null.
2025-06-03 13:24:56 +02:00
Michael Nebel
76c12a5c69
C#: Convert tests for cs/dereferenced-value-may-be-null to use inline expectations.
2025-06-03 13:24:54 +02:00
Michael Nebel
46c02e7fa8
C#: Convert tests for cs/dereferenced-value-is-always-null to use inline expectations.
2025-06-03 13:24:52 +02:00
Tamas Vajk
92541ffdd8
Add cs/string-concatenation-in-loop to the quality suite
2025-06-03 10:51:38 +02:00
Paolo Tranquilli
1110fea2a2
Rust: add upgrade/downgrade scripts for new tables
2025-06-03 10:41:32 +02:00
Paolo Tranquilli
04c9feed36
Rust: accept test changes
2025-06-03 10:41:31 +02:00
Paolo Tranquilli
667eed9b9b
Rust: store in the DB if a library function or const had a body
...
When skipping bodies in library code, we lose the information whether a
body was originally present. This can be important, for example when
determining whether a trait method has a default implementation.
With this change that information can be recovered via the
`hasImplementation` predicate.
2025-06-03 10:41:31 +02:00
Paolo Tranquilli
77c40da51a
Rust/Codegen: fix detached predicates
2025-06-03 10:41:31 +02:00
Paolo Tranquilli
78bb41e47b
Merge branch 'main' into redsun82/rust-extract-libs
2025-06-03 10:34:11 +02:00
Joe Farebrother
38072c7863
Fix typo
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-06-02 16:42:27 +01:00
Paolo Tranquilli
dfc03cbad1
Merge branch 'main' into redsun82/rust-extract-libs
2025-06-02 15:33:53 +02:00
Joe Farebrother
57a0c7a1ab
Performance fix - Use basic blocks instead of full cfg reachability.
2025-06-02 14:33:52 +01:00
Napalys Klicius
1f256ab71e
Added change note
2025-06-02 14:59:43 +02:00
Napalys Klicius
bca1bc7153
JS: Enhance isDomProperty to check for getAPropertyRead on DOM nodes
2025-06-02 14:56:45 +02:00
Napalys Klicius
9b2ef8be10
JS: add test for DOM access where expression appears to have no side effects
2025-06-02 14:54:46 +02:00
Joe Farebrother
73f2770acb
Fix handling for some wrappers + add test case
2025-05-30 11:24:06 +01:00
Geoffrey White
49dabdb8a5
Rust: Accept consistency test failures.
2025-05-29 17:51:44 +01:00
Geoffrey White
10f894b9a1
Rust: Model more methods.
2025-05-29 16:45:25 +01:00
Geoffrey White
4d51a15cc4
Rust: Add model variants for when the qualifier is expressed as an arg (reference). We shouldn't need these.
2025-05-29 16:45:23 +01:00
Geoffrey White
84c72f68af
Rust: Add models for read methods.
2025-05-29 16:45:22 +01:00
Geoffrey White
13f6de9924
Rust: Add source / basic basic models.
2025-05-29 16:45:21 +01:00
Geoffrey White
b78d51e079
Rust: Fix a bug in InlineFlow.ql that was excluding some sinks.
2025-05-29 16:45:19 +01:00
Geoffrey White
a5e1702d4b
Rust: Add tests for sources involving regular rustls as well.
2025-05-29 16:45:18 +01:00
Geoffrey White
544af7f7ca
Rust: Add tests for sources involving futures-rustls and futures-io.
2025-05-29 16:45:17 +01:00
Paolo Tranquilli
06eeb10db8
Merge branch 'main' into redsun82/rust-extract-libs
2025-05-28 17:23:28 +02:00
Kasper Svendsen
b291b0637e
Warn about possible non-inlining across overlay frontier
2025-05-28 14:41:40 +02:00
Kasper Svendsen
5f65ea60d1
QL AST: Add overlay annotations
2025-05-28 14:41:40 +02:00
Joe Farebrother
f3a5608b06
Apply review suggestions - remove methodOfClass, fix qhelp typo; additionally add some more doc comments
2025-05-27 13:35:13 +01:00
Paolo Tranquilli
1005994f34
Merge branch 'main' into redsun82/rust-extract-libs
2025-05-26 10:58:22 +02:00
Paolo Tranquilli
292cd34efe
Rust: fix format
2025-05-26 10:11:55 +02:00
Paolo Tranquilli
e37a24a0d0
Rust: minor refactoring
2025-05-26 09:54:01 +02:00
Paolo Tranquilli
a946de48fd
Merge branch 'main' into redsun82/rust-extract-libs
2025-05-26 09:00:31 +02:00
Joe Farebrother
c070d04231
Fix qhelp
2025-05-23 14:31:13 +01:00
Joe Farebrother
e933a27cd9
Add changenote
2025-05-23 14:25:38 +01:00
Joe Farebrother
b15fec0fb9
Fix qhelp and tests
2025-05-23 14:17:21 +01:00
Joe Farebrother
44a678a3f4
remove redundant import
2025-05-23 13:16:13 +01:00
Joe Farebrother
06504f2cb6
Update tests
2025-05-23 13:04:56 +01:00
Joe Farebrother
f27057a747
Update qhelp
2025-05-23 10:56:43 +01:00
Paolo Tranquilli
7e917c9c35
Rust: move body skipping logic to code generation
2025-05-22 14:44:42 +02:00
Joe Farebrother
7b452a1611
Add case for wrappers
2025-05-22 09:01:15 +01:00
Joe Farebrother
bedd44a287
Update query and add case for iter(self.__next__, None)
2025-05-21 11:02:24 +01:00
Asger F
d644f80921
JS: Remove obsolete meta query
2025-05-20 16:20:49 +02:00
Asger F
b698b4e5e2
JS: Add test for missing type flow through generics
2025-05-20 13:20:38 +02:00
Asger F
11607e5f62
JS: Update TRAP after extractor change
2025-05-20 13:20:36 +02:00
Asger F
9bcc62002d
JS: Fix regression from global declare vars
2025-05-20 13:20:35 +02:00
Asger F
27979c6a2f
JS: Add regression tests for declared globals
2025-05-20 13:20:34 +02:00
Asger F
b610e10122
JS: Accept change in handling of variable resolution in face of ambient declarations
...
This test enforced the opinion that ambient declarations should have no impact on data flow, which is no longer the case. For now I'm just updating the test output.
2025-05-20 13:20:33 +02:00
Asger F
22a41142de
JS: Accept regression in overload resolution
...
Overload resolution has little impact on data flow analysis, because there we care about the concrete implementation of the function, which is the same for all overloads. It can affect the return type, which in turn can affect the call graph we generate, but we'll just have to accept this as overload resolution is too hard without negative recursion.
2025-05-20 13:20:31 +02:00
Asger F
de7d851195
JS: Update output of old HasUnderlyingType test
2025-05-20 13:20:30 +02:00
Asger F
bba872a3a4
JS: Make jump-to-def behave nicer
2025-05-20 13:20:28 +02:00
Asger F
b8dc1b3125
JS: Remove redundant casts
2025-05-20 13:20:27 +02:00
Asger F
fbafd6fff1
JS: Update to avoid deprecations after import resolution change
2025-05-20 13:20:26 +02:00
Asger F
e07a03619d
JS: Mark type-annotated nodes as SourceNode
2025-05-20 13:20:24 +02:00
Asger F
6e82b6eb1f
JS: Add failing test for assigning a non-SourceNode to a type annotated-value
2025-05-20 13:20:23 +02:00
Asger F
167f752301
JS: Also propagate through promise types
2025-05-20 13:20:21 +02:00
Asger F
500291dd54
JS: Hide shadowed inherited members
2025-05-20 13:20:20 +02:00
Asger F
f06b9a9b2b
JS: Add call graph test with types
2025-05-20 13:20:19 +02:00
Asger F
307715a5cd
JS: Use type resolution for CG augmentation
2025-05-20 13:20:17 +02:00
Asger F
57811edc44
JS: Some test updates
2025-05-20 13:20:16 +02:00
Asger F
989402d7b7
JS: Remove some dependencies on type extraction
2025-05-20 13:20:14 +02:00
Asger F
6ac35f1c66
JS: Use in MissingAwait
2025-05-20 13:20:13 +02:00
Asger F
4e44fdaa7b
JS: Use hasUnderlyingStringOrAnyType in Nest model
2025-05-20 13:20:12 +02:00
Asger F
6fdd7feed4
JS: Use sanitizing primitive type in Nest model
2025-05-20 13:20:10 +02:00
Asger F
2d21074598
JS: Use sanitizing primitive types in ViewComponentInput
2025-05-20 13:20:09 +02:00
Asger F
9fd85c9688
JS: Update jQuery model
2025-05-20 13:20:07 +02:00
Asger F
cca48c09b9
JS: Use in TypeAnnotation.getClass and hasUnderlyingType predicates
2025-05-20 13:20:06 +02:00
Asger F
b923eac9be
JS: Use underlying types in DataFlow::Node
2025-05-20 13:20:04 +02:00
Asger F
fc580a5f78
JS: Add TypeResolution.qll
2025-05-20 13:20:03 +02:00
Asger F
d61f576324
JS: Add UnderlyingTypes.qll
2025-05-20 13:20:01 +02:00
Asger F
1533e134a5
JS: Add NameResolution.qll
2025-05-20 13:20:00 +02:00
Asger F
1051136c07
JS: Add test
2025-05-20 13:19:58 +02:00
Asger F
4bfb0483a8
JS: Resolve JSDocLocalTypeAccess to a variable in scope
2025-05-20 13:19:57 +02:00
Asger F
9566265356
JS: Add helper for getting local type names
2025-05-20 13:19:56 +02:00
Asger F
4cd6f45572
JS: Avoid accidental recursion with API graphs
2025-05-20 13:19:54 +02:00
Asger F
b5a4fc0041
JS: Make Closure concepts based on AST instead
2025-05-20 13:19:52 +02:00
Asger F
50e4ac8298
JS: Do not ignore variables from ambient declarations
2025-05-20 13:19:51 +02:00
Asger F
9fc0b8c9cc
JS: Add ImportSpecifier.getImportDeclaration()
2025-05-20 13:19:50 +02:00
Asger F
5064cd5d94
JS: Exclude externs from CallGraph meta-query
2025-05-20 13:19:48 +02:00
Chad Bentz
8a81aa1762
Set CWE-134 from 9.3 to 7.3 CVSS score for memory safe languages
...
- Sync up to score given to javascript/ruby
2025-05-19 14:43:08 -04:00
Adnan Khan
aca3d897a2
Merge branch 'main' into patch-1
2025-05-19 08:52:56 -04:00
Chris Smowton
084222ec58
Inline version-specific override code where there is now only one version
2025-05-15 12:13:14 +01:00
Chris Smowton
79171a9232
Fold v_1_5_0 and v_1_5_20 files forwards into v_1_6_0, dropping any that are overridden
2025-05-15 11:39:26 +01:00
Paolo Tranquilli
00f4bfdd24
Rust: add some more supported libraries
...
Co-authored-by: Geoffrey White <40627776+geoffw0@users.noreply.github.com >
2025-05-02 13:20:02 +02:00
Paolo Tranquilli
e2a86aaf93
Rust: update supported libraries
...
Co-authored-by: Geoffrey White <40627776+geoffw0@users.noreply.github.com >
2025-05-02 13:18:56 +02:00
Adnan Khan
a9c4d6f383
Fix escaping.
2025-04-25 15:00:14 -04:00
Adnan Khan
38f00775bd
Exclude artifacts downloaded to runner temp.
2025-04-25 14:49:01 -04:00
Paolo Tranquilli
33c857ce9f
Rust: update supported languages footnote
2025-04-11 12:01:24 +02:00
Paolo Tranquilli
df427f7de8
Rust: add supported frameworks file
2025-04-11 11:53:27 +02:00
Paolo Tranquilli
00f6d9b305
Rust: start preparing documentation changes
2025-04-10 17:35:27 +02:00
Geoffrey White
07011f7460
Rust: Fix more after merge.
2025-03-17 12:22:09 +00:00
Geoffrey White
f5daec9da0
Rust: Fix after merge.
2025-03-17 12:10:59 +00:00
Geoffrey White
81edb4780d
Merge branch 'main' into constcrypto
2025-03-17 12:05:51 +00:00
Geoffrey White
704b3850f4
Rust: Fix a mistake in the test.
2025-03-17 11:24:58 +00:00
Geoffrey White
a0f4fa28b2
Rust: hardcoded -> hard-coded.
2025-03-11 09:40:47 +00:00
Geoffrey White
e3beacbda2
Rust: Print models (temporary, to see how this differs on CI).
2025-03-10 19:38:36 +00:00
Geoffrey White
1ca5c593f9
Rust: Replace imports of internal.DataFlowImpl where possible.
2025-03-10 11:47:23 +00:00
Geoffrey White
9e54d53537
Rust: Add barrier.
2025-03-10 11:41:48 +00:00
Geoffrey White
a34f9bef2b
Rust: Add a test case for getrandom.
2025-03-10 11:33:29 +00:00
Geoffrey White
e84a98bd97
Apply suggestions from code review
...
Co-authored-by: mc <42146119+mchammer01@users.noreply.github.com >
2025-03-10 11:15:23 +00:00
Geoffrey White
b4e710f459
Rust: Add missing models (for some platforms???).
2025-03-07 22:28:38 +00:00
Geoffrey White
fdb4362b6f
Merge remote-tracking branch 'upstream/main' into constcrypto
2025-03-07 17:51:48 +00:00
Geoffrey White
3dc35f1fab
Rust: Accept more test changes.
2025-03-07 17:02:26 +00:00
Geoffrey White
c63c1be11c
Rust: Accept integration test .expected changes.
2025-03-07 16:12:31 +00:00
Geoffrey White
19416a9ee3
Rust: Correct test results.
2025-03-07 15:43:34 +00:00
Geoffrey White
b6c9be23c1
Merge branch 'main' into constcrypto
2025-03-07 09:11:10 +00:00
Geoffrey White
42e7d1e983
Rust: Fix typo.
2025-03-06 19:09:01 +00:00
Geoffrey White
9af2d0218b
Rust: Add the new sinks to stats.
2025-03-06 18:50:11 +00:00
Geoffrey White
952e417d13
Rust: Tweak some wording.
2025-03-06 18:46:37 +00:00
Geoffrey White
e564c41043
Rust: Compute security-severity tag.
2025-03-06 18:36:55 +00:00
Geoffrey White
95be12ed80
Rust: Add qhelp and examples.
2025-03-06 17:48:47 +00:00
Geoffrey White
b4a6063e20
Rust: Add std::mem::zeroed as a source.
2025-03-06 17:48:45 +00:00
Geoffrey White
ac94ac6584
Rust: Model even more sinks + flows.
2025-03-06 17:48:44 +00:00
Geoffrey White
055baf2769
Rust: Improve results on arrays (less duplication).
2025-03-06 17:48:43 +00:00
Geoffrey White
aacbfc0fd8
Rust: Improve alert messages.
2025-03-06 17:48:41 +00:00
Geoffrey White
a6e106e025
Rust: Model more sinks + flows.
2025-03-06 17:48:40 +00:00
Geoffrey White
9fb00daeec
Rust: Implement the query (with one source, one sink model).
2025-03-06 17:48:39 +00:00
Geoffrey White
bd75f0187b
Rust: More test cases.
2025-03-06 17:48:37 +00:00
Geoffrey White
9a35febe80
Rust: Query framework and basic tests.
2025-03-06 13:24:05 +00:00