Skip to content

Commit 04db61a

Browse files
committed
Dataflow: Move Stage1 to its own file. Stick flow exploration in there as well.
1 parent 02a81a0 commit 04db61a

File tree

4 files changed

+5076
-4826
lines changed

4 files changed

+5076
-4826
lines changed

shared/dataflow/codeql/dataflow/DataFlow.qll

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -643,6 +643,7 @@ private module PathGraphSigMod {
643643
module DataFlowMake<LocationSig Location, InputSig<Location> Lang> {
644644
private import Lang
645645
private import internal.DataFlowImpl::MakeImpl<Location, Lang>
646+
private import internal.DataFlowImplStage1::MakeImplStage1<Location, Lang>
646647
import Configs<Location, Lang>
647648

648649
/**
@@ -700,7 +701,13 @@ module DataFlowMake<LocationSig Location, InputSig<Location> Lang> {
700701
}
701702
}
702703

703-
import Impl<C>
704+
private module Stage1 = ImplStage1<C>;
705+
706+
import Stage1::PartialFlow
707+
708+
private module Flow = Impl<C, Stage1::Stage1NoState>;
709+
710+
import Flow
704711
}
705712

706713
/**
@@ -723,7 +730,13 @@ module DataFlowMake<LocationSig Location, InputSig<Location> Lang> {
723730
}
724731
}
725732

726-
import Impl<C>
733+
private module Stage1 = ImplStage1<C>;
734+
735+
import Stage1::PartialFlow
736+
737+
private module Flow = Impl<C, Stage1::Stage1NoState>;
738+
739+
import Flow
727740
}
728741

729742
signature class PathNodeSig {

shared/dataflow/codeql/dataflow/TaintTracking.qll

Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
private import DataFlow as DF
77
private import internal.DataFlowImpl
8+
private import internal.DataFlowImplStage1
89
private import codeql.util.Location
910

1011
/**
@@ -47,6 +48,7 @@ module TaintFlowMake<
4748
private import TaintTrackingLang
4849
private import DF::DataFlowMake<Location, DataFlowLang> as DataFlow
4950
private import MakeImpl<Location, DataFlowLang> as DataFlowInternal
51+
private import MakeImplStage1<Location, DataFlowLang> as DataFlowInternalStage1
5052

5153
private module AddTaintDefaults<DataFlowInternal::FullStateConfigSig Config> implements
5254
DataFlowInternal::FullStateConfigSig
@@ -94,7 +96,13 @@ module TaintFlowMake<
9496
import AddTaintDefaults<Config0>
9597
}
9698

97-
import DataFlowInternal::Impl<C>
99+
private module Stage1 = DataFlowInternalStage1::ImplStage1<C>;
100+
101+
import Stage1::PartialFlow
102+
103+
private module Flow = DataFlowInternal::Impl<C, Stage1::Stage1NoState>;
104+
105+
import Flow
98106
}
99107

100108
/**
@@ -122,7 +130,13 @@ module TaintFlowMake<
122130
import AddTaintDefaults<Config0>
123131
}
124132

125-
import DataFlowInternal::Impl<C>
133+
private module Stage1 = DataFlowInternalStage1::ImplStage1<C>;
134+
135+
import Stage1::PartialFlow
136+
137+
private module Flow = DataFlowInternal::Impl<C, Stage1::Stage1NoState>;
138+
139+
import Flow
126140
}
127141

128142
signature int speculationLimitSig();
@@ -218,7 +232,13 @@ module TaintFlowMake<
218232
import AddTaintDefaults<AddSpeculativeTaintSteps<Config0, speculationLimit/0>>
219233
}
220234

221-
import DataFlowInternal::Impl<C>
235+
private module Stage1 = DataFlowInternalStage1::ImplStage1<C>;
236+
237+
import Stage1::PartialFlow
238+
239+
private module Flow = DataFlowInternal::Impl<C, Stage1::Stage1NoState>;
240+
241+
import Flow
222242
}
223243

224244
/**
@@ -250,6 +270,12 @@ module TaintFlowMake<
250270
import AddTaintDefaults<AddSpeculativeTaintSteps<Config0, speculationLimit/0>>
251271
}
252272

253-
import DataFlowInternal::Impl<C>
273+
private module Stage1 = DataFlowInternalStage1::ImplStage1<C>;
274+
275+
import Stage1::PartialFlow
276+
277+
private module Flow = DataFlowInternal::Impl<C, Stage1::Stage1NoState>;
278+
279+
import Flow
254280
}
255281
}

0 commit comments

Comments
 (0)