This commit is contained in:
Jeroen Ketema 2023-08-04 11:48:39 +02:00
Родитель bdd64ce86d
Коммит 7ba2f7a22a
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 0D28C783F1AAA17F
1 изменённых файлов: 21 добавлений и 18 удалений

Просмотреть файл

@ -3,20 +3,21 @@
* global (inter-procedural) taint-tracking analyses. * global (inter-procedural) taint-tracking analyses.
*/ */
import DataFlow private import DataFlow
import DataFlowImpl private import DataFlowImpl
import DataFlowParameter private import DataFlowParameter
import TaintTrackingParameter import TaintTrackingParameter
module TaintFlowMake< module TaintFlowMake<
DataFlowParameter DataFlowLang, TaintTrackingParameter<DataFlowLang> TaintTrackingLang> DataFlowParameter DataFlowLang, TaintTrackingParameter<DataFlowLang> TaintTrackingLang>
{ {
private import DataFlowLang
private import TaintTrackingLang private import TaintTrackingLang
private import DataFlowMake<DataFlowLang> private import DataFlowMake<DataFlowLang> as DataFlow
private import MakeImpl<DataFlowLang> private import MakeImpl<DataFlowLang> as DataFlowInternal
private module AddTaintDefaults<FullStateConfigSig Config> implements FullStateConfigSig { private module AddTaintDefaults<DataFlowInternal::FullStateConfigSig Config> implements
DataFlowInternal::FullStateConfigSig
{
import Config import Config
predicate isBarrier(DataFlowLang::Node node) { predicate isBarrier(DataFlowLang::Node node) {
@ -44,41 +45,43 @@ module TaintFlowMake<
/** /**
* Constructs a global taint tracking computation. * Constructs a global taint tracking computation.
*/ */
module Global<ConfigSig Config> implements GlobalFlowSig { module Global<DataFlow::ConfigSig Config> implements DataFlow::GlobalFlowSig {
private module Config0 implements FullStateConfigSig { private module Config0 implements DataFlowInternal::FullStateConfigSig {
import DefaultState<Config> import DataFlowInternal::DefaultState<Config>
import Config import Config
} }
private module C implements FullStateConfigSig { private module C implements DataFlowInternal::FullStateConfigSig {
import AddTaintDefaults<Config0> import AddTaintDefaults<Config0>
} }
import Impl<C> import DataFlowInternal::Impl<C>
} }
/** DEPRECATED: Use `Global` instead. */ /** DEPRECATED: Use `Global` instead. */
deprecated module Make<ConfigSig Config> implements GlobalFlowSig { deprecated module Make<DataFlow::ConfigSig Config> implements DataFlow::GlobalFlowSig {
import Global<Config> import Global<Config>
} }
/** /**
* Constructs a global taint tracking computation using flow state. * Constructs a global taint tracking computation using flow state.
*/ */
module GlobalWithState<StateConfigSig Config> implements GlobalFlowSig { module GlobalWithState<DataFlow::StateConfigSig Config> implements DataFlow::GlobalFlowSig {
private module Config0 implements FullStateConfigSig { private module Config0 implements DataFlowInternal::FullStateConfigSig {
import Config import Config
} }
private module C implements FullStateConfigSig { private module C implements DataFlowInternal::FullStateConfigSig {
import AddTaintDefaults<Config0> import AddTaintDefaults<Config0>
} }
import Impl<C> import DataFlowInternal::Impl<C>
} }
/** DEPRECATED: Use `GlobalWithState` instead. */ /** DEPRECATED: Use `GlobalWithState` instead. */
deprecated module MakeWithState<StateConfigSig Config> implements GlobalFlowSig { deprecated module MakeWithState<DataFlow::StateConfigSig Config> implements
DataFlow::GlobalFlowSig
{
import GlobalWithState<Config> import GlobalWithState<Config>
} }
} }