-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merge 4-0-119 to backup_sync #125
base: backup_sync
Are you sure you want to change the base?
Commits on Jul 1, 2024
-
[c2cpg] Safe getType / getNodeType (joernio#4706)
They may fail throwing an unrecoverable exception in case of unresolved includes etc. Also, some minor clean-up.
Configuration menu - View commit details
-
Copy full SHA for fe7b8b6 - Browse repository at this point
Copy the full SHA fe7b8b6View commit details -
Configuration menu - View commit details
-
Copy full SHA for 5d58eb4 - Browse repository at this point
Copy the full SHA 5d58eb4View commit details
Commits on Jul 2, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 9e5a6b2 - Browse repository at this point
Copy the full SHA 9e5a6b2View commit details -
[Ruby] Parser tests (joernio#4704)
This PR handles: * Move parser tests from the `deprecated` frontend to the new `ruby` frontend. * Fixed parser issues with HashLiterals * Fixed parser issues with one-liner class definitions * Fixed parser issues with arguments in functions
Configuration menu - View commit details
-
Copy full SHA for 2fa5a03 - Browse repository at this point
Copy the full SHA 2fa5a03View commit details -
[jssrc2cpg] Update astgen version (joernio#4714)
Brings in latest babel and typescript to astgen.
Configuration menu - View commit details
-
Copy full SHA for 336c989 - Browse repository at this point
Copy the full SHA 336c989View commit details -
Configuration menu - View commit details
-
Copy full SHA for 5e3e9c9 - Browse repository at this point
Copy the full SHA 5e3e9c9View commit details -
[ruby] Arrow Lambda Tests &
self
Parameter Name Fix (joernio#4716)* [ruby] Arrow Lambda Parameter Fix Tests various lambdas and fixes `self` parameter name in methods.
Configuration menu - View commit details
-
Copy full SHA for 5afcd8f - Browse repository at this point
Copy the full SHA 5afcd8fView commit details -
Configuration menu - View commit details
-
Copy full SHA for b76cdda - Browse repository at this point
Copy the full SHA b76cddaView commit details -
use scala3-style
import foo.bar.*
rather than._
(joernio#4717)partly to minify the flatgraph diff
Configuration menu - View commit details
-
Copy full SHA for fd2894c - Browse repository at this point
Copy the full SHA fd2894cView commit details -
[speculative] minor work on reachingDef (joernio#4715)
* minor work on reachingDef * fmt --------- Co-authored-by: Michael Pollmeier <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for b40cdca - Browse repository at this point
Copy the full SHA b40cdcaView commit details
Commits on Jul 3, 2024
-
[jssrc2cpg] Update astgen to v3.16.0 (joernio#4718)
This astgen version skipps giant, unparsable files with EMSCRIPTEN code now by default. For: https://shiftleftinc.atlassian.net/browse/SEN-2797
Configuration menu - View commit details
-
Copy full SHA for 680be03 - Browse repository at this point
Copy the full SHA 680be03View commit details -
Configuration menu - View commit details
-
Copy full SHA for aad9fe3 - Browse repository at this point
Copy the full SHA aad9fe3View commit details -
[c2cpg] Register call typefullnames correctly (joernio#4722)
Also handle fullnames with generics correctly when stubbing types For: https://shiftleftinc.atlassian.net/browse/SEN-2840
Configuration menu - View commit details
-
Copy full SHA for b33a347 - Browse repository at this point
Copy the full SHA b33a347View commit details -
[ruby] Parser tests (joernio#4720)
This PR adds a few more parser tests based on tests in the `querying/` folder for Ruby.
Configuration menu - View commit details
-
Copy full SHA for 16925e6 - Browse repository at this point
Copy the full SHA 16925e6View commit details -
[ruby] Simplify
<
Base Classes (joernio#4723)Inheritance via `<` in Ruby can be arbitrary extensions which warrant post-processing analysis, so this removes any attempt to resolve the type at AST creation to allow for a post-processing pass to handle this instead.
Configuration menu - View commit details
-
Copy full SHA for 915b0ed - Browse repository at this point
Copy the full SHA 915b0edView commit details -
Removed joern-stats from install script (joernio#4725)
Does not exist anymore.
Configuration menu - View commit details
-
Copy full SHA for ec6d03d - Browse repository at this point
Copy the full SHA ec6d03dView commit details -
[ruby] Make
<body>
Call Static Dispatch (joernio#4726)As the `<body>` call is synthetic and meant to be immediately deterministic, so there is no reason it should be re-determined.
Configuration menu - View commit details
-
Copy full SHA for 18f7fae - Browse repository at this point
Copy the full SHA 18f7faeView commit details -
upgrade cpg and adapt (joernio#4728)
* upgrade cpg and adapt * use released cpg
Configuration menu - View commit details
-
Copy full SHA for dca780f - Browse repository at this point
Copy the full SHA dca780fView commit details -
minify flatgraph diff: remove unnessecary (and misleading) typescheck (…
…joernio#4729) ``` [warn] -- [E092] Pattern Match Unchecked Warning: /home/mp/Projects/shiftleft/joern.1/joern-cli/frontends/pysrc2cpg/src/test/scala/io/joern/pysrc2cpg/PySrc2CpgFixture.scala:74:61 [warn] 74 | path.resultPairs().collect { case (firstElement: String, secondElement: Option[Integer]) => [warn] | ^ [warn] |the type test for Option[Integer] cannot be checked at runtime because its type arguments can't be determined from Option[Int] [warn] | [warn] | longer explanation available when compiling with `-explain` } ```
Configuration menu - View commit details
-
Copy full SHA for ea45904 - Browse repository at this point
Copy the full SHA ea45904View commit details
Commits on Jul 4, 2024
-
[gosrc2cpg] Multi module support (joernio#4724)
Earlier, if we pass the directory path which contains multiple go modules. Processing was done with all the `.go` files mapped to single `go.mod` file. With this change, we have segregated the processing by first isolating all the files mapped to respective `go.mod`. This will also make sure to cleanup the memory footprint after every module is being processed. However, this will increase the processing when used with download dependency as it will process all the `go.mod` files for identifying and processing used dependencies.
Configuration menu - View commit details
-
Copy full SHA for dbdb02f - Browse repository at this point
Copy the full SHA dbdb02fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 59b5ada - Browse repository at this point
Copy the full SHA 59b5adaView commit details -
[ruby] Singleton methods on objects (joernio#4734)
This PR changes the modelling of Singleton methods on objects. Ex: ```ruby class Animal; end animal = Animal.new class << animal def bark "woof" end end ``` Creates a lambda method for `animal.bark`, and assigns `animal.bark = methodRef(bark)` Resolves joernio#4721
Configuration menu - View commit details
-
Copy full SHA for cb2bb5c - Browse repository at this point
Copy the full SHA cb2bb5cView commit details -
[c2cpg] Fixed more exceptions (joernio#4736)
- we had one stackoverflow in fullname - evaluation.getOverload may return null
Configuration menu - View commit details
-
Copy full SHA for d3b36e9 - Browse repository at this point
Copy the full SHA d3b36e9View commit details -
[javasrc2cpg] Fix always-crashing array initializer type resolution (j…
…oernio#4733) * Fix always-crashing array initializer type resolution * Fix exception when trying to cast ArrayType to ClassOrInterfaceType * Fix formatting
Configuration menu - View commit details
-
Copy full SHA for ff80364 - Browse repository at this point
Copy the full SHA ff80364View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7abe33a - Browse repository at this point
Copy the full SHA 7abe33aView commit details
Commits on Jul 5, 2024
-
minify the flatgraph diff by bringing various things in before the bi…
…g merge (joernio#4737) * minify the flatgraph diff by bringing various things in before the big merge * fmt * revert accidental change
Configuration menu - View commit details
-
Copy full SHA for dd3fb0d - Browse repository at this point
Copy the full SHA dd3fb0dView commit details -
[TypeRecovery] Handle Member without AST Parent Safely (joernio#4739)
For new frontends with potentially malformed ASTs, type recovery must safely handle instances where members don't have AST parents.
Configuration menu - View commit details
-
Copy full SHA for 0c49cb9 - Browse repository at this point
Copy the full SHA 0c49cb9View commit details -
Configuration menu - View commit details
-
Copy full SHA for cf8d139 - Browse repository at this point
Copy the full SHA cf8d139View commit details -
[ruby] Handle
super
Calls (joernio#4740)The parser emits calls to `super` as different from simple calls, this PR handles them.
Configuration menu - View commit details
-
Copy full SHA for 3a98c4b - Browse repository at this point
Copy the full SHA 3a98c4bView commit details
Commits on Jul 8, 2024
-
[c2cpg] Fixed MethodRef typeFullName (joernio#4743)
Also: no more empty method fullnames
Configuration menu - View commit details
-
Copy full SHA for f446279 - Browse repository at this point
Copy the full SHA f446279View commit details -
[ruby]
super
Argumentnull
& Association Key Handling (joernio#4746)* Safely handles the case when `super` call has a `null` argument from the parser * Shadows keywords when they are used as keys in association keys for named arguments in calls * Handles singleton methods in implicit returns
Configuration menu - View commit details
-
Copy full SHA for 2bbece9 - Browse repository at this point
Copy the full SHA 2bbece9View commit details -
[ruby] Bind nested method members to method type (joernio#4747)
This PR fixes a bug where method members were not correctly linked to surrounding methods' bound type decls. Additionally, this handles `return` statements without any proceeding expression. Resolves joernio#4732
Configuration menu - View commit details
-
Copy full SHA for 0acd0a2 - Browse repository at this point
Copy the full SHA 0acd0a2View commit details
Commits on Jul 9, 2024
-
Configuration menu - View commit details
-
Copy full SHA for d9be183 - Browse repository at this point
Copy the full SHA d9be183View commit details -
[ruby] Fixed Persistence Issue of Captured Variable Info (joernio#4750)
The initial implementation of the edge creation and captured local node was wrongly added to the `Ast` object instead of the diff graph. This PR rectifies this.
Configuration menu - View commit details
-
Copy full SHA for 914aa46 - Browse repository at this point
Copy the full SHA 914aa46View commit details -
Configuration menu - View commit details
-
Copy full SHA for 21d39c9 - Browse repository at this point
Copy the full SHA 21d39c9View commit details
Commits on Jul 10, 2024
-
[ruby] Emit TypeRef instead of MethodRef for Lambdas (joernio#4753)
Due to Ruby method references being called via a `.call()` method, the type ref that should be emitted, is one that contains the `.call` method, but is not necessarily the same type as the one bound to the actual lambda. This makes that change, however, data-flow no longer works in the open-source data-flow tracker as this is not supported.
Configuration menu - View commit details
-
Copy full SHA for 18b6d88 - Browse repository at this point
Copy the full SHA 18b6d88View commit details -
[ruby] Singleton Methods on Objects Follow-Up (joernio#4754)
* [ruby] Remodelled methods defined on singleton objects to no longer be lambdas * [ruby] Review comments
Configuration menu - View commit details
-
Copy full SHA for a547cd1 - Browse repository at this point
Copy the full SHA a547cd1View commit details -
[ruby] Method/Type Full Name Simplification (joernio#4755)
* Renamed `:program` to `<main>` * Replaced `:` method separator to `.` * Removed `<global>` from full names of types and methods
Configuration menu - View commit details
-
Copy full SHA for 777c67a - Browse repository at this point
Copy the full SHA 777c67aView commit details
Commits on Jul 11, 2024
-
Configuration menu - View commit details
-
Copy full SHA for d77252a - Browse repository at this point
Copy the full SHA d77252aView commit details -
[ruby] Handle Re-definitions (joernio#4757)
In the case of a type or method re-definition, the full name is ensured to be unique by a set that tracks all full-names for that compilation unit, and a counter. Resolves joernio#4742
Configuration menu - View commit details
-
Copy full SHA for 19dd54e - Browse repository at this point
Copy the full SHA 19dd54eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 4e43881 - Browse repository at this point
Copy the full SHA 4e43881View commit details -
Configuration menu - View commit details
-
Copy full SHA for 243c29d - Browse repository at this point
Copy the full SHA 243c29dView commit details -
[ruby] Remodel
yield
Calls (joernio#4763)This PR remodels `yield` calls as explicit invocations of the implicit or explicit block parameter of the surrounding method. Resolves joernio#4760
Configuration menu - View commit details
-
Copy full SHA for 9c13325 - Browse repository at this point
Copy the full SHA 9c13325View commit details
Commits on Jul 12, 2024
-
Configuration menu - View commit details
-
Copy full SHA for e6f5197 - Browse repository at this point
Copy the full SHA e6f5197View commit details -
[ruby] Consistently Model Getters/Setters (joernio#4765)
Getters and setters were modelled as their CPG operations in isolation, and not using the ordinary AST creator hooks. This PR lowers the getters and setters as their `RubyNode` equivalents, and hands off the AST creation to `astForMethodDeclaration`.
Configuration menu - View commit details
-
Copy full SHA for c67eeaf - Browse repository at this point
Copy the full SHA c67eeafView commit details -
[php2cpg] Support array/list unpacking (joernio#4764)
* [php2cpg] Support array/list unpacking in assignment * [php2cpg] Rename method and fix some tests * [php2cpg] code clean and improved test * [php2cpg] improved test
Configuration menu - View commit details
-
Copy full SHA for 57c2dfe - Browse repository at this point
Copy the full SHA 57c2dfeView commit details -
Configuration menu - View commit details
-
Copy full SHA for b2b2bc4 - Browse repository at this point
Copy the full SHA b2b2bc4View commit details
Commits on Jul 15, 2024
-
IF Cfg creation for if-statements with empty
then
block. (joernio#4772) * IF Cfg creation for if-statements with empty `then` block. * Update joern-cli/frontends/c2cpg/src/test/scala/io/joern/c2cpg/passes/cfg/CfgCreationPassTests.scala Co-authored-by: maltek <[email protected]> --------- Co-authored-by: maltek <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 8fac557 - Browse repository at this point
Copy the full SHA 8fac557View commit details -
[x2cpg] Improve Cfg creation. (joernio#4773)
- Changed test constructs used to test the CFG creation to return List instead of Set. This avoids deduplication which is required for correct tests because the number of edges between two nodes matters. - The above change unveiled a problem with the for-statement CFG: Duplicate edge between loop condition and body
Configuration menu - View commit details
-
Copy full SHA for 5336780 - Browse repository at this point
Copy the full SHA 5336780View commit details
Commits on Jul 16, 2024
-
[ruby] Calls with reserved keywords (joernio#4776)
* [ruby] Moved precedence for keywords down, added special handling on local identifiers to check for keywords and member access * [ruby] Finished test for member call with reserved keyword * [ruby] remove debug print from RubyNodeCreator * [ruby] Fixed edge case for reserved keywords * [ruby] Added more checks for keyword handling, added test cases for :: syntax and having a base with the same name as a reserved keyword * [ruby] Added antlr debug flag to ruby config * [ruby] Added edge case for keyword handling
Configuration menu - View commit details
-
Copy full SHA for 6426120 - Browse repository at this point
Copy the full SHA 6426120View commit details -
[php2cpg] Lowering the init part of foreach statement (joernio#4767)
* [php2cpg] Support array/list unpacking in assignment * [php2cpg] Rename method and fix some tests * [php2cpg] code clean and improved test * [php2cpg] improved test * [php2cpg] lowering the init part of foreach statement
Configuration menu - View commit details
-
Copy full SHA for 88e5b1c - Browse repository at this point
Copy the full SHA 88e5b1cView commit details -
[c2cpg] Ignore ExpansionOverlapsBoundaryException while query static …
…modifier (joernio#4768) Fixes these org.eclipse.cdt.core.dom.ast.ExpansionOverlapsBoundaryException for `.getSyntax` calls.
Configuration menu - View commit details
-
Copy full SHA for 21f7c47 - Browse repository at this point
Copy the full SHA 21f7c47View commit details -
Configuration menu - View commit details
-
Copy full SHA for d32a77c - Browse repository at this point
Copy the full SHA d32a77cView commit details
Commits on Jul 17, 2024
-
[ruby] Enable
FILE
node content (joernio#4781)* [ruby] Added file content and offset to method and type decls * [ruby] Added test case for file content * [ruby] Remove empty curlys
Configuration menu - View commit details
-
Copy full SHA for b2fc765 - Browse repository at this point
Copy the full SHA b2fc765View commit details -
[php2cpg] array creation point marks and improved array unpacking (jo…
…ernio#4780) * [php2cpg] Support array/list unpacking in assignment * [php2cpg] Rename method and fix some tests * [php2cpg] code clean and improved test * [php2cpg] improved test * [php2cpg] lowering the init part of foreach statement * Add a new operator to mark the creation point of an array. improved array unpacking. * Use `array()` call instead of emptyArray operator
Configuration menu - View commit details
-
Copy full SHA for a16b684 - Browse repository at this point
Copy the full SHA a16b684View commit details -
[ruby] Approximate Attribute Assignment (joernio#4777)
With Ruby attribute assignments being calls, this can lead to costly data-flow tracking and these setters are rarely overridden with custom logic. This PR simplifies this model by representing the attribute assignment from a setter call to a direct field assignment. A similar adjustment is done to member getters. Misc: Simplified a parser bug workaround and linked it to an issue.
Configuration menu - View commit details
-
Copy full SHA for ee5f631 - Browse repository at this point
Copy the full SHA ee5f631View commit details
Commits on Jul 18, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 2f543c1 - Browse repository at this point
Copy the full SHA 2f543c1View commit details -
Configuration menu - View commit details
-
Copy full SHA for c1919cf - Browse repository at this point
Copy the full SHA c1919cfView commit details
Commits on Jul 19, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 03161bb - Browse repository at this point
Copy the full SHA 03161bbView commit details
Commits on Jul 22, 2024
-
Added
joern-slice
Data-Flow Script Test (joernio#4786)* Added a script that parses and creates a sensible string from a slice that can be tested against. * Fixed a slicing bug where slicing direction was in the opposite direction of neighbour retrieval and ended up ignoring certain nodes. * Added entry in the `test-scripts` job to run the slice script, parse the slice, and assert the expected flow with `grep`. Resolves joernio#4783
Configuration menu - View commit details
-
Copy full SHA for 10ab72d - Browse repository at this point
Copy the full SHA 10ab72dView commit details -
[ruby] Fix Case Where Field Access Prepends
@
on CONST (joernio#4789)There was a case that would mistakenly prepend `@` on a member that start with a capitalized first letter.
Configuration menu - View commit details
-
Copy full SHA for 2c13c93 - Browse repository at this point
Copy the full SHA 2c13c93View commit details -
Configuration menu - View commit details
-
Copy full SHA for 75680e7 - Browse repository at this point
Copy the full SHA 75680e7View commit details -
workaround for scala completion bug (joernio#4791)
on stage: remove module-info.class from dependency jars - a hacky workaround for a scala3 compiler bug: scala/scala3#20421 Fixes joernio#4625
Configuration menu - View commit details
-
Copy full SHA for bd38a15 - Browse repository at this point
Copy the full SHA bd38a15View commit details
Commits on Jul 24, 2024
-
Configuration menu - View commit details
-
Copy full SHA for a8e6ca4 - Browse repository at this point
Copy the full SHA a8e6ca4View commit details -
Configuration menu - View commit details
-
Copy full SHA for 81a996b - Browse repository at this point
Copy the full SHA 81a996bView commit details
Commits on Jul 25, 2024
-
Configuration menu - View commit details
-
Copy full SHA for e9fc48f - Browse repository at this point
Copy the full SHA e9fc48fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 4de0f0b - Browse repository at this point
Copy the full SHA 4de0f0bView commit details -
[c2cpg] Create locals for function pointer decls (joernio#4799)
Methods were wrong for that.
Configuration menu - View commit details
-
Copy full SHA for 7ef91c9 - Browse repository at this point
Copy the full SHA 7ef91c9View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3387863 - Browse repository at this point
Copy the full SHA 3387863View commit details -
Configuration menu - View commit details
-
Copy full SHA for d269f5f - Browse repository at this point
Copy the full SHA d269f5fView commit details -
[c2cpg] Fix for empty array init (joernio#4802)
`.getArrayModifiers` may contain null values for empty array init
Configuration menu - View commit details
-
Copy full SHA for 1379bb9 - Browse repository at this point
Copy the full SHA 1379bb9View commit details
Commits on Jul 29, 2024
-
[x2cpg] Do not crash on .listRecursively (joernio#4806)
This may throw (FileSystemLoopException, or any other reason why this dir may not be readable). We use Files.walkFileTree now. The only solution where a safe continue mechanism can be implemented. Fixes: https://shiftleftinc.atlassian.net/browse/SEN-2976
Configuration menu - View commit details
-
Copy full SHA for dea147c - Browse repository at this point
Copy the full SHA dea147cView commit details -
[c2cpg] Add implicit this param + access (joernio#4803)
- implicit this param for CPP functions - identifiers that are actual member accesses are now transformed, e.g., this->varname if varname is a member and we are in the corresponding context
Configuration menu - View commit details
-
Copy full SHA for 0e9ec2b - Browse repository at this point
Copy the full SHA 0e9ec2bView commit details -
Add support for THROW control structure. (joernio#4807)
1. Added the support in the CfgCreator. A THROW control structure now breaks control flow. 2. Adjust c2cpg to generate such a control structure instead of a CALL node.
Configuration menu - View commit details
-
Copy full SHA for 4a7eb3b - Browse repository at this point
Copy the full SHA 4a7eb3bView commit details
Commits on Jul 30, 2024
-
Configuration menu - View commit details
-
Copy full SHA for fed1d54 - Browse repository at this point
Copy the full SHA fed1d54View commit details
Commits on Jul 31, 2024
-
Ammendment to previous
throw
statement cfg change. (joernio#4814)In this PR joernio#4807 the CFG for `throw` statements was changes in the way that they have no outgoing CFG edges. Since this might break assumptions of some CFG consuming code, we now create outgoing CFG edges from `throw` statements to the method exit nodes.
Configuration menu - View commit details
-
Copy full SHA for 3cd3f3c - Browse repository at this point
Copy the full SHA 3cd3f3cView commit details
Commits on Aug 1, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 3a53fdb - Browse repository at this point
Copy the full SHA 3a53fdbView commit details
Commits on Aug 2, 2024
-
Configuration menu - View commit details
-
Copy full SHA for b60732e - Browse repository at this point
Copy the full SHA b60732eView commit details -
[ruby] Parser Tests (joernio#4809)
* [ruby] Initial commit for new Ast Printer, basic methods implemented * [ruby] Initial AstPrinter finished * [ruby] String parser tests working on new AstPrinter * [ruby] ArrayParserTests, SingleAssignmentTests, BeginExpressionTests moved over to new AstPrinter for parsing tests * [ruby] BooleanParserTests moved to new parser test * [ruby] CaseConditionParserTests moved * [ruby] ControlStructureParserTests moved * [ruby] FieldAccess, HashLiteral, IndexAccess and InvocationWithoutParentheses parser tests moved * [ruby] InvocationWithParentheses moved * [ruby] MethodDef and ProcDef parser tests moved * [ruby] Range, regex, require parser tests moved * [ruby] Return and ternary parser tests moved * [ruby] UnlessStmt parser tests moved * [ruby] Ensure statement parser test moved * [ruby] DoBlock parser tests moved * [ruby] RescueClause parser tests moved * [ruby] MultipleAssignment moved * [ruby] ClassDecl moved * [ruby] Module parser tests moved * [ruby] Working on interpolations * [ruby] Cleanup * [ruby] Cleanup for PR * [ruby] removed newMatch flag
Configuration menu - View commit details
-
Copy full SHA for fd87a48 - Browse repository at this point
Copy the full SHA fd87a48View commit details -
[ruby] String Array with Interpolations (joernio#4813)
* [ruby] Added handling for String interpolated array literals * [ruby] Added type check in tests * cleanup * [ruby] Fixed parser tests with new parser test framework * [ruby] removed if check on element content
Configuration menu - View commit details
-
Copy full SHA for a01e3f2 - Browse repository at this point
Copy the full SHA a01e3f2View commit details -
[ruby] Add handling for command literal
%x
(joernio#4819)* [ruby] handling added for command literal. Modelled as exec call * [ruby] fixed failing parser test * [ruby] Removed print * [ruby] Added expanded command literal to new parser tests
Configuration menu - View commit details
-
Copy full SHA for 715c565 - Browse repository at this point
Copy the full SHA 715c565View commit details -
Bump cpg version and cleanup. (joernio#4821)
Using the old SerializedCpg API hat no effect anymore.
Configuration menu - View commit details
-
Copy full SHA for 75bf17d - Browse repository at this point
Copy the full SHA 75bf17dView commit details
Commits on Aug 5, 2024
-
Configuration menu - View commit details
-
Copy full SHA for e61dba5 - Browse repository at this point
Copy the full SHA e61dba5View commit details
Commits on Aug 6, 2024
-
[ruby2cpg] Fix ImplicitRequirePass. (joernio#4826)
* [ruby2cpg] Fix ImplicitRequirePass. - Fix method lookup via AST edges. The approach of looking up module methods via is not possible at the execution time of the pass because AST is not yet linked. I replaced this buy a fullname based regex lookup. We should likely just change the execution time to after AST linking. - The other changes are just for better readability and debugability. * Address review remarks. * Fix field access lookup. We are only interested on those field accesses which operator on "self" since those describe the exported/imported objects.
Configuration menu - View commit details
-
Copy full SHA for 6c6857e - Browse repository at this point
Copy the full SHA 6c6857eView commit details -
Configuration menu - View commit details
-
Copy full SHA for f10a6bc - Browse repository at this point
Copy the full SHA f10a6bcView commit details -
[ruby] Add handling for
BracketAssignmentExpression
(joernio#4828)* [ruby] Fixed bracket assignments * [ruby] Add parser test for BracketAssignment
Configuration menu - View commit details
-
Copy full SHA for 5a16654 - Browse repository at this point
Copy the full SHA 5a16654View commit details
Commits on Aug 7, 2024
-
[ruby] Fix NPE when creating Ast on empty source files (joernio#4824)
* [ruby] Added filter to remove file with empty contents on AstCreator side * [ruby] lowered log to info, changed expression * formatting
Configuration menu - View commit details
-
Copy full SHA for d6b1214 - Browse repository at this point
Copy the full SHA d6b1214View commit details -
[rubysrc2cpg] Fix implicit import handling. (joernio#4829)
Symbols/identifiers used as based class where not taken into account for the implicit import creation.
Configuration menu - View commit details
-
Copy full SHA for bea0f35 - Browse repository at this point
Copy the full SHA bea0f35View commit details
Commits on Aug 12, 2024
-
[ruby] Fix assignment parser test (joernio#4833)
* [ruby] Fix assignment parser test * [ruby] Move assigment parser test to correct subset
Configuration menu - View commit details
-
Copy full SHA for 8ea641b - Browse repository at this point
Copy the full SHA 8ea641bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 3dd03f0 - Browse repository at this point
Copy the full SHA 3dd03f0View commit details -
[ruby] Fix last parser tests (joernio#4834)
* [ruby] Fixed regex parser tests * [ruby] Fixed last parser tests * [ruby] Use pattern matching and string interpolation for building initMethod span * fmt * remove comment
Configuration menu - View commit details
-
Copy full SHA for b766b3a - Browse repository at this point
Copy the full SHA b766b3aView commit details -
[ruby] Fixed Pseudo-Variables as Literals (joernio#4840)
Although the parser rule for picking up pseudo-variables seems fine, it may sometimes choose to represent it as a local variable. This fixes this and adds the related tests.
Configuration menu - View commit details
-
Copy full SHA for e83cae3 - Browse repository at this point
Copy the full SHA e83cae3View commit details -
[ruby]
self
ParamREF
Edge (joernio#4838)* [ruby] `self` Param `REF` Edge Fixed issue where no `REF` edges between self params and their identifiers. * Fixed the rest of the cases where `self` would have no refs * Updated test expectation
Configuration menu - View commit details
-
Copy full SHA for 71e5e7f - Browse repository at this point
Copy the full SHA 71e5e7fView commit details
Commits on Aug 13, 2024
-
[ruby] Consider
<<
as append calls (joernio#4843)As Ruby may consider `<<` as either shifting left (if LHS is a number) or as an append (if LHS is an array), one cannot statically approximate the operation. We thus consider this as a call named `<<`.
Configuration menu - View commit details
-
Copy full SHA for 8dcf938 - Browse repository at this point
Copy the full SHA 8dcf938View commit details -
[ruby] Fix Implicit Require Call Structure (joernio#4841)
The implicit require calls that are generated after the AST creation had an older/out-dated format and lead to identifiers not being linked via REF edges. Changed require to `require_relative`
Configuration menu - View commit details
-
Copy full SHA for 9f15167 - Browse repository at this point
Copy the full SHA 9f15167View commit details -
[ruby] Incorrect class names (joernio#4839)
* [ruby] Fixed incorrect class/module name, added NamespaceDeclaration node type for classes/modules defined straight in a namespace * [ruby] Added Namespace block to diffgraph, updated class test * [ruby] update module test * revert changes * [ruby] Added file as parent node of namespace block generated in class/module decl in namespace * [ruby] review changes * [ruby] Remove unused fucntions * [ruby] removed unused import
Configuration menu - View commit details
-
Copy full SHA for cd45eea - Browse repository at this point
Copy the full SHA cd45eeaView commit details -
Configuration menu - View commit details
-
Copy full SHA for 00c911f - Browse repository at this point
Copy the full SHA 00c911fView commit details -
[ruby] Constructor Lowering Fix (joernio#4845)
* [ruby] Constructor Lowering Fix * Fixed constructor lowering structure as per joernio#4822 * Tested and fixed issue in parenthesis-less `new` member calls (could use a better long-term fix in the parser) * Testing and handling an expression base of constructor * Fixed some imports * Using `code(node)`
Configuration menu - View commit details
-
Copy full SHA for 10a089e - Browse repository at this point
Copy the full SHA 10a089eView commit details
Commits on Aug 14, 2024
-
Configuration menu - View commit details
-
Copy full SHA for dfa2af1 - Browse repository at this point
Copy the full SHA dfa2af1View commit details -
[python] Include Pipfile[.lock] (joernio#4847)
* [python] Include Pipfile[.lock] * scalafmt
Configuration menu - View commit details
-
Copy full SHA for c95bc86 - Browse repository at this point
Copy the full SHA c95bc86View commit details -
[ruby] Revert type changes in
self
PR joernio#4838 (joernio#4848)`self` parameters within the scope of methods reverts back to initial surrounding type information, and keeps `ANY` otherwise, e.g. `<main>` methods.
Configuration menu - View commit details
-
Copy full SHA for c977d4c - Browse repository at this point
Copy the full SHA c977d4cView commit details
Commits on Aug 15, 2024
-
[ruby] Implicit Require & Import Processing Tweaks (joernio#4849)
* Reverted implicit requires to use `require` instead of `require_relative` * Removed requirement for `ImplicitRequirePass` to need `programSummary` argument * Moved import processing to post-processing
Configuration menu - View commit details
-
Copy full SHA for ca4c172 - Browse repository at this point
Copy the full SHA ca4c172View commit details -
[ruby] Move Post-Processing to
x2cpg
(joernio#4851)Following the other frontends, migrates the non-deprecated post-processing passes to `x2cpg`
Configuration menu - View commit details
-
Copy full SHA for e967d4c - Browse repository at this point
Copy the full SHA e967d4cView commit details
Commits on Aug 16, 2024
-
[ruby] Conflicting local nodes (joernio#4853)
* [ruby] initial commit * [ruby] Added test for locals * [ruby] cleanup * [ruby] removed check for methodFullName on scope * [ruby] removed check for methodFullName on scope * [ruby] rename function
Configuration menu - View commit details
-
Copy full SHA for 64a3ce3 - Browse repository at this point
Copy the full SHA 64a3ce3View commit details -
[ruby] Fix
methodFullName
onInitialize
callNodes (joernio#4854)* [ruby] Changed methodFullName on callNode for Initialize to DynamicUnknown instead of Any * [ruby] test fixes * [ruby] fixed failing type recovery tests * remove println
Configuration menu - View commit details
-
Copy full SHA for 162c2ca - Browse repository at this point
Copy the full SHA 162c2caView commit details -
Configuration menu - View commit details
-
Copy full SHA for 6980ae2 - Browse repository at this point
Copy the full SHA 6980ae2View commit details -
Configuration menu - View commit details
-
Copy full SHA for f08389c - Browse repository at this point
Copy the full SHA f08389cView commit details -
[ruby] Fix namespace inconsistencies (joernio#4857)
Fixed an issue where classes defined in namespaces had different fullNames for the class and singleton instance defined in the namespace. Also resolved an issue where methods defined in class defined in a namespace was not being defined under the new `TypeDecl`
Configuration menu - View commit details
-
Copy full SHA for 7e24d92 - Browse repository at this point
Copy the full SHA 7e24d92View commit details
Commits on Aug 19, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 0144560 - Browse repository at this point
Copy the full SHA 0144560View commit details -
[ruby]
raise
Calls Represented as Operator (joernio#4858)* Modified `raise` calls to be control structures of type `THROW` * If a literal argument is given, this is then explicitly represented as a `StandardError.new`
Configuration menu - View commit details
-
Copy full SHA for de2b9c0 - Browse repository at this point
Copy the full SHA de2b9c0View commit details -
[ruby] Use
try/catch/else/finally controlStructureNode
for `RescueE……xpression` (joernio#4860) * [ruby] Updated rescue expressions to use TRY/CATCH/ELSE/FINALLY controlStructureNodes * [ruby] fixed failing control structure test
Configuration menu - View commit details
-
Copy full SHA for 52cbc0e - Browse repository at this point
Copy the full SHA 52cbc0eView commit details -
Configuration menu - View commit details
-
Copy full SHA for d804e8a - Browse repository at this point
Copy the full SHA d804e8aView commit details
Commits on Aug 20, 2024
-
[ruby] Visibility Access Modifiers (joernio#4862)
* Handles various access modifiers private/public/protected * Also considers file-level methods are private and initialize methods cannot be anything other than private * Accounts for nested types where their modifiers are separate from surrounding type
Configuration menu - View commit details
-
Copy full SHA for 4b5c21f - Browse repository at this point
Copy the full SHA 4b5c21fView commit details -
[ruby] Lower
||=
and&&=
assignment operators (joernio#4863)* [ruby] Lowered ||= and &&= assignment operators to required if statements * [ruby] remove empty params in scaladocs
Configuration menu - View commit details
-
Copy full SHA for 4f44035 - Browse repository at this point
Copy the full SHA 4f44035View commit details -
[ruby] Remove
select
as Built-in Call (joernio#4865)Some calls such as `select` may be commonly shadowed by auto-loaded calls, thus, on an example basis, we will continue to comment out similar calls.
Configuration menu - View commit details
-
Copy full SHA for 9fdc4ca - Browse repository at this point
Copy the full SHA 9fdc4caView commit details
Commits on Aug 21, 2024
-
[ruby] Add
commandTernaryExpression
tocommand
(joernio#4864)* [ruby] Added operatorExpression to commandArgument * [ruby] removed operatorExpression, added only ternaryExpression to command
Configuration menu - View commit details
-
Copy full SHA for caf75bc - Browse repository at this point
Copy the full SHA caf75bcView commit details -
[ruby] Apply Cached Side-Effect Variables (joernio#4868)
For chained calls such as `a().b()`, where the base/receiver of `b` involves a call, to avoid invoking the call in both the base and receiver, we now assign a temporary variable to the first invocation and refer to it on the second invocation.
Configuration menu - View commit details
-
Copy full SHA for b341067 - Browse repository at this point
Copy the full SHA b341067View commit details
Commits on Aug 22, 2024
-
[php2cpg] Improve performance. (joernio#4867)
* [php2cpg] Improve performance. This php parser we use seems to have some warmup phase in which it has very poor performance which makes it very expensive to feed it single files like we so far did. This change invokes the php parser with groups of 20 files which on my machine give ~40% performance increase for the total frontend runtime on large projects. Bigger groups of files strangely only show marginal performance increases despite the fact that profiling the frontend indicates that there is still a lot of time wasted by the large amount of individual parser invocations. For now we keep it like this because for bigger groups we would run into argument length limitations which are especially a pain on systems like Windows. Sadly the php parser does not provide means to specify the to be parsed files other than as a list on the command line. So there would need to be some change there first before we could increase the groups size in a meaningful way.
Configuration menu - View commit details
-
Copy full SHA for 5f89dfe - Browse repository at this point
Copy the full SHA 5f89dfeView commit details
Commits on Aug 23, 2024
-
Configuration menu - View commit details
-
Copy full SHA for fc7d004 - Browse repository at this point
Copy the full SHA fc7d004View commit details
Commits on Aug 26, 2024
-
[php2cpg] Fixed the initialization of static/const members of class (j…
…oernio#4871) * [php2cpg] Fixed the init method of static/const members of class * clean code
Configuration menu - View commit details
-
Copy full SHA for 5e8eef6 - Browse repository at this point
Copy the full SHA 5e8eef6View commit details -
Configuration menu - View commit details
-
Copy full SHA for 70d6efe - Browse repository at this point
Copy the full SHA 70d6efeView commit details -
Configuration menu - View commit details
-
Copy full SHA for a03d4bf - Browse repository at this point
Copy the full SHA a03d4bfView commit details -
[c#] Implements the
forAst
Construct (joernio#4877)The current `foreach` implementation is based on an older approach that doesn't capture the semantics quite as well. This PR implements the newer `forAst` construct, which encourages de-sugaring and representing what is semantically happening underneath the `foreach` statement. Resolves joernio#4674 (comment)
Configuration menu - View commit details
-
Copy full SHA for ccb820b - Browse repository at this point
Copy the full SHA ccb820bView commit details -
* ghidra 11.1.2 * drop unused private class which doesn't compile any longer after an api change * avoid `+` which breaks some scripts
Configuration menu - View commit details
-
Copy full SHA for 086ccfa - Browse repository at this point
Copy the full SHA 086ccfaView commit details
Commits on Aug 27, 2024
-
[ruby] Handle
SingleAssignmentStatement
(joernio#4878)* [ruby] Fixed single-assignments without basic variables * [ruby] review comments * [ruby] fix failing test
Configuration menu - View commit details
-
Copy full SHA for 6a14e4d - Browse repository at this point
Copy the full SHA 6a14e4dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 0517482 - Browse repository at this point
Copy the full SHA 0517482View commit details -
Configuration menu - View commit details
-
Copy full SHA for e8df218 - Browse repository at this point
Copy the full SHA e8df218View commit details
Commits on Aug 28, 2024
-
[ruby] Add handling for ArrayLiteral used directly as argument in call (
joernio#4884) * [ruby] Add handling for ArrayLiteral used directly as argument in call * [ruby] Moved parser rule to indexingArgumentList, added ANTLR debugging flag to RubyParserTEst * rename ANTLR rule
Configuration menu - View commit details
-
Copy full SHA for df3e8a4 - Browse repository at this point
Copy the full SHA df3e8a4View commit details -
[ruby] Mixed elements in
Array
body (joernio#4885)* [ruby] Add handling for ArrayLiteral used directly as argument in call * [ruby] Moved parser rule to indexingArgumentList, added ANTLR debugging flag to RubyParserTEst * rename ANTLR rule * [ruby] Updated ANTLR rule for array elements to include decimal literals * [ruby] removed comment
Configuration menu - View commit details
-
Copy full SHA for cd806a3 - Browse repository at this point
Copy the full SHA cd806a3View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4d8e7c3 - Browse repository at this point
Copy the full SHA 4d8e7c3View commit details -
[ruby]
ParameterList
parser fixes (joernio#4887)* [ruby] update parameterList rule * [ruby] Add fixed parser test
Configuration menu - View commit details
-
Copy full SHA for 12a1080 - Browse repository at this point
Copy the full SHA 12a1080View commit details
Commits on Aug 29, 2024
-
[ruby] Implicit Imports: Additional Types & Qualified Names (joernio#…
…4879) * Allows a user of the pass to add additional type identifiers to consider for implicit imports (preference to internal types, motivation is that internal types are generally loaded later which works with zeitwerk's newest-first logic) * Handles qualified type names to be detected and imported * Added tests and better handling for constructors * Deduplicates require calls * Add core gems to `DependencyPass`
Configuration menu - View commit details
-
Copy full SHA for 389bd50 - Browse repository at this point
Copy the full SHA 389bd50View commit details
Commits on Aug 30, 2024
-
[ruby] Splat operator fixes (joernio#4889)
* [ruby] fixed naked splat on LHS * [ruby] fixed multiple RHS splat args * [ruby] Added test for middle splat arg
Configuration menu - View commit details
-
Copy full SHA for 42ea828 - Browse repository at this point
Copy the full SHA 42ea828View commit details -
[ruby] Added associations for yield arguments, fixed handling for dif…
…ferent types of arguments (joernio#4890)
Configuration menu - View commit details
-
Copy full SHA for 40cce81 - Browse repository at this point
Copy the full SHA 40cce81View commit details -
Configuration menu - View commit details
-
Copy full SHA for a997dc3 - Browse repository at this point
Copy the full SHA a997dc3View commit details
Commits on Sep 2, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 72bc423 - Browse repository at this point
Copy the full SHA 72bc423View commit details
Commits on Sep 3, 2024
-
[ruby] Temp Var Call
code
Fix (joernio#4893)* [ruby] Temp Var Call `code` Fix Fixed bug where splitting on `.` alone does not create a reasonable code property if parameters are not accounted for. * Improved code property construction
Configuration menu - View commit details
-
Copy full SHA for 911e15d - Browse repository at this point
Copy the full SHA 911e15dView commit details
Commits on Sep 4, 2024
-
[ruby]
Block Parameter
fixes (joernio#4895)* Added `GroupedParameter` type and handling for new type * Fixed ANTLR grammar rules for different combinations of block parameters * Updated relevant parser tests
Configuration menu - View commit details
-
Copy full SHA for b3c83c9 - Browse repository at this point
Copy the full SHA b3c83c9View commit details
Commits on Sep 5, 2024
-
[ruby] General Maintenance & Cleanup Pt. 1 (joernio#4897)
* Reduced redundant match done by `AstForTypesCreator->handleDefaultConstructor` * Refactored control structure handling into `AstForControlStructuresCreator` * Re-named `RubyNode` to `RubyExpression` as most-if-not-all Ruby constructs can be evaluated to some value, even statements (assignments, control structures, method definitions, etc. all return a value), and added `RubyStatement` to try to subtly define constructs that stand on their own more often that not -> this will be more fleshed out in Pt. 2 * Noted areas where more clean-up and refactoring is required, but want to keep this diff small-ish
Configuration menu - View commit details
-
Copy full SHA for 7587611 - Browse repository at this point
Copy the full SHA 7587611View commit details -
[semanticcpg] remove
runPass
(joernio#4880)* [semanticcpg] remove `runPass` * further remove "unnecessary" variable declarations
Configuration menu - View commit details
-
Copy full SHA for 353b556 - Browse repository at this point
Copy the full SHA 353b556View commit details -
Configuration menu - View commit details
-
Copy full SHA for 03c9e10 - Browse repository at this point
Copy the full SHA 03c9e10View commit details
Commits on Sep 6, 2024
-
[ruby] Handle implicit multi-assignment returns (joernio#4898)
* Handles implicit returns of multi-assignments by returning an array of the LHS assignment targets. * For implicit returns of multi-assignments created as desugaring of splatted parameters, returns `nil` as per what is evaluated in the Ruby interpreter.
Configuration menu - View commit details
-
Copy full SHA for daef3c5 - Browse repository at this point
Copy the full SHA daef3c5View commit details -
Configuration menu - View commit details
-
Copy full SHA for d80fb41 - Browse repository at this point
Copy the full SHA d80fb41View commit details
Commits on Sep 9, 2024
-
XTypeRecoveryConfig: don't error when being passes unknown arguments (j…
…oernio#4900) as discussed in joernio#4896, we currently fail hard when the user passes additional frontend arguments, which we forward to XTypeRecoveryConfig.parse With this case we still print a warning, but at least don't error. Potentially better would be to filter out everything _but_ the expected arguments in this case... simple test case: foo.sc: ``` @main def main() = { importCode.python("tests/code/pythonsrc/simple.py", args=List("--exclude-regex", "test*")) } ``` ``` sbt stage ./joern --script foo.sc ```
Configuration menu - View commit details
-
Copy full SHA for 4ef4d66 - Browse repository at this point
Copy the full SHA 4ef4d66View commit details -
[ruby] Named Arguments with Hash Rocket Syntax (joernio#4905)
Added handling for named arguments when using hash rocket syntax with "symbol" keys.
Configuration menu - View commit details
-
Copy full SHA for c0c407e - Browse repository at this point
Copy the full SHA c0c407eView commit details -
[ruby] All
require
-like Calls are Static (joernio#4904)* All `require`-like call names are now a set under `ImportsPass` * These calls are now static calls with only the arguments as children
Configuration menu - View commit details
-
Copy full SHA for 76e1e66 - Browse repository at this point
Copy the full SHA 76e1e66View commit details
Commits on Sep 10, 2024
-
[ruby] Fix
lambda
expression parser rule (joernio#4906)* [ruby] Fixed parser rules for lambda expressions to allow parameters without parentheses * [ruby] update parser rule
Configuration menu - View commit details
-
Copy full SHA for da6cc25 - Browse repository at this point
Copy the full SHA da6cc25View commit details -
[ruby] Add handling for
beginless
andendless
range expressions (j……oernio#4907) * [ruby] Added parser rules and AST lowering for beginless and endless range expressions * [ruby] changed ordering in indexing argument list
Configuration menu - View commit details
-
Copy full SHA for e19e4f3 - Browse repository at this point
Copy the full SHA e19e4f3View commit details -
semanticcpg: harden inheritance steps against loops (joernio#4909)
such loops are bugs that should be fixed. But they happen occasionally, and right now they lead to OOM and infinite loops. I'd prefer it if we handled that a bit more gracefully. The cost of the set in `.dedup` should be pretty low.
Configuration menu - View commit details
-
Copy full SHA for 1eeff12 - Browse repository at this point
Copy the full SHA 1eeff12View commit details
Commits on Sep 11, 2024
-
[ruby] add
methodInvocationWithoutParentheses
to RETURN argumentList (joernio#4908) * [ruby] add methodInvocationWithoutParentheses to RETURN argumentList * [ruby] Added check for arguments of jsonArg
Configuration menu - View commit details
-
Copy full SHA for ff73309 - Browse repository at this point
Copy the full SHA ff73309View commit details -
[rubysrc2cpg] Fix ImportPass. (joernio#4901)
Only static calls with import related names 'require', 'load" and so on are linked to import nodes. Before that we ended up with import nodes and links for calls like `Marshal.load(...)`.
Configuration menu - View commit details
-
Copy full SHA for cd654b5 - Browse repository at this point
Copy the full SHA cd654b5View commit details -
[ruby] Member Access Base as Call Fix (joernio#4910)
Fixed an instance where something like `foo.bar` would represent `foo` as a `self.foo` field access instead of a `foo()` call, given that no `foo` variable is present.
Configuration menu - View commit details
-
Copy full SHA for 81aa12b - Browse repository at this point
Copy the full SHA 81aa12bView commit details
Commits on Sep 12, 2024
-
update cpg/flatgraph (joernio#4917)
* update cpg/flatgraph * empty commit to trigger GH actions
Configuration menu - View commit details
-
Copy full SHA for fe64ec8 - Browse repository at this point
Copy the full SHA fe64ec8View commit details
Commits on Sep 13, 2024
-
Configuration menu - View commit details
-
Copy full SHA for bd79b8f - Browse repository at this point
Copy the full SHA bd79b8fView commit details
Commits on Sep 14, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 3ab71fe - Browse repository at this point
Copy the full SHA 3ab71feView commit details
Commits on Sep 16, 2024
-
[kotlin2cpg] Better fallback for annotation types. (joernio#4925)
If an annotation type full name cannot be resolved we now use `<unresolvedNamespace>.ClassName` instead of `ANY`.
Configuration menu - View commit details
-
Copy full SHA for 47c2f2f - Browse repository at this point
Copy the full SHA 47c2f2fView commit details -
[kotlin2cpg] Fix field access representation. (joernio#4927)
In case of a field access after a map/array access, the following field access had invalid argument indicies because it triggered the code path for dynamic receiver calls. This is now fixed.
Configuration menu - View commit details
-
Copy full SHA for 941a6d8 - Browse repository at this point
Copy the full SHA 941a6d8View commit details
Commits on Sep 17, 2024
-
[ruby] Access Modifier Names in Expr (joernio#4928)
* Fixed issue where access modifiers in expression positions would be unhandled * Handling identifiers on LHS of associations as symbols
Configuration menu - View commit details
-
Copy full SHA for 19011fb - Browse repository at this point
Copy the full SHA 19011fbView commit details -
[dataflowengineoss] Turn
Semantics
into a node-directed trait (joer……nio#4920) * Refactor `Semantics` -> `FullNameSemantics` * Refactor `FlowSemantic`/`FlowNode`/`FlowPath` out of the FullNameSemantics parser * Rename `Parser` -> `FullNameSemanticsParser` * Introduce `Semantics` trait with `initialize` and `forMethod`
Configuration menu - View commit details
-
Copy full SHA for 3a530c0 - Browse repository at this point
Copy the full SHA 3a530c0View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3440c26 - Browse repository at this point
Copy the full SHA 3440c26View commit details
Commits on Sep 18, 2024
-
[kotlin2cpg] Fix "nacked" call representation. (joernio#4930)
* [kotlin2cpg] Fix "nacked" call representation. Fix representation of "nacked" calls like `someFunc(someArg)`. These so far have always being represented as statically dispatched which is obviously not correct. * Handle static dispatch with instance argument case.
Configuration menu - View commit details
-
Copy full SHA for 17df32d - Browse repository at this point
Copy the full SHA 17df32dView commit details
Commits on Sep 19, 2024
-
scalac: warn when type parameters are shadowed (joernio#4937)
as brought up in joernio#4936 it can lead to confusing situations if type parameters are shadowed, so for the sake of readability and disambiguity alone we should enable this compiler warning IMO. That being said, I'd like to stress that it's not something fundamentally complicated, afaics. Simple example copied from joernio#4936: ```scala class Example[NodeType <: Object](node: NodeType) extends AnyVal{ def foo[NodeType](x: List[NodeType]): List[NodeType] = x } ``` These two type parameters in your Example class are not related at all. They happen to have the same name, which only means that within `def foo` we cannot reference the `NodeType` type from the `class Example`, but apart from that there's no connection at all between them. Semantically it's similar to something like this on the value level: the two `bar` variables are not related at all, they just happen to have the same name, and therefor we cannot reference the class-level `bar` variable from within `def baz`. ```scala class Foo { val bar = 42 def baz: Unit = { val bar = "123" () } } ```
Configuration menu - View commit details
-
Copy full SHA for 351c619 - Browse repository at this point
Copy the full SHA 351c619View commit details -
Configuration menu - View commit details
-
Copy full SHA for 236bd8f - Browse repository at this point
Copy the full SHA 236bd8fView commit details
Commits on Sep 20, 2024
-
[ruby] Antlr Profiler (joernio#4933)
* Added ANTLR profiling with the `--antlrProfile` frontend argument. * If enabled, will gather parser metrics and log them right next to the file that was parsed, as well as print any syntax ambiguities.
Configuration menu - View commit details
-
Copy full SHA for 6293a6e - Browse repository at this point
Copy the full SHA 6293a6eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 5fe5549 - Browse repository at this point
Copy the full SHA 5fe5549View commit details -
[ruby] Removal of Deprecated Frontend (joernio#4899)
Removes the old frontend and related CLI arguments. Hard deadline 20 Sept 2024.
Configuration menu - View commit details
-
Copy full SHA for 624a864 - Browse repository at this point
Copy the full SHA 624a864View commit details -
Configuration menu - View commit details
-
Copy full SHA for 226f441 - Browse repository at this point
Copy the full SHA 226f441View commit details -
[ruby] Reduce Array Parser Ambiguity (joernio#4938)
Profiled `ArrayTests` to detect ambiguity and decisions with high lookaheads and modified test fixture to print profiler logs if enabled. This led to converting certain array rules to use more specific rules and fall back to more general rules less often. Some small improvements on `railsgoat` measured with `time` command on `joern-parse`: ``` // With ambiguity 75.58s user 1.98s system 356% cpu 21.762 total 73.56s user 2.61s system 492% cpu 15.452 total 66.52s user 2.01s system 387% cpu 17.667 total // With reduced ambiguity 65.42s user 1.94s system 443% cpu 15.189 total 74.58s user 2.01s system 557% cpu 13.744 total 74.39s user 1.75s system 560% cpu 13.595 total ```
Configuration menu - View commit details
-
Copy full SHA for 2101f5a - Browse repository at this point
Copy the full SHA 2101f5aView commit details
Commits on Sep 23, 2024
-
Configuration menu - View commit details
-
Copy full SHA for c2d2005 - Browse repository at this point
Copy the full SHA c2d2005View commit details -
[Dependency Fetcher] Fix gradle dependency fetcher android detection …
…and detect project and configuration names automatically (joernio#4934) Fix android project detection and automatic name detection for gradle dependency fetcher
Configuration menu - View commit details
-
Copy full SHA for 22a58fe - Browse repository at this point
Copy the full SHA 22a58feView commit details
Commits on Sep 24, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 95bb4d1 - Browse repository at this point
Copy the full SHA 95bb4d1View commit details
Commits on Sep 25, 2024
-
Configuration menu - View commit details
-
Copy full SHA for c0955d7 - Browse repository at this point
Copy the full SHA c0955d7View commit details -
Configuration menu - View commit details
-
Copy full SHA for 5a7453b - Browse repository at this point
Copy the full SHA 5a7453bView commit details -
[ruby] Strip Unused Parser Rules (joernio#4949)
There were some unused parser rules adding unnecessary complexity to the parser
Configuration menu - View commit details
-
Copy full SHA for c27e67e - Browse repository at this point
Copy the full SHA c27e67eView commit details -
[ruby] Add handling for multiple call args (joernio#4948)
Added `simpleCommandArgumentList` to allow multiple call args for `methodInvocationWithoutParentheses`
Configuration menu - View commit details
-
Copy full SHA for 10e1c33 - Browse repository at this point
Copy the full SHA 10e1c33View commit details -
[dataflowengineoss] remove overriding operator semantics (joernio#4952)
* fix assignmentModulo * fix assignmentXor * fix assignmentOr * fix assignmentAnd * fix assignmentExponentiation * fix assignmentShiftLeft * fix assignment{Logical,Arithmetic}ShiftRight * scalafmt
Configuration menu - View commit details
-
Copy full SHA for cc7f787 - Browse repository at this point
Copy the full SHA cc7f787View commit details
Commits on Sep 26, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 55871dc - Browse repository at this point
Copy the full SHA 55871dcView commit details -
[jssrc2cpg] Fix offsets for :program and <init> method nodes (joernio…
…#4954) These synthetic METHOD nodes did not have an offset at all. For: https://shiftleftinc.atlassian.net/browse/SEN-3250
Configuration menu - View commit details
-
Copy full SHA for 9f6d756 - Browse repository at this point
Copy the full SHA 9f6d756View commit details -
[dataflowengineoss] SemanticTestCpg doesn't rebuild semantics (joerni…
…o#4955) As soon as `FullNameSemantics` started logging duplicate semantics (in joernio#4954), it was observed that `SemanticTestCpg` was passing a fresh Semantics instance to `EngineContext` instead of passing the one used by `OssDataFlow`. By coincidence, however, they were the same. Nevertheless, this patch guarantees they are the same.
Configuration menu - View commit details
-
Copy full SHA for 3d38fec - Browse repository at this point
Copy the full SHA 3d38fecView commit details -
Configuration menu - View commit details
-
Copy full SHA for 87b4b63 - Browse repository at this point
Copy the full SHA 87b4b63View commit details
Commits on Sep 27, 2024
-
[ruby] Fixed Argument Order on
ArgumentListContextHelper
(joernio#4972Configuration menu - View commit details
-
Copy full SHA for da64780 - Browse repository at this point
Copy the full SHA da64780View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8b6992d - Browse repository at this point
Copy the full SHA 8b6992dView commit details -
[c2cpg] Fixed fileName helper (joernio#4940)
Using the CDT API (getContainingFilename) now. For: joernio#4924
Configuration menu - View commit details
-
Copy full SHA for 5e38766 - Browse repository at this point
Copy the full SHA 5e38766View commit details -
[ruby] ANTLR Profiler Summary (joernio#4950)
* [ruby] ANTLR Profiler Summary * Introduced global profiling to summarize rule and parse performance across the project * Added a shutdown hook to dump a summary of the profiler rules in a file `antlr_summary.log` at the root of the project with this information * Check parent exists before dumping. May not be there during test cases * Added note around shutdown hook
Configuration menu - View commit details
-
Copy full SHA for f141437 - Browse repository at this point
Copy the full SHA f141437View commit details
Commits on Sep 29, 2024
-
Configuration menu - View commit details
-
Copy full SHA for f5dda21 - Browse repository at this point
Copy the full SHA f5dda21View commit details
Commits on Sep 30, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 7c417d2 - Browse repository at this point
Copy the full SHA 7c417d2View commit details -
Configuration menu - View commit details
-
Copy full SHA for fa22d81 - Browse repository at this point
Copy the full SHA fa22d81View commit details -
Configuration menu - View commit details
-
Copy full SHA for f1e3270 - Browse repository at this point
Copy the full SHA f1e3270View commit details
Commits on Oct 1, 2024
-
Configuration menu - View commit details
-
Copy full SHA for a4de357 - Browse repository at this point
Copy the full SHA a4de357View commit details -
[ruby] Ignore "Throwaway" AST Structures (joernio#4982)
Sometimes AST trees would be thrown away, specifically when long chained expressions would be compressed into temporary cache variables. This only happens with expressions, and closures typically write directly to the diff graph. This PR minimizes what is written directly to the diff graph from function creation, and extends `x2cpg.Ast` to also include `CAPTURE` edges. This also introduces `closureToRefs` map to track which `Block` nodes already have live method ASTs in the diff graph.
Configuration menu - View commit details
-
Copy full SHA for 3c27bf6 - Browse repository at this point
Copy the full SHA 3c27bf6View commit details -
Revert "[ruby] Ignore "Throwaway" AST Structures (joernio#4982)" (joe…
…rnio#4983) This reverts commit 3c27bf6.
Configuration menu - View commit details
-
Copy full SHA for 464480d - Browse repository at this point
Copy the full SHA 464480dView commit details
Commits on Oct 2, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 0d75bd1 - Browse repository at this point
Copy the full SHA 0d75bd1View commit details -
[ruby] Fix structure for
ForEach
loops in Ruby (joernio#4984)* [ruby] Changed handling of ForEach loops * [ruby] fixed double _astIn reference to identifier * [ruby] fix failing tests
Configuration menu - View commit details
-
Copy full SHA for bc002cf - Browse repository at this point
Copy the full SHA bc002cfView commit details -
[ruby] Re-implemented "Ignore "Throwaway" AST Structures (joernio#4982)…
…" (joernio#4985) * Revert "Revert "[ruby] Ignore "Throwaway" AST Structures (joernio#4982)" (joernio#4983)" This reverts commit 464480d. * [ruby] Re-implemented "Ignore "Throwaway" AST Structures (joernio#4982)" This correctly prevents re-use of nodes that are already being used elsewhere by ensuring deep copies.
Configuration menu - View commit details
-
Copy full SHA for 115e65c - Browse repository at this point
Copy the full SHA 115e65cView commit details -
[ruby] Implement
hashCode
forRubyExpression
(joernio#4986)`RubyExpression` nodes don't inherently consider the `span` in the calculation of its hash, so when put into any hashed context, nodes that only rely on `span` alone will collide in these contexts.
Configuration menu - View commit details
-
Copy full SHA for 3aab593 - Browse repository at this point
Copy the full SHA 3aab593View commit details
Commits on Oct 3, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 2935a1f - Browse repository at this point
Copy the full SHA 2935a1fView commit details
Commits on Oct 7, 2024
-
external commands (astgen, php-parser etc.): fix and consolidate base…
… dir (joernio#4956) The logic to guess the base dir of the installation is quite fiddly but works for our use cases for astgen. PhpParser implemented something similar, but not quite - and it failed for buildbot. On buildbot the installation path for php2cpg is `/worker/sptestV2-php2cpg/build/x2cpg-internal/php2cpg/target/universal/stage` which (prior to this PR) leads to an invalid derived php-parser name and the following error: ``` 2024-09-25 09:30:08.623 ERROR Invalid path for PhpParserBin: /worker/sptestV2-/php2cpg/bin/php-parser/php-parser.php ```
Configuration menu - View commit details
-
Copy full SHA for 488fd7b - Browse repository at this point
Copy the full SHA 488fd7bView commit details
Commits on Oct 9, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 8dbccfb - Browse repository at this point
Copy the full SHA 8dbccfbView commit details -
[x2cpg|jimple2cpg] Added server mode to jimple2cpg after fixing respo…
…nse header (joernio#4995) Turns out the HTTPServer expects an explicit "Connection: close" header which requests the connection to be closed after the transaction ends. Otherwise, it would wait for a 10sec timeout for the next thread to become available. In case we only allow for one thread (jimple2cpg) that would mean additional waiting which renders the whole server approach useless. This in now fixes as we immediately close the connection after the frontend is finished.
Configuration menu - View commit details
-
Copy full SHA for c69ecf5 - Browse repository at this point
Copy the full SHA c69ecf5View commit details
Commits on Oct 10, 2024
-
[c2cpg|jimple2cpg] Fixed name for nested declarators (joernio#4996)
This happened for parameter and variable declarations in parentheses.
Configuration menu - View commit details
-
Copy full SHA for cf3834d - Browse repository at this point
Copy the full SHA cf3834dView commit details
Commits on Oct 11, 2024
-
Configuration menu - View commit details
-
Copy full SHA for e0e493d - Browse repository at this point
Copy the full SHA e0e493dView commit details
Commits on Oct 14, 2024
-
[dataflowengineoss] take into account frontends that use the
-1
ind……ex for named arguments (joernio#5000)
Configuration menu - View commit details
-
Copy full SHA for 9e1a466 - Browse repository at this point
Copy the full SHA 9e1a466View commit details
Commits on Oct 17, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 2cce15d - Browse repository at this point
Copy the full SHA 2cce15dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 452b1e3 - Browse repository at this point
Copy the full SHA 452b1e3View commit details
Commits on Oct 18, 2024
-
[dataflowengineoss] Fix PassThroughMapping criteria for same-call nam…
…ed arguments (joernio#5003) * [dataflowengineoss] Fix PassThroughMapping criteria for named arguments * sort result for testing purposes
Configuration menu - View commit details
-
Copy full SHA for d879a89 - Browse repository at this point
Copy the full SHA d879a89View commit details -
[kotlin2cpg] Fix assertion error by locking descriptorRenderer options (
joernio#4998) DescriptorRendererImpl asserts that the options are locked upon init. This means that the type rendering will fail anywhere with assertions enabled (`-ea`) as the options weren't being locked after setup.
Configuration menu - View commit details
-
Copy full SHA for 11f92c0 - Browse repository at this point
Copy the full SHA 11f92c0View commit details
Commits on Oct 21, 2024
-
Configuration menu - View commit details
-
Copy full SHA for eeadcb6 - Browse repository at this point
Copy the full SHA eeadcb6View commit details -
ExternalCommand: more information in error conditions (joernio#5016)
* ExternalCommand: more information in error conditions * report exit code if it's non-zero * pass on original error (if any) rather than disregarding it * log.warn stderr output (if any) * add tests * compiler warning fix * exit code `2` on linux, `1` on mac... * fix for mac * error msg is different on windows
Configuration menu - View commit details
-
Copy full SHA for 2cc61c8 - Browse repository at this point
Copy the full SHA 2cc61c8View commit details
Commits on Oct 22, 2024
-
[x2cpg] Refactor ExternalCommand (joernio#5017)
Works with Java Process / ProcessBuilder now. No more scala.sys.process. ----------- Co-authored-by: Michael Pollmeier <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 398af04 - Browse repository at this point
Copy the full SHA 398af04View commit details -
fix maven dependency fetching (joernio#5021)
fixes the regression from the ExternalCommand refactor, but I couldn't leave the the env var handling as it was either. Fixing that by using a proper library for parsing CLI arguments
Configuration menu - View commit details
-
Copy full SHA for 76c64df - Browse repository at this point
Copy the full SHA 76c64dfView commit details
Commits on Oct 23, 2024
-
Merge branch 'master' of https://github.com/joernio/joern into 4-0-119
GitHub Actions Bot committedOct 23, 2024 Configuration menu - View commit details
-
Copy full SHA for 4ffd9fa - Browse repository at this point
Copy the full SHA 4ffd9faView commit details