From 5fbaeb9e6c21fc6b214627fd5b0129c33853a15a Mon Sep 17 00:00:00 2001 From: Prabhu Subramanian Date: Mon, 29 Dec 2025 21:35:30 +0000 Subject: [PATCH 1/2] Temp commit Signed-off-by: Prabhu Subramanian --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index b777cac..d2e5dcd 100644 --- a/build.sbt +++ b/build.sbt @@ -3,7 +3,7 @@ ThisBuild / organization := "io.appthreat" ThisBuild / version := "2.5.0" ThisBuild / scalaVersion := "3.7.4" -val chenVersion = "2.5.11" +val chenVersion = "2.5.12" lazy val atom = Projects.atom From 2fa1ebdf6133d6609e0834fff7f2c054913d95a8 Mon Sep 17 00:00:00 2001 From: Prabhu Subramanian Date: Thu, 1 Jan 2026 22:30:40 +0000 Subject: [PATCH 2/2] use streaming cpg pass Signed-off-by: Prabhu Subramanian --- src/main/scala/io/appthreat/atom/Atom.scala | 6 ++++++ src/main/scala/io/appthreat/atom/passes/DataDepsPass.scala | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/scala/io/appthreat/atom/Atom.scala b/src/main/scala/io/appthreat/atom/Atom.scala index c24761a..8a772c2 100644 --- a/src/main/scala/io/appthreat/atom/Atom.scala +++ b/src/main/scala/io/appthreat/atom/Atom.scala @@ -645,6 +645,9 @@ object Atom: .withOutputPath(outputAtomFile) .withFunctionBodies(false) .withIgnoredFilesRegex(COMMON_IGNORE_REGEX) + .withParseInactiveCode(false) + .withImageLocations(false) + .withIncludeTrivialExpressions(false) ) private def createC2Cpg(config: AtomConfig, outputAtomFile: String): Try[Cpg] = @@ -660,6 +663,9 @@ object Atom: .withFunctionBodies(true) .withIgnoredFilesRegex(COMMON_IGNORE_REGEX) .withIncludePaths(C2ATOM_INCLUDE_PATH) + .withParseInactiveCode(false) + .withImageLocations(false) + .withIncludeTrivialExpressions(false) ) private def createJimple2Cpg(config: AtomConfig, outputAtomFile: String): Try[Cpg] = diff --git a/src/main/scala/io/appthreat/atom/passes/DataDepsPass.scala b/src/main/scala/io/appthreat/atom/passes/DataDepsPass.scala index e487c82..18b77f2 100644 --- a/src/main/scala/io/appthreat/atom/passes/DataDepsPass.scala +++ b/src/main/scala/io/appthreat/atom/passes/DataDepsPass.scala @@ -5,13 +5,13 @@ import io.appthreat.dataflowengineoss.semanticsloader.Semantics import io.shiftleft.codepropertygraph.Cpg import io.shiftleft.codepropertygraph.generated.nodes.* import io.shiftleft.semanticcpg.language.* -import io.shiftleft.passes.ConcurrentWriterCpgPass +import io.shiftleft.passes.StreamingCpgPass import scala.collection.mutable /** A pass that calculates reaching definitions ("data dependencies") based on ReachingDefPass */ class DataDepsPass(atom: Cpg, maxNumberOfDefinitions: Int = 2000)(implicit s: Semantics) - extends ConcurrentWriterCpgPass[Method](atom): + extends StreamingCpgPass[Method](atom): // If there are any regex method full names, load them early s.loadRegexSemantics(atom)