Commit Graph

1619 Commits

Author SHA1 Message Date
Simon Friis Vindum
c17c0458dd Rust: Handle type equality for a few more expression types 2025-03-14 11:59:34 +01:00
Tom Hvitved
d1ad65ae09 Rust: Cache Element.toString 2025-03-14 11:58:38 +01:00
Arthur Baars
56574a15b7 Rust: SSA: restrict mutablyBorrowed to variables with a 'mut' modifier 2025-03-14 11:25:35 +01:00
Simon Friis Vindum
4dbfda59cf Merge branch 'main' into rust-data-flow-split 2025-03-14 09:58:46 +01:00
Tom Hvitved
c3739d4f23 Address review comments 2025-03-13 21:10:48 +01:00
Simon Friis Vindum
fb718660d9 Rust: Generate more sinks and update query description 2025-03-13 17:35:32 +01:00
Tom Hvitved
3bb89ea863 Rust: Move type inference/path resolution out of elements folder 2025-03-13 15:05:00 +01:00
Tom Hvitved
af91152f5c Address review comments 2025-03-13 15:04:59 +01:00
Simon Friis Vindum
1ae28c7907 Merge branch 'main' into rust-cleartext-transmission 2025-03-13 15:01:11 +01:00
Tom Hvitved
78280af570 Rust: Use 'infer' instead of 'resolve' in type inference library 2025-03-13 13:34:43 +01:00
Tom Hvitved
2394f2fab8 Rust: Fix bug in path resolution library 2025-03-13 13:23:18 +01:00
Tom Hvitved
795ba25895 Rust: Add more consistency checks 2025-03-13 13:23:16 +01:00
Tom Hvitved
e8505ad33d Rust: Use type inference to resolve method calls and field accesses 2025-03-13 13:23:13 +01:00
Tom Hvitved
62d4e6fe3f Rust: Implement basic type inference in QL 2025-03-13 13:23:11 +01:00
Tom Hvitved
1636abb81b Merge pull request #18985 from hvitved/rust/immediate-child
Rust/Swift: Add `get(Immediate)Child` predicate
2025-03-13 12:50:53 +01:00
Geoffrey White
1aa223652f Merge pull request #18977 from geoffw0/sourcesinkdoc
Rust: Source and sink doc / tidy up
2025-03-13 10:53:44 +00:00
Simon Friis Vindum
3c644144b1 Rust: Extract data flow node and content into separate files 2025-03-13 11:22:04 +01:00
Tom Hvitved
8777bc42c7 Rust: Add get(Immediate)Child predicate 2025-03-13 11:13:01 +01:00
Arthur Baars
fa79dbc89a Merge pull request #18228 from github/aibaars/crate-graph
Rust: extract crate graph
2025-03-13 10:00:48 +01:00
Simon Friis Vindum
4de69c70a8 Rust: Add cleartext transmission query 2025-03-13 08:45:36 +01:00
Geoffrey White
0df652b297 Rust: Autoformat. 2025-03-12 16:38:00 +00:00
Geoffrey White
64b57679bf Rust: ... one more fix. 2025-03-12 16:32:53 +00:00
Geoffrey White
ee6455a7b1 Rust: ... and extend QuerySink to complete the above. 2025-03-12 16:23:41 +00:00
Geoffrey White
f8112945a8 Merge branch 'main' into sourcesinkdoc 2025-03-12 16:04:56 +00:00
Geoffrey White
df4f117a7c Rust: QLDoc formatting. 2025-03-12 15:59:44 +00:00
Geoffrey White
044d0a13f0 Rust: Include WeakSensitiveDataHashing sinks as well. 2025-03-11 15:41:38 +00:00
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
Arthur Baars
66ab3a8002 Rust: add Locatable::fromSource 2025-03-11 12:32:56 +01:00
Geoffrey White
a0f4fa28b2 Rust: hardcoded -> hard-coded. 2025-03-11 09:40:47 +00:00
Geoffrey White
1ca5c593f9 Rust: Replace imports of internal.DataFlowImpl where possible. 2025-03-10 11:47:23 +00:00
Geoffrey White
9e54d53537 Rust: Add barrier. 2025-03-10 11:41:48 +00:00
Arthur Baars
845f002124 Rust: add file for root modules of crates 2025-03-10 10:16:26 +01:00
Arthur Baars
8ec8824cb7 Rust: implement Crate::toString 2025-03-10 10:16:20 +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
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
b4e710f459 Rust: Add missing models (for some platforms???). 2025-03-07 22:28:38 +00:00
Simon Friis Vindum
494f914070 Rust: Add regular expression injection query 2025-03-07 12:37:30 +01:00
Geoffrey White
b6c9be23c1 Merge branch 'main' into constcrypto 2025-03-07 09:11:10 +00:00
Geoffrey White
952e417d13 Rust: Tweak some wording. 2025-03-06 18:46:37 +00: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
Geoffrey White
b4a6063e20 Rust: Add std::mem::zeroed as a source. 2025-03-06 17:48:45 +00:00
Geoffrey White
ac94ac6584 Rust: Model even more sinks + flows. 2025-03-06 17:48:44 +00:00
Geoffrey White
055baf2769 Rust: Improve results on arrays (less duplication). 2025-03-06 17:48:43 +00:00
Geoffrey White
aacbfc0fd8 Rust: Improve alert messages. 2025-03-06 17:48:41 +00:00
Geoffrey White
a6e106e025 Rust: Model more sinks + flows. 2025-03-06 17:48:40 +00:00
Geoffrey White
9fb00daeec Rust: Implement the query (with one source, one sink model). 2025-03-06 17:48:39 +00:00
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