Simon Friis Vindum
|
defbbb2a24
|
Rust: Add additional models for stdlib and sqlx
|
2024-12-16 11:46:57 +01:00 |
|
Simon Friis Vindum
|
aab3428bc7
|
Rust: Model address-of and dereference as stores and loads
|
2024-12-16 11:31:15 +01:00 |
|
Tom Hvitved
|
aabcc108dd
|
Rust: Fix bad join
```
[2024-12-16 10:10:36] (247s) Tuple counts for DataFlowImpl::RustDataFlow::storeStep/3#98e80e57/3@0618fdm6 after 3m8s:
33711 ~0% {3} r1 = SCAN `DataFlowImpl::VariableCapture::storeStep/3#cb0fdcf6` OUTPUT In.1, In.0 'node1', In.2 'node2'
33711 ~6% {3} | JOIN WITH DataFlowImpl::TSingletonContentSet#9b15eaba ON FIRST 1 OUTPUT Lhs.1 'node1', Rhs.1 'cs', Lhs.2 'node2'
0 ~0% {3} r2 = JOIN `FlowSummaryImpl::Private::Steps::summaryStoreStep/3#2c853d0d` WITH DataFlowImpl::TFlowSummaryNode#2b28ecb7 ON FIRST 1 OUTPUT Lhs.2, Lhs.1 'cs', Rhs.1 'node1'
0 ~0% {3} | JOIN WITH DataFlowImpl::TFlowSummaryNode#2b28ecb7 ON FIRST 1 OUTPUT Lhs.2 'node1', Lhs.1 'cs', Rhs.1 'node1'
1554 ~0% {3} r3 = JOIN _DataFlowImpl::TExprNode#83a34c2e__DataFlowImpl::TArrayElement#b9fb9b7b_DataFlowImpl::TSingletonCont__#shared WITH `CfgNodes::ArrayRepeatExprCfgNode.getRepeatOperand/0#dispred#b264e402_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1 'cs', Lhs.2 'node1'
1554 ~0% {3} | JOIN WITH DataFlowImpl::TExprNode#83a34c2e ON FIRST 1 OUTPUT Lhs.2 'node1', Lhs.1 'cs', Rhs.1 'node2'
870 ~2% {3} r4 = SCAN `DataFlowImpl::RustDataFlow::tupleAssignment/3#bf3c8690` OUTPUT In.2, In.0 'node1', In.1
870 ~0% {3} | JOIN WITH DataFlowImpl::TSingletonContentSet#9b15eaba ON FIRST 1 OUTPUT Lhs.2, Rhs.1 'cs', Lhs.1 'node1'
870 ~0% {3} | JOIN WITH `DataFlowImpl::Node::PostUpdateNode.getPreUpdateNode/0#dispred#53daedc2_10#join_rhs` ON FIRST 1 OUTPUT Lhs.2 'node1', Lhs.1 'cs', Rhs.1 'node2'
40037 ~4% {3} r5 = JOIN _DataFlowImpl::TExprNode#83a34c2e__DataFlowImpl::TArrayElement#b9fb9b7b_DataFlowImpl::TSingletonCont__#shared WITH `CfgNodes::ArrayExprCfgNode.getAnExpr/0#dispred#9d00a6f1_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1 'cs', Lhs.2 'node1'
36929 ~4% {3} | JOIN WITH CfgNodes::ArrayListExprCfgNode#07eee614 ON FIRST 1 OUTPUT Lhs.0, Lhs.1 'cs', Lhs.2 'node1'
36929 ~0% {3} | JOIN WITH DataFlowImpl::TExprNode#83a34c2e ON FIRST 1 OUTPUT Lhs.2 'node1', Lhs.1 'cs', Rhs.1 'node2'
14 ~0% {2} r6 = JOIN DataFlowImpl::TTuplePositionContent#f1d90606_10#join_rhs WITH DataFlowImpl::TSingletonContentSet#9b15eaba ON FIRST 1 OUTPUT Lhs.1, Rhs.1 'cs'
47949 ~0% {3} | JOIN WITH `CfgNodes::TupleExprCfgNode.getField/1#dispred#9f7c9c63_102#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1 'cs', Rhs.2
47949 ~0% {3} | JOIN WITH DataFlowImpl::TExprNode#83a34c2e ON FIRST 1 OUTPUT Lhs.2, Lhs.1 'cs', Rhs.1 'node2'
47949 ~2% {3} | JOIN WITH DataFlowImpl::TExprNode#83a34c2e ON FIRST 1 OUTPUT Rhs.1 'node2', Lhs.1 'cs', Lhs.2 'node2'
59801 ~0% {3} r7 = JOIN _DataFlowImpl::TSingletonContentSet#9b15eaba_DataFlowImpl::TVariantPositionContent#ca6baca0_201#join__#shared WITH `DataFlowImpl::RustDataFlow::tupleVariantConstruction/2#10613c55_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1 'cs', Lhs.2
45509 ~0% {3} | JOIN WITH CfgNodes::CallExprCfgNode#9c2a4686_10#join_rhs ON FIRST 1 OUTPUT Rhs.1, Lhs.1 'cs', Lhs.2
45509 ~2% {4} | JOIN WITH DataFlowImpl::TExprNode#83a34c2e ON FIRST 1 OUTPUT Lhs.0, Lhs.2, Lhs.1 'cs', Rhs.1 'node2'
45509 ~0% {3} | JOIN WITH `CfgNodes::CallExprBaseCfgNode.getArgument/1#dispred#9ebb27c0` ON FIRST 2 OUTPUT Rhs.2, Lhs.2 'cs', Lhs.3 'node2'
45509 ~0% {3} | JOIN WITH DataFlowImpl::TExprNode#83a34c2e ON FIRST 1 OUTPUT Rhs.1 'node2', Lhs.1 'cs', Lhs.2 'node2'
75147 ~1% {3} r8 = JOIN _DataFlowImpl::TSingletonContentSet#9b15eaba_DataFlowImpl::TStructFieldContent#1d6d7b05_201#join_rhs#shared WITH `DataFlowImpl::RustDataFlow::structConstruction/2#a9656db0_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1 'cs', Lhs.2
59186 ~3% {3} | JOIN WITH `CfgNodes::RecordExprCfgNode.getRecordExpr/0#dispred#659ad1af_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1 'cs', Lhs.2
5641 ~2% {3} r9 = JOIN _DataFlowImpl::TSingletonContentSet#9b15eaba_DataFlowImpl::TVariantFieldContent#4e05bcf1_201#join_rh__#shared WITH `DataFlowImpl::RustDataFlow::recordVariantConstruction/2#34b016f6_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1 'cs', Lhs.2
5268 ~0% {3} | JOIN WITH `CfgNodes::RecordExprCfgNode.getRecordExpr/0#dispred#659ad1af_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1 'cs', Lhs.2
64454 ~1% {3} r10 = r8 UNION r9
64454 ~0% {4} | JOIN WITH DataFlowImpl::TExprNode#83a34c2e ON FIRST 1 OUTPUT Lhs.0, Lhs.2, Lhs.1 'cs', Rhs.1 'node2'
25923 ~0% {3} | JOIN WITH `CfgNodes::RecordExprCfgNode.getFieldExpr/1#d72dca6e` ON FIRST 2 OUTPUT Rhs.2, Lhs.2 'cs', Lhs.3 'node2'
25923 ~0% {3} | JOIN WITH DataFlowImpl::TExprNode#83a34c2e ON FIRST 1 OUTPUT Rhs.1 'node2', Lhs.1 'cs', Lhs.2 'node2'
67759289500 ~251% {4} r11 = JOIN DataFlowImpl::TSingletonContentSet#9b15eaba WITH DataFlowImpl::TExprNode#83a34c2e CARTESIAN PRODUCT OUTPUT Lhs.0, Lhs.1 'cs', Rhs.0, Rhs.1 'node2'
3568000 ~1488% {3} | JOIN WITH DataFlowImpl::TArrayElement#b9fb9b7b ON FIRST 1 OUTPUT Lhs.3, Lhs.1 'cs', Lhs.2
1223000 ~1291% {3} | JOIN WITH `DataFlowImpl::Node::PostUpdateNode.getPreUpdateNode/0#dispred#53daedc2_10#join_rhs` ON FIRST 1 OUTPUT Lhs.2, Lhs.1 'cs', Rhs.1 'node2'
11500 ~0% {3} | JOIN WITH `CfgNodes::IndexExprCfgNode.getBase/0#dispred#19aba7d8_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1 'cs', Lhs.2 'node2'
1000 ~3% {3} | JOIN WITH `CfgNodes::BinaryExprCfgNode.getLhs/0#dispred#bd1c02e7_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1 'cs', Lhs.2 'node2'
500 ~3% {3} | JOIN WITH CfgNodes::AssignmentExprCfgNode#a9a5c022 ON FIRST 1 OUTPUT Lhs.0, Lhs.1 'cs', Lhs.2 'node2'
0 ~0% {3} | JOIN WITH `CfgNodes::BinaryExprCfgNode.getRhs/0#dispred#4a1146e4` ON FIRST 1 OUTPUT Rhs.1, Lhs.1 'cs', Lhs.2 'node2'
0 ~0% {3} | JOIN WITH DataFlowImpl::TExprNode#83a34c2e ON FIRST 1 OUTPUT Rhs.1 'node2', Lhs.1 'cs', Lhs.2 'node2'
192445 ~1% {3} r12 = r1 UNION r2 UNION r3 UNION r4 UNION r5 UNION r6 UNION r7 UNION r10 UNION r11
return r12
```
|
2024-12-16 10:20:30 +01:00 |
|
Tom Hvitved
|
2d16b5276d
|
Rust: Fix bad join
```
Evaluated relational algebra for predicate DataFlowImpl::RustDataFlow::pathResolveToVariantCanonicalPath/2#dc73aca0@34414869 with tuple counts:
422639 ~3% {3} r1 = JOIN `DataFlowImpl::resolveExtendedCanonicalPath/3#0454a346` WITH Synth::Synth::TPathAstNode#a7913307 ON FIRST 1 OUTPUT Lhs.1, Lhs.0, Lhs.2
73033499 ~7% {6} | JOIN WITH DataFlowImpl::MkVariantCanonicalPath#ab1ecb00 ON FIRST 1 OUTPUT Lhs.1, Lhs.2, Rhs.3, _, Rhs.1, Rhs.2
{4} | REWRITE WITH Tmp.3 := "::", Out.3 := (In.4 ++ Tmp.3 ++ In.5), TEST Out.3 = InOut.1 KEEPING 4
170993 ~1% {2} | SCAN OUTPUT In.0, In.2
return r1
```
|
2024-12-16 10:20:01 +01:00 |
|
Simon Friis Vindum
|
31717524f0
|
Merge pull request #18270 from paldepind/rust-captured-variables
Rust: Flow through captured variables
|
2024-12-16 10:08:53 +01:00 |
|
Simon Friis Vindum
|
0fa40fcdcc
|
Rust: Fix captured variable data flow inconsistency
|
2024-12-12 16:28:19 +01:00 |
|
Geoffrey White
|
03f962ed86
|
Merge pull request #18226 from geoffw0/badcrypto
Rust: Weak encryption algorithm query.
|
2024-12-12 14:21:16 +00:00 |
|
Michael Nebel
|
0bfc1b6ea8
|
Also move the postprocessing queries to the library pack.
|
2024-12-12 15:03:03 +01:00 |
|
Michael Nebel
|
941b0abbf6
|
Move modules to the library packs.
|
2024-12-12 15:03:01 +01:00 |
|
Geoffrey White
|
44a0ad2942
|
Update data-flow -> data flow in all versions of ConceptsShared.qll.
|
2024-12-12 13:36:26 +00:00 |
|
Geoffrey White
|
611d04e221
|
Rust: Revert stylistic change in shared file.
|
2024-12-12 11:30:23 +00:00 |
|
Geoffrey White
|
1d72b750b7
|
Rust: data-flow -> data flow.
|
2024-12-12 11:29:23 +00:00 |
|
Geoffrey White
|
d2cfcb4c9e
|
Update rust/ql/lib/codeql/rust/internal/ConceptsShared.qll
Co-authored-by: Simon Friis Vindum <paldepind@github.com>
|
2024-12-12 11:28:04 +00:00 |
|
Simon Friis Vindum
|
9fe7bb3e2b
|
Rust: Address PR comments
|
2024-12-12 11:19:14 +01:00 |
|
Simon Friis Vindum
|
2cf043cfbc
|
Rust: Address PR comments
|
2024-12-12 10:19:53 +01:00 |
|
Simon Friis Vindum
|
59f3f1f1e9
|
Apply suggestions from code review
Co-authored-by: intrigus-lgtm <60750685+intrigus-lgtm@users.noreply.github.com>
|
2024-12-12 08:58:35 +01:00 |
|
Geoffrey White
|
591db05610
|
Rust: Formatting.
|
2024-12-11 16:49:29 +00:00 |
|
Geoffrey White
|
ad75906672
|
Apply suggestions from code review
Co-authored-by: Tom Hvitved <hvitved@github.com>
|
2024-12-11 16:44:00 +00:00 |
|
Simon Friis Vindum
|
94b037fad1
|
Rust: Instantiate variable capture library for data flow
|
2024-12-11 15:44:17 +01:00 |
|
Tom Hvitved
|
baf186fed7
|
Address review comments
|
2024-12-11 10:28:32 +01:00 |
|
Tom Hvitved
|
2f8b04b225
|
Rust: Models-as-data for flow summaries
|
2024-12-09 13:41:55 +01:00 |
|
Geoffrey White
|
4b93325914
|
Merge branch 'main' into badcrypto
|
2024-12-06 14:21:11 +00:00 |
|
Simon Friis Vindum
|
ed68423d6e
|
Rust: Handle captured self parameter in variable implementation
|
2024-12-06 14:12:27 +01:00 |
|
Tom Hvitved
|
3ba87de260
|
Merge pull request #18220 from hvitved/rust/cache-default-additional-taint-step
Rust: Cache `defaultAdditionalTaintStep`
|
2024-12-06 13:04:11 +01:00 |
|
Geoffrey White
|
129f21af29
|
Rust: Make a predicate private.
|
2024-12-06 09:37:41 +00:00 |
|
Geoffrey White
|
4e418d3d4d
|
Rust: Update for latest main, and autoformat.
|
2024-12-05 19:09:40 +00:00 |
|
Geoffrey White
|
de042ea9d7
|
Merge branch 'main' into badcrypto
|
2024-12-05 18:36:47 +00:00 |
|
Geoffrey White
|
6eb850c8cb
|
Rust: Improve the model.
|
2024-12-05 16:49:27 +00:00 |
|
Geoffrey White
|
94dbad7c95
|
Rust: Model for cipher traits.
|
2024-12-05 16:49:19 +00:00 |
|
Paolo Tranquilli
|
720bfc8ff1
|
Rust: tweak/define more toString implementations
|
2024-12-05 17:43:47 +01:00 |
|
Geoffrey White
|
eeeb142f0b
|
Rust: Implement the query.
|
2024-12-05 15:22:10 +00:00 |
|
Geoffrey White
|
07e3421f6f
|
Rust: Add shared ConceptsShared.qll, CryptoAlgorithms.qll and CryptoAlgorithmNames.qll to Rust.
|
2024-12-05 15:22:09 +00:00 |
|
Tom Hvitved
|
ed4819aeab
|
Rust: Cache defaultAdditionalTaintStep
|
2024-12-05 15:19:11 +01:00 |
|
Simon Friis Vindum
|
3061d4a516
|
Rust: Minor tweaks
|
2024-12-05 11:53:12 +01:00 |
|
Simon Friis Vindum
|
1f4e7d1f37
|
Rust: Handle arrays in taint tracking
|
2024-12-05 11:41:32 +01:00 |
|
Simon Friis Vindum
|
27de43fed8
|
Merge branch 'main' into rust-df-array
|
2024-12-05 11:08:54 +01:00 |
|
Simon Friis Vindum
|
5b6ce3e0d0
|
Merge branch 'main' into rust-taint
|
2024-12-05 09:34:25 +01:00 |
|
Simon Friis Vindum
|
d6ab7d2aff
|
Merge branch 'main' into rust-taint
|
2024-12-04 15:28:30 +01:00 |
|
Paolo Tranquilli
|
08de0b40ed
|
Merge branch 'main' into redsun82/rust-less-canonical-paths
|
2024-12-04 14:35:10 +01:00 |
|
Paolo Tranquilli
|
80d466ffea
|
Merge pull request #18116 from github/redsun82/rust-perf-measures
Rust: add some performance diagnostics
|
2024-12-04 14:31:06 +01:00 |
|
Simon Friis Vindum
|
3004639fca
|
Rust: Add default taint flow steps
|
2024-12-04 14:11:05 +01:00 |
|
Simon Friis Vindum
|
a19f1d0b8b
|
Rust: Remove store step for repeat operand in array expression
|
2024-12-04 14:01:53 +01:00 |
|
Simon Friis Vindum
|
c62b7d139f
|
Merge branch 'main' into rust-df-array
|
2024-12-04 13:55:26 +01:00 |
|
Simon Friis Vindum
|
2ada999728
|
Rust: Include as expression in CFG nodes
|
2024-12-04 12:56:54 +01:00 |
|
Simon Friis Vindum
|
ed6f873478
|
Merge branch 'main' into rust-df-try-expr
|
2024-12-04 11:33:41 +01:00 |
|
Paolo Tranquilli
|
7e107a4520
|
Merge branch 'main' into redsun82/rust-less-canonical-paths
|
2024-12-04 11:24:48 +01:00 |
|
Paolo Tranquilli
|
c0676f4269
|
Merge pull request #18198 from github/redsun82/rust-tuple-struct-pat-to-string
Rust: improve `TupleStructPat.toString`
|
2024-12-04 11:20:42 +01:00 |
|
Simon Friis Vindum
|
7092f13584
|
Merge branch 'main' into rust-df-try-expr
|
2024-12-04 10:59:07 +01:00 |
|
Simon Friis Vindum
|
4371433eb6
|
Merge pull request #18160 from paldepind/rust-df-closure
Rust: Handle closures/lambdas in data flow
|
2024-12-04 10:53:45 +01:00 |
|
Paolo Tranquilli
|
31b9b3adaa
|
Merge branch 'main' into redsun82/rust-perf-measures
|
2024-12-04 10:50:37 +01:00 |
|