My computer configuration environment is :mac os catalina10.15.1 / intellijIDE community2019.2 / last joern version / scala v2.12.10
class CpgLoad
{
def loadCpg(files: File): (Cpg, String) =
{
val inputFilenames = Set(files.pathAsString)
val outputFilename = "/tmp/cpg.bin.zip"
// Create a CPG using the C/C++ fuzzy parser
val fuzzyc2Cpg = new FuzzyC2Cpg(outputFilename)
fuzzyc2Cpg.runAndOutput(inputFilenames, Set(".c"))
// Link CPG fragments and enhance to create semantic CPG
Cpg2Scpg.run(outputFilename, dataFlow = true, "joern-cli/src/main/resources/default.semantics")
// Load the CPG
(CpgLoader.load(outputFilename), outputFilename)
}
}
class demotest extends WordSpec with Matchers
{
val files=File(getClass.getClassLoader.getResource("testcode/aacraid"))
val cpgload=new CpgLoad
val cpg=cpgload.loadCpg(files)
val sinkArguments = cpg._1.method.name("copy_from_user").parameter.argument
println(sinkArguments.reachableByFlows(cpg._1.identifier).p)
}