Commit Graph

77257 Commits

Author SHA1 Message Date
Mathias Vorreiter Pedersen
3acbd83297 PS: Drive-by fix: The variable access in a foreach loop implicitly writes to the variable. 2025-04-03 18:46:09 +01:00
Mathias Vorreiter Pedersen
4d04b11468 PS: Add some implicit reads at process blocks, and fix CFG for process blocks so that these reads appear in the CFG. 2025-04-03 18:46:08 +01:00
Mathias Vorreiter Pedersen
cd8e5e6d8d PS: Subclass AnyElement into positional or key-ional. 2025-04-03 18:46:06 +01:00
Chanel
b452339b23 Merge pull request #182 from microsoft/fix-parameter-by-name-flow-2
PS: Fix parameter/argument name mapping for named parameters
2025-04-01 11:29:01 -07:00
Mathias Vorreiter Pedersen
5fa3beb13d PS: Normalize parameter keywords and accept test changes. 2025-04-01 19:21:42 +01:00
Mathias Vorreiter Pedersen
1c380fb7fb PS: Add another missing flow found by Chanel. 2025-04-01 19:21:41 +01:00
Chanel
898297b542 Merge pull request #181 from microsoft/powershell-ast-modernization-follow-up
PS: Fix more taint-tracking/dataflow regressions
2025-04-01 09:46:48 -07:00
Mathias Vorreiter Pedersen
8ae92a5cdb PS: Accept test changes. 2025-04-01 15:08:36 +01:00
Mathias Vorreiter Pedersen
129b7876d7 PS: Allow shadowing of automatic variables. 2025-04-01 15:08:35 +01:00
Mathias Vorreiter Pedersen
08dc8183e0 PS: Add Chanel's missing flow example. 2025-04-01 15:08:33 +01:00
Mathias Vorreiter Pedersen
0b9720c908 PS: Accept test changes. 2025-03-31 20:12:51 +01:00
Mathias Vorreiter Pedersen
88f638dc5c PS: Fix more pipeline flow. 2025-03-31 20:12:43 +01:00
Mathias Vorreiter Pedersen
ee4104b78c PS: Fix parent-child mapping for iterator pipeline access synthesis. 2025-03-29 11:51:33 +00:00
Mathias Vorreiter Pedersen
a6a17344ff PS: Easier debugging with strings for child indices. 2025-03-29 11:18:23 +00:00
Mathias Vorreiter Pedersen
e17a169b8b Merge pull request #180 from microsoft/powershell-ast-modernization-follow-up
PS: Fix PowerShell dataflow/taint-tracking failures
2025-03-28 13:19:00 -07:00
Mathias Vorreiter Pedersen
7102ebbcf7 PS: Accept test changes. 2025-03-28 19:39:54 +00:00
Mathias Vorreiter Pedersen
3643b93033 fixup! PS: Define pre-return node and implicit-wrapping nodes using the script block instead of the individual elements. 2025-03-28 19:36:18 +00:00
Mathias Vorreiter Pedersen
5d5448df62 PS: Also use the new library to handle array expressions. 2025-03-28 19:36:06 +00:00
Mathias Vorreiter Pedersen
b2cf155ff5 PS: Define pre-return node and implicit-wrapping nodes using the script block instead of the individual elements. 2025-03-28 19:35:41 +00:00
Mathias Vorreiter Pedersen
ee8c586200 PS: Use the new library to calculate returned expressions. 2025-03-28 19:34:50 +00:00
Mathias Vorreiter Pedersen
a9861e13e9 PS: Add a library that calculated escaping values much more efficiently using the forward/reverse pruning technique. 2025-03-28 19:33:23 +00:00
Mathias Vorreiter Pedersen
f85767f47e PS: add a super class for all loop-related CFG nodes. 2025-03-28 19:32:36 +00:00
Mathias Vorreiter Pedersen
19454a50e9 PS: Small additions to the CFG classes and a small bugfix. 2025-03-28 19:32:07 +00:00
Mathias Vorreiter Pedersen
18d94f2078 PS: Don't include the variable in the IPA definition for variable accesses. 2025-03-28 19:31:15 +00:00
Mathias Vorreiter Pedersen
2da8da0777 PS: Add helper predicates for if statements. 2025-03-28 19:30:16 +00:00
Mathias Vorreiter Pedersen
ee0a21e67f PS: Make child mapping classes private. 2025-03-28 19:29:45 +00:00
Mathias Vorreiter Pedersen
7b9a41aa92 PS: Handle this parameters in a few more places. 2025-03-27 18:03:06 +00:00
Mathias Vorreiter Pedersen
dcb98ab5a1 PS: Don't include the this parameter in getParameter. 2025-03-27 18:01:28 +00:00
Mathias Vorreiter Pedersen
cea435cf1f Merge pull request #178 from microsoft/powershell-ipa-the-ast
PS: Simplify the AST in Powershell
2025-03-27 09:37:38 -07:00
Mathias Vorreiter Pedersen
0fc57789bf PS: Accept dataflow/taint-tracking/type-tracking regressions. 2025-03-27 16:01:42 +00:00
Mathias Vorreiter Pedersen
c840f86707 PS: Accept CFG test changes. 2025-03-27 16:01:41 +00:00
Mathias Vorreiter Pedersen
655d80ee7b PS: Repair tests and accept test changes in syntax tests. 2025-03-27 16:01:39 +00:00
Mathias Vorreiter Pedersen
7551cce537 PS: Make API graphs compile again. There is still some TODOs here, but at least it compiles. 2025-03-27 16:01:38 +00:00
Mathias Vorreiter Pedersen
8092345fee PS: Make type-tracking and taint-tracking compile again. 2025-03-27 16:01:36 +00:00
Mathias Vorreiter Pedersen
8f9bc1e4b2 PS: Make SSA compile again. 2025-03-27 16:01:35 +00:00
Mathias Vorreiter Pedersen
c2e24ea3a4 PS: Make CFG construction compile again. 2025-03-27 16:01:33 +00:00
Mathias Vorreiter Pedersen
9efc3ec380 PS: Make dataflow compile again. 2025-03-27 16:01:30 +00:00
Mathias Vorreiter Pedersen
cc13922206 PS: Make the experimental query compile again. 2025-03-27 16:01:28 +00:00
Mathias Vorreiter Pedersen
171f5ca698 PS: Inside a process block the name of a pipeline parameter actually refers to the individual elements in the pipeline. Add a synthesized variable access that represents this. 2025-03-27 16:01:26 +00:00
Mathias Vorreiter Pedersen
9f4d1c624d PS: PowerShell doesn't have a notion of true, false, null, etc. In the extracted AST these are just variables with special names. We insert synthesized AST elements that represent these special variables. 2025-03-27 16:01:24 +00:00
Mathias Vorreiter Pedersen
7adb020977 PS: Remove arguments that are just names for a named argument. 2025-03-27 16:01:23 +00:00
Mathias Vorreiter Pedersen
3bb6021cb2 PS: Remove the CmdExpr AST elements and synthesize StmtExpr instead where needed. 2025-03-27 16:01:21 +00:00
Mathias Vorreiter Pedersen
8eb5e65ac4 PS: Synthesize Function and Type classes instead of relying on the statement that defines them. 2025-03-27 16:01:20 +00:00
Mathias Vorreiter Pedersen
17661342f8 PS: expr-to-stmt conversions. 2025-03-27 16:01:18 +00:00
Mathias Vorreiter Pedersen
0b4a7f9436 PS: Synthesize a simpler notion of parameters. 2025-03-27 16:01:17 +00:00
Mathias Vorreiter Pedersen
5bc0a263ec PS: A call to set-variable is an explicit assignment. 2025-03-27 16:01:15 +00:00
Mathias Vorreiter Pedersen
faa94735bf PS: Add an implicit this parameter to all methods. 2025-03-27 16:01:14 +00:00
Mathias Vorreiter Pedersen
31f14ba99a PS: Add synthesis framework for cleaning up the AST. 2025-03-27 16:01:11 +00:00
Mathias Vorreiter Pedersen
0dd756d72d PS: Add support for variables. 2025-03-27 16:01:10 +00:00
Mathias Vorreiter Pedersen
11c84ccaf4 PS: Add the IPA type representing the AST. 2025-03-27 16:01:09 +00:00