aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/subsystem
diff options
context:
space:
mode:
authorAleksandr Nogikh <nogikh@google.com>2023-02-10 10:29:00 +0100
committerAleksandr Nogikh <wp32pw@gmail.com>2023-02-10 14:34:44 +0100
commit6ee7748e05514798abe915b44aeb610c0f2c5ab3 (patch)
treed74229598d172d53c24b5db6782895cda42066b7 /pkg/subsystem
parent05159069c8cfa11417fa084a42c95716952146d4 (diff)
pkg/subsystem: push the base subsystem list
This list was generated using an older version of the code. It'll serve as a baseline for further changes.
Diffstat (limited to 'pkg/subsystem')
-rw-r--r--pkg/subsystem/linux/subsystems.go21
1 files changed, 13 insertions, 8 deletions
diff --git a/pkg/subsystem/linux/subsystems.go b/pkg/subsystem/linux/subsystems.go
index 43fea3b9e..49266a4a5 100644
--- a/pkg/subsystem/linux/subsystems.go
+++ b/pkg/subsystem/linux/subsystems.go
@@ -35,6 +35,15 @@ func listFromRepoInner(root fs.FS, rules *customRules) ([]*entity.Subsystem, err
if err != nil {
return nil, err
}
+ matrix, err := match.BuildCoincidenceMatrix(root, list, dropPatterns)
+ if err != nil {
+ return nil, err
+ }
+ list, err = parentTransformations(matrix, list)
+ if err != nil {
+ return nil, err
+ }
+
// Sort subsystems by name to keep output consistent.
sort.Slice(list, func(i, j int) bool { return list[i].Name < list[j].Name })
// Sort path rules to keep output consistent.
@@ -89,20 +98,16 @@ func (ctx *linuxCtx) getSubsystems() ([]*entity.Subsystem, error) {
for _, raw := range ctx.groupByList() {
s := &entity.Subsystem{}
raw.mergeRawRecords(s)
+ // Skip empty subsystems.
+ if len(s.Syscalls)+len(s.PathRules) == 0 {
+ continue
+ }
ret = append(ret, s)
}
if err := setSubsystemNames(ret); err != nil {
return nil, fmt.Errorf("failed to set names: %w", err)
}
ctx.applyExtraRules(ret)
- matrix, err := match.BuildCoincidenceMatrix(ctx.root, ret, nil)
- if err != nil {
- return nil, err
- }
- err = SetParents(matrix, ret)
- if err != nil {
- return nil, err
- }
return ret, nil
}