-
Notifications
You must be signed in to change notification settings - Fork 397
Expand file tree
/
Copy pathOssDataFlow.scala
More file actions
26 lines (19 loc) · 1.07 KB
/
OssDataFlow.scala
File metadata and controls
26 lines (19 loc) · 1.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package io.joern.dataflowengineoss.layers.dataflows
import io.joern.dataflowengineoss.DefaultSemantics
import io.joern.dataflowengineoss.passes.reachingdef.ReachingDefPass
import io.joern.dataflowengineoss.semanticsloader.{FlowSemantic, FullNameSemantics, Semantics}
import io.shiftleft.semanticcpg.layers.{LayerCreator, LayerCreatorContext, LayerCreatorOptions}
object OssDataFlow {
val overlayName: String = "dataflowOss"
val description: String = "Layer to support the OSS lightweight data flow tracker"
def defaultOpts = new OssDataFlowOptions()
}
class OssDataFlowOptions(var maxNumberOfDefinitions: Int = 4000, var semantics: Semantics = DefaultSemantics())
extends LayerCreatorOptions {}
class OssDataFlow(opts: OssDataFlowOptions)(implicit val semantics: Semantics = opts.semantics) extends LayerCreator {
override val overlayName: String = OssDataFlow.overlayName
override val description: String = OssDataFlow.description
override def create(context: LayerCreatorContext): Unit = {
ReachingDefPass(context.cpg, opts.maxNumberOfDefinitions).createAndApply()
}
}