Pulselib.PulseTaintOperations
val call :
IR.Tenv.t ->
Pulselib.PulseDomainInterface.PathContext.t ->
IBase.Location.t ->
(IR.Ident.t * IR.Typ.t) ->
call_was_unknown:bool ->
(IR.Exp.t, IR.Procname.t) IStdlib.IStd.Either.t ->
Pulselib.PulseBasicInterface.ValueOrigin.t
Absint.ProcnameDispatcher.Call.FuncArg.t
list ->
Pulselib.PulseDomainInterface.AbductiveDomain.t ->
Pulselib.PulseDomainInterface.AbductiveDomain.t
Pulselib.PulseDomainInterface.AccessResult.t
add sources and sinks coming from a particular call site
val store :
IR.Tenv.t ->
Pulselib.PulseDomainInterface.PathContext.t ->
IBase.Location.t ->
lhs:IR.Exp.t ->
rhs:(IR.Exp.t * Pulselib.PulseBasicInterface.ValueOrigin.t * IR.Typ.t) ->
Pulselib.PulseDomainInterface.AbductiveDomain.t ->
Pulselib.PulseDomainInterface.AbductiveDomain.t
Pulselib.PulseDomainInterface.AccessResult.t
val taint_allocation :
IR.Tenv.t ->
Pulselib.PulseDomainInterface.PathContext.t ->
IBase.Location.t ->
typ_desc:IR.Typ.desc ->
alloc_desc:string ->
allocator:Pulselib.PulseBasicInterface.Attribute.allocator option ->
(Pulselib.PulseBasicInterface.AbstractValue.t
* Pulselib.PulseBasicInterface.ValueHistory.t) ->
Pulselib.PulseDomainInterface.AbductiveDomain.t ->
Pulselib.PulseDomainInterface.AbductiveDomain.t
* (Pulselib.PulseBasicInterface.AbstractValue.t
* Pulselib.PulseBasicInterface.ValueHistory.t)
val check_flows_wrt_sink :
Pulselib.PulseDomainInterface.PathContext.t ->
IBase.Location.t ->
sink:
(Pulselib.PulseBasicInterface.TaintItem.t
* Pulselib.PulseBasicInterface.Trace.t) ->
source:
(Pulselib.PulseBasicInterface.AbstractValue.t
* Pulselib.PulseBasicInterface.ValueHistory.t) ->
Pulselib.PulseDomainInterface.AbductiveDomain.t ->
Pulselib.PulseDomainInterface.AbductiveDomain.t
Pulselib.PulseDomainInterface.AccessResult.t
val taint_initial :
IR.Tenv.t ->
IR.ProcAttributes.t ->
Pulselib.PulseDomainInterface.AbductiveDomain.t ->
Pulselib.PulseDomainInterface.AbductiveDomain.t
val dedup_reports :
('a Pulselib.PulseDomainInterface.ExecutionDomain.base_t,
Pulselib.PulseDomainInterface.AccessResult.error)
PulseDomainInterface.pulse_result
list ->
('a Pulselib.PulseDomainInterface.ExecutionDomain.base_t,
Pulselib.PulseDomainInterface.AccessResult.error)
PulseDomainInterface.pulse_result
list
val procedure_matches_source : IR.Tenv.t -> IR.Procname.t -> bool
val propagate_to :
Pulselib.PulseDomainInterface.PathContext.t ->
IBase.Location.t ->
Pulselib.PulseBasicInterface.Attribute.taint_propagation_reason ->
Pulselib.PulseBasicInterface.ValueOrigin.t ->
Pulselib.PulseBasicInterface.ValueOrigin.t list ->
Pulselib.PulseBasicInterface.CallEvent.t ->
Pulselib.PulseDomainInterface.AbductiveDomain.t ->
Pulselib.PulseDomainInterface.AbductiveDomain.t