11import  java
22private  import  semmle.code.java.dataflow.DataFlow
33private  import  semmle.code.java.dataflow.internal.DataFlowImplSpecific
4- 
54private  import  codeql.dataflowstack.DataFlowStack as  DFS
65private  import  DFS:: DataFlowStackMake< Location ,  JavaDataFlow >  as  DataFlowStackFactory
76
8- module  DataFlowStackMake< DataFlowStackFactory:: DataFlow:: GlobalFlowSig  Flow> { 
9-     import  DataFlowStackFactory:: FlowStack< Flow > 
7+ private  module  DataFlowStackInput< DataFlowStackFactory:: DataFlow:: ConfigSig  Config>  implements 
8+   DFS:: DataFlowStackSig< Location ,  JavaDataFlow ,  Config > 
9+ { 
10+   private  module  Flow =  DataFlow:: Global< Config > ;
11+ 
12+   JavaDataFlow:: Node  getNode ( Flow:: PathNode  n )  {  result  =  n .getNode ( )  } 
13+ 
14+   predicate  isSource ( Flow:: PathNode  n )  {  n .isSource ( )  } 
15+ 
16+   Flow:: PathNode  getASuccessor ( Flow:: PathNode  n )  {  result  =  n .getASuccessor ( )  } 
17+ 
18+   JavaDataFlow:: DataFlowCallable  getARuntimeTarget ( JavaDataFlow:: DataFlowCall  call )  { 
19+     result .asCallable ( )  =  call .asCall ( ) .getCallee ( ) 
20+   } 
21+ 
22+   JavaDataFlow:: Node  getAnArgumentNode ( JavaDataFlow:: DataFlowCall  call )  { 
23+     result  =  JavaDataFlow:: exprNode ( call .asCall ( ) .getAnArgument ( ) ) 
24+   } 
25+ } 
26+ 
27+ module  DataFlowStackMake< DataFlowStackFactory:: DataFlow:: ConfigSig  Config>  { 
28+   import  DataFlowStackFactory:: FlowStack< Config ,  DataFlowStackInput< Config > > 
1029} 
1130
12- module  BiStackAnalysisMake< DataFlowStackFactory:: DataFlow:: GlobalFlowSig  FlowA,  DataFlowStackFactory:: DataFlow:: GlobalFlowSig  FlowB> { 
13-     import  DataFlowStackFactory:: BiStackAnalysis< FlowA ,  FlowB > 
14- } 
31+ module  BiStackAnalysisMake< 
32+   DataFlowStackFactory:: DataFlow:: ConfigSig  ConfigA, 
33+   DataFlowStackFactory:: DataFlow:: ConfigSig  ConfigB> 
34+ { 
35+   import  DataFlowStackFactory:: BiStackAnalysis< ConfigA ,  DataFlowStackInput< ConfigA > ,  ConfigB ,  DataFlowStackInput< ConfigB > > 
36+ } 
0 commit comments