Commit Graph

1961 Commits

Author SHA1 Message Date
Geoffrey White
4924a0faf3 Rust: Introduce a QuerySink class, common to all query sinks. 2025-03-11 15:41:37 +00:00
Geoffrey White
dc7d7f121e Rust: Clarify doc on FlowSink, FlowSource. 2025-03-11 15:41:35 +00:00
Arthur Baars
3991dc3aa3 Rust: improve performance of Crate::toString 2025-03-11 12:57:16 +01:00
Simon Friis Vindum
1e0b78ebd3 Rust: Update regex injection description
Co-authored-by: Geoffrey White <40627776+geoffw0@users.noreply.github.com>
2025-03-11 12:47:12 +01:00
Arthur Baars
66ab3a8002 Rust: add Locatable::fromSource 2025-03-11 12:32:56 +01:00
Geoffrey White
7717f92ec6 Rust: Clean up the test (it turns out a nested UnusedVariable.qlref is not needed) and accept consistency check changes. 2025-03-10 17:59:19 +00:00
Paolo Tranquilli
d1876251ee Merge pull request #18918 from github/redsun82/rust-tweak-qltest-logs
Rust: tweak qltest logs
2025-03-10 17:47:30 +01:00
Simon Friis Vindum
b48fd99913 Rust: Applying suggestions to documentation 2025-03-10 16:30:52 +01:00
Simon Friis Vindum
5c83644360 Rust: Use CWE 20 for regex injection query 2025-03-10 14:52:25 +01:00
Paolo Tranquilli
79e06153ed Merge pull request #18813 from github/redsun82/rust-turn-off-ra-resolution
Rust: add flag to turn off extractor path resolution
2025-03-10 14:52:07 +01:00
Simon Friis Vindum
0e965f7616 Rust: Accept changes 2025-03-10 14:39:37 +01:00
Simon Friis Vindum
344fea2128 Rust: Enable local threat models in tests and use active threat models for regex query 2025-03-10 13:23:20 +01:00
Geoffrey White
bb39955a24 Rust: Move the undefined_macros test cases to their own subdirectory. 2025-03-10 11:09:33 +00:00
Geoffrey White
aa35e82fc1 Rust: Add a test exposing the function scope limitation. 2025-03-10 10:39:25 +00:00
Arthur Baars
9814aef71f Address review comment 2025-03-10 10:31:31 +01:00
Arthur Baars
f17f3758ed Rust: update expected output 2025-03-10 10:19:12 +01:00
Arthur Baars
5855a12b03 Rust: fix crate graph after rust-analyzer upgrade 2025-03-10 10:16:28 +01:00
Arthur Baars
845f002124 Rust: add file for root modules of crates 2025-03-10 10:16:26 +01:00
Arthur Baars
8961a22a71 Rust: crate_graph: extract only public items 2025-03-10 10:16:24 +01:00
Arthur Baars
ff321194b7 Rust: improve modules test case 2025-03-10 10:16:23 +01:00
Arthur Baars
e5b039702a Rust: update integration tests 2025-03-10 10:16:22 +01:00
Arthur Baars
fce637fc3a Rust: add some tests for the crate graph 2025-03-10 10:16:21 +01:00
Arthur Baars
8ec8824cb7 Rust: implement Crate::toString 2025-03-10 10:16:20 +01:00
Arthur Baars
9bba666929 Rust: QL Test: exclude crate graph related elements 2025-03-10 10:16:19 +01:00
Arthur Baars
c601adfc65 Rust: add ExtractionStep::CrateGraph 2025-03-10 10:16:18 +01:00
Arthur Baars
98a40967d2 Rust: ignore crate graph elements from summary stats and AST no-location checks
These elements depend on the version of the standard libraries and platform, and
in addition no location information is extracted for them at the moment.

f
2025-03-10 10:16:15 +01:00
Arthur Baars
e21a7f5336 Rust: extract crate graph 2025-03-10 10:16:13 +01:00
Arthur Baars
75ca04f3dd Rust: add Crate to dbscheme 2025-03-10 10:16:12 +01:00
Simon Friis Vindum
179ea041f4 Rust: Merge query implementation into one file 2025-03-10 09:09:13 +01:00
Geoffrey White
3d0e44e156 Rust: Accept consistency check failures. 2025-03-07 16:05:01 +00:00
Geoffrey White
fe139e5bea Rust: Rearrange the unused variable query logic so that it's clearer what the comments apply to. 2025-03-07 14:55:34 +00:00
Geoffrey White
cc902a6ad1 Rust: Fix unused value FPs due to unexpanded macro calls as well. 2025-03-07 14:48:27 +00:00
Geoffrey White
e0839a369c Rust: Fix unused variable FPs due to unexpanded macro calls. 2025-03-07 14:40:02 +00:00
Geoffrey White
b2e3352aa8 Rust: Add a few more macro tests. 2025-03-07 14:36:26 +00:00
Anders Schack-Mulligen
d075466958 Merge pull request #18941 from aschackmull/ssa/refactor4
Ssa: Extend consistency checks and reduce phi read nodes
2025-03-07 15:18:02 +01:00
Simon Friis Vindum
494f914070 Rust: Add regular expression injection query 2025-03-07 12:37:30 +01:00
Geoffrey White
abe14babb1 Rust: Clean up the existing macro cases for the unusedentities test. 2025-03-07 11:24:42 +00:00
Anders Schack-Mulligen
b1e53f5816 Rust: Accept consistency failure. 2025-03-07 11:11:49 +01:00
Tom Hvitved
5c3f21b20c Merge pull request #18937 from hvitved/rust/fix-bad-joins
Rust: Fix bad joins
2025-03-06 19:11:31 +01:00
Tom Hvitved
ec063d0dbd Rust: Fix bad joins
```
Evaluated relational algebra for predicate _Synth::Synth::TFormatArgument#5cbf2ffd_63#join_rhs__Format::Format.getArgumentRef/0#dispred#38d664c__#antijoin_rhs@889ee4br with tuple counts:
           11356  ~0%    {5} r1 = JOIN `_Format::Format.getArgumentRef/0#dispred#38d664cb_Format::Format.getParent/0#dispred#f6ec3e8b_10#joi__#shared` WITH Synth::Synth::TFormatArgument#5cbf2ffd_63#join_rhs ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.2, Lhs.3, Lhs.0
        19631351  ~0%    {6}    | JOIN WITH name_texts_10#join_rhs ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.2, Lhs.3, Lhs.4, Lhs.0
           45933  ~0%    {6}    | JOIN WITH format_args_arg_names_10#join_rhs ON FIRST 1 OUTPUT Lhs.1, Rhs.1, Lhs.2, Lhs.3, Lhs.4, Lhs.5
             747  ~0%    {5}    | JOIN WITH format_args_expr_args_02#join_rhs ON FIRST 2 OUTPUT Lhs.0, Lhs.2, Lhs.3, Lhs.4, Lhs.5
                         return r1

Evaluated relational algebra for predicate __Format::Format.getParent/0#dispred#f6ec3e8b_FormatArgument::FormatArgument.getParent/0#dispred#864__#antijoin_rhs@01d9d70k with tuple counts:
        19631351  ~1%    {6} r1 = JOIN `_Format::Format.getParent/0#dispred#f6ec3e8b_FormatArgument::FormatArgument.getParent/0#dispred#8641__#shared` WITH name_texts_10#join_rhs ON FIRST 1 OUTPUT Lhs.4, Lhs.0, Lhs.1, Lhs.2, Lhs.3, Rhs.1
         5173010  ~0%    {7}    | JOIN WITH format_args_expr_args ON FIRST 1 OUTPUT Rhs.2, Lhs.5, Lhs.1, Lhs.2, Lhs.3, Lhs.4, Lhs.0
             747  ~0%    {5}    | JOIN WITH format_args_arg_names ON FIRST 2 OUTPUT Lhs.2, Lhs.3, Lhs.4, Lhs.5, Lhs.6
                         return r1

Evaluated relational algebra for predicate _NamedFormatArgument::NamedFormatArgument#18940f8e__Format::Format.getParent/0#dispred#f6ec3e8b_10#j__#antijoin_rhs@dafbd6hr with tuple counts:
           11356  ~0%    {5} r1 = JOIN `_Format::Format.getParent/0#dispred#f6ec3e8b_10#join_rhs_FormatArgument::FormatArgument.getParent/0#__#shared` WITH NamedFormatArgument::NamedFormatArgument#18940f8e ON FIRST 1 OUTPUT Rhs.4, Lhs.1, Lhs.2, Lhs.3, Lhs.0
        19631351  ~0%    {6}    | JOIN WITH name_texts_10#join_rhs ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.2, Lhs.3, Lhs.4, Lhs.0
           45933  ~0%    {6}    | JOIN WITH format_args_arg_names_10#join_rhs ON FIRST 1 OUTPUT Lhs.1, Rhs.1, Lhs.2, Lhs.3, Lhs.4, Lhs.5
             747  ~0%    {5}    | JOIN WITH format_args_expr_args_02#join_rhs ON FIRST 2 OUTPUT Lhs.0, Lhs.2, Lhs.3, Lhs.4, Lhs.5
                         return r1

```
2025-03-06 09:02:42 +01:00
Anders Schack-Mulligen
c6761db2fc SSA: Replace the Guards interface in the SSA data flow integration. 2025-03-05 13:29:31 +01:00
Anders Schack-Mulligen
709d36b502 Merge pull request #18869 from aschackmull/ssa/refactor3
Ssa: Update qltests including consistency checks
2025-03-05 11:40:27 +01:00
Paolo Tranquilli
7a78766584 Merge pull request #18789 from github/redsun82/cargo-upgrade
Upgrade cargo dependencies
2025-03-04 17:34:58 +01:00
Tom Hvitved
b8dd2e551e Merge pull request #18919 from hvitved/rust/ast-consistency-internal
Rust: Move `AstConsistency.qll` into `internal`
2025-03-04 15:35:34 +01:00
Simon Friis Vindum
c89e648738 Rust: Exclude function without canonical path from model generation 2025-03-04 13:56:10 +01:00
Paolo Tranquilli
4d10c4110a Rust: address review 2025-03-04 13:05:59 +01:00
Tom Hvitved
1f13f0009f Rust: Move AstConsistency.qll into internal 2025-03-04 13:00:09 +01:00
Paolo Tranquilli
e0d0dc9a80 Rust: tweak qltest logs
* verbosity is raised to DEBUG to have more information in the logs
* color codes are now skipped in the `qltest.log` file
* they are still printed out on the console when running with
  `--show-extractor-output`.
2025-03-04 12:33:14 +01:00
Anders Schack-Mulligen
4c0e5f62cf Rust: Remove remaining DefinitionExt references. 2025-03-04 12:24:24 +01:00
Anders Schack-Mulligen
00b8c80c24 SSA/C#/Ruby/Rust: Clean up SSA consistency queries.
The RelevantDefinition class is no longer needed since the introduction
of LocationSig.
2025-03-04 12:24:23 +01:00