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
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
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
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
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
Simon Friis Vindum
153e91bebb
Rust: Re-enable special casing in indexing for Vec
2025-06-24 09:30:23 +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
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
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
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
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
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
Paolo Tranquilli
5162d2cf52
Rust: fix DB upgrade/downgrade scripts
2025-06-23 14:38:38 +02:00
Arthur Baars
13b28e2b60
Rust: add upgrade/downgrade scripts for new tables
2025-06-23 14:35:52 +02: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
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
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
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
Joe Farebrother
f457453647
Update redundant assignment to be a correctness issue for cross language consistency
2025-06-19 14:22:12 +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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Chuan-kai Lin
4d681f05bd
Merge pull request #19703 from github/release-prep/2.22.0
...
Release preparation for version 2.22.0
2025-06-09 11:19:39 -07:00
github-actions[bot]
88ba02edf8
Release preparation for version 2.22.0
2025-06-09 18:14:51 +00:00
Aditya Sharad
e48a7da827
Actions: Add change note for Bash parsing fixes
2025-06-09 09:56:41 -07:00
Aditya Sharad
98186e3f0e
Merge pull request #19700 from adityasharad/actions/validate-change-notes
...
CI: Expand list of packs/languages for change note validation
2025-06-09 22:13:30 +05:30
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
Aditya Sharad
9f60335b66
CI: Expand list of packs/languages for change note validation
2025-06-09 08:48:16 -07: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
Jeroen Ketema
ef210b8f5e
Merge pull request #19678 from jketema/swift-6.1.2
...
Swift: Update to Swift 6.1.2
2025-06-09 17:19:42 +02:00
Chuan-kai Lin
68d2c132b2
Merge pull request #19699 from github/cklin/rc-3.18-mergeback
...
Merge rc/3.18 back to main
2025-06-09 08:15:58 -07:00
Asger F
42f762a140
JS: Update test output now that 'satisfies' is a SourceNode
2025-06-09 16:22:30 +02:00
Chuan-kai Lin
631502e129
Merge branch 'main' into cklin/rc-3.18-mergeback
2025-06-09 07:19:40 -07:00
Mathew Payne
9d23677024
Merge branch 'main' into js-clientrests-axios
2025-06-09 14:18:54 +01:00
Jeroen Ketema
428b48dfe7
Merge pull request #19679 from jketema/stats
...
C++: Update stats file after changes to DCA source suite
2025-06-09 12:39:33 +02: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
Owen Mansel-Chan
ef5e605cc4
Merge pull request #19386 from owen-mc/go/promote/html-template-escaping-bypass-xss
...
Go: promote `html-template-escaping-bypass-xss`
2025-06-06 12:36:27 +01:00
Jeroen Ketema
1f7a6ba538
Swift: Update LFS
2025-06-06 11:18:21 +02:00
Owen Mansel-Chan
5bfed770ef
Merge pull request #19683 from github/dependabot/go_modules/go/extractor/extractor-dependencies-e08f8ad452
...
Bump the extractor-dependencies group in /go/extractor with 2 updates
2025-06-06 09:56:09 +01:00
Jeroen Ketema
86f425d2fc
C++: Fix join-order problem after stats file update
...
Before the fix:
```
Pipeline standard for AVRule79::exprReleases/3#e849cdd3@f2995ebb was evaluated in 5 iterations totaling 168745ms (delta sizes total: 12583).
85855 ~0% {2} r1 = SCAN `AVRule79::exprReleases/3#e849cdd3#prev_delta` OUTPUT In.1, In.2
85855 ~0% {2} r2 = JOIN r1 WITH `AVRule79::exprOrDereference/1#c20425a1_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
115767 ~6% {2} | JOIN WITH `ASTValueNumbering::GVN.getAnExpr/0#dispred#a14f45bf_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
333369 ~18% {2} | JOIN WITH `ASTValueNumbering::GVN.getAnExpr/0#dispred#a14f45bf` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
266264 ~204% {2} | JOIN WITH `Access::Access.getTarget/0#dispred#cf25c8aa` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
16379 ~21% {3} | JOIN WITH `Function::Function.getParameter/1#dispred#200dcf26_201#join_rhs` ON FIRST 1 OUTPUT Rhs.2, Lhs.1, Rhs.1
13117819221 ~0% {4} r3 = JOIN r2 WITH `Call::Call.getArgument/1#dispred#ada436ba_102#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.2, Lhs.1, Rhs.2
10477 ~3% {3} | JOIN WITH `Call::FunctionCall.getTarget/0#dispred#935da4c5` ON FIRST 2 OUTPUT Lhs.0, Lhs.3, Lhs.2
13117819221 ~1% {4} r4 = JOIN r2 WITH `Call::Call.getArgument/1#dispred#ada436ba_102#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.2, Rhs.2
13022632157 ~1% {5} | JOIN WITH `Call::FunctionCall.getTarget/0#dispred#935da4c5` ON FIRST 1 OUTPUT Rhs.1, Lhs.2, Lhs.1, Lhs.0, Lhs.3
3720 ~70% {3} | JOIN WITH `#MemberFunction::MemberFunction.getAnOverridingFunction/0#dispred#a6e65b9ePlus` ON FIRST 2 OUTPUT Lhs.3, Lhs.4, Lhs.2
115767 ~6% {2} r5 = JOIN r1 WITH `ASTValueNumbering::GVN.getAnExpr/0#dispred#a14f45bf_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
333367 ~20% {3} | JOIN WITH `ASTValueNumbering::GVN.getAnExpr/0#dispred#a14f45bf` ON FIRST 1 OUTPUT Rhs.1, _, Lhs.1
333367 ~12% {3} | REWRITE WITH Out.1 := 85
4 ~0% {2} | JOIN WITH exprs ON FIRST 2 OUTPUT Lhs.0, Lhs.2
4 ~100% {2} | JOIN WITH `Expr::Expr.getEnclosingFunction/0#dispred#3960f06c` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
0 ~0% {2} r6 = JOIN r5 WITH `Call::FunctionCall.getTarget/0#dispred#935da4c5_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
0 ~0% {2} r7 = JOIN r5 WITH `#MemberFunction::MemberFunction.getAnOverridingFunction/0#dispred#a6e65b9ePlus#swapped` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
0 ~0% {2} | JOIN WITH `Call::FunctionCall.getTarget/0#dispred#935da4c5_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
0 ~0% {2} r8 = r6 UNION r7
0 ~0% {3} | JOIN WITH `Call::Call.getQualifier/0#dispred#7d175544` ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.0
0 ~0% {3} | JOIN WITH `AVRule79::exprOrDereference/1#c20425a1_10#join_rhs` ON FIRST 1 OUTPUT Lhs.2, Rhs.1, Lhs.1
14197 ~18% {3} r9 = r3 UNION r4 UNION r8
12615 ~3% {3} | AND NOT `AVRule79::exprReleases/3#e849cdd3#prev`(FIRST 3)
return r9
```
After:
```
Pipeline standard for AVRule79::exprReleases/3#e849cdd3@13dead04 was evaluated in 5 iterations totaling 68ms (delta sizes total: 12551).
85855 ~0% {2} r1 = SCAN `AVRule79::exprReleases/3#e849cdd3#prev_delta` OUTPUT In.1, In.2
85855 ~0% {2} r2 = JOIN r1 WITH `AVRule79::exprOrDereference/1#c20425a1_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
115767 ~6% {2} | JOIN WITH `ASTValueNumbering::GVN.getAnExpr/0#dispred#a14f45bf_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
333443 ~18% {2} | JOIN WITH `ASTValueNumbering::GVN.getAnExpr/0#dispred#a14f45bf` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
265872 ~204% {2} | JOIN WITH `Access::Access.getTarget/0#dispred#cf25c8aa` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
16399 ~27% {3} | JOIN WITH `Function::Function.getParameter/1#dispred#200dcf26_201#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Rhs.2
10489 ~1% {3} r3 = JOIN r2 WITH `Call::FunctionCall.getTarget/0#dispred#935da4c5_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.2, Lhs.1
1558 ~80% {3} r4 = JOIN r2 WITH `#MemberFunction::MemberFunction.getAnOverridingFunction/0#dispred#a6e65b9ePlus#swapped` ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.2
2196 ~7% {3} | JOIN WITH `Call::FunctionCall.getTarget/0#dispred#935da4c5_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.2, Lhs.1
12685 ~3% {3} r5 = r3 UNION r4
12581 ~3% {3} | JOIN WITH `Call::Call.getArgument/1#dispred#ada436ba` ON FIRST 2 OUTPUT Lhs.0, Rhs.2, Lhs.2
115767 ~6% {2} r6 = JOIN r1 WITH `ASTValueNumbering::GVN.getAnExpr/0#dispred#a14f45bf_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
333443 ~20% {3} | JOIN WITH `ASTValueNumbering::GVN.getAnExpr/0#dispred#a14f45bf` ON FIRST 1 OUTPUT Rhs.1, _, Lhs.1
333443 ~12% {3} | REWRITE WITH Out.1 := 85
4 ~0% {2} | JOIN WITH exprs ON FIRST 2 OUTPUT Lhs.0, Lhs.2
4 ~100% {2} | JOIN WITH `Expr::Expr.getEnclosingFunction/0#dispred#3960f06c` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
0 ~0% {2} r7 = JOIN r6 WITH `Call::FunctionCall.getTarget/0#dispred#935da4c5_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
0 ~0% {2} r8 = JOIN r6 WITH `#MemberFunction::MemberFunction.getAnOverridingFunction/0#dispred#a6e65b9ePlus#swapped` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
0 ~0% {2} | JOIN WITH `Call::FunctionCall.getTarget/0#dispred#935da4c5_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
0 ~0% {2} r9 = r7 UNION r8
0 ~0% {3} | JOIN WITH `Call::Call.getQualifier/0#dispred#7d175544` ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.0
0 ~0% {3} | JOIN WITH `AVRule79::exprOrDereference/1#c20425a1_10#join_rhs` ON FIRST 1 OUTPUT Lhs.2, Rhs.1, Lhs.1
12581 ~3% {3} r10 = r5 UNION r9
12576 ~3% {3} | AND NOT `AVRule79::exprReleases/3#e849cdd3#prev`(FIRST 3)
return r10
```
2025-06-06 07:13:26 +02:00
dependabot[bot]
bbabf2c410
Bump the extractor-dependencies group in /go/extractor with 2 updates
...
Bumps the extractor-dependencies group in /go/extractor with 2 updates: [golang.org/x/mod](https://github.com/golang/mod ) and [golang.org/x/tools](https://github.com/golang/tools ).
Updates `golang.org/x/mod` from 0.24.0 to 0.25.0
- [Commits](https://github.com/golang/mod/compare/v0.24.0...v0.25.0 )
Updates `golang.org/x/tools` from 0.33.0 to 0.34.0
- [Release notes](https://github.com/golang/tools/releases )
- [Commits](https://github.com/golang/tools/compare/v0.33.0...v0.34.0 )
---
updated-dependencies:
- dependency-name: golang.org/x/mod
dependency-version: 0.25.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: extractor-dependencies
- dependency-name: golang.org/x/tools
dependency-version: 0.34.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: extractor-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-06-06 03:29:36 +00: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
Owen Mansel-Chan
238a3021d0
Merge pull request #19673 from github/workflow/coverage/update
...
Update CSV framework coverage reports
2025-06-05 19:44:44 +01:00
Chris Smowton
fbae3062d3
Merge pull request #19675 from github/smowton/fix/abstract-env
...
Actions: Make `Env` non-abstract
2025-06-05 16:50:11 +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
Jeroen Ketema
99ef4c7b38
Merge pull request #19533 from github/idrissrio/constexpr
...
C++: accept new test results after changes
2025-06-05 16:53:34 +02: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
Jeroen Ketema
057d3ebfdf
C++: Update stats file after changes to DCA source suite
2025-06-05 15:57:55 +02:00
Jeroen Ketema
5b5d855808
Swift: Remove empty line from change note
2025-06-05 14:47:10 +02:00
Jeroen Ketema
3f89dd3c4e
Swift: Update to Swift 6.1.2
2025-06-05 14:16:18 +02:00
Chris Smowton
338d3834c4
Actions: Make Env non-abstract
...
`class Env` was previously abstract with no concrete descendants, so user queries like `any(Env e | ...)` would never produce results.
In the JS library the corresponding class derived from `YamlNode` and has concrete descendants representing workflow-, job- and step-level `env` nodes. However these are dubiously useful since you can always just use `any(Step s).getEnv()` to achieve the same result. Since `EnvImpl` already fully characterises an `env` node, I simply make the class concrete.
2025-06-05 10:21:24 +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
github-actions[bot]
401911e185
Add changed framework coverage reports
2025-06-05 00:24:03 +00: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
Tom Hvitved
76c6d7104d
Merge pull request #19669 from hvitved/rust/external-location-post-processing
...
Rust: Remove external locations in tests using post-processing
2025-06-04 16:52:40 +02:00
idrissrio
149c53bef6
C++: accept new test results after changes
2025-06-04 16:51:29 +02:00
Arthur Baars
189c16b7bc
Merge pull request #19630 from github/aibaars/qldoc-ast
...
Rust: add documentation for AST nodes
2025-06-04 16:04:56 +02:00
Arthur Baars
39851bcab4
Rust: update expected output
2025-06-04 15:44:36 +02:00
Arthur Baars
e87878298e
Rust: run codegen
2025-06-04 15:41:52 +02:00
Arthur Baars
7a13c981b8
Rust: address comments
2025-06-04 15:38:23 +02:00
Napalys Klicius
5419285091
Merge pull request #19544 from Napalys/js/quality/stream_pipe
...
JS: new `Quality` query - Unhandled errors in `.pipe()` chain
2025-06-04 15:34:41 +02:00
Jeroen Ketema
2e6794e16c
Merge pull request #18931 from jketema/frontend-upgrade
...
C++: Update expected test results and compiler version documentation after frontend update
2025-06-04 14:34:53 +02:00
Jeroen Ketema
129f259f1a
C++: Update supported compiler versions after frontend update
2025-06-04 14:03:44 +02:00
Jeroen Ketema
0e34ee18df
C++: Update expected test results after frontend update
2025-06-04 14:03:43 +02:00
Tom Hvitved
aa0fc05df8
Rust: Remove external locations in tests using post-processing
2025-06-04 13:07:43 +02:00
Owen Mansel-Chan
e7e4286233
Merge pull request #19561 from owen-mc/go/mad/bigquery-sql-injection-sink
...
Go: Add BigQuery as a sink for SQLi queries #2
2025-06-04 11:36:18 +01: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
Nicolas Will
0ef17ba231
Merge pull request #19607 from trailofbits/openssl-base-classes
...
Quantum: Add base classes for OpenSSL EVP methods
2025-06-03 19:23:21 +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
GrosQuildu
60d9b6e338
update docs
2025-06-03 16:27:50 +02:00
GrosQuildu
eff6eb3cc2
remove redundant if/none
2025-06-03 16:27:50 +02:00
GrosQuildu
f04fa58c8b
rm one-shot class
2025-06-03 16:27:50 +02:00
Paweł Płatek
328cf798bf
Apply docs suggestions
...
Co-authored-by: Ben Rodes <benjaminrodes@gmail.com >
2025-06-03 16:27:50 +02:00
Paweł Płatek
f103e8be96
Update cpp/ql/lib/experimental/quantum/OpenSSL/Operations/OpenSSLOperationBase.qll
...
Co-authored-by: Ben Rodes <benjaminrodes@gmail.com >
2025-06-03 16:27:50 +02:00
GrosQuildu
af8702d6a8
fix openssl outputs
2025-06-03 16:27:50 +02:00
GrosQuildu
6d1b1d1a6e
refactor EVP common classes
...
add initial work for openssl signatures
add basic C test files for ciphers and signatures
more signature classes, comments for evp base classes
more signature tests
fix super calls for input consumers
fix getOutputArtifact for tests
formatting
delete redundant test files
move algorithm methods to OpenSSLOperation
refactor ECKeyGenOperation for new EVP classes
formatting
fix getOutputArtifact
fix cipher and digest operation test results
mv openssl signature to another PR
2025-06-03 16:27:50 +02:00
Idriss Riouak
8fe2699a36
Merge pull request #19603 from github/idrissrio/comments-using
...
C++: Add support for getting literals in using declarations
2025-06-03 16:14:21 +02:00
idrissrio
10fb806601
C++: add change note for using declarations
2025-06-03 16:04:36 +02:00
idrissrio
4fd44e96ba
C++: add test for getReferencedMember
2025-06-03 16:04:35 +02:00
idrissrio
e31f722d76
C++: Add support for getting referenced literals in using declarations
2025-06-03 16:04:30 +02: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
Florin Coada
35691db373
Merge pull request #19643 from github/changedocs/2.21.4
...
Docs: Add changelog entry for CodeQL 2.21.4 release
2025-06-03 14:19:19 +01: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
Napalys Klicius
8521c53a40
Renamed test directory to match the query name
...
Co-Authored-By: Asger F <316427+asgerf@users.noreply.github.com >
2025-06-03 14:12:12 +02:00
Napalys Klicius
d1869941c2
Renamed UnhandledStreamPipe.ql to a better fitting name and ID
...
As a side effect of merge `security-and-quality` does not contain anymore related new query.
Co-Authored-By: Asger F <316427+asgerf@users.noreply.github.com >
2025-06-03 13:57:10 +02:00
Paolo Tranquilli
f48012a37c
Merge pull request #19644 from github/redsun82/update-ripunzip
...
Ripunzip: update to 2.0.2
2025-06-03 13:51:34 +02:00
Napalys Klicius
f6e7059589
Merge branch 'main' into js/quality/stream_pipe
2025-06-03 13:48:41 +02:00
Napalys Klicius
8ba1f3f265
Update javascript/ql/src/Quality/UnhandledStreamPipe.qhelp
...
Co-authored-by: Asger F <asgerf@github.com >
2025-06-03 13:43:45 +02:00
Asger F
9ea4410592
Merge pull request #19587 from asgerf/js/angular2-client-side
...
JS: Mark AngularJS $location as client-side remote flow source
2025-06-03 13:40:01 +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
Jeroen Ketema
5e84c71b69
Merge pull request #19652 from jketema/down-typo
...
C++: Fix typo in downgrade script
2025-06-03 12:55:28 +02:00
Jeroen Ketema
41bdaa3d3c
C++: Fix typo in downgrade script
2025-06-03 12:25:46 +02:00
Arthur Baars
4de3817b16
Merge pull request #19616 from github/aibaars/rust-fix-stats
...
Rust: restrict line and file counts to include only extracted source files
2025-06-03 11:31:54 +02:00
Arthur Baars
348dc9969b
Rust: remove stray space
2025-06-03 10:55:34 +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
Tom Hvitved
ae4a425608
Merge pull request #19605 from hvitved/rust/jump-to-def-extensions
...
Rust: Extend jump-to-def to include paths and `mod file;` imports
2025-06-03 10:19:28 +02:00
Tom Hvitved
3781de7b92
Rust: Reorder columns in Definitions.ql test
2025-06-03 09:53:45 +02:00
Nicolas Will
7d7ea72516
Merge pull request #19632 from bdrodes/openssl_keyagreement_instances_and_consumers
...
Quantum: Add OpenSSL key agreement instances and consumers
2025-06-02 20:55:05 +02:00
Nicolas Will
7e7dfeb40b
Merge branch 'main' into openssl_keyagreement_instances_and_consumers
2025-06-02 20:02:53 +02:00
REDMOND\brodes
8b770bfb4d
Crypto: Remove old crypto stubs, now part of experimental/stubs.
2025-06-02 14:00:30 -04:00
Napalys Klicius
7993f7d8c8
Update qhelp example to more accurately demonstrate flagged cases
2025-06-02 19:08:33 +02:00
REDMOND\brodes
23b6c78a23
Crypto: Revert CODEOWNERS change and remove redundant cast.
2025-06-02 13:07:31 -04:00
Tom Hvitved
52aa7e3c7d
Merge pull request #19624 from paldepind/type-inference-experiment
...
Rust: Refactor type equality
2025-06-02 19:06:18 +02:00
Napalys Klicius
bf2f19da56
Update UnhandledStreamPipe.ql
...
Address comments
Co-Authored-By: Asger F <316427+asgerf@users.noreply.github.com >
2025-06-02 19:02:48 +02:00
Paolo Tranquilli
bd2573a2b0
Ripunzip: fix macos archive
2025-06-02 18:20:29 +02:00
Nicolas Will
8b9e5b477c
Merge pull request #19623 from trailofbits/fegge/quantum-signatures
...
Quantum: Added signature input nodes to signature verify operation nodes
2025-06-02 18:07:48 +02:00
Florin Coada
2e5ce06a27
Docs: Add changelog entry for CodeQL 2.21.4 release
2025-06-02 17:06:40 +01:00
Paolo Tranquilli
51ef76a3c4
Merge pull request #19642 from github/redsun82/rm-windows-2019
...
CI: remove deprecated `windows-2019` usage
2025-06-02 18:05:19 +02:00
Paolo Tranquilli
ddbe29a8e2
Ripunzip: update to 2.0.2
2025-06-02 18:04:57 +02:00
Napalys Klicius
ae74edb033
Update javascript/ql/src/Quality/UnhandledStreamPipe.ql
...
Co-authored-by: Asger F <asgerf@github.com >
2025-06-02 17:53:54 +02:00
Napalys Klicius
d43695c929
Update javascript/ql/src/Quality/UnhandledStreamPipe.qhelp
...
Co-authored-by: Asger F <asgerf@github.com >
2025-06-02 17:52:42 +02:00
Napalys Klicius
7198372ae5
Update javascript/ql/src/Quality/UnhandledStreamPipe.qhelp
...
Co-authored-by: Asger F <asgerf@github.com >
2025-06-02 17:52:41 +02:00
Napalys Klicius
abd446ae77
Update javascript/ql/src/Quality/UnhandledStreamPipe.ql
...
Co-authored-by: Asger F <asgerf@github.com >
2025-06-02 17:52:40 +02:00
Napalys Klicius
64f00fd0f2
Update javascript/ql/src/Quality/UnhandledStreamPipe.ql
...
Co-authored-by: Asger F <asgerf@github.com >
2025-06-02 17:52:34 +02:00
Napalys Klicius
3cbc4142f0
Update javascript/ql/src/Quality/UnhandledStreamPipe.ql
...
Co-authored-by: Asger F <asgerf@github.com >
2025-06-02 17:40:06 +02:00
Napalys Klicius
aed9e9c883
Merge pull request #19634 from Napalys/js/url_obj_propagation
...
JS: Add URL constructor taint tracking for request forgery
2025-06-02 17:32:44 +02:00
Paolo Tranquilli
baac2eecb0
Ripunzip: update default workflow versions
2025-06-02 17:30:34 +02:00
Paolo Tranquilli
b1afa6681c
CI: remove deprecated windows-2019 usage
2025-06-02 17:26:42 +02:00
Nicolas Will
5a822462ad
Merge branch 'main' into openssl_keyagreement_instances_and_consumers
2025-06-02 16:54:22 +02:00
Nicolas Will
806fc6ae6a
Merge pull request #19564 from bdrodes/initial_openssl_tests
...
Quantum: Add initial qltests for OpenSSL modeling
2025-06-02 16:52:27 +02:00
Arthur Baars
ae0c547e89
Rust: fix CFG for MacroPat
2025-06-02 16:37:55 +02:00
REDMOND\brodes
f5d24c5a7b
Crypto: Fix UnknownKeyAgreementType to OthernKeyAgreementType for JCA.
2025-06-02 10:11:53 -04:00
REDMOND\brodes
a473c96a9c
Crypto: Move crypto test stubs under experimental/stubs and remove special CODEOWNERS assignments for crypto stubs.
2025-06-02 16:10:35 +02:00
REDMOND\brodes
6b267479be
Crypto: Update crypto stubs location under 'crypto' and associate codeowners on any test/stubs/crypto. Minor fix to HashAlgorithmValueConsumer (remove library detector logic).
2025-06-02 16:10:35 +02:00
REDMOND\brodes
a9bdcc72eb
Crypto: Move openssl stubs to a shared stubs location. Include openssl apache license and a readme for future stub creation. Modify existing test case to reference stubs location.
2025-06-02 16:10:35 +02:00
REDMOND\brodes
0de6647927
Crypto: Adding initial openssl tests, fixing a bug in hash modeling found through tests, and updating CODEOWNERS for quantum tests
2025-06-02 16:10:35 +02:00
Arthur Baars
5c21c01ad0
Update rust/ql/src/queries/summary/Stats.qll
2025-06-02 15:42:43 +02:00
Fredrik Dahlgren
d0739b21e5
Restricted signature input nodes to verify nodes
2025-06-02 15:37:33 +02:00
Paolo Tranquilli
dfc03cbad1
Merge branch 'main' into redsun82/rust-extract-libs
2025-06-02 15:33:53 +02: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
Michael Nebel
21cb8b2172
Merge pull request #19638 from martincostello/dotnet-branding
...
Fix user-facing casing of NuGet
2025-06-02 14:06:35 +02:00
Taus
9fe031d8eb
Merge pull request #19594 from sylwia-budzynska/pandas-sqli
...
Python: Add Pandas SQLi sinks
2025-06-02 13:40:14 +02:00
Napalys Klicius
c981c4fe30
Update javascript/ql/lib/change-notes/2025-05-30-url-package-taint-step.md
...
Co-authored-by: Asger F <asgerf@github.com >
2025-06-02 13:34:47 +02:00
Tom Hvitved
bf39058573
Merge pull request #19611 from hvitved/rust/path-resolution-std-prelude
...
Rust: Also take the `std` prelude into account when resolving paths
2025-06-02 13:04:57 +02:00
Paolo Tranquilli
2561f3c081
Merge pull request #19585 from github/redsun82/rust-skip-unexpanded-in-libraries
...
Rust: skip unexpanded stuff in library emission
2025-06-02 12:10:37 +02:00
Napalys Klicius
298ef9ab12
Now able to track error handler registration via instance properties
2025-06-02 11:01:41 +02:00
Martin Costello
77a6a2d442
Fix user-facing casing of NuGet
...
Fix user-facing strings to use "NuGet" instead of "Nuget" and "dotnet" instead of "Dotnet".
2025-06-02 09:30:16 +01:00
Paolo Tranquilli
fa3fcf0f95
Rust: skip all token trees in library mode
2025-06-02 09:32:39 +02:00
Paolo Tranquilli
7be44d2fe8
Merge branch 'main' into redsun82/rust-skip-unexpanded-in-libraries
2025-06-02 09:27:56 +02:00
Arthur Baars
943dd8e70c
update output
2025-05-30 22:56:06 +02:00
Arthur Baars
c44a7c3036
Rust: codegen
2025-05-30 22:56:04 +02:00
Arthur Baars
0c8e886821
Rust: fix QLdoc examples
2025-05-30 22:55:50 +02:00
Napalys Klicius
0b6a747737
Added change note
2025-05-30 18:33:59 +02:00
Napalys Klicius
b9b62fa1c1
JS: Add URL from url package constructor taint step for request forgery detection
2025-05-30 18:32:02 +02:00
Napalys Klicius
19cc3e335f
JS: Add test case for RequestForgery with url wrapped via package URL
2025-05-30 18:26:47 +02:00
Napalys Klicius
f843cc02f6
Fix false positives in stream pipe analysis by improving error handler tracking via property access.
2025-05-30 18:08:04 +02:00
REDMOND\brodes
cf015d18f1
Crypto: Add openssl key agreement instances and consumers (KEM and KEY_EXCH). Fix for raw algorithm names in all current instances. Update constants to include key agreement algorithms, previously missing. Note added in model for the possibility of ESDH.
2025-05-30 11:29:34 -04:00
Mathias Vorreiter Pedersen
f6231a37e1
Merge pull request #19627 from MathiasVP/generalize-bulk-generation
...
Bulk MAD generator: Support databases from DCA runs
2025-05-30 14:46:36 +01:00
REDMOND\brodes
69e3a20e24
Crypto: Update crypto stubs location under 'crypto' and associate codeowners on any test/stubs/crypto. Minor fix to HashAlgorithmValueConsumer (remove library detector logic).
2025-05-30 09:35:33 -04:00
Mathias Vorreiter Pedersen
7cb9024cc6
Bulk generator: Flip default values for summaries, sources, and sinks.
2025-05-30 13:33:24 +01:00
Mathias Vorreiter Pedersen
0f30644afd
Bulk generator: Snake case things.
2025-05-30 13:26:53 +01:00
Mathias Vorreiter Pedersen
3444c986ec
Bulk generator: Fix field name.
2025-05-30 13:25:12 +01:00
Mathias Vorreiter Pedersen
bdf411afbc
Bulk generator: Make 'database_results' a map to simplify away the explicit sorting.
2025-05-30 13:09:55 +01:00
Mathias Vorreiter Pedersen
cdd869a970
Bulk generator: Autoformat.
2025-05-30 12:49:12 +01:00
Mathias Vorreiter Pedersen
3ddca32705
Update misc/scripts/models-as-data/bulk_generate_mad.py
...
Co-authored-by: Simon Friis Vindum <paldepind@github.com >
2025-05-30 12:48:50 +01:00
Mathias Vorreiter Pedersen
7c2612a6a1
Bulk generator: Specify a path to the PAT instead of the PAT itself.
2025-05-30 12:47:07 +01:00
Mathias Vorreiter Pedersen
1228080914
Bulk generator: Specify 'language' in the config file.
2025-05-30 12:40:21 +01:00
Mathias Vorreiter Pedersen
fc165db8ac
Bulk generator: Specify 'with-summaries', 'with-sources', and 'with-sinks' in the config file.
2025-05-30 12:40:20 +01:00
Mathias Vorreiter Pedersen
7121f5c57e
Bulk generator: Use the 'Project' type throughout the file.
2025-05-30 12:08:42 +01:00
Arthur Baars
0157c16008
Rust: delete empty expected file
2025-05-30 12:57:45 +02:00
Mathias Vorreiter Pedersen
7c89d6d6dd
Bulk generator: Rename 'get_destination_for_project' to 'get_mad_destination_for_project'.
2025-05-30 11:49:48 +01:00
Mathias Vorreiter Pedersen
5d79a8de89
Update misc/scripts/models-as-data/bulk_generate_mad.py
...
Co-authored-by: Simon Friis Vindum <paldepind@github.com >
2025-05-30 11:48:30 +01:00
Mathias Vorreiter Pedersen
b640474a61
Bulk generator: Remove 'Phase' part of log message.
2025-05-30 11:43:30 +01:00
Mathias Vorreiter Pedersen
566bf431d7
Bulk generator: Rename 'github' to 'get_json_from_github'.
2025-05-30 11:42:15 +01:00
Mathias Vorreiter Pedersen
7ecf8c8ea2
Bulk generator: Format file and add a note at the top of the file specifying the formatting requirements.
2025-05-30 11:40:55 +01:00
Joe Farebrother
73f2770acb
Fix handling for some wrappers + add test case
2025-05-30 11:24:06 +01:00
Arthur Baars
f0db47b571
Rust: run codegen
2025-05-30 11:51:35 +02:00
Arthur Baars
0dd0f9a22a
Rust: add missing AST nodes to annotations.py
2025-05-30 11:46:27 +02:00
Arthur Baars
460984bee5
Rust: add documentation for AST nodes
2025-05-30 11:46:17 +02:00
Mathias Vorreiter Pedersen
cb938701a1
Bulk generator: Rename file since it is no longer Rust specific.
2025-05-29 18:14:24 +01:00
Mathias Vorreiter Pedersen
5051790e24
Bulk generator: Add DCA support.
2025-05-29 18:14:22 +01:00
Mathias Vorreiter Pedersen
e721fc07aa
Bulk generator: Prepare for adding DCA support. This commits just generalizes the existing functionality to be independent of Rust and instead depend on the configuration file and the command-line arguments.
2025-05-29 18:14:21 +01:00
Mathias Vorreiter Pedersen
6ff2bebbc2
Bulk generator: Add command-line arguments.
2025-05-29 18:14:19 +01:00
Mathias Vorreiter Pedersen
b87ba31c43
Bulk generator: Get rid of the hardcoded project list and move it into a configuration file.
2025-05-29 18:14:18 +01:00
Mathias Vorreiter Pedersen
40d937a2eb
Bulk generator: Some imports we will need.
2025-05-29 18:14:16 +01:00
Mathias Vorreiter Pedersen
cb0b566588
C++: Put autogenerated models in the same folder structure as Rust.
2025-05-29 18:14:15 +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
Arthur Baars
f5ea929d76
Merge pull request #19551 from github/redsun82/rust-all-features-by-default
...
Rust: use all features by default
2025-05-29 16:29:25 +02:00
Simon Friis Vindum
08277e4ecc
Rust: Refactor type equality
2025-05-29 16:07:37 +02:00
Fredrik Dahlgren
5fe17abe31
Added signature input nodes to signature verify operation nodes
2025-05-29 13:27:11 +02:00
Simon Friis Vindum
437246f3c9
Merge pull request #19593 from paldepind/rust/operator-overloading
...
Rust: Type inference for operator overloading
2025-05-29 12:28:25 +02:00
Paolo Tranquilli
55791a6c75
Rust: fix typo
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-05-29 11:19:08 +02:00
Paolo Tranquilli
ca661c7877
Rust: use all features by default
2025-05-29 11:19:08 +02:00
Arthur Baars
55be5fbf9e
Merge pull request #19588 from github/aibaars/rust-enable-attribute-macros
...
Rust: re-enable attribute macro expansion in library mode
2025-05-29 10:59:07 +02:00
Chuan-kai Lin
b4e614ac74
Merge pull request #19428 from github/cklin/check-diff-informed
...
QL tests: run with --check-diff-informed
2025-05-28 11:51:16 -07:00
Arthur Baars
62d0cf7e0d
Rust: restrict line and file counts to include only extracted source files
2025-05-28 19:55:13 +02:00
Chuan-kai Lin
89ad2b4256
Merge branch 'main' into cklin/check-diff-informed
2025-05-28 10:47:47 -07:00
Arthur Baars
bfe3413445
Merge pull request #19612 from github/aibaars-patch-2
...
Rust: delete leftover log statement
2025-05-28 18:11:27 +02:00
REDMOND\brodes
b1ce44e434
Crypto: Move openssl stubs to a shared stubs location. Include openssl apache license and a readme for future stub creation. Modify existing test case to reference stubs location.
2025-05-28 12:05:18 -04:00
Napalys Klicius
d3b2a57fbf
Fixed ql warning Expression can be replaced with a cast
2025-05-28 17:34:16 +02:00
Napalys Klicius
2e2b9a9d63
Make predicates private and clarify stream reference naming.
2025-05-28 17:23:55 +02:00
Paolo Tranquilli
06eeb10db8
Merge branch 'main' into redsun82/rust-extract-libs
2025-05-28 17:23:28 +02:00
Paolo Tranquilli
80a5dde240
Merge pull request #19613 from github/redsun82/rust-compression
...
Ruby, Rust: add zstd compression option (and fix compression in Rust)
2025-05-28 17:20:57 +02:00
Paolo Tranquilli
7d1a38f42a
Merge pull request #19600 from github/redsun82/rust-new-macro-expansion-integration-test
...
Rust: add more macro expansion tests
2025-05-28 17:19:06 +02:00
Napalys Klicius
f8f5d8f561
Exclude .pipe detection which are in a test file.
2025-05-28 17:18:39 +02:00
Napalys Klicius
5bb29b6e33
Now flags only .pipe calls which have an error somewhere down the stream, but not on the source stream.
2025-05-28 17:17:43 +02:00
Tom Hvitved
3fa308e723
Rust: Also take the std prelude into account when resolving paths
2025-05-28 16:57:19 +02:00
Paolo Tranquilli
c8f5e26200
Rust: fix compression option description
2025-05-28 16:48:02 +02:00
Paolo Tranquilli
fd00ed502d
Ruby: add compression integration test
2025-05-28 16:41:56 +02:00
Paolo Tranquilli
8248c50bdf
Rust: add none compression integration test
2025-05-28 16:41:55 +02:00
Paolo Tranquilli
923a2854cb
Ruby, Rust: add zstd compression option
2025-05-28 16:41:55 +02:00
Paolo Tranquilli
4a9e31ebd8
Shared: add zstd crate to tree-sitter-extractor dependencies
2025-05-28 16:41:55 +02:00
Paolo Tranquilli
a86dfe173e
Rust: fix gzip compression
2025-05-28 16:41:54 +02:00
Simon Friis Vindum
6500ebf631
Rust: Fixes based on PR review
2025-05-28 16:01:28 +02:00
Arthur Baars
19283102da
Rust: delete leftover log statement
2025-05-28 15:51:42 +02:00
Jeroen Ketema
7ccae93a12
Merge pull request #19606 from jketema/gnu-version
...
C++: Specify GNU version on min/max test
2025-05-28 15:05:27 +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
Jeroen Ketema
0796184573
C++: Specify GNU version on min/max test
...
The `<?` and `>?` operators where removed in g++ in version 4.3, and the
latest version of our our frontend enforces this through a version check.
Hence, to keep the test working, we not to explicitly specify a version.
2025-05-28 14:16:47 +02:00
Simon Friis Vindum
5160bc2b9a
Rust: Define getNumberOfOperands in Operation class
2025-05-28 13:32:49 +02:00
Tom Hvitved
d74e95f5fe
Rust: Extend jump-to-def to include paths and mod file; imports
2025-05-28 13:29:00 +02:00
Owen Mansel-Chan
164cfaf3e7
Merge pull request #19532 from owen-mc/go/make-test-version-independent
...
Go: Make type param test independent of standard library version
2025-05-28 11:30:13 +01:00
Owen Mansel-Chan
6f71e3b30e
Merge pull request #19491 from owen-mc/go/add-test-flags
...
Go: Check more things while running tests
2025-05-28 10:12:05 +01:00
Tom Hvitved
78b9d8ff1d
Merge pull request #19580 from hvitved/rust/path-resolution-prelude-in-core
...
Rust: Also include prelude path resolution in Core
2025-05-28 10:52:56 +02:00
REDMOND\brodes
41f008d4f3
Crypto: Adding initial openssl tests, fixing a bug in hash modeling found through tests, and updating CODEOWNERS for quantum tests
2025-05-27 15:23:53 -04:00
Henry Mercer
6b280efd29
Merge pull request #19602 from github/post-release-prep/codeql-cli-2.21.4
...
Post-release preparation for codeql-cli-2.21.4
2025-05-27 19:56:09 +01:00
github-actions[bot]
d2c6875eac
Post-release preparation for codeql-cli-2.21.4
2025-05-27 18:16:21 +00:00
Henry Mercer
d72c766a49
Merge pull request #19601 from github/release-prep/2.21.4
...
Release preparation for version 2.21.4
2025-05-27 18:37:24 +01:00
github-actions[bot]
bfb91e95e3
Release preparation for version 2.21.4
2025-05-27 17:22:05 +00:00
Geoffrey White
5df50c0b14
Merge pull request #19470 from geoffw0/moresensitive
...
Rust: Recognize more sensitive data sources
2025-05-27 17:34:58 +01:00
Jeroen Ketema
596553233f
Merge pull request #19599 from jketema/jketema/win
...
C++: Address comments from earlier Windows MaD PRs
2025-05-27 17:13:31 +02:00
Paolo Tranquilli
ece075c214
Rust: add more macro expansion tests
2025-05-27 16:57:23 +02:00
Jeroen Ketema
ae266546a6
C++: Minor test clean up
2025-05-27 16:57:23 +02:00
Jeroen Ketema
ae67948a67
C++: Fix formatting in model files
2025-05-27 16:55:26 +02:00
Michael B. Gale
8c39f617df
Merge pull request #19598 from github/mbg/go/handle-empty-strings-in-proxy-vars
...
Go: Explicitly check whether proxy env vars are empty
2025-05-27 15:32:40 +01:00
Mathias Vorreiter Pedersen
e826b838b4
Merge pull request #19595 from MathiasVP/add-readfileex-flow-summary
...
C++: Add missing `ReadFileEx` flow summary
2025-05-27 15:22:06 +01:00
Michael B. Gale
c236084043
Go: Explicitly check whether proxy env vars are empty
2025-05-27 14:58:18 +01:00
Geoffrey White
a412ad2775
Merge pull request #19529 from geoffw0/pin
...
Rust: Model Pin
2025-05-27 14:03:08 +01: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
Arthur Baars
d018c02a78
Merge pull request #19583 from github/aibaars/lib-as-source
...
Rust: add option to extract dependencies as source files
2025-05-27 14:10:58 +02:00
Simon Friis Vindum
d92d454941
Rust: Implement type inference for overloaded operators
2025-05-27 14:02:57 +02:00
Sylwia Budzynska
e66659276b
Fix formatting
2025-05-27 13:51:03 +02:00
Michael Nebel
ef1ddd04ee
Merge pull request #19520 from michaelnebel/csharp/missedreadonly
...
C#: Improve `cs/missed-readonly-modifier` and to code-quality suite.
2025-05-27 13:50:50 +02:00
Sylwia Budzynska
8a1c323a98
Change naming to PascalCase
2025-05-27 13:45:40 +02:00
Sylwia Budzynska
55c70a4cae
Fix nitpicks
2025-05-27 13:44:21 +02:00
Mathias Vorreiter Pedersen
76c2d24a7e
C++: Add summary for ReadFileEx and accept test changes.
2025-05-27 12:41:22 +01:00
Mathias Vorreiter Pedersen
c1ee56e4c1
C++: Add ReadFileEx tests with missing flow.
2025-05-27 12:41:20 +01:00
Simon Friis Vindum
6e9a4be2bc
Rust: Add type inference test for overloaded operators
2025-05-27 13:38:57 +02:00
Mathias Vorreiter Pedersen
8595bd84a3
Merge pull request #19591 from MathiasVP/add-more-win32-flow-sources-2
...
C++: Add more Win32 flow sources
2025-05-27 12:38:19 +01:00
Simon Friis Vindum
254eabf44a
Merge pull request #19557 from paldepind/rust/type-mention-consistency
...
Rust: Only include relevant AST nodes in TypeMention
2025-05-27 13:34:48 +02:00
Sylwia Budzynska
84228e0ec8
Add Pandas SQLi sinks
2025-05-27 13:10:39 +02:00
Arthur Baars
ac724d2671
Update rust/extractor/src/main.rs
...
Co-authored-by: Simon Friis Vindum <simonfv@gmail.com >
2025-05-27 13:08:20 +02:00
Geoffrey White
257d94905d
Merge branch 'main' into pin
2025-05-27 11:46:07 +01:00
Mathias Vorreiter Pedersen
a05ddca9c9
Update cpp/ql/lib/ext/Windows.model.yml
...
Co-authored-by: Jeroen Ketema <93738568+jketema@users.noreply.github.com >
2025-05-27 11:45:35 +01:00
Mathias Vorreiter Pedersen
80229644b8
Update cpp/ql/lib/ext/Windows.model.yml
...
Co-authored-by: Jeroen Ketema <93738568+jketema@users.noreply.github.com >
2025-05-27 11:45:27 +01:00
Mathias Vorreiter Pedersen
e406f27bb3
Update cpp/ql/lib/ext/Windows.model.yml
...
Co-authored-by: Jeroen Ketema <93738568+jketema@users.noreply.github.com >
2025-05-27 11:45:18 +01:00
Simon Friis Vindum
52280625ee
Rust: Add type inference inconsistency counts to the stats summary
2025-05-27 12:43:34 +02:00
Mathias Vorreiter Pedersen
fd9adc43c2
C++: Add change note.
2025-05-27 11:38:02 +01:00
Mathias Vorreiter Pedersen
5d8bb1b5b0
C++: Add more Windows sources.
2025-05-27 11:38:00 +01:00
Jeroen Ketema
b071a462f3
Merge pull request #19563 from jketema/jketema/win-flow
...
C++: Add Windows command line and environment models
2025-05-27 12:32:51 +02:00
Jeroen Ketema
4c9c8bc37f
Merge pull request #19576 from jketema/swift-6.1.1
...
Swift: Update to Swift 6.1.1
2025-05-27 11:21:56 +02:00
Napalys Klicius
99ab144bde
Merge pull request #19578 from Napalys/js/security_quality_suite
...
JS: Explicitly Filter Quality Queries for Inclusion in `Security-and-Quality`
2025-05-27 11:00:28 +02:00
Jeroen Ketema
f4636b9ef2
Swift: Update Swift resources
2025-05-27 10:56:52 +02:00
Arthur Baars
dc7958071a
Rust: re-enable attribute macro expansion in library mode
2025-05-27 10:54:48 +02:00
Jeroen Ketema
329d451d4d
Swift: Add change note
2025-05-27 10:53:57 +02:00
Jeroen Ketema
0f2d2b7697
Merge pull request #19582 from jketema/jketema/swift-type
...
Swift: Fix type string representation
2025-05-27 10:44:41 +02:00
Geoffrey White
c97173735c
Merge pull request #19562 from geoffw0/operations3
...
Rust: Add more Operation subclasses
2025-05-27 09:26:35 +01:00
Geoffrey White
1e64f50c3c
Apply suggestions from code review
...
Co-authored-by: Simon Friis Vindum <paldepind@github.com >
2025-05-27 08:51:00 +01:00
Asger F
076e4a49d5
JS: Mark AngularJS $location as client-side remote flow source
2025-05-27 09:47:43 +02:00
Napalys Klicius
5214cc0407
Excluded ngrx, datorama, angular, react and langchain from stream pipe query.
2025-05-27 09:45:37 +02:00
Napalys Klicius
1f6b3ad929
Update javascript/ql/src/codeql-suites/javascript-security-and-quality.qls
...
Co-authored-by: Michael Nebel <michaelnebel@github.com >
2025-05-27 09:38:24 +02:00
Simon Friis Vindum
ba4950fb89
Rust: Accept test changes
2025-05-27 09:35:40 +02:00
Simon Friis Vindum
5278064407
Rust: Only include relevant AST nodes in TypeMention
2025-05-27 09:35:30 +02:00
Simon Friis Vindum
96cba8b8c2
Rust: Add inconsistency check for type mentions without a root type
2025-05-27 09:33:59 +02:00
Simon Friis Vindum
bf2cfab931
Merge pull request #19575 from paldepind/rust/function-call-method
...
Rust: Resolve function calls to traits methods
2025-05-27 09:28:36 +02:00
Paolo Tranquilli
c3af98b5cd
Rust: skip unexpanded stuff in library emission
...
This will skip all unexpanded entities in library extraction, where we
only really care about expanded things. This means skipping:
* the token tree of macro calls
* the unexpanded AST of attribute macros
In the latter case, in order to replace the single `Item` with its
expansion (which is a `MacroItems` entity), we wrap the `MacroItems` in
a dummy `MacroCall` with null path.
2025-05-27 09:09:07 +02:00
Paolo Tranquilli
b99b25cc9c
Merge pull request #19572 from github/redsun82/rust-macro
...
Rust: turn off macro expansion in code to be expanded by attribute macros
2025-05-27 08:29:20 +02:00
Arthur Baars
765afdbae0
Rust: add option to extract dependencies as source files
2025-05-26 18:21:35 +02:00
Jeroen Ketema
f17076e212
Swift: Update expected test results
2025-05-26 16:41:05 +02:00
Jeroen Ketema
b4d2fb45ab
Swift: Fix type string representation
2025-05-26 16:22:20 +02:00
Simon Friis Vindum
0ce06e8818
Rust: Use member predicate from path resolution
2025-05-26 15:12:33 +02:00
Napalys Klicius
e964b175e6
Added maintainability and error-handling tags
2025-05-26 14:23:20 +02:00
Paolo Tranquilli
a749cf934a
Rust: accept test changes
2025-05-26 14:15:56 +02:00
Tom Hvitved
ba7726462f
Rust: Also include prelude path resolution in Core
2025-05-26 12:17:25 +02:00
Paolo Tranquilli
add3c941a2
Merge branch 'main' into redsun82/rust-macro
2025-05-26 11:47:58 +02:00
Napalys Klicius
37024ade85
JS: Move query suite selector logic to javascript-security-and-quality.qls
2025-05-26 11:00:48 +02:00
Paolo Tranquilli
1005994f34
Merge branch 'main' into redsun82/rust-extract-libs
2025-05-26 10:58:22 +02:00
Anders Schack-Mulligen
a519eabd4d
Merge pull request #19571 from aschackmull/rangeanalysis/guards
...
Rangeanalysis: Simplify Guards integration.
2025-05-26 10:36:22 +02:00
Jeroen Ketema
27fd7c48fa
Swift: Update macOS runner
2025-05-26 10:17:19 +02:00
Paolo Tranquilli
292cd34efe
Rust: fix format
2025-05-26 10:11:55 +02:00
Tom Hvitved
fcfe0a27aa
Merge pull request #19570 from hvitved/type-inference/simplify-type-path-repr
...
Type inference: Simplify internal representation of type paths
2025-05-26 10:05:50 +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
Jeroen Ketema
bb9c72f889
Swift: Update to Swift 6.1.1
2025-05-25 21:13:18 +02:00
Simon Friis Vindum
e778cbe768
Rust: Resolve function calls to traits methods
2025-05-24 10:25:46 +02:00
Simon Friis Vindum
e4d1b01361
Rust: Add type inference test with function call to trait method
2025-05-24 08:56:33 +02:00
Tom Hvitved
16690cc3cc
Merge pull request #19506 from github/aibaars/rust-extract-libs
2025-05-24 06:09:50 +02:00
Arthur Baars
5b28ff1116
Merge branch 'main' into aibaars/rust-extract-libs
2025-05-23 22:05:29 +02:00
Jeroen Ketema
10f6e1ceb8
C++: Add change note
2025-05-23 19:17:17 +02:00
Jeroen Ketema
fbc9615287
C++: Update expected test results
2025-05-23 16:03:47 +02:00
Jeroen Ketema
a77ddd7532
C++: Add Windows command line and environment models
2025-05-23 15:56:09 +02:00
Jeroen Ketema
b800040c73
C++: Add tests for various local Windows dataflow sources
2025-05-23 15:55:02 +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
Mathias Vorreiter Pedersen
0822ded899
Merge pull request #19569 from MathiasVP/fix-return-value-surces-in-mad
...
Shared/C++: Handle non-standard return values in MaD flow sources/sinks
2025-05-23 13:58:26 +01:00
Paolo Tranquilli
5c294617c5
Rust: update a comment
2025-05-23 14:43:18 +02:00
Anders Schack-Mulligen
5b21188e0d
C#: Sync.
2025-05-23 14:17:21 +02: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
Tom Hvitved
c8ff69af9a
Rust: Fix bad join
2025-05-23 13:57:19 +02:00
Napalys Klicius
000e69fd48
Replaced fuzzy NonNodeStream MaD to a ql predicate to deal easier with submodules
2025-05-23 13:55:40 +02:00
Anders Schack-Mulligen
62000319fe
Rangeanalysis: Simplify Guards integration.
2025-05-23 13:39:53 +02:00
Tom Hvitved
05288d3952
Type inference: Simplify internal representation of type paths
2025-05-23 13:36:58 +02:00
Napalys Klicius
248f83c4db
Added qhelp for UnhandledStreamPipe query
2025-05-23 13:35:36 +02:00
Anders Schack-Mulligen
1b2d23b23c
Merge pull request #19567 from aschackmull/ssa/branchedge
...
SSA: Distinguish between has and controls branch edge.
2025-05-23 13:35:04 +02:00
Anders Schack-Mulligen
f4fb717a34
SSA: Add change note.
2025-05-23 12:49:01 +02:00
Mathias Vorreiter Pedersen
92e0b64307
Shared: Fix QLDoc.
2025-05-23 11:43:27 +01:00
yoff
909c1bbcd9
Merge pull request #19494 from neilmendum/actions/more-minimal-permission
...
actions: add some missing permissions
2025-05-23 12:42:10 +02:00
Anders Schack-Mulligen
893cb592b5
SSA: Elaborate qldoc a bit.
2025-05-23 12:35:30 +02:00
Napalys Klicius
c6db32ed73
Add exceptions for arktype, execa, and highland to prevent them from being flagged by unhandled pipe error query
2025-05-23 12:34:11 +02:00
Napalys Klicius
15ff7cb41a
Added more test cases which common js libraries uses .pipe()
2025-05-23 12:30:49 +02:00
Mathias Vorreiter Pedersen
cf39103df3
C++: Accept test changes.
2025-05-23 11:19:25 +01:00
Mathias Vorreiter Pedersen
07c4eca4d8
C++: Implement the new predicate for C++.
2025-05-23 11:16:49 +01:00
Mathias Vorreiter Pedersen
69ea19cb8b
Shared: Add a 'getReturnValueKind' predicate and use it in 'interpretOutput' and 'interpretInput' to handle non-standard return value input/output. This is needed to support C++'s ReturnValue[**] notation.
2025-05-23 11:16:29 +01:00
Paolo Tranquilli
01e22b7266
Rust: remove wrong comment
2025-05-23 12:01:50 +02:00
Paolo Tranquilli
5183d1610f
Rust: enhance macro expansion integration test
2025-05-23 12:01:33 +02:00
Paolo Tranquilli
31b48e18e6
Rust: fix BadCtorInitialization test
2025-05-23 12:01:14 +02:00
Paolo Tranquilli
abf21ba767
Rust: skip macro expansion in unexpanded attribute macro AST
2025-05-23 12:01:00 +02:00
Paolo Tranquilli
32cece3a43
Rust: adapt BadCtorInitialization.ql to attribute macro expansion
2025-05-23 12:00:42 +02:00
Joe Farebrother
f27057a747
Update qhelp
2025-05-23 10:56:43 +01:00
Arthur Baars
23b4e5042f
Rust: update expected output
2025-05-23 11:18:23 +02:00
Arthur Baars
b62d52ede0
Rust: prevent source files from being extracted in both source and library mode
...
When analysing a repository with multiple separate but related sub-projects there is a
risk that some source file are extracted in library mode as well as source mode.
To prevent this we pre-fill 'processed_files' set with all source files, even though they have
not be processed yet, but are known to be processed later..
This prevents source file to be
2025-05-23 10:35:16 +02:00
Anders Schack-Mulligen
1d30103559
SSA: Distinguish between has and controls branch edge.
2025-05-23 09:56:22 +02:00
Michael Nebel
c046a306ba
Merge pull request #19566 from github/workflow/coverage/update
...
Update CSV framework coverage reports
2025-05-23 08:45:06 +02:00
Arthur Baars
df99e06c81
Rust: temporarily disable attribute macro expansion in library mode
2025-05-23 07:47:31 +02:00
github-actions[bot]
372d1c68a4
Add changed framework coverage reports
2025-05-23 00:23:59 +00:00
Nicolas Will
47ffa3cedf
Merge pull request #19553 from bdrodes/generic_constant_filtering
...
Crypto: Improve literal filtering for OpenSSL for algorithms and generic sources
2025-05-23 00:34:45 +02:00
Owen Mansel-Chan
fb92999f8a
Add bigquery to frameworks.csv
...
Also fix up github.com/kanikanema/gorqlite
2025-05-22 22:02:20 +01:00
REDMOND\brodes
007683f06a
Crypto: Simplifying constant comparisons.
2025-05-22 14:06:13 -04:00
REDMOND\brodes
28f48246fc
Crypto: Adding signature constant support, and fixing key exchange and signature mapping for ED and X elliptic curve variants.
2025-05-22 13:13:35 -04:00
REDMOND\brodes
ca1d4e270a
Crypto: Separating out an IntLiteral class so it is clearer that some constraints for generic input sources are heuristics to filter sources, and other constraints narrow the literals to a general type (ints). Also adding fixes in KnownAlgorithmConstants to classify some algorithms as key exchange and signature correctly, and added support for a signature constant wrapper.
2025-05-22 12:53:11 -04:00
Napalys Klicius
b10a9481f3
Fixed false positives from strapi and rxjs/testing as well as when one passes function as second arg to pipe
2025-05-22 18:50:02 +02:00
Napalys Klicius
e6ae8bbde4
Added test cases where second parameter passed to pipe is a function and some popular library ones
2025-05-22 18:50:01 +02:00
Napalys Klicius
ac24fdd348
Add predicate to detect non-stream-like usage in sources of pipe calls
2025-05-22 18:49:59 +02:00
Napalys Klicius
5b1af0c0bd
Added detection of custom gulp-plumber sanitizer, thus one would not flag such instances.
2025-05-22 18:49:53 +02:00
Geoffrey White
9ac24c7f4f
Merge branch 'main' into moresensitive
2025-05-22 16:11:12 +01:00
Geoffrey White
09dd00089b
Merge pull request #19546 from geoffw0/logsinks
...
Rust: Models for log_err
2025-05-22 16:06:26 +01:00
REDMOND\brodes
570fdeb254
Crypto: Code Cleanup (+1 squashed commits)
...
Squashed commits:
[417734cc3c] Crypto: Fixing typo (+1 squashed commits)
Squashed commits:
[1ac3d5c7d4] Crypto: Fixing typo caused by AI auto complete.
2025-05-22 10:52:19 -04:00
REDMOND\brodes
a5b57d3694
Merge branch 'main' into generic_constant_filtering
...
# Conflicts:
# cpp/ql/lib/experimental/quantum/Language.qll
# cpp/ql/lib/experimental/quantum/OpenSSL/AlgorithmInstances/KnownAlgorithmConstants.qll
# cpp/ql/lib/experimental/quantum/OpenSSL/OpenSSL.qll
2025-05-22 10:37:10 -04:00
REDMOND\brodes
09170e598c
Crypto: Making generic literal filter more explicit that it is for filtering all constants, not just for algorithms.
2025-05-22 10:31:58 -04:00
Geoffrey White
dc280c6fb7
Rust: Add missing assignment class relations.
2025-05-22 15:23:29 +01:00
Owen Mansel-Chan
46a6b8ad07
Add change note
2025-05-22 15:21:51 +01:00
Owen Mansel-Chan
66bbaf2dc8
Add tests for cloud.google.com/go/bigquery.Client.Query
2025-05-22 15:16:12 +01:00
Owen Mansel-Chan
c0187aff73
Add model for cloud.google.com/go/bigquery.Client.Query
2025-05-22 15:15:54 +01:00
Owen Mansel-Chan
663c83d8c6
Merge pull request #19556 from owen-mc/java/pr/19512
...
Java: Fix SpringRequestMappingMethod URL Extraction #2
2025-05-22 15:08:31 +01:00
Owen Mansel-Chan
8b68d95231
Merge pull request #19560 from owen-mc/java/add-stringreplaceallwithnonregex-test
...
Java: Add test showing correct usage
2025-05-22 15:07:58 +01:00
Paolo Tranquilli
4995137145
Merge pull request #19550 from github/redsun82/git-ignore-db-upgrade-checks-files
...
DevEx: add temporary files created by some checks to `.gitignore`
2025-05-22 15:32:02 +02:00
Owen Mansel-Chan
79453cc103
Add test showing correct usage
2025-05-22 14:30:32 +01:00
Owen Mansel-Chan
476ada13db
Improve QLDoc for SpringRequestMappingMethod.getAValue
2025-05-22 14:22:28 +01:00
Michael Nebel
4c818c00f3
Merge pull request #19480 from michaelnebel/csharp/updatemodels
...
C#: Re-generate .NET 9 Runtime models.
2025-05-22 15:04:53 +02:00
Paolo Tranquilli
38c5c65927
Merge pull request #19558 from jketema/swift-clarify
...
Swift: Clarify the tag in the Swift updating doc
2025-05-22 15:01:02 +02:00
Geoffrey White
b22ce5515f
Rust: Make RefExpr an Operation.
2025-05-22 13:52:13 +01:00
Geoffrey White
b8f0e4d7e0
Rust: Use DerefExpr.
2025-05-22 13:52:08 +01:00
Geoffrey White
6c19cecb07
Rust: Add DerefExpr class.
2025-05-22 13:50:30 +01:00
Geoffrey White
fafdc1d181
Rust: Add BitwiseOperation library.
2025-05-22 13:50:29 +01:00
Geoffrey White
11480d29b7
Rust: Add ArithmeticOperation library.
2025-05-22 13:50:24 +01:00
Paolo Tranquilli
7e917c9c35
Rust: move body skipping logic to code generation
2025-05-22 14:44:42 +02:00
Jeroen Ketema
b8fe1a676a
Swift: Clarify the tag in the Swift updating doc
2025-05-22 14:43:17 +02:00
Geoffrey White
d27596a0b2
Merge pull request #19535 from geoffw0/operations2
...
Rust: Add ComparisonOperation library.
2025-05-22 13:41:53 +01:00
Simon Friis Vindum
c4bbfbc865
Merge pull request #19555 from paldepind/rust/timpl
...
Rust: Remove unused impl type
2025-05-22 13:54:15 +02:00
Arthur Baars
a4788fd816
Rust: update expected output
2025-05-22 13:36:38 +02:00
Owen Mansel-Chan
45475c5c1d
Add change note
2025-05-22 12:29:31 +01:00
Owen Mansel-Chan
59d4f039d8
Deprecate SpringRequestMappingMethod.getValue (which didn't work)
2025-05-22 12:29:29 +01:00
Owen Mansel-Chan
708bbe391e
Add test for SpringRequestMappingMethod.getAValue
2025-05-22 12:22:34 +01:00
Owen Mansel-Chan
775338ebdd
Rename getArrayValue to getAValue
2025-05-22 12:21:20 +01:00
Asger F
9202a1b084
Merge pull request #19516 from asgerf/js/npm-package-name-join
...
JS: More efficient nested package naming
2025-05-22 12:46:43 +02:00
Napalys Klicius
b1048719aa
Added UnhandledStreamPipe to javascript-security-and-quality.qls and javascript-code-quality.qls
2025-05-22 12:42:56 +02:00
Napalys Klicius
09220fce84
Fixed issue where pipe calls from rxjs package would been identified as pipe calls on streams
2025-05-22 12:33:36 +02:00
Napalys Klicius
d7f86db76c
Enhance PipeCall to exclude non-function and non-object arguments in pipe method detection
2025-05-22 12:31:27 +02:00
Napalys Klicius
4332de464a
Eliminate false positives by detecting non-stream objects returned from pipe() calls based on accessed properties
2025-05-22 12:31:26 +02:00
Napalys Klicius
5710f0cf51
Add test cases for non-stream field accesses and methods before and after pipe operations
2025-05-22 12:31:19 +02:00
Geoffrey White
852203911a
Rust: Equal -> Equals.
2025-05-22 11:13:56 +01:00
Arthur Baars
7e5f6523c5
Rust: disable ResolvePaths when extracting library source files
2025-05-22 11:35:54 +02:00
Tom Hvitved
76737cb53a
Rust: Follow-up changes after rebase
2025-05-22 10:22:03 +02:00
Simon Friis Vindum
36f5e78a7e
Rust: Remove unused impl type
2025-05-22 10:17:44 +02:00
Joe Farebrother
7b452a1611
Add case for wrappers
2025-05-22 09:01:15 +01:00
Arthur Baars
28be2086ad
Rust: drop too noisy log statements
2025-05-22 09:53:43 +02:00
Arthur Baars
a6cd60f20e
Rust: address comments
2025-05-22 09:53:41 +02:00
Arthur Baars
fa1a21b20d
Rust: reduce log-level of diagnostics when extracting library files
2025-05-22 09:53:39 +02:00
Arthur Baars
2a93b2a499
Rust: integration-tests: update output
2025-05-22 09:53:37 +02:00
Arthur Baars
1eaa491f39
Rust: update integration tests
2025-05-22 09:53:36 +02:00
Arthur Baars
c69aa224c7
Rust: restrict to library files
2025-05-22 09:53:34 +02:00
Tom Hvitved
9ee0d2e6cf
Rust: Exclude flow summary nodes from DataFlowStep.ql
2025-05-22 09:53:32 +02:00
Arthur Baars
f093c496d5
Rust: normalize file paths for PathResolutionConsistency.ql
2025-05-22 09:53:31 +02:00
Arthur Baars
81f0e4202a
Rust: improve ExtractionConsistency.ql
2025-05-22 09:53:29 +02:00
Arthur Baars
76da2e41f7
Rust: drop crate_graph/modules.ql test
2025-05-22 09:53:28 +02:00
Arthur Baars
e90ab7b881
Rust: fix diagnostics tests
2025-05-22 09:53:27 +02:00
Arthur Baars
457632e10e
Rust: update UncontrolledAllocationSize.expected
2025-05-22 09:53:24 +02:00
Arthur Baars
5ee7658921
Rust: update DataFlowStep.expected
2025-05-22 09:53:23 +02:00
Arthur Baars
3761099de9
Rust: drop Param::pat when extracting libraries
2025-05-22 09:53:21 +02:00
Arthur Baars
67846f1d50
fixup TestUtils
2025-05-22 09:53:18 +02:00
Arthur Baars
643059ed34
Rust: fix type-interence file paths
2025-05-22 09:53:13 +02:00
Arthur Baars
44a404571f
Rust: fixes
2025-05-22 09:53:12 +02:00
Tom Hvitved
456a4b2be8
Rust: Make dataflow/modeled pass by not using #[derive(Clone)]
2025-05-22 09:53:09 +02:00
Arthur Baars
1269a2e8a0
Rust: fix extractor-tests
2025-05-22 09:53:08 +02:00
Tom Hvitved
8996f9e61c
Rust: Follow-up work to make path resolution and type inference tests pass again
2025-05-22 09:53:03 +02:00
Arthur Baars
0bb0a70fb7
Rust: add upgrade/downgrade scripts
2025-05-22 09:52:11 +02:00
Arthur Baars
980cebeef8
Rust: fix QL code after removing Crate::getModule()
2025-05-22 09:52:08 +02:00
Arthur Baars
f05bed685d
Rust: remove module data from Crate elements
2025-05-22 09:51:34 +02:00
Arthur Baars
dd5c487628
Rust: extract source files of depdendencies
2025-05-22 09:51:33 +02:00
Michael Nebel
bae16f07ff
C#: Change note.
2025-05-22 08:42:37 +02:00
Tom Hvitved
cb59795474
Merge pull request #19134 from hvitved/rust/canonical-path
...
Rust: Compute canonical paths in QL
2025-05-22 08:38:31 +02:00
REDMOND\brodes
100045d4cb
Crypto: optimizing out the "getPossibleNidFromLiteral" predicate, and now relying on the charpred of OpenSSLAlgorithmCandidateLiteral.
2025-05-21 18:25:29 -04:00
REDMOND\brodes
a36fd2cb31
Crypto: Advanced literal filtering for OpenSSL, used for both unknown and known algorithm literals to improve dataflow performance.
2025-05-21 18:15:44 -04:00
Owen Mansel-Chan
463a711552
Use reflection for interface nil check instead
2025-05-21 22:22:10 +01:00
Nicolas Will
bb4c6a316e
Merge pull request #19552 from bdrodes/ben_refactoring
...
Crypto: Misc. refactoring and code clean up.
2025-05-21 22:24:12 +02:00
REDMOND\brodes
d75fc2e8ec
Crypto: Further code cleanup
2025-05-21 15:25:04 -04:00
Ben Rodes
5370bb4e45
Merge branch 'main' into ben_refactoring
2025-05-21 15:07:53 -04:00
REDMOND\brodes
bbee2c9bdf
Crypto: Misc. refactoring and code clean up.
2025-05-21 15:06:46 -04:00
Tom Hvitved
41e4adaf5d
Merge pull request #19534 from hvitved/rust/type-inference-performance
...
Rust: Improve performance of type inference
2025-05-21 20:56:52 +02:00
Nicolas Will
9cc121f414
Merge pull request #19545 from bdrodes/missing_openssl_hash_algorithm_consumers
...
Quantum: Model missing OpenSSL EVP digest consumers
2025-05-21 19:03:06 +02:00
Nicolas Will
9637aeca5e
Merge pull request #19547 from bdrodes/openssl_pkey_alg_value_consumers
...
Quantum: Add OpenSSL PKEY algorithm value consumers.
2025-05-21 19:00:36 +02:00
Geoffrey White
3551d4488f
Merge branch 'main' into logsinks
2025-05-21 17:40:06 +01:00
Geoffrey White
355864dd93
Merge branch 'main' into pin
2025-05-21 17:24:00 +01:00
Nicolas Will
acb19627d6
Merge branch 'main' into missing_openssl_hash_algorithm_consumers
2025-05-21 18:01:28 +02:00
REDMOND\brodes
9f65cb8c4c
Comment/doc cleanup
2025-05-21 11:51:25 -04:00
Simon Friis Vindum
1828d408b7
Merge pull request #19549 from paldepind/rust/type-inference-operators
...
Rust: Type inference for non-overloadable operators
2025-05-21 17:25:44 +02:00
Nicolas Will
48e484b438
Apply suggestions from code review
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-05-21 16:26:11 +02:00
Nicolas Will
7ee1bd61fb
Merge pull request #19541 from bdrodes/openssl_ec_key_gen
...
Openssl ec key gen
2025-05-21 16:13:05 +02:00
Michael Nebel
008d5b7081
C#: Update test expected output.
2025-05-21 15:20:15 +02:00
Michael Nebel
19e9197874
C#: The field access should be on this for it to be compatible with readonly.
2025-05-21 15:19:26 +02:00
Michael Nebel
8108c72c17
C#: Exclude structs from being flagged in cs/missed-readonly-modifier.
2025-05-21 15:19:25 +02:00
Michael Nebel
28cd8a827a
C#: Add more test examples for cs/missing-readonly-modifier.
2025-05-21 15:18:32 +02:00
Geoffrey White
f660bcdd25
Merge pull request #19446 from geoffw0/tokio
...
Rust: Model std::net and tokio `fs`, `io`, `net`
2025-05-21 13:42:33 +01:00
Paolo Tranquilli
be44c6ed45
DevEx: add temporary files created by some checks to .gitignore
2025-05-21 14:19:57 +02:00
Tom Hvitved
13861b81a8
Address review comments
2025-05-21 14:10:32 +02:00
Anders Schack-Mulligen
00c7bc1e70
Merge pull request #19505 from aschackmull/java/basicblock
...
Java: Use the shared BasicBlocks library.
2025-05-21 13:37:19 +02:00
Simon Friis Vindum
666726c935
Rust: Infer types for non-overloadable operators
2025-05-21 13:03:23 +02:00
Simon Friis Vindum
fafae89502
Rust: Add unit type
2025-05-21 13:03:22 +02:00
Simon Friis Vindum
0dcf15bf77
Rust: Add type inference tests for operators
2025-05-21 13:03:16 +02:00
Geoffrey White
4ebf3adfdf
Rust: Address review comments.
2025-05-21 11:02:48 +01:00
Joe Farebrother
bedd44a287
Update query and add case for iter(self.__next__, None)
2025-05-21 11:02:24 +01:00
Napalys Klicius
03d1f9a7d3
Restrict pipe detection to calls with 1-2 arguments
2025-05-21 11:41:22 +02:00
Napalys Klicius
30f2815503
Fixed issue where a custom pipe method which returns non stream would be flagged by the query
2025-05-21 11:41:19 +02:00
Napalys Klicius
ef1bde554a
Fixed issue where streams would not be tracked via chainable methods
2025-05-21 11:40:35 +02:00
Napalys Klicius
f39bf62fc6
test: Add edge cases for stream pipe error handling
...
Add tests for chained stream methods and non-stream pipe objects
2025-05-21 11:39:03 +02:00
Napalys Klicius
c27157f021
Add UnhandledStreamPipee Quality query and tests to detect missing error handlers in Node.js streams
2025-05-21 11:38:57 +02:00
Michael Nebel
3a1cd3f734
C#: Add cs/missed-readonly-modifier to the code-quality suite.
2025-05-21 11:34:40 +02:00
Michael Nebel
5941b3081c
C#: Convert tests for cs/missed-readonly-modifier to inline expectatations.
2025-05-21 11:34:38 +02:00
Geoffrey White
053da5530f
Rust: Accept test changes after merge with main.
2025-05-21 10:17:14 +01:00
Michael Nebel
2952c0d2b4
Merge pull request #19507 from michaelnebel/removehardcodedpassword
...
Exclude some queries from query suites by lowering their precision.
2025-05-21 11:13:14 +02:00
Geoffrey White
b89560878e
Merge branch 'main' into logsinks
2025-05-21 09:22:25 +01:00
Geoffrey White
95289b8fc8
Merge branch 'main' into operations2
2025-05-21 09:18:51 +01:00
Geoffrey White
ea9531f3ea
Merge branch 'main' into tokio
2025-05-21 09:17:45 +01:00
Paolo Tranquilli
789e881254
Merge pull request #19542 from github/redsun82/rust-ignore-target-in-qltest
...
Rust: ignore `target` in `qltest`
2025-05-21 09:32:48 +02:00
Tom Hvitved
93c8507ebc
Rust: Run codegen
2025-05-21 09:22:09 +02:00
Tom Hvitved
b7f8b79f0e
Rust: Calculate canonical paths in QL
2025-05-21 09:22:07 +02:00
Anders Schack-Mulligen
10efea1075
Java/Shared: Address review comments.
2025-05-21 09:01:47 +02:00
Anders Schack-Mulligen
3fde675d08
Java: Extend qldoc.
2025-05-21 09:01:47 +02:00
Anders Schack-Mulligen
a98d93b98b
Java: Override dominates to reference the right type.
2025-05-21 09:01:46 +02:00
Anders Schack-Mulligen
6b830faa62
Java: Add change note.
2025-05-21 09:01:46 +02:00
Anders Schack-Mulligen
db01828717
Java: Deprecate redundant basic block predicates.
2025-05-21 09:01:46 +02:00
Anders Schack-Mulligen
13c5906e7e
Shared: Refactor the shared BasicBlock lib slightly and cache the successor relation.
2025-05-21 09:01:45 +02:00
Anders Schack-Mulligen
f202586f5e
Java: Use the shared BasicBlocks library.
2025-05-21 09:01:45 +02:00
REDMOND\brodes
6ffb049b75
Crypto: Adding alg value consumers for EVP PKEY for openssl. As part of the additional modeling, updated the generic dataflow source to match JCA with how "EC" is handled as a consumed algorithm for PKEY.
2025-05-20 14:18:33 -04:00
Geoffrey White
e96e39c3d3
Rust: Model log_err.
2025-05-20 17:51:15 +01:00
Geoffrey White
e5af459787
Rust: Correct what we're testing here.
2025-05-20 17:30:49 +01:00
REDMOND\brodes
d35fc64987
Crypto: Missing openssl EVP digest consumers.
2025-05-20 11:23:27 -04:00
Ben Rodes
efd9386d6e
Update cpp/ql/lib/experimental/quantum/OpenSSL/Operations/ECKeyGenOperation.qll
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-05-20 10:58:19 -04:00
REDMOND\brodes
c3ed4549f4
Crypto: Changing fixed key size for the key gen operation for EC key gen to be none, and rely implicitly on the connected algorithm length. (+1 squashed commits) (+1 squashed commits)
...
Squashed commits:
[b7cd7baa42] Crypto: Modeled EC key gen for openssl. (+1 squashed commits)
2025-05-20 10:39:21 -04:00
REDMOND\brodes
b56472436e
Crypto: Alterations to OpenSSL cipher algorithms to use new fixed keysize predicate.
2025-05-20 10:36:56 -04:00
Paolo Tranquilli
799c39bc9b
Rust: ignore target in qltest
...
The target file created by `cargo check` was causing problems in
language tests.
We might want to also ignore `target` by default in the production
indexing, but I'll leave that for further discussion.
2025-05-20 16:30:05 +02:00
Geoffrey White
355e440fdf
Rust: Make the new test cases work.
2025-05-20 15:25:14 +01:00
Geoffrey White
3b40a5875a
Rust: Add test cases (generated by LLM).
2025-05-20 15:21:32 +01:00
Asger F
d644f80921
JS: Remove obsolete meta query
2025-05-20 16:20:49 +02:00
Simon Friis Vindum
c68579bd0d
Merge pull request #19499 from paldepind/rust-bulk-model-generator
...
Rust: Bulk model generator
2025-05-20 15:30:16 +02:00
Tamás Vajk
1baf6d67fc
Merge pull request #19536 from tamasvajk/test/sdk-version
...
C#: Update SDK version in integration test
2025-05-20 14:36:34 +02:00
Owen Mansel-Chan
83cd349531
Change variable name and add comment
2025-05-20 13:13:26 +01:00
Owen Mansel-Chan
47dac64301
fix previous commit
2025-05-20 13:13:25 +01:00
Owen Mansel-Chan
d5044fd072
Deal better with Windows paths
2025-05-20 13:13:24 +01:00
Owen Mansel-Chan
401c60654e
Fix nil checks to stop creating unused labels
...
In go, an interface with value nil does not compare equal to nil. This
is known as "typed nils". So our existing nil checks weren't working,
which shows why we needed more nil checks inside the type switches. The
solution is to explicitly check for each type we care about.
2025-05-20 13:13:22 +01:00
Owen Mansel-Chan
d39e7c2066
Added named import to definitions test
...
This makes the test slightly more thorough.
2025-05-20 13:13:21 +01:00
Owen Mansel-Chan
14af9218b2
Check more things while running tests
2025-05-20 13:13:20 +01:00
Tamas Vajk
72730368f6
Update SDK version in integration test
2025-05-20 13:47:12 +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
Geoffrey White
bfb15cd88f
Rust: Accept changes to other tests.
2025-05-20 11:13:00 +01:00
Geoffrey White
204260e244
Rust: Uncomment calls to test functions.
2025-05-20 10:59:23 +01:00
Geoffrey White
bd004abeae
Rust: Remove redundant import.
2025-05-20 10:35:41 +01:00
Geoffrey White
0feade467d
Update rust/ql/lib/codeql/rust/elements/ComparisonOperation.qll
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-05-20 10:35:02 +01:00
Geoffrey White
2b65eebbc8
Rust: QLDoc.
2025-05-20 10:33:42 +01:00
Geoffrey White
ca1437adf1
Rust: Move the getGreaterOperand/getLesserOperand predicates into RelationalOperation.
2025-05-20 10:19:11 +01:00
Geoffrey White
bc4b69bb93
Rust: Add ComparisonOperation library.
2025-05-20 10:07:48 +01:00
Tom Hvitved
3fa4ea4da3
Rust: Improve performance of type inference
2025-05-20 10:23:18 +02:00
Paolo Tranquilli
860b3d76a8
Merge pull request #19525 from github/redsun82/go-win
...
Go: move to standard windows runner
2025-05-20 10:07:56 +02:00
Simon Friis Vindum
5f524ef39f
Merge pull request #19372 from paldepind/rust-ti-implementing-type-method
...
Rust: Support non-universal `impl` blocks
2025-05-20 10:03:55 +02:00
Simon Friis Vindum
eb5d4efb26
Merge branch 'main' into rust-ti-implementing-type-method
2025-05-20 09:53:51 +02:00
Simon Friis Vindum
98c6783ed9
Rust: Rename predicate and inline predicate only used once
2025-05-20 09:20:35 +02:00
Owen Mansel-Chan
f6f6a5ccc6
Only list type params in test files
...
This will make the test results not depend on the version of the
standard library being used, which means we don't have to update it with
each new release.
2025-05-20 02:25:24 +01:00
Jon Janego
9d65b5f85c
Merge pull request #19531 from github/changedocs-2.21.3
...
Changenotes for 2.21.3
2025-05-19 19:00:47 -05:00
Jon Janego
7570f503ce
Escaping more problematic asterisks
2025-05-19 17:06:29 -05:00
Jon Janego
e5efe83243
Fixing upstream backticks around problematic characters so that the RST generator doesn't choke on asterisks
2025-05-19 17:03:23 -05:00
Jon Janego
759ad8adc1
Fixing Go 1.24 release accuracy. It went supported in 2.20.5 and docs were a late commit so this fixes it upstream.
2025-05-19 16:53:05 -05:00
Jon Janego
b9841dccfb
Fixing more upstream typos
2025-05-19 16:45:08 -05:00
Jon Janego
3bd2f85a8e
Fixing some upstream typos etc
2025-05-19 16:33:45 -05:00
Nicolas Will
a01d5e6fa7
Merge pull request #19528 from bdrodes/openssl_elliptic_curve_algorithm_instances_and_consumers
...
Crypto: Add OpenSSL elliptic curve algorithm instances and consumers
2025-05-19 23:12:30 +02:00
Geoffrey White
94b57ac9a9
Update rust/ql/test/library-tests/dataflow/modeled/main.rs
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-05-19 21:49:02 +01:00
Ben Rodes
55119cf770
Merge branch 'main' into openssl_elliptic_curve_algorithm_instances_and_consumers
2025-05-19 15:50:00 -04:00
REDMOND\brodes
4309499c36
Switching to private imports.
2025-05-19 15:44:15 -04:00
Jon Janego
fce5b4d43e
Changedocs for 2.21.3
2025-05-19 13:55:45 -05:00
Nicolas Will
878039926c
Merge pull request #19521 from bdrodes/openssl_intermediate_digest_operations
...
Crypto: Model OpenSSL intermediate digest operations
2025-05-19 20:49:13 +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
REDMOND\brodes
03a6e134ba
Crypto: Removed dead comment.
2025-05-19 13:51:42 -04:00
REDMOND\brodes
e5641eff23
Crypto: Typo fix
2025-05-19 13:50:41 -04:00
REDMOND\brodes
3e54e4d6b6
Crypto: Fixing typo.
2025-05-19 13:49:29 -04:00
REDMOND\brodes
d05d38f00c
Crypto: Removing unused class field.
2025-05-19 13:48:15 -04:00
Geoffrey White
ebd75a118b
Rust: Add models for std::Pin.
2025-05-19 18:38:50 +01:00
Geoffrey White
533aa7fc26
Rust: Add tests for std::Pin.
2025-05-19 18:38:20 +01:00
REDMOND\brodes
bbbdf89e46
Crypto: OpenSSL ellipitic curve algorithm instances and consumers.
2025-05-19 13:10:11 -04:00
REDMOND\brodes
e7535b3eff
Crypto: Updating JCA to use new key size predicate returning int for elliptic curve.
2025-05-19 13:09:33 -04:00
Paolo Tranquilli
e6235a57e7
Merge pull request #19523 from jketema/swift-doc2
...
Swift: Mention Swift 6.1 support in the supported compilers doc
2025-05-19 17:37:16 +02:00
Paolo Tranquilli
7c70f5d8e4
Go: move to standard windows runner
...
Seems like `windows-latest-xl` is not available any more. This should unblock CI, but longer term we should consider doing what other languages do (i.e. run tests from the internal repo).
2025-05-19 17:24:58 +02:00
Jeroen Ketema
48e97a2e4a
Swift: Mention Swift 6.1 support in the supported compilers doc
2025-05-19 16:59:08 +02:00
REDMOND\brodes
309ad461a5
Quantum/Crypto: Adding Random.qll for OpenSSL into the general imports for the OpenSSL.qll model.
2025-05-19 10:56:17 -04:00
REDMOND\brodes
74271e4a17
Quantum/Crypto: To avoid ambiguity, altered OpenSSL EVP_Update_Call and EVP_Final_Call used for ciphers to explicitly say "Cipher", e.g., EVP_Cipher_Update_Call. This is also consistent with the new analogous digest operations.
2025-05-19 10:44:39 -04:00
REDMOND\brodes
97124745ad
Quantum/Crypto:Adding interemediate hashing to the openssl (e.g., modeling final and update digest separately).
2025-05-19 10:43:32 -04:00
Simon Friis Vindum
654d410485
Rust: Address PR feedback
2025-05-19 15:50:29 +02:00
Simon Friis Vindum
f4ff815253
Rust: Add additional type inference tests
2025-05-19 15:12:38 +02:00
Jeroen Ketema
dfbe08d14c
Merge pull request #19518 from jketema/depr
...
C++/Swift: delete outdated deprecations
2025-05-19 14:39:13 +02:00
Mathias Vorreiter Pedersen
adb74105fd
Merge pull request #19511 from MathiasVP/as-expr-array-aggregate-literal
...
C++: Make `node.asExpr() instanceof ArrayAggregateLiteral` satisfiable
2025-05-19 12:47:28 +01:00
Napalys Klicius
673655e093
added change notes
2025-05-19 13:29:40 +02:00
Napalys Klicius
703aec1990
cpp: removed now unused predicate commandLineArg
2025-05-19 13:27:26 +02:00
Napalys Klicius
c74321a2ee
all: used Erik's script to delete outdated deprecations
2025-05-19 13:26:08 +02:00
Geoffrey White
b503b1ef6c
Rust: Prefer getExpr() over getAstNode().
2025-05-19 12:09:27 +01:00
Geoffrey White
4bbdc9a1cd
Rust: Simplify SensitiveData.qll.
2025-05-19 12:08:53 +01:00
Geoffrey White
65456b5cf0
Merge branch 'main' into moresensitive
2025-05-19 11:54:46 +01:00
Asger F
317e61d370
JS: Update UnresolvableImports to handle nested packages
2025-05-19 12:53:19 +02:00
Asger F
1e8a49f311
JS: More efficient nested package naming
2025-05-19 12:53:18 +02:00
Jeroen Ketema
93517020ae
Merge pull request #19515 from jketema/depr-rewrite
...
C++: Do not use deprecated `hasLocationInfo` in `FlowTestCommon`
2025-05-19 12:43:50 +02:00
Geoffrey White
d20a602aab
Rust: Accept consistency check failures.
2025-05-19 11:07:37 +01:00
Geoffrey White
b58b2500ee
Merge branch 'main' into tokio
2025-05-19 10:42:28 +01:00
Jeroen Ketema
757a4877e0
C++: Do not use deprecated hasLocationInfo in FlowTestCommon
2025-05-19 11:10:29 +02:00
Jeroen Ketema
df28e3bc8b
Merge pull request #19510 from GeekMasher/cpp-wmain
...
C/CPP: Update FlowSources to add wmain
2025-05-19 10:33:35 +02:00
Mathew Payne
9d2b46e3cd
Merge branch 'main' into cpp-wmain
2025-05-19 08:52:56 +01:00
Michael Nebel
dabeddb62d
Add change-notes.
2025-05-19 09:26:49 +02:00
Michael Nebel
530025b7ae
Update integration tests expected output.
2025-05-19 09:26:47 +02:00
Michael Nebel
03ecd24469
Lower the precision of a range of harcoded password queries to remove them from query suites.
2025-05-19 09:26:45 +02:00
sentient0being
f575d2f941
get array string url
2025-05-17 19:40:41 +08:00
Mathias Vorreiter Pedersen
ff11aaf2bb
C++: Accept query test 'toString' improvements.
2025-05-16 21:01:55 +01:00
Mathias Vorreiter Pedersen
0eb55779fb
C++: Add change note.
2025-05-16 20:30:21 +01:00
Mathias Vorreiter Pedersen
ced1d580df
C++: Accept test changes.
2025-05-16 20:14:10 +01:00
Mathias Vorreiter Pedersen
8e005a65bf
C++: Fix missing 'asExpr' for array aggregate literals.
2025-05-16 20:12:58 +01:00
Mathew Payne
bbce0d0c65
Update cpp/ql/lib/semmle/code/cpp/security/FlowSources.qll
...
Co-authored-by: Jeroen Ketema <93738568+jketema@users.noreply.github.com >
2025-05-16 18:55:00 +01:00
GeekMasher
94fe9b692f
feat(cpp): Add change notes
2025-05-16 18:35:50 +01:00
Mathias Vorreiter Pedersen
d7e07b0b2d
Merge pull request #19492 from MathiasVP/add-cpp-models
...
C++: Add summary models for `openssl` and `sqlite`
2025-05-16 18:33:56 +01:00
Mathew Payne
c79a724f5d
feat(cpp): Update FlowSources to add wmain
2025-05-16 18:21:44 +01:00
Nicolas Will
30e2c44cdb
Merge pull request #19509 from bdrodes/openssl_cipher_update
...
Quantum: Expand OpenSSL cipher modeling and fix JCA false reporting of intermediate calls
2025-05-16 18:54:26 +02:00
REDMOND\brodes
dbd66e64c6
Fixing bug in JCA cipher modeling. intermediate operations should not be key operations.
2025-05-16 11:23:42 -04:00
REDMOND\brodes
34f5e4e0c8
Adding cipher update modeling (model flow through update to final)
2025-05-16 11:23:19 -04:00
Jeroen Ketema
5db797ec88
Merge pull request #19508 from jketema/options
...
C++: Minor cleanup of qltest options
2025-05-16 15:46:35 +02:00
Mathias Vorreiter Pedersen
f82f1c84f3
C++: Accept test changes.
2025-05-16 14:14:46 +01:00
Jeroen Ketema
55f8cb7935
C++: Drop --clang_vector_types option
...
The types are already enabled through the specfied gcc version.
2025-05-16 15:12:06 +02:00
Jeroen Ketema
9d5a465e9d
C++: Remove unused options file
2025-05-16 15:11:40 +02:00
Mathias Vorreiter Pedersen
1d31a38362
C++: Regenerate the models for OpenSSL and sqlite after excluding tests in model-generation (sqlite is unaffected).
2025-05-16 13:53:16 +01:00
Mathias Vorreiter Pedersen
03d6633d41
Merge pull request #19501 from MathiasVP/as-expr-class-aggregate-literal
...
C++: Make `node.asExpr() instanceof ClassAggregateLiteral` satisfiable
2025-05-16 13:49:03 +01:00
Taus
579cf4a65a
Merge pull request #19424 from github/tausbn/python-extract-hidden-file-by-default
...
Python: Extract files in hidden dirs by default
2025-05-16 14:43:47 +02:00
Mathias Vorreiter Pedersen
3df647f205
C++: Add change note.
2025-05-16 13:37:07 +01:00
Mathias Vorreiter Pedersen
bebc077c9e
C++: Accept test changes.
2025-05-16 13:37:02 +01:00
Mathias Vorreiter Pedersen
560ffc0e9b
C++: Regenerate the models for OpenSSL and sqlite after model-generation changes.
2025-05-16 13:33:59 +01:00
Mathias Vorreiter Pedersen
d6beb2a6a0
C++: Don't generate models for stuff we have modeled in Ql by hand.
2025-05-16 13:33:54 +01:00
Mathias Vorreiter Pedersen
de31595cd2
C++: Add generated sqlite models.
2025-05-16 13:32:01 +01:00
Mathias Vorreiter Pedersen
0290b4369c
C++: Add generated OpenSSL models.
2025-05-16 13:31:59 +01:00
Mathias Vorreiter Pedersen
cadcb202e2
Merge pull request #19500 from MathiasVP/always-apply-manual-models-when-resolving-calls
...
C++: Update static call target resolution semantics in dataflow
2025-05-16 13:28:01 +01:00
Simon Friis Vindum
41e76e20b5
Rust: Add models auto-generated in bulk
2025-05-16 14:08:16 +02:00
Simon Friis Vindum
fb8b79edbf
Rust: Skip model generation for functions with semicolon in canonical path
2025-05-16 14:08:09 +02:00
Mathias Vorreiter Pedersen
ffc1c6264e
Merge pull request #19498 from MathiasVP/exclude-test-directories
...
C++: Exclude tests in model generation
2025-05-16 13:02:51 +01:00
Taus
9ee3e4cdf3
Python: Update change note
...
Co-authored-by: yoff <yoff@github.com >
2025-05-16 13:50:22 +02:00
Simon Friis Vindum
d66c12b7a9
Rust: Add MaD bulk generation script
2025-05-16 13:38:24 +02:00
Mathias Vorreiter Pedersen
e11ab0f125
Update cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/ExprNodes.qll
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-05-16 12:06:25 +01:00
Michael Nebel
5e72b8bbed
Merge pull request #19497 from michaelnebel/csharp/gethashcode
...
C#: Improve the query `cs/gethashcode-is-not-defined`.
2025-05-16 12:37:41 +02:00
Napalys Klicius
f6a8909bfe
Merge pull request #19356 from Napalys/js/merge_classes
...
JS: Merge `ES6Class` to `FunctionStyleClass`
2025-05-16 10:31:33 +02:00
Tom Hvitved
40624b21f8
Merge pull request #19503 from hvitved/rust/fix-semantic-merge-conflict
...
Rust: Fix semantic merge conflict
2025-05-16 09:17:53 +02:00
Tom Hvitved
8521becbd5
Rust: Fix semantic merge conflict
2025-05-15 20:53:35 +02:00
Mathias Vorreiter Pedersen
d31ddad832
C++: Small refactoring.
2025-05-15 18:04:57 +01:00
Mathias Vorreiter Pedersen
f731d0e630
C++: Add change note.
2025-05-15 17:39:51 +01:00
Mathias Vorreiter Pedersen
c3c6bb6e60
C++: Accept test changes.
2025-05-15 17:23:35 +01:00
Mathias Vorreiter Pedersen
783560cff6
C++: Add a subclass of PostUpdateNodes and ensure that 'node.asExpr() instanceof ClassAggregateLiteral' holds for this new node subclass.
2025-05-15 17:23:32 +01:00
Mathias Vorreiter Pedersen
0f21075722
C++: Add a test that demonstrate missing asExpr for aggregate literals.
2025-05-15 17:18:55 +01:00
Nora Dimitrijević
8a1987ab71
Merge pull request #19448 from d10c/d10c/ruby-printast-order-fix
...
Ruby printAst: fix order for synth children of real parents
2025-05-15 18:17:01 +02:00
Taus
2158eaa34c
Python: Fix a bug in glob regex creation
...
The previous version was tested on a version of the code where we had
temporarily removed the `glob.strip("/")` bit, and so the bug didn't
trigger then.
We now correctly remember if the glob ends in `/`, and add an extra part
in that case. This way, if the path ends with multiple slashes, they
effectively get consolidated into a single one, which results in the
correct semantics.
2025-05-15 15:34:11 +00:00
Aditya Sharad
f814849154
Merge pull request #19427 from felickz/unpinned-actions-tags-docs
...
Adding comprehensive docs for customizing `actions/unpinned-tag` query
2025-05-15 20:29:58 +05:30
Taus
c8cca126a1
Python: Bump extractor version
2025-05-15 14:59:33 +00:00
Taus
72ae633a64
Python: Update change note and extractor config
...
Removes the previously added extractor option and updates the change
note to explain how to use `paths-ignore` to exclude files in hidden
directories.
2025-05-15 14:58:32 +00:00
Taus
96558b53b8
Python: Update test
...
The second test case now sets the `paths-ignore` setting in the config
file in order to skip files in hidden directories.
2025-05-15 14:53:15 +00:00
Taus
98388be25c
Python: Remove special casing of hidden files
...
If it is necessary to exclude hidden files, then adding
```
paths-ignore: ['**/.*/**']
```
to the relevant config file is recommended instead.
2025-05-15 14:49:17 +00:00
Taus
61719cf448
Python: Fix a bug in glob conversion
...
If you have a filter like `**/foo/**` set in the `paths-ignore` bit of
your config file, then currently the following happens:
- First, the CodeQL CLI observes that this string ends in `/**` and
strips off the `**` leaving `**/foo/`
- Then the Python extractor strips off leading and trailing `/`
characters and proceeds to convert `**/foo` into a regex that is
matched against files to (potentially) extract.
The trouble with this is that it leaves us unable to distinguish
between, say, a file `foo.py` and a file `foo/bar.py`. In other words,
we have lost the ability to exclude only the _folder_ `foo` and not any
files that happen to start with `foo`.
To fix this, we instead make a note of whether the glob ends in a
forward slash or not, and adjust the regex correspondingly.
2025-05-15 14:48:06 +00:00
Mathias Vorreiter Pedersen
e75dcd27f5
C++: Accept test changes.
2025-05-15 15:28:13 +01:00
Mathias Vorreiter Pedersen
69a1a87aa4
C++: Update semantics of picking the static call target in dataflow.
2025-05-15 15:25:29 +01:00
Mathias Vorreiter Pedersen
c6df9505c0
C++: Add tests to exercise the upcoming behavior of function dispatch when there are model-generated summaries AND source definitions.
2025-05-15 15:05:17 +01:00
Tom Hvitved
60cc63f4d4
Merge pull request #19474 from hvitved/rust/builtins-resolution
...
Rust: Type inference and path resolution for builtins
2025-05-15 15:22:32 +02:00
Mathias Vorreiter Pedersen
e80c3b5c0b
C++: Exclude tests (by matching paths) in model generation.
2025-05-15 13:24:32 +01:00
Michael Nebel
4d7901573a
C#: Add change note.
2025-05-15 14:07:50 +02:00
Michael Nebel
3080dfafb6
C#: Update test expected output.
2025-05-15 14:04:40 +02:00
Michael Nebel
72d3814e08
C#: Include dictionary indexers and more methods in cs/gethashcode-is-not-defined.
2025-05-15 14:03:22 +02:00
Michael Nebel
4b2d323cb6
C#: Add some more test cases.
2025-05-15 13:48:51 +02:00
Michael Nebel
2c5d85e186
C#: Convert cs/gethashcode-is-not-defined to inline expectations tests.
2025-05-15 13:35:08 +02:00
Jeroen Ketema
51229a6b48
Merge pull request #19493 from jketema/delete-expr
...
C++: Fix IR edge case where there are no function calls taking an argument
2025-05-15 13:31:48 +02: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
Tom Hvitved
9d37597461
Address review comments
2025-05-14 20:50:40 +02:00
Neil Mendum
1a1c9b4ea4
actions: add some missing permissions
2025-05-14 17:28:54 +01:00
Nora Dimitrijević
96bdfbf76b
Fix inefficient pattern: if-exists -> exists-or-not-exists
2025-05-14 15:36:45 +02:00
Paolo Tranquilli
e4b7b914b2
Merge pull request #19334 from github/redsun82/rust-expand-attr-macros
...
Rust: expand attribute macros
2025-05-14 15:35:58 +02:00
Owen Mansel-Chan
8f5a2a9e29
Merge pull request #19484 from owen-mc/go/minor-fix
...
Go: Remove redundant code in `IR::ExtractTupleElementInstruction.getResultType()` and expand tests
2025-05-14 13:49:38 +01:00
Jeroen Ketema
401281331f
C++: Fix IR edge case where there are no function calls taking an argument
2025-05-14 13:44:29 +02:00
Jeroen Ketema
96bd9a96e5
C++: Add test case for IR edge case
2025-05-14 13:36:52 +02:00
Paolo Tranquilli
c2f2522262
Merge pull request #19490 from github/redsun82/swift-type-value-expr-cfg
...
Swift: add new `TypeValueExpr` to CFG
2025-05-14 13:24:50 +02:00
Michael Nebel
ef4c921b5a
Merge pull request #19482 from michaelnebel/csharp/code-quality-call-to-gc
...
C#: Add `cs/call-to-gc` to the code quality suite.
2025-05-14 13:03:24 +02:00
Paolo Tranquilli
3d38d77d63
Rust: accept dummy test output
2025-05-14 11:41:17 +02:00
Paolo Tranquilli
4709eacbf8
Swift: add change note
2025-05-14 11:37:03 +02:00
yoff
3fa563b293
Merge pull request #19483 from yoff/ruby/more-capturedExitRead
...
Ruby: More captured exit read nodes
2025-05-14 11:35:04 +02:00
Paolo Tranquilli
2388dd06d4
Swift: add new TypeValueExpr to CFG
2025-05-14 11:16:44 +02:00
Michael Nebel
7531a95d22
Merge pull request #19271 from michaelnebel/csharp/uncontrolled-format-string
...
C#: Improve precision of `cs/uncontrolled-format-string`.
2025-05-14 10:39:38 +02:00
Michael Nebel
f9559060f1
C#: Add change note.
2025-05-14 10:37:28 +02:00
Michael Nebel
8603d76e2a
C#: Update flowsummaries expected test file.
2025-05-14 10:28:22 +02:00
Michael Nebel
08b950eeeb
C#: Update .NET 9 Runtime generated models.
2025-05-14 10:28:19 +02:00
Mathias Vorreiter Pedersen
e903d76fa0
Merge pull request #19443 from MathiasVP/generate-more-value-preserving-summaries-2
...
Shared: Generate more value-preserving flow summaries
2025-05-14 09:12:28 +01:00
Paolo Tranquilli
f5438390d5
Rust: enhance macro expansion testing
2025-05-14 10:01:44 +02:00
Chris Smowton
98ec3753fd
Merge pull request #19489 from github/post-release-prep/codeql-cli-2.21.3
...
Post-release preparation for codeql-cli-2.21.3
2025-05-13 23:31:00 +01:00
github-actions[bot]
5f9dd75d7d
Post-release preparation for codeql-cli-2.21.3
2025-05-13 21:49:43 +00:00
Chris Smowton
4bb829ebec
Merge pull request #19488 from github/release-prep/2.21.3
...
Release preparation for version 2.21.3
2025-05-13 22:22:20 +01:00
github-actions[bot]
2de4a01c86
Release preparation for version 2.21.3
2025-05-13 21:14:27 +00:00
Chris Smowton
c6cc4c0e13
Merge pull request #19402 from smowton/smowton/admin/kotlin-2.2.0-support
...
Add support for Kotlin 2.2.0; drop Kotlin 1.5.x
2025-05-13 21:11:31 +01:00
Tom Hvitved
a02bf182c5
Rust: Type inference and path resolution for builtins
2025-05-13 21:29:32 +02:00
Tom Hvitved
9db38bcb23
Rust: Update path resolution tests
2025-05-13 21:26:50 +02:00
Chris Smowton
fecad025de
Fix handling of X/jvm-default intermediate modes such as 'compatibility', the new default as of 2.2.0
2025-05-13 18:10:21 +01:00
Mathias Vorreiter Pedersen
fa7942393d
Merge pull request #19477 from MathiasVP/fix-infinite-range-analysis-on-incomplete-ssa
...
C++: Fix infinite range analysis loop on invalid SSA
2025-05-13 16:59:11 +01:00
Paolo Tranquilli
3001d0bd1c
Bazel: remove 2.0.0 rules_kotlin patching
2025-05-13 15:57:37 +01:00
yoff
3fcd46ec6c
Apply suggestions from code review
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-05-13 16:57:32 +02:00
Owen Mansel-Chan
933e01b3d4
Remove redundant code
...
The case of a CallExpr is actually covered by the next disjunct.
Note that the CallExpr case had a subtle bug: `c.getTarget()` is not
defined when we are calling a variable. Better to use
`c.getCalleeType()`. But in this case we can just delete the code.
2025-05-13 15:55:20 +01:00
Owen Mansel-Chan
7da1ade835
Add tests for extracting tuples in f(g(...))
2025-05-13 15:54:05 +01:00
Owen Mansel-Chan
b06491125e
Expand test for Extract Tuple Instruction
2025-05-13 15:48:29 +01:00
Florin Coada
c608a9056b
Merge pull request #19462 from github/changedocs/2.21.2
...
Update changelogs for CodeQL CLI 2.21.2
2025-05-13 15:23:35 +01:00
Paolo Tranquilli
a99556e021
Merge branch 'main' into redsun82/rust-expand-attr-macros
2025-05-13 16:21:29 +02:00
yoff
c70fd6a58c
ruby: add change note
2025-05-13 16:18:33 +02:00
Tom Hvitved
d37787c4ae
Rust: Add type inference tests for literals
2025-05-13 16:07:43 +02:00
Tom Hvitved
3fc9da7466
Merge pull request #19475 from hvitved/rust/literal-sub-classes
...
Rust: Add `LiteralExpr` sub classes
2025-05-13 16:06:53 +02:00
Asger F
169ae19015
Merge pull request #19391 from asgerf/js/typescript-path-resolution
...
JS: Overhaul import resolution
2025-05-13 15:46:38 +02:00
Chris Smowton
a2836f5aab
Adjust integration test expectations
2025-05-13 14:42:19 +01:00
Chris Smowton
27222499d4
Update test expectation
2025-05-13 14:42:18 +01:00
Chris Smowton
fc1fd263df
Fix plugin test to work with Kotlin 2.1.20
2025-05-13 14:42:17 +01:00
Chris Smowton
0d34837eaf
Bump unit tests to use latest stable Kotlin
2025-05-13 14:42:16 +01:00
Chris Smowton
1afe67ab13
Accept Kotlin 2.1.20 test changes
...
These are mainly small changes in how source-locations are ascribed to synthetic expressions, plus three real changes:
- The comment extractor is performing better presumably due to improvements in the underlying representation
- *= /= and %= operations are once again extracted correctly; presumably their origin information has been fixed
- Reference to a static final Java field can lead to more constant propagation than before
The last one might be a minor nuisance to someone trying to find references to such a field.
2025-05-13 14:42:15 +01:00
Chris Smowton
34e0a7b23a
Bump Kotlin version to keep integration test working
2025-05-13 14:42:13 +01:00
Chris Smowton
29d369f22f
Don't try to decode a class from a .java file
2025-05-13 14:42:12 +01:00
Chris Smowton
0d21fa51f2
Change default version
2025-05-13 14:42:11 +01:00
Chris Smowton
3f23212d4e
Update test expectation
2025-05-13 14:42:10 +01:00
Chris Smowton
2ad5e20e79
Change note
2025-05-13 14:42:09 +01:00
Chris Smowton
4cb1e7840f
Update Kotlin doc table
2025-05-13 14:42:07 +01:00
Chris Smowton
a36fc30d44
Fix build for Kotlin 2.2.0
2025-05-13 14:42:06 +01:00
Chris Smowton
24feb51661
Fix Gradle config
2025-05-13 14:42:05 +01:00
Chris Smowton
163a403065
Add Kotlin 2.2.0-Beta1; drop Kotlin 1.5
2025-05-13 14:42:04 +01:00
Paolo Tranquilli
abea647bb1
Bazel: update rules_kotlin to 2.1.3
2025-05-13 14:42:03 +01:00
Chris Smowton
08aad90346
Add 2.2.0-Beta1 deps
2025-05-13 14:42:02 +01:00
Mathias Vorreiter Pedersen
f255fc2fd5
C++: Drive-by join order fix. Before:
...
```
Evaluated relational algebra for predicate SsaInternals::getDefImpl/1#1ed4f567@65628fbv with tuple counts:
4935102 ~5% {4} r1 = SCAN `SsaInternals::SsaImpl::Definition.definesAt/3#dispred#7eea4c8f` OUTPUT In.2, In.3, In.0, In.1
104274503 ~1% {3} | JOIN WITH `SsaInternals::DefImpl.hasIndexInBlock/2#dispred#30a6c29f_120#join_rhs` ON FIRST 2 OUTPUT Rhs.2, Lhs.3, Lhs.2
4921319 ~2% {2} | JOIN WITH `SsaInternals::DefImpl.getSourceVariable/0#dispred#72437659` ON FIRST 2 OUTPUT Lhs.2, Lhs.0
return r1
```
After:
```
Evaluated relational algebra for predicate SsaInternals::SsaImpl::Definition.definesAt/3#dispred#7eea4c8f_1230#join_rhs@b280fb5h with tuple counts:
4935102 ~3% {4} r1 = SCAN `SsaInternals::SsaImpl::Definition.definesAt/3#dispred#7eea4c8f` OUTPUT In.1, In.2, In.3, In.0
return r1
Evaluated relational algebra for predicate SsaInternals::DefImpl.hasIndexInBlock/3#dispred#31d295aa_1230#join_rhs@2be655s4 with tuple counts:
5634706 ~1% {4} r1 = SCAN `SsaInternals::DefImpl.hasIndexInBlock/3#dispred#31d295aa` OUTPUT In.1, In.2, In.3, In.0
return r1
Evaluated relational algebra for predicate SsaInternals::getDefImpl/1#1ed4f567@8afa36uu with tuple counts:
4921319 ~2% {2} r1 = JOIN `SsaInternals::SsaImpl::Definition.definesAt/3#dispred#7eea4c8f_1230#join_rhs` WITH `SsaInternals::DefImpl.hasIndexInBlock/3#dispred#31d295aa_1230#join_rhs` ON FIRST 3 OUTPUT Lhs.3, Rhs.3
return r1
```
2025-05-13 14:21:28 +01:00
yoff
774b1820c2
ruby: also insert capturedExitRead-nodes by exceptional exits
2025-05-13 15:11:00 +02:00
yoff
73bae1627b
ruby: test for DeadStore and captured variables
2025-05-13 15:08:01 +02:00
Tom Hvitved
ae54c62001
Simplify using non-capturing groups
2025-05-13 15:06:43 +02:00
Michael Nebel
b8f85b3f29
C#: Update integration test expected output.
2025-05-13 14:50:23 +02:00
Asger F
aea676df3c
Merge pull request #19445 from asgerf/js/summaries-with-fallback
...
JS: Generate flow summaries from summaryModels; only generate steps as a fallback
2025-05-13 14:49:38 +02:00
Michael Nebel
f5903eaf2d
C#: Add cs/call-to-gc to the code quality suite.
2025-05-13 14:46:29 +02:00
Michael Nebel
fcecc5a3af
Cpp: Update model generator implementation.
2025-05-13 13:44:44 +01:00
Michael Nebel
6712cce1d7
Rust: Update model generator implementation.
2025-05-13 13:44:43 +01:00
Michael Nebel
ee83ca9125
Java: Update model generator implementation and test expected output.
2025-05-13 13:44:42 +01:00
Michael Nebel
09dc3c88b3
C#: Update model generator implementation and test expected output.
2025-05-13 13:44:40 +01:00
Michael Nebel
a94cffa27e
Shared: Adjust the printing of heuristic value summaries (and fix a minor issue with output printing in captureSink).
2025-05-13 13:44:39 +01:00
Michael Nebel
6c9f248fdb
Shared: Avoid generating taint based heuristic summaries when a content sensitive summary can be generated.
2025-05-13 13:44:38 +01:00
Mathias Vorreiter Pedersen
0836f0b413
C++: Cache and fix join order in 'hasIncompleteSsa'.
2025-05-13 13:41:15 +01:00
Tom Hvitved
7494eac35c
Address review comments
2025-05-13 14:26:09 +02:00
Michael Nebel
3449a34018
C#: Address review comments.
2025-05-13 14:20:06 +02:00
Geoffrey White
20a012d5f1
Merge pull request #19454 from geoffw0/deref
...
Rust: Add Operation class
2025-05-13 13:17:14 +01:00
yoff
1c863b1bd4
Merge pull request #19476 from yoff/ruby/DeadStoreOfLocal-precision-high
...
ruby: adjust precision of `rb/useless-assignment-to-local`
2025-05-13 13:56:22 +02:00
Mathias Vorreiter Pedersen
c3c18bdbd2
C++: Add change note.
2025-05-13 11:28:25 +01:00
Mathias Vorreiter Pedersen
9d2eb3d9b8
C++: Filter out instructions with incomplete SSA in range analysis.
2025-05-13 10:54:22 +01:00
Mathias Vorreiter Pedersen
510df38da2
C++: Add an 'hasIncompleteSsa' predicate to check whether a function has correctly modelled SSA information.
2025-05-13 10:54:20 +01:00
Simon Friis Vindum
4cc9c24940
Merge pull request #19452 from paldepind/shared-model-generator-script
...
Shared: Remove the language-specific model generator scripts
2025-05-13 10:17:37 +02:00
Geoffrey White
b3dc7a21b3
Apply suggestions from code review
...
Co-authored-by: Simon Friis Vindum <paldepind@github.com >
2025-05-13 09:06:25 +01:00
Geoffrey White
2b6e428c37
Merge pull request #19466 from geoffw0/web
...
Rust: Add tests for web frameworks as taint sources
2025-05-13 09:02:46 +01:00
Simon Friis Vindum
014e7dc4bc
Shared: Remove change note for internal MaD generator
2025-05-13 09:50:07 +02:00
Simon Friis Vindum
14bdc1ab22
Shared: Minor tweaks to model generator script
...
Co-authored-by: Michael Nebel <michaelnebel@github.com >
2025-05-13 09:31:50 +02:00
Michael Nebel
0c0e1d0c46
Merge pull request #19456 from 5idg5/5idg5-update-cs-stubs
...
Add new stubs definitions to System.Web
2025-05-13 08:56:06 +02:00
Sid Gawri
eb4711e884
Merge branch '5idg5-update-cs-stubs' of https://github.com/5idg5/codeql into 5idg5-update-cs-stubs
2025-05-12 17:41:32 -04:00
5idg5
6a5ce39930
Merge branch 'github:main' into 5idg5-update-cs-stubs
2025-05-12 17:39:33 -04:00
Michael Nebel
5faaa4f0f3
C#: Cleanup test options files.
2025-05-12 17:36:52 -04:00
Michael Nebel
05dc9b6d34
C#: Remove dependency to ASP.NET in the System.Web.cs stub file.
2025-05-12 17:36:10 -04:00
Michael Nebel
60d26e522e
C#: Cleanup test options files.
2025-05-12 17:36:08 -04:00
Michael Nebel
82cf472f8a
C#: Fix ASP tests.
2025-05-12 17:33:22 -04:00
Michael Nebel
ffd6b2677c
C#: Cleanup test options files.
2025-05-12 17:33:21 -04:00
yoff
a50167812d
ruby: adjust precision of rb/useless-assignment-to-local
...
from `medium` to `high`
2025-05-12 23:26:21 +02:00
Owen Mansel-Chan
c933ab4ae2
Apply suggestions from code review
...
Co-authored-by: Chris Smowton <smowton@github.com >
2025-05-12 16:24:56 -04:00
Mathias Vorreiter Pedersen
f1b4e05579
C++: Expose 'isBusyDef'.
2025-05-12 19:45:19 +01:00
Mathias Vorreiter Pedersen
e51cb478af
C++: Expose 'MemoryLocation0'.
2025-05-12 19:43:19 +01:00
Tom Hvitved
cd01bd0e07
Rust: Add LiteralExpr sub classes
2025-05-12 20:35:00 +02:00
Nicolas Will
d3282a9470
Merge pull request #19469 from nicolaswill/quantum-experimental
...
Add CodeQL Quantum models and queries (Java, C++) to experimental
2025-05-12 19:25:34 +02:00
Geoffrey White
f04d6fd8c8
Rust: Accept minor test changes for the cleartext logging query.
2025-05-12 17:45:00 +01:00
Geoffrey White
a2944cdb61
Rust: Make usage of Impl more consistent with other Impl modules.
2025-05-12 16:48:06 +01:00
Geoffrey White
9160036e41
Rust: Rename OperationImpl -> Impl.
2025-05-12 16:45:41 +01:00
Geoffrey White
7c98fa87da
Rust: One more bit of cleanup.
2025-05-12 16:34:08 +01:00
Geoffrey White
402a84f755
Update rust/ql/test/library-tests/dataflow/sources/web_frameworks.rs
...
Co-authored-by: Simon Friis Vindum <paldepind@github.com >
2025-05-12 16:17:26 +01:00
Geoffrey White
bf8cdffffa
Update rust/ql/test/library-tests/dataflow/sources/web_frameworks.rs
...
Co-authored-by: Simon Friis Vindum <paldepind@github.com >
2025-05-12 16:06:33 +01:00
Geoffrey White
08fcf6114f
Apply suggestions from code review
...
Co-authored-by: Simon Friis Vindum <paldepind@github.com >
2025-05-12 16:01:52 +01:00
Geoffrey White
6678dc490a
Merge pull request #19449 from geoffw0/alloc-size-sev
...
Rust: Update query severities
2025-05-12 15:57:02 +01:00
Geoffrey White
a69a56122f
Merge pull request #19455 from geoffw0/quality
...
Rust: Use the new 'quality' tag.
2025-05-12 15:56:12 +01:00
Michael Nebel
a7ddfe2e89
C#: Address review comments.
2025-05-12 16:06:02 +02:00
Michael Nebel
6cc3c820b4
C#: Add change note.
2025-05-12 15:45:03 +02:00
Michael Nebel
c96003f265
C#: Update test expected output.
2025-05-12 15:45:01 +02:00
Michael Nebel
133e8d4897
C#: Include CompositeFormat.Parse as Format like method.
2025-05-12 15:44:59 +02:00
Michael Nebel
3838a7b0d6
C#: Add a testcase for CompositeFormat.Parse for cs/uncontrolled-format-string.
2025-05-12 15:44:58 +02:00
Michael Nebel
c16be43f15
C#: Convert cs/uncontrolled-format-string tests to use test inline expectations.
2025-05-12 15:44:56 +02:00
Nicolas Will
5334e90717
Make FlowAwareElement private
2025-05-12 14:58:04 +02:00
Nicolas Will
c66ec63333
Fix query compilation errors
2025-05-12 14:48:58 +02:00
Nicolas Will
8f36624171
Add AsymmetricAlgorithmNode, refactor and address feedback
2025-05-12 14:37:44 +02:00
Nicolas Will
ab3f62eed1
Add missing tags to PrintCBOMGraph.ql queries
2025-05-12 14:34:16 +02:00
Geoffrey White
682f59fc11
Rust: Make helper predicate private + autoformat.
2025-05-12 12:49:58 +01:00
Geoffrey White
ac5ec06736
Rust: Constrain SensitiveFieldAccess to avoid including unwanted parents.
2025-05-12 12:47:31 +01:00
Geoffrey White
b907cfe468
Rust: Add a few more test cases involving 'map'.
2025-05-12 12:31:01 +01:00
Geoffrey White
0a3275e0b3
Rust: One more test case.
2025-05-12 11:50:57 +01:00
Simon Friis Vindum
7bd1612b69
Rust: Use getStaticTarget in type inference test
...
This fixes a test failure where duplicated functions from extraction caused a bunch of spurious results to pop up
2025-05-12 12:47:48 +02:00
Simon Friis Vindum
bc8580159c
Merge branch 'main' into rust-ti-implementing-type-method
2025-05-12 11:35:48 +02:00
Simon Friis Vindum
0cf60c4e2d
Rust: Address comments on documentation
2025-05-12 11:07:46 +02:00
Asger F
891b2b8335
DataFlow: Support a bare Argument[n] as a valid output stack
2025-05-12 09:42:45 +02:00
Asger F
8fab235d66
DataFlow: Fix typo in a comment
2025-05-12 09:41:49 +02:00
Simon Friis Vindum
14ede4e0c5
Merge pull request #19440 from paldepind/rust-update-stdlib-models
...
Rust: Update generated models for core and std
2025-05-12 08:11:18 +02:00
Sid Gawri
4e3ac93f70
fix unit tests part 2
2025-05-09 16:24:42 -04:00
Sid Gawri
089ef1cae1
Merge branch 'main' of https://github.com/5idg5/codeql into 5idg5-update-cs-stubs
2025-05-09 15:35:11 -04:00
Geoffrey White
48b95f3a4e
Rust: Move OperationImpl to internal/OperationImpl.qll.
2025-05-09 17:01:49 +01:00
Geoffrey White
d02d5c5baf
Rust: Update cleartext logging test with new found results.
2025-05-09 14:33:26 +01:00
Nicolas Will
fbf3d7c195
Update CODEOWNERS to specify shared pack directory
2025-05-09 14:36:55 +02:00
Nicolas Will
cd59ce5b04
Rename shared pack to quantum from experimental
2025-05-09 14:36:12 +02:00
Geoffrey White
5f5d6f679a
Rust: Understand sensitive enum variants calls.
2025-05-09 11:58:51 +01:00
Geoffrey White
0f36e1d625
Rust: Understand sensitive qualifier expressions.
2025-05-09 11:26:23 +01:00
Geoffrey White
a537197691
Rust: Understand sensitive field access expressions.
2025-05-09 11:04:38 +01:00
Geoffrey White
8825eefea6
Rust: More counterexamples for sensitive data as well.
2025-05-09 10:50:12 +01:00
Geoffrey White
87218cb6d7
Rust: Test more examples of sensitive data.
2025-05-09 10:50:11 +01:00
Mathias Vorreiter Pedersen
64371688d7
Shared: Fix QLDoc to make QL4QL happy.
2025-05-08 10:16:09 -04:00
Nicolas Will
64e40715ee
Merge branch 'quantum-experimental' of https://github.com/nicolaswill/codeql into quantum-experimental
2025-05-08 16:11:15 +02:00
Nicolas Will
c6077947a7
Update cpp and java not_included_in_qls.expected
2025-05-08 16:10:28 +02:00
Nicolas Will
d0510bc672
Merge branch 'main' into quantum-experimental
2025-05-08 04:37:37 +02:00
Nicolas Will
529128cbde
Add problem.severity for java analysis queries
2025-05-08 04:20:49 +02:00
Nicolas Will
a57f4a1022
Update Java analysis query metadata
2025-05-08 04:13:57 +02:00
Nicolas Will
e03f57da9b
Update type name in experimental BrokenCrypto.ql
2025-05-08 04:03:10 +02:00
Nicolas Will
b8c3b43cc4
Fix KnownAsymmetricAlgorithm query id
2025-05-08 03:58:06 +02:00
Nicolas Will
b558e844ff
Update slice query metadata and output tables
2025-05-08 03:56:20 +02:00
Nicolas Will
986c8e1aec
Change Java inventory slices to @kind table
2025-05-08 03:24:04 +02:00
Nicolas Will
0c6e124b01
Delete development test query
2025-05-08 03:02:59 +02:00
Nicolas Will
1135fbe950
Fix EVP_Hash_Initializer typo
2025-05-08 02:58:43 +02:00
Nicolas Will
1d8a57e7da
Fix EVP Cipher class, predicate, and comment typos
2025-05-08 02:56:52 +02:00
Nicolas Will
e956d041dc
Format LibraryDetector.qll
2025-05-08 02:51:53 +02:00
Nicolas Will
a7ebe4a51a
Fix typo in asymmetric inventory slice query id
2025-05-08 02:43:29 +02:00
Nicolas Will
0066f74d3f
Delete development scripts
2025-05-08 02:40:56 +02:00
Nicolas Will
7339dd0077
Rename "Quantum" to "quantum" in dir structure
2025-05-08 02:39:40 +02:00
Nicolas Will
ac72abd3a6
Refactor directory structure (shared experimental)
2025-05-08 02:35:09 +02:00
Nicolas Will
c19291be88
Refactor 'cryptography' and 'Quantum' to 'quantum'
2025-05-08 01:38:53 +02:00
Nicolas Will
314f1ff93f
Refactor Java directory structure
2025-05-08 00:28:32 +02:00
Nicolas Will
56670c66f1
Revert Python changes and delete implementation
2025-05-08 00:26:13 +02:00
Nicolas Will
f5a36566d1
Merge pull request #11 from nicolaswill/brodes/openssl_refactor
...
Brodes/openssl refactor
2025-05-07 23:10:53 +02:00
Geoffrey White
19f86fd67f
Rust: Address confusing / typo'd paths.
2025-05-07 10:46:16 +01:00
Geoffrey White
49ff967465
Rust: Add a dataflow sources test for the Axum web fraemework.
2025-05-07 10:17:58 +01:00
Geoffrey White
e56519d959
Rust: Add a dataflow sources test for the Actix web fraemework.
2025-05-07 10:17:57 +01:00
Geoffrey White
310c02f1fb
Rust: Add a dataflow sources test for the Poem web fraemework.
2025-05-07 10:17:56 +01:00
Owen Mansel-Chan
a857069345
Merge pull request #19464 from owen-mc/go/fix/extract-recv-alias-type
...
Go: fix database inconsistency when receiver has alias type
2025-05-06 15:08:42 -04:00
Owen Mansel-Chan
55efb113c2
Merge pull request #19463 from github/dependabot/go_modules/go/extractor/extractor-dependencies-e95546ca81
...
Bump golang.org/x/tools from 0.32.0 to 0.33.0 in /go/extractor in the extractor-dependencies group
2025-05-06 11:05:48 +01:00
Owen Mansel-Chan
c781f98bdc
(unrelated tidy up) resolveTypeAlias not needed
...
`types.Unalias` already does the same thing
2025-05-06 05:45:06 -04:00
Owen Mansel-Chan
228c45aaf8
Look through aliases when identifying method receivers
2025-05-06 05:45:04 -04:00
dependabot[bot]
824271a84a
Bump golang.org/x/tools
...
Bumps the extractor-dependencies group in /go/extractor with 1 update: [golang.org/x/tools](https://github.com/golang/tools ).
Updates `golang.org/x/tools` from 0.32.0 to 0.33.0
- [Release notes](https://github.com/golang/tools/releases )
- [Commits](https://github.com/golang/tools/compare/v0.32.0...v0.33.0 )
---
updated-dependencies:
- dependency-name: golang.org/x/tools
dependency-version: 0.33.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: extractor-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-05-06 03:58:02 +00:00
Sid Gawri
7231f53b6e
revert system.net stubs
2025-05-05 21:59:37 -04:00
Sid Gawri
0691cd3e9a
Merge branch 'main' of https://github.com/5idg5/codeql into 5idg5-update-cs-stubs
2025-05-05 21:55:29 -04:00
Simon Friis Vindum
06cfa9a89c
Rust: Address format fixes suggested in review
2025-05-05 15:21:50 -04:00
Florin Coada
1533d7a4cc
Update codeql-cli-2.21.2.rst
2025-05-05 11:30:15 -04:00
Florin Coada
c7026c03df
Update changelogs for CodeQL CLI 2.21.2 and adjust query reporting for unversioned immutable actions
2025-05-05 11:13:42 -04:00
Arthur Baars
9b0854edb1
Merge pull request #19335 from github/aibaars/macro-stmts
...
Rust: make MacroStmts expressions
2025-05-03 11:22:15 +02:00
Sid Gawri
d600eb42cf
add new stubs
2025-05-02 17:25:02 -04:00
REDMOND\brodes
4042081539
Missing files, should have been part of last commit.
2025-05-02 16:35:27 -04:00
REDMOND\brodes
0a0be41527
Intermediate progress towards getting hashing upgraded. Still need to handle the final and update mechanics, matching the JCA. Similarly need to update cipher to follow the JCA for update/final as well.
2025-05-02 16:33:52 -04:00
Nora Dimitrijević
e9d5515c3b
Add change note
2025-05-02 15:47:34 -04:00
Nora Dimitrijević
83a619a532
Ruby printAst: order by line, synth index in synth parent, column, synth index in real parent
...
This prevents a bunch of unrelated movements in AstDesugar.ql
2025-05-02 15:33:04 -04:00
Nora Dimitrijević
b95092ef1c
Ruby printAst: order by start line and column before synth index
...
This counteracts the movement of synth children away from the node from which they take their location, following the decision to take the index of synth children of real parents into account.
2025-05-02 15:33:02 -04:00
Nora Dimitrijević
2511f52161
Ruby printAst: fix order for synth children of real parents
...
Real parents can have synthesized children, so always assigning index 0 leads to nondeterminism in graph output.
2025-05-02 15:33:00 -04:00
Jeroen Ketema
aa80b83874
Merge pull request #19420 from github/jketema/swift-6.1-contructs
...
Swift: Support new Swift 6.1 AST elements
2025-05-02 20:13:20 +02:00
REDMOND\brodes
94632931ba
Clean up
2025-05-02 14:11:10 -04:00
REDMOND\brodes
09d473674b
Working refactor for cipher, padding, block mode. Still haven't completed connecting padding to algorithm instances if through a set padding interface.
2025-05-02 14:10:38 -04:00
REDMOND\brodes
7481de75cb
Updating the model to infer implicit cipher key sizes.
2025-05-02 14:07:38 -04:00
REDMOND\brodes
c08525ad81
Additional cleanup
2025-05-02 14:07:13 -04:00
REDMOND\brodes
5694f029de
Misc. cleanup
2025-05-02 14:03:50 -04:00
Geoffrey White
f59ef58c1f
Rust: Update query suite list.
2025-05-02 17:47:48 +01:00
Geoffrey White
16ed8476ce
Rust: Use the new 'quality' tag.
2025-05-02 17:24:13 +01:00
Geoffrey White
566b3dd8d9
Rust: Update code scanning queries list.
2025-05-02 17:13:14 +01:00
Geoffrey White
d0287e9496
Merge branch 'main' into alloc-size-sev
2025-05-02 17:08:05 +01:00
Geoffrey White
09dc7fc5c4
Rust: Autoformat.
2025-05-02 16:58:43 +01:00
Mathias Vorreiter Pedersen
bce5f2539f
C++/C#/Java/Rust: Fixup tests.
2025-05-02 16:52:05 +01:00
Mathias Vorreiter Pedersen
37bc2bf5b3
Shared: Deduplicate flow summaries.
2025-05-02 16:51:15 +01:00
Geoffrey White
dc1b4fcf7a
Rust: Unify getOperatorName() methods into Operation.
2025-05-02 16:46:51 +01:00
Geoffrey White
be2017621f
Rust: Unify getAnOperand() methods into Operation.
2025-05-02 16:46:50 +01:00
Geoffrey White
060d5152c4
Rust: Add an Operation class above LogicalOperation, AssignmentOperation etc.
2025-05-02 16:46:44 +01:00
Arthur Baars
6bf50d8f86
Rust: add upgrade/downgrade scripts
2025-05-02 16:36:51 +02:00
Jeroen Ketema
5c4ca64264
Swift: Add change note
2025-05-02 16:29:42 +02:00
Taus
2ded42c285
Python: Update extractor tests
2025-05-02 14:27:46 +00:00
Taus
67d04d5477
Python: Add change note
2025-05-02 14:27:46 +00:00
Taus
605f2bff9c
Python: Add integration test
2025-05-02 14:27:46 +00:00
Arthur Baars
bc35599f1a
Rust: rename MacroStmts to MacroBlockExpr
2025-05-02 16:23:02 +02:00
Arthur Baars
869af58c9d
Rust: add flow step for MacroStmts
2025-05-02 16:23:00 +02:00
Arthur Baars
9ca6706550
Rust: make MacroStmts a CFG Expr
2025-05-02 16:22:59 +02:00
Arthur Baars
4ca98ba816
Rust: test with format! macro in a block
2025-05-02 16:22:57 +02:00
Jeroen Ketema
95ac458d2a
Swift: Add upgrade and downgrade scripts
2025-05-02 16:04:49 +02:00
Paolo Tranquilli
674800748b
Rust: fix location emission
2025-05-02 15:24:31 +02:00
Mathias Vorreiter Pedersen
4d2f2b89e7
Shared/Java/C#/Rust/C++: Rename 'captureHeuristicFlow' to 'captureFlow'.
2025-05-02 14:02:41 +01:00
Mathias Vorreiter Pedersen
54f0eed2c6
Shared: Rename 'asLiftedTaintModel' to 'asLiftedModel'.
2025-05-02 13:54:58 +01:00
Jeroen Ketema
98384bf4c2
Swift: Support BuiltinFixedArrayType
2025-05-02 14:47:58 +02:00
Jeroen Ketema
c74fca929a
Swift: Support TypeValueExpr and IntegerType
2025-05-02 14:47:56 +02:00
Jeroen Ketema
97d2ed8b3b
Swift: Support UnsafeCastExpr
2025-05-02 14:47:55 +02:00
Tom Hvitved
ae2fd52543
Merge pull request #19431 from hvitved/rust/path-resolution-remove-visibility-check
...
Rust: Remove visibility check in path resolution
2025-05-02 14:44:14 +02:00
Taus
0c1b379ac1
Python: Extract files in hidden dirs by default
...
Changes the default behaviour of the Python extractor so files inside
hidden directories are extracted by default.
Also adds an extractor option, `skip_hidden_directories`, which can be
set to `true` in order to revert to the old behaviour.
Finally, I made the logic surrounding what is logged in various cases a
bit more obvious.
Technically this changes the behaviour of the extractor (in that hidden
excluded files will now be logged as `(excluded)`, but I think this
makes more sense anyway.
2025-05-02 12:44:05 +00:00
Tom Hvitved
07829e5231
Merge pull request #19421 from github/aibaars/rust-builtin-types
...
Rust: extract declarations of builtin types
2025-05-02 14:43:47 +02:00
Napalys Klicius
d1e769ba54
Merge pull request #19422 from Napalys/js/shelljs
...
JS: Modeling of `ShellJS` functions
2025-05-02 14:18:44 +02:00
Napalys Klicius
30694c11d6
Removed code duplication
2025-05-02 13:44:07 +02:00
Asger F
b8be1bcee8
JS: Avoid duplication with constructor body
2025-05-02 13:44:03 +02:00
Paolo Tranquilli
557f468fc0
Merge branch 'main' into redsun82/rust-expand-attr-macros
2025-05-02 13:43:17 +02:00
Paolo Tranquilli
82736ea621
Rust: add diagnostics about item expansion not working properly
2025-05-02 13:43:00 +02:00
Napalys Klicius
871e93d9fe
Update javascript/ql/lib/semmle/javascript/frameworks/ShellJS.qll
...
Co-authored-by: Asger F <asgerf@github.com >
2025-05-02 13:39:46 +02:00
Asger F
1f308ee47a
JS: Explain use of monotonicAggregates
2025-05-02 13:22:27 +02:00
Asger F
5c9218fe5a
JS: Add comment about 'path' heuristic
2025-05-02 13:22:25 +02:00
Simon Friis Vindum
c6d95ceeb0
Shared: Remove the language-specific model generator scripts
2025-05-02 13:21:10 +02: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
Simon Friis Vindum
3aed1c8696
Merge branch 'main' into rust-update-stdlib-models
2025-05-02 12:54:43 +02:00
Asger F
f3e0cfd947
Apply suggestions from code review
...
Co-authored-by: Erik Krogh Kristensen <erik-krogh@github.com >
2025-05-02 12:41:29 +02:00
Geoffrey White
f64e86fe2e
Rust: Add a library test for Operations.
2025-05-02 11:22:48 +01:00
Mathias Vorreiter Pedersen
d5bc95daeb
Merge branch 'main' into generate-more-value-preserving-summaries-2
2025-05-02 10:51:11 +01:00
Asger F
16fc8c3d9e
JS: Benign test updates
2025-05-02 11:09:19 +02:00
Michael Nebel
74669cb0cb
Merge pull request #19382 from michaelnebel/shared/modelgenrefactor
...
Shared: Re-factor summary, source and sink model generators into separate modules.
2025-05-02 09:38:24 +02:00
Tamás Vajk
cb1c3736fe
Merge pull request #19413 from tamasvajk/quality/query-suite-selector
...
Add code quality suite selector and use that in the code quality suites
2025-05-02 08:18:48 +02:00
Owen Mansel-Chan
9ba47eb655
Update query suite inclusion integration tests
2025-05-01 21:51:12 +01:00
Arthur Baars
778f46d5be
Rust: adjust unit tests and expected output
2025-05-01 22:21:48 +02:00
Chad Bentz
d3aa2a130c
Moved guidance to RST
2025-05-01 19:37:26 +00:00
Napalys Klicius
c430a36b4c
Refactored merge StandardClassNode into ClassNode
2025-05-01 19:12:12 +02:00
Geoffrey White
93f8cea884
Rust: Add + clean up some QLDoc.
2025-05-01 17:11:34 +01:00
Napalys Klicius
f652686607
Merge pull request #19444 from Napalys/python/hdbcli
...
Python: modeling of `hdbcli`
2025-05-01 17:58:31 +02:00
Geoffrey White
c9ce6c0fb6
Rust: Demote rust/cleartext-logging to warning.
2025-05-01 16:42:41 +01:00
Geoffrey White
bd3155ef0c
Rust: Promote rust/uncontrolled-allocation-size to warning.
2025-05-01 16:42:13 +01:00
Tom Hvitved
73fa381dbc
Rust: Remove visibility check in path resolution
2025-05-01 17:14:49 +02:00
Tom Hvitved
40f80ff4e7
Merge pull request #19442 from hvitved/rust/clone-modeling
...
Rust: Strengthen modeling of the `Clone` trait
2025-05-01 17:11:42 +02:00
Owen Mansel-Chan
bef38a4dce
Add change note
2025-05-01 16:06:32 +01:00
Owen Mansel-Chan
8283d30d94
Avoid deprecated function in qhelp examples in same folder
2025-05-01 16:06:31 +01:00
Owen Mansel-Chan
00cc430ac3
Make examples in qhelp shorter and more realistic
2025-05-01 16:06:29 +01:00
Owen Mansel-Chan
6e3b959f61
Reword qhelp slightly
2025-05-01 16:06:28 +01:00
Owen Mansel-Chan
f8791861c7
Add missing metadata
2025-05-01 16:06:19 +01:00
Jeroen Ketema
8ad6938a82
Merge pull request #19434 from jketema/array-barrier
...
C++: Limit flow through sinks and sources in `cpp/upcast-array-pointer-arithmetic`
2025-05-01 16:42:53 +02:00
Geoffrey White
3789c46791
Rust: Remove stray comment, accept changes to another test.
2025-05-01 15:40:32 +01:00
Owen Mansel-Chan
38dcc1cb84
Fix QLDoc
2025-05-01 15:40:17 +01:00
Owen Mansel-Chan
3b934b8898
Add comment on importance of Function.getACall()
2025-05-01 15:40:15 +01:00
Owen Mansel-Chan
e6c19b0cbd
Modernize tests
2025-05-01 15:40:14 +01:00
Owen Mansel-Chan
cba0bec3c6
Rename files
2025-05-01 15:40:12 +01:00
Owen Mansel-Chan
3cce4ba437
Improve QLDocs
2025-05-01 15:40:10 +01:00
Owen Mansel-Chan
7f007e10c4
Minor refactor - removed unused argument
2025-05-01 15:40:09 +01:00
Owen Mansel-Chan
b90aba291e
Refactor class for unescaped types
2025-05-01 15:40:07 +01:00
Owen Mansel-Chan
cbdbb0310b
Tidy up test (remove duplicated main)
2025-05-01 15:40:06 +01:00
Owen Mansel-Chan
4e5a865337
Manually fix copilot's mistakes and get query working
2025-05-01 15:40:04 +01:00
Owen Mansel-Chan
ce4be6d04c
Refactor to use flow state instead of 3 flow configs (copilot)
2025-05-01 15:40:03 +01:00
Owen Mansel-Chan
ca85f0bf7f
Update query metadata
2025-05-01 15:39:57 +01:00
Owen Mansel-Chan
c2ebdf5266
Change query id to go/html-template-escaping-bypass-xss
2025-05-01 15:39:20 +01:00
Owen Mansel-Chan
1926ffd450
Convert XSS tests to use inline expectations
2025-05-01 15:39:19 +01:00
Owen Mansel-Chan
1530ac123c
Update path in qlref and update test results
2025-05-01 15:39:17 +01:00
Owen Mansel-Chan
5bce70f78c
Move files out of experimental (no changes)
2025-05-01 15:39:15 +01:00
yoff
d7e6e1dd66
Merge pull request #19432 from yoff/python/model-http-server-header-write
...
python: model `send_header` from `http.server`
2025-05-01 15:34:05 +02:00
Geoffrey White
e263116452
Rust: Model std::net and tokio::net.
2025-05-01 14:25:44 +01:00
Asger F
a44bdf3be2
JS: Generate summaries from summaryModel, and only generate steps as a fallback
2025-05-01 15:22:47 +02:00
Asger F
0fc1ae272e
DataFlow: expose from FlowSummaries whether a summary is supported
2025-05-01 15:22:12 +02:00
Arthur Baars
8e8efedb42
Rust: adjust integration tests and expected output
2025-05-01 15:20:36 +02:00
Taus
481adcea0a
Merge pull request #18449 from github/tausbn/misc-add-script-for-calculating-mrva-totals
...
Misc: Add script for calculating totals for a MRVA run
2025-05-01 15:17:19 +02:00
Asger F
ca5f8b0c1d
JS: Move some code into ModelsAsData.qll
2025-05-01 15:17:07 +02:00
Owen Mansel-Chan
e0549483fd
Merge pull request #19429 from owen-mc/fix-cwe-tags-missing-leading-zero
...
Fix cwe tags to include leading zero
2025-05-01 14:09:54 +01:00
Arthur Baars
53b2e9708c
Rust: extract declarations of builtin types
2025-05-01 14:27:21 +02:00
Napalys Klicius
da7c0931b8
Added hdbcli to be part of supported-framework as well as change note
2025-05-01 14:18:08 +02:00
Napalys Klicius
e1fc0ca051
Added implementation hdbcli as part of PEP249::PEP249ModuleApiNode
2025-05-01 14:18:02 +02:00
Geoffrey White
038b8b5344
Rust: Add a missing model for std::io.
2025-05-01 13:04:18 +01:00
Geoffrey White
3104dba09e
Rust: Fix some shortcomings in our models of Reqwest.
2025-05-01 13:04:17 +01:00
Geoffrey White
f4ae211019
Rust: Add models for tokio (fs).
2025-05-01 13:04:16 +01:00
Geoffrey White
7439b0c504
Rust: Add models for tokio (io).
2025-05-01 13:04:15 +01:00
Geoffrey White
627496df09
Rust: Add source tests for tokio (fs).
2025-05-01 13:04:13 +01:00
Geoffrey White
b2339ef0d9
Rust: Add some alternative sinks.
2025-05-01 13:04:12 +01:00
Geoffrey White
950812b463
Rust: Add further source tests for tcp streams.
2025-05-01 13:04:06 +01:00
Napalys Klicius
0325f368fe
Added test case for hdbcli
2025-05-01 13:57:14 +02:00
Nick Rolfe
817237ce54
Merge pull request #19441 from github/nickrolfe/mergeback-2.21.2
...
Merge back 2.21.2 release branch
2025-05-01 11:55:29 +01:00
Simon Friis Vindum
a545361a55
Rust: Accept test changes
2025-05-01 12:36:01 +02:00
Napalys Klicius
6ba0dc20a3
Merge pull request #19439 from Napalys/js/fastify-all
...
JS: Modeling of `fastify`
2025-05-01 12:11:52 +02:00
Simon Friis Vindum
ecead2cafd
Rust: Workaround for method existing both as source and as dependency
2025-05-01 12:00:18 +02:00
Simon Friis Vindum
3ee89899d9
Rust: Handle inherent implementations shadowing trait implementations
2025-05-01 12:00:17 +02:00
Simon Friis Vindum
4513106a35
Rust: Add type inference test for inherent implementation shadowing trait implementation
2025-05-01 12:00:13 +02:00
Simon Friis Vindum
e45b5c557d
Rust: Implement type inference support for non-universal impl blocks
2025-05-01 11:59:15 +02:00
Simon Friis Vindum
22407cad44
Rust: Add type inference test for non-universal impl blocks
2025-05-01 11:58:09 +02:00
Owen Mansel-Chan
0863c87572
Add change notes
2025-05-01 10:33:24 +01:00
Napalys Klicius
68a9dd9f9e
Address comments
2025-05-01 11:19:41 +02:00
Napalys Klicius
c7d764f666
Brought back FunctionStyleClass marked as deprecated
2025-05-01 11:16:04 +02:00
Napalys Klicius
d4b5ef6a66
Refactor process.env handling in CleartextLogging and IndirectCommandInjection modules to use ThreatModelSource
2025-05-01 11:14:15 +02:00
Napalys Klicius
33d8ffa83e
Added test cases for shelljs.env
2025-05-01 11:11:29 +02:00
Napalys Klicius
602500e280
Added change note
2025-05-01 11:09:56 +02:00
Napalys Klicius
40d176a770
Added model for shelljs.env
2025-05-01 11:09:47 +02:00
Tom Hvitved
423e2dac91
Rust: Strenghten the modeling of the Clone trait
2025-05-01 10:54:52 +02:00
Simon Friis Vindum
499d224c2b
Rust: Update generated models for core and std
2025-05-01 10:54:05 +02:00
Tom Hvitved
1770f568a2
Merge pull request #19367 from hvitved/rust/type-inference-try-expr
...
Rust: Type inference for `?` expressions
2025-05-01 10:27:49 +02:00
Nick Rolfe
20f7781d9f
Merge pull request #19437 from adityasharad/docs/fix/2.21.0-escaping
...
Docs: Fix escaping in 2.21.0 changelog
2025-05-01 09:27:41 +01:00
Nick Rolfe
005a27bff9
Merge pull request #19436 from adityasharad/actions/ga-change-note
...
Actions: Retroactively add GA changenote
2025-05-01 09:21:15 +01:00
Napalys Klicius
9bab59363c
Fix class instance method detection in constructor receiver
2025-05-01 09:14:39 +02:00
Napalys Klicius
7430d0e5e0
Added failing test with method as field
2025-05-01 09:14:37 +02:00
Napalys Klicius
c0917434eb
Removed code duplication
2025-05-01 09:14:36 +02:00
Napalys Klicius
fc7520e9e7
Added change note
2025-05-01 09:14:34 +02:00
Simon Friis Vindum
bab84d03d1
Merge pull request #19419 from paldepind/rust-precise-implicit-deref-borrow
...
Rust: Use type inference to insert implicit borrows and derefs
2025-05-01 08:41:37 +02:00
Aditya Sharad
36199b3f06
Docs: Fix escaping in 2.21.0 changelog
...
These break when the RST is processed.
Escape the backslashes and consistently add
inline code blocks.
2025-04-30 16:40:36 -07:00
Aditya Sharad
6285c2e502
Actions: Retroactively add GA changenote
...
This was manually added in the docs site at the time of 2.21.1 release and GA.
Include the change note in the relevant places so it remains
in future docs updates:
- codeql/actions-queries@0.5.4
- codeql/actions-all@0.4.7
- 2.21.1 changelog
2025-04-30 16:24:22 -07:00
Mathias Vorreiter Pedersen
d8eafbb9e2
C++: Fixup queries and accept test changes.
2025-04-30 20:34:35 +01:00
Mathias Vorreiter Pedersen
775197372c
Rust: Fixup queries.
2025-04-30 20:34:33 +01:00
Mathias Vorreiter Pedersen
07641e48ab
Java: Fixup queries and accept test changes.
2025-04-30 20:34:32 +01:00
Mathias Vorreiter Pedersen
cd47379700
C#: Fixup queries and accept test changes.
2025-04-30 20:34:30 +01:00
Mathias Vorreiter Pedersen
607a1e46da
Shared: Generate value-preserving summaries when possible.
2025-04-30 20:34:27 +01:00
Jeroen Ketema
2ed48ae571
C++: Update expected test results after barrier introduction
2025-04-30 20:51:27 +02:00
Tom Hvitved
a3c26b4bfe
Rust: Type inference for ? expressions
2025-04-30 20:35:11 +02:00
Tom Hvitved
88075c4c8c
Rust: Make manual tweaks to Copilot generated code
2025-04-30 20:35:10 +02:00
Tom Hvitved
51e70d0c3b
Rust: Add Copilot generated test for ? operator expressions
2025-04-30 20:35:09 +02:00
Jeroen Ketema
723778fa82
C++: Limit flow through sinks and sources in cpp/upcast-array-pointer-arithmetic
2025-04-30 20:31:12 +02:00
Jeroen Ketema
359aa02602
Merge pull request #19410 from jketema/header-variant
...
C++: Turn header variant tests that use PCH files into integration tests
2025-04-30 20:10:30 +02:00
yoff
e63b38c515
python: add change note
2025-04-30 20:05:55 +02:00
yoff
cf45e771f3
python: remove copied comment
2025-04-30 20:01:43 +02:00
yoff
531f2a15a4
python: model send_header from http.server
2025-04-30 19:58:14 +02:00
Chuan-kai Lin
5bc962c429
QL tests: run with --check-diff-informed
2025-04-30 10:55:58 -07:00
Jeroen Ketema
3423a1072a
C++: Address review comments
2025-04-30 19:10:35 +02:00
Napalys Klicius
7fec3aec95
Renamed FunctionStyleClass class to StandardClassNode
2025-04-30 18:51:46 +02:00
Napalys Klicius
e9ee7134ef
Refactor prototype reference retrieval in ClassNode and update expected test output
2025-04-30 18:51:39 +02:00
Owen Mansel-Chan
a9132c43d0
Fix incorrect CWE tags
2025-04-30 16:47:35 +01:00
Owen Mansel-Chan
cf614a596d
Fix cwe tags to include leading zero
2025-04-30 16:43:03 +01:00
REDMOND\brodes
c80588cda1
Adding content to KnownSymmetricCipherAlgorithmql.
2025-04-30 11:41:28 -04:00
Simon Friis Vindum
c263d3faf9
Rust: Remove predicates unused after refactor
2025-04-30 17:39:22 +02:00
Tom Hvitved
302680cfb2
Merge pull request #19425 from hvitved/rust/type-inference-debug-predicates
...
Rust: Add type inference debug predicates
2025-04-30 17:03:05 +02:00
Nicolas Will
83617e099f
Merge pull request #2 from nicolaswill/knewbury01/JCA-sample
...
Implement first stage cryptography modelling and queries
2025-04-30 16:39:56 +02:00
Paolo Tranquilli
6ecaf65132
Rust: fix downgrade script
2025-04-30 16:38:13 +02:00
Nicolas Will
27c7bf3047
Merge branch 'github:main' into crypto-test
2025-04-30 16:35:26 +02:00
Nicolas Will
2b1b90ccc4
Merge pull request #4 from nicolaswill/brodes/cipher_operation
...
Adding a sketch for a CipherOperation concept to model encryption/dec…
2025-04-30 16:32:20 +02:00
Nicolas Will
dd2f53f42e
Merge pull request #10 from nicolaswill/brodes/key_agreement
...
Initial progress on key agreement.
2025-04-30 16:31:42 +02:00
Nicolas Will
9c87ad8293
Merge branch 'brodes/key_agreement' of https://github.com/nicolaswill/codeql into brodes/key_agreement
2025-04-30 16:28:35 +02:00
Nicolas Will
7f24a2557d
Add modelling for JCA key gen cipher algorithm
2025-04-30 16:28:31 +02:00
Jeroen Ketema
edd18dc052
C++: Address review comment
2025-04-30 16:23:06 +02:00
Chad Bentz
2bef3c3604
Adding comprehensive docs for customizing query
2025-04-30 09:44:27 -04:00
Paolo Tranquilli
8ffe4d6593
Merge branch 'main' into redsun82/rust-expand-attr-macros
2025-04-30 15:25:32 +02:00
Paolo Tranquilli
ecd80fbc34
Rust: fix QL compilation errors
2025-04-30 15:25:01 +02:00
Jonas Jensen
c8e564b2ba
Merge pull request #19416 from jbj/ruby-no-diff-informed-regex
...
Ruby: disable diff-informed mode on regex queries
2025-04-30 15:17:20 +02:00
Tom Hvitved
4f5b340278
Rust: Add type inference debug predicates
2025-04-30 15:12:58 +02:00
Tom Hvitved
389f15e670
Merge pull request #19362 from hvitved/rust/crate-extraction-workarounds
...
Rust: Crate graph extraction workarounds
2025-04-30 15:11:26 +02:00
Napalys Klicius
9624a413e4
Added change note
2025-04-30 14:57:00 +02:00
Napalys Klicius
71f1b82a56
Added support for fastify.all
2025-04-30 14:54:09 +02:00
Napalys Klicius
6d61766366
Added test case for fastify.all
2025-04-30 14:50:35 +02:00
Simon Friis Vindum
f584d22b53
Rust: Use type inference to insert implicit borrows and derefs
2025-04-30 14:43:51 +02:00
Asger F
8ebbfb198e
Merge pull request #19412 from asgerf/js/promise-all
...
JS: Better type-tracking through Promise.all()
2025-04-30 14:19:12 +02:00
Jeroen Ketema
c7e4853c38
Merge pull request #19269 from jketema/non-second-level-limits
...
C++: Do not limit second level scopes to the top-level
2025-04-30 13:50:36 +02:00
Napalys Klicius
18cea2d6a5
Added support for shelljs.cmd and async-shelljs.asyncExec
2025-04-30 13:37:02 +02:00
Napalys Klicius
25d04f1cdd
Added support for shelljs.which
2025-04-30 13:35:17 +02:00
Napalys Klicius
f6fae7ad60
Added test cases for cmd, which and asyncExec
2025-04-30 13:33:31 +02:00
Paolo Tranquilli
1c1ccdacb8
Merge pull request #19418 from github/redsun82/improve-codegen-codeql-requirement-message
...
Codegen: make missing `codeql` error clearer
2025-04-30 12:14:37 +02:00
Asger F
da5d799152
JS: Change note
2025-04-30 11:59:47 +02:00
Paolo Tranquilli
9958cc7784
Codegen: consider windows paths in local codeql binary heuristic
2025-04-30 11:43:03 +02:00
Paolo Tranquilli
ba89a5de6f
Codegen: make missing codeql error clearer
2025-04-30 11:38:52 +02:00
Tom Hvitved
52bd99b852
Address review comments
2025-04-30 11:04:12 +02:00
Tom Hvitved
97532525d8
Rust: Crate graph extraction workarounds
2025-04-30 11:01:43 +02:00
Joe Farebrother
7106475033
Merge pull request #19411 from joefarebrother/python-qual-file-not-closed
...
Python: Improve performance of FileNotClosed query by using an explicit fastTC
2025-04-30 09:51:48 +01:00
Jonas Jensen
eb7cd3d221
Ruby: disable diff-informed mode on regex queries
...
These queries were failing in `codeql test run --check-diff-informed`
because they can select locations inside the regex. Until that can be
fixed, diff-informed mode is disabled for these queries.
2025-04-30 08:54:57 +02:00
Paolo Tranquilli
2c95f00432
Merge pull request #19414 from github/revert-19385-redsun82/update-rules-kotlin
...
Revert "Bazel: update `rules_kotlin` to 2.1.3"
2025-04-29 22:02:04 +02:00
Tom Hvitved
64145ab98a
Merge pull request #19369 from hvitved/rust/crate-graph-self-param
...
Rust: Extract `SelfParam`s from crate graph
2025-04-29 21:23:27 +02:00
Napalys Klicius
6de38b1827
Merge pull request #19300 from Napalys/js/fastify
...
JS: Added support for `fastify.addHook`
2025-04-29 18:32:25 +02:00
Paolo Tranquilli
280ce058a9
Revert "Bazel: update rules_kotlin to 2.1.3"
2025-04-29 17:38:33 +02:00
Paolo Tranquilli
abbf753a09
Merge pull request #19385 from github/redsun82/update-rules-kotlin
...
Bazel: update `rules_kotlin` to 2.1.3
2025-04-29 16:54:28 +02:00
Tamas Vajk
e9e6d68a6e
Use code-quality-selectors in Ruby suite
2025-04-29 16:23:33 +02:00
Tamas Vajk
fdeac95714
Use code-quality-selectors in Python suite
2025-04-29 16:23:22 +02:00
Tamas Vajk
d56c5225f6
Use code-quality-selectors in JS suite
2025-04-29 16:23:08 +02:00
Tamas Vajk
2515b06b2a
Use code-quality-selectors in Go suite
2025-04-29 16:22:57 +02:00
Tamas Vajk
bb46ca7a64
Modify quality query suite selector for actions, cpp, rust and swift
2025-04-29 16:22:37 +02:00
Paolo Tranquilli
a7a887c828
Rust: separate attribute macro and macro call expansions
2025-04-29 16:18:40 +02:00
Tamas Vajk
425e020d6c
Use code-quality-selectors in Java suite
2025-04-29 16:09:51 +02:00
Asger F
b0f73f1cbd
JS: Update test output now that we import .d.ts files more liberally
2025-04-29 16:06:39 +02:00
Asger F
70a5ec5607
JS: Add package.json files in tests relying on node_modules
...
We don't extract node_modules folders by default so these tests aren't
that relevant anymore, and we no longer follow node_modules resolution
rules directly.
Instead, these imports are resolved based on the monorepo support which
simply requires a package.json file to exist. There is not a good enough
reason to support node_modules directly, so we're accepting some
minor regression in these tests.
2025-04-29 16:06:38 +02:00
Asger F
5de2c938d8
JS: Rename getTargetFile to getImportedFile and remove its deprecated name clash
...
'getTargetFile' was originally named to avoid the clash with 'getImportedFile' from a subclass. But we now just merge the two predicates.
2025-04-29 16:06:36 +02:00
Asger F
be5de9c080
JS: Update test output
...
path.resolve() and template expressions are now working.
Previously they could not be resolved because Import.getImportedPath() returned a PathExpr,
and these were not instances of PathExpr.
2025-04-29 16:06:35 +02:00
Tamas Vajk
ea9b95790b
Use code-quality-selectors in C# suite
2025-04-29 16:02:46 +02:00
Tamas Vajk
e3a6681182
Add code quality suite selector
2025-04-29 16:02:21 +02:00
Michael Nebel
c9d01bc607
Shared: Sprinkle some predicate defaults and clean up.
2025-04-29 15:22:13 +02:00
Michael Nebel
a6b5645b13
Rust: Re-factor implementation to use the new model generator interface.
2025-04-29 15:22:11 +02:00
Michael Nebel
c16d913f8a
C++: Re-factor implementation to use the new model generator interface.
2025-04-29 15:22:09 +02:00
Michael Nebel
2535055de0
Java: Re-factor implementation to use the new model generator interface.
2025-04-29 15:22:07 +02:00
Michael Nebel
0016fbfa21
C#: Re-factor implementation to use the new model generator interface.
2025-04-29 15:22:05 +02:00
Michael Nebel
bb6530fcf8
Shared: Make the summary, source and sink model generation a parameterized module.
2025-04-29 15:22:03 +02:00
Michael Nebel
b5c596b2ce
Shared: Split model printing of summaries and sources/sinks into separate param modules.
2025-04-29 15:21:59 +02:00
Michael Nebel
f5a295c24e
Merge pull request #19408 from michaelnebel/debug/removemodelgentag
...
C#/Java/Rust: Change the tag for the model generator debugging queries.
2025-04-29 15:21:18 +02:00
Asger F
eae1e1cb02
JS: Make API graphs rely on type-tracking steps in general
2025-04-29 15:08:19 +02:00
Asger F
e40b93b8a3
JS: Add type-tracking step through simple Promise.all() calls
2025-04-29 15:08:18 +02:00
Jeroen Ketema
7f9020282d
C++: Turn header variant tests that use PCH files into integration tests
...
These tests currently test a code path in the extractor that only exists for
these tests. By turning them into integration tests, we actually use the
code path that normal database creation uses.
2025-04-29 14:51:34 +02:00
Joe Farebrother
299b3f7af4
Merge pull request #19325 from joefarebrother/python-qual-loop-var-capture
...
Python: Tweak LoopVariableCapture for performance
2025-04-29 13:49:09 +01:00
Joe Farebrother
acb9c20a76
Use explicit fastTC
2025-04-29 13:22:11 +01:00
Asger F
ed2a832a55
JS: Deprecate PathExpr and related classes
2025-04-29 13:23:47 +02:00
Asger F
fe055ad603
JS: Use PackageJsonEx instead of resolveMainModule
2025-04-29 13:23:45 +02:00
Asger F
c293f03b9e
JS: Remove a dependency on getImportedPath()
...
To avoid negative recursion in some upcoming changes, we want to make sure the modeling of createRequire does not depend on getImportedPath().
2025-04-29 13:23:43 +02:00
Asger F
a195d074c9
JS: Resolve Angular2 templateUrl with ResolveExpr instead of PathExpr
2025-04-29 13:23:42 +02:00
Asger F
d724874969
JS: Implement babel-plugin-root-import as a PathMapping
2025-04-29 13:23:40 +02:00
Asger F
e4420f63fb
JS: Move babel-root-import test
...
This moves the test for the babel `root-import` plugin into the new
unit test for import resolution, so we only have one set of tests to
maintain.
The actual implementation is added in the next commit.
2025-04-29 13:23:38 +02:00
Asger F
6725cb5b8c
JS: Implement import resolution
2025-04-29 13:23:37 +02:00
Asger F
ed4864edf7
JS: Add two more helpers to FilePath class
2025-04-29 13:07:21 +02:00
Asger F
f542956f66
JS: Add internal extension of PackageJson class
2025-04-29 13:07:19 +02:00
Asger F
bb91df8145
JS: Add helper for doing path resolution with JS rules
2025-04-29 13:07:18 +02:00
Asger F
59e1cbcc7b
JS: Add tsconfig class
2025-04-29 13:07:16 +02:00
Asger F
ef32a036b1
JS: Extract from methods from PathString into a non-abstract base class
...
The new class 'FilePath' has bindingset[this] so one just has to cast a string to that type and you can use its methods.
2025-04-29 13:07:15 +02:00
Asger F
17aa5220a6
JS: Add some helpers
2025-04-29 13:07:14 +02:00
Asger F
565cb434fc
JS: Add test
2025-04-29 13:07:10 +02:00
Napalys Klicius
c8ee8dce98
Add test cases to verify correct call graph resolution with various JavaScript inheritance patterns
2025-04-29 13:04:07 +02:00
Asger F
359525b65a
JS: Extract more tsconfig.json patterns
2025-04-29 12:46:49 +02:00
Asger F
8c0b0c4800
JS: Ensure json files are extracted properly in tests
2025-04-29 12:46:20 +02:00
Napalys Klicius
0a9a7911c2
Fixed issue where method calls weren't properly resolved when inheritance was implemented via prototype manipulation instead of ES6 class syntax.
2025-04-29 12:39:44 +02:00
Napalys Klicius
a015003bda
Updated test case to resolve reflected calls
2025-04-29 12:37:03 +02:00
Napalys Klicius
4fbf8ca5cf
Added test cases with inheritance
2025-04-29 12:36:30 +02:00
Michael Nebel
89fd9a4dd5
C#/Java/Rust: Change the tag for the model generator debugging queries.
2025-04-29 12:02:37 +02:00
Michael Nebel
e5d296180b
Merge pull request #19396 from michaelnebel/csharp/equality-on-floats
...
C#: Add `cs/equality-on-floats` to the Code Quality suite.
2025-04-29 11:47:18 +02:00
Mathias Vorreiter Pedersen
daf953fabe
Merge pull request #19404 from MathiasVP/cleanup-PropagateFlowConfig
...
Shared: Use `isSink/1` in `PropagateFlowConfig`
2025-04-29 10:30:01 +01:00
Nick Rolfe
d784473dcd
Merge pull request #19400 from github/nickrolfe/rb-qhelp-tweak
...
Fix spelling/wording in qhelp for `rb/uninitialized-local-variable`
2025-04-29 09:43:58 +01:00
Tamás Vajk
1694050f37
Merge pull request #19390 from tamasvajk/test/cpp-python-query-suites
...
Add query suite inclusion tests for cpp, python
2025-04-29 10:26:40 +02:00
Asger F
ec9d15bb79
JS: Make shared Folder module visible
2025-04-29 09:42:25 +02:00
Asger F
2ce01bfb9a
Add Folder::Resolve as a generalisation of Folder::Append
2025-04-29 09:42:23 +02:00
Asger F
eb059969e3
Move getAChildContainer one scope up
2025-04-29 09:42:22 +02:00
Asger F
6e64a22579
Merge pull request #19393 from asgerf/js/json-extractor-trailing-commas2
...
JS: Tolerate trailing commas in JSON objects
2025-04-29 09:40:38 +02:00
Tamás Vajk
e73031c688
Update cpp/ql/integration-tests/query-suite/not_included_in_qls.expected
...
Co-authored-by: Michael Nebel <michaelnebel@github.com >
2025-04-29 08:45:02 +02:00
Tamas Vajk
a408e216ae
Add query suite inclusion tests for cpp, python
2025-04-29 08:45:01 +02:00
Jeroen Ketema
966b7463ee
Merge pull request #19397 from jketema/use-after-free
...
C++: Add use-after-free FP tests
2025-04-29 08:32:44 +02:00
REDMOND\brodes
ac798f2bc6
Cipher Algorithm Slices
2025-04-28 16:03:41 -04:00
REDMOND\brodes
ac3675bdac
Typo fix
2025-04-28 16:00:41 -04:00
REDMOND\brodes
219476cee0
Adding KDF iteration count inventory filters.
2025-04-28 15:47:58 -04:00
REDMOND\brodes
ce3eabf05a
Updating model to support slicing.
2025-04-28 14:56:28 -04:00
REDMOND\brodes
5a8bffac11
Removing old asymmetric algorithm slice
2025-04-28 14:56:08 -04:00
REDMOND\brodes
1fd7643ab3
Adding example slicing queries.
2025-04-28 14:54:38 -04:00
Mathias Vorreiter Pedersen
b91a2cc159
Shared: Use 'isSink/1' in 'PropagateFlowConfig'.
2025-04-28 17:36:37 +01:00
REDMOND\brodes
7b7ed61beb
Adding an asymmetric algorithm slice.
2025-04-28 11:34:32 -04:00
REDMOND\brodes
fdd09a4dbf
Adding a new means for determining if there is nonce reuse.
2025-04-28 11:34:16 -04:00
REDMOND\brodes
28ccc83346
Adding a means to distinguish asymmetric algorithms.
2025-04-28 11:33:37 -04:00
Nick Rolfe
50f7ee1158
Merge pull request #19401 from github/post-release-prep/codeql-cli-2.21.2
...
Post-release preparation for codeql-cli-2.21.2
2025-04-28 16:16:21 +01:00
github-actions[bot]
2e0699ab2b
Post-release preparation for codeql-cli-2.21.2
2025-04-28 14:03:28 +00:00
Nick Rolfe
69bc12dd4f
Fix spelling/wording in qhelp for rb/uninitialized-local-variable
2025-04-28 14:41:21 +01:00
Napalys Klicius
ee3a3bd9f5
Add support for prototype methods in class instance member resolution
2025-04-28 15:17:26 +02:00
Napalys Klicius
4705d30bac
Add call graph tests for prototype methods injected on class
2025-04-28 15:12:24 +02:00
Nick Rolfe
a46f8fb0d9
Merge pull request #19398 from github/nickrolfe/rm-erroneous-query
...
Java: Remove erroneously-committed query
2025-04-28 14:06:52 +01:00
Napalys Klicius
c57172121e
Update Nodes.qll
...
Applied suggestions
Co-Authored-By: Asger F <316427+asgerf@users.noreply.github.com >
2025-04-28 14:58:51 +02:00
Nick Rolfe
e3f33f192f
Remove erroneously-committed query
2025-04-28 13:55:34 +01:00
Napalys Klicius
8b53f8f2a6
Fix, prevent addHook return values from being treated as XSS sinks
2025-04-28 14:22:51 +02:00
Napalys Klicius
b4c98b40a5
Merge pull request #19364 from Napalys/js/aws_creds
...
JS: Improved modeling of `aws-sdk`
2025-04-28 14:18:03 +02:00
Jeroen Ketema
0bb0b5c587
C++: Add use-after-free FP tests
2025-04-28 14:13:14 +02:00
Napalys Klicius
73309fb9dd
Updated modeling of aws-sdk with MaD
2025-04-28 14:00:12 +02:00
Napalys Klicius
654177daa7
Fixed naming acronyms to be PascalCase
2025-04-28 14:00:12 +02:00
Napalys Klicius
f7f9fb823a
Updated takesConfigurationObject with API graphs
2025-04-28 14:00:12 +02:00
Napalys Klicius
42d5b80e81
Added support for AWS.Credentials hardcoded credentials
2025-04-28 14:00:12 +02:00
Napalys Klicius
f69037c176
Added ability to detect direct write to global AWS.config
2025-04-28 14:00:12 +02:00
Napalys Klicius
05e4677fd1
Added ability to detect new AWS.ServiceName cases with hardcoded credentials
2025-04-28 14:00:12 +02:00
Napalys Klicius
e6450a17ec
Added test cases for individual AWS services, direct modification of global credentials and AWS.Credentials
2025-04-28 14:00:12 +02:00
Nick Rolfe
ded3865722
Merge pull request #19395 from github/release-prep/2.21.2
...
Release preparation for version 2.21.2
2025-04-28 12:57:36 +01:00
Nick Rolfe
ca7f8f21cd
Tweak change-note for MaD model generation
2025-04-28 12:50:58 +01:00
Michael Nebel
f9d8be1ef7
C#: Add change note.
2025-04-28 13:41:06 +02:00
Michael Nebel
8bc965641a
C#: Update integration tests expected output.
2025-04-28 13:38:15 +02:00
Michael Nebel
318bfc6d73
C#: Add cs/equality-on-floats to the code-quality suite.
2025-04-28 13:32:34 +02:00
Mathias Vorreiter Pedersen
f6e7d79f62
Merge pull request #19383 from MathiasVP/add-missing-predicate-to-mad-generation
...
C++: Fix missing summaries in MaD generation
2025-04-28 11:58:05 +01:00
github-actions[bot]
625354c46e
Release preparation for version 2.21.2
2025-04-28 10:55:22 +00:00
Nick Rolfe
35939ec3b1
Merge pull request #19394 from github/nickrolfe/actions-change-note
...
Follow-up fixes to #19376
2025-04-28 11:46:14 +01:00
Nick Rolfe
b61a87a2a3
Update integration test to match update to security-and-quality suite
2025-04-28 11:26:07 +01:00
Michael Nebel
2d6457e4d3
C#: Set the precision of cs/equality-on-floats to high.
2025-04-28 11:45:12 +02:00
Mathias Vorreiter Pedersen
e942ec9964
C++: Fix annotations after #19311 .
2025-04-28 10:39:11 +01:00
Mathias Vorreiter Pedersen
6466a5dbaf
Merge branch 'main' into add-missing-predicate-to-mad-generation
2025-04-28 10:33:24 +01:00
Nick Rolfe
70a3fe3e33
Add YAML front matter to change note
2025-04-28 10:09:33 +01:00
Asger F
152d6f3c29
JS: Tolerate trailing comma in JSON objects
2025-04-28 10:56:48 +02:00
Asger F
6dd8114f00
JS: Add test with trailing comma in JSON object
2025-04-28 10:56:34 +02:00
Paolo Tranquilli
2d32c366d8
Rust: add missing expected files
2025-04-28 10:46:36 +02:00
Michael Nebel
8857f0d0f2
Merge pull request #19311 from michaelnebel/csharp/generatorcleanup
...
Shared: Model generator cleanup.
2025-04-28 10:36:05 +02:00
Paolo Tranquilli
4ac104060e
Bazel: remove 2.0.0 rules_kotlin patching
2025-04-28 10:22:11 +02:00
Paolo Tranquilli
aafd7f8418
Merge branch 'main' into redsun82/update-rules-kotlin
2025-04-28 10:20:55 +02:00
Paolo Tranquilli
bcc65e13b0
Merge pull request #19381 from jketema/swift-doc
...
Swift: Clarify how the LFS artifacts should be updated
2025-04-28 09:42:52 +02:00
Tom Hvitved
14445a3d46
Merge pull request #19380 from hvitved/csharp/cfg/switch-fall-through
...
C#: Fix CFG for fall-through switch statements
2025-04-28 08:42:36 +02:00
Paolo Tranquilli
adeaceb7af
Rust: accept test changes
2025-04-25 17:41:13 +02:00
Michael B. Gale
987af4ce1d
Merge pull request #19248 from github/mbg/go/private-registries
...
Go: Support private registries via `GOPROXY`
2025-04-25 16:40:00 +01:00
Paolo Tranquilli
46fb041c50
Merge pull request #19384 from github/redsun82/swift-add-logs
...
Swift: add more debug logs
2025-04-25 17:24:11 +02:00
Paolo Tranquilli
89a9ae8bf4
Bazel: update rules_kotlin to 2.1.3
2025-04-25 17:18:09 +02:00
Michael B. Gale
7592ce47e3
Go: Restore parseRegistryConfigsFail test for the empty string
2025-04-25 15:45:12 +01:00
Michael B. Gale
91a794433a
Go: Change "Unable" to "Failed" for consistency
2025-04-25 15:42:29 +01:00
Michael B. Gale
5172a4d6ec
Go: Remove check from getEnvVars
2025-04-25 15:41:57 +01:00
Michael B. Gale
9cfa451477
Go: Fix/improve comment about environment variable preservation
2025-04-25 15:41:35 +01:00
Aditya Sharad
d4b083b5c0
Merge pull request #19376 from adityasharad/actions/exclude-model-generator-queries
...
Actions: Exclude model-generator queries from query suites
2025-04-25 20:03:32 +05:30
Paolo Tranquilli
49cf1739a4
Rust: expand attribute macros
2025-04-25 16:16:49 +02:00
Michael Nebel
de122225e8
C#/Rust: Update integration test expected output.
2025-04-25 15:52:36 +02:00
Michael Nebel
a589014243
C++: Update model generator tests.
2025-04-25 15:50:10 +02:00
Michael Nebel
d05f604390
C++: Adjust the model generator queries to the new shared implementation.
2025-04-25 15:50:08 +02:00
Michael Nebel
f6135d507b
Shared: Address review comments.
2025-04-25 15:50:06 +02:00
Michael Nebel
d187a7d144
Java: Update integration test that tracks queries not included in a query suite.
2025-04-25 15:50:04 +02:00
Michael Nebel
32125d2291
C#/Java/Rust: Add change notes.
2025-04-25 15:50:03 +02:00
Michael Nebel
21553960b0
Rust: Adjust tests.
2025-04-25 15:50:01 +02:00
Michael Nebel
71d0409bb7
Java: Convert the model generator neutral test to use the combined neutral generator.
2025-04-25 15:50:00 +02:00
Michael Nebel
7e51dae743
Java: Change the heuristic summary test tag to heuristic-summary.
2025-04-25 15:49:58 +02:00
Michael Nebel
08f7caaf39
Java: Adjust model generator test cases to the new implementation.
2025-04-25 15:49:56 +02:00
Michael Nebel
1d6c367049
C#: Change the capture neutral model test to use the content/heuristic version instead.
2025-04-25 15:49:55 +02:00
Michael Nebel
539a06dcb4
C#: Re-factor the heuristic summary test to use heuristic-summary tag in tests.
2025-04-25 15:49:53 +02:00
Michael Nebel
da99c75a13
C#: Rename some of the model generator tests.
2025-04-25 15:49:51 +02:00
Michael Nebel
7801fc321d
C#: Re-factor tests to use the new implementations.
2025-04-25 15:49:49 +02:00
Michael Nebel
2a0097ea56
C#/Java/Rust: Use Mixed flow from capture summary models queries and adjust other queries to the re-factored implementation.
2025-04-25 15:49:47 +02:00
Michael Nebel
f78be91af2
Shared: Re-factor the model generator and put the heuristic queries in its own module.
2025-04-25 15:49:45 +02:00
Michael Nebel
2357a69d55
Shared: Remove the --with-mixed-neutrals logic.
2025-04-25 15:49:44 +02:00
Michael Nebel
ae70c76a07
Shared: Use the CaptureSummaryModels instead of CaptureMixedSummaryModels.
2025-04-25 15:49:42 +02:00
Michael Nebel
fa5162fb13
Shared: Remove the backwards compatbility flag.
2025-04-25 15:49:41 +02:00
Michael Nebel
2a8fe53b04
Shared: Remove --with-mixed-summaries logic.
2025-04-25 15:49:38 +02:00
Tamás Vajk
3437210d32
Merge pull request #19355 from tamasvajk/test/add-query-suite-tests
...
Add query suite integration tests for swift, actions, csharp, go, javascript, ruby, rust
2025-04-25 15:37:51 +02:00
Paolo Tranquilli
d9a6a630e5
Swift: fix log compilation
2025-04-25 15:37:08 +02:00
Chuan-kai Lin
ed690972d4
Merge pull request #19379 from github/cklin/python-polynomial-redos
...
Python: disable diff-informed PolynomialReDoS.ql
2025-04-25 06:21:47 -07:00
Paolo Tranquilli
e71e7a08bb
Swift: add more debug logs
2025-04-25 15:20:20 +02:00
Tamas Vajk
998e64baf3
Fix failing C# test
2025-04-25 14:06:18 +02:00
Tamás Vajk
c54b684132
Apply suggestions from code review - code quality improvements
...
Co-authored-by: Paolo Tranquilli <redsun82@github.com >
2025-04-25 14:06:17 +02:00
Tamas Vajk
a4a24470c8
Add query suite inclusion tests for actions, csharp, go, javascript, ruby, rust
2025-04-25 14:06:17 +02:00
Tamas Vajk
522dd51416
Improve query suite test based on feedback
2025-04-25 14:06:16 +02:00
Tamas Vajk
4c9aee2cc7
Add query suite tests for swift with shared logic
2025-04-25 14:06:15 +02:00
Tom Hvitved
432435f1a6
Merge pull request #19358 from hvitved/rust/path-resolution-perf-tweaks
...
Rust: Path resolution performance tweaks
2025-04-25 14:01:47 +02:00
Michael B. Gale
e805d1ee90
Merge remote-tracking branch 'origin/main' into mbg/go/private-registries
2025-04-25 12:55:36 +01:00
Michael B. Gale
cafe1efefa
Go: Refactor ApplyProxyEnvVars
2025-04-25 12:30:48 +01:00
Mathias Vorreiter Pedersen
79c03100f8
C++: Accept test changes.
2025-04-25 12:29:38 +01:00
Mathias Vorreiter Pedersen
2f265395af
C++: Add missing predicate to grab the parameter position of a return kind.
2025-04-25 12:19:25 +01:00
Mathias Vorreiter Pedersen
63b0dd68c9
C++: Add a test with missing summaries.
2025-04-25 12:18:42 +01:00
Jeroen Ketema
9396f0ee55
C++: Set defaultFieldFlowBranchLimit to 3
2025-04-25 13:10:42 +02:00
Jeroen Ketema
ac3c3ae13a
C++: Do not limit second level scopes to the top-level
2025-04-25 13:10:40 +02:00
Jeroen Ketema
0b5a4a9133
Swift: Clarify how the LFS artifacts should be updated
2025-04-25 12:44:38 +02:00
Jeroen Ketema
8b95e0ee4a
Merge pull request #19315 from github/redsun82/swift-6.1
...
Swift: make extractor compile again after 6.1 upgrade
2025-04-25 12:34:39 +02:00
Jeroen Ketema
e8eac810b4
Swift: Commit external sources to git LFS
2025-04-25 11:56:28 +02:00
Tom Hvitved
e79a906426
C#: Fix CFG for fall-through switch statements
2025-04-25 11:48:30 +02:00
Tom Hvitved
a991ef0f87
C#: Add a CFG test for switch fall-through
2025-04-25 10:32:48 +02:00
Tom Hvitved
7e205366ab
Rust: Adjust clone modeling
2025-04-25 08:49:02 +02:00
Chuan-kai Lin
6c1e80df3a
Python: disable diff-informed PolynomialReDoS.ql
...
This commit disabled diff-informed for PolynomialReDoS.ql because it
could miss some alerts within diff ranges.
2025-04-24 14:57:06 -07:00
Aditya Sharad
b197de8db4
Actions: Add change note for removing model ggenerator queries
2025-04-24 14:21:04 -07:00
Aditya Sharad
05243bd855
Actions: Fix query ID for reusable workflow sinks query
2025-04-24 14:20:47 -07:00
Aditya Sharad
aabbfce010
Actions: Exclude model-generator queries from query suites
...
This change removes the model generator queries for Actions
sources/sinks/summaries from being run as part of the
`actions-security-and-quality.qls` query suite,
where they were accidentally included.
All languages will now exclude both `modelgenerator`
and `model-generator` tagged queries from their suites.
2025-04-24 13:25:38 -07:00
Ian Lynagh
f9172ff493
Merge pull request #19368 from igfoo/igfoo/add-check-for-buildmode-none
...
C++: Add exception for build-mode-none in various queries
2025-04-24 20:30:09 +01:00
Jeroen Ketema
5920925041
Merge pull request #19363 from jketema/platform
...
Update list of supported platforms
2025-04-24 19:11:31 +02:00
Jeroen Ketema
a5a21b1ddd
Swift: Guard 'getCaptures' in fillClosureExpr
2025-04-24 17:42:59 +02:00
Paolo Tranquilli
21170a1f6d
Merge pull request #19370 from github/redsun82/go-remove-invalid-toolchain-diagnostic
...
Go: remove invalid toolchain version diagnostics
2025-04-24 17:32:34 +02:00
Jeroen Ketema
21c97085a1
Merge pull request #19361 from jketema/fieldflow
...
Dataflow: Make default field flow branch limit configurable per language
2025-04-24 16:45:49 +02:00
Jeroen Ketema
55a8a4444d
Merge pull request #19365 from jketema/c23
...
C++: Claim beta support for C23 and C++23
2025-04-24 16:13:39 +02:00
Tom Hvitved
6df5a1ef80
Rust: Extract SelfParams from crate graph
2025-04-24 15:30:23 +02:00
Paolo Tranquilli
69b87a63b8
Go: remove invalid toolchain version diagnostics
...
This diagnostic was introduced by https://github.com/github/codeql/pull/15979 .
However in the meantime the Go team [has backtracked](https://github.com/golang/go/issues/62278#issuecomment-2062002018 )
on their decision, which leads to confusing alerts for user (e.g. https://github.com/github/codeql-action/issues/2868 ).
Even using Go toolchains from 1.21 to 1.22 we weren't immediately able
to reproduce the problem that this diagnostics was meant to guard
against. Therefore it was deemed simpler to just remove it.
_En passant_ the `Makefile` now accepts `rtjo` not being set.
2025-04-24 14:41:05 +02:00
Ian Lynagh
0cd859c559
C++: qlformat
2025-04-24 12:48:21 +01:00
Alexander Eyers-Taylor
ea83ecf802
Merge pull request #19327 from d10c/d10c/rtjo-csharp-jo-fix
...
C#: Join order fix
2025-04-24 12:34:22 +01:00
Ian Lynagh
063bff073b
C++: Add checks for build mode in various queries
...
Adds a check for the absence of build-mode-none in
cpp/wrong-type-format-argument
cpp/comparison-with-wider-type
cpp/integer-multiplication-cast-to-long
cpp/implicit-function-declaration
cpp/suspicious-add-sizeof
2025-04-24 12:15:31 +01:00
Geoffrey White
38397195a2
Rust: Add further source test cases for tokio.
2025-04-24 11:37:44 +01:00
Geoffrey White
b57375aa91
Rust: Add source tests for tcp (std and tokio).
2025-04-24 11:25:36 +01:00
Geoffrey White
809dd20f9d
Rust: Add source tests for tokio (file).
2025-04-24 11:22:52 +01:00
Geoffrey White
307424e87e
Rust: Add source tests for tokio (stdin).
2025-04-24 11:14:36 +01:00
Geoffrey White
dcc488cb05
Rust: Clean up the sources test.
2025-04-24 11:10:59 +01:00
Jeroen Ketema
42c4252a3d
C++: Claim beta support for C23 and C++23
...
All features we can support, we currently do support.
2025-04-24 11:44:16 +02:00
Jeroen Ketema
0357f3959b
Update list of supported platforms
...
I've effectively sync'ed this with the list of runners that are publicly
available. I did not yet add Windows 2025, as it is my understanding is that
we haven't really done any testing on that yet.
2025-04-24 11:28:09 +02:00
Jeroen Ketema
46b21af3ef
Dataflow: Make default field flow branch limit configurable per language
2025-04-24 11:02:49 +02:00
Jeroen Ketema
4093afbaab
Merge pull request #19290 from jketema/typeof
...
C++: Support C23 `typeof` and `typeof_unqual`
2025-04-24 10:12:46 +02:00
Michael Nebel
17f58c90bd
Merge pull request #19148 from michaelnebel/csharp/invalid-string-format
...
C#: Improve `cs/invalid-string-formatting` and add to the Code Quality suite.
2025-04-24 10:03:06 +02:00
Napalys Klicius
6a284eeecb
Merged ES6Class into FunctionStyleClass
2025-04-24 09:12:20 +02:00
Michael Nebel
65ac951964
C#: Remove all Sink tags after rebase.
2025-04-24 08:54:53 +02:00
Michael Nebel
dcf11c2d4b
C#: Match up sources, alerts and sinks in the tests.
2025-04-24 08:54:51 +02:00
Michael Nebel
b6d2f14b9b
C#: Add change note.
2025-04-24 08:54:49 +02:00
Michael Nebel
22ae3e7992
C#: Update string format item parameter expected test case.
2025-04-24 08:54:48 +02:00
Michael Nebel
f2dddd6d5c
C#: Hide the abstract FormatMethod class.
2025-04-24 08:54:47 +02:00
Michael Nebel
6de5920172
C#: Update test expected output.
2025-04-24 08:54:45 +02:00
Michael Nebel
042c7e5186
C#: Generalize array logic to params collection like types.
2025-04-24 08:54:43 +02:00
Michael Nebel
930bb6b515
C#: Add FP for string.Format using params collection.
2025-04-24 08:54:42 +02:00
Michael Nebel
39abd5c004
C#: Update test expected output.
2025-04-24 08:54:40 +02:00
Michael Nebel
f31235db43
C#: Improve format logic to take CompositeFormat and generics into account.
2025-04-24 08:54:39 +02:00
Michael Nebel
11dffc6647
C#: Add more invalid-string-formatting testcases.
2025-04-24 08:54:37 +02:00
Michael Nebel
8fb5fe97aa
C#: Update test expected output.
2025-04-24 08:54:36 +02:00
Michael Nebel
1d9d8780b3
C#: Remove some false positives and add more true positives for cs/invalid-string-format.
2025-04-24 08:54:34 +02:00
Michael Nebel
f73b7429c6
C#: Remove false positive example.
2025-04-24 08:54:33 +02:00
Michael Nebel
175e4ecb74
C#: Add more format testcases.
2025-04-24 08:54:31 +02:00
Michael Nebel
327ddb07a1
C#: Re-factor FormatMethod.
2025-04-24 08:54:30 +02:00
Michael Nebel
9cfd6e30b9
C#: Convert testing of cs/invalid-string-formatting to inline expectations and adjust some of the testcases.
2025-04-24 08:54:28 +02:00
Michael Nebel
68f93492b1
C#: Add cs/invalid-string-formatting to the codeql quality suite.
2025-04-24 08:54:27 +02:00
Michael Nebel
91f1183dfd
Merge pull request #19354 from michaelnebel/csharp/matchlinenumbersonsinks
...
Shared: Match line information on Alert and Sink locations.
2025-04-24 08:53:01 +02:00
Tom Hvitved
e72aba76f6
Rust: Path resolution performance tweaks
2025-04-23 19:49:20 +02:00
Jeroen Ketema
cad695868d
C++: Add change note
2025-04-23 17:51:06 +02:00
Jeroen Ketema
8086ef48c7
Swift: Add change note
2025-04-23 17:10:57 +02:00
Jeroen Ketema
eea963e3f4
Swift: Add upgrade and downgrade scripts
2025-04-23 17:10:57 +02:00
Jeroen Ketema
a74b38c0ec
Swift: Replace deprecated @_moveOnly in test by ~Copyable
2025-04-23 17:10:57 +02:00
Jeroen Ketema
59faf9fbdf
Swift: Update errors test
...
The representation of the errors seems to have changed somewhat in Swift 6.1.
2025-04-23 17:10:57 +02:00
Jeroen Ketema
10d86c9708
Swift: Disable parts of tests that crash with Swift 6.1
2025-04-23 17:10:56 +02:00
Jeroen Ketema
9a21b0dc5c
Swift: Update SuccessfullyExtractedLines for external code being extracted
2025-04-23 17:10:56 +02:00
Jeroen Ketema
e135f5ddf6
Swift: Update ObjectLiteralExpr test
...
The entities now have proper error types instead of missing types.
2025-04-23 17:10:56 +02:00
Jeroen Ketema
b6076c0481
Swift: Update test results for ParenType no longer being extracted
2025-04-23 17:10:55 +02:00
Jeroen Ketema
1b21e4c667
Swift: Update test results for IfConfigDecl no longer being extracted
2025-04-23 17:10:55 +02:00
Jeroen Ketema
36672f44b9
Swift: Take inverses into account when mangling ProtocolCompositionTypes
2025-04-23 17:10:55 +02:00
Paolo Tranquilli
7834a3d9e4
Swift: expand mangling of ExistentialMetatypeType
2025-04-23 17:10:55 +02:00
Jeroen Ketema
30242ed6fb
Swift: Remove "to do" comment
2025-04-23 17:10:54 +02:00
Jeroen Ketema
4fc5a73bac
Swift: Update mangling of OpenedArchetypeType
2025-04-23 17:10:54 +02:00
Paolo Tranquilli
1ac47a892b
Swift: make extractor compile again after 6.1 upgrade
2025-04-23 17:10:54 +02:00
Jeroen Ketema
0c313463b4
C++: Update stats file
2025-04-23 16:56:59 +02:00
Jeroen Ketema
a3e0c15c10
C++: Add upgrade and downgrade scripts
2025-04-23 16:56:57 +02:00
Jeroen Ketema
e97f9495d0
C++: Update expected test results
2025-04-23 16:56:56 +02:00
Jeroen Ketema
df3282c204
C++: Support C23 typeof and typeof_unqual
2025-04-23 16:56:47 +02:00
Michael Nebel
2e0ce44fde
Javascript: Update test files.
2025-04-23 15:41:41 +02:00
Geoffrey White
37bcedcf11
Merge pull request #19353 from geoffw0/modelnoise2
...
Rust: Remove unnecessary predicate.
2025-04-23 12:34:40 +01:00
Tom Hvitved
4abdc13f79
Merge pull request #19193 from hvitved/rust/path-resolution-where-clause
...
Rust: Take `where` clauses into account in path resolution
2025-04-23 13:00:58 +02:00
Michael Nebel
617f4729d8
Shared: Match line information on Alert and Sink locations.
2025-04-23 12:35:17 +02:00
Mathias Vorreiter Pedersen
808141f7e8
Merge pull request #19295 from MathiasVP/cpp-add-mad-generation-library
...
C++: Instantiate model generation library
2025-04-23 11:32:16 +01:00
Geoffrey White
d6f1bd9792
Rust: Remove unnecessary predicate.
2025-04-23 11:24:29 +01:00
Mathias Vorreiter Pedersen
9e9a580d02
C++: Add MaD generation test with union content.
2025-04-23 11:11:17 +01:00
Mathias Vorreiter Pedersen
07d8f8dd0d
C++: Add an empty model to prevent a warning.
2025-04-23 10:24:17 +01:00
Tom Hvitved
008dd3f4e3
Merge pull request #19272 from hvitved/ql4ql/qlref-inline-exp-kind-restrict
...
QL4QL: Restrict `ql/qlref-inline-expectations` to `(path-)problem` queries
2025-04-23 09:11:24 +02:00
Michael Nebel
62cb4bfd02
Merge pull request #19302 from michaelnebel/csharp/missing-access-control
...
C#: Relax condition for authorize attributes on `cs/web/missing-function-level-access-control`.
2025-04-23 09:09:32 +02:00
Tom Hvitved
959a79f995
Merge pull request #19345 from hvitved/shared/file-system-append-join-fix
...
Shared: Fix join in `FileSystem.qll`
2025-04-23 09:01:40 +02:00
Pierre
97ca2afa7a
Merge pull request #19348 from github/changedocs-2.21.1
...
changedocs from 2.21.1 release
2025-04-22 22:14:43 +02:00
Pierre
2439b1e89a
Merge branch 'main' into changedocs-2.21.1
2025-04-22 22:04:28 +02:00
Jon Janego
1cf10d8f9f
changedocs from 2.21.1 release
2025-04-22 14:51:11 -05:00
Jami
4483a24133
Merge pull request #19075 from jcogs33/jcogs33/java/do-not-use-finalizers
...
Java: Add new quality query to detect `finalize` calls
2025-04-22 14:11:14 -04:00
Jami
ed99088c2b
Merge pull request #19094 from jcogs33/jcogs33/java/junit5-missing-nested-annotation
...
Java: Add new quality query to detect missing `@Nested` annotation in JUnit5 tests
2025-04-22 13:10:00 -04:00
Jeroen Ketema
7ee862a3af
Merge pull request #19347 from jketema/swift-files-2
...
Swift: Make file checking in tests more strict
2025-04-22 17:15:11 +02:00
Jeroen Ketema
adb58e304d
Swift: Make file checking in tests more strict
...
With Swift 6.1 the extractor will start to extract files outside of the test
directory. These files and their elements we do not want to see in our tests.
Test forgotten in https://github.com/github/codeql/pull/19344
2025-04-22 16:51:36 +02:00
Jeroen Ketema
03ce2b0867
Merge pull request #19346 from jketema/swift-files-2
...
Swift: Make file checking in integration tests more strict
2025-04-22 15:33:33 +02:00
Jeroen Ketema
375ec8f948
Merge pull request #19344 from jketema/swift-files
...
Swift: Make file checking in tests more strict
2025-04-22 15:33:15 +02:00
Tom Hvitved
40390d1ada
Address review comment
2025-04-22 15:08:39 +02:00
Napalys
fdfdcc0d93
Undo unnecessary name tracking for request, response objects
2025-04-22 14:16:45 +02:00
Jeroen Ketema
a211998bc9
Swift: Make file checking in integration tests more strict
...
With Swift 6.1 the extractor will start to extract files outside of the test
directory. These files and their elements we do not want to see in our tests.
2025-04-22 13:52:15 +02:00
Alexander Eyers-Taylor
c11ed6d119
Merge pull request #19116 from github/alexet/ruby-deterministic
...
Ruby: Make module graph queries avoid relying on evalaution order.
2025-04-22 11:27:03 +01:00
Tom Hvitved
ae5ac11387
Shared: Fix join in FileSystem.qll
...
Before
```
Evaluated relational algebra for predicate FileSystem::Folder::Append<PathResolution::shouldAppend>::appendStep/3#bed54f6d@d2a7eeoa on iteration 2 running pipeline standard with tuple counts:
120 ~2% {4} r1 = SCAN `FileSystem::Folder::Append<PathResolution::shouldAppend>::appendStep/3#bed54f6d#prev_delta` OUTPUT In.1, In.0, In.2, In.3
0 ~0% {6} r2 = JOIN r1 WITH `_FileSystem::Folder::Append<PathResolution::shouldAppend>::getComponent/2#a6e36a04#join_rhs#1` ON FIRST 1 OUTPUT Lhs.0, Rhs.1, Lhs.1, Lhs.2, Lhs.3, _
{6} | REWRITE WITH Tmp.5 := 1, Out.5 := (InOut.1 - Tmp.5), TEST Out.5 = InOut.3
0 ~0% {4} | SCAN OUTPUT In.2, In.0, In.1, In.4
91 ~3% {6} r3 = JOIN r1 WITH `_FileSystem::Folder::Append<PathResolution::shouldAppend>::getComponent/2#a6e36a04#join_rhs` ON FIRST 1 OUTPUT Lhs.0, Rhs.1, Lhs.1, Lhs.2, Lhs.3, _
{6} | REWRITE WITH Tmp.5 := 1, Out.5 := (InOut.1 - Tmp.5), TEST Out.5 = InOut.3
81 ~0% {4} | SCAN OUTPUT In.4, In.0, In.1, In.2
81 ~3% {4} | JOIN WITH containerparent_10#join_rhs ON FIRST 1 OUTPUT Lhs.3, Lhs.1, Lhs.2, Rhs.1
269 ~0% {7} r4 = JOIN r1 WITH `_FileSystem::Folder::Append<PathResolution::shouldAppend>::getComponent/2#a6e36a04#join_rhs#2` ON FIRST 1 OUTPUT Lhs.0, Rhs.1, Rhs.2, Lhs.1, Lhs.2, Lhs.3, _
{7} | REWRITE WITH Tmp.6 := 1, Out.6 := (InOut.1 - Tmp.6), TEST Out.6 = InOut.4
39 ~1% {5} | SCAN OUTPUT In.5, In.0, In.1, In.2, In.3
1295 ~0% {6} | JOIN WITH containerparent ON FIRST 1 OUTPUT Rhs.1, Lhs.3, _, Lhs.1, Lhs.2, Lhs.4
1295 ~0% {6} | REWRITE WITH Out.2 := 1
34 ~1% {4} | JOIN WITH `cached_FileSystem::Container.splitAbsolutePath/2#dispred#dc97b0cc` ON FIRST 3 OUTPUT Lhs.5, Lhs.3, Lhs.4, Lhs.0
115 ~0% {4} r5 = r2 UNION r3 UNION r4
115 ~0% {4} | AND NOT `FileSystem::Folder::Append<PathResolution::shouldAppend>::appendStep/3#bed54f6d#prev`(FIRST 4)
return r5
```
After
```
Evaluated relational algebra for predicate FileSystem::Folder::Append<PathResolution::shouldAppend>::appendStep/3#bed54f6d@4fb6e6v7 on iteration 2 running pipeline standard with tuple counts:
120 ~0% {4} r1 = SCAN `FileSystem::Folder::Append<PathResolution::shouldAppend>::appendStep/3#bed54f6d#prev_delta` OUTPUT In.1, In.0, In.2, In.3
0 ~0% {6} r2 = JOIN r1 WITH `_FileSystem::Folder::Append<PathResolution::shouldAppend>::getComponent/2#a6e36a04#join_rhs#1` ON FIRST 1 OUTPUT Lhs.0, Rhs.1, Lhs.1, Lhs.2, Lhs.3, _
{6} | REWRITE WITH Tmp.5 := 1, Out.5 := (InOut.1 - Tmp.5), TEST Out.5 = InOut.3
0 ~0% {4} | SCAN OUTPUT In.2, In.0, In.1, In.4
91 ~0% {6} r3 = JOIN r1 WITH `_FileSystem::Folder::Append<PathResolution::shouldAppend>::getComponent/2#a6e36a04#join_rhs` ON FIRST 1 OUTPUT Lhs.0, Rhs.1, Lhs.1, Lhs.2, Lhs.3, _
{6} | REWRITE WITH Tmp.5 := 1, Out.5 := (InOut.1 - Tmp.5), TEST Out.5 = InOut.3
81 ~0% {4} | SCAN OUTPUT In.4, In.0, In.1, In.2
81 ~5% {4} | JOIN WITH containerparent_10#join_rhs ON FIRST 1 OUTPUT Lhs.3, Lhs.1, Lhs.2, Rhs.1
269 ~0% {7} r4 = JOIN r1 WITH `_FileSystem::Folder::Append<PathResolution::shouldAppend>::getComponent/2#a6e36a04#join_rhs#2` ON FIRST 1 OUTPUT Lhs.0, Rhs.1, Rhs.2, Lhs.1, Lhs.2, Lhs.3, _
{7} | REWRITE WITH Tmp.6 := 1, Out.6 := (InOut.1 - Tmp.6), TEST Out.6 = InOut.4
39 ~3% {5} | SCAN OUTPUT In.5, In.2, In.0, In.1, In.3
34 ~0% {4} | JOIN WITH `FileSystem::Folder::Append<PathResolution::shouldAppend>::getAChildContainer/2#2e91feca` ON FIRST 2 OUTPUT Lhs.4, Lhs.2, Lhs.3, Rhs.2
115 ~2% {4} r5 = r2 UNION r3 UNION r4
115 ~2% {4} | AND NOT `FileSystem::Folder::Append<PathResolution::shouldAppend>::appendStep/3#bed54f6d#prev`(FIRST 4)
return r5
```
2025-04-22 12:16:59 +02:00
Napalys Klicius
63402ea581
Merge pull request #2 from asgerf/js/fastify-addhook
...
JS: Add isMiddlewareSetup() hook to Routing model
2025-04-22 12:07:39 +02:00
Asger F
00661b62dc
JS: Add isMiddlewareSetup() hook to Routing model
2025-04-22 12:00:02 +02:00
Anders Schack-Mulligen
d05e90518c
Merge pull request #19296 from Marcono1234/patch-1
...
Docs: Fix typo in code sample
2025-04-22 11:08:17 +02:00
Jeroen Ketema
ce5c48192e
Swift: Make file checking in tests more strict
...
With Swift 6.1 the extractor will start to extract files outside of the test
directory. These files and their elements we do not want to see in our tests.
2025-04-22 10:41:12 +02:00
Asger F
c2cab184ac
Merge pull request #19283 from asgerf/js/rest-pattern-fix
...
JS: Fix missing flow into rest pattern lvalue
2025-04-22 10:37:36 +02:00
Jami Cogswell
3aa6b49204
Java: Add new query to java-code-quality.qls.expected
2025-04-21 10:02:08 -04:00
Jami
72d49f21ee
Merge branch 'main' into jcogs33/java/do-not-use-finalizers
2025-04-21 09:57:53 -04:00
Jami Cogswell
07a694e804
Java: add new query to java-code-quality.qls.expected
2025-04-21 09:52:52 -04:00
Jami
02ded89d84
Merge branch 'main' into jcogs33/java/junit5-missing-nested-annotation
2025-04-21 09:46:49 -04:00
Jami
2b9160526a
Apply docs review suggestion
...
Co-authored-by: mc <42146119+mchammer01@users.noreply.github.com >
2025-04-20 21:47:25 -04:00
Mathias Vorreiter Pedersen
3fd760c632
C++: Move 'InlineMadTest.qll' out of 'lib/utils/test' and into 'test' since C++ has no external packs depending on MaD testing.
2025-04-20 16:49:02 +01:00
Mathias Vorreiter Pedersen
6fcf56e6e1
C++: Add more tests.
2025-04-20 16:49:00 +01:00
Mathias Vorreiter Pedersen
f6f5f97109
C++: Also make protected members irrelevant.
2025-04-20 16:48:58 +01:00
Mathias Vorreiter Pedersen
e55f94c364
C++: Move contents of 'isUninterestingForDataFlowModels' to 'relevant'
2025-04-20 16:48:56 +01:00
Mathias Vorreiter Pedersen
9cba91c682
C++: Add another entry to 'qlpack' for external models.
2025-04-20 16:48:54 +01:00
Mathias Vorreiter Pedersen
0ce6ab5444
Remove an unnecessary if.
2025-04-20 16:48:53 +01:00
Mathias Vorreiter Pedersen
5462dcdf75
C++: Make final member functions not extensible.
2025-04-20 16:48:51 +01:00
Mathias Vorreiter Pedersen
1f43e51be4
C++: Fix ql-for-ql findings.
2025-04-20 16:48:49 +01:00
Mathias Vorreiter Pedersen
1465058da0
C++: Add copy-pasted files from C#.
2025-04-20 16:48:47 +01:00
Mathias Vorreiter Pedersen
09ebd6e87d
C++: Instantiate inline expectation test framework to test model generation.
2025-04-20 16:48:45 +01:00
Mathias Vorreiter Pedersen
f241e4b537
C++: Add tests that will soon succeed.
2025-04-20 16:48:43 +01:00
Mathias Vorreiter Pedersen
3d48b23428
C++: Instantiate model generation library.
2025-04-20 16:48:41 +01:00
Nora Dimitrijević
7f5b48d485
C#: Fix join order in ExternalFlow::interpretElement/6 (only affects RTJO mode)
2025-04-17 15:52:13 +02:00
Geoffrey White
254789c89a
Merge pull request #19305 from geoffw0/modelnoise
...
Rust: Remove the noisy models output from the dataflow/local test.
2025-04-17 13:16:45 +01:00
Geoffrey White
22b3ef7f20
Merge pull request #19333 from geoffw0/consistency
...
Rust: Make source kinds consistent with other languages
2025-04-17 13:15:00 +01:00
Jeroen Ketema
53bd2361af
Merge pull request #19329 from github/idrissrio/designated-initializer
...
C++: add predicate to distinguish designator-based initializations
2025-04-17 13:15:42 +02:00
Arthur Baars
48f9e5a96d
Merge pull request #19237 from github/aibaars/crate-graph-type-variables
...
Rust: extract generic parameters, arguments and resolve bound type variables
2025-04-17 13:02:41 +02:00
Geoffrey White
8d60e82ec0
Merge branch 'main' into modelnoise
2025-04-17 10:43:15 +01:00
Geoffrey White
43069f139d
Rust: command-line-source -> commandargs.
2025-04-17 10:15:04 +01:00
Geoffrey White
ed2d06bcd7
Rust: environment-source -> environment.
2025-04-17 09:57:59 +01:00
Geoffrey White
7e108a8a29
Merge pull request #19310 from geoffw0/trim
...
Rust: Add model for str.trim
2025-04-17 09:48:45 +01:00
Geoffrey White
e1bddb6152
Merge pull request #19304 from geoffw0/rustio
...
Rust: Model sources for std::io
2025-04-17 09:47:21 +01:00
Geoffrey White
372ba5c9a5
Merge branch 'main' into modelnoise
2025-04-17 09:42:43 +01:00
Geoffrey White
9da6d9435e
Rust: More tests affected.
2025-04-16 17:41:27 +01:00
Geoffrey White
77d3c95d6e
Merge branch 'main' into trim
2025-04-16 15:33:30 +01:00
Joe Farebrother
6431228d37
Limit size of allowImplicitRead for performance
2025-04-16 09:40:01 +01:00
Nicolas Will
1958c192ec
Reimplement EC, MAC, key creation logic + consumer
2025-04-15 23:00:12 -04:00
Arthur Baars
7bfd5f161e
Rust: crate graph: extract associated types
2025-04-15 17:21:04 +02:00
Arthur Baars
2f87630ded
Rust: update expected output
2025-04-15 17:18:51 +02:00
Arthur Baars
a4b1c2bbdc
Rust: crate graph: resolve bound type variablesp
2025-04-15 17:18:49 +02:00
Arthur Baars
db4306d0c1
Rust: avoid duplication for functions and methods
2025-04-15 17:18:48 +02:00
Arthur Baars
0545f782e0
Rust: get rid of const_or_function
2025-04-15 17:18:46 +02:00
Arthur Baars
5cfbedc114
Rust: replace singleton vectors with Option
2025-04-15 17:18:45 +02:00
Arthur Baars
b24fbe8db9
Rust: remove unreachable case
...
Enum variants cannot be declared as a module item, they can only be imported
2025-04-15 17:18:44 +02:00
Arthur Baars
cec95ae875
Rust: crate graph: generic parameters
2025-04-15 17:18:42 +02:00
Arthur Baars
a7ccba9aeb
Rust: crate graph: type variables
2025-04-15 17:18:28 +02:00
Arthur Baars
2c31363680
Partially revert "Rust: fix compilation errors"
...
This reverts commit 260322b669 .
2025-04-15 17:16:23 +02:00
Geoffrey White
432d4b0eca
Merge branch 'main' into trim
2025-04-15 16:05:02 +01:00
Geoffrey White
39a875e751
Rust: Make some summaries value type.
2025-04-15 14:46:57 +01:00
Geoffrey White
c561da4536
Merge branch 'main' into rustio
2025-04-15 12:29:55 +01:00
Geoffrey White
fea82d4d6a
Merge branch 'main' into trim
2025-04-15 12:21:48 +01:00
Geoffrey White
40a5db6736
Rust: Other tests affected.
2025-04-15 11:52:23 +01:00
Geoffrey White
c06f340bd8
Rust: Make str / String models consistent.
2025-04-15 11:47:29 +01:00
Geoffrey White
bfe9cdfed5
Rust: Add model for str.trim and as_bytes.
2025-04-15 11:26:52 +01:00
Michael Nebel
0b10d34cae
C#: Add change note.
2025-04-15 10:53:40 +02:00
Napalys
5c3556da66
Add user-controlled property tracking and update code injection alerts in Fastify hooks
2025-04-15 09:41:52 +02:00
Napalys
9b194ea613
Added addHook to RouteSetup thus now it is recognized now as rouute handler
2025-04-15 09:37:13 +02:00
Napalys
c175081698
Added test cases for fastify.addHook
2025-04-15 09:33:41 +02:00
Napalys
f1a3293f4c
Added change note
2025-04-15 09:27:51 +02:00
Geoffrey White
bdd5717c09
Rust: Remove the models output from the dataflow/local test.
2025-04-14 16:42:20 +01:00
Geoffrey White
a8b552200a
Rust: Impact on dataflow/local test.
2025-04-14 15:03:04 +01:00
Geoffrey White
24bcd041b8
Rust: Add flow models for io.
2025-04-14 14:20:45 +01:00
Michael Nebel
f11aec3592
C#: Update test expected output.
2025-04-14 14:26:51 +02:00
Michael Nebel
c15d1ab3bd
C#: Consider an attribute to be authorization like, if it extends an attribute that has an authorization like name.
2025-04-14 14:25:31 +02:00
Michael Nebel
2e7e276806
C#: Add test case for authorization attribute that extends Authorize.
2025-04-14 14:18:30 +02:00
Michael Nebel
8d571672e9
C#: Convert cs/missing-access-control to inline expectations test.
2025-04-14 13:54:43 +02:00
Geoffrey White
7a9ea52bc7
Rust: Add source models for io.
2025-04-14 10:47:30 +01:00
Geoffrey White
4f9f550ba6
Rust: Add source models for fs.
2025-04-14 10:47:26 +01:00
Geoffrey White
258c1afe27
Rust: Add tests for std::fs sources.
2025-04-14 10:47:21 +01:00
Geoffrey White
cef3cd9b54
Rust: Add tests for std::io sources.
2025-04-14 10:47:17 +01:00
Marcono1234
64f37ea24c
Docs: Fix typo in code sample
2025-04-12 16:01:55 +02:00
Asger F
6c01709048
JS: Update more test output
2025-04-11 15:15:22 +02: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
Tom Hvitved
e26695fc51
Rust: Take where clauses into account in path resolution
2025-04-11 09:28:08 +02:00
Tom Hvitved
cc85a09b39
Rust: Add AI-generated test for path resolution of where clauses
2025-04-11 09:24:09 +02:00
Asger F
719456e27d
JS: Fix missing flow into rest pattern lvalue
2025-04-11 08:37:09 +02:00
Asger F
7703b1fab5
JS: Add test for missing getALocalSource flow for rest pattern
2025-04-11 08:37:07 +02:00
Paolo Tranquilli
00f6d9b305
Rust: start preparing documentation changes
2025-04-10 17:35:27 +02:00
Tom Hvitved
a578f44af4
QL4QL: Restrict ql/qlref-inline-expectations to (path-)problem queries
2025-04-10 15:03:57 +02:00
Nicolas Will
b9d0abda63
Move CipherOperation into KeyOperation, refactor
...
- KeyOperation and Algorithm now encompasses encryption, decryption, wrapping, unwrapping, signing, and verifying.
- Removed elliptic curve implementation from JCA.qll pending rewrite
- Removed JCAAlgorithmInstance abstraction from JCA.qll
- Cleaned up and removed JCA-specific naming from Model.qll
- Added and clarified documentation
2025-04-09 21:19:00 +02:00
Michael B. Gale
e210be7bb2
Go: Preserve environment variables in ApplyProxyEnvVars
2025-04-08 12:38:38 +01:00
Michael B. Gale
0f78e11376
Go: Detect and apply proxy settings (WIP)
2025-04-08 12:02:15 +01:00
Michael B. Gale
ded27bcee4
Go: Replace exec.Command("go" with toolchain.GoCommand(
2025-04-08 11:19:42 +01:00
REDMOND\brodes
a2fe19af38
Initial progress on key agreement.
2025-04-04 16:00:05 -04:00
Jami Cogswell
798907dc50
Java: remove change note
2025-04-04 14:01:35 -04:00
Jami Cogswell
77eeab33a6
Java: remove change note
2025-04-04 13:57:34 -04:00
Ben Rodes
69429a3e02
Merge pull request #9 from nicolaswill/brodes/elliptic_curves
...
Misc. modifications to support elliptic curves and hooking them up to…
2025-04-04 09:06:20 -04:00
REDMOND\brodes
697c9f0bb0
Elliptic curve AVCs are incorrect, but I'm not sure how to fix them generally. Putting in a stop gap to use 'isCipherAVC' for now.
2025-04-04 09:02:09 -04:00
Jami Cogswell
fc21abc7e4
Java: update qhelp implementation notes to say 'method declarations'
2025-04-03 16:05:23 -04:00
Jami Cogswell
0380279c39
Java: update qhelp implementation notes for more clarity
2025-04-02 19:43:33 -04:00
Jami Cogswell
05d7b9a19a
Java: add reliability tag
2025-04-02 19:11:26 -04:00
Jami Cogswell
6ade97892f
Java: update maintainability tag to reliability instead
2025-04-02 19:06:02 -04:00
REDMOND\brodes
66a60296b8
Merge branch 'brodes/cipher_operation' into brodes/elliptic_curves
2025-04-02 13:46:12 -04:00
Nicolas Will
50507586ac
Refactor output artifact type
2025-04-02 19:44:57 +02:00
Jami Cogswell
1a2c34dd28
Java: update qhelp implementation notes for clarity
2025-04-01 16:24:13 -04:00
REDMOND\brodes
ac96649a02
Misc. modifications to support elliptic curves and hooking them up to keygeneration.
2025-04-01 16:15:49 -04:00
Jami
c4b8396333
fix typo in query description
...
Co-authored-by: Owen Mansel-Chan <62447351+owen-mc@users.noreply.github.com >
2025-04-01 15:52:57 -04:00
Jami Cogswell
e621f9fd49
Java: update comments in tests
2025-04-01 15:48:52 -04:00
Jami Cogswell
faeb7ab890
Java: add blank lines to qldocs
2025-04-01 14:54:46 -04:00
Alex Eyers-Taylor
0ccbe3ef7f
Ruby: Make module graph queries avoid relying on evalaution order.
2025-04-01 16:18:45 +01:00
Jami Cogswell
416643ce39
Java: update qhelp recommendation and example
2025-03-31 21:09:21 -04:00
Jami
e458aca806
Merge branch 'main' into jcogs33/java/junit5-missing-nested-annotation
2025-03-27 21:31:09 -04:00
Jami Cogswell
92cdddf604
Java: resolve filename conflict
2025-03-27 21:29:20 -04:00
Jami Cogswell
caf21a8202
Java: update qhelp and add 'performace' tag
2025-03-27 20:20:48 -04:00
Jami Cogswell
3631df03c7
Java: add to code-quality suite
2025-03-27 19:38:10 -04:00
Jami Cogswell
ed22a16f32
Java: exclude overloads of finalize
2025-03-27 19:35:46 -04:00
Jami Cogswell
f73eda0c38
Java: add previous-id and change 'use' to 'call'
2025-03-27 19:35:44 -04:00
Jami Cogswell
2e25498143
Java: add change note
2025-03-27 19:35:42 -04:00
Jami Cogswell
44445dbeb8
Java: minor refactor
2025-03-27 19:35:41 -04:00
Jami Cogswell
dd57d1aec6
Java: add quality tag
2025-03-27 19:35:39 -04:00
Jami Cogswell
c689a0e9b7
Java: add more test cases
2025-03-27 19:35:37 -04:00
Jami Cogswell
d9482ae334
Java: update tests to use inline expectations
2025-03-27 19:35:35 -04:00
Jami Cogswell
9a6e241f54
Java: update to only find 'finalize' calls and add 'super.finalize' exclusion
2025-03-27 19:35:34 -04:00
Jami Cogswell
56ea9b6523
Java: move original files
2025-03-27 19:35:32 -04:00
Nicolas Will
bec69ca106
Refactor consumer and generic source model
2025-03-26 13:27:32 +01:00
Nicolas Will
9cd0340d21
Remove rankdir=LR; from DOT output
2025-03-26 13:26:45 +01:00
Jami
e169c21f8b
Apply suggestions from docs review
...
Co-authored-by: mc <42146119+mchammer01@users.noreply.github.com >
2025-03-25 07:19:39 -04:00
Jami Cogswell
b9bf192c09
Java: previous-id property instead of tag, see #19097
2025-03-24 14:37:05 -04:00
Jami Cogswell
0f002624d6
Java: remove mention of abstract classes from qhelp
2025-03-23 19:51:37 -04:00
Jami Cogswell
dca4c58b29
Java: add to ccr/quality suite
2025-03-23 19:51:35 -04:00
Jami Cogswell
37092f4411
Java: add 'testability' and 'frameworks/junit' tags
2025-03-23 19:51:26 -04:00
Jami Cogswell
35b647839c
Java: include RepeatedTest, ParameterizedTest, TestFactory, and TestTemplate when identifying JUnit 5 test methods
2025-03-23 19:49:55 -04:00
Jami Cogswell
4d7bed6181
Java: exclude anonymous, local, and private classes
2025-03-23 19:49:53 -04:00
Jami Cogswell
3e13f0ed41
Java: remove redundant 'non-static' wording and update qhelp
2025-03-23 19:49:41 -04:00
Jami Cogswell
640096c822
Java: change note
2025-03-23 19:48:20 -04:00
Jami Cogswell
ed57bc7858
Java: exclude abstract classes
2025-03-23 19:48:18 -04:00
Jami Cogswell
b08c8d020d
Java: tests to inline expectations
2025-03-23 19:48:17 -04:00
Jami Cogswell
f17e7266cf
Java: refactor QL
2025-03-23 19:48:15 -04:00
Jami Cogswell
ccbe77eb09
Java: move original files
2025-03-23 19:48:13 -04:00
Nicolas Will
e9c3e14fab
Merge branch 'brodes/cipher_operation' of https://github.com/nicolaswill/codeql into brodes/cipher_operation
2025-03-22 08:01:06 +01:00
Nicolas Will
fb7c003398
Add initial MAC support for JCA, refactor hashes
2025-03-22 08:01:03 +01:00
REDMOND\brodes
9278a41578
Merge branch 'brodes/cipher_operation' of https://github.com/nicolaswill/codeql into brodes/cipher_operation
2025-03-20 16:28:43 -04:00
REDMOND\brodes
b695641362
Add signature to cipher operation
2025-03-20 16:27:20 -04:00
Nicolas Will
d18dac0c8e
Add JCA key (generation) modelling
2025-03-20 21:26:18 +01:00
REDMOND\brodes
63aaebbea6
.
2025-03-19 18:30:06 -04:00
Nicolas Will
95607c5f31
Refactor instances and consumers + add JCA hashes
2025-03-18 22:05:00 +01:00
REDMOND\brodes
8a7671dc2a
Adding block mode models to openssl.
2025-03-11 15:20:05 -04:00
REDMOND\brodes
71eae39feb
Adding missing block modes.
2025-03-11 15:19:42 -04:00
REDMOND\brodes
c98e6d7c56
Adding a stub EVP_CIpher_Operation for EVP_PKEY, this probably should be made into it's own class, hence it is a stub with comments.
2025-03-11 14:49:07 -04:00
REDMOND\brodes
a9458ba762
Formatting, removing dead comments,
2025-03-11 14:48:38 -04:00
REDMOND\brodes
d988afd4a4
Adding an EVP_AASYM_CIPHER_fetch getter.
2025-03-11 14:47:10 -04:00
REDMOND\brodes
7757279908
Adding a KDF algorithm getter.
2025-03-11 14:46:36 -04:00
REDMOND\brodes
44b1e921d6
commenting out hash size for now, TODO
2025-03-11 14:10:04 -04:00
REDMOND\brodes
085e8d40fd
Hash nodes have instances.
2025-03-11 14:06:36 -04:00
REDMOND\brodes
f69b057893
Updating OpenSSLKnownAlgorithmConstants.qll (a few bugs) and also enforcing that known key sizes are on the normalized name (need to re-visit for GOST).
2025-03-11 13:35:44 -04:00
REDMOND\brodes
ae574f7cf2
Resolving hash and cipher types for openssl not using literals but KnownOpenSSLAlgorithmConstant.
2025-03-11 13:35:02 -04:00
REDMOND\brodes
f72efa638a
Uncommenting out generic dataflow
2025-03-10 16:12:53 -04:00
REDMOND\brodes
c83cb533ce
Adding an instantiation of the additional flow step class to automatically apply to generic dataflow. Flow step passthrough comes from the algorithm to getter flow passthroughs.
2025-03-10 15:56:01 -04:00
REDMOND\brodes
036035b6a2
Adding modeling for OpenSSL random number generation.
2025-03-10 15:04:19 -04:00
REDMOND\brodes
fe52351aed
Stubbing out hash operation node, borrowing from cipher operaiton node
2025-03-10 14:10:55 -04:00
REDMOND\brodes
73368ea59a
Adding hashes to openssl library import
2025-03-10 13:27:39 -04:00
REDMOND\brodes
0672027822
Tracing new notion of known getters, which now includes direct getters for cipher and hash. Removed a redundant hash qll, and fixed misplacement of has type in model.
2025-03-10 11:46:26 -04:00
REDMOND\brodes
451808616e
Getting rid of commented out code.
2025-03-10 11:35:16 -04:00
REDMOND\brodes
bd07b8a4c7
Making getter flow through 'copy' more general (copy can appear in any part of the call name now.
2025-03-10 11:34:26 -04:00
REDMOND\brodes
6a4659fc7e
Updating known constants for OpenSSL to handle direct algorithm getters from older versions of openssl (e.g., EVP_md5())
2025-03-10 11:33:46 -04:00
REDMOND\brodes
3316d6135d
Ctx flow comments.
2025-03-10 11:32:14 -04:00
REDMOND\brodes
d99812a10d
Adding GOSTHash to THashType.
2025-03-10 09:59:28 -04:00
REDMOND\brodes
64241caf1d
Merge branch 'brodes/cipher_operation' of https://github.com/nicolaswill/codeql into brodes/cipher_operation
2025-03-07 14:25:13 -05:00
REDMOND\brodes
bac0a635f9
Initial hash models for openssl.
2025-03-07 14:24:01 -05:00
Nicolas Will
47affa0fed
Restore location output for nodes
2025-03-07 18:30:58 +01:00
REDMOND\brodes
cf72fde911
Fixing cross product in getPropertyAsGraphString (parameter root not bound in all cases, fixing using a bindingetset)
2025-03-07 12:11:12 -05:00
REDMOND\brodes
32d29ffde3
Changed casing on TCipherType, Added some initial fixes for hash support, started developing openssl hashing modeling.
2025-03-07 10:02:36 -05:00
REDMOND\brodes
b9bd199432
Regression fixes for JCA
2025-03-06 13:39:23 -05:00
REDMOND\brodes
6083df2b7f
Completed tying algorithm instances to consumers. Now the model should have known literals for cipher instances, and it traces those instances to consumers (inits) and those inits are traced to cipher operations.
2025-03-05 15:48:08 -05:00
REDMOND\brodes
de3ff45cba
Misc updates for OpenSSL modeling to trace algorithm literals to known alg getters, and converting the literal to a TCipherType.
2025-03-05 15:17:52 -05:00
REDMOND\brodes
cce5f24b38
Initial OpenSSL modeling work.
2025-03-04 15:52:57 -05:00
REDMOND\brodes
8865d89fe9
Removing old ReusedNonce query.
2025-03-03 16:51:30 -05:00
REDMOND\brodes
2ee1681126
Adding a proof-of-concept PossibleReusedNonce query.
2025-03-03 15:09:27 -05:00
REDMOND\brodes
14cb2bb12f
Updates to insecure or unknown nonce at operation.
2025-03-03 14:42:50 -05:00
REDMOND\brodes
076f53147d
Proof-of-concept query for InsecureOrUnknownNonceAtOperation
2025-03-03 13:53:16 -05:00
Nicolas Will
627790f98b
Clean up consumer and instance interfaces
2025-03-03 19:06:53 +01:00
Nicolas Will
cf33cf7653
Add input and output nodes and fix cross product
2025-02-28 15:21:46 +01:00
Nicolas Will
0354afc365
Make ArtifactConsumers instances of some Artifacts
...
TODO: refactor the interfaces
2025-02-27 15:54:38 +01:00
Nicolas Will
ef0614ad45
Restore removed node location output
2025-02-27 05:45:27 +01:00
Nicolas Will
04f4683399
Rewrite handling of known unknowns and data-flow
2025-02-27 05:42:02 +01:00
Nicolas Will
f55f27b0d9
Expand handling of generic artifact sources
2025-02-25 18:22:38 +01:00
Nicolas Will
eb91ecf1fb
Add generic artifact data-flow
...
The relation between RNG and other artifacts has been added
Nonce has been completed to report its source
2025-02-25 02:53:13 +01:00
Nicolas Will
2b0b927b0b
Add Nonce association to Operation, update graph
2025-02-24 17:37:41 +01:00
REDMOND\brodes
86cab46b8d
Misc. updates to support all JCA cipher operations, including wrap, unwrap and doFinal calls. Corrected pathing for init tracing to detect what mode is being set along a path. Added support for tracing the init operation mode argument to source. Since this involved creating an Operation Mode, changes were also made to make cipher block modes (CBC) more explicit (previously just called mode, but now that term is used for various purposes).
2025-02-21 12:53:35 -05:00
REDMOND\brodes
9ac9252f75
Adding a todo
2025-02-20 11:11:41 -05:00
REDMOND\brodes
011ed3fbfd
Simplifying additional flow step logic.
2025-02-20 11:10:24 -05:00
REDMOND\brodes
83dc5b9906
Fixing type bug
2025-02-20 10:45:33 -05:00
REDMOND\brodes
9ee4a7a7b8
Adding a sketch for a CipherOperation concept to model encryption/decryption operations.
2025-02-20 10:37:40 -05:00
REDMOND\brodes
3871c6a33e
Adding support for encryption operation detection.
2025-02-18 16:09:00 -05:00
Nicolas Will
8707e4d9a3
Continue Artifact data-flow WIP
2025-02-18 18:35:49 +01:00
Nicolas Will
df01fa7a9c
Expand model and JCA modeling
2025-02-17 00:16:08 +01:00
Nicolas Will
b777a22d35
Expand model and specialize newtype relations
2025-02-14 23:43:07 +01:00
Nicolas Will
874e3b5e06
Modify model to use newtypes, expand modeling
2025-02-12 17:58:15 +01:00
Nicolas Will
4d44755945
Refactor Model and CBOM print queries
2025-02-11 15:37:15 +01:00
Kristen Newbury
1a12fb3099
Update JCA model, refactor modes
2025-02-10 13:49:32 -05:00
Kristen Newbury
59208bdb85
Update JCA model to use shared lib
2025-02-10 12:22:22 -05:00
Kristen Newbury
9c8ade7ddd
Merge branch 'nic/crypto-test' into knewbury01/JCA-sample
2025-02-10 11:48:15 -05:00
Kristen Newbury
6005437001
Update JCA model with flow to call as AESuse and format JCA model
2025-02-10 11:26:48 -05:00
Kristen Newbury
60d931af9f
Update progress on JCA
2025-02-07 15:46:13 -05:00
Nicolas Will
7a96f5682e
Merge pull request #3 from nicolaswill/nicolaswill/shared-crypto-library
...
Move language-agnostic model to shared library
2025-02-06 21:57:10 +01:00
Nicolas Will
3dc28c2d17
Move language-agnostic model to shared library
2025-02-06 21:54:18 +01:00
Kristen Newbury
2e12bb5f5c
Merge branch 'nic/crypto-test' into knewbury01/JCA-sample
2025-02-06 12:56:32 -05:00
Nicolas Will
cd70acde66
Merge pull request #1 from nicolaswill/brodes/experiments
...
Concepts for elliptic curves and misc. updates.
2025-02-06 14:43:09 +01:00
Kristen Newbury
efcf7eab0c
Add broken crypto query
2025-02-05 17:24:25 -05:00
Kristen Newbury
86e51dad8a
Improve JCA aes alg model, add test
2025-02-05 13:39:48 -05:00
Kristen Newbury
5f355c7f55
Add first sample JCA encryption model
2025-02-04 11:55:09 -05:00
Nicolas Will
69a63855cc
Update CBOMGraph.ql
2025-01-29 21:55:57 +01:00
Nicolas Will
9af18bc100
WIP: add dgml/dot output/remove test code
2025-01-29 19:45:04 +01:00
REDMOND\brodes
0cd3df9d26
Concepts for elliptic cureve and misc. updates.
2025-01-29 10:27:46 -05:00
Nicolas Will
e027b0e9a0
WIP: add properties
2025-01-28 02:02:06 +01:00
Nicolas Will
78362341ff
WIP: hash types example and documentation
2025-01-24 22:32:32 +01:00
Nicolas Will
1a7d8cb99d
WIP
2025-01-24 17:33:03 +01:00
Nicolas Will
395d54bf86
Create Base.qll
2025-01-23 12:46:09 +01:00
Taus
8808f0f824
Misc: Add script for calculating MRVA totals
...
Use this script if you want to quickly calculate the totals of some
query across all the queries in a MRVA run.
For an example of such a query, see e.g.
`python/ql/src/Metrics/Internal/TypeAnnotations.ql`
The script expects the query to produce an output table of the form
```
| header0 | header1 | header2 | header3 | ...
|----------|----------|----------|----------|----
| message1 | value11 | value12 | value13 | ...
| message2 | value21 | value22 | value23 | ...
...
```
where all of the `values` are numbers. For each `(message, header)`
pair, it then calculates the total of all the values in that cell,
across all of the repos in the MRVA run.
To use the script, simply pass it the URL of the exported Gist of the
MRVA run. After calculating the totals, the script will then
(optionally, but by default) add the totals to the `_summary.md` file,
and push these changes to the Gist.
2025-01-08 16:01:11 +00:00