diff options
| author | Paul Buetow <paul@buetow.org> | 2026-05-21 17:43:18 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-05-21 17:43:18 +0300 |
| commit | 11394edddbb8f02208edb18e06ae40b6912742f4 (patch) | |
| tree | 6008d4ae3551a24d8f412d4710dad78c6d650fd7 /internal/generate | |
| parent | 8b38c88cc86adb9240473523c59d9b4a83f5437d (diff) | |
e7 classify acct pathname and misc null syscalls
Diffstat (limited to 'internal/generate')
| -rw-r--r-- | internal/generate/classify.go | 42 | ||||
| -rw-r--r-- | internal/generate/classify_test.go | 55 |
2 files changed, 97 insertions, 0 deletions
diff --git a/internal/generate/classify.go b/internal/generate/classify.go index e2b71f4..4ab63ad 100644 --- a/internal/generate/classify.go +++ b/internal/generate/classify.go @@ -480,6 +480,44 @@ func classifyNameOnly(name string) (ClassificationResult, bool) { return ClassificationResult{Kind: KindNull}, true case "sys_enter_kexec_load": return ClassificationResult{Kind: KindNull}, true + case "sys_enter_sysinfo": + return ClassificationResult{Kind: KindNull}, true + case "sys_enter_sysfs": + return ClassificationResult{Kind: KindNull}, true + case "sys_enter_ustat": + return ClassificationResult{Kind: KindNull}, true + case "sys_enter_newuname": + return ClassificationResult{Kind: KindNull}, true + case "sys_enter_sethostname": + return ClassificationResult{Kind: KindNull}, true + case "sys_enter_setdomainname": + return ClassificationResult{Kind: KindNull}, true + case "sys_enter_capget": + return ClassificationResult{Kind: KindNull}, true + case "sys_enter_capset": + return ClassificationResult{Kind: KindNull}, true + case "sys_enter_personality": + return ClassificationResult{Kind: KindNull}, true + case "sys_enter_reboot": + return ClassificationResult{Kind: KindNull}, true + case "sys_enter_restart_syscall": + return ClassificationResult{Kind: KindNull}, true + case "sys_enter_vhangup": + return ClassificationResult{Kind: KindNull}, true + case "sys_enter_arch_prctl": + return ClassificationResult{Kind: KindNull}, true + case "sys_enter_ioperm": + return ClassificationResult{Kind: KindNull}, true + case "sys_enter_iopl": + return ClassificationResult{Kind: KindNull}, true + case "sys_enter_modify_ldt": + return ClassificationResult{Kind: KindNull}, true + case "sys_enter_lsm_get_self_attr": + return ClassificationResult{Kind: KindNull}, true + case "sys_enter_lsm_set_self_attr": + return ClassificationResult{Kind: KindNull}, true + case "sys_enter_lsm_list_modules": + return ClassificationResult{Kind: KindNull}, true } if strings.HasPrefix(name, "sys_enter_io_") { return ClassificationResult{Kind: KindNull}, true @@ -519,6 +557,10 @@ func classifyNameAndField(name, fieldType, fieldName string) (ClassificationResu if isCStringPtrType(fieldType) && fieldName == "name" { return ClassificationResult{Kind: KindPathname, PathnameField: "name"}, true } + case "sys_enter_acct": + if isCStringPtrType(fieldType) && fieldName == "name" { + return ClassificationResult{Kind: KindPathname, PathnameField: "name"}, true + } case "sys_enter_pivot_root": if isCStringPtrType(fieldType) && fieldName == "new_root" { return ClassificationResult{Kind: KindPathname, PathnameField: "new_root"}, true diff --git a/internal/generate/classify_test.go b/internal/generate/classify_test.go index 323db06..b35f1b1 100644 --- a/internal/generate/classify_test.go +++ b/internal/generate/classify_test.go @@ -867,6 +867,61 @@ func TestClassifyA7NameOnlyKinds(t *testing.T) { } } +func TestClassifyE7NullNameOnlyKinds(t *testing.T) { + tests := []string{ + "sys_enter_sysinfo", + "sys_enter_sysfs", + "sys_enter_ustat", + "sys_enter_newuname", + "sys_enter_sethostname", + "sys_enter_setdomainname", + "sys_enter_capget", + "sys_enter_capset", + "sys_enter_personality", + "sys_enter_reboot", + "sys_enter_restart_syscall", + "sys_enter_vhangup", + "sys_enter_arch_prctl", + "sys_enter_ioperm", + "sys_enter_iopl", + "sys_enter_modify_ldt", + "sys_enter_lsm_get_self_attr", + "sys_enter_lsm_set_self_attr", + "sys_enter_lsm_list_modules", + } + + for _, name := range tests { + t.Run(name, func(t *testing.T) { + r := ClassifyFormat(&Format{ + Name: name, + ExternalFields: []Field{ + {Type: "long", Name: "__syscall_nr"}, + {Type: "long", Name: "arg0"}, + }, + }) + if r.Kind != KindNull { + t.Fatalf("%s: got kind %d, want KindNull", name, r.Kind) + } + }) + } +} + +func TestClassifyAcctPathname(t *testing.T) { + r := ClassifyFormat(&Format{ + Name: "sys_enter_acct", + ExternalFields: []Field{ + {Type: "long", Name: "__syscall_nr"}, + {Type: "const char *", Name: "name"}, + }, + }) + if r.Kind != KindPathname { + t.Fatalf("acct: got kind %d, want KindPathname", r.Kind) + } + if r.PathnameField != "name" { + t.Fatalf("acct: PathnameField=%q, want name", r.PathnameField) + } +} + func TestClassifyMount(t *testing.T) { r := classifyFromData(t, FormatMount) if r.Kind != KindPathname { |
