evaluate method

  1. @override
List<Fact> evaluate(
  1. Map<String, List<List<Object>>> facts,
  2. Map<String, List<List<Object>>> derived
)
override

Evaluates the rule and returns derived facts.

Implementation

@override
List<Fact> evaluate(
  Map<String, List<List<Object>>> facts,
  Map<String, List<List<Object>>> derived,
) {
  final result = <Fact>[];
  final sources = facts['TaintSource'] ?? [];

  for (final source in sources) {
    final varId = source[0];
    final label = source[1];
    // TaintedVar(var, source, label) - var is tainted, source is origin, label is category
    result.add(Fact('TaintedVar', [varId, varId, label]));
  }

  return result;
}