Module Policy.Make

Parameters

Signature

val select : t -> Kind.t -> unit Machine.t

select p k selects the taint propagation policy p for objects of kind k. If no policy is selected for a kind of an object, then objects of that kind will be propagated by default policy.

val set_default : t -> unit Machine.t

set_default policy makes policy the default policy for all kinds that didn't select their own taint propagation policies.

val selected : t -> Kind.t -> bool Machine.t

selected p k is true if the policy p was selected for the kind k.

propagate p rs rd srcs dst transfers objects associated with srcs to dst based on the selected policy p.

Effect: all objects that have selected the propagation policy p and were associated with srcs by the relation rs are attached to the dst value using the rd relation. All associations of the srcs values remain unaffected.

include Value with type t := t and type 'a m := 'a Machine.t

to_value x injects x into the value domain

of_value v project the value v to the abstract domain of t