Files

28 lines
912 B
Go
Raw Permalink Normal View History

package sandbox
// BuildAllOverrides maps every safe FS/exec violation in report to an
// OverrideSuggestion. Network violations are intentionally skipped because
// drivers do not classify network denials yet. Returns nil when the report is
// empty. Duplicates (same Kind+Target) are collapsed so callers do not have to
// de-dup against the existing overlay before passing the result through.
func BuildAllOverrides(report *ViolationReport) []OverrideSuggestion {
if report == nil || len(report.Violations) == 0 {
return nil
}
seen := make(map[OverrideSuggestion]struct{}, len(report.Violations))
out := make([]OverrideSuggestion, 0, len(report.Violations))
for i := range report.Violations {
sugg := overrideSuggestion(report.Violations[i])
if sugg == nil {
continue
}
if _, dup := seen[*sugg]; dup {
continue
}
seen[*sugg] = struct{}{}
out = append(out, *sugg)
}
return out
}