Skip to content
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

Sync with upstream v4.0.29 #66

Draft
wants to merge 168 commits into
base: master
Choose a base branch
from
Draft

Sync with upstream v4.0.29 #66

wants to merge 168 commits into from

Commits on May 29, 2024

  1. Hotfix for broken grouping of parts as input to parallel passes (joer…

    …nio#4612)
    
    Just some fixed MAX_BATCH_SIZE until we come up with something better.
    
    Fixes: joernio#4611
    max-leuthaeuser authored May 29, 2024
    Configuration menu
    Copy the full SHA
    773b279 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    ff9c08f View commit details
    Browse the repository at this point in the history

Commits on May 30, 2024

  1. Configuration menu
    Copy the full SHA
    2386dd3 View commit details
    Browse the repository at this point in the history
  2. [javasrc2cpg] Don't add unknown nodes to cpg for unhandled captured v…

    …ariables (joernio#4617)
    
    * Add reproducing test
    
    * Add tests for new lambdas
    
    * Never add Unknown node for captured variable
    
    * Add todos to comments about lambda parameter capturing
    johannescoetzee authored May 30, 2024
    Configuration menu
    Copy the full SHA
    b8538e7 View commit details
    Browse the repository at this point in the history
  3. [python] prevent overtainting dictLiterals (joernio#4614)

    * [python] prevent overtainting dictLiterals
    
    * use allAssignmentTypes in isAssignment
    
    * use methodFullNameExact instead of nameExact in isAssignment
    xavierpinho authored May 30, 2024
    Configuration menu
    Copy the full SHA
    fec5f4d View commit details
    Browse the repository at this point in the history
  4. [x2cpg] Program Summary Mutable Merging (joernio#4620)

    As pointed out in joernio#4240, combining this nested immutable map-like structure has a quadratic performance, and the more performant strategy would be to use nested data-structures to merge.
    
    For now, I've decided not to opt for a builder pattern, but rather keep the underlying structure mutable, and accessor methods return immutable structures.
    DavidBakerEffendi authored May 30, 2024
    Configuration menu
    Copy the full SHA
    d13bdb3 View commit details
    Browse the repository at this point in the history
  5. [x2cpg] Log frontend version and raw argument and out path (joernio#4619

    )
    
    This PR does two things:
    1) DEBUG logs the frontend name, version and raw arguments passed down
    2) INFO logs the CPG output path if not set explicitly by the user
    max-leuthaeuser authored May 30, 2024
    Configuration menu
    Copy the full SHA
    681c6e5 View commit details
    Browse the repository at this point in the history

Commits on May 31, 2024

  1. [php] Long Call Chain Type Recovery (joernio#4622)

    Added a recursive aspect to the call type recovery if the receiver of the call is possibly recoverable (and it's receiver if that's a call and so on)
    DavidBakerEffendi authored May 31, 2024
    Configuration menu
    Copy the full SHA
    b239a3e View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    6b356a8 View commit details
    Browse the repository at this point in the history
  3. [jssrc2cpg] Reduce logging noise (joernio#4621)

    - log cpg creation for each file in DEBUG only instead of INFO
     - log the astgen path only once with INFO
     - removed logging that astgen runs now in the given input folder
    max-leuthaeuser authored May 31, 2024
    Configuration menu
    Copy the full SHA
    9f2fc59 View commit details
    Browse the repository at this point in the history

Commits on Jun 3, 2024

  1. Configuration menu
    Copy the full SHA
    ec2a358 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    befd101 View commit details
    Browse the repository at this point in the history
  3. Improve pysrc2cpg parse error handling. (joernio#4629)

    - Fix last error token position if error token itself is semicolon,
      newline or EOF.
    - Also log the parser exception message.
    ml86 authored Jun 3, 2024
    Configuration menu
    Copy the full SHA
    49f6b5f View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    8999ce1 View commit details
    Browse the repository at this point in the history

Commits on Jun 4, 2024

  1. [ruby] Antlr Parser Logging Level (joernio#4632)

    Moved parser logging of memory clearing from INFO to DEBUG
    DavidBakerEffendi authored Jun 4, 2024
    Configuration menu
    Copy the full SHA
    b93288e View commit details
    Browse the repository at this point in the history
  2. [javascript] Object Property Call Linker (joernio#4634)

    A common pattern in JavaScript is something like
    
    ```javascript
    var foo = {};
    foo.bar = {};
    foo.bar.someFunc = function someFunc() {};
    
    foo.bar.someFunc();
    ```
    
    This PR adds a post-processing pass to find instances where the definition and the call live in the same file and to link them. This "common file" limitation aims to reduce false linking.
    DavidBakerEffendi authored Jun 4, 2024
    Configuration menu
    Copy the full SHA
    a23d9fc View commit details
    Browse the repository at this point in the history
  3. use generated Cpg class (joernio#4633)

    also to minify the diff for the flatgraph port
    mpollmeier authored Jun 4, 2024
    Configuration menu
    Copy the full SHA
    e6a3a77 View commit details
    Browse the repository at this point in the history
  4. [ruby] Continue if Type Stubs are Missing (joernio#4638)

    Allow the frontend to continue analysis if the type stubs for built-ins is missing.
    DavidBakerEffendi authored Jun 4, 2024
    Configuration menu
    Copy the full SHA
    64ab7e2 View commit details
    Browse the repository at this point in the history

Commits on Jun 5, 2024

  1. [javascript] new Function Calls (joernio#4635)

    The `new` operator can prefix an ordinary call, e.g.
    ```javascript
    var Print = function(str) {
    	console.log(str)
    }
    
    new Print("Hello")
    ```
    The type recovery pass only considers object instantiations from type declarations on `new` calls, but this change allows it to consider functions too.
    
    Other changes include adding constants for `:program` and `<operator>.new`
    DavidBakerEffendi authored Jun 5, 2024
    Configuration menu
    Copy the full SHA
    3c1eefd View commit details
    Browse the repository at this point in the history
  2. [ruby] Add self Base to Simple Calls (joernio#4637)

    Added implicit self receiver to simple calls.
    DavidBakerEffendi authored Jun 5, 2024
    Configuration menu
    Copy the full SHA
    f408501 View commit details
    Browse the repository at this point in the history
  3. Fix binding name for ruby2cpg. (joernio#4639)

    In ruby as for all other dynamic language there is no vtable and thus
    only a single entry in the binding tables with name=="" and
    signature=="".
    ml86 authored Jun 5, 2024
    Configuration menu
    Copy the full SHA
    e5a8088 View commit details
    Browse the repository at this point in the history
  4. [ruby] Type/Method Identifier Ref Prefixes Definition (joernio#4640)

    This change moves the type/method identifier references for entities exportable from the script to prefix the respective entity at the definition.
    DavidBakerEffendi authored Jun 5, 2024
    Configuration menu
    Copy the full SHA
    5b24ec1 View commit details
    Browse the repository at this point in the history
  5. gitignore: remove c2cpg/lib (joernio#4641)

    this caused me some headaches as I had an old jar lying around there,
    likely from a bisect session...
    mpollmeier authored Jun 5, 2024
    Configuration menu
    Copy the full SHA
    dd60599 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    97c4933 View commit details
    Browse the repository at this point in the history
  7. [ruby] Type/Method Identifier Ref Self Access (joernio#4642)

    This change moves the type/method identifier references for entities exportable from the script to prefix the respective entity at the definition.
    DavidBakerEffendi authored Jun 5, 2024
    Configuration menu
    Copy the full SHA
    ba38297 View commit details
    Browse the repository at this point in the history

Commits on Jun 6, 2024

  1. [c2cpg] Safe getEvaluation for CPP (joernio#4647)

    ICPPASTExpression.getEvaluation may fail throwing an unrecoverable exception in case of unresolved includes etc.
    max-leuthaeuser authored Jun 6, 2024
    Configuration menu
    Copy the full SHA
    a5cd07d View commit details
    Browse the repository at this point in the history
  2. [ruby] Members for Methods to Related to Bound Type Decls (joernio#4646)

    * Added `Member` nodes for each method, to relate to their respective bound `TypeDecl` nodes.
    * Added a type decl for "fake methods" that include the methods and classes exported by the file
    DavidBakerEffendi authored Jun 6, 2024
    Configuration menu
    Copy the full SHA
    cb14ade View commit details
    Browse the repository at this point in the history

Commits on Jun 7, 2024

  1. Configuration menu
    Copy the full SHA
    27c45e6 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    7200ad4 View commit details
    Browse the repository at this point in the history
  3. [ruby] Kernel Methods are Static Dispatch (joernio#4645)

    To simplify the call graph, methods resolved to the `Kernel` class are dispatched as static.
    
    Additionally, replaced `__builtin` with `Kernel` to map more closely to Ruby's internals and implemented `MemberAccessCommandContext`.
    DavidBakerEffendi authored Jun 7, 2024
    Configuration menu
    Copy the full SHA
    e406b8d View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    08607df View commit details
    Browse the repository at this point in the history

Commits on Jun 10, 2024

  1. [javasrc2cpg] add AstCreator code implementation removing comments (j…

    …oernio#4651)
    
    * [javasrc2cpg] add AstCreator `code` implementation without comments
    
    * add custom PrinterConfiguration to be used by `code`
    xavierpinho authored Jun 10, 2024
    Configuration menu
    Copy the full SHA
    f47c96a View commit details
    Browse the repository at this point in the history

Commits on Jun 11, 2024

  1. [ruby] Remove namespaceToType map check (Overapproximation) (joerni…

    …o#4654)
    
    * [ruby] Removed catch-all check in namespaceToTypeMap, some tests will have to fixed with different passes
    
    * [ruby] add failing test to be fixed at a later date
    
    * [ruby] Use File.separator in RubyScope instead of hardcoding / char
    
    * [ruby] Resolve windows paths for ruby imports
    AndreiDreyer authored Jun 11, 2024
    Configuration menu
    Copy the full SHA
    533f99c View commit details
    Browse the repository at this point in the history

Commits on Jun 12, 2024

  1. [TypeRecovery] Makes sure the receiver's index matches the dispatch t…

    …ype (joernio#4656)
    
    The starting point here was a discrepancy wrt `methodFullName`s in Python for the following two samples:
    
    ```python
    a = 10
    foo(a) # methodFullName = __builtin.int.foo
    ```
    vs
    ```python
    foo(10) # methodFullName = <unknownFullName>
    ```
    
    It was noticed that in `setTypeInformationForRecCall` the argument `i` isn't always set according to the convention that the receiver should have argument index 0 when it's a DYNAMIC_DISPATCH call and 1 when it's a STATIC_DISPATCH. This patch requires the convention to be satisfied. In turn, had to ignore 2 (deprecated) Ruby tests that were not verifying this convention.
    xavierpinho authored Jun 12, 2024
    Configuration menu
    Copy the full SHA
    75fb7a9 View commit details
    Browse the repository at this point in the history
  2. [ruby] Type & Singleton Split (joernio#4655)

    1. Created classes and modules in pairs, where one is `Foo` (the "regular" class) and the other is `Foo<class>` (the singleton class). `module` singletons get the `final` keyword.
    2. Define members for `@@` fields under `Foo<class>`
    3. Define members with `dynamicTypeHintFullName`s set to the corresponding `self` methods and under `Foo<class>`. `Foo<class>` should have empty bindings to these `self` methods. An empty binding is one with `name==""` and `signature==""`
    4. During object instantiations, e.g. `Foo.new`, add `Foo<class>` to the receiver's dynamic type hints, and `Foo` as the return type of `Call(new)`. The call linker may add an edge directly from `Foo.new` to `Foo.initialize`.
    
    cc @AndreiDreyer 
    
    Resolves joernio#4652
    DavidBakerEffendi authored Jun 12, 2024
    Configuration menu
    Copy the full SHA
    ed9671b View commit details
    Browse the repository at this point in the history
  3. [ruby] External Dependency Solver (joernio#4616)

    * [ruby] import and dependency file node creator made
    
    * [ruby] renamed linker pass to file pass
    
    * [ruby] Added base file for dependency summary solver pass
    
    * [ruby] first iteration for adding types and method nodes from ruby dependency summary
    
    * [ruby] Finished dependency solver pass, added test cases. Removed manual file creation pass for imports, handled by FileCreationPass base pass
    
    * [ruby] External dependencies naming done, import resolver is picking up most of the methods.
    
    * [ruby] Moved import resolving tagger test to sendgrid until logger is fixed
    
    * [ruby] Fixed failing tests
    
    * [ruby] External dependency renaming finished, one importing test failing that needs to be fixed
    
    * [ruby] Added stubbed type check for adding type in scope, program summary seems to be losing RUbyStubbedType though
    
    * [ruby] added check for external types when deciding to use fullName, or build fullName. Fixed failing import test
    
    * scalfmt
    
    * [ruby] Changed / to JFile.separator
    AndreiDreyer authored Jun 12, 2024
    Configuration menu
    Copy the full SHA
    e7940fe View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    706a17b View commit details
    Browse the repository at this point in the history

Commits on Jun 14, 2024

  1. Configuration menu
    Copy the full SHA
    1972bd8 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    4c1e044 View commit details
    Browse the repository at this point in the history
  3. Wrap all javaparser getType calls in Try (joernio#4666)

    * Wrap all javaparser getType calls in Try
    
    * Log failures
    
    * Switch missed try
    
    * Limit logging counts
    
    * Fix one more crash and limit log count
    
    * Use atomic operation for updating counts
    johannescoetzee authored Jun 14, 2024
    Configuration menu
    Copy the full SHA
    a65a3b2 View commit details
    Browse the repository at this point in the history

Commits on Jun 17, 2024

  1. fix jssrc astgen invocation on linux/aarch64 (joernio#4671)

    * fix jssrc astgen invocation on linux/aarch64
    
    I don't like the amount of code we have there that pretends as if "ARM"
    is a single architecture... so I've moved things in a slightly better
    direction renaming some constants to ARMv8. But I'm not going to fix
    that all in one day.
    
    * scalafmt
    
    * add platforms to file name variables
    maltek authored Jun 17, 2024
    Configuration menu
    Copy the full SHA
    0bd63ad View commit details
    Browse the repository at this point in the history

Commits on Jun 18, 2024

  1. Configuration menu
    Copy the full SHA
    dd53acd View commit details
    Browse the repository at this point in the history
  2. [ruby] MemberAccess/MemberCall Handling (joernio#4676)

    * `initialize` methods are under all types/modules with fields that need to be initialized, where `InstanceFields` under classes are considered `ClassFields` and places under the singleton type. e.g, `class Foo;SomeMember=1;end` is considered under the singleton.
    * `MemberAccess` is now not always treated as a call. As per Ruby, if the first letter of the member is capitalized, then it is a field access, otherwise a function call.
    * Calls (and qualified calls) have their base/targets recursively checked for if they need to be prepended with `self.` (i.e., not a local variable that has been declared in scope).
    * Added initial `<body>` method to catch all arbitrary statements under a type declaration, requires follow-up work
    * Fixed local variable scoping, where variables introduced in control structure blocks get fixed to the parent method and not the block itself.
    DavidBakerEffendi authored Jun 18, 2024
    Configuration menu
    Copy the full SHA
    5a4c499 View commit details
    Browse the repository at this point in the history
  3. reduce classpath dependencies from frontends: javasrc (joernio#4672)

    As discussed in e.g. joernio#4625 (comment)
    we want to avoid having classpath dependencies on the frontends and instead invoke them
    frontends as external processes (i.e. execute their start script). Otherwise we'll end in
    jar hell with various incompatible versions of many different dependencies, and complex
    issues with things like OSGI and JPMS.
    
    There's no perfect way to do so, this is the one I currently like the most...
    
    Fixes tab completion bug joernio#4625
    mpollmeier authored Jun 18, 2024
    Configuration menu
    Copy the full SHA
    80b0938 View commit details
    Browse the repository at this point in the history
  4. [gosrc2cpg] Partial gosrc2cpg frontend perforamnce optimisations (joe…

    …rnio#4668)
    
    * Partial gosrc2cpg frontend perforamnce optimisations
    
    1. Changed parsing of AST json inside AST Creator itself.
    2. Made changes in download dependency processing to generate AST only
    for the used packages and subsequently only processing used packages.
    There was a change required inside `goastgen` utility to support the
    `-include` input option.
    
    TODO:
    At this moment `AstCreator` gets instantiated while first-level
    processing for building the cache and it stays in memory till
    `AstCreationPass` is done. In subsequent changes, we will split the
    processing in such a way that we create `AstCreator` for that pass and
    destroy it once it's used. Instantiate it again for `AstCreationPass`.
    
    The above change is done as part of the larger change.
    
    * small pending change
    
    * Refactored some code to use meaningful name in the context
    pandurangpatil authored Jun 18, 2024
    Configuration menu
    Copy the full SHA
    53c2c77 View commit details
    Browse the repository at this point in the history

Commits on Jun 19, 2024

  1. add upstream_sync.sh

    karan-batavia committed Jun 19, 2024
    Configuration menu
    Copy the full SHA
    bd6b0b8 View commit details
    Browse the repository at this point in the history
  2. [Ruby] Move typeFullName to possibleTypes for DYNAMIC_DISPATCH

    …calls in AstCreator (joernio#4677)
    
    This PR handles:
     * Moved values for `typeFullName` to `possibleTypes` during the `AstCreator` pass
     * Add handling for special naming convention of builtin methods in `RubyTypeHintCallLinker` pass
    
    ---------
    
    Co-authored-by: David Baker Effendi <dave@whirlylabs.com>
    AndreiDreyer and DavidBakerEffendi authored Jun 19, 2024
    Configuration menu
    Copy the full SHA
    44d5fc7 View commit details
    Browse the repository at this point in the history
  3. [dataflowengineoss] refine return value semantics honouring (joernio#…

    …4680)
    
    * [dataflowengineoss] refine return value semantics honoring
    
    * fix c2cpg test
    
    * make sure parentNode is an argument of childNode
    xavierpinho authored Jun 19, 2024
    Configuration menu
    Copy the full SHA
    195f015 View commit details
    Browse the repository at this point in the history
  4. [benchmarks] Removed benchmarks module (joernio#4681)

    Benchmarks have been moved to a standalone tool at https://github.com/joernio/joern-benchmarks
    DavidBakerEffendi authored Jun 19, 2024
    Configuration menu
    Copy the full SHA
    0709d86 View commit details
    Browse the repository at this point in the history
  5. [ruby] Singleton Method-Member Bindings (joernio#4679)

    * Method-Members for singletons are now implemented and bound to their respective types.
    * Nested type decl members are under singletons now
    * TypeDecl members hint towards singletons now
    * Removed `:program` Type Decl
    DavidBakerEffendi authored Jun 19, 2024
    Configuration menu
    Copy the full SHA
    821c865 View commit details
    Browse the repository at this point in the history

Commits on Jun 20, 2024

  1. reduce classpath dependencies from frontends: jssrc2cpg (joernio#4682)

    * reduce classpath dependencies from frontends: jssrc2cpg
    
    similar to joernio#4672, with one
    additional refactor: reuse the scopt parser rather than manually
    fiddling with the commandline args
    
    * refactor
    
    * reuse scopt parser for javasrc as well
    
    * inline ParameterNames.TypePropagationIterations etc. again
    
    * fixup
    
    * add back old api as @deprecated to help users migrate
    mpollmeier authored Jun 20, 2024
    Configuration menu
    Copy the full SHA
    30265f3 View commit details
    Browse the repository at this point in the history

Commits on Jun 21, 2024

  1. [ruby] Create <body> method for TypeDecl statements (joernio#4685)

    This PR handles:
     * Create a new `<body>` `MethodDecl` in `RubyNodeCreator` that holds all statements that aren't `methods`/`singleton methods`/`type decls` which was previously put under the `initialize` and `initialize<class>` methods manually
     * Invoke a call to `self::className::<body>` after the `TypeDecl` is created
    
    Resolves joernio#4683
    AndreiDreyer authored Jun 21, 2024
    Configuration menu
    Copy the full SHA
    901d652 View commit details
    Browse the repository at this point in the history
  2. reduce classpath dependencies from frontends: remaining frontends (jo…

    …ernio#4684)
    
    * php
    
    * pysrc
    
    * swiftsrc
    
    * symlink for php passes
    
    * add previously missing swiftsrc2cpg part
    
    * move known_function_signatures.txt to x2cpg resources
    
    * php tests: bring back old behaviour, i.e. default iterations=3
    mpollmeier authored Jun 21, 2024
    Configuration menu
    Copy the full SHA
    1fdea49 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    388d64e View commit details
    Browse the repository at this point in the history
  4. [ruby] Nested Methods & Types (joernio#4687)

    Moved nested methods and type decls to be connected directly to the surrounding method via `AstLinker` instead of against the `Block` of the method.
    DavidBakerEffendi authored Jun 21, 2024
    Configuration menu
    Copy the full SHA
    c9a9ac4 View commit details
    Browse the repository at this point in the history

Commits on Jun 24, 2024

  1. [python] type-recovery for index accesses of calls (joernio#4688)

    * [python] type-recovery for index accesses of calls
    
    * scalafmt
    xavierpinho authored Jun 24, 2024
    Configuration menu
    Copy the full SHA
    e02b4be View commit details
    Browse the repository at this point in the history
  2. [c2cpg] Improve full names and signatures for C++. (joernio#4690)

    * [c2cpg] Improve full names and signatures for C++.
    
    The C++ method full names did not include signatures which caused a lot
    of methods to have the same full name which is not allowed. The
    situation is not yet fully resolved because method/function declarations
    independent from the implementation still created method stubs with full
    name collisions. But it is a step in the right direction and the stubs
    are easy to filter out via `isStub` step.
    
    The call node generation has been reworked to accomodate this change.
    Most noteable changes there:
    - Full names where required contain signatures
    - Signatures do not contain method names anymore
    - Dispatch type is properly set if known.
    
    * Address PR comments.
    ml86 authored Jun 24, 2024
    Configuration menu
    Copy the full SHA
    9cfd78c View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    e804449 View commit details
    Browse the repository at this point in the history
  4. add -ff-only

    karan-batavia committed Jun 24, 2024
    Configuration menu
    Copy the full SHA
    1d6a573 View commit details
    Browse the repository at this point in the history

Commits on Jun 25, 2024

  1. Configuration menu
    Copy the full SHA
    4ababf9 View commit details
    Browse the repository at this point in the history
  2. [go] Memory usage optimisations (joernio#4678)

    * Go memory usage optimisations (#31)
    
    * Partial gosrc2cpg frontend perforamnce optimisations
    
    1. Changed parsing of AST json inside AST Creator itself.
    2. Made changes in download dependency processing to generate AST only
    for the used packages and subsequently only processing used packages.
    There was a change required inside `goastgen` utility to support the
    `-include` input option.
    
    TODO:
    At this moment `AstCreator` gets instantiated while first-level
    processing for building the cache and it stays in memory till
    `AstCreationPass` is done. In subsequent changes, we will split the
    processing in such a way that we create `AstCreator` for that pass and
    destroy it once it's used. Instantiate it again for `AstCreationPass`.
    
    The above change is done as part of the larger change.
    
    * small pending change
    
    * Refactored some code to use meaningful name in the context
    
    * partial changes
    
    * yet to fix downloaddependencytest issue
    
    * Fix for the final failing unit tests
    
    * Fixes for review comments
    
    * review coment fixes
    pandurangpatil authored Jun 25, 2024
    Configuration menu
    Copy the full SHA
    44c7a5f View commit details
    Browse the repository at this point in the history

Commits on Jun 27, 2024

  1. Configuration menu
    Copy the full SHA
    6fe8f1d View commit details
    Browse the repository at this point in the history
  2. [ruby] Remove <|> Tags From Builtins & Handle [] Differently (joe…

    …rnio#4698)
    
    * Builtins are renamed from `__builtin` -> `__core` to more closely resemble the core gem in Ruby
    * Removed surrounding `<` and `>` tags from builtin packages
    * Handling `Array:[]` type calls as `Array.[]` calls
    DavidBakerEffendi authored Jun 27, 2024
    Configuration menu
    Copy the full SHA
    b9a4ad7 View commit details
    Browse the repository at this point in the history
  3. remove --ff-only

    karan-batavia committed Jun 27, 2024
    Configuration menu
    Copy the full SHA
    d81a998 View commit details
    Browse the repository at this point in the history
  4. use scala primitives (e.g. Integer -> Int) and some cleanup (joernio#…

    …4693)
    
    * use scala primitives (e.g. Integer -> Int) and some cleanup
    
    motivation: minify diff for flatgraph migration
    
    * latest cpg
    
    * latest cpg
    
    * upgrade cpg
    
    * released cpg
    mpollmeier authored Jun 27, 2024
    Configuration menu
    Copy the full SHA
    b351173 View commit details
    Browse the repository at this point in the history
  5. Cpg.newDiffGraphBuilder: use new api to minify flatgraph diff (joerni…

    …o#4699)
    
    * Cpg.newDiffGraphBuilder: use new api to minify flatgraph diff
    
    * import
    mpollmeier authored Jun 27, 2024
    Configuration menu
    Copy the full SHA
    451c0fe View commit details
    Browse the repository at this point in the history

Commits on Jun 28, 2024

  1. [ruby] Lambda Type Decl call Member (joernio#4702)

    Given the code block below:
    ```ruby
    def foo &block
     puts block.call
    end
    
    foo do
     "world!"
    end
    
    Proc parameters from do-blocks (interpreted with the usual CPG lambda handling), suggests that there is a `call` member on the type bound to the type decl.
    
    This PR adds this member, with the dynamic type hint referring to the type decl bound to this method.
    
    ```
    Resolves joernio#4700
    DavidBakerEffendi authored Jun 28, 2024
    Configuration menu
    Copy the full SHA
    f45d1a3 View commit details
    Browse the repository at this point in the history
  2. [go] Use includePackages option to process only used packages (joer…

    …nio#4703)
    
    Earlier changes to include packages with include regex, didn't filter all the packages and had a limitation to include all sub folders/packages if root package is being used. However, that wasn't the case. Hence, we introduced a mechanism to check the entire package folder path with `goastgen` with a separate flag `-includePacakges` and updated integration.
    pandurangpatil authored Jun 28, 2024
    Configuration menu
    Copy the full SHA
    8db200c View commit details
    Browse the repository at this point in the history
  3. upgrade deps (joernio#4701)

    * upgrade deps
    
    * upgrade cpg
    
    * upgrade and adapt
    mpollmeier authored Jun 28, 2024
    Configuration menu
    Copy the full SHA
    34db407 View commit details
    Browse the repository at this point in the history
  4. change merge to pull

    karan-batavia committed Jun 28, 2024
    Configuration menu
    Copy the full SHA
    db9b3ed View commit details
    Browse the repository at this point in the history
  5. pull before push

    karan-batavia committed Jun 28, 2024
    Configuration menu
    Copy the full SHA
    1653bde View commit details
    Browse the repository at this point in the history
  6. force push

    karan-batavia committed Jun 28, 2024
    Configuration menu
    Copy the full SHA
    3b0b94a View commit details
    Browse the repository at this point in the history

Commits on Jun 30, 2024

  1. Merge branch 'master' of https://github.com/joernio/joern into 2-0-427

    GitHub Actions Bot committed Jun 30, 2024
    Configuration menu
    Copy the full SHA
    9902bc0 View commit details
    Browse the repository at this point in the history
  2. Merge pull request #40 from Privado-Inc/2-0-427

    Merge 2-0-427 to backup_sync
    tuxology authored Jun 30, 2024
    Configuration menu
    Copy the full SHA
    ea541e3 View commit details
    Browse the repository at this point in the history

Commits on Jul 1, 2024

  1. [c2cpg] Safe getType / getNodeType (joernio#4706)

    They may fail throwing an unrecoverable exception in case of unresolved includes etc.
    Also, some minor clean-up.
    max-leuthaeuser authored Jul 1, 2024
    Configuration menu
    Copy the full SHA
    fe7b8b6 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    5d58eb4 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    ac1f381 View commit details
    Browse the repository at this point in the history

Commits on Jul 2, 2024

  1. Configuration menu
    Copy the full SHA
    9e5a6b2 View commit details
    Browse the repository at this point in the history
  2. [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
    AndreiDreyer authored Jul 2, 2024
    Configuration menu
    Copy the full SHA
    2fa5a03 View commit details
    Browse the repository at this point in the history
  3. [jssrc2cpg] Update astgen version (joernio#4714)

    Brings in latest babel and typescript to astgen.
    max-leuthaeuser authored Jul 2, 2024
    Configuration menu
    Copy the full SHA
    336c989 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    5e3e9c9 View commit details
    Browse the repository at this point in the history
  5. [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.
    DavidBakerEffendi authored Jul 2, 2024
    Configuration menu
    Copy the full SHA
    5afcd8f View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    b76cdda View commit details
    Browse the repository at this point in the history
  7. use scala3-style import foo.bar.* rather than ._ (joernio#4717)

    partly to minify the flatgraph diff
    mpollmeier authored Jul 2, 2024
    Configuration menu
    Copy the full SHA
    fd2894c View commit details
    Browse the repository at this point in the history
  8. [speculative] minor work on reachingDef (joernio#4715)

    * minor work on reachingDef
    
    * fmt
    
    ---------
    
    Co-authored-by: Michael Pollmeier <michael@michaelpollmeier.com>
    bbrehm and mpollmeier authored Jul 2, 2024
    Configuration menu
    Copy the full SHA
    b40cdca View commit details
    Browse the repository at this point in the history

Commits on Jul 3, 2024

  1. [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
    max-leuthaeuser authored Jul 3, 2024
    Configuration menu
    Copy the full SHA
    680be03 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    aad9fe3 View commit details
    Browse the repository at this point in the history
  3. [c2cpg] Register call typefullnames correctly (joernio#4722)

    Also handle fullnames with generics correctly when stubbing types
    For: https://shiftleftinc.atlassian.net/browse/SEN-2840
    max-leuthaeuser authored Jul 3, 2024
    Configuration menu
    Copy the full SHA
    b33a347 View commit details
    Browse the repository at this point in the history
  4. [ruby] Parser tests (joernio#4720)

    This PR adds a few more parser tests based on tests in the `querying/` folder for Ruby.
    AndreiDreyer authored Jul 3, 2024
    Configuration menu
    Copy the full SHA
    16925e6 View commit details
    Browse the repository at this point in the history
  5. [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.
    DavidBakerEffendi authored Jul 3, 2024
    Configuration menu
    Copy the full SHA
    915b0ed View commit details
    Browse the repository at this point in the history
  6. Removed joern-stats from install script (joernio#4725)

    Does not exist anymore.
    max-leuthaeuser authored Jul 3, 2024
    Configuration menu
    Copy the full SHA
    ec6d03d View commit details
    Browse the repository at this point in the history
  7. [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.
    DavidBakerEffendi authored Jul 3, 2024
    Configuration menu
    Copy the full SHA
    18f7fae View commit details
    Browse the repository at this point in the history
  8. upgrade cpg and adapt (joernio#4728)

    * upgrade cpg and adapt
    
    * use released cpg
    mpollmeier authored Jul 3, 2024
    Configuration menu
    Copy the full SHA
    dca780f View commit details
    Browse the repository at this point in the history
  9. 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`
    }
    ```
    mpollmeier authored Jul 3, 2024
    Configuration menu
    Copy the full SHA
    ea45904 View commit details
    Browse the repository at this point in the history

Commits on Jul 4, 2024

  1. [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.
    pandurangpatil authored Jul 4, 2024
    Configuration menu
    Copy the full SHA
    dbdb02f View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    59b5ada View commit details
    Browse the repository at this point in the history
  3. [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
    AndreiDreyer authored Jul 4, 2024
    Configuration menu
    Copy the full SHA
    cb2bb5c View commit details
    Browse the repository at this point in the history
  4. [c2cpg] Fixed more exceptions (joernio#4736)

    - we had one stackoverflow in fullname
    - evaluation.getOverload may return null
    max-leuthaeuser authored Jul 4, 2024
    Configuration menu
    Copy the full SHA
    d3b36e9 View commit details
    Browse the repository at this point in the history
  5. [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
    johannescoetzee authored Jul 4, 2024
    Configuration menu
    Copy the full SHA
    ff80364 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    7abe33a View commit details
    Browse the repository at this point in the history

Commits on Jul 5, 2024

  1. 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
    mpollmeier authored Jul 5, 2024
    Configuration menu
    Copy the full SHA
    dd3fb0d View commit details
    Browse the repository at this point in the history
  2. [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.
    DavidBakerEffendi authored Jul 5, 2024
    Configuration menu
    Copy the full SHA
    0c49cb9 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    cf8d139 View commit details
    Browse the repository at this point in the history
  4. [ruby] Handle super Calls (joernio#4740)

    The parser emits calls to `super` as different from simple calls, this PR handles them.
    DavidBakerEffendi authored Jul 5, 2024
    Configuration menu
    Copy the full SHA
    3a98c4b View commit details
    Browse the repository at this point in the history

Commits on Jul 8, 2024

  1. [c2cpg] Fixed MethodRef typeFullName (joernio#4743)

    Also: no more empty method fullnames
    max-leuthaeuser authored Jul 8, 2024
    Configuration menu
    Copy the full SHA
    f446279 View commit details
    Browse the repository at this point in the history
  2. [ruby] super Argument null & 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
    DavidBakerEffendi authored Jul 8, 2024
    Configuration menu
    Copy the full SHA
    2bbece9 View commit details
    Browse the repository at this point in the history
  3. [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
    DavidBakerEffendi authored Jul 8, 2024
    Configuration menu
    Copy the full SHA
    0acd0a2 View commit details
    Browse the repository at this point in the history

Commits on Jul 9, 2024

  1. Configuration menu
    Copy the full SHA
    d9be183 View commit details
    Browse the repository at this point in the history
  2. [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.
    DavidBakerEffendi authored Jul 9, 2024
    Configuration menu
    Copy the full SHA
    914aa46 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    21d39c9 View commit details
    Browse the repository at this point in the history

Commits on Jul 10, 2024

  1. [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.
    DavidBakerEffendi authored Jul 10, 2024
    Configuration menu
    Copy the full SHA
    18b6d88 View commit details
    Browse the repository at this point in the history
  2. [ruby] Singleton Methods on Objects Follow-Up (joernio#4754)

    * [ruby] Remodelled methods defined on singleton objects to no longer be lambdas
    
    * [ruby] Review comments
    AndreiDreyer authored Jul 10, 2024
    Configuration menu
    Copy the full SHA
    a547cd1 View commit details
    Browse the repository at this point in the history
  3. [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
    DavidBakerEffendi authored Jul 10, 2024
    Configuration menu
    Copy the full SHA
    777c67a View commit details
    Browse the repository at this point in the history

Commits on Jul 11, 2024

  1. Configuration menu
    Copy the full SHA
    d77252a View commit details
    Browse the repository at this point in the history
  2. [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
    DavidBakerEffendi authored Jul 11, 2024
    Configuration menu
    Copy the full SHA
    19dd54e View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    4e43881 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    243c29d View commit details
    Browse the repository at this point in the history
  5. [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
    DavidBakerEffendi authored Jul 11, 2024
    Configuration menu
    Copy the full SHA
    9c13325 View commit details
    Browse the repository at this point in the history

Commits on Jul 12, 2024

  1. Configuration menu
    Copy the full SHA
    e6f5197 View commit details
    Browse the repository at this point in the history
  2. [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`.
    DavidBakerEffendi authored Jul 12, 2024
    Configuration menu
    Copy the full SHA
    c67eeaf View commit details
    Browse the repository at this point in the history
  3. [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
    d1tto authored Jul 12, 2024
    Configuration menu
    Copy the full SHA
    57c2dfe View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    b2b2bc4 View commit details
    Browse the repository at this point in the history

Commits on Jul 15, 2024

  1. 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 <1694194+maltek@users.noreply.github.com>
    
    ---------
    
    Co-authored-by: maltek <1694194+maltek@users.noreply.github.com>
    ml86 and maltek authored Jul 15, 2024
    Configuration menu
    Copy the full SHA
    8fac557 View commit details
    Browse the repository at this point in the history
  2. [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
    ml86 authored Jul 15, 2024
    Configuration menu
    Copy the full SHA
    5336780 View commit details
    Browse the repository at this point in the history

Commits on Jul 16, 2024

  1. [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
    AndreiDreyer authored Jul 16, 2024
    Configuration menu
    Copy the full SHA
    6426120 View commit details
    Browse the repository at this point in the history
  2. [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
    d1tto authored Jul 16, 2024
    Configuration menu
    Copy the full SHA
    88e5b1c View commit details
    Browse the repository at this point in the history
  3. [c2cpg] Ignore ExpansionOverlapsBoundaryException while query static …

    …modifier (joernio#4768)
    
    Fixes these org.eclipse.cdt.core.dom.ast.ExpansionOverlapsBoundaryException for `.getSyntax` calls.
    max-leuthaeuser authored Jul 16, 2024
    Configuration menu
    Copy the full SHA
    21f7c47 View commit details
    Browse the repository at this point in the history
  4. flatgraph (joernio#4630)

    mpollmeier authored Jul 16, 2024
    Configuration menu
    Copy the full SHA
    d32a77c View commit details
    Browse the repository at this point in the history

Commits on Jul 17, 2024

  1. [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
    AndreiDreyer authored Jul 17, 2024
    Configuration menu
    Copy the full SHA
    b2fc765 View commit details
    Browse the repository at this point in the history
  2. [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
    d1tto authored Jul 17, 2024
    Configuration menu
    Copy the full SHA
    a16b684 View commit details
    Browse the repository at this point in the history
  3. [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.
    DavidBakerEffendi authored Jul 17, 2024
    Configuration menu
    Copy the full SHA
    ee5f631 View commit details
    Browse the repository at this point in the history

Commits on Jul 18, 2024

  1. Configuration menu
    Copy the full SHA
    2f543c1 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    c1919cf View commit details
    Browse the repository at this point in the history

Commits on Jul 19, 2024

  1. Configuration menu
    Copy the full SHA
    03161bb View commit details
    Browse the repository at this point in the history

Commits on Jul 22, 2024

  1. 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
    DavidBakerEffendi authored Jul 22, 2024
    Configuration menu
    Copy the full SHA
    10ab72d View commit details
    Browse the repository at this point in the history
  2. [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.
    DavidBakerEffendi authored Jul 22, 2024
    Configuration menu
    Copy the full SHA
    2c13c93 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    75680e7 View commit details
    Browse the repository at this point in the history
  4. 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
    mpollmeier authored Jul 22, 2024
    Configuration menu
    Copy the full SHA
    bd38a15 View commit details
    Browse the repository at this point in the history

Commits on Jul 24, 2024

  1. Configuration menu
    Copy the full SHA
    a8e6ca4 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    81a996b View commit details
    Browse the repository at this point in the history

Commits on Jul 25, 2024

  1. Configuration menu
    Copy the full SHA
    e9fc48f View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    4de0f0b View commit details
    Browse the repository at this point in the history
  3. [c2cpg] Create locals for function pointer decls (joernio#4799)

    Methods were wrong for that.
    max-leuthaeuser authored Jul 25, 2024
    Configuration menu
    Copy the full SHA
    7ef91c9 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    3387863 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    d269f5f View commit details
    Browse the repository at this point in the history
  6. [c2cpg] Fix for empty array init (joernio#4802)

    `.getArrayModifiers` may contain null values for empty array init
    max-leuthaeuser authored Jul 25, 2024
    Configuration menu
    Copy the full SHA
    1379bb9 View commit details
    Browse the repository at this point in the history

Commits on Jul 29, 2024

  1. [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
    max-leuthaeuser authored Jul 29, 2024
    Configuration menu
    Copy the full SHA
    dea147c View commit details
    Browse the repository at this point in the history
  2. [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
    max-leuthaeuser authored Jul 29, 2024
    Configuration menu
    Copy the full SHA
    0e9ec2b View commit details
    Browse the repository at this point in the history
  3. 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.
    ml86 authored Jul 29, 2024
    Configuration menu
    Copy the full SHA
    4a7eb3b View commit details
    Browse the repository at this point in the history

Commits on Jul 30, 2024

  1. Configuration menu
    Copy the full SHA
    fed1d54 View commit details
    Browse the repository at this point in the history

Commits on Jul 31, 2024

  1. 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.
    ml86 authored Jul 31, 2024
    Configuration menu
    Copy the full SHA
    3cd3f3c View commit details
    Browse the repository at this point in the history

Commits on Aug 1, 2024

  1. Configuration menu
    Copy the full SHA
    3a53fdb View commit details
    Browse the repository at this point in the history

Commits on Aug 2, 2024

  1. Configuration menu
    Copy the full SHA
    b60732e View commit details
    Browse the repository at this point in the history
  2. [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
    AndreiDreyer authored Aug 2, 2024
    Configuration menu
    Copy the full SHA
    fd87a48 View commit details
    Browse the repository at this point in the history
  3. [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
    AndreiDreyer authored Aug 2, 2024
    Configuration menu
    Copy the full SHA
    a01e3f2 View commit details
    Browse the repository at this point in the history
  4. [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
    AndreiDreyer authored Aug 2, 2024
    Configuration menu
    Copy the full SHA
    715c565 View commit details
    Browse the repository at this point in the history
  5. Bump cpg version and cleanup. (joernio#4821)

    Using the old SerializedCpg API hat no effect anymore.
    ml86 authored Aug 2, 2024
    Configuration menu
    Copy the full SHA
    75bf17d View commit details
    Browse the repository at this point in the history

Commits on Aug 5, 2024

  1. Configuration menu
    Copy the full SHA
    e61dba5 View commit details
    Browse the repository at this point in the history

Commits on Aug 6, 2024

  1. [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.
    ml86 authored Aug 6, 2024
    Configuration menu
    Copy the full SHA
    6c6857e View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    f10a6bc View commit details
    Browse the repository at this point in the history
  3. [ruby] Add handling for BracketAssignmentExpression (joernio#4828)

    * [ruby] Fixed bracket assignments
    
    * [ruby] Add parser test for BracketAssignment
    AndreiDreyer authored Aug 6, 2024
    Configuration menu
    Copy the full SHA
    5a16654 View commit details
    Browse the repository at this point in the history

Commits on Aug 7, 2024

  1. Configuration menu
    Copy the full SHA
    6e8c0a2 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    a687b6b View commit details
    Browse the repository at this point in the history

Commits on Oct 9, 2024

  1. Configuration menu
    Copy the full SHA
    2c2328e View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    2d94126 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    fca5d16 View commit details
    Browse the repository at this point in the history

Commits on Oct 10, 2024

  1. Configuration menu
    Copy the full SHA
    dd70905 View commit details
    Browse the repository at this point in the history

Commits on Oct 14, 2024

  1. Merge branch 'master' into backup_sync_4_0_29

    joern-cli/frontends/csharpsrc2cpg/src/main/scala/io/joern/csharpsrc2cpg/astcreation/AstForStatementsCreator.scala
    pandurangpatil committed Oct 14, 2024
    Configuration menu
    Copy the full SHA
    6e27e6f View commit details
    Browse the repository at this point in the history