report

package
v1.24.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 10, 2026 License: Apache-2.0 Imports: 26 Imported by: 2

Documentation

Index

Constants

View Source
const (
	INVALID int = iota - 1
	HARMLESS
	LOW
	MEDIUM
	HIGH
	CRITICAL
)
View Source
const NAME string = "malcontent"

Variables

View Source
var Levels = map[string]int{
	"ignore":     INVALID,
	"none":       INVALID,
	"harmless":   HARMLESS,
	"low":        LOW,
	"notable":    MEDIUM,
	"medium":     MEDIUM,
	"suspicious": HIGH,
	"weird":      HIGH,
	"high":       HIGH,
	"crit":       CRITICAL,
	"critical":   CRITICAL,
}

Map to handle RiskLevel -> RiskScore conversions.

View Source
var RiskLevels = map[int]string{
	INVALID:  "NONE",
	HARMLESS: "NONE",
	LOW:      "LOW",
	MEDIUM:   "MEDIUM",
	HIGH:     "HIGH",
	CRITICAL: "CRITICAL",
}

Map to handle RiskScore -> RiskLevel conversions.

Functions

func CleanReportPath added in v1.19.0

func CleanReportPath(path, tmpRoot, imageURI string) string

CleanReportPath preserves existing image URIs in a path or removes the temporary directory root from a path.

func ExtractImageURI added in v1.19.0

func ExtractImageURI(files map[string]*malcontent.FileReport) string

ExtractImageURI extracts the image URI from paths in a report.

func ExtractTmpRoot added in v1.19.0

func ExtractTmpRoot(files map[string]*malcontent.FileReport) string

ExtractTmpRoot extracts the temporary directory root from paths in a report.

func FormatReportKey added in v1.19.0

func FormatReportKey(path, tmpRoot, imageURI string) string

FormatReportKey creates an appropriate key for a file from a loaded report.

func Generate

func Generate(ctx context.Context, path string, mrs *yarax.ScanResults, c malcontent.Config, expath string, _ *clog.Logger, fc []byte, size int64, checksum string, kind *programkind.FileType, highestRisk int) (*malcontent.FileReport, error)

func HighestMatchRisk added in v1.10.0

func HighestMatchRisk(mrs *yarax.ScanResults) int

HighestMatchRisk returns the highest risk score from a slice of MatchRules.

func Load added in v1.19.0

func Load(data []byte) (malcontent.ScanResult, error)

func TrimPrefixes added in v1.5.0

func TrimPrefixes(path string, prefixes []string) string

TrimPrefixes removes the specified prefix from a given path for the purposes of sample test data generation. This function will only be used via the refresh package.

Types

type StringPool added in v1.8.0

type StringPool struct {
	// contains filtered or unexported fields
}

StringPool holds data to handle string interning.

The count field is an approximate entry counter maintained via atomic increments; it may slightly overcount under concurrent stores of the same key but never undercounts a new-key store. The clearing field gates resets so that exactly one goroutine performs the Clear when the approximate count reaches the cap.

func NewStringPool added in v1.8.0

func NewStringPool() *StringPool

NewStringPool returns the process-wide string pool. Successive calls return the same instance so interning state is shared across every match processor for the lifetime of the process.

func (*StringPool) Intern added in v1.8.0

func (sp *StringPool) Intern(s string) string

Intern returns an interned version of the input string. An approximate atomic counter tracks distinct entries; when it reaches maxInternedStrings a single goroutine (selected via CAS) clears the map and resets the counter while other goroutines proceed without blocking. The count may drift slightly from the true map size under heavy concurrency, which is acceptable because the cap is a memory bound, not an exact invariant.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL